@mesh-tech/mesh-cli 0.20.2 → 0.20.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/mesh.d.ts +0 -12
- package/dist/bin/mesh.js +12 -12
- package/dist/bin/mesh.js.map +0 -1
- package/dist/build-info.json +2 -2
- package/dist/src/commands/agent-api-client.d.ts +0 -70
- package/dist/src/commands/agent-api-client.js +0 -80
- package/dist/src/commands/app-check.d.ts +0 -56
- package/dist/src/commands/app-check.js +0 -72
- package/dist/src/commands/artifacts.d.ts +0 -11
- package/dist/src/commands/artifacts.js +0 -33
- package/dist/src/commands/cluster.d.ts +0 -39
- package/dist/src/commands/cluster.js +0 -73
- package/dist/src/commands/conversations.d.ts +0 -36
- package/dist/src/commands/conversations.js +0 -59
- package/dist/src/commands/create-app.d.ts +0 -98
- package/dist/src/commands/create-app.js +1 -163
- package/dist/src/commands/db/connect.d.ts +0 -7
- package/dist/src/commands/db/connect.js +0 -9
- package/dist/src/commands/db/credentials.d.ts +0 -7
- package/dist/src/commands/db/credentials.js +0 -10
- package/dist/src/commands/db/env.d.ts +0 -6
- package/dist/src/commands/db/env.js +0 -14
- package/dist/src/commands/db/exec.d.ts +0 -43
- package/dist/src/commands/db/exec.js +0 -69
- package/dist/src/commands/db/index.d.ts +0 -10
- package/dist/src/commands/db/index.js +0 -10
- package/dist/src/commands/db/psql.d.ts +0 -7
- package/dist/src/commands/db/psql.js +0 -18
- package/dist/src/commands/deploy.d.ts +0 -38
- package/dist/src/commands/deploy.js +1 -76
- package/dist/src/commands/dev-doctor.d.ts +0 -82
- package/dist/src/commands/dev-doctor.js +3 -132
- package/dist/src/commands/dev-launch.d.ts +0 -52
- package/dist/src/commands/dev-launch.js +0 -56
- package/dist/src/commands/dev-token-server.d.ts +0 -18
- package/dist/src/commands/dev-token-server.js +1 -24
- package/dist/src/commands/dev.d.ts +0 -246
- package/dist/src/commands/dev.js +5 -963
- package/dist/src/commands/docs.d.ts +0 -1
- package/dist/src/commands/docs.js +0 -12
- package/dist/src/commands/hub/index.d.ts +0 -60
- package/dist/src/commands/hub/index.js +2 -139
- package/dist/src/commands/init/wizard.d.ts +0 -128
- package/dist/src/commands/init/wizard.js +0 -109
- package/dist/src/commands/init.d.ts +0 -55
- package/dist/src/commands/init.js +0 -70
- package/dist/src/commands/install-shim.d.ts +0 -23
- package/dist/src/commands/install-shim.js +2 -29
- package/dist/src/commands/local/auth-provision.d.ts +0 -80
- package/dist/src/commands/local/auth-provision.js +0 -109
- package/dist/src/commands/local/dev-local.d.ts +0 -91
- package/dist/src/commands/local/dev-local.js +0 -147
- package/dist/src/commands/local/docker-runner.d.ts +0 -22
- package/dist/src/commands/local/docker-runner.js +2 -35
- package/dist/src/commands/local/helpers.d.ts +0 -14
- package/dist/src/commands/local/helpers.js +0 -13
- package/dist/src/commands/local/hub-local.d.ts +0 -96
- package/dist/src/commands/local/hub-local.js +0 -111
- package/dist/src/commands/local/index.d.ts +0 -14
- package/dist/src/commands/local/index.js +0 -86
- package/dist/src/commands/local/mocks.d.ts +0 -269
- package/dist/src/commands/local/mocks.js +1 -274
- package/dist/src/commands/local/seed-hub-catalog.d.ts +0 -25
- package/dist/src/commands/local/seed-hub-catalog.js +0 -41
- package/dist/src/commands/local/seed-zitadel.d.ts +0 -82
- package/dist/src/commands/local/seed-zitadel.js +0 -158
- package/dist/src/commands/local/seed.d.ts +0 -64
- package/dist/src/commands/local/seed.js +0 -78
- package/dist/src/commands/local/stack.d.ts +0 -141
- package/dist/src/commands/local/stack.js +0 -153
- package/dist/src/commands/login.d.ts +0 -265
- package/dist/src/commands/login.js +4 -418
- package/dist/src/commands/peer-addressing.d.ts +0 -39
- package/dist/src/commands/peer-addressing.js +0 -37
- package/dist/src/commands/port-ownership.d.ts +0 -44
- package/dist/src/commands/port-ownership.js +0 -47
- package/dist/src/commands/registry-publish.d.ts +0 -1
- package/dist/src/commands/registry-publish.js +0 -46
- package/dist/src/commands/registry.d.ts +4 -237
- package/dist/src/commands/registry.js +2 -316
- package/dist/src/commands/secrets/exec.d.ts +0 -16
- package/dist/src/commands/secrets/exec.js +0 -24
- package/dist/src/commands/secrets/index.d.ts +0 -9
- package/dist/src/commands/secrets/index.js +0 -10
- package/dist/src/commands/secrets/migrate-config.d.ts +0 -17
- package/dist/src/commands/secrets/migrate-config.js +0 -40
- package/dist/src/commands/secrets/reindex.d.ts +0 -38
- package/dist/src/commands/secrets/reindex.js +0 -39
- package/dist/src/commands/secrets/set.d.ts +0 -47
- package/dist/src/commands/secrets/set.js +0 -107
- package/dist/src/commands/site.d.ts +0 -1
- package/dist/src/commands/site.js +0 -61
- package/dist/src/commands/skills.d.ts +0 -61
- package/dist/src/commands/skills.js +0 -83
- package/dist/src/commands/stack.d.ts +0 -15
- package/dist/src/commands/stack.js +1 -128
- package/dist/src/commands/temporal.d.ts +0 -30
- package/dist/src/commands/temporal.js.map +0 -1
- package/dist/src/commands/tenant.d.ts +0 -31
- package/dist/src/commands/tenant.js +0 -55
- package/dist/src/commands/tunnel/index.d.ts +0 -40
- package/dist/src/commands/tunnel/index.js +0 -141
- package/dist/src/commands/vcs/clone.d.ts +0 -1
- package/dist/src/commands/vcs/clone.js +0 -4
- package/dist/src/commands/vcs/common.d.ts +0 -32
- package/dist/src/commands/vcs/common.js +0 -41
- package/dist/src/commands/vcs/drafts.d.ts +0 -1
- package/dist/src/commands/vcs/drafts.js +0 -1
- package/dist/src/commands/vcs/get.d.ts +0 -1
- package/dist/src/commands/vcs/get.js +0 -11
- package/dist/src/commands/vcs/index.d.ts +0 -1
- package/dist/src/commands/vcs/index.js +0 -1
- package/dist/src/commands/vcs/propose.d.ts +0 -26
- package/dist/src/commands/vcs/propose.js +3 -34
- package/dist/src/commands/vcs/review.d.ts +0 -1
- package/dist/src/commands/vcs/review.js +0 -1
- package/dist/src/commands/vcs/rm.d.ts +0 -11
- package/dist/src/commands/vcs/rm.js +0 -14
- package/dist/src/commands/vcs-enrich.d.ts +0 -12
- package/dist/src/commands/vcs-enrich.js +0 -12
- package/dist/src/commands/vpn/index.d.ts +0 -17
- package/dist/src/commands/vpn/index.js +0 -102
- package/dist/src/commands/vpn/tunnel.d.ts +0 -9
- package/dist/src/commands/vpn/tunnel.js +0 -37
- package/dist/src/commands/workflow.d.ts +0 -22
- package/dist/src/commands/workflow.js +0 -80
- package/dist/src/docs/assemble.d.ts +0 -117
- package/dist/src/docs/assemble.js +0 -142
- package/dist/src/docs/cli-reference.d.ts +0 -58
- package/dist/src/docs/cli-reference.js +0 -77
- package/dist/src/docs/discover.d.ts +0 -40
- package/dist/src/docs/discover.js +2 -60
- package/dist/src/docs/portal.d.ts +0 -44
- package/dist/src/docs/portal.js +0 -49
- package/dist/src/docs/registry-docs.d.ts +0 -29
- package/dist/src/docs/registry-docs.js +0 -40
- package/dist/src/docs/schema.d.ts +0 -36
- package/dist/src/docs/schema.js +0 -52
- package/dist/src/docs/serve.d.ts +0 -18
- package/dist/src/docs/serve.js +2 -30
- package/dist/src/docs/start.d.ts +0 -42
- package/dist/src/docs/start.js +0 -70
- package/dist/src/eval/agent-eval.d.mts +0 -12
- package/dist/src/eval/agent-eval.mjs +0 -22
- package/dist/src/index.d.ts +0 -6
- package/dist/src/index.js.map +0 -1
- package/dist/src/program.d.ts +0 -20
- package/dist/src/program.js +0 -24
- package/dist/src/utils/auth-preflight.d.ts +0 -137
- package/dist/src/utils/auth-preflight.js +0 -149
- package/dist/src/utils/aws-auth.d.ts +0 -163
- package/dist/src/utils/aws-auth.js +3 -232
- package/dist/src/utils/bastion.d.ts +0 -27
- package/dist/src/utils/bastion.js +0 -28
- package/dist/src/utils/build-info.d.ts +0 -22
- package/dist/src/utils/build-info.js +0 -27
- package/dist/src/utils/cache-home.d.ts +0 -23
- package/dist/src/utils/cache-home.js +0 -25
- package/dist/src/utils/capture-history.d.ts +0 -54
- package/dist/src/utils/capture-history.js +1 -55
- package/dist/src/utils/context.d.ts +0 -23
- package/dist/src/utils/context.js +0 -43
- package/dist/src/utils/credentials.d.ts +0 -38
- package/dist/src/utils/credentials.js +0 -39
- package/dist/src/utils/deploy-preflight.d.ts +0 -38
- package/dist/src/utils/deploy-preflight.js +1 -71
- package/dist/src/utils/errors.d.ts +0 -53
- package/dist/src/utils/errors.js +0 -49
- package/dist/src/utils/first-party-contexts.d.ts +0 -38
- package/dist/src/utils/first-party-contexts.js +0 -44
- package/dist/src/utils/index.d.ts +0 -4
- package/dist/src/utils/index.js +0 -4
- package/dist/src/utils/kubeconfig.d.ts +0 -40
- package/dist/src/utils/kubeconfig.js +0 -44
- package/dist/src/utils/log.d.ts +0 -20
- package/dist/src/utils/log.js +0 -20
- package/dist/src/utils/mesh-json.d.ts +0 -46
- package/dist/src/utils/mesh-json.js +0 -39
- package/dist/src/utils/pid.d.ts +0 -42
- package/dist/src/utils/pid.js +0 -48
- package/dist/src/utils/pulumi-run.d.ts +0 -14
- package/dist/src/utils/pulumi-run.js +0 -42
- package/dist/src/utils/pulumi.d.ts +0 -34
- package/dist/src/utils/pulumi.js +0 -38
- package/dist/src/utils/reachability.d.ts +0 -27
- package/dist/src/utils/reachability.js +0 -40
- package/dist/src/utils/recover-conversation.d.ts +0 -110
- package/dist/src/utils/recover-conversation.js +0 -108
- package/dist/src/utils/registry-broker.d.ts +5 -84
- package/dist/src/utils/registry-broker.js +0 -62
- package/dist/src/utils/registry-identity.d.ts +0 -149
- package/dist/src/utils/registry-identity.js +0 -143
- package/dist/src/utils/scaffold-versions.d.ts +0 -41
- package/dist/src/utils/scaffold-versions.js +0 -42
- package/dist/src/utils/socks-forward.d.ts +0 -24
- package/dist/src/utils/socks-forward.js +2 -25
- package/dist/src/utils/stack-flag.d.ts +0 -13
- package/dist/src/utils/stack-flag.js +0 -21
- package/dist/src/utils/tailscale-targets.d.ts +0 -37
- package/dist/src/utils/tailscale-targets.js +0 -33
- package/dist/src/utils/tailscale.d.ts +0 -177
- package/dist/src/utils/tailscale.js +6 -337
- package/dist/src/utils/temporal-auth.d.ts +0 -41
- package/dist/src/utils/temporal-auth.js +0 -52
- package/dist/src/utils/temporal-codec.d.ts +0 -89
- package/dist/src/utils/temporal-codec.js.map +0 -1
- package/dist/src/utils/tunnel-ownership.d.ts +0 -79
- package/dist/src/utils/tunnel-ownership.js +0 -74
- package/dist/src/utils/vpn-join.d.ts +0 -16
- package/dist/src/utils/vpn-join.js +0 -17
- package/dist/src/utils/vpn.d.ts +0 -42
- package/dist/src/utils/vpn.js +0 -52
- package/dist/src/utils/workflow-fingerprint.d.ts +0 -39
- package/dist/src/utils/workflow-fingerprint.js +1 -63
- package/dist/src/utils/worktree-identity.d.ts +0 -62
- package/dist/src/utils/worktree-identity.js +0 -88
- package/package.json +1 -1
- package/skills/core/SKILL.md +9 -10
- package/templates/api-auth/api/src/index.ts.hbs +1 -1
- package/templates/api-auth/api/src/spicedb-http-provider.ts.hbs +2 -2
- package/templates/api-role-gating/api/src/authn.ts.hbs +2 -2
- package/templates/api-role-gating/index.ts.hbs +1 -1
- package/templates/api-role-gating/skills/develop/SKILL.md.hbs +1 -1
- package/templates/platform-repo/core/Pulumi.{{tenant}}-{{env}}.yaml.hbs +2 -2
- package/templates/platform-repo/platform/index.ts +1 -1
- package/dist/bin/mesh.d.ts.map +0 -1
- package/dist/src/commands/agent-api-client.d.ts.map +0 -1
- package/dist/src/commands/agent-api-client.js.map +0 -1
- package/dist/src/commands/app-check.d.ts.map +0 -1
- package/dist/src/commands/app-check.js.map +0 -1
- package/dist/src/commands/artifacts.d.ts.map +0 -1
- package/dist/src/commands/artifacts.js.map +0 -1
- package/dist/src/commands/cluster.d.ts.map +0 -1
- package/dist/src/commands/cluster.js.map +0 -1
- package/dist/src/commands/conversations.d.ts.map +0 -1
- package/dist/src/commands/conversations.js.map +0 -1
- package/dist/src/commands/create-app.d.ts.map +0 -1
- package/dist/src/commands/create-app.js.map +0 -1
- package/dist/src/commands/db/connect.d.ts.map +0 -1
- package/dist/src/commands/db/connect.js.map +0 -1
- package/dist/src/commands/db/credentials.d.ts.map +0 -1
- package/dist/src/commands/db/credentials.js.map +0 -1
- package/dist/src/commands/db/env.d.ts.map +0 -1
- package/dist/src/commands/db/env.js.map +0 -1
- package/dist/src/commands/db/exec.d.ts.map +0 -1
- package/dist/src/commands/db/exec.js.map +0 -1
- package/dist/src/commands/db/index.d.ts.map +0 -1
- package/dist/src/commands/db/index.js.map +0 -1
- package/dist/src/commands/db/psql.d.ts.map +0 -1
- package/dist/src/commands/db/psql.js.map +0 -1
- package/dist/src/commands/deploy.d.ts.map +0 -1
- package/dist/src/commands/deploy.js.map +0 -1
- package/dist/src/commands/dev-doctor.d.ts.map +0 -1
- package/dist/src/commands/dev-doctor.js.map +0 -1
- package/dist/src/commands/dev-launch.d.ts.map +0 -1
- package/dist/src/commands/dev-launch.js.map +0 -1
- package/dist/src/commands/dev-token-server.d.ts.map +0 -1
- package/dist/src/commands/dev-token-server.js.map +0 -1
- package/dist/src/commands/dev.d.ts.map +0 -1
- package/dist/src/commands/dev.js.map +0 -1
- package/dist/src/commands/docs.d.ts.map +0 -1
- package/dist/src/commands/docs.js.map +0 -1
- package/dist/src/commands/hub/index.d.ts.map +0 -1
- package/dist/src/commands/hub/index.js.map +0 -1
- package/dist/src/commands/init/wizard.d.ts.map +0 -1
- package/dist/src/commands/init/wizard.js.map +0 -1
- package/dist/src/commands/init.d.ts.map +0 -1
- package/dist/src/commands/init.js.map +0 -1
- package/dist/src/commands/install-shim.d.ts.map +0 -1
- package/dist/src/commands/install-shim.js.map +0 -1
- package/dist/src/commands/local/auth-provision.d.ts.map +0 -1
- package/dist/src/commands/local/auth-provision.js.map +0 -1
- package/dist/src/commands/local/dev-local.d.ts.map +0 -1
- package/dist/src/commands/local/dev-local.js.map +0 -1
- package/dist/src/commands/local/docker-runner.d.ts.map +0 -1
- package/dist/src/commands/local/docker-runner.js.map +0 -1
- package/dist/src/commands/local/helpers.d.ts.map +0 -1
- package/dist/src/commands/local/helpers.js.map +0 -1
- package/dist/src/commands/local/hub-local.d.ts.map +0 -1
- package/dist/src/commands/local/hub-local.js.map +0 -1
- package/dist/src/commands/local/index.d.ts.map +0 -1
- package/dist/src/commands/local/index.js.map +0 -1
- package/dist/src/commands/local/mocks.d.ts.map +0 -1
- package/dist/src/commands/local/mocks.js.map +0 -1
- package/dist/src/commands/local/seed-hub-catalog.d.ts.map +0 -1
- package/dist/src/commands/local/seed-hub-catalog.js.map +0 -1
- package/dist/src/commands/local/seed-zitadel.d.ts.map +0 -1
- package/dist/src/commands/local/seed-zitadel.js.map +0 -1
- package/dist/src/commands/local/seed.d.ts.map +0 -1
- package/dist/src/commands/local/seed.js.map +0 -1
- package/dist/src/commands/local/stack.d.ts.map +0 -1
- package/dist/src/commands/local/stack.js.map +0 -1
- package/dist/src/commands/login.d.ts.map +0 -1
- package/dist/src/commands/login.js.map +0 -1
- package/dist/src/commands/peer-addressing.d.ts.map +0 -1
- package/dist/src/commands/peer-addressing.js.map +0 -1
- package/dist/src/commands/port-ownership.d.ts.map +0 -1
- package/dist/src/commands/port-ownership.js.map +0 -1
- package/dist/src/commands/registry-publish.d.ts.map +0 -1
- package/dist/src/commands/registry-publish.js.map +0 -1
- package/dist/src/commands/registry.d.ts.map +0 -1
- package/dist/src/commands/registry.js.map +0 -1
- package/dist/src/commands/secrets/exec.d.ts.map +0 -1
- package/dist/src/commands/secrets/exec.js.map +0 -1
- package/dist/src/commands/secrets/index.d.ts.map +0 -1
- package/dist/src/commands/secrets/index.js.map +0 -1
- package/dist/src/commands/secrets/migrate-config.d.ts.map +0 -1
- package/dist/src/commands/secrets/migrate-config.js.map +0 -1
- package/dist/src/commands/secrets/reindex.d.ts.map +0 -1
- package/dist/src/commands/secrets/reindex.js.map +0 -1
- package/dist/src/commands/secrets/set.d.ts.map +0 -1
- package/dist/src/commands/secrets/set.js.map +0 -1
- package/dist/src/commands/site.d.ts.map +0 -1
- package/dist/src/commands/site.js.map +0 -1
- package/dist/src/commands/skills.d.ts.map +0 -1
- package/dist/src/commands/skills.js.map +0 -1
- package/dist/src/commands/stack.d.ts.map +0 -1
- package/dist/src/commands/stack.js.map +0 -1
- package/dist/src/commands/temporal.d.ts.map +0 -1
- package/dist/src/commands/tenant.d.ts.map +0 -1
- package/dist/src/commands/tenant.js.map +0 -1
- package/dist/src/commands/tunnel/index.d.ts.map +0 -1
- package/dist/src/commands/tunnel/index.js.map +0 -1
- package/dist/src/commands/vcs/clone.d.ts.map +0 -1
- package/dist/src/commands/vcs/clone.js.map +0 -1
- package/dist/src/commands/vcs/common.d.ts.map +0 -1
- package/dist/src/commands/vcs/common.js.map +0 -1
- package/dist/src/commands/vcs/drafts.d.ts.map +0 -1
- package/dist/src/commands/vcs/drafts.js.map +0 -1
- package/dist/src/commands/vcs/get.d.ts.map +0 -1
- package/dist/src/commands/vcs/get.js.map +0 -1
- package/dist/src/commands/vcs/index.d.ts.map +0 -1
- package/dist/src/commands/vcs/index.js.map +0 -1
- package/dist/src/commands/vcs/propose.d.ts.map +0 -1
- package/dist/src/commands/vcs/propose.js.map +0 -1
- package/dist/src/commands/vcs/review.d.ts.map +0 -1
- package/dist/src/commands/vcs/review.js.map +0 -1
- package/dist/src/commands/vcs/rm.d.ts.map +0 -1
- package/dist/src/commands/vcs/rm.js.map +0 -1
- package/dist/src/commands/vcs-enrich.d.ts.map +0 -1
- package/dist/src/commands/vcs-enrich.js.map +0 -1
- package/dist/src/commands/vpn/index.d.ts.map +0 -1
- package/dist/src/commands/vpn/index.js.map +0 -1
- package/dist/src/commands/vpn/tunnel.d.ts.map +0 -1
- package/dist/src/commands/vpn/tunnel.js.map +0 -1
- package/dist/src/commands/workflow.d.ts.map +0 -1
- package/dist/src/commands/workflow.js.map +0 -1
- package/dist/src/docs/assemble.d.ts.map +0 -1
- package/dist/src/docs/assemble.js.map +0 -1
- package/dist/src/docs/cli-reference.d.ts.map +0 -1
- package/dist/src/docs/cli-reference.js.map +0 -1
- package/dist/src/docs/discover.d.ts.map +0 -1
- package/dist/src/docs/discover.js.map +0 -1
- package/dist/src/docs/portal.d.ts.map +0 -1
- package/dist/src/docs/portal.js.map +0 -1
- package/dist/src/docs/registry-docs.d.ts.map +0 -1
- package/dist/src/docs/registry-docs.js.map +0 -1
- package/dist/src/docs/schema.d.ts.map +0 -1
- package/dist/src/docs/schema.js.map +0 -1
- package/dist/src/docs/serve.d.ts.map +0 -1
- package/dist/src/docs/serve.js.map +0 -1
- package/dist/src/docs/start.d.ts.map +0 -1
- package/dist/src/docs/start.js.map +0 -1
- package/dist/src/eval/agent-eval.d.mts.map +0 -1
- package/dist/src/eval/agent-eval.mjs.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/program.d.ts.map +0 -1
- package/dist/src/program.js.map +0 -1
- package/dist/src/utils/auth-preflight.d.ts.map +0 -1
- package/dist/src/utils/auth-preflight.js.map +0 -1
- package/dist/src/utils/aws-auth.d.ts.map +0 -1
- package/dist/src/utils/aws-auth.js.map +0 -1
- package/dist/src/utils/bastion.d.ts.map +0 -1
- package/dist/src/utils/bastion.js.map +0 -1
- package/dist/src/utils/build-info.d.ts.map +0 -1
- package/dist/src/utils/build-info.js.map +0 -1
- package/dist/src/utils/cache-home.d.ts.map +0 -1
- package/dist/src/utils/cache-home.js.map +0 -1
- package/dist/src/utils/capture-history.d.ts.map +0 -1
- package/dist/src/utils/capture-history.js.map +0 -1
- package/dist/src/utils/context.d.ts.map +0 -1
- package/dist/src/utils/context.js.map +0 -1
- package/dist/src/utils/credentials.d.ts.map +0 -1
- package/dist/src/utils/credentials.js.map +0 -1
- package/dist/src/utils/deploy-preflight.d.ts.map +0 -1
- package/dist/src/utils/deploy-preflight.js.map +0 -1
- package/dist/src/utils/errors.d.ts.map +0 -1
- package/dist/src/utils/errors.js.map +0 -1
- package/dist/src/utils/first-party-contexts.d.ts.map +0 -1
- package/dist/src/utils/first-party-contexts.js.map +0 -1
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/kubeconfig.d.ts.map +0 -1
- package/dist/src/utils/kubeconfig.js.map +0 -1
- package/dist/src/utils/log.d.ts.map +0 -1
- package/dist/src/utils/log.js.map +0 -1
- package/dist/src/utils/mesh-json.d.ts.map +0 -1
- package/dist/src/utils/mesh-json.js.map +0 -1
- package/dist/src/utils/pid.d.ts.map +0 -1
- package/dist/src/utils/pid.js.map +0 -1
- package/dist/src/utils/pulumi-run.d.ts.map +0 -1
- package/dist/src/utils/pulumi-run.js.map +0 -1
- package/dist/src/utils/pulumi.d.ts.map +0 -1
- package/dist/src/utils/pulumi.js.map +0 -1
- package/dist/src/utils/reachability.d.ts.map +0 -1
- package/dist/src/utils/reachability.js.map +0 -1
- package/dist/src/utils/recover-conversation.d.ts.map +0 -1
- package/dist/src/utils/recover-conversation.js.map +0 -1
- package/dist/src/utils/registry-broker.d.ts.map +0 -1
- package/dist/src/utils/registry-broker.js.map +0 -1
- package/dist/src/utils/registry-identity.d.ts.map +0 -1
- package/dist/src/utils/registry-identity.js.map +0 -1
- package/dist/src/utils/scaffold-versions.d.ts.map +0 -1
- package/dist/src/utils/scaffold-versions.js.map +0 -1
- package/dist/src/utils/socks-forward.d.ts.map +0 -1
- package/dist/src/utils/socks-forward.js.map +0 -1
- package/dist/src/utils/stack-flag.d.ts.map +0 -1
- package/dist/src/utils/stack-flag.js.map +0 -1
- package/dist/src/utils/tailscale-targets.d.ts.map +0 -1
- package/dist/src/utils/tailscale-targets.js.map +0 -1
- package/dist/src/utils/tailscale.d.ts.map +0 -1
- package/dist/src/utils/tailscale.js.map +0 -1
- package/dist/src/utils/temporal-auth.d.ts.map +0 -1
- package/dist/src/utils/temporal-auth.js.map +0 -1
- package/dist/src/utils/temporal-codec.d.ts.map +0 -1
- package/dist/src/utils/tunnel-ownership.d.ts.map +0 -1
- package/dist/src/utils/tunnel-ownership.js.map +0 -1
- package/dist/src/utils/vpn-join.d.ts.map +0 -1
- package/dist/src/utils/vpn-join.js.map +0 -1
- package/dist/src/utils/vpn.d.ts.map +0 -1
- package/dist/src/utils/vpn.js.map +0 -1
- package/dist/src/utils/workflow-fingerprint.d.ts.map +0 -1
- package/dist/src/utils/workflow-fingerprint.js.map +0 -1
- package/dist/src/utils/worktree-identity.d.ts.map +0 -1
- package/dist/src/utils/worktree-identity.js.map +0 -1
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* mesh stack — Manage personal Pulumi stacks.
|
|
3
|
-
*
|
|
4
|
-
* mesh stack init Create a personal dev stack (dev-{github-user})
|
|
5
|
-
* mesh stack init --from uat Base on a different stack
|
|
6
|
-
*
|
|
7
|
-
* Creates Pulumi.<stack>.yaml with:
|
|
8
|
-
* - mesh:deploy: false (skip K8s deployments — dev-only stack)
|
|
9
|
-
* - mesh:deployerRole copied from the base stack
|
|
10
|
-
* - aws:region copied from the base stack
|
|
11
|
-
*/
|
|
12
1
|
import { execFileSync } from "child_process";
|
|
13
2
|
import * as path from "path";
|
|
14
3
|
import * as fs from "fs";
|
|
@@ -17,29 +6,17 @@ import { logError, logInfo, logSuccess, logWarn } from "../utils/log.js";
|
|
|
17
6
|
import { findAppRoot, findStackConfigs, getCurrentStack, readStackConfig } from "../utils/pulumi.js";
|
|
18
7
|
import { resolveWorktreeIdentity, worktreeStackName } from "../utils/worktree-identity.js";
|
|
19
8
|
import { resolvePulumiEnv } from "../utils/pulumi-run.js";
|
|
20
|
-
// =============================================================================
|
|
21
|
-
// Helpers
|
|
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
9
|
function readTopLevelYamlKey(appRoot, stack, key) {
|
|
28
10
|
const configFile = path.join(appRoot, `Pulumi.${stack}.yaml`);
|
|
29
11
|
if (!fs.existsSync(configFile))
|
|
30
12
|
return null;
|
|
31
13
|
const content = fs.readFileSync(configFile, "utf-8");
|
|
32
|
-
// Match top-level key (no leading whitespace, unlike config values which are indented)
|
|
33
14
|
const pattern = new RegExp(`^${key}:\\s*(.+)$`, "m");
|
|
34
15
|
const match = content.match(pattern);
|
|
35
16
|
if (!match)
|
|
36
17
|
return null;
|
|
37
18
|
return match[1].trim().replace(/^["']|["']$/g, "");
|
|
38
19
|
}
|
|
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
20
|
function readConfigBlockKey(appRoot, stack, key) {
|
|
44
21
|
const configFile = path.join(appRoot, `Pulumi.${stack}.yaml`);
|
|
45
22
|
if (!fs.existsSync(configFile))
|
|
@@ -51,19 +28,7 @@ function readConfigBlockKey(appRoot, stack, key) {
|
|
|
51
28
|
return null;
|
|
52
29
|
return match[1].trim().replace(/^["']|["']$/g, "");
|
|
53
30
|
}
|
|
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
31
|
async function checkParentZoneDelegation(parentZone, awsEnv) {
|
|
66
|
-
// What the internet sees
|
|
67
32
|
let publicNs = [];
|
|
68
33
|
try {
|
|
69
34
|
const { Resolver } = await import("node:dns/promises");
|
|
@@ -72,10 +37,7 @@ async function checkParentZoneDelegation(parentZone, awsEnv) {
|
|
|
72
37
|
publicNs = (await resolver.resolveNs(parentZone)).map((n) => n.replace(/\.$/, "").toLowerCase());
|
|
73
38
|
}
|
|
74
39
|
catch {
|
|
75
|
-
// NXDOMAIN / no NS — treated as "no public delegation"
|
|
76
40
|
}
|
|
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
41
|
let zoneNs = [];
|
|
80
42
|
try {
|
|
81
43
|
const { Route53Client, ListHostedZonesByNameCommand, GetHostedZoneCommand } = await import("@aws-sdk/client-route-53");
|
|
@@ -100,7 +62,6 @@ async function checkParentZoneDelegation(parentZone, awsEnv) {
|
|
|
100
62
|
}
|
|
101
63
|
}
|
|
102
64
|
catch {
|
|
103
|
-
/* creds unavailable or lookup failed — fall through with what we have */
|
|
104
65
|
}
|
|
105
66
|
if (publicNs.length === 0) {
|
|
106
67
|
const records = zoneNs.length > 0
|
|
@@ -121,13 +82,6 @@ async function checkParentZoneDelegation(parentZone, awsEnv) {
|
|
|
121
82
|
logSuccess(`Parent zone delegation OK: ${parentZone} resolves publicly.`);
|
|
122
83
|
}
|
|
123
84
|
}
|
|
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
85
|
function readBaseConfigFromYaml(appRoot, stack) {
|
|
132
86
|
const file = path.join(appRoot, `Pulumi.${stack}.yaml`);
|
|
133
87
|
if (!fs.existsSync(file))
|
|
@@ -149,11 +103,7 @@ function readBaseConfigFromYaml(appRoot, stack) {
|
|
|
149
103
|
}
|
|
150
104
|
return out;
|
|
151
105
|
}
|
|
152
|
-
/**
|
|
153
|
-
* Get GitHub username from gh CLI, falling back to git config.
|
|
154
|
-
*/
|
|
155
106
|
function getGitHubUsername() {
|
|
156
|
-
// Try gh CLI first
|
|
157
107
|
try {
|
|
158
108
|
const result = execFileSync("gh", ["api", "user", "--jq", ".login"], {
|
|
159
109
|
encoding: "utf-8",
|
|
@@ -164,15 +114,12 @@ function getGitHubUsername() {
|
|
|
164
114
|
return login;
|
|
165
115
|
}
|
|
166
116
|
catch { }
|
|
167
|
-
// Fallback: git config
|
|
168
117
|
try {
|
|
169
118
|
const result = execFileSync("git", ["config", "user.email"], {
|
|
170
119
|
encoding: "utf-8",
|
|
171
120
|
stdio: ["pipe", "pipe", "pipe"],
|
|
172
121
|
});
|
|
173
122
|
const email = result.trim();
|
|
174
|
-
// Extract username from GitHub email patterns
|
|
175
|
-
// e.g., user@users.noreply.github.com or user@example.com
|
|
176
123
|
const match = email.match(/^(\d+\+)?([^@]+)@/);
|
|
177
124
|
if (match)
|
|
178
125
|
return match[2];
|
|
@@ -180,12 +127,6 @@ function getGitHubUsername() {
|
|
|
180
127
|
catch { }
|
|
181
128
|
return null;
|
|
182
129
|
}
|
|
183
|
-
/**
|
|
184
|
-
* Find Pulumi.<stack>.yaml files in the app root.
|
|
185
|
-
*/
|
|
186
|
-
// =============================================================================
|
|
187
|
-
// Command
|
|
188
|
-
// =============================================================================
|
|
189
130
|
export function registerStackCommand(program) {
|
|
190
131
|
const stack = program
|
|
191
132
|
.command("stack")
|
|
@@ -198,21 +139,19 @@ export function registerStackCommand(program) {
|
|
|
198
139
|
.option("--adopt", "resume an EXISTING stack with this name (skips the availability check)", false)
|
|
199
140
|
.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
141
|
.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
|
|
142
|
+
.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.<env>.<parentZone>), so personal stacks never collide on DNS")
|
|
202
143
|
.action(async (opts) => {
|
|
203
144
|
const appRoot = findAppRoot(process.cwd());
|
|
204
145
|
if (!appRoot) {
|
|
205
146
|
logError("No Pulumi.yaml found. Run from within a Pulumi app directory.");
|
|
206
147
|
process.exit(1);
|
|
207
148
|
}
|
|
208
|
-
// Get GitHub username
|
|
209
149
|
const username = getGitHubUsername();
|
|
210
150
|
if (!username) {
|
|
211
151
|
logError("Could not determine GitHub username.\n" +
|
|
212
152
|
"Install gh CLI (https://cli.github.com) and run: gh auth login");
|
|
213
153
|
process.exit(1);
|
|
214
154
|
}
|
|
215
|
-
// Determine base stack
|
|
216
155
|
let baseStack = opts.from;
|
|
217
156
|
if (!baseStack) {
|
|
218
157
|
const stacks = findStackConfigs(appRoot);
|
|
@@ -232,22 +171,11 @@ export function registerStackCommand(program) {
|
|
|
232
171
|
process.exit(1);
|
|
233
172
|
}
|
|
234
173
|
}
|
|
235
|
-
// Verify base config exists
|
|
236
174
|
const baseConfigPath = `${appRoot}/Pulumi.${baseStack}.yaml`;
|
|
237
175
|
if (!fs.existsSync(baseConfigPath)) {
|
|
238
176
|
logError(`Stack config not found: Pulumi.${baseStack}.yaml`);
|
|
239
177
|
process.exit(1);
|
|
240
178
|
}
|
|
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
179
|
const baseTenant = readConfigBlockKey(appRoot, baseStack, "mesh:tenant");
|
|
252
180
|
if (opts.platform && !baseTenant) {
|
|
253
181
|
logError(`--platform: could not read mesh:tenant from Pulumi.${baseStack}.yaml — is this a platform program?`);
|
|
@@ -268,24 +196,10 @@ export function registerStackCommand(program) {
|
|
|
268
196
|
}
|
|
269
197
|
const newConfigPath = path.join(appRoot, `Pulumi.${newStack}.yaml`);
|
|
270
198
|
const configExists = fs.existsSync(newConfigPath);
|
|
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
199
|
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
200
|
const credEnv = await resolvePulumiEnv({ appRoot, stack: baseStack });
|
|
282
201
|
const pulumiEnv = { ...process.env, ...credEnv };
|
|
283
202
|
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
203
|
if (!opts.adopt) {
|
|
290
204
|
let existing = [];
|
|
291
205
|
try {
|
|
@@ -298,7 +212,6 @@ export function registerStackCommand(program) {
|
|
|
298
212
|
existing = JSON.parse(raw).map((s) => s.name);
|
|
299
213
|
}
|
|
300
214
|
catch {
|
|
301
|
-
// Backend unreachable — pulumi stack init below gives the real error.
|
|
302
215
|
}
|
|
303
216
|
if (existing.includes(newStack) || configExists) {
|
|
304
217
|
logError(`Personal stack name '${newStack}' is not available` +
|
|
@@ -309,7 +222,6 @@ export function registerStackCommand(program) {
|
|
|
309
222
|
process.exit(1);
|
|
310
223
|
}
|
|
311
224
|
}
|
|
312
|
-
// Initialize the Pulumi stack
|
|
313
225
|
const initArgs = ["stack", "init", newStack];
|
|
314
226
|
if (secretsProvider) {
|
|
315
227
|
initArgs.push("--secrets-provider", secretsProvider);
|
|
@@ -335,7 +247,6 @@ export function registerStackCommand(program) {
|
|
|
335
247
|
process.exit(err.status ?? 1);
|
|
336
248
|
}
|
|
337
249
|
}
|
|
338
|
-
// Select the new stack
|
|
339
250
|
try {
|
|
340
251
|
execFileSync("pulumi", ["stack", "select", newStack], {
|
|
341
252
|
cwd: appRoot,
|
|
@@ -344,32 +255,24 @@ export function registerStackCommand(program) {
|
|
|
344
255
|
});
|
|
345
256
|
}
|
|
346
257
|
catch { }
|
|
347
|
-
// Copy config from base stack + add mesh:deploy false
|
|
348
258
|
if (!configExists) {
|
|
349
|
-
// Read base stack config as JSON
|
|
350
259
|
let baseConfig = {};
|
|
351
260
|
try {
|
|
352
261
|
const raw = execFileSync("pulumi", ["config", "--json", "--stack", baseStack], { cwd: appRoot, env: pulumiEnv, encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
|
|
353
262
|
baseConfig = JSON.parse(raw);
|
|
354
263
|
}
|
|
355
264
|
catch {
|
|
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
265
|
baseConfig = readBaseConfigFromYaml(appRoot, baseStack);
|
|
361
266
|
if (Object.keys(baseConfig).length === 0) {
|
|
362
267
|
logWarn(`Could not read base config from the backend or Pulumi.${baseStack}.yaml — ` +
|
|
363
268
|
`the new stack will need manual config.`);
|
|
364
269
|
}
|
|
365
270
|
}
|
|
366
|
-
// Copy all config keys except mesh:deploy (we'll set that explicitly)
|
|
367
271
|
for (const [key, entry] of Object.entries(baseConfig)) {
|
|
368
272
|
if (key === "mesh:deploy")
|
|
369
273
|
continue;
|
|
370
274
|
try {
|
|
371
275
|
if (entry.objectValue !== undefined) {
|
|
372
|
-
// Structured value — set as JSON (Pulumi parses it back to object)
|
|
373
276
|
execFileSync("pulumi", ["config", "set", key, JSON.stringify(entry.objectValue)], { cwd: appRoot, env: pulumiEnv, stdio: ["pipe", "pipe", "pipe"] });
|
|
374
277
|
}
|
|
375
278
|
else if (entry.value === "true" || entry.value === "false") {
|
|
@@ -382,9 +285,6 @@ export function registerStackCommand(program) {
|
|
|
382
285
|
catch { }
|
|
383
286
|
}
|
|
384
287
|
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
288
|
const baseEnv = readConfigBlockKey(appRoot, baseStack, "mesh:coreEnv") ??
|
|
389
289
|
(baseTenant && baseStack.startsWith(`${baseTenant}-`)
|
|
390
290
|
? baseStack.slice(baseTenant.length + 1)
|
|
@@ -401,21 +301,11 @@ export function registerStackCommand(program) {
|
|
|
401
301
|
};
|
|
402
302
|
setCfg(["mesh:coreEnv", baseEnv]);
|
|
403
303
|
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
304
|
setCfg(["--type", "bool", "mesh:packageRegistry", "false"]);
|
|
407
305
|
setCfg(["--type", "bool", "mesh:headscale", "false"]);
|
|
408
306
|
setCfg(["--type", "bool", "mesh:subnetRouter", "false"]);
|
|
409
307
|
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
308
|
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
309
|
try {
|
|
420
310
|
const tenantsRaw = readConfigBlockKey(appRoot, newStack, "mesh:tenants");
|
|
421
311
|
if (tenantsRaw) {
|
|
@@ -434,11 +324,6 @@ export function registerStackCommand(program) {
|
|
|
434
324
|
catch {
|
|
435
325
|
logWarn("Could not env-scope tenant pulumiStateBucket overrides — check mesh:tenants by hand (bucket names collide across envs otherwise).");
|
|
436
326
|
}
|
|
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
327
|
if (opts.parentZone) {
|
|
443
328
|
setCfg([
|
|
444
329
|
"mesh:dns",
|
|
@@ -456,7 +341,6 @@ export function registerStackCommand(program) {
|
|
|
456
341
|
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
342
|
}
|
|
458
343
|
else {
|
|
459
|
-
// Set mesh:deploy to false — personal APP stacks skip K8s deployments
|
|
460
344
|
execFileSync("pulumi", ["config", "set", "--type", "bool", "mesh:deploy", "false"], {
|
|
461
345
|
cwd: appRoot,
|
|
462
346
|
env: pulumiEnv,
|
|
@@ -467,10 +351,6 @@ export function registerStackCommand(program) {
|
|
|
467
351
|
}
|
|
468
352
|
console.log("");
|
|
469
353
|
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
354
|
logInfo(`Run: mesh deploy up --stack ${newStack} --yes`);
|
|
475
355
|
logInfo(opts.platform
|
|
476
356
|
? `Then point app stacks at it: mesh:platformEnv ${newStack.startsWith(`${baseTenant}-`) ? newStack.slice(baseTenant.length + 1) : newStack}`
|
|
@@ -486,12 +366,6 @@ export function registerStackCommand(program) {
|
|
|
486
366
|
logError("No Pulumi.yaml found. Run from within a Pulumi app directory.");
|
|
487
367
|
process.exit(1);
|
|
488
368
|
}
|
|
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
369
|
const credStack = readStackConfig(appRoot, name, "mesh:deployerRole")
|
|
496
370
|
? name
|
|
497
371
|
: [getCurrentStack(appRoot), "dev", ...findStackConfigs(appRoot)].find((s) => !!s && s !== name && !!readStackConfig(appRoot, s, "mesh:deployerRole")) ?? name;
|
|
@@ -510,4 +384,3 @@ export function registerStackCommand(program) {
|
|
|
510
384
|
}
|
|
511
385
|
});
|
|
512
386
|
}
|
|
513
|
-
//# sourceMappingURL=stack.js.map
|
|
@@ -1,33 +1,4 @@
|
|
|
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
1
|
import { Command } from "commander";
|
|
14
|
-
/**
|
|
15
|
-
* Open a raw Temporal client connection for this app's stack, with the Zitadel
|
|
16
|
-
* Bearer attached when the server enforces auth.
|
|
17
|
-
*
|
|
18
|
-
* Exported (`@mesh-tech/mesh-cli/temporal`) for CLIs built beside this one, such as mesh-studio's
|
|
19
|
-
* `studio workspace`, which reads and signals the workspace environment
|
|
20
|
-
* entity over the same connection and the same auth resolution — one spelling of
|
|
21
|
-
* "how the CLI reaches this app's Temporal", not two.
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* const { connection, namespace } = await connect({ stack: "dev-trabianmatt" });
|
|
25
|
-
* try {
|
|
26
|
-
* // …use `connection` with @temporalio/client…
|
|
27
|
-
* } finally {
|
|
28
|
-
* connection.close();
|
|
29
|
-
* }
|
|
30
|
-
*/
|
|
31
2
|
export declare function connect(options: {
|
|
32
3
|
stack?: string;
|
|
33
4
|
address?: string;
|
|
@@ -37,4 +8,3 @@ export declare function connect(options: {
|
|
|
37
8
|
namespace: string;
|
|
38
9
|
}>;
|
|
39
10
|
export declare function registerTemporalCommands(program: Command): void;
|
|
40
|
-
//# sourceMappingURL=temporal.d.ts.map
|