authflow-cli 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +374 -265
  3. package/dist/cli.js +4 -27
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/connect.js +11 -1
  6. package/dist/commands/connect.js.map +1 -1
  7. package/dist/commands/get.d.ts +7 -0
  8. package/dist/commands/get.js +34 -0
  9. package/dist/commands/get.js.map +1 -0
  10. package/dist/commands/init.js +37 -5
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/list.d.ts +2 -0
  13. package/dist/commands/list.js +44 -0
  14. package/dist/commands/list.js.map +1 -0
  15. package/dist/commands/plan.d.ts +6 -0
  16. package/dist/commands/plan.js +26 -0
  17. package/dist/commands/plan.js.map +1 -0
  18. package/dist/commands/probe.js +1 -0
  19. package/dist/commands/probe.js.map +1 -1
  20. package/dist/commands/register.js +24 -0
  21. package/dist/commands/register.js.map +1 -1
  22. package/dist/commands/rotate-origin-key.d.ts +6 -0
  23. package/dist/commands/rotate-origin-key.js +56 -0
  24. package/dist/commands/rotate-origin-key.js.map +1 -0
  25. package/dist/commands/scaffold.js +31 -31
  26. package/dist/commands/set-connected-account.d.ts +7 -0
  27. package/dist/commands/set-connected-account.js +38 -0
  28. package/dist/commands/set-connected-account.js.map +1 -0
  29. package/dist/commands/set-origin.d.ts +5 -0
  30. package/dist/commands/set-origin.js +55 -19
  31. package/dist/commands/set-origin.js.map +1 -1
  32. package/dist/commands/status.d.ts +10 -0
  33. package/dist/commands/status.js +40 -0
  34. package/dist/commands/status.js.map +1 -0
  35. package/dist/mcp/server.js +58 -7
  36. package/dist/mcp/server.js.map +1 -1
  37. package/dist/program.d.ts +6 -0
  38. package/dist/program.js +46 -0
  39. package/dist/program.js.map +1 -0
  40. package/dist/rail.d.ts +5 -0
  41. package/dist/rail.js +14 -1
  42. package/dist/rail.js.map +1 -1
  43. package/dist/status.d.ts +34 -0
  44. package/dist/status.js +124 -0
  45. package/dist/status.js.map +1 -0
  46. package/dist/surface.d.ts +22 -0
  47. package/dist/surface.js +22 -0
  48. package/dist/surface.js.map +1 -0
  49. package/package.json +56 -56
@@ -0,0 +1,38 @@
1
+ import { requireAdminKey, requireIssuer } from "../config.js";
2
+ import { describePending, setConnectedAccount } from "../rail.js";
3
+ import { formatCursorMcpConfig, formatReadiness, resourceReadiness } from "../status.js";
4
+ /**
5
+ * The path for a creator who already has a Stripe Standard account on the platform. Hosted
6
+ * `connect` cannot take an acct_ id; this is the CLI verb that matches the HTTP PUT and the
7
+ * `authflow_set_connected_account` MCP tool.
8
+ */
9
+ export function setConnectedAccountCommand(program) {
10
+ program
11
+ .command("set-connected-account")
12
+ .description("Attach an existing Stripe Standard account (acct_…) to a resource")
13
+ .requiredOption("--slug <slug>", "Resource slug")
14
+ .requiredOption("--account <acct>", "Stripe Standard account id (acct_...)")
15
+ .option("--issuer <url>", "Authflow issuer (default: AUTHFLOW_ISSUER)")
16
+ .option("--admin-key <key>", "Admin API key (default: AUTHFLOW_ADMIN_API_KEY)")
17
+ .action(async (opts) => {
18
+ const auth = { issuer: requireIssuer(opts.issuer), adminKey: requireAdminKey(opts.adminKey) };
19
+ const receipt = await setConnectedAccount(auth, opts.slug, opts.account);
20
+ console.log(`Attached ${opts.account} to ${receipt.slug ?? opts.slug}.`);
21
+ console.log(`status: ${receipt.status ?? "draft"}`);
22
+ const pending = receipt.pending_requirements ?? [];
23
+ if (pending.length > 0) {
24
+ console.log("");
25
+ console.log("Still pending before go-live:");
26
+ for (const requirement of pending) {
27
+ console.log(` ${requirement}`);
28
+ console.log(` ${describePending(requirement, opts.slug)}`);
29
+ }
30
+ }
31
+ console.log("");
32
+ console.log(formatReadiness(resourceReadiness(receipt)));
33
+ for (const line of formatCursorMcpConfig(receipt)) {
34
+ console.log(line);
35
+ }
36
+ });
37
+ }
38
+ //# sourceMappingURL=set-connected-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-connected-account.js","sourceRoot":"","sources":["../../src/commands/set-connected-account.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEzF;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO;SACJ,OAAO,CAAC,uBAAuB,CAAC;SAChC,WAAW,CAAC,mEAAmE,CAAC;SAChF,cAAc,CAAC,eAAe,EAAE,eAAe,CAAC;SAChD,cAAc,CAAC,kBAAkB,EAAE,uCAAuC,CAAC;SAC3E,MAAM,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;SACtE,MAAM,CAAC,mBAAmB,EAAE,iDAAiD,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,IAA2E,EAAE,EAAE;QAC5F,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9F,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,OAAO,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;QAEpD,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC;QACnD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,OAAO,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEzD,KAAK,MAAM,IAAI,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -2,5 +2,10 @@ import type { Command } from "commander";
2
2
  /**
3
3
  * Second half of the register-now / deploy-later flow: point a draft resource at its origin, which
4
4
  * promotes it to live and makes it routable.
5
+ *
6
+ * The probe runs straight afterwards rather than being suggested. This is the moment the resource
7
+ * starts accepting real traffic, and "verify before you go live" printed as a closing line is a step
8
+ * that gets skipped — the first tenant through never ran it, and shipped an origin whose fail-closed
9
+ * behaviour nobody had checked.
5
10
  */
6
11
  export declare function setOriginCommand(program: Command): void;
@@ -1,38 +1,74 @@
1
- import { apiJson, bearer, requireAdminKey, requireIssuer } from "../config.js";
1
+ import { requireAdminKey, requireIssuer } from "../config.js";
2
+ import { assertNotMcpSuffixed, probeConformance, setOrigin } from "../rail.js";
3
+ import { formatCursorMcpConfig, formatReadiness, resourceReadiness } from "../status.js";
2
4
  /**
3
5
  * Second half of the register-now / deploy-later flow: point a draft resource at its origin, which
4
6
  * promotes it to live and makes it routable.
7
+ *
8
+ * The probe runs straight afterwards rather than being suggested. This is the moment the resource
9
+ * starts accepting real traffic, and "verify before you go live" printed as a closing line is a step
10
+ * that gets skipped — the first tenant through never ran it, and shipped an origin whose fail-closed
11
+ * behaviour nobody had checked.
5
12
  */
6
13
  export function setOriginCommand(program) {
7
14
  program
8
15
  .command("set-origin")
9
- .description("Set a resource's origin base URI, promoting a draft to live")
16
+ .description("Set a resource's origin base URI, promoting a draft to live, then probe it")
10
17
  .requiredOption("--slug <slug>", "Resource slug")
11
18
  .requiredOption("--origin-url <url>", "Origin base URI (no /mcp suffix — the gateway appends it)")
12
19
  .option("--issuer <url>", "Authflow issuer (default: AUTHFLOW_ISSUER)")
13
20
  .option("--admin-key <key>", "Admin API key (default: AUTHFLOW_ADMIN_API_KEY)")
21
+ .option("--origin-key <key>", "Origin API key for the probe (default: AUTHFLOW_ORIGIN_API_KEY)")
22
+ .option("--no-probe", "Skip the conformance probe after setting the origin")
14
23
  .action(async (opts) => {
15
24
  const issuer = requireIssuer(opts.issuer);
16
25
  const adminKey = requireAdminKey(opts.adminKey);
17
- // A receipt-configured origin serves MCP at {origin}/mcp, so a URL that already ends in /mcp
18
- // would be called at /mcp/mcp. Cheap to catch here, confusing to debug later.
19
- if (/\/mcp\/?$/i.test(opts.originUrl)) {
20
- throw new Error(`--origin-url must not end in /mcp. The gateway appends it, so ${opts.originUrl} would be called at ${opts.originUrl.replace(/\/$/, "")}/mcp.`);
26
+ assertNotMcpSuffixed(opts.originUrl);
27
+ const receipt = await setOrigin({ issuer, adminKey }, opts.slug, opts.originUrl);
28
+ console.log(`${receipt.slug ?? opts.slug} -> ${receipt.origin_base_uri ?? opts.originUrl}`);
29
+ console.log(`status: ${receipt.status ?? "live"}`);
30
+ console.log("");
31
+ for (const line of formatCursorMcpConfig(receipt)) {
32
+ console.log(line);
33
+ }
34
+ const readiness = resourceReadiness(receipt);
35
+ if (!readiness.ready) {
36
+ console.log("");
37
+ console.log(formatReadiness(readiness));
38
+ }
39
+ if (opts.probe === false) {
40
+ console.log("");
41
+ console.log("Probe skipped. Run it before real traffic: authflow probe");
42
+ return;
43
+ }
44
+ const originKey = (opts.originKey ?? process.env.AUTHFLOW_ORIGIN_API_KEY ?? "").trim();
45
+ if (!originKey) {
46
+ console.log("");
47
+ console.log("Cannot probe: no origin API key. The probe authenticates as the origin, and");
48
+ console.log("the admin key cannot stand in for it.");
49
+ console.log("");
50
+ console.log(" Set AUTHFLOW_ORIGIN_API_KEY (or pass --origin-key) and run: authflow probe");
51
+ console.log(` Lost the key? authflow rotate-origin-key --slug ${opts.slug}`);
52
+ return;
21
53
  }
22
- const { body } = await apiJson(`${issuer}/admin/resources/${encodeURIComponent(opts.slug)}/origin`, {
23
- method: "PUT",
24
- headers: {
25
- ...bearer(adminKey),
26
- "Content-Type": "application/json",
27
- Accept: "application/json",
28
- },
29
- body: JSON.stringify({ origin_base_uri: opts.originUrl }),
30
- expectedStatuses: [200],
31
- });
32
- console.log(`${body.slug ?? opts.slug} -> ${body.origin_base_uri ?? opts.originUrl}`);
33
- console.log(`status: ${body.status ?? "live"}`);
34
54
  console.log("");
35
- console.log("Verify fail-closed behaviour before sending real traffic: authflow probe");
55
+ console.log("Probing the origin for fail-closed behaviour...");
56
+ console.log("");
57
+ const report = await probeConformance(issuer, originKey);
58
+ for (const check of report.checks) {
59
+ console.log(` ${check.pass ? "PASS" : "FAIL"} ${check.name}`);
60
+ if (!check.pass) {
61
+ console.log(` expected ${check.expected}, got ${check.observed}`);
62
+ }
63
+ }
64
+ console.log("");
65
+ if (report.pass) {
66
+ console.log("Conformance: PASS. The origin is ready for paid traffic.");
67
+ return;
68
+ }
69
+ console.log("Conformance: FAIL. The resource is live but the origin does not fail closed,");
70
+ console.log("which means unauthenticated callers may reach paid tools. Fix before cutover.");
71
+ process.exitCode = 1;
36
72
  });
37
73
  }
38
74
  //# sourceMappingURL=set-origin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-origin.js","sourceRoot":"","sources":["../../src/commands/set-origin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/E;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,cAAc,CAAC,eAAe,EAAE,eAAe,CAAC;SAChD,cAAc,CAAC,oBAAoB,EAAE,2DAA2D,CAAC;SACjG,MAAM,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;SACtE,MAAM,CAAC,mBAAmB,EAAE,iDAAiD,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,IAA6E,EAAE,EAAE;QAC9F,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEhD,6FAA6F;QAC7F,8EAA8E;QAC9E,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,iEAAiE,IAAI,CAAC,SAAS,uBAAuB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAC/I,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAC5B,GAAG,MAAM,oBAAoB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EACnE;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACnB,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC3B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YACzD,gBAAgB,EAAE,CAAC,GAAG,CAAC;SACxB,CACF,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACtF,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"set-origin.js","sourceRoot":"","sources":["../../src/commands/set-origin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Command } from "commander";
2
+ /**
3
+ * Where onboarding actually got to, in one command.
4
+ *
5
+ * `doctor` answers "is the rail up", which is a different question: the rail can be perfectly
6
+ * healthy while a resource sits half-configured and 403s every request. This reads the live receipt
7
+ * and prints the remaining steps with the command for each, so a run interrupted halfway — a deploy
8
+ * that got backgrounded, a terminal that was closed — can be picked up without guessing.
9
+ */
10
+ export declare function statusCommand(program: Command): void;
@@ -0,0 +1,40 @@
1
+ import { requireAdminKey, requireIssuer } from "../config.js";
2
+ import { getResource } from "../rail.js";
3
+ import { formatCursorMcpConfig, formatReadiness, resourceReadiness } from "../status.js";
4
+ /**
5
+ * Where onboarding actually got to, in one command.
6
+ *
7
+ * `doctor` answers "is the rail up", which is a different question: the rail can be perfectly
8
+ * healthy while a resource sits half-configured and 403s every request. This reads the live receipt
9
+ * and prints the remaining steps with the command for each, so a run interrupted halfway — a deploy
10
+ * that got backgrounded, a terminal that was closed — can be picked up without guessing.
11
+ */
12
+ export function statusCommand(program) {
13
+ program
14
+ .command("status")
15
+ .description("Show how far a resource is from taking paid traffic, and the next command to run")
16
+ .requiredOption("--slug <slug>", "Resource slug")
17
+ .option("--issuer <url>", "Authflow issuer (default: AUTHFLOW_ISSUER)")
18
+ .option("--admin-key <key>", "Admin API key (default: AUTHFLOW_ADMIN_API_KEY)")
19
+ .option("--json", "Emit the readiness report as JSON")
20
+ .action(async (opts) => {
21
+ const auth = { issuer: requireIssuer(opts.issuer), adminKey: requireAdminKey(opts.adminKey) };
22
+ const receipt = await getResource(auth, opts.slug);
23
+ const readiness = resourceReadiness(receipt);
24
+ if (opts.json) {
25
+ console.log(JSON.stringify(readiness, null, 2));
26
+ }
27
+ else {
28
+ console.log(formatReadiness(readiness));
29
+ if (readiness.ready) {
30
+ console.log("");
31
+ for (const line of formatCursorMcpConfig(receipt)) {
32
+ console.log(line);
33
+ }
34
+ }
35
+ }
36
+ // Non-zero on a resource that cannot serve paid traffic, so this is usable as a deploy gate.
37
+ process.exitCode = readiness.ready ? 0 : 1;
38
+ });
39
+ }
40
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEzF;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kFAAkF,CAAC;SAC/F,cAAc,CAAC,eAAe,EAAE,eAAe,CAAC;SAChD,MAAM,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;SACtE,MAAM,CAAC,mBAAmB,EAAE,iDAAiD,CAAC;SAC9E,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAA0E,EAAE,EAAE;QAC3F,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9F,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;YAExC,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,KAAK,MAAM,IAAI,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAClD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,6FAA6F;QAC7F,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -4,8 +4,9 @@ import { z } from "zod";
4
4
  import { requireAdminKey, requireIssuer } from "../config.js";
5
5
  import { formatDoctorReport, runDoctor } from "../doctor.js";
6
6
  import { buildIntegrationPlan, integrationFrameworks, isIntegrationFramework, } from "../integration.js";
7
- import { describePending, getResource, mintDevHeader, probeConformance, registerResource, rotateOriginKey, setConnectedAccount, setOrigin, signupTenant, startConnect, } from "../rail.js";
7
+ import { describePending, getResource, listResources, mintDevHeader, probeConformance, registerResource, rotateOriginKey, setConnectedAccount, setOrigin, signupTenant, startConnect, } from "../rail.js";
8
8
  import { secretTargets, writeAdminApiKey, writeOriginApiKey } from "../secrets.js";
9
+ import { cursorMcpConfig, resourceReadiness } from "../status.js";
9
10
  function ok(payload) {
10
11
  const text = typeof payload === "string" ? payload : JSON.stringify(payload, null, 2);
11
12
  return { content: [{ type: "text", text }] };
@@ -29,13 +30,21 @@ async function attempt(run) {
29
30
  function adminAuth(issuer, adminKey) {
30
31
  return { issuer: requireIssuer(issuer), adminKey: requireAdminKey(adminKey) };
31
32
  }
32
- /** The receipt plus the one thing an agent actually needs next. */
33
+ /**
34
+ * The receipt plus the two things an agent actually needs next: what is still outstanding, and the
35
+ * client config for the gateway. The config rides along on every receipt because the alternative is
36
+ * the agent assembling a URL itself, and the first one to try that used the origin's own hostname —
37
+ * which works until the paywall is switched on and then fails as an unsigned request.
38
+ */
33
39
  function withNextSteps(receipt) {
34
40
  const pending = receipt.pending_requirements ?? [];
35
41
  return {
36
42
  ...receipt,
37
43
  next_steps: pending.map((requirement) => describePending(requirement, receipt.slug ?? "")),
38
44
  ready_for_traffic: pending.length === 0 && receipt.status === "live",
45
+ client_mcp_config: cursorMcpConfig(receipt),
46
+ client_mcp_config_note: "Point MCP clients at this gateway URL. The origin hostname rejects unsigned requests with " +
47
+ "403 invalid_origin_identity, which is correct behaviour and not an auth bug to debug.",
39
48
  };
40
49
  }
41
50
  const issuerArg = z
@@ -47,14 +56,21 @@ const adminKeyArg = z
47
56
  .optional()
48
57
  .describe("Admin API key. Defaults to the AUTHFLOW_ADMIN_API_KEY environment variable.");
49
58
  export function createOnboardingServer() {
50
- const server = new McpServer({ name: "authflow-onboarding", version: "0.1.0" }, {
51
- instructions: "Onboard an MCP server onto the Authflow rail. Typical order: authflow_doctor to confirm " +
52
- "the rail is reachable, authflow_signup if AUTHFLOW_ADMIN_API_KEY is missing, " +
59
+ const server = new McpServer({ name: "authflow-onboarding", version: "0.3.0" }, {
60
+ instructions: "Onboard an MCP server onto the Authflow rail. This server talks to the rail; the docs MCP " +
61
+ "(https://docs.authflow.ai/mcp) only reads the contract. Typical order: authflow_doctor to " +
62
+ "confirm the rail is reachable, authflow_signup if AUTHFLOW_ADMIN_API_KEY is missing, " +
53
63
  "authflow_register_resource to create a draft and capture the origin API key, " +
54
64
  "authflow_integration_plan to get framework-specific code to apply to the user's " +
55
- "codebase, authflow_start_stripe_connect for the hosted KYC link, authflow_set_origin once " +
65
+ "codebase, then Stripe — authflow_set_connected_account if they already have acct_…, " +
66
+ "otherwise authflow_start_stripe_connect for the hosted KYC link — authflow_set_origin once " +
56
67
  "the origin is deployed, then authflow_probe before real traffic. Read pending_requirements " +
57
- "on any receipt to see what still blocks go-live.",
68
+ "on any receipt to see what still blocks go-live. " +
69
+ "If you are resuming and unsure what already happened, call authflow_status before doing " +
70
+ "anything else; use authflow_list_resources when the slug itself is unknown. " +
71
+ "When telling the user how to connect a client, always give them client_mcp_config from " +
72
+ "the receipt — it names the gateway URL. Never hand them the origin's own hostname: the " +
73
+ "origin rejects unsigned requests with 403 invalid_origin_identity by design.",
58
74
  });
59
75
  server.registerTool("authflow_signup", {
60
76
  title: "Mint a per-tenant admin API key",
@@ -203,6 +219,41 @@ export function createOnboardingServer() {
203
219
  inputSchema: { slug: z.string(), issuer: issuerArg, admin_key: adminKeyArg },
204
220
  annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: true },
205
221
  }, async ({ slug, issuer, admin_key }) => attempt(async () => ok(withNextSteps(await getResource(adminAuth(issuer, admin_key), slug)))));
222
+ server.registerTool("authflow_list_resources", {
223
+ title: "List every resource this admin key owns",
224
+ description: "Return all resources registered with this admin key, with status and pending_requirements. " +
225
+ "Use this when a slug is unknown or a registration attempt reported the slug was taken: an " +
226
+ "absent slug here means another tenant owns it and a different name is needed.",
227
+ inputSchema: { issuer: issuerArg, admin_key: adminKeyArg },
228
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: true },
229
+ }, async ({ issuer, admin_key }) => attempt(async () => {
230
+ const resources = await listResources(adminAuth(issuer, admin_key));
231
+ return ok({
232
+ count: resources.length,
233
+ resources: resources.map((resource) => ({
234
+ slug: resource.slug,
235
+ status: resource.status,
236
+ gateway_url: resource.gateway_url ?? resource.resource,
237
+ pending_requirements: resource.pending_requirements ?? [],
238
+ })),
239
+ });
240
+ }));
241
+ server.registerTool("authflow_status", {
242
+ title: "Show how far a resource is from taking paid traffic",
243
+ description: "Per-step readiness for one resource — registered, origin set, Stripe connected, KYC " +
244
+ "complete, probe run — each with the command that clears it. Use this to resume an " +
245
+ "onboarding whose earlier steps may or may not have completed, and to tell a " +
246
+ "half-configured resource from a broken one: both reject traffic identically from outside. " +
247
+ "authflow_doctor answers whether the rail is up, which is a different question.",
248
+ inputSchema: { slug: z.string(), issuer: issuerArg, admin_key: adminKeyArg },
249
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: true },
250
+ }, async ({ slug, issuer, admin_key }) => attempt(async () => {
251
+ const receipt = await getResource(adminAuth(issuer, admin_key), slug);
252
+ return ok({
253
+ ...resourceReadiness(receipt),
254
+ client_mcp_config: cursorMcpConfig(receipt),
255
+ });
256
+ }));
206
257
  server.registerTool("authflow_integration_plan", {
207
258
  title: "Get framework-specific code and configuration for the origin",
208
259
  description: "Return the exact configuration, code snippets, verification steps, and hard invariants " +
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * Commander program with every command registered. Split from the argv entrypoint so tests can
4
+ * inspect the surface without parsing process.argv.
5
+ */
6
+ export declare function createProgram(): Command;
@@ -0,0 +1,46 @@
1
+ import { Command } from "commander";
2
+ import { connectCommand } from "./commands/connect.js";
3
+ import { doctorCommand } from "./commands/doctor.js";
4
+ import { getCommand } from "./commands/get.js";
5
+ import { initCommand } from "./commands/init.js";
6
+ import { listCommand } from "./commands/list.js";
7
+ import { mcpCommand } from "./commands/mcp.js";
8
+ import { signupCommand } from "./commands/signup.js";
9
+ import { planCommand } from "./commands/plan.js";
10
+ import { registerCommand } from "./commands/register.js";
11
+ import { rotateOriginKeyCommand } from "./commands/rotate-origin-key.js";
12
+ import { setConnectedAccountCommand } from "./commands/set-connected-account.js";
13
+ import { setOriginCommand } from "./commands/set-origin.js";
14
+ import { mintHeaderCommand } from "./commands/mint-header.js";
15
+ import { probeCommand } from "./commands/probe.js";
16
+ import { scaffoldCommand } from "./commands/scaffold.js";
17
+ import { statusCommand } from "./commands/status.js";
18
+ /**
19
+ * Commander program with every command registered. Split from the argv entrypoint so tests can
20
+ * inspect the surface without parsing process.argv.
21
+ */
22
+ export function createProgram() {
23
+ const program = new Command();
24
+ program
25
+ .name("authflow")
26
+ .description("Authflow Rail onboarding CLI")
27
+ .version("0.3.0");
28
+ signupCommand(program);
29
+ initCommand(program);
30
+ registerCommand(program);
31
+ connectCommand(program);
32
+ setConnectedAccountCommand(program);
33
+ setOriginCommand(program);
34
+ statusCommand(program);
35
+ getCommand(program);
36
+ listCommand(program);
37
+ planCommand(program);
38
+ rotateOriginKeyCommand(program);
39
+ mintHeaderCommand(program);
40
+ probeCommand(program);
41
+ doctorCommand(program);
42
+ scaffoldCommand(program);
43
+ mcpCommand(program);
44
+ return program;
45
+ }
46
+ //# sourceMappingURL=program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACpC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,UAAU,CAAC,OAAO,CAAC,CAAC;IACpB,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3B,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,UAAU,CAAC,OAAO,CAAC,CAAC;IAEpB,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/rail.d.ts CHANGED
@@ -59,6 +59,11 @@ export type AdminAuth = {
59
59
  export declare function signupTenant(issuer: string, email: string): Promise<TenantSignup>;
60
60
  export declare function registerResource(auth: AdminAuth, draft: ResourceDraft): Promise<RegistrationReceipt & Record<string, unknown>>;
61
61
  export declare function getResource(auth: AdminAuth, slug: string): Promise<RegistrationReceipt>;
62
+ /**
63
+ * Every resource this admin key owns. The recovery path for a forgotten slug, which `getResource`
64
+ * cannot be: it needs the slug you are trying to remember.
65
+ */
66
+ export declare function listResources(auth: AdminAuth): Promise<RegistrationReceipt[]>;
62
67
  export declare function setOrigin(auth: AdminAuth, slug: string, originBaseUri: string): Promise<RegistrationReceipt>;
63
68
  export declare function setConnectedAccount(auth: AdminAuth, slug: string, connectedAccountId: string): Promise<RegistrationReceipt>;
64
69
  export declare function startConnect(auth: AdminAuth, slug: string, email?: string): Promise<ConnectOnboarding>;
package/dist/rail.js CHANGED
@@ -26,6 +26,18 @@ export async function getResource(auth, slug) {
26
26
  });
27
27
  return body;
28
28
  }
29
+ /**
30
+ * Every resource this admin key owns. The recovery path for a forgotten slug, which `getResource`
31
+ * cannot be: it needs the slug you are trying to remember.
32
+ */
33
+ export async function listResources(auth) {
34
+ const { body } = await apiJson(`${auth.issuer}/admin/resources`, {
35
+ method: "GET",
36
+ headers: { ...bearer(auth.adminKey), Accept: "application/json" },
37
+ expectedStatuses: [200],
38
+ });
39
+ return body.resources ?? [];
40
+ }
29
41
  export async function setOrigin(auth, slug, originBaseUri) {
30
42
  assertNotMcpSuffixed(originBaseUri);
31
43
  const { body } = await apiJson(`${auth.issuer}/admin/resources/${encodeURIComponent(slug)}/origin`, {
@@ -105,7 +117,8 @@ export function describePending(requirement, slug) {
105
117
  case "origin_base_uri":
106
118
  return `Deploy the origin, then: authflow set-origin --slug ${slug} --origin-url https://your-origin.example`;
107
119
  case "connected_account_id":
108
- return `Connect Stripe: authflow connect --slug ${slug}`;
120
+ return (`Connect Stripe: authflow connect --slug ${slug}` +
121
+ ` (or, if you already have acct_…: authflow set-connected-account --slug ${slug} --account acct_…)`);
109
122
  case "stripe_onboarding_complete":
110
123
  return `Finish Stripe KYC in the browser, then re-run: authflow connect --slug ${slug}`;
111
124
  default:
package/dist/rail.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rail.js","sourceRoot":"","sources":["../src/rail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rail.js","sourceRoot":"","sources":["../src/rail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { RegistrationReceipt } from "./config.js";
2
+ /**
3
+ * Turning a receipt into "what is done, what is left, and what do I type next".
4
+ *
5
+ * Onboarding is several commands that each half-configure a resource, and the state lived nowhere a
6
+ * tenant could see it: a half-configured resource answers 403 exactly like a broken one. The first
7
+ * tenant through deployed an origin, never ran set-origin, and spent the afternoon reading gateway
8
+ * errors that could not have told them which step was missing.
9
+ */
10
+ /** MCP client config for the gateway URL — what a subscriber pastes to reach the paid server. */
11
+ export declare function cursorMcpConfig(receipt: RegistrationReceipt): Record<string, unknown> | undefined;
12
+ /**
13
+ * The single output that would have prevented the worst failure of the first onboarding: the client
14
+ * was pointed at the origin's own hostname, which worked right up until the paywall went live and
15
+ * then failed as an unsigned request. The gateway URL is known the moment registration returns, so
16
+ * there is no reason to make anyone assemble it.
17
+ */
18
+ export declare function formatCursorMcpConfig(receipt: RegistrationReceipt): string[];
19
+ export type ReadinessStep = {
20
+ name: string;
21
+ done: boolean;
22
+ detail: string;
23
+ /** What to run next. Absent once the step is done. */
24
+ command?: string;
25
+ };
26
+ export type Readiness = {
27
+ slug: string;
28
+ status: string;
29
+ ready: boolean;
30
+ gatewayUrl?: string;
31
+ steps: ReadinessStep[];
32
+ };
33
+ export declare function resourceReadiness(receipt: RegistrationReceipt): Readiness;
34
+ export declare function formatReadiness(readiness: Readiness): string;