diff --git a/packages/plugins/plugin-dev/package.json b/packages/plugins/plugin-dev/package.json index 8009333ff2..c074672364 100644 --- a/packages/plugins/plugin-dev/package.json +++ b/packages/plugins/plugin-dev/package.json @@ -26,6 +26,7 @@ "@objectstack/plugin-auth": "workspace:^", "@objectstack/plugin-hono-server": "workspace:^", "@objectstack/plugin-security": "workspace:^", + "@objectstack/plugin-setup": "workspace:^", "@objectstack/rest": "workspace:^", "@objectstack/runtime": "workspace:^", "@objectstack/service-i18n": "workspace:^" @@ -49,6 +50,9 @@ "@objectstack/plugin-security": { "optional": true }, + "@objectstack/plugin-setup": { + "optional": true + }, "@objectstack/rest": { "optional": true }, @@ -62,6 +66,7 @@ "@objectstack/plugin-auth": "workspace:*", "@objectstack/plugin-hono-server": "workspace:*", "@objectstack/plugin-security": "workspace:*", + "@objectstack/plugin-setup": "workspace:*", "@objectstack/rest": "workspace:*", "@objectstack/runtime": "workspace:*", "@objectstack/service-i18n": "workspace:*", diff --git a/packages/plugins/plugin-dev/src/dev-plugin.test.ts b/packages/plugins/plugin-dev/src/dev-plugin.test.ts index 481c6f667c..6fd4b410d4 100644 --- a/packages/plugins/plugin-dev/src/dev-plugin.test.ts +++ b/packages/plugins/plugin-dev/src/dev-plugin.test.ts @@ -75,6 +75,7 @@ describe('DevPlugin', () => { objectql: false, driver: false, auth: false, + setup: false, security: false, server: false, rest: false, @@ -225,6 +226,7 @@ describe('DevPlugin', () => { objectql: false, driver: false, auth: false, + setup: false, server: false, rest: false, dispatcher: false, diff --git a/packages/plugins/plugin-dev/src/dev-plugin.ts b/packages/plugins/plugin-dev/src/dev-plugin.ts index e4d185dfd7..7de34a8a45 100644 --- a/packages/plugins/plugin-dev/src/dev-plugin.ts +++ b/packages/plugins/plugin-dev/src/dev-plugin.ts @@ -339,7 +339,7 @@ export interface DevPluginOptions { * Override which services to enable. By default all core services are enabled. * Set a service name to `false` to skip it. * - * Available services: 'objectql', 'driver', 'auth', 'server', 'rest', + * Available services: 'objectql', 'driver', 'auth', 'setup', 'server', 'rest', * 'dispatcher', 'security', plus any of the 17 CoreServiceName values * (e.g. 'cache', 'queue', 'job', 'ui', 'automation', 'workflow', …). */ @@ -405,6 +405,7 @@ export interface DevPluginOptions { * | ObjectQL | `@objectstack/objectql` | Data engine (query, CRUD, hooks) | * | Driver | `@objectstack/driver-memory` | In-memory database (no DB install) | * | Auth | `@objectstack/plugin-auth` | Authentication with dev credentials | + * | Setup | `@objectstack/plugin-setup` | Platform Setup App (admin UI navigation) | * | Security | `@objectstack/plugin-security` | RBAC, RLS, field-level masking | * | HTTP Server | `@objectstack/plugin-hono-server` | HTTP server on configured port | * | REST API | `@objectstack/rest` | Auto-generated CRUD + metadata endpoints | @@ -530,6 +531,18 @@ export class DevPlugin implements Plugin { } } + // 3c. Setup Plugin — platform Setup App with area-based navigation + if (enabled('setup')) { + try { + const { SetupPlugin } = await import('@objectstack/plugin-setup') as any; + const setupPlugin = new SetupPlugin(); + this.childPlugins.push(setupPlugin); + ctx.logger.info(' ✔ Setup plugin enabled (platform Setup App)'); + } catch { + ctx.logger.debug(' ℹ @objectstack/plugin-setup not installed — skipping Setup App'); + } + } + // 4. Auth Plugin if (enabled('auth')) { try { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2eb4ceca5a..48fc311e40 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -868,6 +868,9 @@ importers: '@objectstack/plugin-security': specifier: workspace:* version: link:../plugin-security + '@objectstack/plugin-setup': + specifier: workspace:* + version: link:../plugin-setup '@objectstack/rest': specifier: workspace:* version: link:../../rest