Core · Framework · Runtimes and extension mechanisms

Plugin loading and extensions

Plugins declare contributions through public entries and are explicitly assembled by the target application. Dependency installation, runtime registration and business integration are separate steps.

Independent runtime registration

RuntimePlugin entryApp entry
Clientpackage/clientclient/plugins.ts
Serverpackage/serverserver/plugins.ts
CLIpackage/clicli/plugins.ts

Entries are optional. A Skills-only package may have none. Client registration does not enable a server entry, and server registration does not install page components.

Resolving declarations

defineClientPlugin(), defineServerPlugin() and defineCliPlugin() describe contributions. The application imports factories and adds their results to each runtime's declarations. Runtime resolution then registers services, constructs routes, loads resources or mounts React Providers at the appropriate stage.

Imports should not query business data, start tasks or open connections. Plugin options describe stable assembly settings. Deployment credentials belong in server configuration, never client plugin options.

Dependencies and extension boundaries

Export service interfaces and tokens for other plugins to consume through public entries. Missing dependencies should fail clearly during composition or startup rather than require relative imports into another package's private files.

Client route component overrides replace page loaders while retaining plugin-owned paths and identity/access metadata. Independently distributed Registry assets provide editable UI source; they do not register runtime plugins.

Verifying integration

Check actual runtime registration, database resource execution, route access and the built application's behavior. plugin inspect reads static declarations and does not establish business functionality. Registration snapshots identify declared plugins, not every capability actually used.

See Manage plugins and Publish UI source assets.

Interfaces and implementation

NocoBase docs assistant

Ask anything about NocoBase…

Each question is answered independently, without earlier questions or answers. Include all relevant context.