primitive-admin 1.1.0-alpha.61 → 1.1.0-alpha.63
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/README.md +34 -27
- package/assets/skill/skills/primitive-platform/SKILL.md +59 -21
- package/dist/bin/primitive.js +10 -10
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/apps.js +40 -41
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/blob-buckets.js +7 -7
- package/dist/src/commands/blob-buckets.js.map +1 -1
- package/dist/src/commands/collection-type-configs.js +7 -7
- package/dist/src/commands/collection-type-configs.js.map +1 -1
- package/dist/src/commands/collections.js +47 -8
- package/dist/src/commands/collections.js.map +1 -1
- package/dist/src/commands/config.d.ts +23 -12
- package/dist/src/commands/config.js +80 -45
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/cron-triggers.js +6 -6
- package/dist/src/commands/cron-triggers.js.map +1 -1
- package/dist/src/commands/database-type-configs.d.ts +2 -0
- package/dist/src/commands/database-type-configs.js +171 -0
- package/dist/src/commands/database-type-configs.js.map +1 -0
- package/dist/src/commands/database-types.js +313 -13
- package/dist/src/commands/database-types.js.map +1 -1
- package/dist/src/commands/databases.js +35 -25
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.js +138 -11
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/email-templates.js +8 -8
- package/dist/src/commands/email-templates.js.map +1 -1
- package/dist/src/commands/group-type-configs.js +7 -7
- package/dist/src/commands/group-type-configs.js.map +1 -1
- package/dist/src/commands/init.js +1 -1
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/integrations.js +12 -197
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/llm.js +6 -9
- package/dist/src/commands/llm.js.map +1 -1
- package/dist/src/commands/metadata-category-configs.d.ts +12 -0
- package/dist/src/commands/metadata-category-configs.js +112 -0
- package/dist/src/commands/metadata-category-configs.js.map +1 -0
- package/dist/src/commands/metadata.js +4 -129
- package/dist/src/commands/metadata.js.map +1 -1
- package/dist/src/commands/prompts.js +24 -282
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/rule-sets.js +8 -8
- package/dist/src/commands/rule-sets.js.map +1 -1
- package/dist/src/commands/scripts.js +16 -201
- package/dist/src/commands/scripts.js.map +1 -1
- package/dist/src/commands/settings.d.ts +9 -12
- package/dist/src/commands/settings.js +79 -31
- package/dist/src/commands/settings.js.map +1 -1
- package/dist/src/commands/sync-app-settings.d.ts +24 -19
- package/dist/src/commands/sync-app-settings.js +48 -52
- package/dist/src/commands/sync-app-settings.js.map +1 -1
- package/dist/src/commands/sync.d.ts +1003 -53
- package/dist/src/commands/sync.js +4080 -882
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/vars.js +4 -4
- package/dist/src/commands/vars.js.map +1 -1
- package/dist/src/commands/webhooks.js +6 -6
- package/dist/src/commands/webhooks.js.map +1 -1
- package/dist/src/commands/workflows.d.ts +22 -0
- package/dist/src/commands/workflows.js +142 -446
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/access-rule-display.d.ts +21 -0
- package/dist/src/lib/access-rule-display.js +34 -0
- package/dist/src/lib/access-rule-display.js.map +1 -0
- package/dist/src/lib/api-client.d.ts +75 -37
- package/dist/src/lib/api-client.js +113 -59
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +6 -2
- package/dist/src/lib/codegen-shared/generatedFiles.js +9 -2
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +6 -6
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +8 -8
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -1
- package/dist/src/lib/config-object-descriptor.d.ts +24 -5
- package/dist/src/lib/config-object-descriptor.js +58 -10
- package/dist/src/lib/config-object-descriptor.js.map +1 -1
- package/dist/src/lib/config-payload.d.ts +1 -1
- package/dist/src/lib/config-payload.js +1 -1
- package/dist/src/lib/config-surface.d.ts +8 -8
- package/dist/src/lib/config-surface.js +10 -10
- package/dist/src/lib/config-surface.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTemplates.js +1 -1
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTypeIR.d.ts +1 -1
- package/dist/src/lib/generated-allowlist.js +11 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/generated-config-surfaces.d.ts +14 -14
- package/dist/src/lib/generated-config-surfaces.js +63 -35
- package/dist/src/lib/generated-config-surfaces.js.map +1 -1
- package/dist/src/lib/generated-template-lint.d.ts +16 -10
- package/dist/src/lib/generated-template-lint.js +59 -24
- package/dist/src/lib/generated-template-lint.js.map +1 -1
- package/dist/src/lib/google-client-secret-status.d.ts +1 -1
- package/dist/src/lib/google-client-secret-status.js +4 -4
- package/dist/src/lib/google-client-secret-status.js.map +1 -1
- package/dist/src/lib/migration-nag.d.ts +2 -2
- package/dist/src/lib/migration-nag.js +3 -3
- package/dist/src/lib/output.d.ts +1 -1
- package/dist/src/lib/output.js +1 -1
- package/dist/src/lib/platform-owned.d.ts +5 -5
- package/dist/src/lib/platform-owned.js +6 -6
- package/dist/src/lib/platform-owned.js.map +1 -1
- package/dist/src/lib/query-operators.d.ts +1 -1
- package/dist/src/lib/query-operators.js +1 -1
- package/dist/src/lib/signing-secret-status.d.ts +2 -2
- package/dist/src/lib/signing-secret-status.js +2 -2
- package/dist/src/lib/snapshots.d.ts +2 -2
- package/dist/src/lib/snapshots.js +2 -2
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +15 -2
- package/dist/src/lib/swift-codegen/dbGenerator.js +250 -18
- package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/generator.js +5 -4
- package/dist/src/lib/swift-codegen/generator.js.map +1 -1
- package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +7 -3
- package/dist/src/lib/swift-codegen/siblingSymbols.js +4 -1
- package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -1
- package/dist/src/lib/sync-dir-selector.d.ts +21 -0
- package/dist/src/lib/sync-dir-selector.js +30 -0
- package/dist/src/lib/sync-dir-selector.js.map +1 -0
- package/dist/src/lib/sync-paths.d.ts +39 -0
- package/dist/src/lib/sync-paths.js +70 -2
- package/dist/src/lib/sync-paths.js.map +1 -1
- package/dist/src/lib/sync-resource-types.d.ts +122 -31
- package/dist/src/lib/sync-resource-types.js +177 -42
- package/dist/src/lib/sync-resource-types.js.map +1 -1
- package/dist/src/lib/sync-selectors.d.ts +4 -4
- package/dist/src/lib/sync-selectors.js +4 -4
- package/dist/src/lib/toml-database-config.d.ts +4 -4
- package/dist/src/lib/toml-database-config.js +3 -3
- package/dist/src/lib/toml-database-config.js.map +1 -1
- package/dist/src/lib/toml-metadata-config.d.ts +4 -4
- package/dist/src/lib/toml-metadata-config.js +4 -4
- package/dist/src/lib/toml-native-form.d.ts +1 -1
- package/dist/src/lib/toml-native-form.js +1 -1
- package/dist/src/lib/toml-params-validator.d.ts +1 -1
- package/dist/src/lib/toml-params-validator.js +1 -1
- package/dist/src/lib/version-check.js +1 -1
- package/dist/src/lib/version-check.js.map +1 -1
- package/dist/src/lib/workflow-apply.d.ts +69 -10
- package/dist/src/lib/workflow-apply.js +99 -24
- package/dist/src/lib/workflow-apply.js.map +1 -1
- package/dist/src/lib/workflow-codegen/generator.js +1 -1
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -1
- package/dist/src/lib/workflow-config-apply.d.ts +1 -1
- package/dist/src/lib/workflow-config-apply.js +1 -1
- package/dist/src/lib/workflow-config-sidecar.d.ts +1 -1
- package/dist/src/lib/workflow-config-sidecar.js +1 -1
- package/dist/src/lib/workflow-config-sidecar.js.map +1 -1
- package/dist/src/lib/workflow-defaults.d.ts +30 -0
- package/dist/src/lib/workflow-defaults.js +41 -0
- package/dist/src/lib/workflow-defaults.js.map +1 -0
- package/dist/src/lib/workflow-include-preserve.d.ts +12 -7
- package/dist/src/lib/workflow-include-preserve.js +139 -6
- package/dist/src/lib/workflow-include-preserve.js.map +1 -1
- package/dist/src/lib/workflow-payload.d.ts +26 -14
- package/dist/src/lib/workflow-payload.js +61 -45
- package/dist/src/lib/workflow-payload.js.map +1 -1
- package/dist/src/lib/workflow-toml-validator.d.ts +19 -16
- package/dist/src/lib/workflow-toml-validator.js +19 -16
- package/dist/src/lib/workflow-toml-validator.js.map +1 -1
- package/dist/src/types/index.d.ts +15 -0
- package/dist/src/validators.d.ts +7 -7
- package/dist/src/validators.js +6 -6
- package/package.json +1 -3
- package/dist/src/lib/generated-workflow-model-fields.d.ts +0 -20
- package/dist/src/lib/generated-workflow-model-fields.js +0 -53
- package/dist/src/lib/generated-workflow-model-fields.js.map +0 -1
- package/dist/src/lib/workflow-field-descriptor.d.ts +0 -91
- package/dist/src/lib/workflow-field-descriptor.js +0 -153
- package/dist/src/lib/workflow-field-descriptor.js.map +0 -1
package/README.md
CHANGED
|
@@ -143,13 +143,13 @@ primitive apps delete <app-id> # Delete an app
|
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
App settings are configuration, so they are authored in `app.toml` and applied
|
|
146
|
-
with `
|
|
146
|
+
with `config push` (issue #2645) — there is no `apps update`:
|
|
147
147
|
|
|
148
148
|
```bash
|
|
149
|
-
primitive
|
|
150
|
-
primitive
|
|
149
|
+
primitive apps get # what the server is running
|
|
150
|
+
primitive config pull --only app # write those settings into app.toml
|
|
151
151
|
primitive config set app app.mode=invite-only
|
|
152
|
-
primitive
|
|
152
|
+
primitive config push --only app # apply the edit
|
|
153
153
|
```
|
|
154
154
|
- `--google-oauth` / `--no-google-oauth` - Enable/disable Google OAuth
|
|
155
155
|
- `--passkey` / `--no-passkey` - Enable/disable passkey auth
|
|
@@ -193,12 +193,12 @@ primitive integrations logs <id> # View invocation logs
|
|
|
193
193
|
```
|
|
194
194
|
|
|
195
195
|
An integration is authored in `integrations/<key>.toml` and applied with
|
|
196
|
-
`
|
|
196
|
+
`config push` — creating, updating and deleting one are all edits to that file:
|
|
197
197
|
|
|
198
198
|
```bash
|
|
199
199
|
primitive config fields integration # its keys, types, defaults
|
|
200
|
-
primitive config
|
|
201
|
-
primitive
|
|
200
|
+
primitive config create integration weather-api # scaffold the file
|
|
201
|
+
primitive config push --only integration/weather-api
|
|
202
202
|
```
|
|
203
203
|
|
|
204
204
|
**Secrets management:**
|
|
@@ -239,11 +239,11 @@ primitive prompts execute <id> --vars '{}' # Execute prompt
|
|
|
239
239
|
primitive prompts preview <id> --vars '{}' # Preview rendered template
|
|
240
240
|
```
|
|
241
241
|
|
|
242
|
-
A prompt is authored in `prompts/<key>.toml` and applied with `
|
|
242
|
+
A prompt is authored in `prompts/<key>.toml` and applied with `config push`:
|
|
243
243
|
|
|
244
244
|
```bash
|
|
245
|
-
primitive config
|
|
246
|
-
primitive
|
|
245
|
+
primitive config create prompt summarizer
|
|
246
|
+
primitive config push --only prompt/summarizer
|
|
247
247
|
```
|
|
248
248
|
|
|
249
249
|
**Configs (prompt variations)** are `[[configs]]` entries in that same file —
|
|
@@ -268,16 +268,18 @@ primitive workflows enable <id> # Put it back
|
|
|
268
268
|
```
|
|
269
269
|
|
|
270
270
|
A workflow is authored in `workflows/<key>.toml` (named config bodies in
|
|
271
|
-
`workflows/<key>.configs/<name>.toml`) and applied with `
|
|
271
|
+
`workflows/<key>.configs/<name>.toml`) and applied with `config push`:
|
|
272
272
|
|
|
273
273
|
```bash
|
|
274
|
-
primitive config
|
|
275
|
-
primitive
|
|
274
|
+
primitive config create workflow process-doc
|
|
275
|
+
primitive config push --only workflow/process-doc
|
|
276
276
|
```
|
|
277
277
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
278
|
+
Revisions are read-only history from the retired legacy path (issue #2768:
|
|
279
|
+
`workflows publish` and its endpoint are gone). A workflow created before the
|
|
280
|
+
configuration model — one with no active config — is migrated by authoring
|
|
281
|
+
`workflows/<key>.configs/<name>.toml`, setting `activeConfigName = "<name>"` in
|
|
282
|
+
`workflows/<key>.toml`, and pushing.
|
|
281
283
|
|
|
282
284
|
**Run management:**
|
|
283
285
|
```bash
|
|
@@ -285,7 +287,7 @@ primitive workflows runs list <workflow-id>
|
|
|
285
287
|
primitive workflows runs status <workflow-id> <run-id>
|
|
286
288
|
```
|
|
287
289
|
|
|
288
|
-
**Workflow TOML push-time validation (issue #685):** `primitive
|
|
290
|
+
**Workflow TOML push-time validation (issue #685):** `primitive config push` —
|
|
289
291
|
the only command that sends a workflow TOML since #2645 — runs the
|
|
290
292
|
file through `cli/src/lib/workflow-toml-validator.ts` before sending it to
|
|
291
293
|
the server. For a step whose `kind` the CLI knows about, the validator
|
|
@@ -429,7 +431,7 @@ primitive databases export [app-id] <database-id> --output <dir> # Export r
|
|
|
429
431
|
primitive databases import [app-id] <path> --overwrite --dry-run # Import from export directory
|
|
430
432
|
```
|
|
431
433
|
|
|
432
|
-
Export creates a directory with `metadata.json`, `records.jsonl`, `indexes.json`, and `constraints.json`. Import restores records and indexes into a new or existing database. Database type config (operations, triggers, access rules) is managed separately via `primitive
|
|
434
|
+
Export creates a directory with `metadata.json`, `records.jsonl`, `indexes.json`, and `constraints.json`. Import restores records and indexes into a new or existing database. Database type config (operations, triggers, access rules) is managed separately via `primitive config` — run `config push` on the target app before importing.
|
|
433
435
|
|
|
434
436
|
### Documents
|
|
435
437
|
|
|
@@ -558,15 +560,15 @@ primitive catalog integrations update <catalog-id> [options]
|
|
|
558
560
|
primitive catalog integrations delete <catalog-id>
|
|
559
561
|
```
|
|
560
562
|
|
|
561
|
-
###
|
|
563
|
+
### Config (TOML Configuration)
|
|
562
564
|
|
|
563
|
-
|
|
565
|
+
Author app configuration as TOML files and reconcile them with the server.
|
|
564
566
|
|
|
565
567
|
```bash
|
|
566
|
-
primitive
|
|
567
|
-
primitive
|
|
568
|
-
primitive
|
|
569
|
-
primitive
|
|
568
|
+
primitive config init [app-id] --dir ./config # Initialize config directory
|
|
569
|
+
primitive config pull [app-id] --dir ./config # Pull remote config to local
|
|
570
|
+
primitive config push [app-id] --dir ./config # Push local config to remote
|
|
571
|
+
primitive config diff [app-id] --dir ./config # Show differences
|
|
570
572
|
```
|
|
571
573
|
|
|
572
574
|
**Options:**
|
|
@@ -767,7 +769,7 @@ CLI).
|
|
|
767
769
|
|
|
768
770
|
### `primitive-admin/validators` — TOML validators
|
|
769
771
|
|
|
770
|
-
The TOML validators that `
|
|
772
|
+
The TOML validators that `config push` runs as its load-bearing gate are exported
|
|
771
773
|
from the `primitive-admin/validators` subpath (ESM-only, with types) so external
|
|
772
774
|
tooling can validate exactly the way the published CLI does — instead of
|
|
773
775
|
re-implementing the flow and silently drifting.
|
|
@@ -787,8 +789,8 @@ Two contracts:
|
|
|
787
789
|
- **`validateWorkflowTomlSource(raw, filePath)`** — pass the **raw TOML source
|
|
788
790
|
string** and the workflow's path. It runs the *identical* parse →
|
|
789
791
|
`expandWorkflowTomlData()` (`include` fragment expansion) → `validateWorkflowToml`
|
|
790
|
-
→ `formatWorkflowTomlErrors` path that `
|
|
791
|
-
from `
|
|
792
|
+
→ `formatWorkflowTomlErrors` path that `config push` runs, so it cannot diverge
|
|
793
|
+
from `config push` on workflow `include` fragments. Returns
|
|
792
794
|
`{ errors, formatted }` (`formatted` is `null` when valid). Fragment files
|
|
793
795
|
resolve relative to `<filePath>/../../workflow-fragments/`, matching the CLI.
|
|
794
796
|
|
|
@@ -834,6 +836,11 @@ Internal helpers (`collectParamRefs`, `declaredParamNames`,
|
|
|
834
836
|
|
|
835
837
|
## Development
|
|
836
838
|
|
|
839
|
+
Before adding or changing a command, read [`docs/cli-design.md`](../docs/cli-design.md)
|
|
840
|
+
in the repo root — the CLI's design rules (which verbs each kind of noun carries,
|
|
841
|
+
TOML-only authoring, deletion and naming rules, what a breaking change obliges).
|
|
842
|
+
It is internal maintainer guidance and is not published.
|
|
843
|
+
|
|
837
844
|
```bash
|
|
838
845
|
# Run without building (uses tsx)
|
|
839
846
|
pnpm run cli:dev -- login
|
|
@@ -4,7 +4,7 @@ description: >
|
|
|
4
4
|
Expert guide for building applications on the Primitive platform. MUST be used whenever the user
|
|
5
5
|
is writing code that uses js-bao, js-bao-wss-client, primitive-app components, or any Primitive
|
|
6
6
|
platform feature (documents, databases, workflows, prompts, integrations, blobs, authentication,
|
|
7
|
-
users/groups). Also trigger whenever about to run any `primitive` CLI command (e.g., primitive
|
|
7
|
+
users/groups). Also trigger whenever about to run any `primitive` CLI command (e.g., primitive config, primitive integrations, primitive apps, primitive env) to ensure Step 0 CLI verification is performed first. After writing or modifying code that touches Primitive
|
|
8
8
|
APIs, this skill cross-references the implementation against official guides and automatically
|
|
9
9
|
corrects common mistakes. Use this skill even if the user doesn't explicitly ask for it —
|
|
10
10
|
any Primitive-related code should be validated against current best practices. Also use it
|
|
@@ -109,7 +109,7 @@ dependencies.
|
|
|
109
109
|
|
|
110
110
|
**Only fall back to global state if the user explicitly declines project setup** after you've
|
|
111
111
|
recommended it. Even then, name the exact server/app the command will hit and get clear
|
|
112
|
-
confirmation before running anything mutating (`primitive
|
|
112
|
+
confirmation before running anything mutating (`primitive config push`, `primitive apps create`, etc.).
|
|
113
113
|
A read-only command (`whoami`, `guides list`) against global state is fine while you're still
|
|
114
114
|
working out the config.
|
|
115
115
|
|
|
@@ -117,7 +117,7 @@ Do not rely on `.env` files like `PRIMITIVE_API_URL` to control CLI targeting
|
|
|
117
117
|
read by the CLI in project mode, and the project config is the source of truth.
|
|
118
118
|
|
|
119
119
|
**Why this matters:** If the CLI is pointed at the wrong environment (e.g., prod instead of dev),
|
|
120
|
-
commands like `primitive
|
|
120
|
+
commands like `primitive config push` will modify the wrong server. Silent fallback to global state
|
|
121
121
|
makes this exact mistake easy to commit. Setting up project config is the durable fix — verify and
|
|
122
122
|
surface before running mutating operations.
|
|
123
123
|
|
|
@@ -166,7 +166,7 @@ guides. The guides contain:
|
|
|
166
166
|
- Complete API documentation with method signatures
|
|
167
167
|
- Working code examples in the requested language (e.g. TypeScript or Swift)
|
|
168
168
|
- Common patterns and anti-patterns
|
|
169
|
-
- Configuration examples (TOML files for `primitive
|
|
169
|
+
- Configuration examples (TOML files for `primitive config`)
|
|
170
170
|
- Decision frameworks for architecture choices
|
|
171
171
|
|
|
172
172
|
**Do not guess or assume API patterns.** If you're unsure about a method signature, parameter,
|
|
@@ -177,8 +177,8 @@ or pattern, fetch the guide. The guides are comprehensive and authoritative.
|
|
|
177
177
|
When writing Primitive code:
|
|
178
178
|
|
|
179
179
|
1. **Follow the patterns from the fetched guides exactly** — method names, argument order, lifecycle patterns
|
|
180
|
-
2. **Use `primitive
|
|
181
|
-
3. **Configuration lives in TOML files** in version control, pushed via `primitive
|
|
180
|
+
2. **Use `primitive config`** for all backend configuration (workflows, prompts, integrations, databases)
|
|
181
|
+
3. **Configuration lives in TOML files** in version control, pushed via `primitive config push` — including test cases, authored as sidecars at `prompts/<key>.tests/`, `workflows/<key>.tests/`, `transforms/<name>.tests/` and `integrations/<key>.tests/` (one `[test]` file per case, with its attachments in a directory of the same name)
|
|
182
182
|
4. **Run `pnpm codegen`** after creating or modifying js-bao models
|
|
183
183
|
|
|
184
184
|
## Step 4: Post-Code Review (Automatic)
|
|
@@ -204,14 +204,15 @@ Compare the written code against the guide content:
|
|
|
204
204
|
- **Lifecycle management** — Are documents opened before queries? Is auth checked first?
|
|
205
205
|
- **Access control** — Are CEL expressions or permissions configured properly?
|
|
206
206
|
- **Anti-patterns** — Does the code do anything the guide explicitly warns against?
|
|
207
|
-
- **
|
|
207
|
+
- **Untyped workflow invocation** — Is `client.workflows.start`/`runSync` called with a string-literal `workflowKey` and a hand-typed/cast `input`/`output` (e.g. `result.output as {...}`) instead of a generated invoker? That's a finding whenever the workflow has an `inputSchema`/`outputSchema` to generate from — regenerate with `primitive workflows codegen` (`--lang swift` for iOS/macOS) and call through the factory it emits instead, per the workflows guide's "Typed invocation (codegen)" section.
|
|
208
|
+
- **Missing steps** — Does the code need `pnpm codegen`, `primitive workflows codegen`, `primitive config push`, or other follow-up?
|
|
208
209
|
|
|
209
210
|
### 4c. Report and Fix
|
|
210
211
|
If issues are found:
|
|
211
212
|
1. **Explain the issue** — cite the specific guide section that applies
|
|
212
213
|
2. **Show the fix** — provide corrected code
|
|
213
214
|
3. **Apply the fix** — edit the file directly (don't just suggest, actually fix it)
|
|
214
|
-
4. **Note any CLI commands needed** — e.g., `pnpm codegen` or `primitive
|
|
215
|
+
4. **Note any CLI commands needed** — e.g., `pnpm codegen` or `primitive config push`
|
|
215
216
|
|
|
216
217
|
If no issues are found, briefly confirm the code follows best practices.
|
|
217
218
|
|
|
@@ -247,10 +248,10 @@ primitive guides get <topic> # Read a guide's default variant
|
|
|
247
248
|
primitive guides get <topic> --language swift --platform ios # Read a specific language/platform variant
|
|
248
249
|
|
|
249
250
|
# Configuration as Code
|
|
250
|
-
primitive
|
|
251
|
-
primitive
|
|
252
|
-
primitive
|
|
253
|
-
primitive
|
|
251
|
+
primitive config init --dir ./config # Initialize config directory
|
|
252
|
+
primitive config pull --dir ./config # Pull config from server
|
|
253
|
+
primitive config push --dir ./config # Push config to server
|
|
254
|
+
primitive config diff --dir ./config # Preview changes before push
|
|
254
255
|
|
|
255
256
|
# Common operations
|
|
256
257
|
primitive apps list # List apps on the active env's server
|
|
@@ -279,6 +280,11 @@ primitive integrations logs <integration-id> # outbound calls: status,
|
|
|
279
280
|
primitive webhooks events <webhook-id> # inbound deliveries and how they were handled
|
|
280
281
|
primitive analytics events # app activity events
|
|
281
282
|
|
|
283
|
+
# Per-subject analytics — one home, the analytics noun
|
|
284
|
+
primitive analytics workflows --window-days 7 # top workflows by runs
|
|
285
|
+
primitive analytics prompts --window-days 7 # top prompts by executions
|
|
286
|
+
primitive analytics integrations # calls, error rate, latency
|
|
287
|
+
|
|
282
288
|
# Blob storage
|
|
283
289
|
primitive blob-buckets list # buckets in the app (app-scoped: no selector)
|
|
284
290
|
primitive blob-buckets head <bucket> <key> # object metadata without downloading
|
|
@@ -294,9 +300,13 @@ primitive documents records query <document> <model-name> [--filter '{...}']
|
|
|
294
300
|
primitive documents records get <document> <model-name> <record-id>
|
|
295
301
|
primitive documents dump <document-id> # every model's records as JSON
|
|
296
302
|
primitive documents export <document-id> # dump a document's contents
|
|
303
|
+
primitive documents create "<title>" [--owner <user-id-or-email>] # mint a document (--owner needs a super-admin or assigned-console-admin token; app-role admins create as themselves)
|
|
304
|
+
primitive documents delete <document-id> [-y] [--json] # delete a document (document owner / app owner / super-admin or assigned-console-admin; app-role admins only via a containing collection's document.delete rule)
|
|
297
305
|
|
|
298
306
|
# Metadata
|
|
299
|
-
primitive metadata get <type> <id> <category> # resource metadata
|
|
307
|
+
primitive metadata get <type> <id> <category> # resource metadata VALUES
|
|
308
|
+
primitive metadata-category-configs list # category DEFINITIONS (schema + read/write rules)
|
|
309
|
+
primitive metadata-category-configs get <type> <category>
|
|
300
310
|
```
|
|
301
311
|
|
|
302
312
|
**Uniform flags across every inspection command:**
|
|
@@ -304,7 +314,10 @@ primitive metadata get <type> <id> <category> # resource metadata
|
|
|
304
314
|
- `--app <id>` — target app (falls back to the resolved env's app).
|
|
305
315
|
- `--json` — the output you parse in scripts. Most commands print the endpoint
|
|
306
316
|
payload as-is; the log views below normalize theirs into the shared item
|
|
307
|
-
shape. Either way it is a JSON document, never a bare array
|
|
317
|
+
shape. Either way it is a JSON document, never a bare array — except the
|
|
318
|
+
type-config readers (`group-type-configs`, `collection-type-configs`,
|
|
319
|
+
`metadata-category-configs`), whose `list --json` prints the configs as a
|
|
320
|
+
bare array (`jq '.[]'`). Data goes to
|
|
308
321
|
stdout; status, warnings and the `CLI Version: …` banner go to stderr — so
|
|
309
322
|
even the always-JSON commands that take no `--json` flag pipe cleanly
|
|
310
323
|
(`primitive documents dump <doc> | jq .`).
|
|
@@ -588,15 +601,28 @@ blocks>
|
|
|
588
601
|
## Expected behavior
|
|
589
602
|
<what should happen instead, stated as an observable outcome — this is what
|
|
590
603
|
"fixed" means, and what a fix will be tested against>
|
|
604
|
+
|
|
605
|
+
## Design review needed?
|
|
606
|
+
<tick any that apply; leave all unticked if the fix looks self-contained>
|
|
607
|
+
|
|
608
|
+
- [ ] Involves a critical security decision (auth, permissions, CEL, secrets, webhook
|
|
609
|
+
verification, DO routing)
|
|
610
|
+
- [ ] Risks a performance regression on a per-request, per-message or per-connection path
|
|
611
|
+
- [ ] Requires a data model or index change (`models.yaml`)
|
|
612
|
+
- [ ] Breaks an existing API contract (removes or retypes something in `openapi.json`, or
|
|
613
|
+
changes a `src/client` public signature non-additively)
|
|
591
614
|
```
|
|
592
615
|
|
|
593
616
|
Write "Expected behavior" as the acceptance criterion: the observable outcome that
|
|
594
617
|
defines the bug as fixed. If prior investigation exists (an earlier thread, a
|
|
595
618
|
session's debugging), link it — don't inline a root-cause theory as fact.
|
|
596
619
|
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
620
|
+
The "Design review needed?" checkboxes decide the bug's route: any tick sends it
|
|
621
|
+
through the design gate; all unticked sends it straight to implementation, with
|
|
622
|
+
"Expected behavior" as the acceptance criteria. When unsure, leave a box unticked —
|
|
623
|
+
the worker re-checks against its own diff and routes itself back if one applies.
|
|
624
|
+
|
|
625
|
+
Labels: `type:bug` + `state:queued`.
|
|
600
626
|
|
|
601
627
|
### Features / enhancements / platform extensions
|
|
602
628
|
|
|
@@ -618,7 +644,7 @@ from the last event it saw across restarts" — not "add a `resumeAfter` token t
|
|
|
618
644
|
list endpoint". If you have a design idea worth preserving, put it in a comment,
|
|
619
645
|
clearly labeled as an idea — never in the body.
|
|
620
646
|
|
|
621
|
-
Labels: `type:feature` + `
|
|
647
|
+
Labels: `type:feature` + `state:queued`.
|
|
622
648
|
|
|
623
649
|
### Filing
|
|
624
650
|
|
|
@@ -630,16 +656,28 @@ gh issue list --repo Primitive-Labs/js-bao-wss --search "<keywords>" --state ope
|
|
|
630
656
|
--json number,title
|
|
631
657
|
```
|
|
632
658
|
|
|
633
|
-
Then create the issue with labels only —
|
|
634
|
-
unassigned is the correct starting state)
|
|
659
|
+
Then create the issue with labels only — one `type:*` plus `state:queued`, **no
|
|
660
|
+
assignee** (triage assigns sponsors; unassigned is the correct starting state), no
|
|
661
|
+
priority labels, and no `dispatch-v3` (adding that label is triage's assertion that
|
|
662
|
+
the filing is complete — never the filer's):
|
|
635
663
|
|
|
636
664
|
```bash
|
|
637
665
|
gh issue create --repo Primitive-Labs/js-bao-wss \
|
|
638
666
|
--title "<one-line symptom or need>" \
|
|
639
|
-
--label "type:bug,
|
|
667
|
+
--label "type:bug,state:queued" \
|
|
640
668
|
--body "<template body>"
|
|
641
669
|
```
|
|
642
670
|
|
|
671
|
+
The templates above mirror the canonical ones in the js-bao-wss repo at
|
|
672
|
+
`.claude/skills/_shared/templates/` (`bug-filing.md`, `feature-filing.md`,
|
|
673
|
+
`docs-filing.md`), which the pipeline validates against with
|
|
674
|
+
`.claude/skills/_shared/check-filing.sh` before an issue can be picked up — a body
|
|
675
|
+
missing a required section stalls in triage until a human repairs it. If the
|
|
676
|
+
templates here and the repo's ever disagree, the repo's win. When working inside a
|
|
677
|
+
js-bao-wss checkout, don't file by hand at all: use that repo's `/file-issue` skill,
|
|
678
|
+
which interviews for the sections, validates the draft offline, and files with the
|
|
679
|
+
right labels.
|
|
680
|
+
|
|
643
681
|
### Follow-up comments on existing issues
|
|
644
682
|
|
|
645
683
|
When the duplicate search finds an issue that already covers the problem, comment
|
package/dist/bin/primitive.js
CHANGED
|
@@ -21,23 +21,22 @@ import { registerWorkflowsCommands } from "../src/commands/workflows.js";
|
|
|
21
21
|
import { registerAdminsCommands } from "../src/commands/admins.js";
|
|
22
22
|
import { registerCatalogCommands } from "../src/commands/catalog.js";
|
|
23
23
|
import { registerAnalyticsCommands } from "../src/commands/analytics.js";
|
|
24
|
-
import {
|
|
24
|
+
import { registerConfigSyncCommands } from "../src/commands/sync.js";
|
|
25
25
|
import { registerConfigCommands } from "../src/commands/config.js";
|
|
26
|
-
import { registerSettingsCommands } from "../src/commands/settings.js";
|
|
27
|
-
import { registerLlmCommands } from "../src/commands/llm.js";
|
|
28
26
|
import { registerComparisonsCommands } from "../src/commands/comparisons.js";
|
|
29
27
|
import { registerTokensCommands } from "../src/commands/tokens.js";
|
|
30
28
|
import { registerDatabasesCommands } from "../src/commands/databases.js";
|
|
31
29
|
import { registerGroupsCommands } from "../src/commands/groups.js";
|
|
32
30
|
import { registerRuleSetsCommands } from "../src/commands/rule-sets.js";
|
|
33
31
|
import { registerGroupTypeConfigsCommands } from "../src/commands/group-type-configs.js";
|
|
34
|
-
import {
|
|
32
|
+
import { registerDatabaseTypeConfigsCommands } from "../src/commands/database-type-configs.js";
|
|
35
33
|
import { registerGuidesCommands } from "../src/commands/guides.js";
|
|
36
34
|
import { registerDocumentsCommands } from "../src/commands/documents.js";
|
|
37
35
|
import chalk from "chalk";
|
|
38
36
|
import { registerEmailTemplatesCommands } from "../src/commands/email-templates.js";
|
|
39
37
|
import { registerCollectionsCommands } from "../src/commands/collections.js";
|
|
40
38
|
import { registerCollectionTypeConfigsCommands } from "../src/commands/collection-type-configs.js";
|
|
39
|
+
import { registerMetadataCategoryConfigsCommands } from "../src/commands/metadata-category-configs.js";
|
|
41
40
|
import { error } from "../src/lib/output.js";
|
|
42
41
|
import { installGlobalCrashHandlers } from "../src/lib/crash-handlers.js";
|
|
43
42
|
import { buildCliManifest } from "../src/lib/cli-manifest.js";
|
|
@@ -225,7 +224,7 @@ Examples:
|
|
|
225
224
|
$ primitive env add prod --api-url ... # Add a new environment
|
|
226
225
|
$ primitive --env prod users list # Run a command against a specific env
|
|
227
226
|
$ primitive login # Authenticate via browser OAuth
|
|
228
|
-
$ primitive
|
|
227
|
+
$ primitive config pull # Pull config (auto per-env path)
|
|
229
228
|
|
|
230
229
|
Project configuration (.primitive/config.json):
|
|
231
230
|
In a directory with a .primitive/config.json (or any subdirectory of one),
|
|
@@ -268,22 +267,23 @@ registerWorkflowsCommands(program);
|
|
|
268
267
|
registerAdminsCommands(program);
|
|
269
268
|
registerCatalogCommands(program);
|
|
270
269
|
registerAnalyticsCommands(program);
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
270
|
+
// One noun owns the TOML configuration tree (issue #2759): `config` carries
|
|
271
|
+
// the local authoring verbs and the server-reconciling verbs that used to be
|
|
272
|
+
// the `sync` group, so the group is created once and handed on.
|
|
273
|
+
registerConfigSyncCommands(registerConfigCommands(program));
|
|
275
274
|
registerComparisonsCommands(program);
|
|
276
275
|
registerTokensCommands(program);
|
|
277
276
|
registerDatabasesCommands(program);
|
|
278
277
|
registerGroupsCommands(program);
|
|
279
278
|
registerRuleSetsCommands(program);
|
|
280
279
|
registerGroupTypeConfigsCommands(program);
|
|
281
|
-
|
|
280
|
+
registerDatabaseTypeConfigsCommands(program);
|
|
282
281
|
registerGuidesCommands(program);
|
|
283
282
|
registerDocumentsCommands(program);
|
|
284
283
|
registerEmailTemplatesCommands(program);
|
|
285
284
|
registerCollectionsCommands(program);
|
|
286
285
|
registerCollectionTypeConfigsCommands(program);
|
|
286
|
+
registerMetadataCategoryConfigsCommands(program);
|
|
287
287
|
registerSkillCommands(program);
|
|
288
288
|
registerSecretsCommands(program);
|
|
289
289
|
registerVarsCommands(program);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../bin/primitive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../bin/primitive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ApiClient } from "../lib/api-client.js";
|
|
2
|
-
import { loadCredentials,
|
|
3
|
-
import { success, error, info, keyValue, result as printResult, formatTable, formatId, json,
|
|
2
|
+
import { loadCredentials, resolveAppId } from "../lib/config.js";
|
|
3
|
+
import { success, error, info, keyValue, result as printResult, formatTable, formatId, json, } from "../lib/output.js";
|
|
4
|
+
import { renderAppSettings } from "./sync-app-settings.js";
|
|
4
5
|
export function registerAppsCommands(program) {
|
|
5
6
|
const apps = program
|
|
6
7
|
.command("apps")
|
|
@@ -9,8 +10,9 @@ export function registerAppsCommands(program) {
|
|
|
9
10
|
Examples:
|
|
10
11
|
$ primitive apps list
|
|
11
12
|
$ primitive apps create "My New App"
|
|
12
|
-
$ primitive
|
|
13
|
-
$ primitive
|
|
13
|
+
$ primitive apps get # details + server settings
|
|
14
|
+
$ primitive config set app auth.mode=invite-only # app settings live in app.toml
|
|
15
|
+
$ primitive config push --only app # apply them
|
|
14
16
|
`);
|
|
15
17
|
// List apps
|
|
16
18
|
apps
|
|
@@ -72,19 +74,45 @@ Examples:
|
|
|
72
74
|
}
|
|
73
75
|
});
|
|
74
76
|
// Get app details
|
|
77
|
+
//
|
|
78
|
+
// The app-settings reader (issue #2759). A separate `settings` group
|
|
79
|
+
// rendered the full descriptor-driven server-effective view while this
|
|
80
|
+
// command printed a hand-curated subset of the same response — two readers
|
|
81
|
+
// of one piece of state, and the curated one silently omitted every setting
|
|
82
|
+
// nobody remembered to add. Reading an app's configuration is now the same
|
|
83
|
+
// shape as reading a workflow's or a prompt's: the object's own noun, one
|
|
84
|
+
// `get`.
|
|
75
85
|
apps
|
|
76
86
|
.command("get")
|
|
77
|
-
.description("Get app details and settings")
|
|
87
|
+
.description("Get app details and the settings the server is running")
|
|
78
88
|
.argument("[app-id]", "App ID (uses current app if not specified)")
|
|
89
|
+
.option("--app <app-id>", "App ID")
|
|
79
90
|
.option("--json", "Output as JSON")
|
|
91
|
+
.addHelpText("after", `
|
|
92
|
+
app.toml is the ONLY way to manage app configuration (issue #2645): edit it and
|
|
93
|
+
'primitive config push --only app' applies it, 'primitive config pull --only app'
|
|
94
|
+
writes the server's values back into it, and 'primitive config diff --only app'
|
|
95
|
+
compares the two. 'primitive config fields app' lists its keys, types and
|
|
96
|
+
defaults. The Google OAuth client secret is an ordinary [auth] key holding a
|
|
97
|
+
reference into the app's secret store, never the secret itself: store the value
|
|
98
|
+
with 'primitive secrets set GOOGLE_CLIENT_SECRET --value <secret>', then set
|
|
99
|
+
googleClientSecret = "{{secrets.GOOGLE_CLIENT_SECRET}}" in app.toml. A literal
|
|
100
|
+
secret there is rejected by the server.
|
|
101
|
+
|
|
102
|
+
Examples:
|
|
103
|
+
$ primitive apps get # App details + current server settings
|
|
104
|
+
$ primitive apps get --json # Machine-readable
|
|
105
|
+
`)
|
|
80
106
|
.action(async (appId, options) => {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
107
|
+
// The shared resolver, as every other `get` uses — and as the reader
|
|
108
|
+
// folded in here used: it is the one that tells an unauthenticated
|
|
109
|
+
// project whose environment already declares an appId to log into THAT
|
|
110
|
+
// environment, rather than claiming no app was specified.
|
|
111
|
+
const resolvedAppId = resolveAppId(appId, options);
|
|
86
112
|
const client = new ApiClient();
|
|
87
113
|
try {
|
|
114
|
+
// A member without settings access still gets the app's identity: the
|
|
115
|
+
// settings fetch is allowed to fail, and its absence is not an error.
|
|
88
116
|
const [appInfo, settings] = await Promise.all([
|
|
89
117
|
client.getApp(resolvedAppId),
|
|
90
118
|
client.getAppSettings(resolvedAppId).catch(() => null),
|
|
@@ -95,37 +123,8 @@ Examples:
|
|
|
95
123
|
}
|
|
96
124
|
printResult("App ID", appInfo.id || resolvedAppId);
|
|
97
125
|
printResult("Name", appInfo.name);
|
|
98
|
-
if (settings)
|
|
99
|
-
|
|
100
|
-
printResult("Mode", settings.mode);
|
|
101
|
-
printResult("Waitlist Enabled", settings.waitlistEnabled);
|
|
102
|
-
printResult("Base URL", settings.baseUrl);
|
|
103
|
-
divider();
|
|
104
|
-
info("Authentication:");
|
|
105
|
-
printResult(" Google OAuth", settings.googleOAuthEnabled);
|
|
106
|
-
printResult(" Passkey", settings.passkeyEnabled);
|
|
107
|
-
printResult(" Magic Link", settings.magicLinkEnabled);
|
|
108
|
-
printResult(" OTP (Email Code)", settings.otpEnabled);
|
|
109
|
-
divider();
|
|
110
|
-
info("Member Invitations:");
|
|
111
|
-
printResult(" Enabled", settings.memberInvitationsEnabled);
|
|
112
|
-
printResult(" Limit", settings.memberInvitationLimit === 0
|
|
113
|
-
? "0 (unlimited)"
|
|
114
|
-
: settings.memberInvitationLimit);
|
|
115
|
-
if (settings.corsMode === "custom") {
|
|
116
|
-
divider();
|
|
117
|
-
info("CORS:");
|
|
118
|
-
printResult(" Mode", settings.corsMode);
|
|
119
|
-
printResult(" Allowed Origins", settings.corsAllowedOrigins?.join(", ") || "-");
|
|
120
|
-
printResult(" Allow Credentials", settings.corsAllowCredentials);
|
|
121
|
-
}
|
|
122
|
-
if (Array.isArray(settings.testAccountBaseEmails) &&
|
|
123
|
-
settings.testAccountBaseEmails.length > 0) {
|
|
124
|
-
divider();
|
|
125
|
-
info("Test Account Whitelist (+primitivetest bypass):");
|
|
126
|
-
printResult(" Base Emails", settings.testAccountBaseEmails.join(", "));
|
|
127
|
-
}
|
|
128
|
-
}
|
|
126
|
+
if (settings)
|
|
127
|
+
renderAppSettings(settings);
|
|
129
128
|
}
|
|
130
129
|
catch (err) {
|
|
131
130
|
error(err.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps.js","sourceRoot":"","sources":["../../../src/commands/apps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"apps.js","sourceRoot":"","sources":["../../../src/commands/apps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EACL,OAAO,EACP,KAAK,EACL,IAAI,EAEJ,QAAQ,EACR,MAAM,IAAI,WAAW,EACrB,WAAW,EACX,QAAQ,EAGR,IAAI,GAEL,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yCAAyC,CAAC;SACtD,WAAW,CAAC,OAAO,EAAE;;;;;;;CAOzB,CAAC,CAAC;IAED,YAAY;IACZ,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YAEnD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YAED,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,QAAQ,EAAE;gBACpB,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC7C,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC/B,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;aAChC,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,aAAa;IACb,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;SAC9B,MAAM,CAAC,uBAAuB,EAAE,gEAAgE,CAAC;SACjG,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;QAEtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAQ,EAAE,IAAI,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;YACjD,CAAC;iBAAM,IAAI,WAAW,EAAE,KAAK,EAAE,CAAC;gBAC9B,OAAO,CAAC,iBAAiB,GAAG,WAAW,CAAC,KAAK,CAAC;YAChD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAE/C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YAED,OAAO,CAAC,gBAAgB,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;YACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,kBAAkB;IAClB,EAAE;IACF,qEAAqE;IACrE,uEAAuE;IACvE,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,0EAA0E;IAC1E,SAAS;IACT,IAAI;SACD,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,wDAAwD,CAAC;SACrE,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;SAClE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;CAczB,CAAC;SACG,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,qEAAqE;QACrE,mEAAmE;QACnE,uEAAuE;QACvE,0DAA0D;QAC1D,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,sEAAsE;YACtE,sEAAsE;YACtE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC5C,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC5B,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aACvD,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;YAED,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,aAAa,CAAC,CAAC;YACnD,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAElC,IAAI,QAAQ;gBAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IACL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;SACxC,MAAM,CAAC,kBAAkB,EAAE,+CAA+C,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,0CAA0C;QAC1C,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3C,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,wBAAwB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB;QACnB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,oDAAoD;YACpD,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;gBAChC,KAAK,CAAC,sCAAsC,OAAO,WAAW,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;gBACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;gBAClD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,wCAAwC;iBAClD;aACF,CAAC,CAAC;YACH,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;gBAC1B,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO,CAAC,QAAQ,OAAO,MAAM,KAAK,YAAY,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -12,11 +12,11 @@ export function registerBlobBucketsCommands(program) {
|
|
|
12
12
|
.addHelpText("after", `
|
|
13
13
|
Examples:
|
|
14
14
|
$ primitive blob-buckets list
|
|
15
|
-
$ primitive config
|
|
16
|
-
$ primitive
|
|
15
|
+
$ primitive config create blob-bucket uploads # scaffold blob-buckets/uploads.toml
|
|
16
|
+
$ primitive config push --only blob-bucket/uploads # apply it
|
|
17
17
|
$ primitive blob-buckets get uploads
|
|
18
18
|
$ primitive config set blob-bucket/uploads bucket.preset=authenticated
|
|
19
|
-
$ primitive
|
|
19
|
+
$ primitive config push --only blob-bucket/uploads
|
|
20
20
|
$ primitive blob-buckets upload uploads ./photo.jpg
|
|
21
21
|
$ primitive blob-buckets list-blobs uploads
|
|
22
22
|
$ primitive blob-buckets download uploads <blob-id> --output ./downloaded.jpg
|
|
@@ -25,14 +25,14 @@ Examples:
|
|
|
25
25
|
$ primitive blob-buckets delete-blob uploads <blob-id> <blob-id> <blob-id>
|
|
26
26
|
$ primitive blob-buckets signed-url uploads <blob-id>
|
|
27
27
|
`);
|
|
28
|
-
// Server-side configuration is authored in TOML and applied with `
|
|
28
|
+
// Server-side configuration is authored in TOML and applied with `config push`
|
|
29
29
|
// (issue #2645) — this group no longer carries config-setting flags.
|
|
30
30
|
blobBuckets.addHelpText("after", `
|
|
31
31
|
Configuration lives in blob-buckets/<key>.toml:
|
|
32
|
-
$ primitive config fields blob-bucket
|
|
33
|
-
$ primitive config
|
|
32
|
+
$ primitive config fields blob-bucket # the file's keys, types and defaults
|
|
33
|
+
$ primitive config create blob-bucket <key> # scaffold one locally
|
|
34
34
|
$ primitive config set blob-bucket/<key> <path>=<value>
|
|
35
|
-
$ primitive
|
|
35
|
+
$ primitive config push --only blob-bucket/<key>
|
|
36
36
|
`);
|
|
37
37
|
// List buckets
|
|
38
38
|
blobBuckets
|