@mesh-tech/mesh-cli 0.20.1 → 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/README.md +6 -5
- package/dist/bin/mesh.d.ts +0 -12
- package/dist/bin/mesh.js +99 -50
- package/dist/bin/mesh.js.map +2 -3
- 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 +4 -88
- package/dist/src/commands/create-app.js +16 -155
- 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 +5 -116
- package/dist/src/commands/init/wizard.js +42 -110
- 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 +10 -11
- 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
|
-
* Local Hub image builder (`mesh start --with-hub`) — the interim path
|
|
3
|
-
* until the hub pipeline publishes pullable container images (design §11).
|
|
4
|
-
*
|
|
5
|
-
* Resolves the published @mesh-tech/hub tarball with the user's registry
|
|
6
|
-
* auth (mesh registry login), extracts it, and docker-builds two images
|
|
7
|
-
* from the prebuilt dists it ships (api/dist → mesh-local-hub-api,
|
|
8
|
-
* ui/build → mesh-local-hub-ui). The CodeArtifact token enters the build
|
|
9
|
-
* as a BuildKit secret and never lands in a layer. Idempotent: images are
|
|
10
|
-
* keyed by the package version and rebuilt only when missing.
|
|
11
|
-
*/
|
|
12
1
|
import { execFile, execFileSync } from "child_process";
|
|
13
2
|
import * as fs from "fs";
|
|
14
3
|
import * as os from "os";
|
|
@@ -22,8 +11,6 @@ import { meshCacheDir } from "../../utils/cache-home.js";
|
|
|
22
11
|
const execFileAsync = promisify(execFile);
|
|
23
12
|
const HUB_PACKAGE = "@mesh-tech/hub";
|
|
24
13
|
export const HUB_IMAGES = ["mesh-local-hub-api", "mesh-local-hub-ui"];
|
|
25
|
-
/** Bump when stack/hub/Dockerfile.* change — forces a rebuild of images
|
|
26
|
-
* already cached for the same published hub version. */
|
|
27
14
|
const LOCAL_IMAGE_REV = "r2";
|
|
28
15
|
function cacheDir() {
|
|
29
16
|
return meshCacheDir("hub-local");
|
|
@@ -44,12 +31,7 @@ function imageExists(tag) {
|
|
|
44
31
|
return false;
|
|
45
32
|
}
|
|
46
33
|
}
|
|
47
|
-
/** Tag referenced by docker-compose.hub.yml — bump alongside Dockerfile.auth. */
|
|
48
34
|
const HUB_AUTH_IMAGE = "mesh-local-hub-auth:v7.7.1-r1";
|
|
49
|
-
/**
|
|
50
|
-
* Build the Hub's oauth2-proxy image (hosted sidecar + loopback issuer
|
|
51
|
-
* forward). Public base images only — no registry auth involved.
|
|
52
|
-
*/
|
|
53
35
|
export function ensureHubAuthImage() {
|
|
54
36
|
if (imageExists(HUB_AUTH_IMAGE))
|
|
55
37
|
return;
|
|
@@ -58,16 +40,10 @@ export function ensureHubAuthImage() {
|
|
|
58
40
|
execFileSync("docker", ["build", "-f", path.join(hubStackDir, "Dockerfile.auth"), "-t", HUB_AUTH_IMAGE, hubStackDir], { stdio: ["ignore", "inherit", "inherit"], env: { ...process.env, DOCKER_BUILDKIT: "1" } });
|
|
59
41
|
logSuccess(`Built ${HUB_AUTH_IMAGE}`);
|
|
60
42
|
}
|
|
61
|
-
/** Registry auth present? (Needed only to BUILD hub images, not to run them.) */
|
|
62
43
|
export function hasRegistryAuth() {
|
|
63
44
|
const p = path.join(os.homedir(), ".npmrc");
|
|
64
45
|
return fs.existsSync(p) && fs.readFileSync(p, "utf-8").includes("codeartifact");
|
|
65
46
|
}
|
|
66
|
-
/**
|
|
67
|
-
* Newest hub version whose images already exist locally — lets `mesh start`
|
|
68
|
-
* include the Hub by default with no network and no registry auth. Returns
|
|
69
|
-
* undefined when no built images are present.
|
|
70
|
-
*/
|
|
71
47
|
export function localHubVersion() {
|
|
72
48
|
const versions = HUB_IMAGES.map((name) => {
|
|
73
49
|
try {
|
|
@@ -84,13 +60,8 @@ export function localHubVersion() {
|
|
|
84
60
|
const shared = versions[0].filter((v) => v.endsWith(`-${LOCAL_IMAGE_REV}`) && versions.every((list) => list.includes(v)));
|
|
85
61
|
if (shared.length === 0)
|
|
86
62
|
return undefined;
|
|
87
|
-
// Highest semver wins (numeric-aware compare handles the -rN suffix).
|
|
88
63
|
return shared.sort((a, b) => a.localeCompare(b, undefined, { numeric: true })).at(-1);
|
|
89
64
|
}
|
|
90
|
-
/** `npm pack` the published hub tarball into the cache; returns its path +
|
|
91
|
-
* version. Falls back to the newest cached tarball when the registry is
|
|
92
|
-
* unreachable (offline / expired token). Async so the heartbeat can fill
|
|
93
|
-
* silence during the fetch — a first run's slowest, quietest step. */
|
|
94
65
|
async function fetchTarball() {
|
|
95
66
|
const dir = cacheDir();
|
|
96
67
|
logInfo(`Resolving ${HUB_PACKAGE} from the registry…`);
|
|
@@ -108,8 +79,6 @@ async function fetchTarball() {
|
|
|
108
79
|
.sort((a, b) => a.localeCompare(b, undefined, { numeric: true }))
|
|
109
80
|
.at(-1);
|
|
110
81
|
if (!cached) {
|
|
111
|
-
// Map npm's E401 ("try npm login") to the Mesh fix — npm login can
|
|
112
|
-
// never mint a CodeArtifact token (MESH-2479).
|
|
113
82
|
if (authFailure) {
|
|
114
83
|
throw new MeshCliError(`The registry rejected the ${HUB_PACKAGE} tarball fetch (E401 Unauthorized) — your CodeArtifact token is expired or invalid. (npm's "try npm login" advice does not apply to this registry.)`, { remediation: { command: REGISTRY_LOGIN_FIX }, cause: err });
|
|
115
84
|
}
|
|
@@ -128,13 +97,6 @@ async function fetchTarball() {
|
|
|
128
97
|
heartbeat.stop();
|
|
129
98
|
}
|
|
130
99
|
}
|
|
131
|
-
/**
|
|
132
|
-
* Pure: decide what `mesh start --with-hub` does given the registry probe
|
|
133
|
-
* and any already-built local images. Only a *refresh* needs the registry —
|
|
134
|
-
* already-built images run without it, so an expired/missing token degrades
|
|
135
|
-
* to those (with the fixing command) instead of hard-failing a path that
|
|
136
|
-
* works offline (MESH-2479).
|
|
137
|
-
*/
|
|
138
100
|
export function planWithHubRefresh(probeState, builtVersion) {
|
|
139
101
|
if (probeState !== "expired" && probeState !== "missing")
|
|
140
102
|
return { action: "refresh" };
|
|
@@ -154,10 +116,6 @@ export function planWithHubRefresh(probeState, builtVersion) {
|
|
|
154
116
|
remediation: REGISTRY_LOGIN_FIX,
|
|
155
117
|
};
|
|
156
118
|
}
|
|
157
|
-
/**
|
|
158
|
-
* Ensure the two local hub images exist; build them from the tarball when
|
|
159
|
-
* missing. Returns the hub version (used as the compose image tag).
|
|
160
|
-
*/
|
|
161
119
|
export async function ensureHubImages() {
|
|
162
120
|
const npmrc = npmrcPath();
|
|
163
121
|
const { tarball, version: packageVersion } = await fetchTarball();
|
|
@@ -193,32 +151,12 @@ export async function ensureHubImages() {
|
|
|
193
151
|
}
|
|
194
152
|
return version;
|
|
195
153
|
}
|
|
196
|
-
// ── the Hub's compiled authz catalog ─────────────────────────────────────────
|
|
197
|
-
/** Where the packed Hub ships its compiled authz catalog (`compile-authz.ts`). */
|
|
198
154
|
export const HUB_COMPILED_AUTHZ_REL = "api/dist/authz/compiled.json";
|
|
199
|
-
/**
|
|
200
|
-
* The cached tarball a local image version was built from, or null for a
|
|
201
|
-
* from-source build (`<version>-src`), which never has one.
|
|
202
|
-
*
|
|
203
|
-
* @example
|
|
204
|
-
* ```typescript
|
|
205
|
-
* tarballNameForImageVersion("2.2.0-r2"); // => "mesh-tech-hub-2.2.0.tgz"
|
|
206
|
-
* tarballNameForImageVersion("2.2.0-src"); // => null
|
|
207
|
-
* ```
|
|
208
|
-
*/
|
|
209
155
|
export function tarballNameForImageVersion(version) {
|
|
210
156
|
if (version.endsWith("-src"))
|
|
211
157
|
return null;
|
|
212
158
|
return `mesh-tech-hub-${version.replace(/-r\d+$/, "")}.tgz`;
|
|
213
159
|
}
|
|
214
|
-
/**
|
|
215
|
-
* Read the compiled authz catalog of the Hub whose images `mesh start` runs.
|
|
216
|
-
*
|
|
217
|
-
* The staged build context (`context-<version>/`) carries it after a build; when
|
|
218
|
-
* the images already existed nothing was staged, so the one file is extracted
|
|
219
|
-
* from the cached tarball on demand. Returns null for a Hub that ships no
|
|
220
|
-
* catalog (published before 2.1.0) — the caller says so and moves on.
|
|
221
|
-
*/
|
|
222
160
|
export function readHubCompiledAuthz(version) {
|
|
223
161
|
const context = path.join(cacheDir(), `context-${version}`);
|
|
224
162
|
const file = path.join(context, HUB_COMPILED_AUTHZ_REL);
|
|
@@ -241,15 +179,6 @@ export function readHubCompiledAuthz(version) {
|
|
|
241
179
|
return null;
|
|
242
180
|
return { zed: parsed.zed, metadata: parsed.metadata };
|
|
243
181
|
}
|
|
244
|
-
// ── from-source build (`mesh start --hub-from-source`) ──────────────────────
|
|
245
|
-
/**
|
|
246
|
-
* The workspace's default pnpm catalog, as `{ dependency: range }`.
|
|
247
|
-
*
|
|
248
|
-
* Nested manifests inside the packed Hub (`api/package.json`, `ui/package.json`)
|
|
249
|
-
* reference shared versions as `catalog:`. pnpm resolves that on publish for the
|
|
250
|
-
* package's OWN manifest only — the nested ones ship the literal `catalog:`, and
|
|
251
|
-
* `npm install` inside the image rejects it with `EUNSUPPORTEDPROTOCOL`.
|
|
252
|
-
*/
|
|
253
182
|
export function readWorkspaceCatalog(repoRoot) {
|
|
254
183
|
const text = fs.readFileSync(path.join(repoRoot, "pnpm-workspace.yaml"), "utf-8");
|
|
255
184
|
const marker = "\ncatalog:\n";
|
|
@@ -258,7 +187,6 @@ export function readWorkspaceCatalog(repoRoot) {
|
|
|
258
187
|
return {};
|
|
259
188
|
const catalog = {};
|
|
260
189
|
for (const line of text.slice(at + marker.length).split("\n")) {
|
|
261
|
-
// The block ends at the first line that is neither indented nor blank.
|
|
262
190
|
if (line.trim() !== "" && !/^\s/.test(line))
|
|
263
191
|
break;
|
|
264
192
|
const m = /^\s+"?([^":\s]+)"?:\s*"?([^"\s#]+)"?/.exec(line);
|
|
@@ -267,28 +195,6 @@ export function readWorkspaceCatalog(repoRoot) {
|
|
|
267
195
|
}
|
|
268
196
|
return catalog;
|
|
269
197
|
}
|
|
270
|
-
/**
|
|
271
|
-
* Make an extracted Hub tarball installable by plain `npm` inside the image.
|
|
272
|
-
*
|
|
273
|
-
* Two rewrites, both on the NESTED manifests the Dockerfiles copy:
|
|
274
|
-
*
|
|
275
|
-
* - `catalog:` → the range the workspace catalog pins.
|
|
276
|
-
* - `workspace:*` dependencies are DROPPED. Every deployed Hub entrypoint is
|
|
277
|
-
* bundled by `esm-bundle`, so no `@mesh-tech/*`
|
|
278
|
-
* or `@libs/*` import survives into `api/dist` / `ui/build` — installing them
|
|
279
|
-
* would fetch PUBLISHED copies that nothing imports, and for a package being
|
|
280
|
-
* changed in this checkout that published copy is precisely the wrong code.
|
|
281
|
-
* - `devDependencies` are DROPPED wholesale. Both Dockerfiles install with
|
|
282
|
-
* `--omit=dev`, so nothing in the image ever needs them — but npm still
|
|
283
|
-
* resolves them into the ideal tree before omitting, and the Hub's dev set
|
|
284
|
-
* (vitest, tsx, the React Router toolchain) trips a peer-conflict crash in
|
|
285
|
-
* the image's npm 10 (`Cannot read properties of null (reading 'edgesOut')`
|
|
286
|
-
* in arborist's `#loadPeerSet`) that fails the build before a single layer
|
|
287
|
-
* is written. Reproduced on the normalized `api/package.json` alone; the
|
|
288
|
-
* same manifest installs clean without the block.
|
|
289
|
-
*
|
|
290
|
-
* Returns the manifests it touched, for the caller to log.
|
|
291
|
-
*/
|
|
292
198
|
export function normalizeHubManifests(contextDir, catalog) {
|
|
293
199
|
const DEP_FIELDS = ["dependencies", "optionalDependencies", "peerDependencies"];
|
|
294
200
|
const touched = [];
|
|
@@ -333,19 +239,6 @@ export function normalizeHubManifests(contextDir, catalog) {
|
|
|
333
239
|
}
|
|
334
240
|
return touched;
|
|
335
241
|
}
|
|
336
|
-
/**
|
|
337
|
-
* Build the local Hub images from THIS checkout instead of the registry.
|
|
338
|
-
*
|
|
339
|
-
* `mesh start`'s Hub normally comes from the published `@mesh-tech/hub` tarball,
|
|
340
|
-
* which makes it the one environment where a Hub change cannot be exercised
|
|
341
|
-
* before it ships. This packs `apps/hub` exactly as a release would — same
|
|
342
|
-
* `files` allowlist, same Dockerfiles — so the containerized Hub, its auth proxy
|
|
343
|
-
* and its login flow all stay identical; only the code inside changes.
|
|
344
|
-
*
|
|
345
|
-
* Images are tagged `<version>-src` so they can never be mistaken for, or reused
|
|
346
|
-
* as, a published build, and are rebuilt every call: the whole point is to pick
|
|
347
|
-
* up working-tree changes.
|
|
348
|
-
*/
|
|
349
242
|
export async function buildHubImagesFromSource(repoRoot) {
|
|
350
243
|
const hubDir = path.join(repoRoot, "apps", "hub");
|
|
351
244
|
if (!fs.existsSync(path.join(hubDir, "package.json"))) {
|
|
@@ -365,9 +258,6 @@ export async function buildHubImagesFromSource(repoRoot) {
|
|
|
365
258
|
const context = path.join(cacheDir(), `context-${version}`);
|
|
366
259
|
fs.rmSync(context, { recursive: true, force: true });
|
|
367
260
|
fs.mkdirSync(context, { recursive: true });
|
|
368
|
-
// `pnpm pack` applies the package's own `files` allowlist, so the context is
|
|
369
|
-
// byte-for-byte what a release would ship — not a hand-assembled copy that
|
|
370
|
-
// could omit something the published path includes.
|
|
371
261
|
await execFileAsync("pnpm", ["pack", "--pack-destination", context], { cwd: hubDir, maxBuffer: 64 * 1024 * 1024 });
|
|
372
262
|
const tarball = fs.readdirSync(context).find((f) => f.endsWith(".tgz"));
|
|
373
263
|
if (!tarball)
|
|
@@ -390,4 +280,3 @@ export async function buildHubImagesFromSource(repoRoot) {
|
|
|
390
280
|
}
|
|
391
281
|
return version;
|
|
392
282
|
}
|
|
393
|
-
//# sourceMappingURL=hub-local.js.map
|
|
@@ -1,18 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* mesh start / stop / status — the full-local Mesh platform.
|
|
3
|
-
*
|
|
4
|
-
* mesh start [--no-seed] Bring up the local platform (docker compose) and
|
|
5
|
-
* seed tenant `local` / env `dev` on first boot.
|
|
6
|
-
* mesh stop [--destroy] Stop the stack; --destroy also removes volumes
|
|
7
|
-
* (resets databases and seeds).
|
|
8
|
-
* mesh status [--json] Per-service health, endpoints, and ports.
|
|
9
|
-
*
|
|
10
|
-
* Everything here works with zero AWS credentials, zero VPN, and zero Pulumi
|
|
11
|
-
* state — Docker is the only prerequisite.
|
|
12
|
-
*/
|
|
13
1
|
import { Command } from "commander";
|
|
14
2
|
import { type ServiceStatus, type StackEndpoint } from "./stack.js";
|
|
15
|
-
/** Injectable seams so tests can drive the wait loop without Docker. */
|
|
16
3
|
export interface WaitForStackIo {
|
|
17
4
|
probe: (endpoint: StackEndpoint) => Promise<boolean>;
|
|
18
5
|
services: () => ServiceStatus[];
|
|
@@ -20,4 +7,3 @@ export interface WaitForStackIo {
|
|
|
20
7
|
}
|
|
21
8
|
export declare function waitForStack(io?: WaitForStackIo): Promise<void>;
|
|
22
9
|
export declare function registerLocalCommands(program: Command): void;
|
|
23
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* mesh start / stop / status — the full-local Mesh platform.
|
|
3
|
-
*
|
|
4
|
-
* mesh start [--no-seed] Bring up the local platform (docker compose) and
|
|
5
|
-
* seed tenant `local` / env `dev` on first boot.
|
|
6
|
-
* mesh stop [--destroy] Stop the stack; --destroy also removes volumes
|
|
7
|
-
* (resets databases and seeds).
|
|
8
|
-
* mesh status [--json] Per-service health, endpoints, and ports.
|
|
9
|
-
*
|
|
10
|
-
* Everything here works with zero AWS credentials, zero VPN, and zero Pulumi
|
|
11
|
-
* state — Docker is the only prerequisite.
|
|
12
|
-
*/
|
|
13
1
|
import * as fs from "fs";
|
|
14
2
|
import * as path from "path";
|
|
15
3
|
import chalk from "chalk";
|
|
@@ -24,7 +12,6 @@ import { LOGIN_CONTEXT, readHubAuth, seedZitadel, TEST_USERS } from "./seed-zita
|
|
|
24
12
|
import { publishHubAuthzCatalog } from "./seed-hub-catalog.js";
|
|
25
13
|
const WAIT_TIMEOUT_MS = 180_000;
|
|
26
14
|
const WAIT_POLL_MS = 3_000;
|
|
27
|
-
/** The one crash message, so both wait loops stay on the same remediation. */
|
|
28
15
|
function crashError(crashed) {
|
|
29
16
|
return new MeshCliError(`Service(s) exited during startup: ${crashed.map((s) => s.name).join(", ")}`, {
|
|
30
17
|
remediation: {
|
|
@@ -51,13 +38,6 @@ export async function waitForStack(io = {
|
|
|
51
38
|
}
|
|
52
39
|
}
|
|
53
40
|
pending = stillDown;
|
|
54
|
-
// Surface hard failures on EVERY round, including the one that would end
|
|
55
|
-
// the wait: not every container has a STACK_ENDPOINTS entry, so with all
|
|
56
|
-
// probes answering first try an endpoint-less service (blackbox-exporter,
|
|
57
|
-
// temporal-admin-tools) could exit during startup unseen.
|
|
58
|
-
// The Hub overlay has not been brought up yet (that happens after the
|
|
59
|
-
// seed, below), so its containers are excluded — an `exited` hub-api
|
|
60
|
-
// here is a leftover from a previous run, not this run's crash.
|
|
61
41
|
const crashed = crashedServices(io.services(), {
|
|
62
42
|
overlayServices: io.overlayServices(),
|
|
63
43
|
overlayStarted: false,
|
|
@@ -76,8 +56,6 @@ export async function waitForStack(io = {
|
|
|
76
56
|
function printEndpoints(hubRunning) {
|
|
77
57
|
console.log("");
|
|
78
58
|
if (hubRunning) {
|
|
79
|
-
// The Hub is the front door — the same operations dashboard customers
|
|
80
|
-
// use against the hosted platform. Everything else is plumbing.
|
|
81
59
|
console.log(chalk.bold.cyan("★ Mesh Hub — your operations dashboard (start here)"));
|
|
82
60
|
console.log(` ${"Hub UI".padEnd(34)} ${chalk.bold.cyan(`http://localhost:${hubPort()}`)}`);
|
|
83
61
|
console.log(` ${"".padEnd(34)} ${chalk.dim("sign in: admin@local.mesh or dev@local.mesh / LocalDev1!")}`);
|
|
@@ -110,15 +88,6 @@ function printEndpoints(hubRunning) {
|
|
|
110
88
|
console.log("");
|
|
111
89
|
logInfo("Next: `mesh dev` in an apps repo wires services to this stack automatically.");
|
|
112
90
|
}
|
|
113
|
-
/**
|
|
114
|
-
* The mesh-platform checkout `--hub-from-source` builds from.
|
|
115
|
-
*
|
|
116
|
-
* The cwd wins when it sits inside a checkout, so running `mesh start` from an
|
|
117
|
-
* app directory of the monorepo still builds that monorepo's Hub. Otherwise the
|
|
118
|
-
* CLI's own location decides, which resolves correctly for `pnpm exec mesh` in a
|
|
119
|
-
* worktree and lands somewhere without `apps/hub` for a global install — where
|
|
120
|
-
* the builder refuses with a message naming the requirement.
|
|
121
|
-
*/
|
|
122
91
|
function repoRootForHubSource() {
|
|
123
92
|
for (let dir = process.cwd();;) {
|
|
124
93
|
if (fs.existsSync(path.join(dir, "apps", "hub", "package.json")))
|
|
@@ -141,12 +110,6 @@ export function registerLocalCommands(program) {
|
|
|
141
110
|
.option("--takeover", "re-own a stack that another checkout started (may recreate shared containers with THIS checkout's config)", false)
|
|
142
111
|
.action(async (opts) => {
|
|
143
112
|
ensureDockerAvailable();
|
|
144
|
-
// The stack is machine-wide; a `start` from a checkout whose compose
|
|
145
|
-
// config differs recreates shared containers out from under whatever
|
|
146
|
-
// is running against them (another project's `mesh dev` session, a
|
|
147
|
-
// Hub under development, …). Tenant/app work never needs `start`
|
|
148
|
-
// against an already-running stack — `mesh dev --local` deploys
|
|
149
|
-
// tenant-scoped only.
|
|
150
113
|
const foreign = stackOwnedElsewhere();
|
|
151
114
|
if (foreign && !opts.takeover) {
|
|
152
115
|
throw new MeshCliError(`The local platform is already running, started from a different checkout:\n ${foreign}\n` +
|
|
@@ -160,23 +123,12 @@ export function registerLocalCommands(program) {
|
|
|
160
123
|
if (foreign && opts.takeover) {
|
|
161
124
|
logWarn(`Taking over the running stack (previously driven from ${foreign}).`);
|
|
162
125
|
}
|
|
163
|
-
// The Hub is the platform's front door, so it's part of the default
|
|
164
|
-
// stack: use already-built images when present; build from the
|
|
165
|
-
// published tarball when registry auth allows; otherwise start
|
|
166
|
-
// without it and say exactly how to enable it. --with-hub forces a
|
|
167
|
-
// registry resolve (picks up newly published hub versions).
|
|
168
126
|
let hubVersion;
|
|
169
127
|
if (opts.hub) {
|
|
170
128
|
if (opts.hubFromSource) {
|
|
171
|
-
// Deliberately ahead of the registry arms: from-source never consults
|
|
172
|
-
// CodeArtifact for the Hub itself, so a stale token is irrelevant here.
|
|
173
129
|
hubVersion = await buildHubImagesFromSource(repoRootForHubSource());
|
|
174
130
|
}
|
|
175
131
|
else if (opts.withHub) {
|
|
176
|
-
// Auth preflight (MESH-2479): the tarball fetch + image build run
|
|
177
|
-
// for minutes — verify the CodeArtifact token BEFORE that work.
|
|
178
|
-
// Only a refresh needs the registry: with already-built images a
|
|
179
|
-
// bad token degrades to them instead of failing an offline path.
|
|
180
132
|
const probe = await probeRegistryToken();
|
|
181
133
|
const plan = planWithHubRefresh(probe.state, localHubVersion());
|
|
182
134
|
if (plan.action === "fail") {
|
|
@@ -195,8 +147,6 @@ export function registerLocalCommands(program) {
|
|
|
195
147
|
if (!hubVersion && hasRegistryAuth()) {
|
|
196
148
|
const probe = await probeRegistryToken();
|
|
197
149
|
if (probe.state === "expired") {
|
|
198
|
-
// Keep `mesh start`'s Docker-only promise: degrade to a
|
|
199
|
-
// hub-less stack, but say exactly how to get the Hub back.
|
|
200
150
|
logWarn(`CodeArtifact token is expired — starting without the Hub. Fix: ${REGISTRY_LOGIN_FIX}, then: mesh start --with-hub`);
|
|
201
151
|
}
|
|
202
152
|
else {
|
|
@@ -211,16 +161,7 @@ export function registerLocalCommands(program) {
|
|
|
211
161
|
}
|
|
212
162
|
}
|
|
213
163
|
logInfo("Starting the local Mesh platform (docker compose project: mesh-local)…");
|
|
214
|
-
// Base stack first; the Hub joins AFTER seeding so its oauth2-proxy
|
|
215
|
-
// gets the seeded client credentials and hub-api never caches a
|
|
216
|
-
// pre-seed (empty) registry view.
|
|
217
164
|
await composeStreamed(["up", "-d"]);
|
|
218
|
-
// Deterministic cache bust for the bind-mounted observability configs:
|
|
219
|
-
// `up -d` only recreates a container whose compose spec changed, and
|
|
220
|
-
// Prometheus re-reads prometheus.yml on restart/SIGHUP only. A CLI
|
|
221
|
-
// upgrade that edits observability/*.yml would otherwise leave a
|
|
222
|
-
// running stack on the OLD scrape config (and blackbox on old modules)
|
|
223
|
-
// — silently, since a misrouted probe just reports probe_success 0.
|
|
224
165
|
compose(["restart", "prometheus", "blackbox-exporter"], { inherit: true });
|
|
225
166
|
await waitForStack();
|
|
226
167
|
let hubAuth = readHubAuth();
|
|
@@ -230,9 +171,6 @@ export function registerLocalCommands(program) {
|
|
|
230
171
|
logInfo("Seeding Zitadel (Platform project, Mesh CLI app, Hub auth, test users)…");
|
|
231
172
|
const zitadel = await seedZitadel(LOCAL_AWS_CONFIG);
|
|
232
173
|
hubAuth = zitadel.hubAuth;
|
|
233
|
-
// The Hub's role catalog: what Users → Roles / Permissions render and what
|
|
234
|
-
// the create-user form offers. The hosted platform publishes it from
|
|
235
|
-
// MeshHub; locally it comes from the catalog the Hub images were built with.
|
|
236
174
|
if (hubVersion) {
|
|
237
175
|
const compiled = readHubCompiledAuthz(hubVersion);
|
|
238
176
|
if (compiled) {
|
|
@@ -243,9 +181,6 @@ export function registerLocalCommands(program) {
|
|
|
243
181
|
logWarn(`Hub v${hubVersion} ships no compiled role catalog (api/dist/authz/compiled.json) — Users → Roles will be empty. Hub ≥ 2.1.0 publishes one.`);
|
|
244
182
|
}
|
|
245
183
|
}
|
|
246
|
-
// Zitadel is the auth source of truth — mirror every provisioned
|
|
247
|
-
// app tenant/app into the registry so the Hub shows them even if
|
|
248
|
-
// the app hasn't been run since it was provisioned.
|
|
249
184
|
try {
|
|
250
185
|
const reconciled = await reconcileRegistryFromZitadel();
|
|
251
186
|
if (reconciled.tenants.length > 0) {
|
|
@@ -265,10 +200,6 @@ export function registerLocalCommands(program) {
|
|
|
265
200
|
if (!hubAuth) {
|
|
266
201
|
logWarn("Hub auth is not seeded yet (started with --no-seed?) — Hub sign-in needs one seeded run: mesh start");
|
|
267
202
|
}
|
|
268
|
-
// The redirect URI for a non-default port is registered during
|
|
269
|
-
// seeding (reconcileHubRedirectUris) — skipping the seed with a new
|
|
270
|
-
// port reproduces the "redirect_uri is missing in the client
|
|
271
|
-
// configuration" login failure.
|
|
272
203
|
if (!opts.seed && hubPort() !== DEFAULT_HUB_PORT) {
|
|
273
204
|
logWarn(`--no-seed with MESH_HUB_PORT=${hubPort()}: this port's redirect URI is registered during seeding — if Hub sign-in fails with "redirect_uri is missing in the client configuration", re-run without --no-seed.`);
|
|
274
205
|
}
|
|
@@ -281,14 +212,8 @@ export function registerLocalCommands(program) {
|
|
|
281
212
|
}
|
|
282
213
|
await composeStreamed(["up", "-d"], { hub: true, env: hubEnv });
|
|
283
214
|
if (opts.seed) {
|
|
284
|
-
// Deterministic cache bust: hub-api holds its tenants view for 5
|
|
285
|
-
// minutes and this run's seed/reconcile may have changed it.
|
|
286
215
|
compose(["restart", "hub-api"], { hub: true, env: hubEnv });
|
|
287
216
|
}
|
|
288
|
-
// From here the overlay HAS been started, so an exited hub service is
|
|
289
|
-
// a real crash again — same message, same remediation as the base
|
|
290
|
-
// stack's. (Without this the loop would spin out its 60 attempts and
|
|
291
|
-
// then claim the endpoint was up.)
|
|
292
217
|
const overlayServices = hubOverlayServices();
|
|
293
218
|
for (const endpoint of hubEndpoints()) {
|
|
294
219
|
logInfo(`Waiting for ${endpoint.label}…`);
|
|
@@ -349,17 +274,9 @@ export function registerLocalCommands(program) {
|
|
|
349
274
|
remediation: { command: "mesh start" },
|
|
350
275
|
});
|
|
351
276
|
}
|
|
352
|
-
// `status` never started anything, so "is the Hub overlay part of this
|
|
353
|
-
// run?" can only be read off the containers: at least one overlay
|
|
354
|
-
// service actually running. Everything Hub-related keys off that — an
|
|
355
|
-
// overlay container left `exited` by a previous run (a Docker restart,
|
|
356
|
-
// a laptop sleep) is "not started", not "crashed".
|
|
357
277
|
const overlayServices = hubOverlayServices();
|
|
358
278
|
const overlayStarted = hubOverlayRunning(services, overlayServices);
|
|
359
279
|
const notStarted = (s) => !overlayStarted && overlayServices.has(s.name) && s.state === "exited";
|
|
360
|
-
// A *running* hub-api, not merely a hub-api container: a leftover
|
|
361
|
-
// exited one from a previous run would otherwise make status probe Hub
|
|
362
|
-
// endpoints that were never meant to be up and report them down.
|
|
363
280
|
const hasHub = hubApiRunning(services);
|
|
364
281
|
const endpoints = hasHub ? [...STACK_ENDPOINTS, ...hubEndpoints()] : STACK_ENDPOINTS;
|
|
365
282
|
const probes = await Promise.all(endpoints.map(async (endpoint) => ({
|
|
@@ -368,8 +285,6 @@ export function registerLocalCommands(program) {
|
|
|
368
285
|
url: endpoint.url,
|
|
369
286
|
up: await probeEndpoint(endpoint),
|
|
370
287
|
})));
|
|
371
|
-
// The P0 gate: with the fabric up, the 8 KB Advanced-tier round-trip
|
|
372
|
-
// must pass on every status check, not just at seed time.
|
|
373
288
|
let fabric = null;
|
|
374
289
|
if (probes.find((p) => p.service === "ministack")?.up) {
|
|
375
290
|
try {
|
|
@@ -425,4 +340,3 @@ export function registerLocalCommands(program) {
|
|
|
425
340
|
}
|
|
426
341
|
});
|
|
427
342
|
}
|
|
428
|
-
//# sourceMappingURL=index.js.map
|