@bluealba/platform-cli 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/index.js +278 -15
  2. package/docs/404.mdx +5 -0
  3. package/docs/architecture/api-explorer.mdx +478 -0
  4. package/docs/architecture/architecture-diagrams.mdx +12 -0
  5. package/docs/architecture/authentication-system.mdx +903 -0
  6. package/docs/architecture/authorization-system.mdx +886 -0
  7. package/docs/architecture/bootstrap.mdx +1442 -0
  8. package/docs/architecture/gateway-architecture.mdx +845 -0
  9. package/docs/architecture/multi-tenancy.mdx +1150 -0
  10. package/docs/architecture/overview.mdx +776 -0
  11. package/docs/architecture/scheduler.mdx +818 -0
  12. package/docs/architecture/shell.mdx +885 -0
  13. package/docs/architecture/ui-extension-points.mdx +781 -0
  14. package/docs/architecture/user-states.mdx +794 -0
  15. package/docs/development/overview.mdx +21 -0
  16. package/docs/development/workflow.mdx +914 -0
  17. package/docs/getting-started/core-concepts.mdx +892 -0
  18. package/docs/getting-started/installation.mdx +780 -0
  19. package/docs/getting-started/overview.mdx +83 -0
  20. package/docs/getting-started/quick-start.mdx +940 -0
  21. package/docs/guides/adding-documentation-sites.mdx +1367 -0
  22. package/docs/guides/creating-services.mdx +1736 -0
  23. package/docs/guides/creating-ui-modules.mdx +1860 -0
  24. package/docs/guides/identity-providers.mdx +1007 -0
  25. package/docs/guides/mermaid-diagrams.mdx +212 -0
  26. package/docs/guides/using-feature-flags.mdx +1059 -0
  27. package/docs/guides/working-with-rooms.mdx +566 -0
  28. package/docs/index.mdx +57 -0
  29. package/docs/platform-cli/commands.mdx +604 -0
  30. package/docs/platform-cli/overview.mdx +195 -0
  31. package/package.json +5 -2
  32. package/skills/ba-platform/platform-cli.skill.md +26 -0
  33. package/skills/ba-platform/platform.skill.md +35 -0
  34. package/templates/application-monorepo-template/gitignore +95 -0
  35. package/templates/bootstrap-service-template/Dockerfile.development +1 -1
  36. package/templates/bootstrap-service-template/gitignore +57 -0
  37. package/templates/bootstrap-service-template/package.json +1 -1
  38. package/templates/bootstrap-service-template/src/main.ts +6 -16
  39. package/templates/customization-ui-module-template/Dockerfile.development +1 -1
  40. package/templates/customization-ui-module-template/gitignore +73 -0
  41. package/templates/nestjs-service-module-template/Dockerfile.development +1 -1
  42. package/templates/nestjs-service-module-template/gitignore +56 -0
  43. package/templates/platform-init-template/{{platformName}}-core/gitignore +97 -0
  44. package/templates/platform-init-template/{{platformName}}-core/local/.env.example +1 -1
  45. package/templates/platform-init-template/{{platformName}}-core/local/platform-docker-compose.yml +1 -1
  46. package/templates/platform-init-template/{{platformName}}-core/local/{{platformName}}-core-docker-compose.yml +0 -1
  47. package/templates/react-ui-module-template/Dockerfile +1 -1
  48. package/templates/react-ui-module-template/Dockerfile.development +1 -3
  49. package/templates/react-ui-module-template/caddy/Caddyfile +1 -1
  50. package/templates/react-ui-module-template/gitignore +72 -0
  51. package/templates/react-ui-module-template/Dockerfile_nginx +0 -11
  52. package/templates/react-ui-module-template/nginx/default.conf +0 -23
@@ -0,0 +1,604 @@
1
+ ---
2
+ title: Command Reference
3
+ description: Complete reference for all Platform CLI commands — arguments, prompts, and examples
4
+ ---
5
+
6
+ import { Aside, Tabs, TabItem, Card, CardGrid } from '@astrojs/starlight/components';
7
+
8
+ This page documents every command available in `@bluealba/platform-cli`. For each command you will find:
9
+
10
+ - A description of what the command does
11
+ - The interactive prompts it presents
12
+ - The headless arguments it accepts
13
+ - An end-to-end example
14
+
15
+ All commands follow the same invocation pattern:
16
+
17
+ ```bash
18
+ # Interactive (guided)
19
+ platform
20
+
21
+ # Headless
22
+ platform <command-name> key1=value1 key2=value2
23
+ ```
24
+
25
+ ---
26
+
27
+ ## init
28
+
29
+ **Description**: Initializes a new Blue Alba Platform in the current directory. This is always the first command you run. It scaffolds the core directory structure, generates the product manifest, creates a bootstrap service, and creates a customization UI module.
30
+
31
+ **Requires a platform**: No — this command must be run before any other.
32
+
33
+ ### What it creates
34
+
35
+ ```
36
+ <current-directory>/
37
+ └── <platformName>-core/
38
+ ├── product.manifest.json ← Product manifest (tracks all applications)
39
+ ├── local/
40
+ │ └── .env ← Generated environment configuration
41
+ └── services/
42
+ └── <platformName>-bootstrap-service/
43
+ └── ... ← Bootstrap NestJS service scaffold
44
+ └── ui/
45
+ └── <platformName>-customization-ui/
46
+ └── ... ← Customization React UI module scaffold
47
+ ```
48
+
49
+ ### Interactive prompts
50
+
51
+ | Prompt | Description |
52
+ |--------|-------------|
53
+ | Organization name | Your organization or npm scope (e.g. `acme`) |
54
+ | Platform name | The machine name for the platform (lowercase, hyphens only; e.g. `my-platform`) |
55
+ | Platform display name | The human-readable title shown in the UI (e.g. `My Platform`) |
56
+ | Customize artifact names? | Whether to override the default suffixes for the bootstrap service and customization UI |
57
+ | Bootstrap service suffix | Only shown if customizing; defaults to `bootstrap-service` |
58
+ | Customization UI suffix | Only shown if customizing; defaults to `customization-ui` |
59
+
60
+ ### Headless arguments
61
+
62
+ | Argument | Required | Description |
63
+ |----------|----------|-------------|
64
+ | `organizationName` | Yes | npm scope / organization identifier |
65
+ | `platformName` | Yes | Machine name (lowercase letters, numbers, and hyphens) |
66
+ | `platformDisplayName` | Yes | Human-readable display name |
67
+ | `bootstrapServiceSuffix` | No | Defaults to `bootstrap-service` |
68
+ | `customizationUiSuffix` | No | Defaults to `customization-ui` |
69
+
70
+ ### Example
71
+
72
+ <Tabs>
73
+ <TabItem label="Interactive">
74
+ ```bash
75
+ platform
76
+ # Press / then type "init" and press Enter
77
+ # Follow the prompts
78
+ ```
79
+ </TabItem>
80
+ <TabItem label="Headless">
81
+ ```bash
82
+ platform init \
83
+ organizationName=acme \
84
+ platformName=my-platform \
85
+ platformDisplayName="My Platform"
86
+ ```
87
+
88
+ With custom artifact names:
89
+
90
+ ```bash
91
+ platform init \
92
+ organizationName=acme \
93
+ platformName=my-platform \
94
+ platformDisplayName="My Platform" \
95
+ bootstrapServiceSuffix=bootstrap \
96
+ customizationUiSuffix=customization
97
+ ```
98
+ </TabItem>
99
+ </Tabs>
100
+
101
+ ---
102
+
103
+ ## configure-idp
104
+
105
+ **Description**: Configures an Identity Provider (IdP) for the platform. This command writes the necessary IdP settings into the platform's environment configuration so the gateway service can authenticate users via OAuth/OIDC.
106
+
107
+ **Requires a platform**: Yes.
108
+
109
+ **Supported providers**:
110
+
111
+ | Provider | Type value |
112
+ |----------|------------|
113
+ | Okta | `okta` |
114
+ | Microsoft Entra ID | `entra-id` |
115
+
116
+ ### Interactive prompts
117
+
118
+ | Prompt | Description |
119
+ |--------|-------------|
120
+ | Select IDP type | Single-select list: Okta or Entra ID |
121
+ | Provider name | A label for this provider (e.g. `My Okta`) |
122
+ | Issuer URL | The OIDC issuer URL from your IdP |
123
+ | Client ID | The OAuth application client ID |
124
+ | Client Secret | The OAuth application client secret |
125
+ | Tenant ID | Entra ID only — your Azure tenant ID |
126
+
127
+ ### Headless arguments
128
+
129
+ | Argument | Required | Description |
130
+ |----------|----------|-------------|
131
+ | `providerType` | Yes | `okta` or `entra-id` |
132
+ | `name` | Yes | Human-readable label for this provider |
133
+ | `issuer` | Yes | OIDC issuer URL |
134
+ | `clientId` | Yes | OAuth client ID |
135
+ | `clientSecret` | Yes | OAuth client secret |
136
+ | `tenantId` | Entra ID only | Azure tenant ID |
137
+
138
+ ### Example
139
+
140
+ <Tabs>
141
+ <TabItem label="Okta">
142
+ ```bash
143
+ platform configure-idp \
144
+ providerType=okta \
145
+ name="Acme Okta" \
146
+ issuer=https://acme.okta.com/oauth2/default \
147
+ clientId=0oa1ab2cd3ef4gh5ij6k \
148
+ clientSecret=abc123secretvalue
149
+ ```
150
+ </TabItem>
151
+ <TabItem label="Entra ID">
152
+ ```bash
153
+ platform configure-idp \
154
+ providerType=entra-id \
155
+ name="Acme Entra" \
156
+ issuer=https://login.microsoftonline.com/your-tenant-id/v2.0 \
157
+ clientId=00000000-0000-0000-0000-000000000000 \
158
+ clientSecret=your-client-secret \
159
+ tenantId=your-tenant-id
160
+ ```
161
+ </TabItem>
162
+ </Tabs>
163
+
164
+ ---
165
+
166
+ ## create-application
167
+
168
+ **Description**: Adds a new application to an existing platform. An application is an independent domain (e.g. "Billing", "HR") that can include a backend service, a UI module, or both. The command adds the application to the product manifest and optionally scaffolds the service and UI skeletons.
169
+
170
+ **Requires a platform**: Yes.
171
+
172
+ ### Interactive prompts
173
+
174
+ | Prompt | Description |
175
+ |--------|-------------|
176
+ | Application name | Machine name (lowercase, hyphens only; e.g. `billing`) |
177
+ | Application display name | Human-readable title (e.g. `Billing`) |
178
+ | Application description | Short description of the application's purpose |
179
+ | Does this application have a user interface? | Whether to scaffold a React UI module |
180
+ | Does this application have a backend service? | Whether to scaffold a NestJS backend service |
181
+
182
+ ### Headless arguments
183
+
184
+ | Argument | Required | Description |
185
+ |----------|----------|-------------|
186
+ | `applicationName` | Yes | Machine name (lowercase letters, numbers, and hyphens) |
187
+ | `applicationDisplayName` | Yes | Human-readable display name |
188
+ | `applicationDescription` | Yes | Short description |
189
+ | `hasUserInterface` | No | `yes` or `no` (default: `no`) |
190
+ | `hasBackendService` | No | `yes` or `no` (default: `no`) |
191
+
192
+ ### Example
193
+
194
+ <Tabs>
195
+ <TabItem label="Interactive">
196
+ ```bash
197
+ platform
198
+ # Press / then type "create-application" and press Enter
199
+ ```
200
+ </TabItem>
201
+ <TabItem label="Headless">
202
+ ```bash
203
+ platform create-application \
204
+ applicationName=billing \
205
+ applicationDisplayName="Billing" \
206
+ applicationDescription="Invoice and payment management" \
207
+ hasUserInterface=yes \
208
+ hasBackendService=yes
209
+ ```
210
+ </TabItem>
211
+ </Tabs>
212
+
213
+ ---
214
+
215
+ ## create-service-module
216
+
217
+ **Description**: Adds a NestJS backend service module to an existing application. The command reads the product manifest to present a list of registered applications, then scaffolds a new service workspace inside the selected application.
218
+
219
+ **Requires a platform**: Yes. At least one application must exist (if none exist, the CLI offers to create one first).
220
+
221
+ ### Interactive prompts
222
+
223
+ | Prompt | Description |
224
+ |--------|-------------|
225
+ | Select application | Single-select from registered applications |
226
+ | Service name | Machine name for the service (e.g. `payments`) |
227
+ | Include "-service" suffix? | Whether to append `-service` to the generated directory name |
228
+ | Service display name | Human-readable title (e.g. `Payments Service`) |
229
+
230
+ ### Headless arguments
231
+
232
+ | Argument | Required | Description |
233
+ |----------|----------|-------------|
234
+ | `applicationName` | Yes | Must match a registered application name |
235
+ | `serviceName` | Yes | Machine name (lowercase letters, numbers, and hyphens) |
236
+ | `serviceDisplayName` | Yes | Human-readable display name |
237
+
238
+ ### Example
239
+
240
+ <Tabs>
241
+ <TabItem label="Interactive">
242
+ ```bash
243
+ platform
244
+ # Press / then type "create-service-module" and press Enter
245
+ ```
246
+ </TabItem>
247
+ <TabItem label="Headless">
248
+ ```bash
249
+ platform create-service-module \
250
+ applicationName=billing \
251
+ serviceName=payments \
252
+ serviceDisplayName="Payments Service"
253
+ ```
254
+ </TabItem>
255
+ </Tabs>
256
+
257
+ ---
258
+
259
+ ## create-ui-module
260
+
261
+ **Description**: Adds a React micro-frontend UI module to an existing application. The command reads the product manifest to present a list of registered applications, then scaffolds a new React workspace that integrates with the single-spa shell.
262
+
263
+ **Requires a platform**: Yes. At least one application must exist (if none exist, the CLI offers to create one first).
264
+
265
+ ### Interactive prompts
266
+
267
+ | Prompt | Description |
268
+ |--------|-------------|
269
+ | Select application | Single-select from registered applications |
270
+ | Include "-ui" suffix? | Whether to append `-ui` to the generated directory name |
271
+ | Application display name | Human-readable title for the UI module |
272
+
273
+ ### Headless arguments
274
+
275
+ | Argument | Required | Description |
276
+ |----------|----------|-------------|
277
+ | `applicationName` | Yes | Must match a registered application name |
278
+ | `applicationDisplayName` | Yes | Human-readable display name |
279
+
280
+ ### Example
281
+
282
+ <Tabs>
283
+ <TabItem label="Interactive">
284
+ ```bash
285
+ platform
286
+ # Press / then type "create-ui-module" and press Enter
287
+ ```
288
+ </TabItem>
289
+ <TabItem label="Headless">
290
+ ```bash
291
+ platform create-ui-module \
292
+ applicationName=billing \
293
+ applicationDisplayName="Billing"
294
+ ```
295
+ </TabItem>
296
+ </Tabs>
297
+
298
+ ---
299
+
300
+ ## status
301
+
302
+ **Description**: Displays a comprehensive health report for the current platform environment and guides you through remediation. The report covers:
303
+
304
+ - Prerequisites (Node.js version, Docker daemon availability)
305
+ - Lifecycle stage (initialized, dependencies installed, built, running)
306
+ - Per-application container state
307
+ - Identity Provider configuration
308
+
309
+ After printing the report, `status` identifies the next required action and offers to run it immediately. This makes `status` the single command you need to go from a freshly cloned repository to a fully running environment.
310
+
311
+ **Requires a platform**: Yes (hides in the command palette until initialized).
312
+
313
+ ### Interactive behaviour
314
+
315
+ 1. Gathers all checks and prints a formatted report
316
+ 2. Determines the next step (`init`, `install`, `build`, or `start`)
317
+ 3. Asks whether to execute the next step
318
+ 4. If the step succeeds, loops and re-checks
319
+ 5. If all checks pass, optionally prompts to configure an IdP if none is configured
320
+
321
+ ### Headless
322
+
323
+ `status` is primarily an interactive command. In headless contexts it prints the report and exits with a zero code when everything is healthy, non-zero otherwise.
324
+
325
+ ```bash
326
+ platform status
327
+ ```
328
+
329
+ ### Example output (abbreviated)
330
+
331
+ ```
332
+ Platform: My Platform (my-platform)
333
+ Organization: acme
334
+
335
+ Prerequisites
336
+ ✓ Node.js v22.14.0
337
+ ✓ Docker 27.5.1
338
+
339
+ Lifecycle
340
+ ✓ Initialized
341
+ ✓ Dependencies installed
342
+ ✓ Built
343
+ ✓ Running
344
+
345
+ Containers (core)
346
+ ✓ gateway running 0.0.0.0:9443->443/tcp
347
+ ✓ shell-ui running 0.0.0.0:8080->80/tcp
348
+ ✓ postgres running 0.0.0.0:5432->5432/tcp
349
+
350
+ IDP
351
+ ✓ Acme Okta (okta, active)
352
+
353
+ All checks passed!
354
+ ```
355
+
356
+ ---
357
+
358
+ ## manage-platform-admins
359
+
360
+ **Description**: Lists, grants, and revokes platform administrator access for user accounts. Platform admins have full permissions across the entire platform. Changes are written to the bootstrap service configuration so they are applied on the next bootstrap run.
361
+
362
+ **Requires a platform**: Yes.
363
+
364
+ ### Interactive behaviour
365
+
366
+ The command presents a looping menu with four options:
367
+
368
+ - **List current admins** — prints all users who currently have platform admin access
369
+ - **Add admin(s)** — prompts for usernames one at a time (pre-filled with your `git config user.email`); allows adding multiple admins before confirming
370
+ - **Remove admin(s)** — presents a multi-select list of current admins to remove; asks for confirmation before proceeding
371
+ - **Back to main menu** — exits the sub-menu
372
+
373
+ ### Headless arguments
374
+
375
+ | Argument | Required | Description |
376
+ |----------|----------|-------------|
377
+ | `action` | Yes | `list`, `add`, or `remove` |
378
+ | `usernames` | Required for `add` and `remove` | Comma-separated list of usernames |
379
+
380
+ ### Example
381
+
382
+ <Tabs>
383
+ <TabItem label="List">
384
+ ```bash
385
+ platform manage-platform-admins action=list
386
+ ```
387
+ </TabItem>
388
+ <TabItem label="Add">
389
+ ```bash
390
+ platform manage-platform-admins action=add usernames=alice@acme.com,bob@acme.com
391
+ ```
392
+ </TabItem>
393
+ <TabItem label="Remove">
394
+ ```bash
395
+ platform manage-platform-admins action=remove usernames=bob@acme.com
396
+ ```
397
+ </TabItem>
398
+ </Tabs>
399
+
400
+ ---
401
+
402
+ ## install-ai-plugin
403
+
404
+ **Description**: Installs AI assistant plugins that give your AI coding assistant (e.g. Claude Code) comprehensive knowledge about the Blue Alba Platform. Plugins are versioned and the command will prompt before upgrading an already-installed plugin.
405
+
406
+ **Requires a platform**: No — this command can be run anywhere.
407
+
408
+ ### Available plugins
409
+
410
+ | Plugin | Description |
411
+ |--------|-------------|
412
+ | `ba-platform-plugin` | Blue Alba Platform knowledge and CLI skills for AI assistants. Includes two skills: `platform` (architecture and concepts) and `platform-cli` (CLI commands and usage) |
413
+
414
+ ### Available providers
415
+
416
+ | Provider | Value |
417
+ |----------|-------|
418
+ | Claude Code | `claude` |
419
+
420
+ ### Interactive prompts
421
+
422
+ | Prompt | Description |
423
+ |--------|-------------|
424
+ | Select AI provider | Single-select list of supported AI providers |
425
+ | Select plugins to install | Multi-select list of available plugins |
426
+ | Update confirmation | If a plugin is already installed, asks whether to upgrade to the new version |
427
+
428
+ ### Headless arguments
429
+
430
+ | Argument | Required | Description |
431
+ |----------|----------|-------------|
432
+ | `provider` | Yes | AI provider name (e.g. `claude`) |
433
+ | `plugins` | Yes | Comma-separated list of plugin names |
434
+ | `force` | No | `true` to skip update confirmation prompts |
435
+
436
+ ### Example
437
+
438
+ <Tabs>
439
+ <TabItem label="Interactive">
440
+ ```bash
441
+ platform
442
+ # Press / then type "install-ai-plugin" and press Enter
443
+ ```
444
+ </TabItem>
445
+ <TabItem label="Headless">
446
+ ```bash
447
+ platform install-ai-plugin \
448
+ provider=claude \
449
+ plugins=ba-platform-plugin
450
+ ```
451
+
452
+ Force-update without confirmation:
453
+
454
+ ```bash
455
+ platform install-ai-plugin \
456
+ provider=claude \
457
+ plugins=ba-platform-plugin \
458
+ force=true
459
+ ```
460
+ </TabItem>
461
+ </Tabs>
462
+
463
+ ---
464
+
465
+ ## Local Environment Commands
466
+
467
+ The following five commands manage the lifecycle of your local Docker Compose environment. They all share the same target-selection model: when run interactively, they present a multi-select list of available targets (`Platform (Core)` plus each registered application); when run headlessly, target names are passed as positional arguments.
468
+
469
+ <Aside type="note" title="Hidden until initialized">
470
+ These commands are hidden in the command palette until `init` has been run in the current directory.
471
+ </Aside>
472
+
473
+ ### install
474
+
475
+ **Description**: Installs Node.js dependencies for the platform core and selected applications by running `npm install` in each workspace.
476
+
477
+ **When to run**: After `init` and whenever new dependencies are added.
478
+
479
+ <Tabs>
480
+ <TabItem label="Interactive">
481
+ ```bash
482
+ platform
483
+ # Press / then type "install" and press Enter
484
+ # Multi-select the targets
485
+ ```
486
+ </TabItem>
487
+ <TabItem label="Headless (all targets)">
488
+ ```bash
489
+ platform install
490
+ ```
491
+ </TabItem>
492
+ </Tabs>
493
+
494
+ ---
495
+
496
+ ### build
497
+
498
+ **Description**: Compiles TypeScript source code and builds Docker images for the platform core and selected applications using Turborepo.
499
+
500
+ **When to run**: After `install` and whenever source code changes that need to be reflected in the running containers.
501
+
502
+ <Tabs>
503
+ <TabItem label="Interactive">
504
+ ```bash
505
+ platform
506
+ # Press / then type "build" and press Enter
507
+ ```
508
+ </TabItem>
509
+ <TabItem label="Headless">
510
+ ```bash
511
+ platform build
512
+ ```
513
+ </TabItem>
514
+ </Tabs>
515
+
516
+ ---
517
+
518
+ ### start
519
+
520
+ **Description**: Starts the local development environment by running `docker compose up` with the appropriate Compose files for the platform core and selected applications.
521
+
522
+ **When to run**: After `build`, or any time you want to bring the environment up.
523
+
524
+ <Tabs>
525
+ <TabItem label="Interactive">
526
+ ```bash
527
+ platform
528
+ # Press / then type "start" and press Enter
529
+ ```
530
+ </TabItem>
531
+ <TabItem label="Headless (all targets)">
532
+ ```bash
533
+ platform start
534
+ ```
535
+ </TabItem>
536
+ </Tabs>
537
+
538
+ ---
539
+
540
+ ### stop
541
+
542
+ **Description**: Stops the running Docker Compose services without removing containers or volumes.
543
+
544
+ **When to run**: When you want to pause the environment without losing state.
545
+
546
+ <Tabs>
547
+ <TabItem label="Interactive">
548
+ ```bash
549
+ platform
550
+ # Press / then type "stop" and press Enter
551
+ ```
552
+ </TabItem>
553
+ <TabItem label="Headless">
554
+ ```bash
555
+ platform stop
556
+ ```
557
+ </TabItem>
558
+ </Tabs>
559
+
560
+ ---
561
+
562
+ ### destroy
563
+
564
+ **Description**: Stops and removes all Docker Compose containers, networks, and volumes for the selected targets. This is a destructive operation — all local data stored in Docker volumes will be lost.
565
+
566
+ **When to run**: When you want a completely clean slate, for example before re-running the bootstrap service with fresh configuration.
567
+
568
+ <Tabs>
569
+ <TabItem label="Interactive">
570
+ ```bash
571
+ platform
572
+ # Press / then type "destroy" and press Enter
573
+ ```
574
+ </TabItem>
575
+ <TabItem label="Headless">
576
+ ```bash
577
+ platform destroy
578
+ ```
579
+ </TabItem>
580
+ </Tabs>
581
+
582
+ <Aside type="caution" title="Data loss warning">
583
+ The `destroy` command removes Docker volumes. Any data stored in the local PostgreSQL database, Kafka topics, or other stateful services will be permanently deleted. Run `stop` instead if you want to preserve your data.
584
+ </Aside>
585
+
586
+ ---
587
+
588
+ ## Command Summary
589
+
590
+ | Command | Requires init | Description |
591
+ |---------|--------------|-------------|
592
+ | `init` | No | Initialize a new platform |
593
+ | `configure-idp` | Yes | Configure an Identity Provider (Okta, Entra ID) |
594
+ | `create-application` | Yes | Add an application to the platform |
595
+ | `create-service-module` | Yes | Add a NestJS backend service to an application |
596
+ | `create-ui-module` | Yes | Add a React UI module to an application |
597
+ | `status` | Yes | Show platform health and guide through next steps |
598
+ | `manage-platform-admins` | Yes | List, add, or remove platform administrators |
599
+ | `install-ai-plugin` | No | Install AI assistant plugins for the platform |
600
+ | `install` | Yes | Install dependencies in the local environment |
601
+ | `build` | Yes | Build the local environment |
602
+ | `start` | Yes | Start the local Docker Compose environment |
603
+ | `stop` | Yes | Stop the local Docker Compose environment |
604
+ | `destroy` | Yes | Destroy the local environment (removes volumes) |