Skip to content

Support a configurable product/brand name (whitelabel) instead of hardcoded titles #1447

@xuyushun441-sys

Description

@xuyushun441-sys

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

  1. Account / auth SPA <title>apps/account/index.html:10
    <title>ObjectOS Account</title>
  2. REST API docs <title>packages/rest/src/rest-server.ts:1402
    <title>ObjectStack API Docs</title>
    (Note the inconsistency: "ObjectOS" vs "ObjectStack".)
  3. Auth email appName defaultpackages/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:

  • apps/account HTML title (inject at build/serve time, or render dynamically)
  • REST docs title in rest-server.ts (add an option to RestServer, falling back to the current default)
  • Keep auth-manager appName as the canonical default, but align its fallback with the same source so all three agree

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions