@mesh-tech/mesh-cli 0.1.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/intent/agents-fence.md +10 -0
- package/assets/intent/intent-claude-gate.mjs +255 -0
- package/assets/log-shipper.mjs +94 -0
- package/bin/mesh.mjs +80 -0
- package/dist/bin/mesh.d.ts +7 -9
- package/dist/bin/mesh.d.ts.map +1 -1
- package/dist/bin/mesh.js +20826 -37
- package/dist/bin/mesh.js.map +7 -1
- package/dist/build-info.json +4 -0
- package/dist/src/commands/agent-api-client.d.ts +79 -0
- package/dist/src/commands/agent-api-client.d.ts.map +1 -0
- package/dist/src/commands/agent-api-client.js +170 -0
- package/dist/src/commands/agent-api-client.js.map +1 -0
- package/dist/src/commands/artifacts.d.ts +13 -0
- package/dist/src/commands/artifacts.d.ts.map +1 -0
- package/dist/src/commands/artifacts.js +140 -0
- package/dist/src/commands/artifacts.js.map +1 -0
- package/dist/src/commands/cluster.d.ts +45 -0
- package/dist/src/commands/cluster.d.ts.map +1 -0
- package/dist/src/commands/cluster.js +259 -0
- package/dist/src/commands/cluster.js.map +1 -0
- package/dist/src/commands/conversations.d.ts +61 -0
- package/dist/src/commands/conversations.d.ts.map +1 -0
- package/dist/src/commands/conversations.js +239 -0
- package/dist/src/commands/conversations.js.map +1 -0
- package/dist/src/commands/create-app.d.ts +26 -3
- package/dist/src/commands/create-app.d.ts.map +1 -1
- package/dist/src/commands/create-app.js +465 -107
- package/dist/src/commands/create-app.js.map +1 -1
- package/dist/src/commands/deploy.d.ts +19 -0
- package/dist/src/commands/deploy.d.ts.map +1 -1
- package/dist/src/commands/deploy.js +83 -142
- package/dist/src/commands/deploy.js.map +1 -1
- package/dist/src/commands/dev-doctor.d.ts +137 -0
- package/dist/src/commands/dev-doctor.d.ts.map +1 -0
- package/dist/src/commands/dev-doctor.js +671 -0
- package/dist/src/commands/dev-doctor.js.map +1 -0
- package/dist/src/commands/dev-launch.d.ts +59 -0
- package/dist/src/commands/dev-launch.d.ts.map +1 -0
- package/dist/src/commands/dev-launch.js +118 -0
- package/dist/src/commands/dev-launch.js.map +1 -0
- package/dist/src/commands/dev-token-server.d.ts +32 -0
- package/dist/src/commands/dev-token-server.d.ts.map +1 -0
- package/dist/src/commands/dev-token-server.js +68 -0
- package/dist/src/commands/dev-token-server.js.map +1 -0
- package/dist/src/commands/dev.d.ts +289 -2
- package/dist/src/commands/dev.d.ts.map +1 -1
- package/dist/src/commands/dev.js +2501 -574
- package/dist/src/commands/dev.js.map +1 -1
- package/dist/src/commands/docs.d.ts +3 -0
- package/dist/src/commands/docs.d.ts.map +1 -0
- package/dist/src/commands/docs.js +262 -0
- package/dist/src/commands/docs.js.map +1 -0
- package/dist/src/commands/hub/index.d.ts +99 -0
- package/dist/src/commands/hub/index.d.ts.map +1 -0
- package/dist/src/commands/hub/index.js +452 -0
- package/dist/src/commands/hub/index.js.map +1 -0
- package/dist/src/commands/init.d.ts +65 -0
- package/dist/src/commands/init.d.ts.map +1 -0
- package/dist/src/commands/init.js +370 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/install-shim.d.ts +21 -0
- package/dist/src/commands/install-shim.d.ts.map +1 -0
- package/dist/src/commands/install-shim.js +132 -0
- package/dist/src/commands/install-shim.js.map +1 -0
- package/dist/src/commands/local/auth-provision.d.ts +71 -0
- package/dist/src/commands/local/auth-provision.d.ts.map +1 -0
- package/dist/src/commands/local/auth-provision.js +286 -0
- package/dist/src/commands/local/auth-provision.js.map +1 -0
- package/dist/src/commands/local/dev-local.d.ts +97 -0
- package/dist/src/commands/local/dev-local.d.ts.map +1 -0
- package/dist/src/commands/local/dev-local.js +306 -0
- package/dist/src/commands/local/dev-local.js.map +1 -0
- package/dist/src/commands/local/docker-runner.d.ts +37 -0
- package/dist/src/commands/local/docker-runner.d.ts.map +1 -0
- package/dist/src/commands/local/docker-runner.js +104 -0
- package/dist/src/commands/local/docker-runner.js.map +1 -0
- package/dist/src/commands/local/helpers.d.ts +22 -0
- package/dist/src/commands/local/helpers.d.ts.map +1 -0
- package/dist/src/commands/local/helpers.js +46 -0
- package/dist/src/commands/local/helpers.js.map +1 -0
- package/dist/src/commands/local/hub-local.d.ts +51 -0
- package/dist/src/commands/local/hub-local.d.ts.map +1 -0
- package/dist/src/commands/local/hub-local.js +197 -0
- package/dist/src/commands/local/hub-local.js.map +1 -0
- package/dist/src/commands/local/index.d.ts +23 -0
- package/dist/src/commands/local/index.d.ts.map +1 -0
- package/dist/src/commands/local/index.js +386 -0
- package/dist/src/commands/local/index.js.map +1 -0
- package/dist/src/commands/local/mocks.d.ts +361 -0
- package/dist/src/commands/local/mocks.d.ts.map +1 -0
- package/dist/src/commands/local/mocks.js +756 -0
- package/dist/src/commands/local/mocks.js.map +1 -0
- package/dist/src/commands/local/seed-zitadel.d.ts +151 -0
- package/dist/src/commands/local/seed-zitadel.d.ts.map +1 -0
- package/dist/src/commands/local/seed-zitadel.js +408 -0
- package/dist/src/commands/local/seed-zitadel.js.map +1 -0
- package/dist/src/commands/local/seed.d.ts +106 -0
- package/dist/src/commands/local/seed.d.ts.map +1 -0
- package/dist/src/commands/local/seed.js +252 -0
- package/dist/src/commands/local/seed.js.map +1 -0
- package/dist/src/commands/local/stack.d.ts +173 -0
- package/dist/src/commands/local/stack.d.ts.map +1 -0
- package/dist/src/commands/local/stack.js +499 -0
- package/dist/src/commands/local/stack.js.map +1 -0
- package/dist/src/commands/login.d.ts +256 -12
- package/dist/src/commands/login.d.ts.map +1 -1
- package/dist/src/commands/login.js +978 -50
- package/dist/src/commands/login.js.map +1 -1
- package/dist/src/commands/peer-addressing.d.ts +51 -0
- package/dist/src/commands/peer-addressing.d.ts.map +1 -0
- package/dist/src/commands/peer-addressing.js +64 -0
- package/dist/src/commands/peer-addressing.js.map +1 -0
- package/dist/src/commands/port-ownership.d.ts +69 -0
- package/dist/src/commands/port-ownership.d.ts.map +1 -0
- package/dist/src/commands/port-ownership.js +161 -0
- package/dist/src/commands/port-ownership.js.map +1 -0
- package/dist/src/commands/registry-publish.d.ts +3 -0
- package/dist/src/commands/registry-publish.d.ts.map +1 -0
- package/dist/src/commands/registry-publish.js +161 -0
- package/dist/src/commands/registry-publish.js.map +1 -0
- package/dist/src/commands/registry.d.ts +146 -2
- package/dist/src/commands/registry.d.ts.map +1 -1
- package/dist/src/commands/registry.js +541 -85
- package/dist/src/commands/registry.js.map +1 -1
- package/dist/src/commands/secrets/index.d.ts.map +1 -1
- package/dist/src/commands/secrets/index.js +15 -1
- package/dist/src/commands/secrets/index.js.map +1 -1
- package/dist/src/commands/secrets/migrate-config.d.ts +24 -0
- package/dist/src/commands/secrets/migrate-config.d.ts.map +1 -0
- package/dist/src/commands/secrets/migrate-config.js +277 -0
- package/dist/src/commands/secrets/migrate-config.js.map +1 -0
- package/dist/src/commands/secrets/set.d.ts +1 -0
- package/dist/src/commands/secrets/set.d.ts.map +1 -1
- package/dist/src/commands/secrets/set.js +96 -2
- package/dist/src/commands/secrets/set.js.map +1 -1
- package/dist/src/commands/skills.d.ts +34 -0
- package/dist/src/commands/skills.d.ts.map +1 -0
- package/dist/src/commands/skills.js +207 -0
- package/dist/src/commands/skills.js.map +1 -0
- package/dist/src/commands/stack.d.ts.map +1 -1
- package/dist/src/commands/stack.js +361 -23
- package/dist/src/commands/stack.js.map +1 -1
- package/dist/src/commands/temporal.d.ts +15 -0
- package/dist/src/commands/temporal.d.ts.map +1 -0
- package/dist/src/commands/temporal.js +781 -0
- package/dist/src/commands/temporal.js.map +1 -0
- package/dist/src/commands/tenant.d.ts +56 -0
- package/dist/src/commands/tenant.d.ts.map +1 -0
- package/dist/src/commands/tenant.js +233 -0
- package/dist/src/commands/tenant.js.map +1 -0
- package/dist/src/commands/tunnel/index.d.ts +49 -3
- package/dist/src/commands/tunnel/index.d.ts.map +1 -1
- package/dist/src/commands/tunnel/index.js +331 -8
- package/dist/src/commands/tunnel/index.js.map +1 -1
- package/dist/src/commands/vcs/clone.d.ts +3 -0
- package/dist/src/commands/vcs/clone.d.ts.map +1 -0
- package/dist/src/commands/vcs/clone.js +20 -0
- package/dist/src/commands/vcs/clone.js.map +1 -0
- package/dist/src/commands/vcs/common.d.ts +21 -0
- package/dist/src/commands/vcs/common.d.ts.map +1 -0
- package/dist/src/commands/vcs/common.js +62 -0
- package/dist/src/commands/vcs/common.js.map +1 -0
- package/dist/src/commands/vcs/drafts.d.ts +13 -0
- package/dist/src/commands/vcs/drafts.d.ts.map +1 -0
- package/dist/src/commands/vcs/drafts.js +45 -0
- package/dist/src/commands/vcs/drafts.js.map +1 -0
- package/dist/src/commands/vcs/get.d.ts +8 -0
- package/dist/src/commands/vcs/get.d.ts.map +1 -0
- package/dist/src/commands/vcs/get.js +61 -0
- package/dist/src/commands/vcs/get.js.map +1 -0
- package/dist/src/commands/vcs/index.d.ts +3 -0
- package/dist/src/commands/vcs/index.d.ts.map +1 -0
- package/dist/src/commands/vcs/index.js +58 -0
- package/dist/src/commands/vcs/index.js.map +1 -0
- package/dist/src/commands/vcs/propose.d.ts +23 -0
- package/dist/src/commands/vcs/propose.d.ts.map +1 -0
- package/dist/src/commands/vcs/propose.js +94 -0
- package/dist/src/commands/vcs/propose.js.map +1 -0
- package/dist/src/commands/vcs/review.d.ts +15 -0
- package/dist/src/commands/vcs/review.d.ts.map +1 -0
- package/dist/src/commands/vcs/review.js +35 -0
- package/dist/src/commands/vcs/review.js.map +1 -0
- package/dist/src/commands/vcs-enrich.d.ts +15 -0
- package/dist/src/commands/vcs-enrich.d.ts.map +1 -0
- package/dist/src/commands/vcs-enrich.js +28 -0
- package/dist/src/commands/vcs-enrich.js.map +1 -0
- package/dist/src/commands/vpn/index.d.ts +24 -0
- package/dist/src/commands/vpn/index.d.ts.map +1 -0
- package/dist/src/commands/vpn/index.js +543 -0
- package/dist/src/commands/vpn/index.js.map +1 -0
- package/dist/src/commands/vpn/tunnel.d.ts +11 -0
- package/dist/src/commands/vpn/tunnel.d.ts.map +1 -0
- package/dist/src/commands/vpn/tunnel.js +188 -0
- package/dist/src/commands/vpn/tunnel.js.map +1 -0
- package/dist/src/commands/workflow.d.ts +24 -0
- package/dist/src/commands/workflow.d.ts.map +1 -0
- package/dist/src/commands/workflow.js +577 -0
- package/dist/src/commands/workflow.js.map +1 -0
- package/dist/src/docs/assemble.d.ts +217 -0
- package/dist/src/docs/assemble.d.ts.map +1 -0
- package/dist/src/docs/assemble.js +739 -0
- package/dist/src/docs/assemble.js.map +1 -0
- package/dist/src/docs/cli-reference.d.ts +93 -0
- package/dist/src/docs/cli-reference.d.ts.map +1 -0
- package/dist/src/docs/cli-reference.js +256 -0
- package/dist/src/docs/cli-reference.js.map +1 -0
- package/dist/src/docs/discover.d.ts +60 -0
- package/dist/src/docs/discover.d.ts.map +1 -0
- package/dist/src/docs/discover.js +233 -0
- package/dist/src/docs/discover.js.map +1 -0
- package/dist/src/docs/portal.d.ts +79 -0
- package/dist/src/docs/portal.d.ts.map +1 -0
- package/dist/src/docs/portal.js +242 -0
- package/dist/src/docs/portal.js.map +1 -0
- package/dist/src/docs/registry-docs.d.ts +43 -0
- package/dist/src/docs/registry-docs.d.ts.map +1 -0
- package/dist/src/docs/registry-docs.js +138 -0
- package/dist/src/docs/registry-docs.js.map +1 -0
- package/dist/src/docs/schema.d.ts +48 -0
- package/dist/src/docs/schema.d.ts.map +1 -0
- package/dist/src/docs/schema.js +96 -0
- package/dist/src/docs/schema.js.map +1 -0
- package/dist/src/docs/serve.d.ts +27 -0
- package/dist/src/docs/serve.d.ts.map +1 -0
- package/dist/src/docs/serve.js +102 -0
- package/dist/src/docs/serve.js.map +1 -0
- package/dist/src/docs/start.d.ts +80 -0
- package/dist/src/docs/start.d.ts.map +1 -0
- package/dist/src/docs/start.js +313 -0
- package/dist/src/docs/start.js.map +1 -0
- package/dist/src/eval/agent-eval.d.mts +14 -0
- package/dist/src/eval/agent-eval.d.mts.map +1 -0
- package/dist/src/eval/agent-eval.mjs +273 -0
- package/dist/src/eval/agent-eval.mjs.map +1 -0
- package/dist/src/index.js +624 -7
- package/dist/src/index.js.map +7 -1
- package/dist/src/program.d.ts +26 -0
- package/dist/src/program.d.ts.map +1 -0
- package/dist/src/program.js +76 -0
- package/dist/src/program.js.map +1 -0
- package/dist/src/utils/auth-preflight.d.ts +159 -0
- package/dist/src/utils/auth-preflight.d.ts.map +1 -0
- package/dist/src/utils/auth-preflight.js +298 -0
- package/dist/src/utils/auth-preflight.js.map +1 -0
- package/dist/src/utils/aws-auth.d.ts +181 -0
- package/dist/src/utils/aws-auth.d.ts.map +1 -0
- package/dist/src/utils/aws-auth.js +527 -0
- package/dist/src/utils/aws-auth.js.map +1 -0
- package/dist/src/utils/bastion.d.ts +1 -1
- package/dist/src/utils/bastion.d.ts.map +1 -1
- package/dist/src/utils/bastion.js +29 -8
- package/dist/src/utils/bastion.js.map +1 -1
- package/dist/src/utils/build-info.d.ts +33 -0
- package/dist/src/utils/build-info.d.ts.map +1 -0
- package/dist/src/utils/build-info.js +102 -0
- package/dist/src/utils/build-info.js.map +1 -0
- package/dist/src/utils/capture-history.d.ts +62 -0
- package/dist/src/utils/capture-history.d.ts.map +1 -0
- package/dist/src/utils/capture-history.js +94 -0
- package/dist/src/utils/capture-history.js.map +1 -0
- package/dist/src/utils/deploy-preflight.d.ts +52 -0
- package/dist/src/utils/deploy-preflight.d.ts.map +1 -0
- package/dist/src/utils/deploy-preflight.js +183 -0
- package/dist/src/utils/deploy-preflight.js.map +1 -0
- package/dist/src/utils/errors.d.ts +75 -0
- package/dist/src/utils/errors.d.ts.map +1 -0
- package/dist/src/utils/errors.js +106 -0
- package/dist/src/utils/errors.js.map +1 -0
- package/dist/src/utils/first-party-contexts.d.ts +40 -0
- package/dist/src/utils/first-party-contexts.d.ts.map +1 -0
- package/dist/src/utils/first-party-contexts.js +53 -0
- package/dist/src/utils/first-party-contexts.js.map +1 -0
- package/dist/src/utils/index.d.ts +2 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +2 -0
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/kubeconfig.d.ts +62 -0
- package/dist/src/utils/kubeconfig.d.ts.map +1 -0
- package/dist/src/utils/kubeconfig.js +118 -0
- package/dist/src/utils/kubeconfig.js.map +1 -0
- package/dist/src/utils/log.d.ts +27 -1
- package/dist/src/utils/log.d.ts.map +1 -1
- package/dist/src/utils/log.js +59 -5
- package/dist/src/utils/log.js.map +1 -1
- package/dist/src/utils/pid.d.ts +47 -0
- package/dist/src/utils/pid.d.ts.map +1 -0
- package/dist/src/utils/pid.js +83 -0
- package/dist/src/utils/pid.js.map +1 -0
- package/dist/src/utils/pulumi-run.d.ts +23 -0
- package/dist/src/utils/pulumi-run.d.ts.map +1 -0
- package/dist/src/utils/pulumi-run.js +112 -0
- package/dist/src/utils/pulumi-run.js.map +1 -0
- package/dist/src/utils/pulumi.d.ts +15 -0
- package/dist/src/utils/pulumi.d.ts.map +1 -1
- package/dist/src/utils/pulumi.js +35 -0
- package/dist/src/utils/pulumi.js.map +1 -1
- package/dist/src/utils/reachability.d.ts +29 -0
- package/dist/src/utils/reachability.d.ts.map +1 -0
- package/dist/src/utils/reachability.js +81 -0
- package/dist/src/utils/reachability.js.map +1 -0
- package/dist/src/utils/recover-conversation.d.ts +154 -0
- package/dist/src/utils/recover-conversation.d.ts.map +1 -0
- package/dist/src/utils/recover-conversation.js +314 -0
- package/dist/src/utils/recover-conversation.js.map +1 -0
- package/dist/src/utils/registry-broker.d.ts +148 -0
- package/dist/src/utils/registry-broker.d.ts.map +1 -0
- package/dist/src/utils/registry-broker.js +180 -0
- package/dist/src/utils/registry-broker.js.map +1 -0
- package/dist/src/utils/socks-forward.d.ts +40 -0
- package/dist/src/utils/socks-forward.d.ts.map +1 -0
- package/dist/src/utils/socks-forward.js +97 -0
- package/dist/src/utils/socks-forward.js.map +1 -0
- package/dist/src/utils/stack-flag.d.ts +23 -0
- package/dist/src/utils/stack-flag.d.ts.map +1 -0
- package/dist/src/utils/stack-flag.js +41 -0
- package/dist/src/utils/stack-flag.js.map +1 -0
- package/dist/src/utils/tailscale-targets.d.ts +52 -0
- package/dist/src/utils/tailscale-targets.d.ts.map +1 -0
- package/dist/src/utils/tailscale-targets.js +93 -0
- package/dist/src/utils/tailscale-targets.js.map +1 -0
- package/dist/src/utils/tailscale.d.ts +277 -0
- package/dist/src/utils/tailscale.d.ts.map +1 -0
- package/dist/src/utils/tailscale.js +1007 -0
- package/dist/src/utils/tailscale.js.map +1 -0
- package/dist/src/utils/temporal-auth.d.ts +43 -0
- package/dist/src/utils/temporal-auth.d.ts.map +1 -0
- package/dist/src/utils/temporal-auth.js +176 -0
- package/dist/src/utils/temporal-auth.js.map +1 -0
- package/dist/src/utils/temporal-codec.d.ts +101 -0
- package/dist/src/utils/temporal-codec.d.ts.map +1 -0
- package/dist/src/utils/temporal-codec.js +319 -0
- package/dist/src/utils/temporal-codec.js.map +1 -0
- package/dist/src/utils/tunnel-ownership.d.ts +130 -0
- package/dist/src/utils/tunnel-ownership.d.ts.map +1 -0
- package/dist/src/utils/tunnel-ownership.js +274 -0
- package/dist/src/utils/tunnel-ownership.js.map +1 -0
- package/dist/src/utils/vpn-join.d.ts +32 -0
- package/dist/src/utils/vpn-join.d.ts.map +1 -0
- package/dist/src/utils/vpn-join.js +62 -0
- package/dist/src/utils/vpn-join.js.map +1 -0
- package/dist/src/utils/vpn.d.ts +62 -0
- package/dist/src/utils/vpn.d.ts.map +1 -0
- package/dist/src/utils/vpn.js +183 -0
- package/dist/src/utils/vpn.js.map +1 -0
- package/dist/src/utils/workflow-fingerprint.d.ts +49 -0
- package/dist/src/utils/workflow-fingerprint.d.ts.map +1 -0
- package/dist/src/utils/workflow-fingerprint.js +135 -0
- package/dist/src/utils/workflow-fingerprint.js.map +1 -0
- package/dist/src/utils/worktree-identity.d.ts +86 -0
- package/dist/src/utils/worktree-identity.d.ts.map +1 -0
- package/dist/src/utils/worktree-identity.js +164 -0
- package/dist/src/utils/worktree-identity.js.map +1 -0
- package/fragments/agents/AGENTS.md.hbs +92 -0
- package/fragments/agents/CLAUDE.md.hbs +8 -0
- package/fragments/base/Pulumi.dev.yaml.hbs +10 -0
- package/fragments/base/Pulumi.yaml.hbs +9 -0
- package/fragments/base/index.ts.hbs +107 -0
- package/fragments/base/package.json.hbs +22 -0
- package/{templates/api-web-db/api → fragments/base}/tsconfig.json +3 -4
- package/fragments/bucket/api/src/storage.ts.hbs +81 -0
- package/fragments/database/api/src/db.ts.hbs +23 -0
- package/fragments/database/prisma/schema.prisma.hbs +18 -0
- package/{templates/api-web-db → fragments/service}/api/.dockerignore +2 -0
- package/fragments/service/api/package.json.hbs +40 -0
- package/fragments/service/api/src/index.ts.hbs +58 -0
- package/{templates/api-web-db → fragments/service/api}/tsconfig.json +5 -3
- package/fragments/temporal/worker/.dockerignore +4 -0
- package/fragments/temporal/worker/Dockerfile +15 -0
- package/{templates/temporal-api-worker → fragments/temporal}/worker/package.json.hbs +3 -2
- package/fragments/temporal/worker/src/activities.ts.hbs +14 -0
- package/fragments/temporal/worker/src/worker.ts.hbs +27 -0
- package/fragments/temporal/worker/src/workflows.ts.hbs +24 -0
- package/fragments/temporal/worker/tsconfig.json +13 -0
- package/package.json +36 -22
- package/skills/core/SKILL.md +365 -0
- package/skills/pull-remote-agent-context/SKILL.md +194 -0
- package/stack/docker-compose.hub.yml +134 -0
- package/stack/docker-compose.yml +447 -0
- package/stack/hub/Dockerfile.api +18 -0
- package/stack/hub/Dockerfile.auth +10 -0
- package/stack/hub/Dockerfile.ui +10 -0
- package/stack/init/01-databases.sql +12 -0
- package/stack/observability/blackbox.yml +20 -0
- package/stack/observability/otel-collector.yaml +73 -0
- package/stack/observability/prometheus.yml +36 -0
- package/stack/observability/tempo.yaml +25 -0
- package/stack/temporal/local.yaml +44 -0
- package/templates/api-auth/AGENTS.md.hbs +16 -0
- package/templates/api-auth/Pulumi.dev.yaml.hbs +8 -0
- package/templates/api-auth/Pulumi.yaml.hbs +8 -0
- package/templates/api-auth/README.md.hbs +67 -0
- package/templates/api-auth/api/package.json.hbs +28 -0
- package/templates/api-auth/api/src/index.ts.hbs +96 -0
- package/templates/api-auth/api/src/schema.ts.hbs +35 -0
- package/templates/api-auth/api/src/seed-authz.ts.hbs +48 -0
- package/templates/api-auth/api/src/spicedb-http-provider.ts.hbs +89 -0
- package/templates/api-auth/index.ts.hbs +65 -0
- package/templates/api-auth/package.json.hbs +20 -0
- package/templates/api-auth/skills/develop/SKILL.md.hbs +32 -0
- package/templates/api-role-gating/AGENTS.md.hbs +20 -0
- package/templates/api-role-gating/Pulumi.dev.yaml.hbs +8 -0
- package/templates/api-role-gating/Pulumi.yaml.hbs +8 -0
- package/templates/api-role-gating/README.md.hbs +64 -0
- package/templates/api-role-gating/api/Dockerfile +17 -0
- package/templates/api-role-gating/api/package.json.hbs +28 -0
- package/templates/api-role-gating/api/src/authn.ts.hbs +29 -0
- package/templates/api-role-gating/api/src/authz.ts.hbs +12 -0
- package/templates/api-role-gating/api/src/main.ts.hbs +58 -0
- package/templates/api-role-gating/api/src/schema.ts.hbs +22 -0
- package/templates/api-role-gating/api/tsconfig.json +13 -0
- package/templates/api-role-gating/index.ts.hbs +107 -0
- package/templates/api-role-gating/package.json.hbs +21 -0
- package/templates/api-role-gating/skills/develop/SKILL.md.hbs +60 -0
- package/templates/api-role-gating/tsconfig.json +10 -0
- package/templates/apps-repo/README.md.hbs +24 -0
- package/templates/apps-repo/gitignore +41 -0
- package/templates/apps-repo/npmrc.hbs +7 -0
- package/templates/apps-repo/package.json.hbs +15 -0
- package/templates/apps-repo/pnpm-workspace.yaml +3 -0
- package/templates/apps-repo/tsconfig.json +18 -0
- package/templates/external-service/AGENTS.md.hbs +20 -0
- package/templates/external-service/Pulumi.dev.yaml.hbs +8 -0
- package/templates/external-service/Pulumi.yaml.hbs +8 -0
- package/templates/external-service/README.md.hbs +56 -0
- package/templates/external-service/api/Dockerfile +15 -0
- package/templates/external-service/api/package.json.hbs +25 -0
- package/templates/external-service/api/src/index.ts.hbs +81 -0
- package/templates/external-service/index.ts.hbs +82 -0
- package/templates/external-service/mocks/vendorpay/package.json.hbs +9 -0
- package/templates/external-service/mocks/vendorpay/server.mjs.hbs +61 -0
- package/templates/external-service/package.json.hbs +34 -0
- package/templates/external-service/skills/develop/SKILL.md.hbs +55 -0
- package/templates/external-service/tsconfig.json +10 -0
- package/templates/platform-repo/AGENTS.md.hbs +18 -0
- package/templates/platform-repo/README.md.hbs +38 -0
- package/templates/platform-repo/core/Pulumi.yaml.hbs +12 -0
- package/templates/platform-repo/core/Pulumi.{{tenant}}-{{env}}.yaml.hbs +57 -0
- package/templates/platform-repo/core/index.ts +62 -0
- package/templates/platform-repo/core/package.json.hbs +22 -0
- package/templates/platform-repo/core/tsconfig.json +8 -0
- package/templates/platform-repo/package.json.hbs +15 -0
- package/templates/platform-repo/platform/Pulumi.yaml.hbs +12 -0
- package/templates/platform-repo/platform/Pulumi.{{tenant}}-{{env}}.yaml.hbs +59 -0
- package/templates/platform-repo/platform/index.ts +95 -0
- package/templates/platform-repo/platform/package.json.hbs +26 -0
- package/templates/platform-repo/platform/tsconfig.json +8 -0
- package/templates/platform-repo/pnpm-workspace.yaml +3 -0
- package/templates/workflow/AGENTS.md.hbs +15 -0
- package/templates/workflow/Pulumi.dev.yaml.hbs +8 -0
- package/templates/workflow/Pulumi.yaml.hbs +8 -0
- package/templates/workflow/README.md.hbs +45 -0
- package/templates/workflow/api/.dockerignore +4 -0
- package/templates/workflow/api/Dockerfile +15 -0
- package/templates/{temporal-api-worker → workflow}/api/package.json.hbs +8 -6
- package/templates/workflow/api/src/index.ts.hbs +130 -0
- package/templates/workflow/api/tsconfig.json +14 -0
- package/templates/workflow/index.ts.hbs +67 -0
- package/templates/workflow/package.json.hbs +20 -0
- package/templates/workflow/skills/develop/SKILL.md.hbs +32 -0
- package/templates/workflow/tsconfig.json +10 -0
- package/templates/workflow/worker/.dockerignore +4 -0
- package/templates/workflow/worker/Dockerfile +13 -0
- package/templates/workflow/worker/package.json.hbs +25 -0
- package/templates/workflow/worker/src/worker.ts.hbs +24 -0
- package/templates/workflow/worker/tsconfig.json +14 -0
- package/dist/src/commands/devbox.d.ts +0 -22
- package/dist/src/commands/devbox.d.ts.map +0 -1
- package/dist/src/commands/devbox.js +0 -463
- package/dist/src/commands/devbox.js.map +0 -1
- package/templates/api-web-db/api/Dockerfile +0 -16
- package/templates/api-web-db/api/package.json.hbs +0 -21
- package/templates/api-web-db/api/src/index.ts.hbs +0 -123
- package/templates/api-web-db/package.json.hbs +0 -27
- package/templates/api-web-db/sst.config.ts.hbs +0 -151
- package/templates/api-web-db/web/.dockerignore +0 -3
- package/templates/api-web-db/web/Dockerfile +0 -17
- package/templates/api-web-db/web/app/lib/db.server.ts +0 -36
- package/templates/api-web-db/web/app/root.tsx +0 -29
- package/templates/api-web-db/web/app/routes/home.tsx.hbs +0 -114
- package/templates/api-web-db/web/app/routes.ts +0 -3
- package/templates/api-web-db/web/package.json.hbs +0 -30
- package/templates/api-web-db/web/prisma/schema.prisma +0 -25
- package/templates/api-web-db/web/prisma.config.ts +0 -18
- package/templates/api-web-db/web/react-router.config.ts +0 -5
- package/templates/api-web-db/web/tsconfig.json +0 -19
- package/templates/api-web-db/web/vite.config.ts +0 -9
- package/templates/temporal-api-worker/README.md.hbs +0 -133
- package/templates/temporal-api-worker/api/src/index.ts.hbs +0 -145
- package/templates/temporal-api-worker/package.json.hbs +0 -29
- package/templates/temporal-api-worker/sst.config.ts.hbs +0 -161
- package/templates/temporal-api-worker/worker/Dockerfile +0 -11
- package/templates/temporal-api-worker/worker/src/bundle-workflows.ts +0 -38
- package/templates/temporal-api-worker/worker/src/worker.ts.hbs +0 -93
- /package/templates/{temporal-api-worker → api-auth}/api/.dockerignore +0 -0
- /package/templates/{temporal-api-worker → api-auth}/api/Dockerfile +0 -0
- /package/templates/{temporal-api-worker → api-auth}/api/tsconfig.json +0 -0
- /package/templates/{temporal-api-worker → api-auth}/tsconfig.json +0 -0
- /package/templates/{temporal-api-worker/worker → api-role-gating/api}/.dockerignore +0 -0
- /package/templates/{temporal-api-worker/worker → external-service/api}/tsconfig.json +0 -0
- /package/templates/{temporal-api-worker → workflow}/api/src/encryption-codec.ts +0 -0
- /package/templates/{temporal-api-worker → workflow}/worker/src/activities.ts.hbs +0 -0
- /package/templates/{temporal-api-worker → workflow}/worker/src/encryption-codec.ts +0 -0
- /package/templates/{temporal-api-worker → workflow}/worker/src/workflows.ts.hbs +0 -0
|
@@ -12,11 +12,143 @@
|
|
|
12
12
|
import { execFileSync } from "child_process";
|
|
13
13
|
import * as path from "path";
|
|
14
14
|
import * as fs from "fs";
|
|
15
|
+
import { parse as parseYaml } from "yaml";
|
|
15
16
|
import { logError, logInfo, logSuccess, logWarn } from "../utils/log.js";
|
|
16
|
-
import { findAppRoot, findStackConfigs } from "../utils/pulumi.js";
|
|
17
|
+
import { findAppRoot, findStackConfigs, getCurrentStack, readStackConfig } from "../utils/pulumi.js";
|
|
18
|
+
import { resolveWorktreeIdentity, worktreeStackName } from "../utils/worktree-identity.js";
|
|
19
|
+
import { resolvePulumiEnv } from "../utils/pulumi-run.js";
|
|
17
20
|
// =============================================================================
|
|
18
21
|
// Helpers
|
|
19
22
|
// =============================================================================
|
|
23
|
+
/**
|
|
24
|
+
* Read a top-level key from Pulumi.<stack>.yaml (not under `config:`).
|
|
25
|
+
* Used for `secretsprovider` and `encryptedkey` which live at the root level.
|
|
26
|
+
*/
|
|
27
|
+
function readTopLevelYamlKey(appRoot, stack, key) {
|
|
28
|
+
const configFile = path.join(appRoot, `Pulumi.${stack}.yaml`);
|
|
29
|
+
if (!fs.existsSync(configFile))
|
|
30
|
+
return null;
|
|
31
|
+
const content = fs.readFileSync(configFile, "utf-8");
|
|
32
|
+
// Match top-level key (no leading whitespace, unlike config values which are indented)
|
|
33
|
+
const pattern = new RegExp(`^${key}:\\s*(.+)$`, "m");
|
|
34
|
+
const match = content.match(pattern);
|
|
35
|
+
if (!match)
|
|
36
|
+
return null;
|
|
37
|
+
return match[1].trim().replace(/^["']|["']$/g, "");
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Read a key's scalar value from the `config:` block of Pulumi.<stack>.yaml
|
|
41
|
+
* (e.g. `mesh:tenant`). Indented two spaces under `config:`.
|
|
42
|
+
*/
|
|
43
|
+
function readConfigBlockKey(appRoot, stack, key) {
|
|
44
|
+
const configFile = path.join(appRoot, `Pulumi.${stack}.yaml`);
|
|
45
|
+
if (!fs.existsSync(configFile))
|
|
46
|
+
return null;
|
|
47
|
+
const content = fs.readFileSync(configFile, "utf-8");
|
|
48
|
+
const pattern = new RegExp(`^\\s{2}${key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}:\\s*(.+)$`, "m");
|
|
49
|
+
const match = content.match(pattern);
|
|
50
|
+
if (!match)
|
|
51
|
+
return null;
|
|
52
|
+
return match[1].trim().replace(/^["']|["']$/g, "");
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Personal-platform DNS preflight: verify the parent zone's PUBLIC delegation.
|
|
56
|
+
*
|
|
57
|
+
* The env zone ({env}.{parentZone}) is created and NS-delegated inside
|
|
58
|
+
* Route53 by the platform deploy — but the chain only resolves publicly if
|
|
59
|
+
* the parent zone itself is delegated at the DNS host above it (e.g. the 4
|
|
60
|
+
* NS records for `sandbox` in the Cloudflare meshtech.io zone). Without it,
|
|
61
|
+
* hostnames don't resolve and ACM certs sit in PENDING_VALIDATION forever.
|
|
62
|
+
* This check names the exact records to add instead of leaving that failure
|
|
63
|
+
* to be discovered from a "not secure / unreachable" browser error.
|
|
64
|
+
*/
|
|
65
|
+
async function checkParentZoneDelegation(parentZone, awsEnv) {
|
|
66
|
+
// What the internet sees
|
|
67
|
+
let publicNs = [];
|
|
68
|
+
try {
|
|
69
|
+
const { Resolver } = await import("node:dns/promises");
|
|
70
|
+
const resolver = new Resolver();
|
|
71
|
+
resolver.setServers(["1.1.1.1", "8.8.8.8"]);
|
|
72
|
+
publicNs = (await resolver.resolveNs(parentZone)).map((n) => n.replace(/\.$/, "").toLowerCase());
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// NXDOMAIN / no NS — treated as "no public delegation"
|
|
76
|
+
}
|
|
77
|
+
// What Route53 says the zone's nameservers ARE (so the warning can print
|
|
78
|
+
// the exact records to add). Best-effort: skip silently without creds.
|
|
79
|
+
let zoneNs = [];
|
|
80
|
+
try {
|
|
81
|
+
const { Route53Client, ListHostedZonesByNameCommand, GetHostedZoneCommand } = await import("@aws-sdk/client-route-53");
|
|
82
|
+
const client = new Route53Client({
|
|
83
|
+
credentials: awsEnv.AWS_ACCESS_KEY_ID
|
|
84
|
+
? {
|
|
85
|
+
accessKeyId: awsEnv.AWS_ACCESS_KEY_ID,
|
|
86
|
+
secretAccessKey: awsEnv.AWS_SECRET_ACCESS_KEY ?? "",
|
|
87
|
+
sessionToken: awsEnv.AWS_SESSION_TOKEN,
|
|
88
|
+
}
|
|
89
|
+
: undefined,
|
|
90
|
+
});
|
|
91
|
+
const byName = await client.send(new ListHostedZonesByNameCommand({ DNSName: parentZone, MaxItems: 1 }));
|
|
92
|
+
const zone = byName.HostedZones?.[0];
|
|
93
|
+
if (zone?.Id && zone.Name === `${parentZone}.`) {
|
|
94
|
+
const detail = await client.send(new GetHostedZoneCommand({ Id: zone.Id }));
|
|
95
|
+
zoneNs = (detail.DelegationSet?.NameServers ?? []).map((n) => n.toLowerCase());
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
logWarn(`Parent zone '${parentZone}' does not exist in Route53 yet — the platform deploy expects it (it hosts the env-zone delegations). Create it first (one-time, operator step).`);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
/* creds unavailable or lookup failed — fall through with what we have */
|
|
104
|
+
}
|
|
105
|
+
if (publicNs.length === 0) {
|
|
106
|
+
const records = zoneNs.length > 0
|
|
107
|
+
? zoneNs.map((ns) => ` ${parentZone.split(".")[0]} NS ${ns}`).join("\n")
|
|
108
|
+
: ` (run this command again with AWS credentials to print the exact nameservers)`;
|
|
109
|
+
logWarn(`Parent zone '${parentZone}' has NO public NS delegation — hub/identity/temporal hostnames for this stack will NOT resolve and ACM certs stay pending until it lands.\n` +
|
|
110
|
+
` One-time step: at the DNS host for '${parentZone.split(".").slice(1).join(".")}' (e.g. Cloudflare), add:\n` +
|
|
111
|
+
`${records}\n` +
|
|
112
|
+
` The deploy itself can proceed now (certs validate automatically once delegation propagates).`);
|
|
113
|
+
}
|
|
114
|
+
else if (zoneNs.length > 0 && !publicNs.some((ns) => zoneNs.includes(ns))) {
|
|
115
|
+
logWarn(`Parent zone '${parentZone}' is publicly delegated to DIFFERENT nameservers than the Route53 zone in this account:\n` +
|
|
116
|
+
` public: ${publicNs.join(", ")}\n` +
|
|
117
|
+
` zone: ${zoneNs.join(", ")}\n` +
|
|
118
|
+
` The env zone would be created in a zone the internet never consults — fix the delegation before deploying.`);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
logSuccess(`Parent zone delegation OK: ${parentZone} resolves publicly.`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Read the `config:` block from `Pulumi.<stack>.yaml` on disk, in the same shape
|
|
126
|
+
* `pulumi config --json` returns. This is the fallback when the base stack hasn't
|
|
127
|
+
* been initialized in the backend yet (a freshly-generated app): `pulumi config
|
|
128
|
+
* --json --stack <base>` fails, but the config we need still lives in the file.
|
|
129
|
+
* Without this, `mesh stack init` silently drops region/tenant/platform/deployerRole.
|
|
130
|
+
*/
|
|
131
|
+
function readBaseConfigFromYaml(appRoot, stack) {
|
|
132
|
+
const file = path.join(appRoot, `Pulumi.${stack}.yaml`);
|
|
133
|
+
if (!fs.existsSync(file))
|
|
134
|
+
return {};
|
|
135
|
+
let doc;
|
|
136
|
+
try {
|
|
137
|
+
doc = parseYaml(fs.readFileSync(file, "utf-8"));
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return {};
|
|
141
|
+
}
|
|
142
|
+
const cfg = doc?.config ?? {};
|
|
143
|
+
const out = {};
|
|
144
|
+
for (const [key, val] of Object.entries(cfg)) {
|
|
145
|
+
out[key] =
|
|
146
|
+
val !== null && typeof val === "object"
|
|
147
|
+
? { value: "", objectValue: val }
|
|
148
|
+
: { value: String(val) };
|
|
149
|
+
}
|
|
150
|
+
return out;
|
|
151
|
+
}
|
|
20
152
|
/**
|
|
21
153
|
* Get GitHub username from gh CLI, falling back to git config.
|
|
22
154
|
*/
|
|
@@ -63,7 +195,11 @@ export function registerStackCommand(program) {
|
|
|
63
195
|
.description("Create a personal dev stack (dev-{github-username})")
|
|
64
196
|
.option("--from <stack>", "Base stack to copy config from")
|
|
65
197
|
.option("--name <name>", "Override stack name (default: dev-{username})")
|
|
66
|
-
.
|
|
198
|
+
.option("--adopt", "resume an EXISTING stack with this name (skips the availability check)", false)
|
|
199
|
+
.option("--worktree", "Isolate this stack per git worktree — append the worktree token to the name so concurrent worktrees deploy to distinct stacks (no SSM/namespace collisions)")
|
|
200
|
+
.option("--platform", "Personal PLATFORM stack: a fully isolated platform env (Zitadel, Hub, Temporal, tenant envs) on the SHARED core — sets mesh:coreEnv to the base env, mesh:clusterOwner false, disables org-wide singletons (package registry, VPN), and keeps deploy ON. Run from a platform Pulumi program.", false)
|
|
201
|
+
.option("--parent-zone <zone>", "With --platform: parent DNS zone for the env zone (mesh:dns.public.parentZone) — platform hostnames become {sub}.{env}.{parentZone} (e.g. hub.dmb-dev.mesh.meshtech.io), so personal stacks never collide on DNS")
|
|
202
|
+
.action(async (opts) => {
|
|
67
203
|
const appRoot = findAppRoot(process.cwd());
|
|
68
204
|
if (!appRoot) {
|
|
69
205
|
logError("No Pulumi.yaml found. Run from within a Pulumi app directory.");
|
|
@@ -102,21 +238,98 @@ export function registerStackCommand(program) {
|
|
|
102
238
|
logError(`Stack config not found: Pulumi.${baseStack}.yaml`);
|
|
103
239
|
process.exit(1);
|
|
104
240
|
}
|
|
105
|
-
// Determine new stack name
|
|
106
|
-
|
|
241
|
+
// Determine new stack name. --worktree appends this worktree's token so
|
|
242
|
+
// concurrent worktrees deploy to distinct stacks: the SSM export paths
|
|
243
|
+
// (apps/{app}/stacks/{stack}/...), Temporal namespace ({tenant}-{stack}-
|
|
244
|
+
// {app}), and Nexus endpoint name all derive from the stack name, so ONE
|
|
245
|
+
// discriminator isolates all three. The primary checkout has an empty
|
|
246
|
+
// token, so --worktree is a no-op there (it IS the canonical stack).
|
|
247
|
+
// Platform stacks follow {tenant}-{env} (parseEnvFromStack derives the
|
|
248
|
+
// env by stripping the tenant prefix), so the personal env is
|
|
249
|
+
// {username}-dev → stack {tenant}-{username}-dev. App stacks keep the
|
|
250
|
+
// dev-{username} convention.
|
|
251
|
+
const baseTenant = readConfigBlockKey(appRoot, baseStack, "mesh:tenant");
|
|
252
|
+
if (opts.platform && !baseTenant) {
|
|
253
|
+
logError(`--platform: could not read mesh:tenant from Pulumi.${baseStack}.yaml — is this a platform program?`);
|
|
254
|
+
process.exit(1);
|
|
255
|
+
}
|
|
256
|
+
const baseName = opts.name ??
|
|
257
|
+
(opts.platform ? `${baseTenant}-${username}-dev` : `dev-${username}`);
|
|
258
|
+
let newStack = baseName;
|
|
259
|
+
if (opts.worktree) {
|
|
260
|
+
const wt = resolveWorktreeIdentity(appRoot);
|
|
261
|
+
newStack = worktreeStackName(baseName, wt);
|
|
262
|
+
if (wt.token) {
|
|
263
|
+
logInfo(`--worktree: isolating as "${newStack}" (linked worktree "${wt.slug}")`);
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
logInfo(`--worktree: primary checkout has no worktree token — using "${baseName}" (isolation not needed here).`);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
107
269
|
const newConfigPath = path.join(appRoot, `Pulumi.${newStack}.yaml`);
|
|
108
270
|
const configExists = fs.existsSync(newConfigPath);
|
|
109
|
-
//
|
|
271
|
+
// Detect KMS secrets provider from base stack config.
|
|
272
|
+
// After migration, stacks have a top-level `secretsprovider:` key in their
|
|
273
|
+
// Pulumi.<stack>.yaml with the KMS URI. Use it for new stacks so they
|
|
274
|
+
// automatically use KMS instead of passphrase encryption.
|
|
275
|
+
const secretsProvider = readTopLevelYamlKey(appRoot, baseStack, "secretsprovider");
|
|
276
|
+
// Login preflight + deployer creds for the Pulumi backend (MESH-2085):
|
|
277
|
+
// stack init/select/config all hit the S3 state backend and need the
|
|
278
|
+
// deployer role. Resolve it ONCE from the base stack (the new stack has no
|
|
279
|
+
// config yet) — and get a clear "run mesh login --device" instead of a raw
|
|
280
|
+
// NoCredentialProviders — then reuse the env across every pulumi call below.
|
|
281
|
+
const credEnv = await resolvePulumiEnv({ appRoot, stack: baseStack });
|
|
282
|
+
const pulumiEnv = { ...process.env, ...credEnv };
|
|
283
|
+
delete pulumiEnv.AWS_PROFILE;
|
|
284
|
+
// Determinism: a personal stack NAME must be available. The backend is
|
|
285
|
+
// shared, so an existing stack with this name belongs to someone (maybe
|
|
286
|
+
// you, maybe not) — creating "into" it silently adopts their state.
|
|
287
|
+
// Check first and fail with a clear remediation; --adopt is the
|
|
288
|
+
// explicit escape hatch for resuming a stack you know is yours.
|
|
289
|
+
if (!opts.adopt) {
|
|
290
|
+
let existing = [];
|
|
291
|
+
try {
|
|
292
|
+
const raw = execFileSync("pulumi", ["stack", "ls", "--json"], {
|
|
293
|
+
cwd: appRoot,
|
|
294
|
+
encoding: "utf-8",
|
|
295
|
+
env: pulumiEnv,
|
|
296
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
297
|
+
});
|
|
298
|
+
existing = JSON.parse(raw).map((s) => s.name);
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
// Backend unreachable — pulumi stack init below gives the real error.
|
|
302
|
+
}
|
|
303
|
+
if (existing.includes(newStack) || configExists) {
|
|
304
|
+
logError(`Personal stack name '${newStack}' is not available` +
|
|
305
|
+
(configExists ? ` (Pulumi.${newStack}.yaml already exists here)` : " (a stack with this name exists in the backend)") +
|
|
306
|
+
".");
|
|
307
|
+
logInfo(` Pick another name: mesh stack init --name ${newStack}-2`);
|
|
308
|
+
logInfo(` Resume YOUR OWN stack: mesh stack init --name ${newStack} --adopt`);
|
|
309
|
+
process.exit(1);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
// Initialize the Pulumi stack
|
|
313
|
+
const initArgs = ["stack", "init", newStack];
|
|
314
|
+
if (secretsProvider) {
|
|
315
|
+
initArgs.push("--secrets-provider", secretsProvider);
|
|
316
|
+
logInfo(`Using KMS secrets provider: ${secretsProvider}`);
|
|
317
|
+
}
|
|
110
318
|
try {
|
|
111
|
-
execFileSync("pulumi",
|
|
319
|
+
execFileSync("pulumi", initArgs, {
|
|
112
320
|
cwd: appRoot,
|
|
321
|
+
env: pulumiEnv,
|
|
113
322
|
stdio: "inherit",
|
|
114
323
|
});
|
|
115
|
-
logSuccess(`Stack initialized: ${newStack}`);
|
|
324
|
+
logSuccess(`Stack initialized: ${newStack}${secretsProvider ? " (KMS secrets)" : ""}`);
|
|
116
325
|
}
|
|
117
326
|
catch (err) {
|
|
118
|
-
if (err.stderr?.includes("already exists")) {
|
|
119
|
-
logWarn(`Stack ${newStack} already exists.`);
|
|
327
|
+
if (err.stderr?.includes("already exists") && opts.adopt) {
|
|
328
|
+
logWarn(`Stack ${newStack} already exists — adopting (--adopt).`);
|
|
329
|
+
}
|
|
330
|
+
else if (err.stderr?.includes("already exists")) {
|
|
331
|
+
logError(`Stack ${newStack} already exists. Re-run with --adopt if it is yours.`);
|
|
332
|
+
process.exit(1);
|
|
120
333
|
}
|
|
121
334
|
else {
|
|
122
335
|
process.exit(err.status ?? 1);
|
|
@@ -126,6 +339,7 @@ export function registerStackCommand(program) {
|
|
|
126
339
|
try {
|
|
127
340
|
execFileSync("pulumi", ["stack", "select", newStack], {
|
|
128
341
|
cwd: appRoot,
|
|
342
|
+
env: pulumiEnv,
|
|
129
343
|
stdio: ["pipe", "pipe", "pipe"],
|
|
130
344
|
});
|
|
131
345
|
}
|
|
@@ -135,11 +349,19 @@ export function registerStackCommand(program) {
|
|
|
135
349
|
// Read base stack config as JSON
|
|
136
350
|
let baseConfig = {};
|
|
137
351
|
try {
|
|
138
|
-
const raw = execFileSync("pulumi", ["config", "--json", "--stack", baseStack], { cwd: appRoot, encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
|
|
352
|
+
const raw = execFileSync("pulumi", ["config", "--json", "--stack", baseStack], { cwd: appRoot, env: pulumiEnv, encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
|
|
139
353
|
baseConfig = JSON.parse(raw);
|
|
140
354
|
}
|
|
141
355
|
catch {
|
|
142
|
-
|
|
356
|
+
// The base stack isn't initialized in the backend (common for a freshly
|
|
357
|
+
// generated app) — read its config straight from Pulumi.<base>.yaml instead
|
|
358
|
+
// of dropping it. (Previously this fell through with an empty config, leaving
|
|
359
|
+
// the new stack missing region/tenant/platform/deployerRole — MESH-2096.)
|
|
360
|
+
baseConfig = readBaseConfigFromYaml(appRoot, baseStack);
|
|
361
|
+
if (Object.keys(baseConfig).length === 0) {
|
|
362
|
+
logWarn(`Could not read base config from the backend or Pulumi.${baseStack}.yaml — ` +
|
|
363
|
+
`the new stack will need manual config.`);
|
|
364
|
+
}
|
|
143
365
|
}
|
|
144
366
|
// Copy all config keys except mesh:deploy (we'll set that explicitly)
|
|
145
367
|
for (const [key, entry] of Object.entries(baseConfig)) {
|
|
@@ -148,28 +370,144 @@ export function registerStackCommand(program) {
|
|
|
148
370
|
try {
|
|
149
371
|
if (entry.objectValue !== undefined) {
|
|
150
372
|
// Structured value — set as JSON (Pulumi parses it back to object)
|
|
151
|
-
execFileSync("pulumi", ["config", "set", key, JSON.stringify(entry.objectValue)], { cwd: appRoot, stdio: ["pipe", "pipe", "pipe"] });
|
|
373
|
+
execFileSync("pulumi", ["config", "set", key, JSON.stringify(entry.objectValue)], { cwd: appRoot, env: pulumiEnv, stdio: ["pipe", "pipe", "pipe"] });
|
|
152
374
|
}
|
|
153
375
|
else if (entry.value === "true" || entry.value === "false") {
|
|
154
|
-
execFileSync("pulumi", ["config", "set", "--type", "bool", key, entry.value], { cwd: appRoot, stdio: ["pipe", "pipe", "pipe"] });
|
|
376
|
+
execFileSync("pulumi", ["config", "set", "--type", "bool", key, entry.value], { cwd: appRoot, env: pulumiEnv, stdio: ["pipe", "pipe", "pipe"] });
|
|
155
377
|
}
|
|
156
378
|
else {
|
|
157
|
-
execFileSync("pulumi", ["config", "set", key, entry.value], { cwd: appRoot, stdio: ["pipe", "pipe", "pipe"] });
|
|
379
|
+
execFileSync("pulumi", ["config", "set", key, entry.value], { cwd: appRoot, env: pulumiEnv, stdio: ["pipe", "pipe", "pipe"] });
|
|
158
380
|
}
|
|
159
381
|
}
|
|
160
382
|
catch { }
|
|
161
383
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
384
|
+
if (opts.platform) {
|
|
385
|
+
// Personal PLATFORM stack: an isolated platform env on the shared
|
|
386
|
+
// core. Everything below the platform layer is reused (cluster,
|
|
387
|
+
// VPC, VPN, RDS); everything above it is this env's own.
|
|
388
|
+
const baseEnv = readConfigBlockKey(appRoot, baseStack, "mesh:coreEnv") ??
|
|
389
|
+
(baseTenant && baseStack.startsWith(`${baseTenant}-`)
|
|
390
|
+
? baseStack.slice(baseTenant.length + 1)
|
|
391
|
+
: baseStack);
|
|
392
|
+
const setCfg = (args) => {
|
|
393
|
+
try {
|
|
394
|
+
execFileSync("pulumi", ["config", "set", ...args], {
|
|
395
|
+
cwd: appRoot,
|
|
396
|
+
env: pulumiEnv,
|
|
397
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
catch { }
|
|
401
|
+
};
|
|
402
|
+
setCfg(["mesh:coreEnv", baseEnv]);
|
|
403
|
+
setCfg(["--type", "bool", "mesh:clusterOwner", "false"]);
|
|
404
|
+
// Org-wide singletons stay with the primary platform: one package
|
|
405
|
+
// registry per org, and the personal env reuses the shared VPN.
|
|
406
|
+
setCfg(["--type", "bool", "mesh:packageRegistry", "false"]);
|
|
407
|
+
setCfg(["--type", "bool", "mesh:headscale", "false"]);
|
|
408
|
+
setCfg(["--type", "bool", "mesh:subnetRouter", "false"]);
|
|
409
|
+
setCfg(["--type", "bool", "mesh:devbox", "false"]);
|
|
410
|
+
// A personal platform env owns its whole DNS zone — hostname
|
|
411
|
+
// suffixing (subdomain-{stage}) exists to avoid collisions inside a
|
|
412
|
+
// SHARED zone and just makes URLs ugly here. Stable URLs by default.
|
|
413
|
+
setCfg(["--type", "bool", "mesh:stableUrl", "true"]);
|
|
414
|
+
// Tenant Pulumi-state bucket names are org-global by convention
|
|
415
|
+
// ({hubTenant}-tenant-{name}-pulumi-state, no env segment) and
|
|
416
|
+
// WILL collide with the primary platform's buckets. Scope each
|
|
417
|
+
// copied tenant's bucket to this env via the documented
|
|
418
|
+
// pulumiStateBucket override.
|
|
419
|
+
try {
|
|
420
|
+
const tenantsRaw = readConfigBlockKey(appRoot, newStack, "mesh:tenants");
|
|
421
|
+
if (tenantsRaw) {
|
|
422
|
+
const tenants = JSON.parse(tenantsRaw);
|
|
423
|
+
const envSegment = baseTenant && newStack.startsWith(`${baseTenant}-`)
|
|
424
|
+
? newStack.slice(baseTenant.length + 1)
|
|
425
|
+
: newStack;
|
|
426
|
+
for (const [tName, tCfg] of Object.entries(tenants)) {
|
|
427
|
+
if (!tCfg.pulumiStateBucket) {
|
|
428
|
+
tCfg.pulumiStateBucket = `${baseTenant}-tenant-${tName}-${envSegment}-pulumi-state`;
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
setCfg(["mesh:tenants", JSON.stringify(tenants)]);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
catch {
|
|
435
|
+
logWarn("Could not env-scope tenant pulumiStateBucket overrides — check mesh:tenants by hand (bucket names collide across envs otherwise).");
|
|
436
|
+
}
|
|
437
|
+
// Env-zone DNS: hostnames derive from {env}.{parentZone} so this
|
|
438
|
+
// stack can never collide with another env's hosts.
|
|
439
|
+
// waitForValidation false → the deploy never blocks on ACM while the
|
|
440
|
+
// parent zone's public delegation is still propagating; the cert
|
|
441
|
+
// issues automatically once it lands.
|
|
442
|
+
if (opts.parentZone) {
|
|
443
|
+
setCfg([
|
|
444
|
+
"mesh:dns",
|
|
445
|
+
JSON.stringify({
|
|
446
|
+
public: { parentZone: opts.parentZone, waitForValidation: false },
|
|
447
|
+
}),
|
|
448
|
+
]);
|
|
449
|
+
}
|
|
450
|
+
else {
|
|
451
|
+
logWarn("No --parent-zone given: platform hostnames will derive FLAT from the core zone and can collide with the primary platform. Set it now or later with: mesh deploy config set mesh:dns '{\"public\":{\"parentZone\":\"<zone>\"}}'");
|
|
452
|
+
}
|
|
453
|
+
if (opts.parentZone) {
|
|
454
|
+
await checkParentZoneDelegation(opts.parentZone, pulumiEnv);
|
|
455
|
+
}
|
|
456
|
+
logSuccess(`Configured Pulumi.${newStack}.yaml (personal platform env on core '${baseEnv}'${opts.parentZone ? `, DNS zone ${newStack.startsWith(`${baseTenant}-`) ? newStack.slice(baseTenant.length + 1) : newStack}.${opts.parentZone}` : ""})`);
|
|
457
|
+
}
|
|
458
|
+
else {
|
|
459
|
+
// Set mesh:deploy to false — personal APP stacks skip K8s deployments
|
|
460
|
+
execFileSync("pulumi", ["config", "set", "--type", "bool", "mesh:deploy", "false"], {
|
|
461
|
+
cwd: appRoot,
|
|
462
|
+
env: pulumiEnv,
|
|
463
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
464
|
+
});
|
|
465
|
+
logSuccess(`Configured Pulumi.${newStack}.yaml (based on ${baseStack}, deploy: false)`);
|
|
466
|
+
}
|
|
168
467
|
}
|
|
169
468
|
console.log("");
|
|
170
|
-
logInfo(`Your personal stack is ready.`);
|
|
171
|
-
|
|
172
|
-
|
|
469
|
+
logInfo(opts.platform ? `Your personal platform stack is ready.` : `Your personal stack is ready.`);
|
|
470
|
+
// Qualify with --stack/--stage: right after init the deployer role isn't
|
|
471
|
+
// assumed yet, so `pulumi stack --show-name` can't resolve the selected
|
|
472
|
+
// stack and a bare `mesh deploy up` errors "Could not determine stack"
|
|
473
|
+
// (MESH-2097). The explicit name is copy-paste correct.
|
|
474
|
+
logInfo(`Run: mesh deploy up --stack ${newStack} --yes`);
|
|
475
|
+
logInfo(opts.platform
|
|
476
|
+
? `Then point app stacks at it: mesh:platformEnv ${newStack.startsWith(`${baseTenant}-`) ? newStack.slice(baseTenant.length + 1) : newStack}`
|
|
477
|
+
: `Then: mesh dev --stage ${newStack}`);
|
|
478
|
+
});
|
|
479
|
+
stack
|
|
480
|
+
.command("rm <name>")
|
|
481
|
+
.description("Remove a personal Pulumi stack (backend state + local config)")
|
|
482
|
+
.option("--yes", "Skip the confirmation prompt")
|
|
483
|
+
.action(async (name, opts) => {
|
|
484
|
+
const appRoot = findAppRoot(process.cwd());
|
|
485
|
+
if (!appRoot) {
|
|
486
|
+
logError("No Pulumi.yaml found. Run from within a Pulumi app directory.");
|
|
487
|
+
process.exit(1);
|
|
488
|
+
}
|
|
489
|
+
// Credentialed via the shared chokepoint (MESH-2085) — the login preflight
|
|
490
|
+
// + deployer role, so `pulumi stack rm` reaches the S3 backend instead of
|
|
491
|
+
// NoCredentialProviders. Prefer the TARGET stack's role; but a half-created
|
|
492
|
+
// stack, or one created in another worktree, may have no local config here
|
|
493
|
+
// (exactly the stacks you most want to rm), so fall back to any OTHER local
|
|
494
|
+
// stack that carries a deployerRole — personal dev stacks share an account.
|
|
495
|
+
const credStack = readStackConfig(appRoot, name, "mesh:deployerRole")
|
|
496
|
+
? name
|
|
497
|
+
: [getCurrentStack(appRoot), "dev", ...findStackConfigs(appRoot)].find((s) => !!s && s !== name && !!readStackConfig(appRoot, s, "mesh:deployerRole")) ?? name;
|
|
498
|
+
const credEnv = await resolvePulumiEnv({ appRoot, stack: credStack });
|
|
499
|
+
const pulumiEnv = { ...process.env, ...credEnv };
|
|
500
|
+
delete pulumiEnv.AWS_PROFILE;
|
|
501
|
+
const args = ["stack", "rm", name];
|
|
502
|
+
if (opts.yes)
|
|
503
|
+
args.push("--yes");
|
|
504
|
+
try {
|
|
505
|
+
execFileSync("pulumi", args, { cwd: appRoot, env: pulumiEnv, stdio: "inherit" });
|
|
506
|
+
logSuccess(`Removed stack ${name}`);
|
|
507
|
+
}
|
|
508
|
+
catch (err) {
|
|
509
|
+
process.exit(err.status ?? 1);
|
|
510
|
+
}
|
|
173
511
|
});
|
|
174
512
|
}
|
|
175
513
|
//# sourceMappingURL=stack.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../src/commands/stack.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../src/commands/stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mesh temporal — inspect Temporal workflows for the current app/stack.
|
|
3
|
+
*
|
|
4
|
+
* Commands:
|
|
5
|
+
* mesh temporal describe <workflowId> [runId] Show workflow status and metadata
|
|
6
|
+
* mesh temporal history <workflowId> [runId] Show workflow event history
|
|
7
|
+
*
|
|
8
|
+
* Connection info is resolved from the app's Pulumi stack output (same as mesh dev).
|
|
9
|
+
* Uses the raw gRPC API so we can render events without a codec proxy; when
|
|
10
|
+
* `--show-payloads` is set we resolve the app's `TEMPORAL_ENCODING_KEY` from
|
|
11
|
+
* its Kubernetes secret and decrypt inline via the shared codec helper.
|
|
12
|
+
*/
|
|
13
|
+
import { Command } from "commander";
|
|
14
|
+
export declare function registerTemporalCommands(program: Command): void;
|
|
15
|
+
//# sourceMappingURL=temporal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal.d.ts","sourceRoot":"","sources":["../../../src/commands/temporal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA81BpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsG/D"}
|