@odla-ai/cli 0.28.2 → 0.29.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.
- package/README.md +17 -3
- package/REQUIREMENTS.md +4 -0
- package/dist/bin.cjs +79 -37
- package/dist/bin.cjs.map +1 -1
- package/dist/bin.js +1 -1
- package/dist/{chunk-STJCWZJU.js → chunk-YTVLTADT.js} +68 -38
- package/dist/chunk-YTVLTADT.js.map +1 -0
- package/dist/{cli-2WZIFXA6.js → cli-DNOAYDBR.js} +2 -2
- package/dist/index.cjs +67 -37
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -3
- package/dist/index.d.ts +8 -3
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/skills/odla/SKILL.md +8 -6
- package/skills/odla/references/build.md +8 -2
- package/skills/odla/references/co-owners.md +3 -2
- package/dist/chunk-STJCWZJU.js.map +0 -1
- /package/dist/{cli-2WZIFXA6.js.map → cli-DNOAYDBR.js.map} +0 -0
package/dist/index.d.cts
CHANGED
|
@@ -572,6 +572,10 @@ interface LocalCredentials {
|
|
|
572
572
|
/** Controls one dev-first provisioning run; production mutation requires `yes`. */
|
|
573
573
|
interface ProvisionOptions {
|
|
574
574
|
configPath: string;
|
|
575
|
+
/** Initialize only the live (`prod`) environment of an existing sandbox
|
|
576
|
+
* app, even when the dev-first project config has not added `prod` to
|
|
577
|
+
* `envs` yet. The normal production `yes` gate still applies. */
|
|
578
|
+
live?: boolean;
|
|
575
579
|
dryRun?: boolean;
|
|
576
580
|
rotateKeys?: boolean;
|
|
577
581
|
/** Rotate only the o11y ingest token; leaves db keys unchanged. */
|
|
@@ -1248,9 +1252,10 @@ declare function installSkill(options?: SkillInstallOptions): SkillInstallResult
|
|
|
1248
1252
|
|
|
1249
1253
|
/**
|
|
1250
1254
|
* Verify a live, already-provisioned environment end-to-end. Resolves the target
|
|
1251
|
-
* env (`options.env`, else `dev`, else the first declared env)
|
|
1252
|
-
*
|
|
1253
|
-
*
|
|
1255
|
+
* env (`options.env`, else `dev`, else the first declared env). Explicit `prod`
|
|
1256
|
+
* remains addressable after one-shot `provision --live` even when ordinary
|
|
1257
|
+
* provision defaults stay dev-only. Reads the local credentials file and checks
|
|
1258
|
+
* that it belongs to this app and holds the credentials required by the enabled
|
|
1254
1259
|
* services — otherwise it throws pointing the user at
|
|
1255
1260
|
* `odla-ai provision --write-dev-vars`.
|
|
1256
1261
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -572,6 +572,10 @@ interface LocalCredentials {
|
|
|
572
572
|
/** Controls one dev-first provisioning run; production mutation requires `yes`. */
|
|
573
573
|
interface ProvisionOptions {
|
|
574
574
|
configPath: string;
|
|
575
|
+
/** Initialize only the live (`prod`) environment of an existing sandbox
|
|
576
|
+
* app, even when the dev-first project config has not added `prod` to
|
|
577
|
+
* `envs` yet. The normal production `yes` gate still applies. */
|
|
578
|
+
live?: boolean;
|
|
575
579
|
dryRun?: boolean;
|
|
576
580
|
rotateKeys?: boolean;
|
|
577
581
|
/** Rotate only the o11y ingest token; leaves db keys unchanged. */
|
|
@@ -1248,9 +1252,10 @@ declare function installSkill(options?: SkillInstallOptions): SkillInstallResult
|
|
|
1248
1252
|
|
|
1249
1253
|
/**
|
|
1250
1254
|
* Verify a live, already-provisioned environment end-to-end. Resolves the target
|
|
1251
|
-
* env (`options.env`, else `dev`, else the first declared env)
|
|
1252
|
-
*
|
|
1253
|
-
*
|
|
1255
|
+
* env (`options.env`, else `dev`, else the first declared env). Explicit `prod`
|
|
1256
|
+
* remains addressable after one-shot `provision --live` even when ordinary
|
|
1257
|
+
* provision defaults stay dev-only. Reads the local credentials file and checks
|
|
1258
|
+
* that it belongs to this app and holds the credentials required by the enabled
|
|
1254
1259
|
* services — otherwise it throws pointing the user at
|
|
1255
1260
|
* `odla-ai provision --write-dev-vars`.
|
|
1256
1261
|
*
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odla-ai/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"description": "Agent-operable CLI for odla provisioning, calendar consent and connection lifecycle, System AI administration, Worker secrets, security jobs, and smoke checks.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://odla.ai/docs/packages/cli",
|
package/skills/odla/SKILL.md
CHANGED
|
@@ -54,9 +54,10 @@ State which path you're taking and what you'll build in one line; get a nod.
|
|
|
54
54
|
a sandbox (env `dev`, tenant `<appId>--dev`) and a live one (env `prod`,
|
|
55
55
|
tenant `<appId>`). "prod" names the app's live DATABASE, never a different
|
|
56
56
|
odla — there is only one odla.ai. Keep `envs: ["dev"]` and verify the tenant
|
|
57
|
-
before any write or deploy.
|
|
58
|
-
|
|
59
|
-
`provision --
|
|
57
|
+
before any write or deploy. At the explicit go-live checkpoint, use
|
|
58
|
+
`provision --live`; add `prod` to `envs` only if normal later provision runs
|
|
59
|
+
should manage both. That first live `provision --live --dry-run` review,
|
|
60
|
+
`provision --live --yes --push-secrets`, and deploy are human checkpoints.
|
|
60
61
|
3. **Rules are default-deny.** A namespace with no rule is invisible; a write
|
|
61
62
|
with no rule is rejected. Never widen a rule just to clear a 403 — edit
|
|
62
63
|
`src/odla/rules.mjs` deliberately, and flag rule changes to the human.
|
|
@@ -141,9 +142,10 @@ guessing which platform/credential steps need manual work. Then:
|
|
|
141
142
|
--ack-redacted-source`.
|
|
142
143
|
The source job follows, reports, and gates by default. Never request a PAT or
|
|
143
144
|
treat GitHub read approval as redacted-snippet disclosure consent.
|
|
144
|
-
6. **ship** ⏸ —
|
|
145
|
-
|
|
146
|
-
`npx wrangler deploy`.
|
|
145
|
+
6. **ship** ⏸ — run `npx @odla-ai/cli provision --live --dry-run`, show the
|
|
146
|
+
human, then `npx @odla-ai/cli provision --live --yes --push-secrets` and
|
|
147
|
+
`npx wrangler deploy`. Add `prod` to `envs` only when future ordinary
|
|
148
|
+
provision runs should target both environments.
|
|
147
149
|
|
|
148
150
|
## Track the work in PM, as you go
|
|
149
151
|
|
|
@@ -167,12 +167,18 @@ supplied one. Surface either without looping or manufacturing a provider key.
|
|
|
167
167
|
|
|
168
168
|
## 6. Ship ⏸ human checkpoint
|
|
169
169
|
|
|
170
|
-
|
|
170
|
+
Initialize live after the sandbox is healthy (prod tenant = the bare `appId`), then:
|
|
171
171
|
|
|
172
172
|
```
|
|
173
|
-
npx @odla-ai/cli provision --yes --push-secrets # prod mutation + configured Worker secrets
|
|
173
|
+
npx @odla-ai/cli provision --live --yes --push-secrets # prod mutation + configured Worker secrets
|
|
174
174
|
npx wrangler deploy
|
|
175
175
|
```
|
|
176
176
|
|
|
177
|
+
`--live` targets only prod and does not require adding it to the dev-first
|
|
178
|
+
`envs` list. Add `"prod"` to `envs` only if ordinary future provision runs
|
|
179
|
+
should manage sandbox and live together. If calendar is enabled, predeclare
|
|
180
|
+
`calendar.google.availabilityCalendars.prod`; the live Google connection still
|
|
181
|
+
has its own consent checkpoint.
|
|
182
|
+
|
|
177
183
|
Verify with `npx @odla-ai/cli smoke --env prod`. Point env vars at the service
|
|
178
184
|
custom domains, never `*.workers.dev` (Workers can't fetch same-account workers.dev).
|
|
@@ -39,8 +39,9 @@ Every environment's tenant is the same across all owners (prod's tenant is the
|
|
|
39
39
|
bare app id; `dev` is `<appId>--dev`). So multiple co-owners deploying to
|
|
40
40
|
**production** all read and write the **same** prod database — each with their
|
|
41
41
|
own key. Treat first-prod provision/deploy as the usual human checkpoint
|
|
42
|
-
(`provision --dry-run` review, then
|
|
43
|
-
rotate another owner's
|
|
42
|
+
(`provision --live --dry-run` review, then
|
|
43
|
+
`provision --live --yes --push-secrets`), and never rotate another owner's
|
|
44
|
+
credentials on their behalf.
|
|
44
45
|
|
|
45
46
|
## If provision says the credential lacks `app.manage`
|
|
46
47
|
|