@zivis/cli 0.1.0-alpha.29 → 0.1.0-alpha.30

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.
@@ -1,28 +1,12 @@
1
1
  /**
2
2
  * zivis auth bind
3
3
  *
4
- * The recommended setup command for developers using ZIVIS with an IDE or
5
- * agentic workflow.
4
+ * **Explicit** mint-only command: OAuth once, POST /api/auth/bind, persist apikey.<session>.
5
+ * After `zivis auth login`, the same mint usually runs automatically when the repo is bound.
6
+ * Use `bind` to repair a missing MCP key without re-running full login prompts, or force a
7
+ * mint when auto-mint failed.
6
8
  *
7
- * How it works:
8
- * 1. Opens a browser → WorkOS login scoped to the project's org
9
- * 2. ZIVIS backend verifies org membership and mints a Local Project
10
- * Binding Token (a WorkOS API key scoped to this user + org)
11
- * 3. The token is stored in the OS keychain under `apikey.<session>`
12
- * 4. IDE configs (.cursor/mcp.json, .vscode/mcp.json) are written with
13
- * --workspace pointing to this repo
14
- * 5. OAuth tokens from the login ceremony are discarded — the API key
15
- * is the only long-lived credential
16
- *
17
- * The result: the MCP server uses a stable, org-scoped token that never
18
- * refreshes and never drifts to a different org.
19
- *
20
- * Security model:
21
- * - WorkOS login = identity + membership proof (ephemeral)
22
- * - Local Project Binding Token = execution credential (permanent until revoked)
23
- * - Keys are visible in `zivis auth status` and Settings → API Tokens for audit
24
- * - `zivis auth logout` clears the key locally; revoke in the UI to invalidate
25
- * it server-side
9
+ * OAuth from this command is discarded after minting — MCP uses the minted WorkOS API key.
26
10
  */
27
11
  export interface BindCmdOpts {
28
12
  yes?: boolean;
@@ -1,78 +1,38 @@
1
1
  /**
2
2
  * zivis auth bind
3
3
  *
4
- * The recommended setup command for developers using ZIVIS with an IDE or
5
- * agentic workflow.
4
+ * **Explicit** mint-only command: OAuth once, POST /api/auth/bind, persist apikey.<session>.
5
+ * After `zivis auth login`, the same mint usually runs automatically when the repo is bound.
6
+ * Use `bind` to repair a missing MCP key without re-running full login prompts, or force a
7
+ * mint when auto-mint failed.
6
8
  *
7
- * How it works:
8
- * 1. Opens a browser → WorkOS login scoped to the project's org
9
- * 2. ZIVIS backend verifies org membership and mints a Local Project
10
- * Binding Token (a WorkOS API key scoped to this user + org)
11
- * 3. The token is stored in the OS keychain under `apikey.<session>`
12
- * 4. IDE configs (.cursor/mcp.json, .vscode/mcp.json) are written with
13
- * --workspace pointing to this repo
14
- * 5. OAuth tokens from the login ceremony are discarded — the API key
15
- * is the only long-lived credential
16
- *
17
- * The result: the MCP server uses a stable, org-scoped token that never
18
- * refreshes and never drifts to a different org.
19
- *
20
- * Security model:
21
- * - WorkOS login = identity + membership proof (ephemeral)
22
- * - Local Project Binding Token = execution credential (permanent until revoked)
23
- * - Keys are visible in `zivis auth status` and Settings → API Tokens for audit
24
- * - `zivis auth logout` clears the key locally; revoke in the UI to invalidate
25
- * it server-side
9
+ * OAuth from this command is discarded after minting — MCP uses the minted WorkOS API key.
26
10
  */
27
- import * as os from "node:os";
28
- import * as crypto from "node:crypto";
29
- import * as child_process from "node:child_process";
30
11
  import { login } from "@zivis/mcp/auth";
31
- import { keychainStore, keychainClearSession } from "@zivis/mcp/auth";
12
+ import { keychainClearSession } from "@zivis/mcp/auth";
32
13
  import { detectProjectBinding, resolveConfigFromBinding } from "@zivis/mcp/project-binding";
33
14
  import { DEFAULT_CONFIG, credentialStorageFromConfig } from "@zivis/mcp/types";
34
15
  import { extractEmail } from "../../internal/orgs.js";
35
16
  import { ensureProjectBinding } from "../../internal/project-binding.js";
17
+ import { mintLocalProjectBindingToken } from "../../internal/binding-token-mint.js";
36
18
  import { setupCursorWorkspace, setupVsCodeClaude, setupVsCodeCopilot, setupClaudeCodeCli, } from "../../internal/ide-setup.js";
37
- /** Get the git remote URL of the current repo for the key name, or fallback. */
38
- function getRepoFingerprint() {
39
- try {
40
- const remote = child_process
41
- .execSync("git remote get-url origin 2>/dev/null", { encoding: "utf8" })
42
- .trim();
43
- if (remote) {
44
- return crypto.createHash("sha256").update(remote).digest("hex").slice(0, 12);
45
- }
46
- }
47
- catch {
48
- // no git or no remote
49
- }
50
- return crypto.createHash("sha256").update(process.cwd()).digest("hex").slice(0, 12);
51
- }
52
19
  export async function bindCommand(opts) {
53
20
  const cwd = process.cwd();
54
21
  const config = { ...DEFAULT_CONFIG, ...resolveConfigFromBinding(cwd) };
55
22
  const detected = detectProjectBinding(cwd);
56
- // We need a project binding to know which org to bind to.
57
- // The binding provides workosOrgId + session name.
58
23
  if (!detected?.binding.workosOrgId) {
59
24
  console.error("");
60
25
  console.error("[zivis] ERROR: No project binding found.");
61
- console.error("[zivis] Run zivis auth login first to establish a project binding,");
62
- console.error("[zivis] or ensure .zivis/project.json exists with a workosOrgId.");
26
+ console.error("[zivis] Run zivis auth login (or auth init) in this repo first,");
27
+ console.error("[zivis] then run zivis auth bind if MCP still needs an API key.");
63
28
  console.error("");
64
- console.error(" To create a binding:");
65
- console.error(" zivis auth login");
66
29
  process.exit(1);
67
30
  }
68
31
  const { workosOrgId, session: bindingSession, orgName } = detected.binding;
69
32
  const session = bindingSession;
70
33
  console.log("");
71
- console.log(`Binding this repo to ${orgName ?? workosOrgId} (session: "${session}")`);
72
- console.log("This will mint a Local Project Binding Token for MCP and IDE use.");
34
+ console.log(`Minting MCP API key for ${orgName ?? workosOrgId} (session: "${session}")`);
73
35
  console.log("");
74
- // Step 1: OAuth PKCE login — identity ceremony only.
75
- // We scope it to the org from the project binding so there's no ambiguity.
76
36
  let tokens;
77
37
  try {
78
38
  tokens = await login(config, `__bind_temp_${session}`, workosOrgId, {
@@ -88,53 +48,26 @@ export async function bindCommand(opts) {
88
48
  const email = extractEmail(tokens.id_token);
89
49
  console.log(`✓ Authenticated as ${email}`);
90
50
  const credentialStorage = credentialStorageFromConfig(config);
91
- // Step 2: Call POST /api/auth/bind with the fresh access token.
92
- // The backend verifies membership and mints the WorkOS API key.
93
- const repoFingerprint = getRepoFingerprint();
94
- const hostname = os.hostname();
95
- let bindResult;
51
+ let mint;
96
52
  try {
97
- const response = await fetch(`${config.apiBaseUrl}/api/auth/bind`, {
98
- method: "POST",
99
- headers: {
100
- Authorization: `Bearer ${tokens.access_token}`,
101
- "Content-Type": "application/json",
102
- "User-Agent": "@zivis/cli",
103
- },
104
- body: JSON.stringify({ repoFingerprint, hostname }),
53
+ mint = await mintLocalProjectBindingToken({
54
+ config,
55
+ session,
56
+ accessToken: tokens.access_token,
57
+ cwd,
105
58
  });
106
- if (!response.ok) {
107
- const body = (await response.json().catch(() => ({})));
108
- console.error(`[zivis] Backend bind failed (HTTP ${response.status}): ${body.message ?? body.error ?? "unknown error"}`);
109
- process.exit(1);
110
- }
111
- bindResult = (await response.json());
112
- }
113
- catch (err) {
114
- console.error("[zivis] Network error calling /api/auth/bind:", err instanceof Error ? err.message : err);
115
- process.exit(1);
116
59
  }
117
60
  finally {
118
- // Step 3: Discard the OAuth tokens — they were only needed for the bind ceremony.
119
- // The Local Project Binding Token is the only credential we keep.
120
61
  await keychainClearSession(`__bind_temp_${session}`, credentialStorage).catch(() => { });
121
62
  }
122
- // Step 4: Store the Local Project Binding Token in the OS keychain.
123
- // Stored under apikey.<session> so the MCP server finds it in the
124
- // preferred credential slot (ahead of OAuth tokens in the precedence chain).
125
- const apiKeyAccount = `apikey.${session}`;
126
- try {
127
- await keychainStore(apiKeyAccount, bindResult.key, credentialStorage);
128
- }
129
- catch (err) {
130
- console.error("[zivis] Failed to store token in OS keychain:", err instanceof Error ? err.message : err);
63
+ if (!mint.ok) {
64
+ console.error(`[zivis] Bind failed: ${mint.error}`);
131
65
  process.exit(1);
132
66
  }
133
- const maskedKey = `${bindResult.key.slice(0, 10)}...${bindResult.key.slice(-4)}`;
67
+ const maskedKey = `${mint.key.slice(0, 10)}...${mint.key.slice(-4)}`;
134
68
  console.log(`✓ Local Project Binding Token stored (${maskedKey})`);
135
- console.log(` Org: ${bindResult.orgName} (${bindResult.workosOrgId})`);
136
- console.log(` Key name: ${bindResult.keyName}`);
137
- // Step 5: Write IDE configs with --workspace so the MCP process is isolated.
69
+ console.log(` Org: ${mint.orgName} (${mint.workosOrgId})`);
70
+ console.log(` Key name: ${mint.keyName}`);
138
71
  try {
139
72
  await setupCursorWorkspace();
140
73
  }
@@ -154,7 +87,6 @@ export async function bindCommand(opts) {
154
87
  catch (err) {
155
88
  console.log(` WARNING: Failed to update Claude Code CLI config: ${err instanceof Error ? err.message : err}`);
156
89
  }
157
- // Step 6: Ensure the project binding file is up to date.
158
90
  await ensureProjectBinding({
159
91
  config,
160
92
  session,
@@ -1 +1 @@
1
- {"version":3,"file":"bind.js","sourceRoot":"","sources":["../../../src/commands/auth/bind.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bind.js","sourceRoot":"","sources":["../../../src/commands/auth/bind.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export function registerAuthCommands(program) {
9
9
  const auth = program.command("auth").description("authentication");
10
10
  auth
11
11
  .command("bind")
12
- .description("authenticate and mint a Local Project Binding Token for this repo (recommended for MCP/IDE use)")
12
+ .description("mint MCP API key for this repo (OAuth once + stored key). Normally automatic after login — use bind to repair.")
13
13
  .option("-y, --yes", "skip confirmation prompt")
14
14
  .action(async (opts) => {
15
15
  await bindCommand(opts);
@@ -18,17 +18,19 @@ export function registerAuthCommands(program) {
18
18
  .command("init")
19
19
  .description("interactive setup: authenticate, pick org, and bind this repo")
20
20
  .option("-s, --session <name>", "named session for multi-tenant")
21
+ .option("--skip-mint-key", "skip MCP API key mint after successful OAuth")
21
22
  .action(async (opts) => {
22
23
  await initCommand(opts);
23
24
  });
24
25
  auth
25
26
  .command("login")
26
- .description("OAuth PKCE login (stores tokens in OS keychain)")
27
+ .description("OAuth PKCE login; when this repo has a binding, mints MCP API key automatically")
27
28
  .option("-s, --session <name>", "named session for multi-tenant")
28
29
  .option("-o, --org <workosOrgId>", "scope JWT to a specific WorkOS org")
29
30
  .option("-y, --yes", "skip interactive confirmation")
30
31
  .option("--bind", "auto-write .zivis/project.json binding")
31
32
  .option("--no-bind", "skip project binding")
33
+ .option("--skip-mint-key", "skip MCP API key mint after successful OAuth")
32
34
  .action(async (opts) => {
33
35
  await loginCommand(opts);
34
36
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export interface InitCmdOpts {
2
2
  session?: string;
3
+ skipMintKey?: boolean;
3
4
  }
4
5
  export declare function initCommand(opts: InitCmdOpts): Promise<void>;
@@ -1,9 +1,10 @@
1
1
  import * as readline from "node:readline/promises";
2
2
  import { login, getStorageName, saveSessionEntry } from "@zivis/mcp/auth";
3
- import { credentialStorageFromConfig } from "@zivis/mcp/types";
3
+ import { credentialStorageFromConfig, DEFAULT_CONFIG } from "@zivis/mcp/types";
4
4
  import { resolveConfigFromBinding } from "@zivis/mcp/project-binding";
5
5
  import { fetchUserOrgs, extractEmail } from "../../internal/orgs.js";
6
6
  import { ensureProjectBinding } from "../../internal/project-binding.js";
7
+ import { discardOauthAfterLogin, tryAutoMintBindingTokenAfterLogin, } from "../../internal/binding-token-mint.js";
7
8
  import { decodeJwtPayload } from "@zivis/mcp/auth/jwt";
8
9
  import { detectIdesInRepo, writeGuidance } from "../../internal/ide-setup.js";
9
10
  async function prompt(question) {
@@ -58,7 +59,10 @@ async function offerGuidanceInstall(cwd) {
58
59
  export async function initCommand(opts) {
59
60
  // Prefer URL config from the existing project binding (if any) so that
60
61
  // re-running `zivis auth init` in a staging repo hits staging automatically.
61
- const config = resolveConfigFromBinding(process.cwd());
62
+ const config = {
63
+ ...DEFAULT_CONFIG,
64
+ ...resolveConfigFromBinding(process.cwd()),
65
+ };
62
66
  const session = opts.session || "default";
63
67
  const envLabel = config.apiBaseUrl.includes("staging") ? "staging" : "production";
64
68
  console.log(`Environment: ${envLabel} (${config.apiBaseUrl})`);
@@ -144,6 +148,14 @@ export async function initCommand(opts) {
144
148
  config, session, accessToken: retryTokens.access_token,
145
149
  organizationId: retryOrgId, cwd: process.cwd(), autoBind: true, skipBind: false, force: true,
146
150
  });
151
+ await tryAutoMintBindingTokenAfterLogin({
152
+ cwd: process.cwd(),
153
+ sessionName: session,
154
+ accessToken: retryTokens.access_token,
155
+ skip: opts.skipMintKey === true,
156
+ warnOnFailure: true,
157
+ });
158
+ await discardOauthAfterLogin({ session, config });
147
159
  await offerGuidanceInstall(process.cwd());
148
160
  process.exit(0);
149
161
  }
@@ -164,6 +176,14 @@ export async function initCommand(opts) {
164
176
  skipBind: false,
165
177
  force: true,
166
178
  });
179
+ await tryAutoMintBindingTokenAfterLogin({
180
+ cwd: process.cwd(),
181
+ sessionName: session,
182
+ accessToken: tokens.access_token,
183
+ skip: opts.skipMintKey === true,
184
+ warnOnFailure: true,
185
+ });
186
+ await discardOauthAfterLogin({ session, config });
167
187
  await offerGuidanceInstall(process.cwd());
168
188
  }
169
189
  else {
@@ -221,6 +241,14 @@ export async function initCommand(opts) {
221
241
  skipBind: false,
222
242
  force: true,
223
243
  });
244
+ await tryAutoMintBindingTokenAfterLogin({
245
+ cwd: process.cwd(),
246
+ sessionName: session,
247
+ accessToken: scopedTokens.access_token,
248
+ skip: opts.skipMintKey === true,
249
+ warnOnFailure: true,
250
+ });
251
+ await discardOauthAfterLogin({ session, config });
224
252
  await offerGuidanceInstall(process.cwd());
225
253
  }
226
254
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/auth/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/auth/init.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,7 @@ export interface LoginCmdOpts {
4
4
  yes?: boolean;
5
5
  bind?: boolean;
6
6
  noBind?: boolean;
7
+ /** CLI `--skip-mint-key`: do not POST /auth/bind after OAuth succeeds */
8
+ skipMintKey?: boolean;
7
9
  }
8
10
  export declare function loginCommand(opts: LoginCmdOpts): Promise<void>;
@@ -2,12 +2,16 @@ import { login } from "@zivis/mcp/auth";
2
2
  import { getStorageName } from "@zivis/mcp/auth";
3
3
  import { saveSessionEntry } from "@zivis/mcp/auth";
4
4
  import { detectProjectBinding, resolveConfigFromBinding } from "@zivis/mcp/project-binding";
5
- import { credentialStorageFromConfig } from "@zivis/mcp/types";
5
+ import { credentialStorageFromConfig, DEFAULT_CONFIG } from "@zivis/mcp/types";
6
6
  import { extractEmail } from "../../internal/orgs.js";
7
7
  import { ensureProjectBinding } from "../../internal/project-binding.js";
8
+ import { discardOauthAfterLogin, tryAutoMintBindingTokenAfterLogin, } from "../../internal/binding-token-mint.js";
8
9
  import { setupCursorWorkspace, setupVsCodeClaude, setupVsCodeCopilot, setupClaudeCodeCli, } from "../../internal/ide-setup.js";
9
10
  export async function loginCommand(opts) {
10
- const config = resolveConfigFromBinding(process.cwd());
11
+ const config = {
12
+ ...DEFAULT_CONFIG,
13
+ ...resolveConfigFromBinding(process.cwd()),
14
+ };
11
15
  const detected = detectProjectBinding(process.cwd());
12
16
  const session = opts.session || detected?.binding.session || config.session;
13
17
  let organizationId = opts.org;
@@ -61,6 +65,16 @@ export async function loginCommand(opts) {
61
65
  autoBind: opts.bind === true,
62
66
  skipBind: opts.noBind === true,
63
67
  });
68
+ await tryAutoMintBindingTokenAfterLogin({
69
+ cwd: process.cwd(),
70
+ sessionName,
71
+ accessToken: tokens.access_token,
72
+ skip: opts.skipMintKey === true,
73
+ warnOnFailure: true,
74
+ });
75
+ // OAuth has done its job (mint, org verify). MCP only reads apikey.<session>,
76
+ // so any OAuth tokens left in the keychain are dead weight + drift risk.
77
+ await discardOauthAfterLogin({ session, config });
64
78
  process.exit(0);
65
79
  }
66
80
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Mint a Local Project Binding Token via POST /api/auth/bind and store it as
3
+ * apikey.<session>. Shared by `zivis auth bind` and post-login auto-mint.
4
+ */
5
+ import { type ZivisConfig } from "@zivis/mcp/types";
6
+ export type MintBindingTokenResult = {
7
+ ok: true;
8
+ keyName: string;
9
+ key: string;
10
+ orgName: string;
11
+ workosOrgId: string;
12
+ } | {
13
+ ok: false;
14
+ error: string;
15
+ };
16
+ /**
17
+ * Calls the bind API with a fresh access JWT and persists the minted WorkOS API key.
18
+ * Does not start OAuth nor update IDE configs.
19
+ */
20
+ export declare function mintLocalProjectBindingToken(params: {
21
+ config: ZivisConfig;
22
+ session: string;
23
+ accessToken: string;
24
+ cwd: string;
25
+ }): Promise<MintBindingTokenResult>;
26
+ export interface TryAutoMintOptions {
27
+ cwd: string;
28
+ sessionName: string;
29
+ accessToken: string;
30
+ /** Caller flag (e.g. `zivis auth login --no-mint-key`). */
31
+ skip?: boolean;
32
+ /**
33
+ * When false (login after ensureProjectBinding): mint failures log a warning and return.
34
+ * When true (`zivis auth bind`): caller should exit 1 if result not ok — not handled here.
35
+ */
36
+ warnOnFailure: boolean;
37
+ }
38
+ /**
39
+ * After OAuth login finishes, mint an MCP-friendly API key if the repo is bound
40
+ * and JWT org matches `.zivis/project.json`.
41
+ * Skips if `apikey.<session>` already exists (avoid spawning keys on every login).
42
+ */
43
+ export declare function tryAutoMintBindingTokenAfterLogin(opts: TryAutoMintOptions): Promise<{
44
+ ran: boolean;
45
+ ok: boolean;
46
+ message?: string;
47
+ }>;
48
+ /**
49
+ * Drop the OAuth tokens stored under `oauth.<session>` (or `oauth` when no
50
+ * session). OAuth exists only to mint the MCP API key — once login finishes,
51
+ * MCP and tenant API calls go through `apikey.<session>`. Keeping the OAuth
52
+ * tokens around adds attack surface and risks org-drift if the refresh token
53
+ * outlives the binding.
54
+ *
55
+ * Best-effort: failures are swallowed so they cannot mask a successful mint.
56
+ */
57
+ export declare function discardOauthAfterLogin(params: {
58
+ session: string | undefined;
59
+ config: ZivisConfig;
60
+ }): Promise<void>;
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Mint a Local Project Binding Token via POST /api/auth/bind and store it as
3
+ * apikey.<session>. Shared by `zivis auth bind` and post-login auto-mint.
4
+ */
5
+ import * as os from "node:os";
6
+ import * as crypto from "node:crypto";
7
+ import * as child_process from "node:child_process";
8
+ import { keychainClearSession, keychainRead, keychainStore } from "@zivis/mcp/auth";
9
+ import { decodeJwtPayload } from "@zivis/mcp/auth/jwt";
10
+ import { DEFAULT_CONFIG, credentialStorageFromConfig } from "@zivis/mcp/types";
11
+ import { detectProjectBinding, resolveConfigFromBinding } from "@zivis/mcp/project-binding";
12
+ /** Same fingerprint strategy as bind command — stable-ish per-repo key name suffix. */
13
+ function getRepoFingerprint(cwd) {
14
+ try {
15
+ const remote = child_process
16
+ .execSync("git remote get-url origin 2>/dev/null", { cwd, encoding: "utf8" })
17
+ .trim();
18
+ if (remote) {
19
+ return crypto.createHash("sha256").update(remote).digest("hex").slice(0, 12);
20
+ }
21
+ }
22
+ catch {
23
+ /* no git or no remote */
24
+ }
25
+ return crypto.createHash("sha256").update(cwd).digest("hex").slice(0, 12);
26
+ }
27
+ /**
28
+ * Calls the bind API with a fresh access JWT and persists the minted WorkOS API key.
29
+ * Does not start OAuth nor update IDE configs.
30
+ */
31
+ export async function mintLocalProjectBindingToken(params) {
32
+ const { config, session, accessToken, cwd } = params;
33
+ const credentialStorage = credentialStorageFromConfig(config);
34
+ const repoFingerprint = getRepoFingerprint(cwd);
35
+ const hostname = os.hostname();
36
+ let bindResult;
37
+ try {
38
+ const response = await fetch(`${config.apiBaseUrl}/api/auth/bind`, {
39
+ method: "POST",
40
+ headers: {
41
+ Authorization: `Bearer ${accessToken}`,
42
+ "Content-Type": "application/json",
43
+ "User-Agent": "@zivis/cli",
44
+ },
45
+ body: JSON.stringify({ repoFingerprint, hostname }),
46
+ });
47
+ if (!response.ok) {
48
+ const body = (await response.json().catch(() => ({})));
49
+ return {
50
+ ok: false,
51
+ error: body.message ?? body.error ?? `HTTP ${response.status}`,
52
+ };
53
+ }
54
+ bindResult = (await response.json());
55
+ }
56
+ catch (err) {
57
+ return {
58
+ ok: false,
59
+ error: err instanceof Error ? err.message : String(err),
60
+ };
61
+ }
62
+ const apiKeyAccount = `apikey.${session}`;
63
+ try {
64
+ await keychainStore(apiKeyAccount, bindResult.key, credentialStorage);
65
+ }
66
+ catch (err) {
67
+ return {
68
+ ok: false,
69
+ error: err instanceof Error ? err.message : "Failed to store key in OS keychain",
70
+ };
71
+ }
72
+ return {
73
+ ok: true,
74
+ keyName: bindResult.keyName,
75
+ key: bindResult.key,
76
+ orgName: bindResult.orgName,
77
+ workosOrgId: bindResult.workosOrgId,
78
+ };
79
+ }
80
+ /**
81
+ * After OAuth login finishes, mint an MCP-friendly API key if the repo is bound
82
+ * and JWT org matches `.zivis/project.json`.
83
+ * Skips if `apikey.<session>` already exists (avoid spawning keys on every login).
84
+ */
85
+ export async function tryAutoMintBindingTokenAfterLogin(opts) {
86
+ if (opts.skip) {
87
+ return { ran: false, ok: true };
88
+ }
89
+ const fullConfig = { ...DEFAULT_CONFIG, ...resolveConfigFromBinding(opts.cwd) };
90
+ const claims = decodeJwtPayload(opts.accessToken);
91
+ const jwtOrgId = claims?.org_id;
92
+ if (!jwtOrgId) {
93
+ return {
94
+ ran: false,
95
+ ok: true,
96
+ message: "JWT has no org_id — skipped MCP binding-key mint.",
97
+ };
98
+ }
99
+ const detected = detectProjectBinding(opts.cwd);
100
+ const bindingOrg = detected?.binding.workosOrgId;
101
+ const bindingSession = detected?.binding.session;
102
+ if (!bindingOrg || !bindingSession) {
103
+ return {
104
+ ran: false,
105
+ ok: true,
106
+ message: "No project binding with workosOrgId — skipped MCP binding-key mint.",
107
+ };
108
+ }
109
+ if (bindingOrg !== jwtOrgId) {
110
+ const msg = `JWT org does not match project binding — skipped MCP binding-key mint.`;
111
+ if (opts.warnOnFailure) {
112
+ console.log("");
113
+ console.log(` WARNING: ${msg}`);
114
+ }
115
+ return { ran: false, ok: false, message: msg };
116
+ }
117
+ if (bindingSession !== opts.sessionName) {
118
+ const msg = `Session "${opts.sessionName}" does not match binding session "${bindingSession}" — skipped MCP binding-key mint.`;
119
+ if (opts.warnOnFailure) {
120
+ console.log("");
121
+ console.log(` WARNING: ${msg}`);
122
+ }
123
+ return { ran: false, ok: false, message: msg };
124
+ }
125
+ const st = credentialStorageFromConfig(fullConfig);
126
+ const existing = await keychainRead(`apikey.${bindingSession}`, st).catch(() => null);
127
+ if (existing) {
128
+ console.log("");
129
+ console.log(`✓ MCP API key already present for session "${bindingSession}" — skipped mint.`);
130
+ return { ran: false, ok: true };
131
+ }
132
+ console.log("");
133
+ console.log("Minting Local Project Binding Token for MCP (one-time per machine/session)…");
134
+ const result = await mintLocalProjectBindingToken({
135
+ config: fullConfig,
136
+ session: bindingSession,
137
+ accessToken: opts.accessToken,
138
+ cwd: opts.cwd,
139
+ });
140
+ if (!result.ok) {
141
+ const msg = result.error;
142
+ if (opts.warnOnFailure) {
143
+ printMintFailureBanner(msg);
144
+ }
145
+ return { ran: true, ok: false, message: msg };
146
+ }
147
+ console.log(`✓ MCP API key stored (${result.keyName}; org: ${result.orgName})`);
148
+ return { ran: true, ok: true };
149
+ }
150
+ /**
151
+ * Drop the OAuth tokens stored under `oauth.<session>` (or `oauth` when no
152
+ * session). OAuth exists only to mint the MCP API key — once login finishes,
153
+ * MCP and tenant API calls go through `apikey.<session>`. Keeping the OAuth
154
+ * tokens around adds attack surface and risks org-drift if the refresh token
155
+ * outlives the binding.
156
+ *
157
+ * Best-effort: failures are swallowed so they cannot mask a successful mint.
158
+ */
159
+ export async function discardOauthAfterLogin(params) {
160
+ const storage = credentialStorageFromConfig(params.config);
161
+ await keychainClearSession(params.session, storage).catch(() => {
162
+ /* OAuth was never written, nothing to clean up. */
163
+ });
164
+ }
165
+ function printMintFailureBanner(message) {
166
+ const bar = "═".repeat(70);
167
+ console.error("");
168
+ console.error(bar);
169
+ console.error(" ACTION REQUIRED — MCP API KEY WAS NOT MINTED");
170
+ console.error(bar);
171
+ console.error("");
172
+ console.error(` Reason: ${message}`);
173
+ console.error("");
174
+ console.error(" Why this matters:");
175
+ console.error(" The MCP server in your IDE authenticates with an org-scoped");
176
+ console.error(" API key. Without it, every zivis_* tool call will fail with");
177
+ console.error(" \"Not authenticated\" until you mint one.");
178
+ console.error("");
179
+ console.error(" To fix, run from this repo:");
180
+ console.error(" zivis auth bind");
181
+ console.error("");
182
+ console.error(bar);
183
+ console.error("");
184
+ }
185
+ //# sourceMappingURL=binding-token-mint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-token-mint.js","sourceRoot":"","sources":["../../src/internal/binding-token-mint.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zivis/cli",
3
- "version": "0.1.0-alpha.29",
3
+ "version": "0.1.0-alpha.30",
4
4
  "description": "ZIVIS CLI — threat modeling, scans, and MCP server for IDE integration",
5
5
  "type": "module",
6
6
  "bin": {
@@ -23,7 +23,7 @@
23
23
  "ignore": "^7.0.5",
24
24
  "open": "^10.1.0",
25
25
  "web-tree-sitter": "^0.26.8",
26
- "@zivis/mcp": "0.1.0-alpha.18"
26
+ "@zivis/mcp": "0.1.0-alpha.19"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/node": "^22.0.0",