@bluealba/platform-cli 1.0.1 → 1.0.2
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.
- package/dist/index.js +277 -9
- package/docs/404.mdx +5 -0
- package/docs/architecture/api-explorer.mdx +478 -0
- package/docs/architecture/architecture-diagrams.mdx +12 -0
- package/docs/architecture/authentication-system.mdx +903 -0
- package/docs/architecture/authorization-system.mdx +886 -0
- package/docs/architecture/bootstrap.mdx +1442 -0
- package/docs/architecture/gateway-architecture.mdx +845 -0
- package/docs/architecture/multi-tenancy.mdx +1150 -0
- package/docs/architecture/overview.mdx +776 -0
- package/docs/architecture/scheduler.mdx +818 -0
- package/docs/architecture/shell.mdx +885 -0
- package/docs/architecture/ui-extension-points.mdx +781 -0
- package/docs/architecture/user-states.mdx +794 -0
- package/docs/development/overview.mdx +21 -0
- package/docs/development/workflow.mdx +914 -0
- package/docs/getting-started/core-concepts.mdx +892 -0
- package/docs/getting-started/installation.mdx +780 -0
- package/docs/getting-started/overview.mdx +83 -0
- package/docs/getting-started/quick-start.mdx +940 -0
- package/docs/guides/adding-documentation-sites.mdx +1367 -0
- package/docs/guides/creating-services.mdx +1736 -0
- package/docs/guides/creating-ui-modules.mdx +1860 -0
- package/docs/guides/identity-providers.mdx +1007 -0
- package/docs/guides/mermaid-diagrams.mdx +212 -0
- package/docs/guides/using-feature-flags.mdx +1059 -0
- package/docs/guides/working-with-rooms.mdx +566 -0
- package/docs/index.mdx +57 -0
- package/docs/platform-cli/commands.mdx +604 -0
- package/docs/platform-cli/overview.mdx +195 -0
- package/package.json +5 -2
- package/skills/ba-platform/platform-cli.skill.md +26 -0
- package/skills/ba-platform/platform.skill.md +35 -0
- package/templates/application-monorepo-template/gitignore +95 -0
- package/templates/bootstrap-service-template/gitignore +57 -0
- package/templates/bootstrap-service-template/src/main.ts +6 -16
- package/templates/customization-ui-module-template/gitignore +73 -0
- package/templates/nestjs-service-module-template/gitignore +56 -0
- package/templates/platform-init-template/{{platformName}}-core/gitignore +97 -0
- package/templates/react-ui-module-template/Dockerfile +1 -1
- package/templates/react-ui-module-template/caddy/Caddyfile +1 -1
- package/templates/react-ui-module-template/gitignore +72 -0
|
@@ -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) |
|