Skip to content

console: System Settings pages render blank — no system/settings route or manifest-driven settings UI #1609

@baozhoutao

Description

@baozhoutao

Summary

The Setup ("System Settings") app contributes navigation items pointing at client-side routes like /apps/setup/system/settings, /apps/setup/system/settings/branding, /apps/setup/system/settings/auth, etc. The console SPA has no route for these paths, so every settings page renders blank.

This is a missing-feature in the console, not a translation or backend bug:

Reproduction

  1. Run a dev stack with the Setup app + service-settings.
  2. Navigate to /_console/apps/setup/system/settings (or .../settings/branding, .../settings/auth, .../settings/storage, …).
  3. The page <main> is empty; no /api/settings request fires.

By contrast, /_console/apps/setup/system (the system hub, SystemHubPage) renders fine.

Root cause

In apps/console/src/AppContent.tsx, systemRoutes defines:

system            → SystemHubPage
system/apps       → AppManagementPage
system/profile    → ProfilePage
system/objects    → ObjectRedirect
system/metadata/:metadataType            → MetadataManagerPage
system/metadata/:metadataType/:itemName  → MetadataDetailPage

There is no system/settings or system/settings/:namespace route, and no manifest-driven settings form component anywhere in the repo (the only "SettingsPage" is packages/app-shell/src/console/organizations/manage/SettingsPage.tsx, which is organization settings — unrelated to platform settings).

Proposed work

  1. Add routes under systemRoutes:
    • system/settings → a settings hub listing all manifests from GET /api/settings.
    • system/settings/:namespace → a manifest-driven form for a single namespace.
  2. Build a manifest-driven settings form component that:
    • fetches GET /api/settings/:namespace,
    • renders fields from the manifest (respecting types, groups, ordering),
    • saves via PUT /api/settings/:namespace,
    • invokes actions via POST /api/settings/:namespace/:actionId.
  3. Use the already-translated manifest labels/groups/keys returned by the API.

Backend reference

service-settings registers REST routes at basePath /api/settings (note: no /v1):

  • GET /api/settings → manifests
  • GET /api/settings/:namespace → namespace manifest + values
  • PUT /api/settings/:namespace → save values
  • POST /api/settings/:namespace/:actionId → run a manifest action

Related

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