Background
Downstream deployments (e.g. ObjectOS Cloud at https://cloud.objectos.ai) want to set a single product / brand name and have it surface consistently across auth emails, page titles, and API docs. Today the brand string is partly configurable, partly hardcoded — there is no single knob.
In the cloud repo we already wired OS_APP_NAME (default ObjectOS Cloud) into the auth plugin's appName, which covers email templates. The remaining surfaces are hardcoded inside the framework and cannot be overridden by deployers.
Hardcoded brand strings in the framework
- Account / auth SPA
<title> — apps/account/index.html:10
<title>ObjectOS Account</title>
- REST API docs
<title> — packages/rest/src/rest-server.ts:1402
<title>ObjectStack API Docs</title>
(Note the inconsistency: "ObjectOS" vs "ObjectStack".)
- Auth email
appName default — packages/plugins/plugin-auth/src/auth-manager.ts:1105
return this.config.appName ?? 'ObjectStack';
This one is already overridable via AuthManagerConfig.appName (good) — listed only for completeness as the canonical source of the brand name.
Proposal
Introduce a single configurable product name (e.g. appName / productName) resolvable from one source — config field and/or OS_APP_NAME env — and thread it into:
Acceptance criteria
- Setting one value (config or
OS_APP_NAME) renames auth emails, the account SPA title, and the API docs title together.
- Backward compatible: unset → current defaults (suggest unifying the default to a single string rather than today's mix of
ObjectOS / ObjectStack).
Context
Filed from the cloud repo while wiring OS_APP_NAME → auth appName. The framework-side titles are the missing piece for a fully configurable product name.
Background
Downstream deployments (e.g. ObjectOS Cloud at https://cloud.objectos.ai) want to set a single product / brand name and have it surface consistently across auth emails, page titles, and API docs. Today the brand string is partly configurable, partly hardcoded — there is no single knob.
In the
cloudrepo we already wiredOS_APP_NAME(defaultObjectOS Cloud) into the auth plugin'sappName, which covers email templates. The remaining surfaces are hardcoded inside the framework and cannot be overridden by deployers.Hardcoded brand strings in the framework
<title>—apps/account/index.html:10<title>—packages/rest/src/rest-server.ts:1402appNamedefault —packages/plugins/plugin-auth/src/auth-manager.ts:1105AuthManagerConfig.appName(good) — listed only for completeness as the canonical source of the brand name.Proposal
Introduce a single configurable product name (e.g.
appName/productName) resolvable from one source — config field and/orOS_APP_NAMEenv — and thread it into:apps/accountHTML title (inject at build/serve time, or render dynamically)rest-server.ts(add an option toRestServer, falling back to the current default)auth-managerappNameas the canonical default, but align its fallback with the same source so all three agreeAcceptance criteria
OS_APP_NAME) renames auth emails, the account SPA title, and the API docs title together.ObjectOS/ObjectStack).Context
Filed from the
cloudrepo while wiringOS_APP_NAME→ authappName. The framework-side titles are the missing piece for a fully configurable product name.