@sitecoreai-labs/sitecoreai-cli 0.0.4 → 0.1.1
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/AGENTS.md +146 -55
- package/README.md +372 -325
- package/dist/agents/api/agents.d.ts +27 -0
- package/dist/agents/api/agents.js +70 -0
- package/dist/agents/api/catalog.d.ts +8 -0
- package/dist/agents/api/catalog.js +33 -0
- package/dist/agents/api/custom-mcps.d.ts +26 -0
- package/dist/agents/api/custom-mcps.js +53 -0
- package/dist/agents/api/html-templates.d.ts +35 -0
- package/dist/agents/api/html-templates.js +116 -0
- package/dist/agents/api/request.d.ts +28 -0
- package/dist/agents/api/request.js +207 -0
- package/dist/agents/api/runs.d.ts +31 -0
- package/dist/agents/api/runs.js +82 -0
- package/dist/agents/api/schema.d.ts +182 -0
- package/dist/agents/api/schema.js +10 -0
- package/dist/agents/api/schemas.d.ts +37 -0
- package/dist/agents/api/schemas.js +95 -0
- package/dist/agents/api/skills.d.ts +25 -0
- package/dist/agents/api/skills.js +55 -0
- package/dist/agents/api/spaces.d.ts +34 -0
- package/dist/agents/api/spaces.js +72 -0
- package/dist/agents/api/tools.d.ts +4 -0
- package/dist/agents/api/tools.js +18 -0
- package/dist/agents/api/widgets.d.ts +32 -0
- package/dist/agents/api/widgets.js +89 -0
- package/dist/agents/client.d.ts +18 -0
- package/dist/agents/client.js +28 -0
- package/dist/agents/index.d.ts +31 -0
- package/dist/agents/index.js +51 -0
- package/dist/agents/recipe/agent.diff.d.ts +4 -0
- package/dist/agents/recipe/agent.diff.js +55 -0
- package/dist/agents/recipe/agent.kind.d.ts +12 -0
- package/dist/agents/recipe/agent.kind.js +107 -0
- package/dist/agents/recipe/agent.schema.d.ts +26 -0
- package/dist/agents/recipe/agent.schema.js +42 -0
- package/dist/agents/recipe/client.d.ts +4 -0
- package/dist/agents/recipe/client.js +15 -0
- package/dist/agents/recipe/converge.d.ts +11 -0
- package/dist/agents/recipe/converge.js +32 -0
- package/dist/agents/recipe/custom-mcp.kind.d.ts +4 -0
- package/dist/agents/recipe/custom-mcp.kind.js +42 -0
- package/dist/agents/recipe/custom-mcp.schema.d.ts +11 -0
- package/dist/agents/recipe/custom-mcp.schema.js +15 -0
- package/dist/agents/recipe/html-template.kind.d.ts +4 -0
- package/dist/agents/recipe/html-template.kind.js +50 -0
- package/dist/agents/recipe/html-template.schema.d.ts +13 -0
- package/dist/agents/recipe/html-template.schema.js +17 -0
- package/dist/agents/recipe/index.d.ts +43 -0
- package/dist/agents/recipe/index.js +81 -0
- package/dist/agents/recipe/schema.kind.d.ts +4 -0
- package/dist/agents/recipe/schema.kind.js +50 -0
- package/dist/agents/recipe/schema.schema.d.ts +15 -0
- package/dist/agents/recipe/schema.schema.js +21 -0
- package/dist/agents/recipe/skill.kind.d.ts +4 -0
- package/dist/agents/recipe/skill.kind.js +48 -0
- package/dist/agents/recipe/skill.schema.d.ts +14 -0
- package/dist/agents/recipe/skill.schema.js +18 -0
- package/dist/agents/recipe/widget.kind.d.ts +4 -0
- package/dist/agents/recipe/widget.kind.js +49 -0
- package/dist/agents/recipe/widget.schema.d.ts +20 -0
- package/dist/agents/recipe/widget.schema.js +23 -0
- package/dist/agents/session/index.d.ts +50 -0
- package/dist/agents/session/index.js +127 -0
- package/dist/agents/session/playwright-login.d.ts +11 -0
- package/dist/agents/session/playwright-login.js +169 -0
- package/dist/agents/session/types.d.ts +72 -0
- package/dist/agents/session/types.js +26 -0
- package/dist/agents/tasks/agent.d.ts +27 -0
- package/dist/agents/tasks/agent.js +183 -0
- package/dist/agents/tasks/index.d.ts +14 -0
- package/dist/agents/tasks/index.js +30 -0
- package/dist/agents/tasks/resources.d.ts +39 -0
- package/dist/agents/tasks/resources.js +219 -0
- package/dist/agents/tasks/session.d.ts +6 -0
- package/dist/agents/tasks/session.js +63 -0
- package/dist/agents/tasks/shared.d.ts +38 -0
- package/dist/agents/tasks/shared.js +72 -0
- package/dist/agents/tasks/space.d.ts +12 -0
- package/dist/agents/tasks/space.js +55 -0
- package/dist/brand/api/auth.d.ts +58 -0
- package/dist/brand/api/auth.js +141 -0
- package/dist/brand/api/client.d.ts +40 -0
- package/dist/brand/api/client.js +83 -0
- package/dist/brand/api/types.d.ts +119 -0
- package/dist/brand/api/types.js +9 -0
- package/dist/brand/credential.d.ts +55 -0
- package/dist/brand/credential.js +87 -0
- package/dist/brand/documents/list.d.ts +85 -0
- package/dist/brand/documents/list.js +53 -0
- package/dist/brand/documents/upload.d.ts +113 -0
- package/dist/brand/documents/upload.js +106 -0
- package/dist/brand/index.d.ts +33 -0
- package/dist/brand/index.js +76 -0
- package/dist/brand/kits/create.d.ts +58 -0
- package/dist/brand/kits/create.js +68 -0
- package/dist/brand/kits/list.d.ts +53 -0
- package/dist/brand/kits/list.js +36 -0
- package/dist/brand/kits/sections.d.ts +156 -0
- package/dist/brand/kits/sections.js +80 -0
- package/dist/brand/pipeline/run.d.ts +58 -0
- package/dist/brand/pipeline/run.js +63 -0
- package/dist/brand/recipe/client.d.ts +4 -0
- package/dist/brand/recipe/client.js +24 -0
- package/dist/brand/recipe/diff.d.ts +4 -0
- package/dist/brand/recipe/diff.js +74 -0
- package/dist/brand/recipe/index.d.ts +10 -0
- package/dist/brand/recipe/index.js +20 -0
- package/dist/brand/recipe/kind.d.ts +4 -0
- package/dist/brand/recipe/kind.js +0 -0
- package/dist/brand/recipe/schema.d.ts +54 -0
- package/dist/brand/recipe/schema.js +59 -0
- package/dist/brand/review/format-json.d.ts +33 -0
- package/dist/brand/review/format-json.js +36 -0
- package/dist/brand/review/format-sarif.d.ts +64 -0
- package/dist/brand/review/format-sarif.js +77 -0
- package/dist/brand/review/format-text.d.ts +24 -0
- package/dist/brand/review/format-text.js +60 -0
- package/dist/brand/review/generate.d.ts +37 -0
- package/dist/brand/review/generate.js +146 -0
- package/dist/brand/review/outcomes.d.ts +43 -0
- package/dist/brand/review/outcomes.js +58 -0
- package/dist/brand/seed.d.ts +81 -0
- package/dist/brand/seed.js +151 -0
- package/dist/brand/tasks/login.d.ts +37 -0
- package/dist/brand/tasks/login.js +192 -0
- package/dist/brand/tasks/review.d.ts +111 -0
- package/dist/brand/tasks/review.js +310 -0
- package/dist/brief/api/brief-types.d.ts +64 -0
- package/dist/brief/api/brief-types.js +103 -0
- package/dist/brief/api/briefs.d.ts +66 -0
- package/dist/brief/api/briefs.js +58 -0
- package/dist/brief/api/comments.d.ts +43 -0
- package/dist/brief/api/comments.js +29 -0
- package/dist/brief/api/request.d.ts +5 -0
- package/dist/brief/api/request.js +83 -0
- package/dist/brief/api/schema.d.ts +158 -0
- package/dist/brief/api/schema.js +18 -0
- package/dist/brief/api/tasks.d.ts +41 -0
- package/dist/brief/api/tasks.js +24 -0
- package/dist/brief/api/types.d.ts +17 -0
- package/dist/brief/api/types.js +21 -0
- package/dist/brief/auth.d.ts +44 -0
- package/dist/brief/auth.js +101 -0
- package/dist/brief/client.d.ts +25 -0
- package/dist/brief/client.js +56 -0
- package/dist/brief/index.d.ts +31 -0
- package/dist/brief/index.js +53 -0
- package/dist/brief/recipe/client.d.ts +4 -0
- package/dist/brief/recipe/client.js +52 -0
- package/dist/brief/recipe/diff.d.ts +4 -0
- package/dist/brief/recipe/diff.js +74 -0
- package/dist/brief/recipe/index.d.ts +10 -0
- package/dist/brief/recipe/index.js +23 -0
- package/dist/brief/recipe/kind.d.ts +4 -0
- package/dist/brief/recipe/kind.js +114 -0
- package/dist/brief/recipe/schema.d.ts +152 -0
- package/dist/brief/recipe/schema.js +99 -0
- package/dist/brief/tasks/index.d.ts +128 -0
- package/dist/brief/tasks/index.js +286 -0
- package/dist/campaigns/api/deliverables.d.ts +37 -0
- package/dist/campaigns/api/deliverables.js +30 -0
- package/dist/campaigns/api/projects.d.ts +49 -0
- package/dist/campaigns/api/projects.js +45 -0
- package/dist/campaigns/api/request.d.ts +5 -0
- package/dist/campaigns/api/request.js +119 -0
- package/dist/campaigns/api/schema.d.ts +144 -0
- package/dist/campaigns/api/schema.js +22 -0
- package/dist/campaigns/api/tasks.d.ts +42 -0
- package/dist/campaigns/api/tasks.js +68 -0
- package/dist/campaigns/api/types.d.ts +17 -0
- package/dist/campaigns/api/types.js +27 -0
- package/dist/campaigns/api/users.d.ts +13 -0
- package/dist/campaigns/api/users.js +16 -0
- package/dist/campaigns/auth.d.ts +19 -0
- package/dist/campaigns/auth.js +86 -0
- package/dist/campaigns/client.d.ts +25 -0
- package/dist/campaigns/client.js +48 -0
- package/dist/campaigns/index.d.ts +29 -0
- package/dist/campaigns/index.js +47 -0
- package/dist/campaigns/recipe/client.d.ts +4 -0
- package/dist/campaigns/recipe/client.js +41 -0
- package/dist/campaigns/recipe/diff.d.ts +4 -0
- package/dist/campaigns/recipe/diff.js +119 -0
- package/dist/campaigns/recipe/index.d.ts +10 -0
- package/dist/campaigns/recipe/index.js +19 -0
- package/dist/campaigns/recipe/kind.d.ts +4 -0
- package/dist/campaigns/recipe/kind.js +217 -0
- package/dist/campaigns/recipe/schema.d.ts +79 -0
- package/dist/campaigns/recipe/schema.js +67 -0
- package/dist/campaigns/tasks/index.d.ts +124 -0
- package/dist/campaigns/tasks/index.js +271 -0
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +84 -63
- package/dist/commands/agents/index.d.ts +28 -0
- package/dist/commands/agents/index.js +289 -0
- package/dist/commands/agents/sync.d.ts +13 -0
- package/dist/commands/agents/sync.js +139 -0
- package/dist/commands/audit/all.d.ts +2 -0
- package/dist/commands/audit/all.js +26 -0
- package/dist/commands/audit/alt-text-missing.d.ts +2 -0
- package/dist/commands/audit/alt-text-missing.js +19 -0
- package/dist/commands/audit/baseline.d.ts +2 -0
- package/dist/commands/audit/baseline.js +75 -0
- package/dist/commands/audit/broken-images.d.ts +2 -0
- package/dist/commands/audit/broken-images.js +25 -0
- package/dist/commands/audit/broken-links.d.ts +2 -0
- package/dist/commands/audit/broken-links.js +18 -0
- package/dist/commands/audit/datasource-missing.d.ts +2 -0
- package/dist/commands/audit/datasource-missing.js +19 -0
- package/dist/commands/audit/dead-templates.d.ts +2 -0
- package/dist/commands/audit/dead-templates.js +18 -0
- package/dist/commands/audit/duplicates.d.ts +2 -0
- package/dist/commands/audit/duplicates.js +21 -0
- package/dist/commands/audit/empty-items.d.ts +2 -0
- package/dist/commands/audit/empty-items.js +19 -0
- package/dist/commands/audit/empty-links.d.ts +2 -0
- package/dist/commands/audit/empty-links.js +25 -0
- package/dist/commands/audit/empty-roles.d.ts +2 -0
- package/dist/commands/audit/empty-roles.js +18 -0
- package/dist/commands/audit/fallback-drift.d.ts +2 -0
- package/dist/commands/audit/fallback-drift.js +22 -0
- package/dist/commands/audit/find-replace.d.ts +2 -0
- package/dist/commands/audit/find-replace.js +27 -0
- package/dist/commands/audit/heavy-templates.d.ts +2 -0
- package/dist/commands/audit/heavy-templates.js +19 -0
- package/dist/commands/audit/history.d.ts +2 -0
- package/dist/commands/audit/history.js +44 -0
- package/dist/commands/audit/index.d.ts +2 -0
- package/dist/commands/audit/index.js +100 -0
- package/dist/commands/audit/language-data.d.ts +2 -0
- package/dist/commands/audit/language-data.js +24 -0
- package/dist/commands/audit/large-fields.d.ts +2 -0
- package/dist/commands/audit/large-fields.js +21 -0
- package/dist/commands/audit/missing-meta.d.ts +2 -0
- package/dist/commands/audit/missing-meta.js +22 -0
- package/dist/commands/audit/orphans.d.ts +2 -0
- package/dist/commands/audit/orphans.js +22 -0
- package/dist/commands/audit/page-design-orphans.d.ts +2 -0
- package/dist/commands/audit/page-design-orphans.js +18 -0
- package/dist/commands/audit/personalization-broken.d.ts +2 -0
- package/dist/commands/audit/personalization-broken.js +18 -0
- package/dist/commands/audit/references.d.ts +2 -0
- package/dist/commands/audit/references.js +27 -0
- package/dist/commands/audit/role-bloat.d.ts +2 -0
- package/dist/commands/audit/role-bloat.js +19 -0
- package/dist/commands/audit/shared.d.ts +7 -0
- package/dist/commands/audit/shared.js +32 -0
- package/dist/commands/audit/site-residue.d.ts +2 -0
- package/dist/commands/audit/site-residue.js +22 -0
- package/dist/commands/audit/slug-conflicts.d.ts +2 -0
- package/dist/commands/audit/slug-conflicts.js +20 -0
- package/dist/commands/audit/stale-content.d.ts +2 -0
- package/dist/commands/audit/stale-content.js +21 -0
- package/dist/commands/audit/stale-users.d.ts +2 -0
- package/dist/commands/audit/stale-users.js +21 -0
- package/dist/commands/audit/stale-workflow.d.ts +2 -0
- package/dist/commands/audit/stale-workflow.js +19 -0
- package/dist/commands/audit/suite.d.ts +2 -0
- package/dist/commands/audit/suite.js +31 -0
- package/dist/commands/audit/template-dependencies.d.ts +2 -0
- package/dist/commands/audit/template-dependencies.js +22 -0
- package/dist/commands/audit/translation-coverage.d.ts +2 -0
- package/dist/commands/audit/translation-coverage.js +22 -0
- package/dist/commands/audit/unused-media.d.ts +2 -0
- package/dist/commands/audit/unused-media.js +21 -0
- package/dist/commands/brand/docs.d.ts +9 -0
- package/dist/commands/brand/docs.js +168 -0
- package/dist/commands/brand/index.d.ts +13 -0
- package/dist/commands/brand/index.js +37 -0
- package/dist/commands/brand/ingest-enrich.d.ts +3 -0
- package/dist/commands/brand/ingest-enrich.js +71 -0
- package/dist/commands/brand/kits.d.ts +18 -0
- package/dist/commands/brand/kits.js +361 -0
- package/dist/commands/brand/review.d.ts +13 -0
- package/dist/commands/brand/review.js +65 -0
- package/dist/commands/brand/seed.d.ts +9 -0
- package/dist/commands/brand/seed.js +136 -0
- package/dist/commands/brand/sync.d.ts +11 -0
- package/dist/commands/brand/sync.js +128 -0
- package/dist/commands/brief/comments.d.ts +11 -0
- package/dist/commands/brief/comments.js +55 -0
- package/dist/commands/brief/delete.d.ts +10 -0
- package/dist/commands/brief/delete.js +40 -0
- package/dist/commands/brief/index.d.ts +19 -0
- package/dist/commands/brief/index.js +53 -0
- package/dist/commands/brief/list.d.ts +2 -0
- package/dist/commands/brief/list.js +19 -0
- package/dist/commands/brief/set-status.d.ts +10 -0
- package/dist/commands/brief/set-status.js +33 -0
- package/dist/commands/brief/show.d.ts +2 -0
- package/dist/commands/brief/show.js +19 -0
- package/dist/commands/brief/sync.d.ts +12 -0
- package/dist/commands/brief/sync.js +121 -0
- package/dist/commands/brief/todos.d.ts +9 -0
- package/dist/commands/brief/todos.js +28 -0
- package/dist/commands/brief/types.d.ts +16 -0
- package/dist/commands/brief/types.js +129 -0
- package/dist/commands/campaign/index.d.ts +2 -0
- package/dist/commands/campaign/index.js +309 -0
- package/dist/commands/campaign/sync.d.ts +12 -0
- package/dist/commands/campaign/sync.js +121 -0
- package/dist/commands/cleanup/archive.d.ts +2 -0
- package/dist/commands/cleanup/archive.js +21 -0
- package/dist/commands/cleanup/dead-templates.d.ts +2 -0
- package/dist/commands/cleanup/dead-templates.js +21 -0
- package/dist/commands/cleanup/duplicates.d.ts +2 -0
- package/dist/commands/cleanup/duplicates.js +49 -0
- package/dist/commands/cleanup/empty-folders.d.ts +2 -0
- package/dist/commands/cleanup/empty-folders.js +18 -0
- package/dist/commands/cleanup/field-set.d.ts +2 -0
- package/dist/commands/cleanup/field-set.js +44 -0
- package/dist/commands/cleanup/find-replace.d.ts +2 -0
- package/dist/commands/cleanup/find-replace.js +35 -0
- package/dist/commands/cleanup/index.d.ts +2 -0
- package/dist/commands/cleanup/index.js +48 -0
- package/dist/commands/cleanup/language-versions.d.ts +2 -0
- package/dist/commands/cleanup/language-versions.js +25 -0
- package/dist/commands/cleanup/rename.d.ts +2 -0
- package/dist/commands/cleanup/rename.js +32 -0
- package/dist/commands/cleanup/roles.d.ts +2 -0
- package/dist/commands/cleanup/roles.js +20 -0
- package/dist/commands/cleanup/shared.d.ts +2 -0
- package/dist/commands/cleanup/shared.js +15 -0
- package/dist/commands/cleanup/site-residue.d.ts +2 -0
- package/dist/commands/cleanup/site-residue.js +32 -0
- package/dist/commands/cleanup/slug-conflicts.d.ts +2 -0
- package/dist/commands/cleanup/slug-conflicts.js +54 -0
- package/dist/commands/cleanup/subtree.d.ts +2 -0
- package/dist/commands/cleanup/subtree.js +25 -0
- package/dist/commands/cleanup/users.d.ts +2 -0
- package/dist/commands/cleanup/users.js +23 -0
- package/dist/commands/cleanup/versions.d.ts +2 -0
- package/dist/commands/cleanup/versions.js +42 -0
- package/dist/commands/cleanup/workflow.d.ts +2 -0
- package/dist/commands/cleanup/workflow.js +40 -0
- package/dist/commands/config.d.ts +0 -1
- package/dist/commands/config.js +3 -3
- package/dist/commands/content/index.d.ts +2 -0
- package/dist/commands/content/index.js +11 -0
- package/dist/commands/content/version/index.d.ts +2 -0
- package/dist/commands/content/version/index.js +19 -0
- package/dist/commands/content/version/inspect.d.ts +2 -0
- package/dist/commands/content/version/inspect.js +22 -0
- package/dist/commands/content/version/set-never-publish.d.ts +2 -0
- package/dist/commands/content/version/set-never-publish.js +40 -0
- package/dist/commands/content/version/set-validity.d.ts +2 -0
- package/dist/commands/content/version/set-validity.js +30 -0
- package/dist/commands/deploy/deployments.d.ts +0 -1
- package/dist/commands/deploy/deployments.js +9 -9
- package/dist/commands/deploy/editing-host.d.ts +0 -1
- package/dist/commands/deploy/editing-host.js +25 -13
- package/dist/commands/deploy/environments/deployments.d.ts +0 -1
- package/dist/commands/deploy/environments/deployments.js +3 -3
- package/dist/commands/deploy/environments/index.d.ts +0 -1
- package/dist/commands/deploy/environments/index.js +1 -0
- package/dist/commands/deploy/environments/mutations.d.ts +0 -1
- package/dist/commands/deploy/environments/mutations.js +18 -17
- package/dist/commands/deploy/environments/queries.d.ts +1 -1
- package/dist/commands/deploy/environments/queries.js +29 -8
- package/dist/commands/deploy/environments/variables.d.ts +0 -1
- package/dist/commands/deploy/environments/variables.js +9 -8
- package/dist/commands/deploy/environments.d.ts +0 -1
- package/dist/commands/deploy/index.d.ts +0 -1
- package/dist/commands/deploy/index.js +1 -1
- package/dist/commands/deploy/logs.d.ts +0 -1
- package/dist/commands/deploy/logs.js +4 -4
- package/dist/commands/deploy/organizations.d.ts +0 -1
- package/dist/commands/deploy/organizations.js +5 -5
- package/dist/commands/deploy/projects.d.ts +0 -1
- package/dist/commands/deploy/projects.js +32 -20
- package/dist/commands/deploy/shared.d.ts +0 -1
- package/dist/commands/deploy/shared.js +1 -0
- package/dist/commands/deploy/site.d.ts +2 -3
- package/dist/commands/deploy/site.js +6 -5
- package/dist/commands/deploy/source-control.d.ts +0 -1
- package/dist/commands/deploy/source-control.js +13 -13
- package/dist/commands/deploy.d.ts +0 -1
- package/dist/commands/explain/index.d.ts +14 -0
- package/dist/commands/explain/index.js +25 -0
- package/dist/commands/explain/orphan-site.d.ts +11 -0
- package/dist/commands/explain/orphan-site.js +36 -0
- package/dist/commands/explain/why-blocked.d.ts +13 -0
- package/dist/commands/explain/why-blocked.js +42 -0
- package/dist/commands/health.d.ts +2 -0
- package/dist/commands/health.js +28 -0
- package/dist/commands/history.d.ts +0 -1
- package/dist/commands/history.js +11 -42
- package/dist/commands/init.d.ts +0 -1
- package/dist/commands/init.js +42 -8
- package/dist/commands/login.d.ts +11 -1
- package/dist/commands/login.js +35 -4
- package/dist/commands/logout.d.ts +0 -1
- package/dist/commands/logout.js +3 -3
- package/dist/commands/mcp/serve.d.ts +27 -0
- package/dist/commands/mcp/serve.js +120 -0
- package/dist/commands/mcp/tools.d.ts +8 -0
- package/dist/commands/mcp/tools.js +75 -0
- package/dist/commands/mcp.d.ts +2 -0
- package/dist/commands/mcp.js +23 -0
- package/dist/commands/policy.d.ts +16 -0
- package/dist/commands/policy.js +296 -0
- package/dist/commands/publish/all.d.ts +2 -0
- package/dist/commands/publish/all.js +41 -0
- package/dist/commands/publish/cancel.d.ts +2 -0
- package/dist/commands/publish/cancel.js +25 -0
- package/dist/commands/publish/history.d.ts +2 -0
- package/dist/commands/publish/history.js +34 -0
- package/dist/commands/publish/index.d.ts +2 -0
- package/dist/commands/publish/index.js +30 -0
- package/dist/commands/publish/item.d.ts +2 -0
- package/dist/commands/publish/item.js +55 -0
- package/dist/commands/publish/status.d.ts +2 -0
- package/dist/commands/publish/status.js +34 -0
- package/dist/commands/publish/unpublish.d.ts +2 -0
- package/dist/commands/publish/unpublish.js +52 -0
- package/dist/commands/recipe/index.d.ts +0 -1
- package/dist/commands/recipe/index.js +24 -19
- package/dist/commands/serialization/index.d.ts +0 -1
- package/dist/commands/serialization/index.js +14 -9
- package/dist/commands/serialization/package.d.ts +0 -1
- package/dist/commands/serialization/package.js +3 -3
- package/dist/commands/setup-client.d.ts +17 -0
- package/dist/commands/setup-client.js +148 -0
- package/dist/commands/shared.d.ts +72 -2
- package/dist/commands/shared.js +151 -24
- package/dist/commands/shell.d.ts +0 -1
- package/dist/commands/shell.js +1 -1
- package/dist/commands/status.d.ts +0 -1
- package/dist/commands/status.js +3 -3
- package/dist/commands/sync.d.ts +23 -0
- package/dist/commands/sync.js +154 -0
- package/dist/commands/telemetry.d.ts +0 -1
- package/dist/commands/telemetry.js +40 -2
- package/dist/commands/topics/index.d.ts +5 -0
- package/dist/commands/topics/index.js +102 -0
- package/dist/commands/webhook/create.d.ts +2 -0
- package/dist/commands/webhook/create.js +52 -0
- package/dist/commands/webhook/delete.d.ts +2 -0
- package/dist/commands/webhook/delete.js +20 -0
- package/dist/commands/webhook/event-types.d.ts +2 -0
- package/dist/commands/webhook/event-types.js +22 -0
- package/dist/commands/webhook/index.d.ts +2 -0
- package/dist/commands/webhook/index.js +33 -0
- package/dist/commands/webhook/inspect.d.ts +2 -0
- package/dist/commands/webhook/inspect.js +17 -0
- package/dist/commands/webhook/list.d.ts +2 -0
- package/dist/commands/webhook/list.js +24 -0
- package/dist/commands/webhook/shared.d.ts +2 -0
- package/dist/commands/webhook/shared.js +11 -0
- package/dist/commands/workflow/advance.d.ts +2 -0
- package/dist/commands/workflow/advance.js +22 -0
- package/dist/commands/workflow/apply.d.ts +2 -0
- package/dist/commands/workflow/apply.js +22 -0
- package/dist/commands/workflow/assigned.d.ts +2 -0
- package/dist/commands/workflow/assigned.js +21 -0
- package/dist/commands/workflow/index.d.ts +2 -0
- package/dist/commands/workflow/index.js +35 -0
- package/dist/commands/workflow/inspect.d.ts +2 -0
- package/dist/commands/workflow/inspect.js +17 -0
- package/dist/commands/workflow/list-commands.d.ts +2 -0
- package/dist/commands/workflow/list-commands.js +17 -0
- package/dist/commands/workflow/list-defs.d.ts +2 -0
- package/dist/commands/workflow/list-defs.js +17 -0
- package/dist/commands/workflow/reset.d.ts +2 -0
- package/dist/commands/workflow/reset.js +20 -0
- package/dist/commands/workflow/shared.d.ts +3 -0
- package/dist/commands/workflow/shared.js +12 -0
- package/dist/commands/workflow/status.d.ts +2 -0
- package/dist/commands/workflow/status.js +18 -0
- package/dist/config/env-overrides.d.ts +0 -1
- package/dist/config/env-overrides.js +41 -5
- package/dist/config/index.d.ts +15 -3
- package/dist/config/index.js +43 -3
- package/dist/config/modules.d.ts +0 -1
- package/dist/config/modules.js +2 -2
- package/dist/config/paths.d.ts +0 -1
- package/dist/config/paths.js +11 -2
- package/dist/config/root-config.d.ts +24 -1
- package/dist/config/root-config.js +84 -7
- package/dist/config/schema.json +113 -25
- package/dist/config/types.d.ts +228 -13
- package/dist/config/types.js +1 -1
- package/dist/config/validation.d.ts +1 -4
- package/dist/content/api/version-fields.d.ts +129 -0
- package/dist/content/api/version-fields.js +193 -0
- package/dist/content/index.d.ts +15 -0
- package/dist/content/index.js +40 -0
- package/dist/content/tasks/shared.d.ts +86 -0
- package/dist/content/tasks/shared.js +130 -0
- package/dist/content/tasks/version-inspect.d.ts +13 -0
- package/dist/content/tasks/version-inspect.js +56 -0
- package/dist/content/tasks/version-never-publish.d.ts +16 -0
- package/dist/content/tasks/version-never-publish.js +115 -0
- package/dist/content/tasks/version-validity.d.ts +24 -0
- package/dist/content/tasks/version-validity.js +159 -0
- package/dist/deploy/api/client-naming.d.ts +80 -0
- package/dist/deploy/api/client-naming.js +124 -0
- package/dist/deploy/api/client.d.ts +72 -0
- package/dist/deploy/api/client.js +72 -0
- package/dist/deploy/api/clients.d.ts +126 -0
- package/dist/deploy/api/clients.js +89 -0
- package/dist/deploy/api/common/headers.d.ts +0 -1
- package/dist/deploy/api/common/request.d.ts +0 -5
- package/dist/deploy/api/common/request.js +93 -120
- package/dist/deploy/api/common/transport-events.d.ts +31 -0
- package/dist/deploy/api/common/transport-events.js +24 -0
- package/dist/deploy/api/common/types.d.ts +60 -1
- package/dist/deploy/api/deployment-logs.d.ts +0 -1
- package/dist/deploy/api/deployment-logs.js +5 -5
- package/dist/deploy/api/deployments.d.ts +1 -2
- package/dist/deploy/api/deployments.js +22 -20
- package/dist/deploy/api/environments.d.ts +28 -2
- package/dist/deploy/api/environments.js +103 -20
- package/dist/deploy/api/index.d.ts +31 -9
- package/dist/deploy/api/index.js +129 -22
- package/dist/deploy/api/logs.d.ts +1 -2
- package/dist/deploy/api/logs.js +9 -7
- package/dist/deploy/api/organizations.d.ts +1 -2
- package/dist/deploy/api/organizations.js +8 -7
- package/dist/deploy/api/projects.d.ts +19 -4
- package/dist/deploy/api/projects.js +75 -13
- package/dist/deploy/api/source-control.d.ts +1 -2
- package/dist/deploy/api/source-control.js +25 -24
- package/dist/deploy/api.d.ts +0 -1
- package/dist/deploy/context.d.ts +52 -0
- package/dist/deploy/context.js +234 -0
- package/dist/deploy/index.d.ts +11 -0
- package/dist/deploy/index.js +38 -0
- package/dist/deploy/tasks/deployment-result.d.ts +0 -1
- package/dist/deploy/tasks/deployments.d.ts +0 -1
- package/dist/deploy/tasks/deployments.js +12 -11
- package/dist/deploy/tasks/editing-host.d.ts +0 -1
- package/dist/deploy/tasks/editing-host.js +48 -18
- package/dist/deploy/tasks/environments.d.ts +3 -3
- package/dist/deploy/tasks/environments.js +108 -24
- package/dist/deploy/tasks/health.d.ts +23 -0
- package/dist/deploy/tasks/health.js +181 -0
- package/dist/deploy/tasks/logs.d.ts +0 -1
- package/dist/deploy/tasks/logs.js +4 -4
- package/dist/deploy/tasks/organizations.d.ts +0 -1
- package/dist/deploy/tasks/organizations.js +5 -5
- package/dist/deploy/tasks/projects.d.ts +6 -2
- package/dist/deploy/tasks/projects.js +61 -42
- package/dist/deploy/tasks/shared.d.ts +9 -52
- package/dist/deploy/tasks/shared.js +46 -222
- package/dist/deploy/tasks/site-bind.d.ts +1 -2
- package/dist/deploy/tasks/site-bind.js +7 -7
- package/dist/deploy/tasks/site.d.ts +2 -3
- package/dist/deploy/tasks/site.js +4 -4
- package/dist/deploy/tasks/source-control.d.ts +0 -1
- package/dist/deploy/tasks/source-control.js +14 -14
- package/dist/deploy/tasks/transport-spinner.d.ts +5 -0
- package/dist/deploy/tasks/transport-spinner.js +118 -0
- package/dist/deploy/tasks/types.d.ts +16 -3
- package/dist/deploy/tasks/types.js +1 -1
- package/dist/hygiene/api/client.d.ts +294 -0
- package/dist/hygiene/api/client.js +827 -0
- package/dist/hygiene/api/graphql.d.ts +4 -0
- package/dist/hygiene/api/graphql.js +18 -0
- package/dist/hygiene/audit-suite.d.ts +84 -0
- package/dist/hygiene/audit-suite.js +95 -0
- package/dist/hygiene/baseline.d.ts +56 -0
- package/dist/hygiene/baseline.js +248 -0
- package/dist/hygiene/cache.d.ts +35 -0
- package/dist/hygiene/cache.js +179 -0
- package/dist/hygiene/history.d.ts +70 -0
- package/dist/hygiene/history.js +148 -0
- package/dist/hygiene/index.d.ts +128 -0
- package/dist/hygiene/index.js +168 -0
- package/dist/hygiene/output-adapters.d.ts +49 -0
- package/dist/hygiene/output-adapters.js +270 -0
- package/dist/hygiene/tasks/audit/all.d.ts +58 -0
- package/dist/hygiene/tasks/audit/all.js +274 -0
- package/dist/hygiene/tasks/audit/alt-text-missing.d.ts +27 -0
- package/dist/hygiene/tasks/audit/alt-text-missing.js +87 -0
- package/dist/hygiene/tasks/audit/baseline.d.ts +66 -0
- package/dist/hygiene/tasks/audit/baseline.js +185 -0
- package/dist/hygiene/tasks/audit/broken-images.d.ts +41 -0
- package/dist/hygiene/tasks/audit/broken-images.js +183 -0
- package/dist/hygiene/tasks/audit/broken-links.d.ts +53 -0
- package/dist/hygiene/tasks/audit/broken-links.js +121 -0
- package/dist/hygiene/tasks/audit/datasource-missing.d.ts +44 -0
- package/dist/hygiene/tasks/audit/datasource-missing.js +146 -0
- package/dist/hygiene/tasks/audit/dead-templates.d.ts +46 -0
- package/dist/hygiene/tasks/audit/dead-templates.js +216 -0
- package/dist/hygiene/tasks/audit/duplicates.d.ts +48 -0
- package/dist/hygiene/tasks/audit/duplicates.js +94 -0
- package/dist/hygiene/tasks/audit/empty-items.d.ts +24 -0
- package/dist/hygiene/tasks/audit/empty-items.js +53 -0
- package/dist/hygiene/tasks/audit/empty-links.d.ts +37 -0
- package/dist/hygiene/tasks/audit/empty-links.js +145 -0
- package/dist/hygiene/tasks/audit/empty-roles.d.ts +41 -0
- package/dist/hygiene/tasks/audit/empty-roles.js +51 -0
- package/dist/hygiene/tasks/audit/fallback-drift.d.ts +53 -0
- package/dist/hygiene/tasks/audit/fallback-drift.js +115 -0
- package/dist/hygiene/tasks/audit/find-replace.d.ts +75 -0
- package/dist/hygiene/tasks/audit/find-replace.js +142 -0
- package/dist/hygiene/tasks/audit/heavy-templates.d.ts +46 -0
- package/dist/hygiene/tasks/audit/heavy-templates.js +73 -0
- package/dist/hygiene/tasks/audit/history.d.ts +30 -0
- package/dist/hygiene/tasks/audit/history.js +161 -0
- package/dist/hygiene/tasks/audit/language-data.d.ts +55 -0
- package/dist/hygiene/tasks/audit/language-data.js +126 -0
- package/dist/hygiene/tasks/audit/large-fields.d.ts +48 -0
- package/dist/hygiene/tasks/audit/large-fields.js +84 -0
- package/dist/hygiene/tasks/audit/missing-meta.d.ts +57 -0
- package/dist/hygiene/tasks/audit/missing-meta.js +97 -0
- package/dist/hygiene/tasks/audit/orphans.d.ts +47 -0
- package/dist/hygiene/tasks/audit/orphans.js +78 -0
- package/dist/hygiene/tasks/audit/page-design-orphans.d.ts +24 -0
- package/dist/hygiene/tasks/audit/page-design-orphans.js +80 -0
- package/dist/hygiene/tasks/audit/personalization-broken.d.ts +25 -0
- package/dist/hygiene/tasks/audit/personalization-broken.js +96 -0
- package/dist/hygiene/tasks/audit/references.d.ts +70 -0
- package/dist/hygiene/tasks/audit/references.js +142 -0
- package/dist/hygiene/tasks/audit/role-bloat.d.ts +42 -0
- package/dist/hygiene/tasks/audit/role-bloat.js +64 -0
- package/dist/hygiene/tasks/audit/site-residue.d.ts +39 -0
- package/dist/hygiene/tasks/audit/site-residue.js +164 -0
- package/dist/hygiene/tasks/audit/slug-conflicts.d.ts +58 -0
- package/dist/hygiene/tasks/audit/slug-conflicts.js +87 -0
- package/dist/hygiene/tasks/audit/stale-content.d.ts +68 -0
- package/dist/hygiene/tasks/audit/stale-content.js +133 -0
- package/dist/hygiene/tasks/audit/stale-users.d.ts +54 -0
- package/dist/hygiene/tasks/audit/stale-users.js +83 -0
- package/dist/hygiene/tasks/audit/stale-workflow.d.ts +50 -0
- package/dist/hygiene/tasks/audit/stale-workflow.js +109 -0
- package/dist/hygiene/tasks/audit/suite-run.d.ts +28 -0
- package/dist/hygiene/tasks/audit/suite-run.js +46 -0
- package/dist/hygiene/tasks/audit/template-dependencies.d.ts +72 -0
- package/dist/hygiene/tasks/audit/template-dependencies.js +97 -0
- package/dist/hygiene/tasks/audit/translation-coverage.d.ts +64 -0
- package/dist/hygiene/tasks/audit/translation-coverage.js +123 -0
- package/dist/hygiene/tasks/audit/unused-media.d.ts +58 -0
- package/dist/hygiene/tasks/audit/unused-media.js +144 -0
- package/dist/hygiene/tasks/browse.d.ts +49 -0
- package/dist/hygiene/tasks/browse.js +50 -0
- package/dist/hygiene/tasks/cleanup/archive-purge.d.ts +50 -0
- package/dist/hygiene/tasks/cleanup/archive-purge.js +129 -0
- package/dist/hygiene/tasks/cleanup/dead-templates.d.ts +74 -0
- package/dist/hygiene/tasks/cleanup/dead-templates.js +247 -0
- package/dist/hygiene/tasks/cleanup/duplicates.d.ts +86 -0
- package/dist/hygiene/tasks/cleanup/duplicates.js +189 -0
- package/dist/hygiene/tasks/cleanup/empty-folders.d.ts +75 -0
- package/dist/hygiene/tasks/cleanup/empty-folders.js +165 -0
- package/dist/hygiene/tasks/cleanup/field-set.d.ts +108 -0
- package/dist/hygiene/tasks/cleanup/field-set.js +230 -0
- package/dist/hygiene/tasks/cleanup/find-replace.d.ts +77 -0
- package/dist/hygiene/tasks/cleanup/find-replace.js +180 -0
- package/dist/hygiene/tasks/cleanup/language-version-add.d.ts +74 -0
- package/dist/hygiene/tasks/cleanup/language-version-add.js +136 -0
- package/dist/hygiene/tasks/cleanup/rename.d.ts +78 -0
- package/dist/hygiene/tasks/cleanup/rename.js +152 -0
- package/dist/hygiene/tasks/cleanup/roles.d.ts +58 -0
- package/dist/hygiene/tasks/cleanup/roles.js +177 -0
- package/dist/hygiene/tasks/cleanup/site-residue.d.ts +55 -0
- package/dist/hygiene/tasks/cleanup/site-residue.js +247 -0
- package/dist/hygiene/tasks/cleanup/slug-conflicts.d.ts +126 -0
- package/dist/hygiene/tasks/cleanup/slug-conflicts.js +296 -0
- package/dist/hygiene/tasks/cleanup/subtree-prune.d.ts +40 -0
- package/dist/hygiene/tasks/cleanup/subtree-prune.js +113 -0
- package/dist/hygiene/tasks/cleanup/subtree.d.ts +123 -0
- package/dist/hygiene/tasks/cleanup/subtree.js +312 -0
- package/dist/hygiene/tasks/cleanup/users.d.ts +48 -0
- package/dist/hygiene/tasks/cleanup/users.js +92 -0
- package/dist/hygiene/tasks/cleanup/versions-archive.d.ts +57 -0
- package/dist/hygiene/tasks/cleanup/versions-archive.js +162 -0
- package/dist/hygiene/tasks/cleanup/versions-prune.d.ts +76 -0
- package/dist/hygiene/tasks/cleanup/versions-prune.js +194 -0
- package/dist/hygiene/tasks/cleanup/workflow-advance.d.ts +76 -0
- package/dist/hygiene/tasks/cleanup/workflow-advance.js +185 -0
- package/dist/hygiene/tasks/cleanup/workflow-apply.d.ts +97 -0
- package/dist/hygiene/tasks/cleanup/workflow-apply.js +310 -0
- package/dist/hygiene/tasks/explain/orphan-site.d.ts +53 -0
- package/dist/hygiene/tasks/explain/orphan-site.js +83 -0
- package/dist/hygiene/tasks/explain/why-blocked.d.ts +81 -0
- package/dist/hygiene/tasks/explain/why-blocked.js +149 -0
- package/dist/hygiene/tasks/reference-kind.d.ts +47 -0
- package/dist/hygiene/tasks/reference-kind.js +73 -0
- package/dist/hygiene/tasks/shared.d.ts +350 -0
- package/dist/hygiene/tasks/shared.js +532 -0
- package/dist/mcp/auth.d.ts +80 -0
- package/dist/mcp/auth.js +165 -0
- package/dist/mcp/build-registry.d.ts +12 -0
- package/dist/mcp/build-registry.js +75 -0
- package/dist/mcp/descriptions.d.ts +22 -0
- package/dist/mcp/descriptions.js +113 -0
- package/dist/mcp/dispatch.d.ts +44 -0
- package/dist/mcp/dispatch.js +110 -0
- package/dist/mcp/errors.d.ts +31 -0
- package/dist/mcp/errors.js +117 -0
- package/dist/mcp/http.d.ts +42 -0
- package/dist/mcp/http.js +128 -0
- package/dist/mcp/logging.d.ts +28 -0
- package/dist/mcp/logging.js +78 -0
- package/dist/mcp/prompts/workflows.d.ts +13 -0
- package/dist/mcp/prompts/workflows.js +171 -0
- package/dist/mcp/redact.d.ts +11 -0
- package/dist/mcp/redact.js +35 -0
- package/dist/mcp/registry.d.ts +84 -0
- package/dist/mcp/registry.js +62 -0
- package/dist/mcp/resources/brand.d.ts +20 -0
- package/dist/mcp/resources/brand.js +514 -0
- package/dist/mcp/resources/env.d.ts +10 -0
- package/dist/mcp/resources/env.js +120 -0
- package/dist/mcp/resources/help.d.ts +10 -0
- package/dist/mcp/resources/help.js +475 -0
- package/dist/mcp/resources/recipes.d.ts +13 -0
- package/dist/mcp/resources/recipes.js +270 -0
- package/dist/mcp/schemas/common.d.ts +22 -0
- package/dist/mcp/schemas/common.js +43 -0
- package/dist/mcp/server.d.ts +26 -0
- package/dist/mcp/server.js +88 -0
- package/dist/mcp/tools/access-check.d.ts +11 -0
- package/dist/mcp/tools/access-check.js +47 -0
- package/dist/mcp/tools/agents-recipe.d.ts +2 -0
- package/dist/mcp/tools/agents-recipe.js +139 -0
- package/dist/mcp/tools/agents.d.ts +2 -0
- package/dist/mcp/tools/agents.js +148 -0
- package/dist/mcp/tools/audit.d.ts +41 -0
- package/dist/mcp/tools/audit.js +584 -0
- package/dist/mcp/tools/bootstrap.d.ts +8 -0
- package/dist/mcp/tools/bootstrap.js +200 -0
- package/dist/mcp/tools/brand-recipe.d.ts +2 -0
- package/dist/mcp/tools/brand-recipe.js +123 -0
- package/dist/mcp/tools/brand.d.ts +28 -0
- package/dist/mcp/tools/brand.js +549 -0
- package/dist/mcp/tools/brief-recipe.d.ts +2 -0
- package/dist/mcp/tools/brief-recipe.js +123 -0
- package/dist/mcp/tools/brief.d.ts +16 -0
- package/dist/mcp/tools/brief.js +388 -0
- package/dist/mcp/tools/browse.d.ts +9 -0
- package/dist/mcp/tools/browse.js +57 -0
- package/dist/mcp/tools/campaign-recipe.d.ts +2 -0
- package/dist/mcp/tools/campaign-recipe.js +125 -0
- package/dist/mcp/tools/campaign.d.ts +20 -0
- package/dist/mcp/tools/campaign.js +342 -0
- package/dist/mcp/tools/cleanup.d.ts +22 -0
- package/dist/mcp/tools/cleanup.js +608 -0
- package/dist/mcp/tools/deploy.d.ts +19 -0
- package/dist/mcp/tools/deploy.js +797 -0
- package/dist/mcp/tools/explain.d.ts +2 -0
- package/dist/mcp/tools/explain.js +132 -0
- package/dist/mcp/tools/inspector.d.ts +12 -0
- package/dist/mcp/tools/inspector.js +101 -0
- package/dist/mcp/tools/onboard.d.ts +11 -0
- package/dist/mcp/tools/onboard.js +65 -0
- package/dist/mcp/tools/publish.d.ts +30 -0
- package/dist/mcp/tools/publish.js +173 -0
- package/dist/mcp/tools/recipe-sync.d.ts +2 -0
- package/dist/mcp/tools/recipe-sync.js +117 -0
- package/dist/mcp/tools/recipe.d.ts +18 -0
- package/dist/mcp/tools/recipe.js +250 -0
- package/dist/mcp/tools/serialization.d.ts +17 -0
- package/dist/mcp/tools/serialization.js +282 -0
- package/dist/mcp/tools/webhook.d.ts +12 -0
- package/dist/mcp/tools/webhook.js +246 -0
- package/dist/mcp/tools/workflow.d.ts +21 -0
- package/dist/mcp/tools/workflow.js +436 -0
- package/dist/policy/access-check.d.ts +56 -0
- package/dist/policy/access-check.js +160 -0
- package/dist/policy/allow-write.d.ts +37 -0
- package/dist/policy/allow-write.js +78 -0
- package/dist/policy/authorize.d.ts +36 -0
- package/dist/policy/authorize.js +102 -0
- package/dist/policy/caller.d.ts +23 -0
- package/dist/policy/caller.js +66 -0
- package/dist/policy/enforce.d.ts +25 -0
- package/dist/policy/enforce.js +57 -0
- package/dist/policy/enroll.d.ts +57 -0
- package/dist/policy/enroll.js +101 -0
- package/dist/policy/environment.d.ts +35 -0
- package/dist/policy/environment.js +44 -0
- package/dist/policy/identity.d.ts +24 -0
- package/dist/policy/identity.js +58 -0
- package/dist/policy/index.d.ts +22 -0
- package/dist/policy/index.js +42 -0
- package/dist/policy/operations.d.ts +24 -0
- package/dist/policy/operations.js +37 -0
- package/dist/policy/organization.d.ts +62 -0
- package/dist/policy/organization.js +97 -0
- package/dist/policy/paths.d.ts +21 -0
- package/dist/policy/paths.js +46 -0
- package/dist/policy/resolve.d.ts +15 -0
- package/dist/policy/resolve.js +67 -0
- package/dist/policy/schema.d.ts +137 -0
- package/dist/policy/schema.js +92 -0
- package/dist/policy/store.d.ts +25 -0
- package/dist/policy/store.js +85 -0
- package/dist/policy/types.d.ts +52 -0
- package/dist/policy/types.js +22 -0
- package/dist/program.d.ts +35 -0
- package/dist/program.js +131 -0
- package/dist/publishing/api/auth.d.ts +49 -0
- package/dist/publishing/api/auth.js +173 -0
- package/dist/publishing/api/client.d.ts +5 -0
- package/dist/publishing/api/client.js +153 -0
- package/dist/publishing/api/languages.d.ts +61 -0
- package/dist/publishing/api/languages.js +116 -0
- package/dist/publishing/api/path-resolver.d.ts +10 -0
- package/dist/publishing/api/path-resolver.js +76 -0
- package/dist/publishing/api/sites.d.ts +23 -0
- package/dist/publishing/api/sites.js +27 -0
- package/dist/publishing/api/types.d.ts +166 -0
- package/dist/publishing/api/types.js +17 -0
- package/dist/publishing/index.d.ts +25 -0
- package/dist/publishing/index.js +51 -0
- package/dist/publishing/job-diagnostics.d.ts +44 -0
- package/dist/publishing/job-diagnostics.js +87 -0
- package/dist/publishing/job-watcher.d.ts +33 -0
- package/dist/publishing/job-watcher.js +118 -0
- package/dist/publishing/tasks/all.d.ts +41 -0
- package/dist/publishing/tasks/all.js +234 -0
- package/dist/publishing/tasks/cancel.d.ts +18 -0
- package/dist/publishing/tasks/cancel.js +147 -0
- package/dist/publishing/tasks/history.d.ts +22 -0
- package/dist/publishing/tasks/history.js +85 -0
- package/dist/publishing/tasks/item.d.ts +69 -0
- package/dist/publishing/tasks/item.js +194 -0
- package/dist/publishing/tasks/status.d.ts +17 -0
- package/dist/publishing/tasks/status.js +74 -0
- package/dist/publishing/tasks/unpublish.d.ts +69 -0
- package/dist/publishing/tasks/unpublish.js +546 -0
- package/dist/recipe/api/auth.d.ts +1 -2
- package/dist/recipe/api/auth.js +1 -1
- package/dist/recipe/api/authoring-client.d.ts +9 -3
- package/dist/recipe/api/authoring-client.js +101 -17
- package/dist/recipe/api/client.d.ts +50 -1
- package/dist/recipe/api/graphql.d.ts +2 -3
- package/dist/recipe/api/graphql.js +1 -1
- package/dist/recipe/api/ref-encoding.d.ts +0 -1
- package/dist/recipe/api/ref-encoding.js +5 -5
- package/dist/recipe/api/site-discovery.d.ts +1 -2
- package/dist/recipe/api/sites-client.d.ts +6 -3
- package/dist/recipe/api/sites-client.js +11 -8
- package/dist/recipe/cache.d.ts +0 -1
- package/dist/recipe/compile/component-section.d.ts +1 -2
- package/dist/recipe/compile/component-section.js +2 -2
- package/dist/recipe/compile/component-template.d.ts +0 -1
- package/dist/recipe/compile/component-template.js +15 -19
- package/dist/recipe/compile/content-item.d.ts +42 -22
- package/dist/recipe/compile/content-item.js +198 -46
- package/dist/recipe/compile/content-template.d.ts +0 -1
- package/dist/recipe/compile/content-template.js +25 -1
- package/dist/recipe/compile/design-parameters-template.d.ts +13 -0
- package/dist/recipe/compile/design-parameters-template.js +92 -0
- package/dist/recipe/compile/enumeration.d.ts +0 -1
- package/dist/recipe/compile/enumeration.js +4 -4
- package/dist/recipe/compile/page-design.d.ts +0 -1
- package/dist/recipe/compile/page-design.js +1 -1
- package/dist/recipe/compile/page-template.d.ts +30 -0
- package/dist/recipe/compile/page-template.js +121 -0
- package/dist/recipe/compile/page.d.ts +26 -0
- package/dist/recipe/compile/page.js +184 -0
- package/dist/recipe/compile/partial-design.d.ts +0 -1
- package/dist/recipe/compile/partial-design.js +1 -1
- package/dist/recipe/compile/placeholder.d.ts +23 -0
- package/dist/recipe/compile/placeholder.js +32 -0
- package/dist/recipe/compile/section-definition.d.ts +0 -1
- package/dist/recipe/compile/shared.d.ts +52 -7
- package/dist/recipe/compile/shared.js +55 -15
- package/dist/recipe/compile/site-template.d.ts +0 -1
- package/dist/recipe/compile/site-template.js +1 -1
- package/dist/recipe/compile/site.d.ts +0 -1
- package/dist/recipe/compile/site.js +1 -1
- package/dist/recipe/compile/webhook-authorization.d.ts +23 -0
- package/dist/recipe/compile/webhook-authorization.js +116 -0
- package/dist/recipe/compile/workflow.d.ts +46 -0
- package/dist/recipe/compile/workflow.js +368 -0
- package/dist/recipe/compile.d.ts +19 -3
- package/dist/recipe/compile.js +297 -11
- package/dist/recipe/ensure-marker-field.d.ts +25 -0
- package/dist/recipe/ensure-marker-field.js +140 -0
- package/dist/recipe/execute.d.ts +19 -2
- package/dist/recipe/execute.js +39 -8
- package/dist/recipe/guids.d.ts +106 -9
- package/dist/recipe/guids.js +126 -15
- package/dist/recipe/index.d.ts +11 -5
- package/dist/recipe/index.js +46 -23
- package/dist/recipe/io.d.ts +0 -1
- package/dist/recipe/io.js +33 -10
- package/dist/recipe/ir/operations.d.ts +66 -4
- package/dist/recipe/ir/operations.js +55 -2
- package/dist/recipe/ir/sitecore-templates.d.ts +87 -1
- package/dist/recipe/ir/sitecore-templates.js +94 -1
- package/dist/recipe/layout/emit.d.ts +22 -3
- package/dist/recipe/layout/emit.js +18 -7
- package/dist/recipe/layout/parse.d.ts +164 -0
- package/dist/recipe/layout/parse.js +295 -0
- package/dist/recipe/layout/templates-mapping.d.ts +0 -1
- package/dist/recipe/marker.d.ts +28 -0
- package/dist/recipe/marker.js +37 -0
- package/dist/recipe/plan.d.ts +9 -2
- package/dist/recipe/plan.js +195 -19
- package/dist/recipe/policy.d.ts +0 -1
- package/dist/recipe/policy.js +19 -1
- package/dist/recipe/read-current.d.ts +109 -0
- package/dist/recipe/read-current.js +1285 -0
- package/dist/recipe/recipe-kind.d.ts +4 -0
- package/dist/recipe/recipe-kind.js +217 -0
- package/dist/recipe/rollback-log.d.ts +52 -0
- package/dist/recipe/rollback-log.js +90 -0
- package/dist/recipe/rollback.d.ts +12 -1
- package/dist/recipe/rollback.js +32 -7
- package/dist/recipe/sandbox/load.d.ts +17 -0
- package/dist/recipe/sandbox/load.js +145 -0
- package/dist/recipe/sandbox/recipe-runner.cjs +49 -0
- package/dist/recipe/sandbox/transpile.d.ts +17 -0
- package/dist/recipe/sandbox/transpile.js +46 -0
- package/dist/recipe/schema/field-types.d.ts +3 -4
- package/dist/recipe/schema/recipe.d.ts +1631 -213
- package/dist/recipe/schema/recipe.js +576 -37
- package/dist/recipe/schema/source-fields.d.ts +0 -1
- package/dist/recipe/tasks/compile.d.ts +1 -2
- package/dist/recipe/tasks/compile.js +27 -13
- package/dist/recipe/tasks/diff.d.ts +1 -2
- package/dist/recipe/tasks/placeholder-allow.d.ts +0 -1
- package/dist/recipe/tasks/placeholder-allow.js +3 -7
- package/dist/recipe/tasks/plan.d.ts +3 -4
- package/dist/recipe/tasks/plan.js +5 -5
- package/dist/recipe/tasks/prune-defaults.d.ts +1 -2
- package/dist/recipe/tasks/prune-defaults.js +6 -7
- package/dist/recipe/tasks/push.d.ts +1 -2
- package/dist/recipe/tasks/push.js +52 -7
- package/dist/recipe/tasks/shared.d.ts +42 -6
- package/dist/recipe/tasks/shared.js +72 -24
- package/dist/recipe/unstable.d.ts +18 -0
- package/dist/recipe/unstable.js +36 -0
- package/dist/recipe/validate.d.ts +51 -2
- package/dist/recipe/validate.js +162 -15
- package/dist/scripting/connect.d.ts +24 -0
- package/dist/scripting/connect.js +17 -0
- package/dist/scripting/helpers/multilist.d.ts +26 -0
- package/dist/scripting/helpers/multilist.js +75 -0
- package/dist/scripting/index.d.ts +20 -0
- package/dist/scripting/index.js +57 -0
- package/dist/serialization/api/auth.d.ts +57 -0
- package/dist/serialization/api/auth.js +433 -0
- package/dist/serialization/api/client.d.ts +41 -0
- package/dist/serialization/api/client.js +41 -0
- package/dist/serialization/api/graphql.d.ts +11 -0
- package/dist/serialization/api/history.d.ts +8 -0
- package/dist/serialization/api/index.d.ts +23 -0
- package/dist/serialization/api/index.js +64 -0
- package/dist/serialization/api/items.d.ts +7 -0
- package/dist/serialization/api/items.js +132 -0
- package/dist/serialization/api/publish.d.ts +43 -0
- package/dist/serialization/api/publish.js +67 -0
- package/dist/serialization/api/roles.d.ts +8 -0
- package/dist/serialization/api/types.d.ts +65 -0
- package/dist/serialization/api/types.js +2 -0
- package/dist/serialization/api/users.d.ts +8 -0
- package/dist/serialization/commands.d.ts +0 -1
- package/dist/serialization/compare.d.ts +0 -1
- package/dist/serialization/context.d.ts +25 -0
- package/dist/serialization/context.js +58 -0
- package/dist/serialization/field-filter.d.ts +0 -1
- package/dist/serialization/filesystem-store/constants.d.ts +0 -1
- package/dist/serialization/filesystem-store/items.d.ts +0 -1
- package/dist/serialization/filesystem-store/items.js +1 -1
- package/dist/serialization/filesystem-store/roles.d.ts +1 -2
- package/dist/serialization/filesystem-store/users.d.ts +1 -2
- package/dist/serialization/filesystem-store/utils.d.ts +0 -1
- package/dist/serialization/index.d.ts +12 -0
- package/dist/serialization/index.js +32 -0
- package/dist/serialization/item-path.d.ts +0 -1
- package/dist/serialization/item-path.js +3 -3
- package/dist/serialization/path-provider.d.ts +0 -1
- package/dist/serialization/path-provider.js +4 -4
- package/dist/serialization/signature.d.ts +0 -1
- package/dist/serialization/tasks/diff.d.ts +0 -1
- package/dist/serialization/tasks/diff.js +176 -48
- package/dist/serialization/tasks/env/constants.d.ts +13 -1
- package/dist/serialization/tasks/env/constants.js +64 -1
- package/dist/serialization/tasks/env/deploy-token.d.ts +0 -1
- package/dist/serialization/tasks/env/deploy-token.js +69 -17
- package/dist/serialization/tasks/env/init/auth.d.ts +11 -3
- package/dist/serialization/tasks/env/init/auth.js +19 -17
- package/dist/serialization/tasks/env/init/deploy-lookup.d.ts +1 -2
- package/dist/serialization/tasks/env/init/deploy-lookup.js +18 -5
- package/dist/serialization/tasks/env/init.d.ts +0 -1
- package/dist/serialization/tasks/env/init.js +18 -12
- package/dist/serialization/tasks/env/logout.d.ts +0 -1
- package/dist/serialization/tasks/env/logout.js +13 -6
- package/dist/serialization/tasks/env/onboard.d.ts +40 -0
- package/dist/serialization/tasks/env/onboard.js +53 -0
- package/dist/serialization/tasks/env/setup-clients.d.ts +24 -0
- package/dist/serialization/tasks/env/setup-clients.js +119 -0
- package/dist/serialization/tasks/env/setup-env.d.ts +54 -0
- package/dist/serialization/tasks/env/setup-env.js +216 -0
- package/dist/serialization/tasks/env/setup-org-client.d.ts +21 -0
- package/dist/serialization/tasks/env/setup-org-client.js +146 -0
- package/dist/serialization/tasks/env/status.d.ts +0 -1
- package/dist/serialization/tasks/env/status.js +36 -11
- package/dist/serialization/tasks/helpers/collect.d.ts +1 -2
- package/dist/serialization/tasks/helpers/collect.js +22 -15
- package/dist/serialization/tasks/helpers/commands.d.ts +0 -1
- package/dist/serialization/tasks/helpers/filesystem.d.ts +0 -1
- package/dist/serialization/tasks/helpers/filesystem.js +4 -4
- package/dist/serialization/tasks/helpers/items.d.ts +0 -1
- package/dist/serialization/tasks/helpers/sitecore.d.ts +1 -2
- package/dist/serialization/tasks/helpers/sitecore.js +2 -2
- package/dist/serialization/tasks/info.d.ts +0 -1
- package/dist/serialization/tasks/package.d.ts +0 -1
- package/dist/serialization/tasks/package.js +21 -16
- package/dist/serialization/tasks/pull.d.ts +0 -1
- package/dist/serialization/tasks/pull.js +24 -9
- package/dist/serialization/tasks/push.d.ts +0 -1
- package/dist/serialization/tasks/push.js +27 -11
- package/dist/serialization/tasks/roles.d.ts +2 -2
- package/dist/serialization/tasks/roles.js +9 -9
- package/dist/serialization/tasks/shared.d.ts +9 -16
- package/dist/serialization/tasks/shared.js +14 -44
- package/dist/serialization/tasks/types.d.ts +44 -4
- package/dist/serialization/tasks/types.js +1 -1
- package/dist/serialization/tasks/users.d.ts +2 -2
- package/dist/serialization/tasks/users.js +9 -9
- package/dist/serialization/tasks/validate.d.ts +0 -1
- package/dist/serialization/tasks/validate.js +2 -2
- package/dist/serialization/tasks/watch.d.ts +0 -1
- package/dist/serialization/tasks/watch.js +9 -8
- package/dist/serialization/tree-spec.d.ts +0 -1
- package/dist/serialization/tree-spec.js +21 -21
- package/dist/serialization/types.d.ts +0 -1
- package/dist/serialization/wildcard.d.ts +0 -1
- package/dist/serialization/wildcard.js +2 -2
- package/dist/serialization/yaml.d.ts +0 -1
- package/dist/serialization/yaml.js +1 -1
- package/dist/shared/browser.d.ts +0 -1
- package/dist/shared/cli-options.d.ts +0 -1
- package/dist/shared/cli-tasks.d.ts +1 -2
- package/dist/shared/cli-tasks.js +2 -2
- package/dist/shared/client-credential.d.ts +82 -0
- package/dist/shared/client-credential.js +117 -0
- package/dist/shared/concurrency.d.ts +20 -0
- package/dist/shared/concurrency.js +67 -0
- package/dist/shared/config-template.d.ts +0 -1
- package/dist/shared/credential-matrix.d.ts +83 -0
- package/dist/shared/credential-matrix.js +65 -0
- package/dist/shared/env-tier.d.ts +2 -0
- package/dist/shared/env-tier.js +31 -0
- package/dist/shared/envelope.d.ts +69 -0
- package/dist/shared/envelope.js +84 -0
- package/dist/shared/errors.d.ts +79 -9
- package/dist/shared/errors.js +49 -11
- package/dist/shared/graphql.d.ts +2 -3
- package/dist/shared/graphql.js +31 -15
- package/dist/shared/history.d.ts +25 -1
- package/dist/shared/history.js +35 -1
- package/dist/shared/human-only-operations.d.ts +28 -0
- package/dist/shared/human-only-operations.js +33 -0
- package/dist/shared/keychain.d.ts +68 -1
- package/dist/shared/keychain.js +416 -46
- package/dist/shared/logger.d.ts +2 -1
- package/dist/shared/logger.js +12 -1
- package/dist/shared/output.d.ts +0 -1
- package/dist/shared/prompt.d.ts +0 -1
- package/dist/shared/prompt.js +2 -2
- package/dist/shared/publish-audit.d.ts +154 -0
- package/dist/shared/publish-audit.js +52 -0
- package/dist/shared/publish-consent.d.ts +104 -0
- package/dist/shared/publish-consent.js +148 -0
- package/dist/shared/redact.d.ts +0 -1
- package/dist/shared/redact.js +4 -2
- package/dist/shared/region.d.ts +96 -0
- package/dist/shared/region.js +129 -0
- package/dist/shared/rwlock.d.ts +43 -0
- package/dist/shared/rwlock.js +110 -0
- package/dist/shared/spinner.d.ts +0 -1
- package/dist/shared/style.d.ts +0 -1
- package/dist/shared/telemetry.d.ts +15 -2
- package/dist/shared/telemetry.js +59 -34
- package/dist/shared/topics.d.ts +33 -0
- package/dist/shared/topics.js +151 -0
- package/dist/shared/validate.d.ts +0 -1
- package/dist/shared/validate.js +18 -3
- package/dist/sites/api/collections.d.ts +0 -1
- package/dist/sites/api/jobs.d.ts +0 -1
- package/dist/sites/api/languages.d.ts +0 -1
- package/dist/sites/api/request.d.ts +0 -1
- package/dist/sites/api/request.js +13 -4
- package/dist/sites/api/sites.d.ts +44 -1
- package/dist/sites/api/sites.js +42 -1
- package/dist/sites/api/types.d.ts +0 -1
- package/dist/sites/index.d.ts +25 -0
- package/dist/sites/index.js +44 -0
- package/dist/sync/aggregate-kinds.d.ts +7 -0
- package/dist/sync/aggregate-kinds.js +32 -0
- package/dist/sync/aggregate.d.ts +100 -0
- package/dist/sync/aggregate.js +173 -0
- package/dist/sync/engine.d.ts +28 -0
- package/dist/sync/engine.js +38 -0
- package/dist/sync/index.d.ts +18 -0
- package/dist/sync/index.js +25 -0
- package/dist/sync/io.d.ts +8 -0
- package/dist/sync/io.js +52 -0
- package/dist/sync/kind.d.ts +80 -0
- package/dist/sync/kind.js +2 -0
- package/dist/sync/plan.d.ts +55 -0
- package/dist/sync/plan.js +27 -0
- package/dist/sync/registry.d.ts +7 -0
- package/dist/sync/registry.js +36 -0
- package/dist/webhooks/api/client.d.ts +134 -0
- package/dist/webhooks/api/client.js +326 -0
- package/dist/webhooks/api/graphql.d.ts +4 -0
- package/dist/webhooks/api/graphql.js +18 -0
- package/dist/webhooks/api/templates.d.ts +41 -0
- package/dist/webhooks/api/templates.js +78 -0
- package/dist/webhooks/index.d.ts +16 -0
- package/dist/webhooks/index.js +43 -0
- package/dist/webhooks/tasks/create.d.ts +58 -0
- package/dist/webhooks/tasks/create.js +127 -0
- package/dist/webhooks/tasks/delete.d.ts +14 -0
- package/dist/webhooks/tasks/delete.js +57 -0
- package/dist/webhooks/tasks/event-types.d.ts +21 -0
- package/dist/webhooks/tasks/event-types.js +32 -0
- package/dist/webhooks/tasks/inspect.d.ts +12 -0
- package/dist/webhooks/tasks/inspect.js +65 -0
- package/dist/webhooks/tasks/list.d.ts +29 -0
- package/dist/webhooks/tasks/list.js +41 -0
- package/dist/webhooks/tasks/shared.d.ts +35 -0
- package/dist/webhooks/tasks/shared.js +38 -0
- package/dist/workflow/api/client.d.ts +208 -0
- package/dist/workflow/api/client.js +421 -0
- package/dist/workflow/api/graphql.d.ts +4 -0
- package/dist/workflow/api/graphql.js +18 -0
- package/dist/workflow/api/resolve-command.d.ts +27 -0
- package/dist/workflow/api/resolve-command.js +26 -0
- package/dist/workflow/index.d.ts +18 -0
- package/dist/workflow/index.js +37 -0
- package/dist/workflow/tasks/advance.d.ts +39 -0
- package/dist/workflow/tasks/advance.js +182 -0
- package/dist/workflow/tasks/apply.d.ts +47 -0
- package/dist/workflow/tasks/apply.js +193 -0
- package/dist/workflow/tasks/assigned.d.ts +33 -0
- package/dist/workflow/tasks/assigned.js +41 -0
- package/dist/workflow/tasks/inspect.d.ts +60 -0
- package/dist/workflow/tasks/inspect.js +171 -0
- package/dist/workflow/tasks/list-commands.d.ts +21 -0
- package/dist/workflow/tasks/list-commands.js +54 -0
- package/dist/workflow/tasks/list-defs.d.ts +21 -0
- package/dist/workflow/tasks/list-defs.js +28 -0
- package/dist/workflow/tasks/reset.d.ts +33 -0
- package/dist/workflow/tasks/reset.js +137 -0
- package/dist/workflow/tasks/shared.d.ts +75 -0
- package/dist/workflow/tasks/shared.js +124 -0
- package/dist/workflow/tasks/status.d.ts +21 -0
- package/dist/workflow/tasks/status.js +41 -0
- package/package.json +102 -8
- package/dist/cli.d.ts.map +0 -1
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/deploy/deployments.d.ts.map +0 -1
- package/dist/commands/deploy/editing-host.d.ts.map +0 -1
- package/dist/commands/deploy/environments/deployments.d.ts.map +0 -1
- package/dist/commands/deploy/environments/index.d.ts.map +0 -1
- package/dist/commands/deploy/environments/mutations.d.ts.map +0 -1
- package/dist/commands/deploy/environments/queries.d.ts.map +0 -1
- package/dist/commands/deploy/environments/variables.d.ts.map +0 -1
- package/dist/commands/deploy/environments.d.ts.map +0 -1
- package/dist/commands/deploy/index.d.ts.map +0 -1
- package/dist/commands/deploy/logs.d.ts.map +0 -1
- package/dist/commands/deploy/organizations.d.ts.map +0 -1
- package/dist/commands/deploy/projects.d.ts.map +0 -1
- package/dist/commands/deploy/shared.d.ts.map +0 -1
- package/dist/commands/deploy/site.d.ts.map +0 -1
- package/dist/commands/deploy/source-control.d.ts.map +0 -1
- package/dist/commands/deploy.d.ts.map +0 -1
- package/dist/commands/history.d.ts.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/logout.d.ts.map +0 -1
- package/dist/commands/recipe/index.d.ts.map +0 -1
- package/dist/commands/serialization/index.d.ts.map +0 -1
- package/dist/commands/serialization/package.d.ts.map +0 -1
- package/dist/commands/shared.d.ts.map +0 -1
- package/dist/commands/shell.d.ts.map +0 -1
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/telemetry.d.ts.map +0 -1
- package/dist/config/env-overrides.d.ts.map +0 -1
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/modules.d.ts.map +0 -1
- package/dist/config/paths.d.ts.map +0 -1
- package/dist/config/root-config.d.ts.map +0 -1
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/validation.d.ts.map +0 -1
- package/dist/deploy/api/common/headers.d.ts.map +0 -1
- package/dist/deploy/api/common/index.d.ts +0 -4
- package/dist/deploy/api/common/index.d.ts.map +0 -1
- package/dist/deploy/api/common/index.js +0 -19
- package/dist/deploy/api/common/request.d.ts.map +0 -1
- package/dist/deploy/api/common/types.d.ts.map +0 -1
- package/dist/deploy/api/common.d.ts +0 -2
- package/dist/deploy/api/common.d.ts.map +0 -1
- package/dist/deploy/api/common.js +0 -17
- package/dist/deploy/api/deployment-logs.d.ts.map +0 -1
- package/dist/deploy/api/deployments.d.ts.map +0 -1
- package/dist/deploy/api/environments.d.ts.map +0 -1
- package/dist/deploy/api/index.d.ts.map +0 -1
- package/dist/deploy/api/logs.d.ts.map +0 -1
- package/dist/deploy/api/organizations.d.ts.map +0 -1
- package/dist/deploy/api/projects.d.ts.map +0 -1
- package/dist/deploy/api/source-control.d.ts.map +0 -1
- package/dist/deploy/api.d.ts.map +0 -1
- package/dist/deploy/tasks/deployment-result.d.ts.map +0 -1
- package/dist/deploy/tasks/deployments.d.ts.map +0 -1
- package/dist/deploy/tasks/editing-host.d.ts.map +0 -1
- package/dist/deploy/tasks/environments.d.ts.map +0 -1
- package/dist/deploy/tasks/index.d.ts +0 -10
- package/dist/deploy/tasks/index.d.ts.map +0 -1
- package/dist/deploy/tasks/index.js +0 -25
- package/dist/deploy/tasks/logs.d.ts.map +0 -1
- package/dist/deploy/tasks/organizations.d.ts.map +0 -1
- package/dist/deploy/tasks/projects.d.ts.map +0 -1
- package/dist/deploy/tasks/shared.d.ts.map +0 -1
- package/dist/deploy/tasks/site-bind.d.ts.map +0 -1
- package/dist/deploy/tasks/site.d.ts.map +0 -1
- package/dist/deploy/tasks/source-control.d.ts.map +0 -1
- package/dist/deploy/tasks/types.d.ts.map +0 -1
- package/dist/deploy/tasks.d.ts +0 -3
- package/dist/deploy/tasks.d.ts.map +0 -1
- package/dist/deploy/tasks.js +0 -18
- package/dist/recipe/api/auth.d.ts.map +0 -1
- package/dist/recipe/api/authoring-client.d.ts.map +0 -1
- package/dist/recipe/api/client.d.ts.map +0 -1
- package/dist/recipe/api/graphql.d.ts.map +0 -1
- package/dist/recipe/api/ref-encoding.d.ts.map +0 -1
- package/dist/recipe/api/site-discovery.d.ts.map +0 -1
- package/dist/recipe/api/sites-client.d.ts.map +0 -1
- package/dist/recipe/cache.d.ts.map +0 -1
- package/dist/recipe/compile/component-section.d.ts.map +0 -1
- package/dist/recipe/compile/component-template.d.ts.map +0 -1
- package/dist/recipe/compile/content-item.d.ts.map +0 -1
- package/dist/recipe/compile/content-template.d.ts.map +0 -1
- package/dist/recipe/compile/enumeration.d.ts.map +0 -1
- package/dist/recipe/compile/page-design.d.ts.map +0 -1
- package/dist/recipe/compile/parameters-template.d.ts +0 -14
- package/dist/recipe/compile/parameters-template.d.ts.map +0 -1
- package/dist/recipe/compile/parameters-template.js +0 -92
- package/dist/recipe/compile/partial-design.d.ts.map +0 -1
- package/dist/recipe/compile/section-definition.d.ts.map +0 -1
- package/dist/recipe/compile/shared.d.ts.map +0 -1
- package/dist/recipe/compile/site-template.d.ts.map +0 -1
- package/dist/recipe/compile/site.d.ts.map +0 -1
- package/dist/recipe/compile.d.ts.map +0 -1
- package/dist/recipe/execute.d.ts.map +0 -1
- package/dist/recipe/guids.d.ts.map +0 -1
- package/dist/recipe/index.d.ts.map +0 -1
- package/dist/recipe/io.d.ts.map +0 -1
- package/dist/recipe/ir/operations.d.ts.map +0 -1
- package/dist/recipe/ir/sitecore-templates.d.ts.map +0 -1
- package/dist/recipe/layout/emit.d.ts.map +0 -1
- package/dist/recipe/layout/templates-mapping.d.ts.map +0 -1
- package/dist/recipe/plan.d.ts.map +0 -1
- package/dist/recipe/policy.d.ts.map +0 -1
- package/dist/recipe/rollback.d.ts.map +0 -1
- package/dist/recipe/schema/field-types.d.ts.map +0 -1
- package/dist/recipe/schema/recipe.d.ts.map +0 -1
- package/dist/recipe/schema/source-fields.d.ts.map +0 -1
- package/dist/recipe/tasks/compile.d.ts.map +0 -1
- package/dist/recipe/tasks/diff.d.ts.map +0 -1
- package/dist/recipe/tasks/index.d.ts +0 -9
- package/dist/recipe/tasks/index.d.ts.map +0 -1
- package/dist/recipe/tasks/index.js +0 -13
- package/dist/recipe/tasks/placeholder-allow.d.ts.map +0 -1
- package/dist/recipe/tasks/plan.d.ts.map +0 -1
- package/dist/recipe/tasks/prune-defaults.d.ts.map +0 -1
- package/dist/recipe/tasks/push.d.ts.map +0 -1
- package/dist/recipe/tasks/shared.d.ts.map +0 -1
- package/dist/recipe/validate.d.ts.map +0 -1
- package/dist/serialization/commands.d.ts.map +0 -1
- package/dist/serialization/compare.d.ts.map +0 -1
- package/dist/serialization/field-filter.d.ts.map +0 -1
- package/dist/serialization/filesystem-store/constants.d.ts.map +0 -1
- package/dist/serialization/filesystem-store/index.d.ts +0 -4
- package/dist/serialization/filesystem-store/index.d.ts.map +0 -1
- package/dist/serialization/filesystem-store/index.js +0 -15
- package/dist/serialization/filesystem-store/items.d.ts.map +0 -1
- package/dist/serialization/filesystem-store/roles.d.ts.map +0 -1
- package/dist/serialization/filesystem-store/users.d.ts.map +0 -1
- package/dist/serialization/filesystem-store/utils.d.ts.map +0 -1
- package/dist/serialization/filesystem-store.d.ts +0 -2
- package/dist/serialization/filesystem-store.d.ts.map +0 -1
- package/dist/serialization/filesystem-store.js +0 -17
- package/dist/serialization/item-path.d.ts.map +0 -1
- package/dist/serialization/path-provider.d.ts.map +0 -1
- package/dist/serialization/signature.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/auth.d.ts +0 -31
- package/dist/serialization/sitecore-api/auth.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/auth.js +0 -319
- package/dist/serialization/sitecore-api/graphql.d.ts +0 -12
- package/dist/serialization/sitecore-api/graphql.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/history.d.ts +0 -9
- package/dist/serialization/sitecore-api/history.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/index.d.ts +0 -7
- package/dist/serialization/sitecore-api/index.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/index.js +0 -22
- package/dist/serialization/sitecore-api/items.d.ts +0 -8
- package/dist/serialization/sitecore-api/items.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/items.js +0 -132
- package/dist/serialization/sitecore-api/publish.d.ts +0 -14
- package/dist/serialization/sitecore-api/publish.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/publish.js +0 -43
- package/dist/serialization/sitecore-api/roles.d.ts +0 -9
- package/dist/serialization/sitecore-api/roles.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/users.d.ts +0 -9
- package/dist/serialization/sitecore-api/users.d.ts.map +0 -1
- package/dist/serialization/sitecore-api.d.ts +0 -2
- package/dist/serialization/sitecore-api.d.ts.map +0 -1
- package/dist/serialization/sitecore-api.js +0 -17
- package/dist/serialization/tasks/diff.d.ts.map +0 -1
- package/dist/serialization/tasks/env/constants.d.ts.map +0 -1
- package/dist/serialization/tasks/env/deploy-token.d.ts.map +0 -1
- package/dist/serialization/tasks/env/index.d.ts +0 -5
- package/dist/serialization/tasks/env/index.d.ts.map +0 -1
- package/dist/serialization/tasks/env/index.js +0 -11
- package/dist/serialization/tasks/env/init/auth.d.ts.map +0 -1
- package/dist/serialization/tasks/env/init/deploy-lookup.d.ts.map +0 -1
- package/dist/serialization/tasks/env/init.d.ts.map +0 -1
- package/dist/serialization/tasks/env/logout.d.ts.map +0 -1
- package/dist/serialization/tasks/env/status.d.ts.map +0 -1
- package/dist/serialization/tasks/env.d.ts +0 -2
- package/dist/serialization/tasks/env.d.ts.map +0 -1
- package/dist/serialization/tasks/env.js +0 -17
- package/dist/serialization/tasks/helpers/collect.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers/commands.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers/filesystem.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers/index.d.ts +0 -6
- package/dist/serialization/tasks/helpers/index.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers/index.js +0 -13
- package/dist/serialization/tasks/helpers/items.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers/sitecore.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers.d.ts +0 -2
- package/dist/serialization/tasks/helpers.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers.js +0 -17
- package/dist/serialization/tasks/index.d.ts +0 -8
- package/dist/serialization/tasks/index.d.ts.map +0 -1
- package/dist/serialization/tasks/index.js +0 -19
- package/dist/serialization/tasks/info.d.ts.map +0 -1
- package/dist/serialization/tasks/package.d.ts.map +0 -1
- package/dist/serialization/tasks/pull.d.ts.map +0 -1
- package/dist/serialization/tasks/push.d.ts.map +0 -1
- package/dist/serialization/tasks/roles.d.ts.map +0 -1
- package/dist/serialization/tasks/shared.d.ts.map +0 -1
- package/dist/serialization/tasks/types.d.ts.map +0 -1
- package/dist/serialization/tasks/users.d.ts.map +0 -1
- package/dist/serialization/tasks/validate.d.ts.map +0 -1
- package/dist/serialization/tasks/watch.d.ts.map +0 -1
- package/dist/serialization/tasks.d.ts +0 -4
- package/dist/serialization/tasks.d.ts.map +0 -1
- package/dist/serialization/tasks.js +0 -19
- package/dist/serialization/tree-spec.d.ts.map +0 -1
- package/dist/serialization/types.d.ts.map +0 -1
- package/dist/serialization/wildcard.d.ts.map +0 -1
- package/dist/serialization/yaml.d.ts.map +0 -1
- package/dist/shared/browser.d.ts.map +0 -1
- package/dist/shared/cli-options.d.ts.map +0 -1
- package/dist/shared/cli-tasks.d.ts.map +0 -1
- package/dist/shared/config-template.d.ts.map +0 -1
- package/dist/shared/env.d.ts +0 -28
- package/dist/shared/env.d.ts.map +0 -1
- package/dist/shared/env.js +0 -38
- package/dist/shared/errors.d.ts.map +0 -1
- package/dist/shared/graphql.d.ts.map +0 -1
- package/dist/shared/history.d.ts.map +0 -1
- package/dist/shared/keychain.d.ts.map +0 -1
- package/dist/shared/logger.d.ts.map +0 -1
- package/dist/shared/output.d.ts.map +0 -1
- package/dist/shared/prompt.d.ts.map +0 -1
- package/dist/shared/redact.d.ts.map +0 -1
- package/dist/shared/spinner.d.ts.map +0 -1
- package/dist/shared/style.d.ts.map +0 -1
- package/dist/shared/telemetry.d.ts.map +0 -1
- package/dist/shared/validate.d.ts.map +0 -1
- package/dist/sites/api/collections.d.ts.map +0 -1
- package/dist/sites/api/index.d.ts +0 -26
- package/dist/sites/api/index.d.ts.map +0 -1
- package/dist/sites/api/index.js +0 -55
- package/dist/sites/api/jobs.d.ts.map +0 -1
- package/dist/sites/api/languages.d.ts.map +0 -1
- package/dist/sites/api/request.d.ts.map +0 -1
- package/dist/sites/api/sites.d.ts.map +0 -1
- package/dist/sites/api/types.d.ts.map +0 -1
- /package/dist/serialization/{sitecore-api → api}/graphql.js +0 -0
- /package/dist/serialization/{sitecore-api → api}/history.js +0 -0
- /package/dist/serialization/{sitecore-api → api}/roles.js +0 -0
- /package/dist/serialization/{sitecore-api → api}/users.js +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `runEnvironmentOnboard` — stand up a new environment profile.
|
|
4
|
+
*
|
|
5
|
+
* The agent-drivable half of environment setup: write the env profile
|
|
6
|
+
* into `sitecoreai.cli.json`, then run the access preflight so the
|
|
7
|
+
* caller sees exactly what is left — policy enrollment (agent-clearable)
|
|
8
|
+
* and credentials (human-terminal-only, see `HUMAN_ONLY_OPERATIONS`).
|
|
9
|
+
*
|
|
10
|
+
* It deliberately does NOT mint a client or log in — those are
|
|
11
|
+
* human-only — and does NOT discover the tenant: the caller supplies
|
|
12
|
+
* the organization / project / environment ids and host (resolve them
|
|
13
|
+
* first with the deploy tools or `scai_overview`).
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.runEnvironmentOnboard = void 0;
|
|
17
|
+
const root_config_1 = require("../../../config/root-config");
|
|
18
|
+
const errors_1 = require("../../../shared/errors");
|
|
19
|
+
const validate_1 = require("../../../shared/validate");
|
|
20
|
+
const access_check_1 = require("../../../policy/access-check");
|
|
21
|
+
const DEFAULT_AUTHORITY = "https://auth.sitecorecloud.io";
|
|
22
|
+
/**
|
|
23
|
+
* Add a new environment profile to the config, then preflight it.
|
|
24
|
+
* Throws `INPUT_INVALID` rather than clobbering an existing profile.
|
|
25
|
+
*/
|
|
26
|
+
const runEnvironmentOnboard = async (options) => {
|
|
27
|
+
const configPath = options.config ?? process.cwd();
|
|
28
|
+
const envName = options.environmentName.trim();
|
|
29
|
+
if (!envName) {
|
|
30
|
+
throw (0, errors_1.createScaiError)("An environment name is required.", "INPUT_INVALID");
|
|
31
|
+
}
|
|
32
|
+
(0, validate_1.assertValidHost)(options.host, "CM host");
|
|
33
|
+
const rootFile = (0, root_config_1.readRootConfigurationFile)(configPath);
|
|
34
|
+
const envProfiles = rootFile.config.envProfiles ?? {};
|
|
35
|
+
if (envProfiles[envName]) {
|
|
36
|
+
throw (0, errors_1.createScaiError)(`Environment '${envName}' is already configured.`, "INPUT_INVALID", {
|
|
37
|
+
hint: "Pick a different name, or edit the existing profile directly.",
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
const profile = {
|
|
41
|
+
organizationId: options.organizationId,
|
|
42
|
+
projectId: options.projectId,
|
|
43
|
+
environmentId: options.environmentId,
|
|
44
|
+
environmentType: options.environmentType ?? "cm",
|
|
45
|
+
host: options.host,
|
|
46
|
+
authority: options.authority ?? DEFAULT_AUTHORITY,
|
|
47
|
+
};
|
|
48
|
+
rootFile.config.envProfiles = { ...envProfiles, [envName]: profile };
|
|
49
|
+
(0, root_config_1.writeRootConfigurationFile)(configPath, rootFile.config);
|
|
50
|
+
const access = await (0, access_check_1.checkAccess)({ configPath, environmentName: envName });
|
|
51
|
+
return { environmentName: envName, profile, access };
|
|
52
|
+
};
|
|
53
|
+
exports.runEnvironmentOnboard = runEnvironmentOnboard;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `scai setup clients [name]` — list, or with `--delete <id>` remove,
|
|
3
|
+
* the automation clients (credentials) in an environment's
|
|
4
|
+
* organization.
|
|
5
|
+
*
|
|
6
|
+
* The Deploy clients API is organization-scoped, so this covers every
|
|
7
|
+
* client in the org the named environment belongs to — both the
|
|
8
|
+
* environment-scoped clients (`cm`, `edge`, `ehbuild`) and the
|
|
9
|
+
* organization-scoped `deploy` clients. scai-minted clients (the
|
|
10
|
+
* `scai-*` naming convention) are flagged so an operator can tell
|
|
11
|
+
* what scai provisioned apart from anything created by hand.
|
|
12
|
+
*
|
|
13
|
+
* Pair with `scai setup env` (mint) and `scai setup status` (the
|
|
14
|
+
* yes/no credential matrix).
|
|
15
|
+
*/
|
|
16
|
+
import type { CommonOptions } from "../../../shared/cli-options";
|
|
17
|
+
export type SetupClientsOptions = CommonOptions & {
|
|
18
|
+
environmentName?: string;
|
|
19
|
+
/** When set, delete the client with this id instead of listing. */
|
|
20
|
+
delete?: string;
|
|
21
|
+
/** Skip the delete confirmation prompt. */
|
|
22
|
+
force?: boolean;
|
|
23
|
+
};
|
|
24
|
+
export declare const runSetupClients: (options: SetupClientsOptions) => Promise<void>;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `scai setup clients [name]` — list, or with `--delete <id>` remove,
|
|
4
|
+
* the automation clients (credentials) in an environment's
|
|
5
|
+
* organization.
|
|
6
|
+
*
|
|
7
|
+
* The Deploy clients API is organization-scoped, so this covers every
|
|
8
|
+
* client in the org the named environment belongs to — both the
|
|
9
|
+
* environment-scoped clients (`cm`, `edge`, `ehbuild`) and the
|
|
10
|
+
* organization-scoped `deploy` clients. scai-minted clients (the
|
|
11
|
+
* `scai-*` naming convention) are flagged so an operator can tell
|
|
12
|
+
* what scai provisioned apart from anything created by hand.
|
|
13
|
+
*
|
|
14
|
+
* Pair with `scai setup env` (mint) and `scai setup status` (the
|
|
15
|
+
* yes/no credential matrix).
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.runSetupClients = void 0;
|
|
19
|
+
const root_config_1 = require("../../../config/root-config");
|
|
20
|
+
const keychain_1 = require("../../../shared/keychain");
|
|
21
|
+
const api_1 = require("../../../deploy/api");
|
|
22
|
+
const cli_tasks_1 = require("../../../shared/cli-tasks");
|
|
23
|
+
const errors_1 = require("../../../shared/errors");
|
|
24
|
+
const renderRow = (logger, name, id, clientId, scope) => {
|
|
25
|
+
const tag = (0, api_1.isScaiManagedClient)(name) ? "[scai]" : " ";
|
|
26
|
+
logger.info(` ${tag} ${name ?? "(unnamed)"} ${id ?? "?"}${scope}`);
|
|
27
|
+
if (clientId) {
|
|
28
|
+
logger.info(` clientId: ${clientId}`);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const runSetupClients = async (options) => {
|
|
32
|
+
const logger = (0, cli_tasks_1.toLogger)(options);
|
|
33
|
+
const configPath = options.config ?? process.cwd();
|
|
34
|
+
const { envName, env } = (0, root_config_1.resolveActiveEnvironment)(configPath, options.environmentName);
|
|
35
|
+
const organizationId = env.organizationId;
|
|
36
|
+
if (!organizationId) {
|
|
37
|
+
throw (0, cli_tasks_1.inputError)(`Environment '${envName}' has no organizationId.`, "Set organizationId on the env profile, or run `scai setup init`.");
|
|
38
|
+
}
|
|
39
|
+
const deployToken = (await (0, keychain_1.getDeployToken)(envName)) ?? env.deployToken ?? process.env.SITECOREAI_DEPLOY_TOKEN;
|
|
40
|
+
if (!deployToken) {
|
|
41
|
+
throw (0, errors_1.createScaiError)(`No deploy token is available for environment '${envName}'.`, "AUTH_REQUIRED", { hint: `Run \`scai setup login -n ${envName}\` first.` });
|
|
42
|
+
}
|
|
43
|
+
const deployClient = { accessToken: deployToken };
|
|
44
|
+
const environmentClients = (await (0, api_1.listEnvironmentClients)(deployClient, organizationId)).items ?? [];
|
|
45
|
+
const organizationClients = (await (0, api_1.listOrganizationClients)(deployClient, organizationId)).items ?? [];
|
|
46
|
+
// --- delete mode -------------------------------------------------------
|
|
47
|
+
if (options.delete) {
|
|
48
|
+
const targetId = options.delete;
|
|
49
|
+
const match = [...environmentClients, ...organizationClients].find((c) => c.id === targetId);
|
|
50
|
+
if (!match) {
|
|
51
|
+
throw (0, cli_tasks_1.inputError)(`No client with id '${targetId}' in organization ${organizationId}.`, "Run `scai setup clients` to see the available client ids.");
|
|
52
|
+
}
|
|
53
|
+
const scaiManaged = (0, api_1.isScaiManagedClient)(match.name);
|
|
54
|
+
const caveat = scaiManaged
|
|
55
|
+
? ""
|
|
56
|
+
: " This client was NOT created by scai — deleting it may break another integration.";
|
|
57
|
+
const proceed = await (0, cli_tasks_1.confirmDestructive)(`Delete client '${match.name ?? "(unnamed)"}' (${targetId})?${caveat}`, options.force);
|
|
58
|
+
if (!proceed) {
|
|
59
|
+
logger.info("Aborted.");
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
await (0, api_1.deleteClient)(deployClient, targetId, organizationId);
|
|
63
|
+
// If we just deleted a scai-minted automation client, drop the now-
|
|
64
|
+
// dead credential — the keychain secret AND the config-resident
|
|
65
|
+
// non-secret metadata — so `setup status` stays honest.
|
|
66
|
+
if (match.name === (0, api_1.buildScaiClientName)("cm", envName)) {
|
|
67
|
+
await (0, keychain_1.clearCmClientSecret)(envName);
|
|
68
|
+
const rootConfigFile = (0, root_config_1.readRootConfigurationFile)(configPath);
|
|
69
|
+
const envProfiles = rootConfigFile.config.envProfiles ?? {};
|
|
70
|
+
if (envProfiles[envName]?.automationClient) {
|
|
71
|
+
const { automationClient: _removed, ...rest } = envProfiles[envName];
|
|
72
|
+
envProfiles[envName] = rest;
|
|
73
|
+
rootConfigFile.config.envProfiles = envProfiles;
|
|
74
|
+
(0, root_config_1.writeRootConfigurationFile)(configPath, rootConfigFile.config);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else if (match.name === (0, api_1.buildScaiClientName)("deploy")) {
|
|
78
|
+
await (0, keychain_1.clearOrgClientSecret)(organizationId);
|
|
79
|
+
const rootConfigFile = (0, root_config_1.readRootConfigurationFile)(configPath);
|
|
80
|
+
const orgClients = rootConfigFile.config.orgClients ?? {};
|
|
81
|
+
if (orgClients[organizationId]) {
|
|
82
|
+
delete orgClients[organizationId];
|
|
83
|
+
rootConfigFile.config.orgClients = orgClients;
|
|
84
|
+
(0, root_config_1.writeRootConfigurationFile)(configPath, rootConfigFile.config);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (logger.isJson()) {
|
|
88
|
+
logger.json({ deleted: targetId, name: match.name ?? null, organizationId });
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
logger.info(`Deleted client '${match.name ?? targetId}' (${targetId}).`, "green");
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
// --- list mode ---------------------------------------------------------
|
|
95
|
+
if (logger.isJson()) {
|
|
96
|
+
logger.json({ environment: envName, organizationId, environmentClients, organizationClients });
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
logger.info(`Automation clients in organization ${organizationId} (via env '${envName}')`, "cyan");
|
|
100
|
+
logger.info(`\nEnvironment-scoped (${environmentClients.length}):`);
|
|
101
|
+
if (environmentClients.length === 0) {
|
|
102
|
+
logger.info(" (none)");
|
|
103
|
+
}
|
|
104
|
+
for (const client of environmentClients) {
|
|
105
|
+
const scope = client.environmentName
|
|
106
|
+
? ` → ${client.projectName ?? "?"} / ${client.environmentName}`
|
|
107
|
+
: "";
|
|
108
|
+
renderRow(logger, client.name, client.id, client.clientId, scope);
|
|
109
|
+
}
|
|
110
|
+
logger.info(`\nOrganization-scoped (${organizationClients.length}):`);
|
|
111
|
+
if (organizationClients.length === 0) {
|
|
112
|
+
logger.info(" (none)");
|
|
113
|
+
}
|
|
114
|
+
for (const client of organizationClients) {
|
|
115
|
+
renderRow(logger, client.name, client.id, client.clientId, "");
|
|
116
|
+
}
|
|
117
|
+
logger.info("\n[scai] = minted by scai (scai setup env). Others were created elsewhere.");
|
|
118
|
+
};
|
|
119
|
+
exports.runSetupClients = runSetupClients;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `scai setup env <name>` — provision the environment-scoped CM
|
|
3
|
+
* automation client for one environment.
|
|
4
|
+
*
|
|
5
|
+
* The flow is list-or-mint, keyed on the stable `scai-cm-<env>` client
|
|
6
|
+
* name so re-runs are idempotent:
|
|
7
|
+
*
|
|
8
|
+
* 1. Resolve the env profile — needs organizationId + projectId +
|
|
9
|
+
* environmentId.
|
|
10
|
+
* 2. Use the env's deploy token (it carries `xmclouddeploy.clients:manage`,
|
|
11
|
+
* requested at `scai setup login`) as the clients-API credential.
|
|
12
|
+
* 3. List the org's environment clients; look for `scai-cm-<env>`.
|
|
13
|
+
* 4. Reconcile:
|
|
14
|
+
* - keychain has the secret AND the server lists it → done.
|
|
15
|
+
* - server lists it but the keychain has no secret → orphan
|
|
16
|
+
* (lost secret — unrecoverable); delete it, then mint fresh.
|
|
17
|
+
* - `--rotate` → delete +
|
|
18
|
+
* re-mint regardless.
|
|
19
|
+
* - neither → mint.
|
|
20
|
+
* 5. Persist the minted client: its non-secret metadata (clientId,
|
|
21
|
+
* name, mintedAt) into the env profile's `automationClient` block in
|
|
22
|
+
* the config file, and only the secret into the OS keychain.
|
|
23
|
+
*/
|
|
24
|
+
import type { SitecoreApiClientOptions } from "../../../serialization/api/types";
|
|
25
|
+
import type { CommonOptions } from "../../../shared/cli-options";
|
|
26
|
+
import type { Logger } from "../../../shared/logger";
|
|
27
|
+
/** Timing knobs for {@link waitForClientActivation} — overridable for tests. */
|
|
28
|
+
export interface ClientActivationOptions {
|
|
29
|
+
/** Give up after this long (default 120_000 ms). */
|
|
30
|
+
timeoutMs?: number;
|
|
31
|
+
/** First backoff delay (default 2_000 ms). */
|
|
32
|
+
initialDelayMs?: number;
|
|
33
|
+
/** Backoff ceiling (default 15_000 ms). */
|
|
34
|
+
maxDelayMs?: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Poll a client-credentials grant until a freshly-minted automation
|
|
38
|
+
* client activates.
|
|
39
|
+
*
|
|
40
|
+
* A just-created Sitecore automation client is not immediately usable —
|
|
41
|
+
* the identity provider takes up to ~2 min to propagate it, and the
|
|
42
|
+
* grant fails until it has. Returns `true` once a token is obtained,
|
|
43
|
+
* `false` if the window elapses first (the client is minted regardless
|
|
44
|
+
* and usually becomes usable shortly after).
|
|
45
|
+
*/
|
|
46
|
+
export declare const waitForClientActivation: (credential: SitecoreApiClientOptions, logger: Logger, options?: ClientActivationOptions) => Promise<boolean>;
|
|
47
|
+
export type SetupEnvOptions = CommonOptions & {
|
|
48
|
+
environmentName?: string;
|
|
49
|
+
/** Preview the action without minting or deleting anything. */
|
|
50
|
+
whatIf?: boolean;
|
|
51
|
+
/** Delete and re-mint the client even if one is already provisioned. */
|
|
52
|
+
rotate?: boolean;
|
|
53
|
+
};
|
|
54
|
+
export declare const runSetupEnv: (options: SetupEnvOptions) => Promise<void>;
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `scai setup env <name>` — provision the environment-scoped CM
|
|
4
|
+
* automation client for one environment.
|
|
5
|
+
*
|
|
6
|
+
* The flow is list-or-mint, keyed on the stable `scai-cm-<env>` client
|
|
7
|
+
* name so re-runs are idempotent:
|
|
8
|
+
*
|
|
9
|
+
* 1. Resolve the env profile — needs organizationId + projectId +
|
|
10
|
+
* environmentId.
|
|
11
|
+
* 2. Use the env's deploy token (it carries `xmclouddeploy.clients:manage`,
|
|
12
|
+
* requested at `scai setup login`) as the clients-API credential.
|
|
13
|
+
* 3. List the org's environment clients; look for `scai-cm-<env>`.
|
|
14
|
+
* 4. Reconcile:
|
|
15
|
+
* - keychain has the secret AND the server lists it → done.
|
|
16
|
+
* - server lists it but the keychain has no secret → orphan
|
|
17
|
+
* (lost secret — unrecoverable); delete it, then mint fresh.
|
|
18
|
+
* - `--rotate` → delete +
|
|
19
|
+
* re-mint regardless.
|
|
20
|
+
* - neither → mint.
|
|
21
|
+
* 5. Persist the minted client: its non-secret metadata (clientId,
|
|
22
|
+
* name, mintedAt) into the env profile's `automationClient` block in
|
|
23
|
+
* the config file, and only the secret into the OS keychain.
|
|
24
|
+
*/
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.runSetupEnv = exports.waitForClientActivation = void 0;
|
|
30
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
31
|
+
const root_config_1 = require("../../../config/root-config");
|
|
32
|
+
const keychain_1 = require("../../../shared/keychain");
|
|
33
|
+
const api_1 = require("../../../deploy/api");
|
|
34
|
+
const cli_tasks_1 = require("../../../shared/cli-tasks");
|
|
35
|
+
const errors_1 = require("../../../shared/errors");
|
|
36
|
+
const policy_1 = require("../../../policy");
|
|
37
|
+
const auth_1 = require("../../../serialization/api/auth");
|
|
38
|
+
const package_json_1 = __importDefault(require("../../../../package.json"));
|
|
39
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
40
|
+
/**
|
|
41
|
+
* Poll a client-credentials grant until a freshly-minted automation
|
|
42
|
+
* client activates.
|
|
43
|
+
*
|
|
44
|
+
* A just-created Sitecore automation client is not immediately usable —
|
|
45
|
+
* the identity provider takes up to ~2 min to propagate it, and the
|
|
46
|
+
* grant fails until it has. Returns `true` once a token is obtained,
|
|
47
|
+
* `false` if the window elapses first (the client is minted regardless
|
|
48
|
+
* and usually becomes usable shortly after).
|
|
49
|
+
*/
|
|
50
|
+
const waitForClientActivation = async (credential, logger, options = {}) => {
|
|
51
|
+
const timeoutMs = options.timeoutMs ?? 120000;
|
|
52
|
+
const maxDelayMs = options.maxDelayMs ?? 15000;
|
|
53
|
+
let delayMs = options.initialDelayMs ?? 2000;
|
|
54
|
+
const deadline = Date.now() + timeoutMs;
|
|
55
|
+
let attempt = 0;
|
|
56
|
+
for (;;) {
|
|
57
|
+
attempt += 1;
|
|
58
|
+
try {
|
|
59
|
+
await (0, auth_1.requestClientCredentialsToken)(credential);
|
|
60
|
+
if (attempt > 1) {
|
|
61
|
+
logger.info(" Client is active.", "green");
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
if (Date.now() + delayMs >= deadline) {
|
|
67
|
+
logger.warn(`The minted client did not activate within ${Math.round(timeoutMs / 1000)}s. ` +
|
|
68
|
+
"It usually becomes usable within a minute or two — retry your command then.");
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
if (attempt === 1) {
|
|
72
|
+
logger.info(" Waiting for the new client to activate…");
|
|
73
|
+
}
|
|
74
|
+
logger.verbose(`Client not active yet (attempt ${attempt}): ${(0, errors_1.toScaiError)(error).message}. ` +
|
|
75
|
+
`Retrying in ${Math.round(delayMs / 1000)}s.`);
|
|
76
|
+
await sleep(delayMs);
|
|
77
|
+
delayMs = Math.min(Math.round(delayMs * 1.5), maxDelayMs);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
exports.waitForClientActivation = waitForClientActivation;
|
|
82
|
+
const runSetupEnv = async (options) => {
|
|
83
|
+
const logger = (0, cli_tasks_1.toLogger)(options);
|
|
84
|
+
const configPath = options.config ?? process.cwd();
|
|
85
|
+
const { envName, env, root } = (0, root_config_1.resolveActiveEnvironment)(configPath, options.environmentName);
|
|
86
|
+
// Phase 2 mint gate — minting an automation client requires an
|
|
87
|
+
// interactive human operator on a mint-eligible environment. A no-op
|
|
88
|
+
// in unmanaged mode. See docs/policy-and-guardrails.md.
|
|
89
|
+
(0, policy_1.authorizeOperation)({
|
|
90
|
+
envName,
|
|
91
|
+
configRootDir: root.physicalPath ? node_path_1.default.dirname(root.physicalPath) : undefined,
|
|
92
|
+
tier: "mint",
|
|
93
|
+
});
|
|
94
|
+
const { organizationId, projectId, environmentId } = env;
|
|
95
|
+
if (!organizationId || !projectId || !environmentId) {
|
|
96
|
+
throw (0, cli_tasks_1.inputError)(`Environment '${envName}' is missing organizationId, projectId, or environmentId.`, "All three are required to mint an environment-scoped CM client. Run `scai setup init`.");
|
|
97
|
+
}
|
|
98
|
+
const deployToken = (await (0, keychain_1.getDeployToken)(envName)) ?? env.deployToken ?? process.env.SITECOREAI_DEPLOY_TOKEN;
|
|
99
|
+
if (!deployToken) {
|
|
100
|
+
throw (0, errors_1.createScaiError)(`No deploy token is available for environment '${envName}'.`, "AUTH_REQUIRED", {
|
|
101
|
+
hint: `Run \`scai setup login -n ${envName}\` first — minting a CM client needs a token with the xmclouddeploy.clients:manage scope.`,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
const deployClient = { accessToken: deployToken };
|
|
105
|
+
const clientName = (0, api_1.buildScaiClientName)("cm", envName);
|
|
106
|
+
// Read-side reconciliation — safe to run even under --what-if. A
|
|
107
|
+
// provisioned client means both halves are present: the non-secret
|
|
108
|
+
// metadata in the config (`automationClient`) AND the secret in the
|
|
109
|
+
// keychain. Either alone is incomplete.
|
|
110
|
+
const storedSecret = await (0, keychain_1.getCmClientSecret)(envName);
|
|
111
|
+
const stored = Boolean(env.automationClient?.clientId) && Boolean(storedSecret);
|
|
112
|
+
let existingId;
|
|
113
|
+
try {
|
|
114
|
+
const listed = await (0, api_1.listEnvironmentClients)(deployClient, organizationId);
|
|
115
|
+
existingId = (listed.items ?? []).find((client) => client.name === clientName)?.id;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
const scaiError = (0, errors_1.toScaiError)(error);
|
|
119
|
+
throw (0, errors_1.createScaiError)(`Could not list environment clients for organization '${organizationId}'.`, "DEPLOY_FAILED", {
|
|
120
|
+
hint: `The deploy token may lack the xmclouddeploy.clients:manage scope. Re-run \`scai setup login -n ${envName}\`. Underlying error: ${scaiError.message}`,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
const alreadyProvisioned = Boolean(stored) && Boolean(existingId);
|
|
124
|
+
if (alreadyProvisioned && !options.rotate) {
|
|
125
|
+
if (logger.isJson()) {
|
|
126
|
+
logger.json({ environment: envName, client: clientName, action: "none", provisioned: true });
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
logger.info(`Environment '${envName}' already has its CM client (${clientName}).`, "green");
|
|
130
|
+
logger.info(" Nothing to do. Pass --rotate to delete and re-mint.");
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
// An existing server-side client with no keychain secret is an
|
|
134
|
+
// orphan — the secret is unrecoverable, so it must be replaced.
|
|
135
|
+
const replaceExisting = Boolean(existingId) && (!stored || Boolean(options.rotate));
|
|
136
|
+
if (options.whatIf) {
|
|
137
|
+
const verb = replaceExisting ? "delete the existing client and re-mint" : "mint";
|
|
138
|
+
if (logger.isJson()) {
|
|
139
|
+
logger.json({
|
|
140
|
+
environment: envName,
|
|
141
|
+
client: clientName,
|
|
142
|
+
action: replaceExisting ? "replace" : "mint",
|
|
143
|
+
whatIf: true,
|
|
144
|
+
});
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
logger.info(`[what-if] Would ${verb} CM client '${clientName}' for '${envName}'.`);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (replaceExisting && existingId) {
|
|
151
|
+
const reason = options.rotate ? "rotating" : "orphaned — secret not in keychain";
|
|
152
|
+
logger.info(`Removing the existing '${clientName}' client (${reason})…`);
|
|
153
|
+
await (0, api_1.deleteClient)(deployClient, existingId, organizationId);
|
|
154
|
+
}
|
|
155
|
+
const minted = await (0, api_1.mintCmClient)(deployClient, {
|
|
156
|
+
name: clientName,
|
|
157
|
+
description: (0, api_1.buildScaiClientDescription)("cm", {
|
|
158
|
+
surface: "CLI",
|
|
159
|
+
version: package_json_1.default.version,
|
|
160
|
+
envName,
|
|
161
|
+
}),
|
|
162
|
+
projectId,
|
|
163
|
+
environmentId,
|
|
164
|
+
}, organizationId);
|
|
165
|
+
if (!minted.clientId || !minted.clientSecret) {
|
|
166
|
+
throw (0, errors_1.createScaiError)("The clients API did not return a clientId/clientSecret.", "DEPLOY_FAILED", { hint: "Re-run the command; if it persists, mint the client in the Cloud Portal." });
|
|
167
|
+
}
|
|
168
|
+
// The keychain holds only the secret; the non-secret metadata
|
|
169
|
+
// (clientId, name, mintedAt) goes into the env profile's
|
|
170
|
+
// `automationClient` block in the config file — a readable inventory
|
|
171
|
+
// of what's configured. See docs/credentials.md.
|
|
172
|
+
const persisted = await (0, keychain_1.setCmClientSecret)(envName, minted.clientSecret);
|
|
173
|
+
const rootConfigFile = (0, root_config_1.readRootConfigurationFile)(configPath);
|
|
174
|
+
const envProfiles = rootConfigFile.config.envProfiles ?? {};
|
|
175
|
+
envProfiles[envName] = {
|
|
176
|
+
...(envProfiles[envName] ?? {}),
|
|
177
|
+
automationClient: {
|
|
178
|
+
clientId: minted.clientId,
|
|
179
|
+
name: clientName,
|
|
180
|
+
mintedAt: new Date().toISOString(),
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
rootConfigFile.config.envProfiles = envProfiles;
|
|
184
|
+
(0, root_config_1.writeRootConfigurationFile)(configPath, rootConfigFile.config);
|
|
185
|
+
if (!logger.isJson()) {
|
|
186
|
+
logger.info(`Minted CM client '${clientName}' for '${envName}'.`, "green");
|
|
187
|
+
logger.info(` clientId: ${minted.clientId}`);
|
|
188
|
+
if (!persisted) {
|
|
189
|
+
logger.warn("Keychain unavailable — the client secret was NOT persisted. The minted client is unusable; re-run when the keychain is available.");
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// A freshly-minted client is not usable until the identity provider
|
|
193
|
+
// activates it (~1-2 min), during which a client-credentials grant
|
|
194
|
+
// still fails. Poll so the command does not report success on a client
|
|
195
|
+
// an immediate follow-up call would be rejected by — the race an agent
|
|
196
|
+
// hits when it uses the credential right after the mint.
|
|
197
|
+
const active = env.authority
|
|
198
|
+
? await (0, exports.waitForClientActivation)({
|
|
199
|
+
authority: env.authority,
|
|
200
|
+
clientId: minted.clientId,
|
|
201
|
+
clientSecret: minted.clientSecret,
|
|
202
|
+
audience: env.audience,
|
|
203
|
+
}, logger)
|
|
204
|
+
: true;
|
|
205
|
+
if (logger.isJson()) {
|
|
206
|
+
logger.json({
|
|
207
|
+
environment: envName,
|
|
208
|
+
client: clientName,
|
|
209
|
+
action: replaceExisting ? "replace" : "mint",
|
|
210
|
+
clientId: minted.clientId,
|
|
211
|
+
persisted,
|
|
212
|
+
active,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
exports.runSetupEnv = runSetupEnv;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `scai setup client create --org <env>` — provision the organization-
|
|
3
|
+
* scoped automation client for the org behind one environment.
|
|
4
|
+
*
|
|
5
|
+
* Mirrors `runSetupEnv` (the env-scoped CM client) but mints the
|
|
6
|
+
* org-scoped `deploy` client type: it carries only a name (no project /
|
|
7
|
+
* environment binding) and is stored in the keychain keyed by
|
|
8
|
+
* `organizationId` — one per org, shared by every env profile in it.
|
|
9
|
+
*
|
|
10
|
+
* The flow is list-or-mint, keyed on the stable `scai-deploy` client
|
|
11
|
+
* name so re-runs are idempotent.
|
|
12
|
+
*/
|
|
13
|
+
import type { CommonOptions } from "../../../shared/cli-options";
|
|
14
|
+
export type SetupOrgClientOptions = CommonOptions & {
|
|
15
|
+
environmentName?: string;
|
|
16
|
+
/** Preview the action without minting or deleting anything. */
|
|
17
|
+
whatIf?: boolean;
|
|
18
|
+
/** Delete and re-mint the client even if one is already provisioned. */
|
|
19
|
+
rotate?: boolean;
|
|
20
|
+
};
|
|
21
|
+
export declare const runSetupOrgClient: (options: SetupOrgClientOptions) => Promise<void>;
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `scai setup client create --org <env>` — provision the organization-
|
|
4
|
+
* scoped automation client for the org behind one environment.
|
|
5
|
+
*
|
|
6
|
+
* Mirrors `runSetupEnv` (the env-scoped CM client) but mints the
|
|
7
|
+
* org-scoped `deploy` client type: it carries only a name (no project /
|
|
8
|
+
* environment binding) and is stored in the keychain keyed by
|
|
9
|
+
* `organizationId` — one per org, shared by every env profile in it.
|
|
10
|
+
*
|
|
11
|
+
* The flow is list-or-mint, keyed on the stable `scai-deploy` client
|
|
12
|
+
* name so re-runs are idempotent.
|
|
13
|
+
*/
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.runSetupOrgClient = void 0;
|
|
19
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
20
|
+
const root_config_1 = require("../../../config/root-config");
|
|
21
|
+
const keychain_1 = require("../../../shared/keychain");
|
|
22
|
+
const api_1 = require("../../../deploy/api");
|
|
23
|
+
const cli_tasks_1 = require("../../../shared/cli-tasks");
|
|
24
|
+
const errors_1 = require("../../../shared/errors");
|
|
25
|
+
const policy_1 = require("../../../policy");
|
|
26
|
+
const package_json_1 = __importDefault(require("../../../../package.json"));
|
|
27
|
+
const runSetupOrgClient = async (options) => {
|
|
28
|
+
const logger = (0, cli_tasks_1.toLogger)(options);
|
|
29
|
+
const configPath = options.config ?? process.cwd();
|
|
30
|
+
const { envName, env, root } = (0, root_config_1.resolveActiveEnvironment)(configPath, options.environmentName);
|
|
31
|
+
// Phase 2 mint gate — minting an automation client requires an
|
|
32
|
+
// interactive human operator on a mint-eligible environment. A no-op
|
|
33
|
+
// in unmanaged mode. See docs/policy-and-guardrails.md.
|
|
34
|
+
(0, policy_1.authorizeOperation)({
|
|
35
|
+
envName,
|
|
36
|
+
configRootDir: root.physicalPath ? node_path_1.default.dirname(root.physicalPath) : undefined,
|
|
37
|
+
tier: "mint",
|
|
38
|
+
});
|
|
39
|
+
const { organizationId } = env;
|
|
40
|
+
if (!organizationId) {
|
|
41
|
+
throw (0, cli_tasks_1.inputError)(`Environment '${envName}' has no organizationId.`, "Set organizationId on the env profile, or run `scai setup init`.");
|
|
42
|
+
}
|
|
43
|
+
const deployToken = (await (0, keychain_1.getDeployToken)(envName)) ?? env.deployToken ?? process.env.SITECOREAI_DEPLOY_TOKEN;
|
|
44
|
+
if (!deployToken) {
|
|
45
|
+
throw (0, errors_1.createScaiError)(`No deploy token is available for environment '${envName}'.`, "AUTH_REQUIRED", {
|
|
46
|
+
hint: `Run \`scai setup login -n ${envName}\` first — minting a client needs a token with the xmclouddeploy.clients:manage scope.`,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
const deployClient = { accessToken: deployToken };
|
|
50
|
+
const clientName = (0, api_1.buildScaiClientName)("deploy");
|
|
51
|
+
// Read-side reconciliation — safe to run even under --what-if. A
|
|
52
|
+
// provisioned client means both halves are present: the non-secret
|
|
53
|
+
// metadata in the config (`orgClients[orgId]`) AND the secret in the
|
|
54
|
+
// keychain. Either alone is incomplete.
|
|
55
|
+
const rootFile = (0, root_config_1.readRootConfigurationFile)(configPath);
|
|
56
|
+
const storedSecret = await (0, keychain_1.getOrgClientSecret)(organizationId);
|
|
57
|
+
const stored = Boolean(rootFile.config.orgClients?.[organizationId]?.clientId) && Boolean(storedSecret);
|
|
58
|
+
let existingId;
|
|
59
|
+
try {
|
|
60
|
+
const listed = await (0, api_1.listOrganizationClients)(deployClient, organizationId);
|
|
61
|
+
existingId = (listed.items ?? []).find((client) => client.name === clientName)?.id;
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
const scaiError = (0, errors_1.toScaiError)(error);
|
|
65
|
+
throw (0, errors_1.createScaiError)(`Could not list organization clients for organization '${organizationId}'.`, "DEPLOY_FAILED", {
|
|
66
|
+
hint: `The deploy token may lack the xmclouddeploy.clients:manage scope. Re-run \`scai setup login -n ${envName}\`. Underlying error: ${scaiError.message}`,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
const alreadyProvisioned = Boolean(stored) && Boolean(existingId);
|
|
70
|
+
if (alreadyProvisioned && !options.rotate) {
|
|
71
|
+
if (logger.isJson()) {
|
|
72
|
+
logger.json({
|
|
73
|
+
organization: organizationId,
|
|
74
|
+
client: clientName,
|
|
75
|
+
action: "none",
|
|
76
|
+
provisioned: true,
|
|
77
|
+
});
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
logger.info(`Organization '${organizationId}' already has its automation client (${clientName}).`, "green");
|
|
81
|
+
logger.info(" Nothing to do. Pass --rotate to delete and re-mint.");
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
// An existing server-side client with no keychain secret is an orphan —
|
|
85
|
+
// the secret is unrecoverable, so it must be replaced.
|
|
86
|
+
const replaceExisting = Boolean(existingId) && (!stored || Boolean(options.rotate));
|
|
87
|
+
if (options.whatIf) {
|
|
88
|
+
const verb = replaceExisting ? "delete the existing client and re-mint" : "mint";
|
|
89
|
+
if (logger.isJson()) {
|
|
90
|
+
logger.json({
|
|
91
|
+
organization: organizationId,
|
|
92
|
+
client: clientName,
|
|
93
|
+
action: replaceExisting ? "replace" : "mint",
|
|
94
|
+
whatIf: true,
|
|
95
|
+
});
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
logger.info(`[what-if] Would ${verb} org client '${clientName}' for organization '${organizationId}'.`);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (replaceExisting && existingId) {
|
|
102
|
+
const reason = options.rotate ? "rotating" : "orphaned — secret not in keychain";
|
|
103
|
+
logger.info(`Removing the existing '${clientName}' client (${reason})…`);
|
|
104
|
+
await (0, api_1.deleteClient)(deployClient, existingId, organizationId);
|
|
105
|
+
}
|
|
106
|
+
const minted = await (0, api_1.mintDeployClient)(deployClient, {
|
|
107
|
+
name: clientName,
|
|
108
|
+
description: (0, api_1.buildScaiClientDescription)("deploy", {
|
|
109
|
+
surface: "CLI",
|
|
110
|
+
version: package_json_1.default.version,
|
|
111
|
+
}),
|
|
112
|
+
}, organizationId);
|
|
113
|
+
if (!minted.clientId || !minted.clientSecret) {
|
|
114
|
+
throw (0, errors_1.createScaiError)("The clients API did not return a clientId/clientSecret.", "DEPLOY_FAILED", { hint: "Re-run the command; if it persists, mint the client in the Cloud Portal." });
|
|
115
|
+
}
|
|
116
|
+
// The keychain holds only the secret; the non-secret metadata
|
|
117
|
+
// (clientId, name, mintedAt) goes into the `orgClients[orgId]` block
|
|
118
|
+
// in the config file — a readable inventory of what's configured. See
|
|
119
|
+
// docs/credentials.md.
|
|
120
|
+
const persisted = await (0, keychain_1.setOrgClientSecret)(organizationId, minted.clientSecret);
|
|
121
|
+
const rootConfigFile = (0, root_config_1.readRootConfigurationFile)(configPath);
|
|
122
|
+
const orgClients = rootConfigFile.config.orgClients ?? {};
|
|
123
|
+
orgClients[organizationId] = {
|
|
124
|
+
clientId: minted.clientId,
|
|
125
|
+
name: clientName,
|
|
126
|
+
mintedAt: new Date().toISOString(),
|
|
127
|
+
};
|
|
128
|
+
rootConfigFile.config.orgClients = orgClients;
|
|
129
|
+
(0, root_config_1.writeRootConfigurationFile)(configPath, rootConfigFile.config);
|
|
130
|
+
if (logger.isJson()) {
|
|
131
|
+
logger.json({
|
|
132
|
+
organization: organizationId,
|
|
133
|
+
client: clientName,
|
|
134
|
+
action: replaceExisting ? "replace" : "mint",
|
|
135
|
+
clientId: minted.clientId,
|
|
136
|
+
persisted,
|
|
137
|
+
});
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
logger.info(`Minted org automation client '${clientName}' for organization '${organizationId}'.`, "green");
|
|
141
|
+
logger.info(` clientId: ${minted.clientId}`);
|
|
142
|
+
if (!persisted) {
|
|
143
|
+
logger.warn("Keychain unavailable — the client secret was NOT persisted. The minted client is unusable; re-run when the keychain is available.");
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
exports.runSetupOrgClient = runSetupOrgClient;
|