@mesh-tech/mesh-cli 0.40.10 → 0.40.12
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.auth-preflight-RCZH7V34.js → mesh.auth-preflight-BGI5LPLN.js} +1 -1
- package/dist/bin/{mesh.chunk-TFOKVJ34.js → mesh.chunk-3WJGDNHA.js} +71 -27
- package/dist/bin/mesh.chunk-3WJGDNHA.js.map +6 -0
- package/dist/bin/{mesh.chunk-SEIVILJR.js → mesh.chunk-4XX62O6Z.js} +1 -1
- package/dist/bin/{mesh.chunk-SOX2CJMU.js → mesh.chunk-DYWR76EO.js} +1 -1
- package/dist/bin/{mesh.chunk-N55Y3YII.js → mesh.chunk-EHLBX24J.js} +1 -1
- package/dist/bin/{mesh.chunk-M23VKWSF.js → mesh.chunk-GLG5JBI7.js} +23 -24
- package/dist/bin/mesh.chunk-GLG5JBI7.js.map +6 -0
- package/dist/bin/{mesh.chunk-TG4FBJK3.js → mesh.chunk-O5CP4NPZ.js} +2 -2
- package/dist/bin/{mesh.chunk-NT2NPR7J.js → mesh.chunk-O677AU5E.js} +1 -1
- package/dist/bin/{mesh.chunk-CA4LI762.js → mesh.chunk-WT27GBE4.js} +1 -1
- package/dist/bin/{mesh.chunk-CN6PMHQ5.js → mesh.chunk-YKW256CK.js} +3 -3
- package/dist/bin/{mesh.create-app-QRAZVRA3.js → mesh.create-app-GQIGCZNI.js} +3 -3
- package/dist/bin/{mesh.dev-token-server-DIECW5KC.js → mesh.dev-token-server-IJUVRBWI.js} +2 -2
- package/dist/bin/mesh.js +9 -9
- package/dist/bin/{mesh.login-J3QPALUS.js → mesh.login-N5LPLRRX.js} +2 -2
- package/dist/bin/{mesh.platform-setup-SNIAJTWJ.js → mesh.platform-setup-PCDLE2EI.js} +1 -1
- package/dist/bin/{mesh.program-T57YYRF5.js → mesh.program-WSFVQU7P.js} +9 -9
- package/dist/bin/{mesh.registry-UTIC3OY2.js → mesh.registry-5U4L6256.js} +4 -4
- package/dist/bin/{mesh.registry-identity-Y4Y5WFQ3.js → mesh.registry-identity-6UPUHKO2.js} +3 -3
- package/dist/bin/{mesh.review-command-LYTUNZ5G.js → mesh.review-command-MLBWVHF7.js} +3 -3
- package/dist/bin/{mesh.start-OWIKVKN6.js → mesh.start-24YIFB4O.js} +2 -2
- package/dist/bin/{mesh.wizard-QL5SQ47K.js → mesh.wizard-6HMOBC5L.js} +7 -7
- package/dist/build-info.json +2 -2
- package/dist/src/commands/local/index.js +5 -7
- package/dist/src/commands/local/seed-zitadel.d.ts +18 -0
- package/dist/src/commands/local/seed-zitadel.js +53 -19
- package/dist/src/commands/temporal.js.map +1 -1
- package/fragments/base/index.ts.hbs +5 -2
- package/package.json +3 -3
- package/stack/docker-compose.hub.yml +6 -1
- package/templates/api-auth/index.ts.hbs +2 -1
- package/templates/api-role-gating/index.ts.hbs +2 -1
- package/templates/apps-repo/npmrc.hbs +5 -0
- package/dist/bin/mesh.chunk-M23VKWSF.js.map +0 -6
- package/dist/bin/mesh.chunk-TFOKVJ34.js.map +0 -6
- /package/dist/bin/{mesh.auth-preflight-RCZH7V34.js.map → mesh.auth-preflight-BGI5LPLN.js.map} +0 -0
- /package/dist/bin/{mesh.chunk-SEIVILJR.js.map → mesh.chunk-4XX62O6Z.js.map} +0 -0
- /package/dist/bin/{mesh.chunk-SOX2CJMU.js.map → mesh.chunk-DYWR76EO.js.map} +0 -0
- /package/dist/bin/{mesh.chunk-N55Y3YII.js.map → mesh.chunk-EHLBX24J.js.map} +0 -0
- /package/dist/bin/{mesh.chunk-TG4FBJK3.js.map → mesh.chunk-O5CP4NPZ.js.map} +0 -0
- /package/dist/bin/{mesh.chunk-NT2NPR7J.js.map → mesh.chunk-O677AU5E.js.map} +0 -0
- /package/dist/bin/{mesh.chunk-CA4LI762.js.map → mesh.chunk-WT27GBE4.js.map} +0 -0
- /package/dist/bin/{mesh.chunk-CN6PMHQ5.js.map → mesh.chunk-YKW256CK.js.map} +0 -0
- /package/dist/bin/{mesh.create-app-QRAZVRA3.js.map → mesh.create-app-GQIGCZNI.js.map} +0 -0
- /package/dist/bin/{mesh.dev-token-server-DIECW5KC.js.map → mesh.dev-token-server-IJUVRBWI.js.map} +0 -0
- /package/dist/bin/{mesh.login-J3QPALUS.js.map → mesh.login-N5LPLRRX.js.map} +0 -0
- /package/dist/bin/{mesh.platform-setup-SNIAJTWJ.js.map → mesh.platform-setup-PCDLE2EI.js.map} +0 -0
- /package/dist/bin/{mesh.program-T57YYRF5.js.map → mesh.program-WSFVQU7P.js.map} +0 -0
- /package/dist/bin/{mesh.registry-UTIC3OY2.js.map → mesh.registry-5U4L6256.js.map} +0 -0
- /package/dist/bin/{mesh.registry-identity-Y4Y5WFQ3.js.map → mesh.registry-identity-6UPUHKO2.js.map} +0 -0
- /package/dist/bin/{mesh.review-command-LYTUNZ5G.js.map → mesh.review-command-MLBWVHF7.js.map} +0 -0
- /package/dist/bin/{mesh.start-OWIKVKN6.js.map → mesh.start-24YIFB4O.js.map} +0 -0
- /package/dist/bin/{mesh.wizard-QL5SQ47K.js.map → mesh.wizard-6HMOBC5L.js.map} +0 -0
|
@@ -49,7 +49,7 @@ import {
|
|
|
49
49
|
isExpiredAwsTokenMessage,
|
|
50
50
|
probeRegistryToken,
|
|
51
51
|
registryLoginFix
|
|
52
|
-
} from "./mesh.chunk-
|
|
52
|
+
} from "./mesh.chunk-4XX62O6Z.js";
|
|
53
53
|
|
|
54
54
|
// packages/mesh-cli/src/commands/login.ts
|
|
55
55
|
import * as http from "http";
|
|
@@ -2700,16 +2700,33 @@ async function ensureZitadelProject(pat, name, opts = {}) {
|
|
|
2700
2700
|
{ queries: [{ nameQuery: { name, method: "TEXT_QUERY_METHOD_EQUALS" } }] },
|
|
2701
2701
|
opts.orgId
|
|
2702
2702
|
);
|
|
2703
|
-
const existing = search?.result?.[0]
|
|
2704
|
-
if (existing) {
|
|
2703
|
+
const existing = search?.result?.[0];
|
|
2704
|
+
if (existing?.id) {
|
|
2705
2705
|
if (opts.logExisting) logInfo(`Zitadel project '${name}' already exists`);
|
|
2706
|
-
|
|
2706
|
+
const wanted = opts.projectRoleAssertion;
|
|
2707
|
+
if (wanted !== void 0 && (existing.projectRoleAssertion ?? false) !== wanted) {
|
|
2708
|
+
await api(
|
|
2709
|
+
pat,
|
|
2710
|
+
"PUT",
|
|
2711
|
+
`/management/v1/projects/${existing.id}`,
|
|
2712
|
+
{
|
|
2713
|
+
name: existing.name ?? name,
|
|
2714
|
+
projectRoleAssertion: wanted,
|
|
2715
|
+
projectRoleCheck: existing.projectRoleCheck ?? false,
|
|
2716
|
+
hasProjectCheck: existing.hasProjectCheck ?? false,
|
|
2717
|
+
...existing.privateLabelingSetting ? { privateLabelingSetting: existing.privateLabelingSetting } : {}
|
|
2718
|
+
},
|
|
2719
|
+
opts.orgId
|
|
2720
|
+
);
|
|
2721
|
+
logSuccess(`Zitadel project '${name}': role assertion turned ${wanted ? "on" : "off"}`);
|
|
2722
|
+
}
|
|
2723
|
+
return existing.id;
|
|
2707
2724
|
}
|
|
2708
2725
|
const created = await api(
|
|
2709
2726
|
pat,
|
|
2710
2727
|
"POST",
|
|
2711
2728
|
"/management/v1/projects",
|
|
2712
|
-
{ name, projectRoleAssertion: true },
|
|
2729
|
+
{ name, projectRoleAssertion: opts.projectRoleAssertion ?? true },
|
|
2713
2730
|
opts.orgId
|
|
2714
2731
|
);
|
|
2715
2732
|
logSuccess(`Created Zitadel project '${name}'${opts.describe ? ` (${opts.describe})` : ""}`);
|
|
@@ -2771,6 +2788,21 @@ async function ensureTestUsers(pat) {
|
|
|
2771
2788
|
function hubAuthPath() {
|
|
2772
2789
|
return path10.join(meshCacheDir("mesh-local"), "hub-auth.json");
|
|
2773
2790
|
}
|
|
2791
|
+
function hubSignInScope(projectId) {
|
|
2792
|
+
return [
|
|
2793
|
+
"openid email profile",
|
|
2794
|
+
"urn:zitadel:iam:org:projects:roles",
|
|
2795
|
+
`urn:zitadel:iam:org:project:id:${projectId}:aud`
|
|
2796
|
+
].join(" ");
|
|
2797
|
+
}
|
|
2798
|
+
function hubAuthComposeEnv(auth) {
|
|
2799
|
+
return {
|
|
2800
|
+
MESH_HUB_OAUTH2_CLIENT_ID: auth.clientId,
|
|
2801
|
+
MESH_HUB_OAUTH2_CLIENT_SECRET: auth.clientSecret,
|
|
2802
|
+
MESH_HUB_OAUTH2_COOKIE_SECRET: auth.cookieSecret,
|
|
2803
|
+
...auth.projectId ? { MESH_HUB_OAUTH2_SCOPE: hubSignInScope(auth.projectId) } : {}
|
|
2804
|
+
};
|
|
2805
|
+
}
|
|
2774
2806
|
function readHubAuth() {
|
|
2775
2807
|
try {
|
|
2776
2808
|
const parsed = JSON.parse(fs10.readFileSync(hubAuthPath(), "utf-8"));
|
|
@@ -2780,7 +2812,10 @@ function readHubAuth() {
|
|
|
2780
2812
|
return null;
|
|
2781
2813
|
}
|
|
2782
2814
|
}
|
|
2783
|
-
var ensureHubProject = (pat) => ensureZitadelProject(pat, HUB_PROJECT_NAME, {
|
|
2815
|
+
var ensureHubProject = (pat) => ensureZitadelProject(pat, HUB_PROJECT_NAME, {
|
|
2816
|
+
describe: "Hub platform app",
|
|
2817
|
+
projectRoleAssertion: false
|
|
2818
|
+
});
|
|
2784
2819
|
function hubRoleDisplayName(roleKey) {
|
|
2785
2820
|
const tenant = hubRoleKeyTenant(roleKey);
|
|
2786
2821
|
return tenant === null ? roleKey : `${restrictedRoleBase(roleKey) ?? roleKey} (${tenant})`;
|
|
@@ -2835,23 +2870,8 @@ async function reconcileHubRedirectUris(pat, projectId, app) {
|
|
|
2835
2870
|
`Registered Hub redirect URI http://localhost:${hubPort()}/oauth2/callback (MESH_HUB_PORT)`
|
|
2836
2871
|
);
|
|
2837
2872
|
}
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
if (existing) {
|
|
2841
|
-
await reconcileHubRedirectUris(pat, projectId, existing);
|
|
2842
|
-
const clientId = existing?.oidcConfig?.clientId;
|
|
2843
|
-
const persisted = readHubAuth();
|
|
2844
|
-
if (persisted && persisted.clientId === clientId) return { clientId };
|
|
2845
|
-
const regenerated = await api(
|
|
2846
|
-
pat,
|
|
2847
|
-
"POST",
|
|
2848
|
-
`/management/v1/projects/${projectId}/apps/${existing.id}/oidc_config/_generate_client_secret`,
|
|
2849
|
-
{}
|
|
2850
|
-
);
|
|
2851
|
-
logSuccess(`Regenerated Hub UI client secret (local copy was missing)`);
|
|
2852
|
-
return { clientId, clientSecret: regenerated.clientSecret };
|
|
2853
|
-
}
|
|
2854
|
-
const created = await api(pat, "POST", `/management/v1/projects/${projectId}/apps/oidc`, {
|
|
2873
|
+
function buildHubAppPayload() {
|
|
2874
|
+
return {
|
|
2855
2875
|
name: HUB_APP_NAME,
|
|
2856
2876
|
redirectUris: [.../* @__PURE__ */ new Set([hubRedirectUri(), HUB_DEFAULT_REDIRECT_URI])],
|
|
2857
2877
|
postLogoutRedirectUris: [
|
|
@@ -2873,7 +2893,30 @@ async function ensureHubApp(pat, projectId) {
|
|
|
2873
2893
|
idTokenRoleAssertion: true,
|
|
2874
2894
|
idTokenUserinfoAssertion: true,
|
|
2875
2895
|
devMode: true
|
|
2876
|
-
}
|
|
2896
|
+
};
|
|
2897
|
+
}
|
|
2898
|
+
async function ensureHubApp(pat, projectId) {
|
|
2899
|
+
const existing = await searchZitadelApp(pat, projectId, HUB_APP_NAME);
|
|
2900
|
+
if (existing) {
|
|
2901
|
+
await reconcileHubRedirectUris(pat, projectId, existing);
|
|
2902
|
+
const clientId = existing?.oidcConfig?.clientId;
|
|
2903
|
+
const persisted = readHubAuth();
|
|
2904
|
+
if (persisted && persisted.clientId === clientId) return { clientId };
|
|
2905
|
+
const regenerated = await api(
|
|
2906
|
+
pat,
|
|
2907
|
+
"POST",
|
|
2908
|
+
`/management/v1/projects/${projectId}/apps/${existing.id}/oidc_config/_generate_client_secret`,
|
|
2909
|
+
{}
|
|
2910
|
+
);
|
|
2911
|
+
logSuccess(`Regenerated Hub UI client secret (local copy was missing)`);
|
|
2912
|
+
return { clientId, clientSecret: regenerated.clientSecret };
|
|
2913
|
+
}
|
|
2914
|
+
const created = await api(
|
|
2915
|
+
pat,
|
|
2916
|
+
"POST",
|
|
2917
|
+
`/management/v1/projects/${projectId}/apps/oidc`,
|
|
2918
|
+
buildHubAppPayload()
|
|
2919
|
+
);
|
|
2877
2920
|
logSuccess(`Created Zitadel application '${HUB_APP_NAME}' (Hub UI web client, code flow)`);
|
|
2878
2921
|
return { clientId: created.clientId, clientSecret: created.clientSecret };
|
|
2879
2922
|
}
|
|
@@ -7842,7 +7885,7 @@ function registerDevCommand(program) {
|
|
|
7842
7885
|
"tmux"
|
|
7843
7886
|
);
|
|
7844
7887
|
dev.command("__token-server <port> <context>", { hidden: true }).action(async (port, context) => {
|
|
7845
|
-
const { startTokenServer } = await import("./mesh.dev-token-server-
|
|
7888
|
+
const { startTokenServer } = await import("./mesh.dev-token-server-IJUVRBWI.js");
|
|
7846
7889
|
await startTokenServer(Number(port), context);
|
|
7847
7890
|
});
|
|
7848
7891
|
dev.action(async (options) => {
|
|
@@ -10980,9 +11023,9 @@ function refuseReservedRegistryContext(context, verb) {
|
|
|
10980
11023
|
}
|
|
10981
11024
|
async function hintRegistryIfMissing() {
|
|
10982
11025
|
try {
|
|
10983
|
-
const { readRegistrySession } = await import("./mesh.registry-identity-
|
|
11026
|
+
const { readRegistrySession } = await import("./mesh.registry-identity-6UPUHKO2.js");
|
|
10984
11027
|
if (readRegistrySession()) return;
|
|
10985
|
-
const { probeRegistryToken: probeRegistryToken2 } = await import("./mesh.auth-preflight-
|
|
11028
|
+
const { probeRegistryToken: probeRegistryToken2 } = await import("./mesh.auth-preflight-BGI5LPLN.js");
|
|
10986
11029
|
const probe = await probeRegistryToken2();
|
|
10987
11030
|
if (probe.state === "missing" || probe.state === "expired") {
|
|
10988
11031
|
logInfo(REGISTRY_SEPARATE_HINT);
|
|
@@ -11403,6 +11446,7 @@ export {
|
|
|
11403
11446
|
mockIdpComposeEnv,
|
|
11404
11447
|
LOGIN_CONTEXT,
|
|
11405
11448
|
TEST_USERS,
|
|
11449
|
+
hubAuthComposeEnv,
|
|
11406
11450
|
readHubAuth,
|
|
11407
11451
|
seedZitadel,
|
|
11408
11452
|
seedMockIdps,
|