Skip to content

[Proposal] Create plugin-setup to own and finalize the platform Setup App #997

Closed

Description

@hotlong

Proposal: Add plugin-setup to Own and Register the Platform Setup App

Background

  • Currently, setup app (系统设置/Setup) is dynamically composed by the engine, with its title, icon, i18n, default branding, and area skeletons (Administration, Platform, System, AI, etc) scattered in either objectql or spec.
  • It is unclear where the platform Setup App's authority (as an app), lifecycle, and registrations should reside. This creates architectural confusion: protocol and data engine (spec, objectql) should not own system-level app instances or finalize navigation merges.
  • All other major system entities (e.g., users, roles, audit logs) are owned by internal plugins: plugin-auth (SysUser), plugin-security (SysRole), plugin-audit (SysAuditLog), etc.

Proposal

  • Create a dedicated plugin-setup (e.g. packages/plugins/plugin-setup) as a first-class internal platform plugin, sibling to plugin-auth and plugin-security.
  • This plugin should:
    • Export Setup App identity: name, label (multi-lang), icon, permissions, branding, and all default meta.
    • Contain the 4 built-in Setup Areas (Administration, Platform, System, AI) as empty group skeletons for other plugins to contribute their settings/navigation.
    • On kernel/engine ready/finalize, collect all setupNav contributions, merge areas and groups, filter out empty areas, and register the finalized Setup App as an internal platform app.
    • Optionally: define platform Setup Home page, handle global Setup search, enforce Setup permissions.
  • Remove all platform Setup App definition and merge logic from objectql and spec, making those packages protocol- and data-focused only.

Benefits

  • Architectural clarity: spec = protocol only, objectql = data/query only, plugins = system feature and UI composition.
  • Matches existing extensibility model: all system apps and objects are owned by plugins for encapsulation, modularity, and clear ownership.
  • Greatly simplifies cross-repo and downstream system extension.
  • Foundation for future features: Setup as a visible app, plugin-aware Setup Home, Setup extensibility via plugin-contributed areas/pages/search.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions