-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Labels
priority: criticalP0 - Do first, blocking or major tech debtP0 - Do first, blocking or major tech debtrefactorCode refactoringCode refactoring
Description
Problem
Config properties are scattered across 29 places with inconsistent patterns:
// server.js:143-155 - mixed patterns
request.connegEnabled = connegEnabled;
request.notificationsEnabled = notificationsEnabled || liveReloadEnabled;
request.idpEnabled = idpEnabled;
request.subdomainsEnabled = subdomainsEnabled;
request.baseDomain = baseDomain;
request.mashlibEnabled = mashlibEnabled;
request.mashlibCdn = mashlibCdn;
request.mashlibVersion = mashlibVersion;
request.solidosUiEnabled = solidosUiEnabled;
request.defaultQuota = defaultQuota;
request.config = { public: options.public, readOnly: options.readOnly }; // Inconsistent!
request.liveReloadEnabled = liveReloadEnabled;Some configs are direct properties (request.connegEnabled), some nested (request.config?.public).
Proposed Solution
Consolidate into a single unified config container:
request.serverConfig = {
conneg: connegEnabled,
notifications: notificationsEnabled,
idp: idpEnabled,
subdomains: subdomainsEnabled,
baseDomain: baseDomain,
mashlib: mashlibEnabled,
mashlibCdn: mashlibCdn,
mashlibVersion: mashlibVersion,
solidosUi: solidosUiEnabled,
defaultQuota: defaultQuota,
public: options.public,
readOnly: options.readOnly,
liveReload: liveReloadEnabled
};Benefits
- Single namespace for all config
- IDE autocomplete works
- Easier to add new configs
- Clear what's available on request object
Files Affected
src/server.js(main change)src/handlers/resource.jssrc/handlers/container.jssrc/auth/middleware.js- Any file accessing
request.*Enabledorrequest.config
Priority
P0 - Critical refactoring for maintainability
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
priority: criticalP0 - Do first, blocking or major tech debtP0 - Do first, blocking or major tech debtrefactorCode refactoringCode refactoring