@rubytech/create-maxy-code 0.1.451 → 0.1.453

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 (140) hide show
  1. package/dist/__tests__/preserve-house-cloudflare.test.js +81 -2
  2. package/dist/index.js +10 -1
  3. package/dist/preserve-house-cloudflare.js +49 -2
  4. package/package.json +1 -1
  5. package/payload/platform/lib/storage-broker/dist/__tests__/cf-exec.test.js +24 -0
  6. package/payload/platform/lib/storage-broker/dist/__tests__/cf-exec.test.js.map +1 -1
  7. package/payload/platform/lib/storage-broker/dist/__tests__/house-scoped-token.test.d.ts +2 -0
  8. package/payload/platform/lib/storage-broker/dist/__tests__/house-scoped-token.test.d.ts.map +1 -0
  9. package/payload/platform/lib/storage-broker/dist/__tests__/house-scoped-token.test.js +48 -0
  10. package/payload/platform/lib/storage-broker/dist/__tests__/house-scoped-token.test.js.map +1 -0
  11. package/payload/platform/lib/storage-broker/dist/__tests__/remediate.test.js +6 -0
  12. package/payload/platform/lib/storage-broker/dist/__tests__/remediate.test.js.map +1 -1
  13. package/payload/platform/lib/storage-broker/dist/bin/remediate-run.d.ts.map +1 -1
  14. package/payload/platform/lib/storage-broker/dist/bin/remediate-run.js +14 -4
  15. package/payload/platform/lib/storage-broker/dist/bin/remediate-run.js.map +1 -1
  16. package/payload/platform/lib/storage-broker/dist/cf-exec.d.ts +1 -0
  17. package/payload/platform/lib/storage-broker/dist/cf-exec.d.ts.map +1 -1
  18. package/payload/platform/lib/storage-broker/dist/cf-exec.js +18 -0
  19. package/payload/platform/lib/storage-broker/dist/cf-exec.js.map +1 -1
  20. package/payload/platform/lib/storage-broker/dist/house-scoped-token.d.ts +9 -0
  21. package/payload/platform/lib/storage-broker/dist/house-scoped-token.d.ts.map +1 -0
  22. package/payload/platform/lib/storage-broker/dist/house-scoped-token.js +60 -0
  23. package/payload/platform/lib/storage-broker/dist/house-scoped-token.js.map +1 -0
  24. package/payload/platform/lib/storage-broker/dist/index.d.ts +1 -0
  25. package/payload/platform/lib/storage-broker/dist/index.d.ts.map +1 -1
  26. package/payload/platform/lib/storage-broker/dist/index.js +1 -0
  27. package/payload/platform/lib/storage-broker/dist/index.js.map +1 -1
  28. package/payload/platform/lib/storage-broker/dist/remediate.d.ts.map +1 -1
  29. package/payload/platform/lib/storage-broker/dist/remediate.js +14 -1
  30. package/payload/platform/lib/storage-broker/dist/remediate.js.map +1 -1
  31. package/payload/platform/lib/storage-broker/src/__tests__/cf-exec.test.ts +28 -1
  32. package/payload/platform/lib/storage-broker/src/__tests__/house-scoped-token.test.ts +48 -0
  33. package/payload/platform/lib/storage-broker/src/__tests__/remediate.test.ts +8 -0
  34. package/payload/platform/lib/storage-broker/src/bin/remediate-run.ts +17 -5
  35. package/payload/platform/lib/storage-broker/src/cf-exec.ts +22 -0
  36. package/payload/platform/lib/storage-broker/src/house-scoped-token.ts +72 -0
  37. package/payload/platform/lib/storage-broker/src/index.ts +1 -0
  38. package/payload/platform/lib/storage-broker/src/remediate.ts +14 -1
  39. package/payload/platform/plugins/admin/PLUGIN.md +1 -0
  40. package/payload/platform/plugins/admin/hooks/__tests__/quote-render-gate.test.sh +107 -0
  41. package/payload/platform/plugins/admin/hooks/quote-render-gate.sh +74 -0
  42. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +4 -4
  43. package/payload/platform/plugins/cloudflare/bin/__tests__/cf-token.test.sh +25 -1
  44. package/payload/platform/plugins/cloudflare/bin/cf-token.sh +9 -1
  45. package/payload/platform/plugins/cloudflare/references/api.md +3 -1
  46. package/payload/platform/plugins/cloudflare/skills/cloudflare/SKILL.md +1 -1
  47. package/payload/platform/plugins/docs/references/outlook-guide.md +3 -3
  48. package/payload/platform/plugins/outlook/.claude-plugin/plugin.json +1 -1
  49. package/payload/platform/plugins/outlook/PLUGIN.md +3 -3
  50. package/payload/platform/plugins/outlook/mcp/dist/__tests__/complete-registration.test.d.ts +2 -0
  51. package/payload/platform/plugins/outlook/mcp/dist/__tests__/complete-registration.test.d.ts.map +1 -0
  52. package/payload/platform/plugins/outlook/mcp/dist/__tests__/complete-registration.test.js +131 -0
  53. package/payload/platform/plugins/outlook/mcp/dist/__tests__/complete-registration.test.js.map +1 -0
  54. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-paged.test.d.ts +2 -0
  55. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-paged.test.d.ts.map +1 -0
  56. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-paged.test.js +55 -0
  57. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-paged.test.js.map +1 -0
  58. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-list-paging.test.d.ts +2 -0
  59. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-list-paging.test.d.ts.map +1 -0
  60. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-list-paging.test.js +120 -0
  61. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-list-paging.test.js.map +1 -0
  62. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-paging.test.d.ts +2 -0
  63. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-paging.test.d.ts.map +1 -0
  64. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-paging.test.js +66 -0
  65. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-paging.test.js.map +1 -0
  66. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pending-scan.test.d.ts +2 -0
  67. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pending-scan.test.d.ts.map +1 -0
  68. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pending-scan.test.js +48 -0
  69. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pending-scan.test.js.map +1 -0
  70. package/payload/platform/plugins/outlook/mcp/dist/auth/complete-registration.d.ts +31 -0
  71. package/payload/platform/plugins/outlook/mcp/dist/auth/complete-registration.d.ts.map +1 -0
  72. package/payload/platform/plugins/outlook/mcp/dist/auth/complete-registration.js +47 -0
  73. package/payload/platform/plugins/outlook/mcp/dist/auth/complete-registration.js.map +1 -0
  74. package/payload/platform/plugins/outlook/mcp/dist/auth/pending-scan.d.ts +11 -0
  75. package/payload/platform/plugins/outlook/mcp/dist/auth/pending-scan.d.ts.map +1 -0
  76. package/payload/platform/plugins/outlook/mcp/dist/auth/pending-scan.js +31 -0
  77. package/payload/platform/plugins/outlook/mcp/dist/auth/pending-scan.js.map +1 -0
  78. package/payload/platform/plugins/outlook/mcp/dist/index.js +13 -9
  79. package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -1
  80. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts +19 -0
  81. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts.map +1 -1
  82. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js +14 -0
  83. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js.map +1 -1
  84. package/payload/platform/plugins/outlook/mcp/dist/scripts/complete-registration.d.ts +2 -0
  85. package/payload/platform/plugins/outlook/mcp/dist/scripts/complete-registration.d.ts.map +1 -0
  86. package/payload/platform/plugins/outlook/mcp/dist/scripts/complete-registration.js +111 -0
  87. package/payload/platform/plugins/outlook/mcp/dist/scripts/complete-registration.js.map +1 -0
  88. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.d.ts +16 -1
  89. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.d.ts.map +1 -1
  90. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.js +37 -7
  91. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.js.map +1 -1
  92. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts +12 -1
  93. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts.map +1 -1
  94. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js +16 -12
  95. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js.map +1 -1
  96. package/payload/platform/plugins/outlook/references/auth.md +2 -0
  97. package/payload/platform/plugins/outlook/references/graph-surfaces.md +20 -9
  98. package/payload/platform/plugins/outlook/skills/outlook/SKILL.md +7 -7
  99. package/payload/platform/plugins/scheduling/PLUGIN.md +1 -1
  100. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/house-scoped-token.test.d.ts +2 -0
  101. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/house-scoped-token.test.d.ts.map +1 -0
  102. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/house-scoped-token.test.js +36 -0
  103. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/house-scoped-token.test.js.map +1 -0
  104. package/payload/platform/plugins/scheduling/mcp/dist/lib/house-scoped-token.d.ts +9 -0
  105. package/payload/platform/plugins/scheduling/mcp/dist/lib/house-scoped-token.d.ts.map +1 -0
  106. package/payload/platform/plugins/scheduling/mcp/dist/lib/house-scoped-token.js +51 -0
  107. package/payload/platform/plugins/scheduling/mcp/dist/lib/house-scoped-token.js.map +1 -0
  108. package/payload/platform/plugins/scheduling/mcp/dist/scripts/publish-availability.js +16 -2
  109. package/payload/platform/plugins/scheduling/mcp/dist/scripts/publish-availability.js.map +1 -1
  110. package/payload/platform/plugins/scheduling/mcp/dist/scripts/reconcile-bookings.js +16 -2
  111. package/payload/platform/plugins/scheduling/mcp/dist/scripts/reconcile-bookings.js.map +1 -1
  112. package/payload/platform/scripts/lib/provision-account-dir.sh +6 -0
  113. package/payload/platform/scripts/smoke-boot-services.sh +1 -0
  114. package/payload/platform/scripts/voice-mirror-audit.sh +70 -0
  115. package/payload/platform/services/claude-session-manager/dist/config.d.ts +5 -0
  116. package/payload/platform/services/claude-session-manager/dist/config.d.ts.map +1 -1
  117. package/payload/platform/services/claude-session-manager/dist/config.js +7 -1
  118. package/payload/platform/services/claude-session-manager/dist/config.js.map +1 -1
  119. package/payload/platform/services/claude-session-manager/dist/fs-watcher.d.ts +15 -0
  120. package/payload/platform/services/claude-session-manager/dist/fs-watcher.d.ts.map +1 -1
  121. package/payload/platform/services/claude-session-manager/dist/fs-watcher.js +38 -3
  122. package/payload/platform/services/claude-session-manager/dist/fs-watcher.js.map +1 -1
  123. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  124. package/payload/platform/services/claude-session-manager/dist/http-server.js +21 -10
  125. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  126. package/payload/platform/services/claude-session-manager/dist/index.js +20 -0
  127. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  128. package/payload/platform/services/claude-session-manager/dist/plugin-enum.d.ts +34 -0
  129. package/payload/platform/services/claude-session-manager/dist/plugin-enum.d.ts.map +1 -0
  130. package/payload/platform/services/claude-session-manager/dist/plugin-enum.js +66 -0
  131. package/payload/platform/services/claude-session-manager/dist/plugin-enum.js.map +1 -0
  132. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  133. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +8 -1
  134. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  135. package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts.map +1 -1
  136. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js +7 -0
  137. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js.map +1 -1
  138. package/payload/server/{chunk-TTKYHVA7.js → chunk-SDYRKIYY.js} +70 -3
  139. package/payload/server/server.js +59 -10
  140. package/payload/server/{src-FBUXV2FV.js → src-554BYJMN.js} +5 -1
@@ -6,10 +6,10 @@
6
6
  // Runs under `node --test dist/__tests__/*`.
7
7
  import test from "node:test";
8
8
  import assert from "node:assert/strict";
9
- import { mkdtempSync, mkdirSync, writeFileSync, readFileSync, existsSync, rmSync } from "node:fs";
9
+ import { mkdtempSync, mkdirSync, writeFileSync, readFileSync, existsSync, rmSync, statSync } from "node:fs";
10
10
  import { tmpdir } from "node:os";
11
11
  import { join } from "node:path";
12
- import { backupHouseCloudflare, restoreHouseCloudflare } from "../preserve-house-cloudflare.js";
12
+ import { backupHouseCloudflare, restoreHouseCloudflare, migrateHouseCredentialFromAccount, } from "../preserve-house-cloudflare.js";
13
13
  function makeDirs() {
14
14
  const root = mkdtempSync(join(tmpdir(), "house-1664-"));
15
15
  const installDir = join(root, "install");
@@ -57,3 +57,82 @@ test("a fresh install with no house credential creates nothing", () => {
57
57
  rmSync(root, { recursive: true, force: true });
58
58
  }
59
59
  });
60
+ // Task 1671 — upgrade-time relocation of a per-account master into the house
61
+ // file when none exists yet (a pre-1631 install crossing the 0.1.449 boundary).
62
+ function acctSecrets(installDir, id, contents) {
63
+ const dir = join(installDir, "data/accounts", id, "secrets");
64
+ mkdirSync(dir, { recursive: true });
65
+ const p = join(dir, "cloudflare.env");
66
+ writeFileSync(p, contents);
67
+ return p;
68
+ }
69
+ test("relocates a per-account master into the house file, mode 600, account untouched", () => {
70
+ const { root, installDir } = makeDirs();
71
+ try {
72
+ const acct = acctSecrets(installDir, "acc-1", "CLOUDFLARE_API_TOKEN=cfat_minter\nCLOUDFLARE_ACCOUNT_ID=deadbeef\nCF_PAGES_D1_TOKEN=stale\n");
73
+ const before = readFileSync(acct, "utf-8");
74
+ const r = migrateHouseCredentialFromAccount(installDir);
75
+ assert.equal(r.result, "relocated");
76
+ assert.equal(r.source, "acc-1");
77
+ const house = join(installDir, "platform/config", "cloudflare-house.env");
78
+ assert.equal(readFileSync(house, "utf-8"), "CLOUDFLARE_API_TOKEN=cfat_minter\nCLOUDFLARE_ACCOUNT_ID=deadbeef\n", "only the two master keys are relocated, no stale scoped token");
79
+ assert.equal(statSync(house).mode & 0o777, 0o600, "house file is mode 600");
80
+ assert.equal(readFileSync(acct, "utf-8"), before, "account file untouched");
81
+ }
82
+ finally {
83
+ rmSync(root, { recursive: true, force: true });
84
+ }
85
+ });
86
+ test("no-op when the house file already exists (never overwrites)", () => {
87
+ const { root, installDir, configDir } = makeDirs();
88
+ try {
89
+ const house = join(configDir, "cloudflare-house.env");
90
+ writeFileSync(house, "CLOUDFLARE_API_TOKEN=existing\nCLOUDFLARE_ACCOUNT_ID=xyz\n");
91
+ acctSecrets(installDir, "acc-1", "CLOUDFLARE_API_TOKEN=other\nCLOUDFLARE_ACCOUNT_ID=zzz\n");
92
+ const r = migrateHouseCredentialFromAccount(installDir);
93
+ assert.equal(r.result, "noop");
94
+ assert.equal(readFileSync(house, "utf-8"), "CLOUDFLARE_API_TOKEN=existing\nCLOUDFLARE_ACCOUNT_ID=xyz\n", "existing house file is untouched");
95
+ }
96
+ finally {
97
+ rmSync(root, { recursive: true, force: true });
98
+ }
99
+ });
100
+ test("absent when no account carries a master (no house file, no error)", () => {
101
+ const { root, installDir } = makeDirs();
102
+ try {
103
+ acctSecrets(installDir, "acc-1", "CF_PAGES_D1_TOKEN=scoped_only\n");
104
+ const r = migrateHouseCredentialFromAccount(installDir);
105
+ assert.equal(r.result, "absent");
106
+ assert.ok(!existsSync(join(installDir, "platform/config", "cloudflare-house.env")));
107
+ }
108
+ finally {
109
+ rmSync(root, { recursive: true, force: true });
110
+ }
111
+ });
112
+ test("deterministic pick — lexicographically-first account id wins", () => {
113
+ const { root, installDir } = makeDirs();
114
+ try {
115
+ acctSecrets(installDir, "bbb", "CLOUDFLARE_API_TOKEN=tok_b\nCLOUDFLARE_ACCOUNT_ID=idb\n");
116
+ acctSecrets(installDir, "aaa", "CLOUDFLARE_API_TOKEN=tok_a\nCLOUDFLARE_ACCOUNT_ID=ida\n");
117
+ const r = migrateHouseCredentialFromAccount(installDir);
118
+ assert.equal(r.source, "aaa");
119
+ assert.match(readFileSync(join(installDir, "platform/config", "cloudflare-house.env"), "utf-8"), /tok_a/);
120
+ }
121
+ finally {
122
+ rmSync(root, { recursive: true, force: true });
123
+ }
124
+ });
125
+ test("full upgrade path: pre-1631 relocates, second run is a no-op", () => {
126
+ const { root, installDir, persistentDir } = makeDirs();
127
+ try {
128
+ // Pre-1631 upgrade: no house file survives the wipe/restore (nothing saved).
129
+ simulateUpgrade(installDir, persistentDir);
130
+ assert.ok(!existsSync(join(installDir, "platform/config", "cloudflare-house.env")));
131
+ acctSecrets(installDir, "acc-1", "CLOUDFLARE_API_TOKEN=cfat_minter\nCLOUDFLARE_ACCOUNT_ID=deadbeef\n");
132
+ assert.equal(migrateHouseCredentialFromAccount(installDir).result, "relocated");
133
+ assert.equal(migrateHouseCredentialFromAccount(installDir).result, "noop", "second run is idempotent");
134
+ }
135
+ finally {
136
+ rmSync(root, { recursive: true, force: true });
137
+ }
138
+ });
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import { validateTierFlag, validateEntitlementBase64, applyTierToAccountConfig,
11
11
  import { parseOsRelease, isUbuntuLike as isUbuntuLikePure, parseAptCacheCandidate, decideAptResolution, } from "./apt-resolve.js";
12
12
  import { findPeerBrandOnDefaultNeo4jPort } from "./peer-brand-detect.js";
13
13
  import { removeClientAdminsKey } from "./converge-client-admins.js";
14
- import { backupHouseCloudflare, restoreHouseCloudflare } from "./preserve-house-cloudflare.js";
14
+ import { backupHouseCloudflare, restoreHouseCloudflare, migrateHouseCredentialFromAccount, } from "./preserve-house-cloudflare.js";
15
15
  import { resolveNeo4jPidfileScrub } from "./neo4j-pidfile-scrub.js";
16
16
  import { runInitLogging } from "./init-logging.js";
17
17
  import { requireSupportedPlatform, detectPlatform } from "./platform-detect.js";
@@ -2558,6 +2558,15 @@ function deployPayload() {
2558
2558
  if (restoreHouseCloudflare(INSTALL_DIR, persistentDir)) {
2559
2559
  console.log(" Restored Cloudflare house credential (cloudflare-house.env preserved).");
2560
2560
  }
2561
+ // Task 1671 — a pre-1631 install crossing the 0.1.449 boundary has no house
2562
+ // credential yet, but its per-account secrets still carry the account-wide
2563
+ // master (a minter, Task 1670). Relocate it into the house file so the broker
2564
+ // and calendar find it where the 1631 readers expect it, with zero manual
2565
+ // step. Idempotent: no-op once the house file exists (fresh install → absent).
2566
+ {
2567
+ const mig = migrateHouseCredentialFromAccount(INSTALL_DIR);
2568
+ console.log(` [install] op=house-cred-migrate result=${mig.result}${mig.source ? ` source=${mig.source}` : ""}`);
2569
+ }
2561
2570
  // users.json is read directly from persistentDir by both
2562
2571
  // platform/ui/app/lib/paths.ts (USERS_FILE = MAXY_DIR/users.json) and the
2563
2572
  // admin MCP plugin (USERS_FILE = CONFIG_DIR/users.json). No copy into the
@@ -6,8 +6,8 @@
6
6
  // calendar reconcile/publish scripts) fails with "house credential not found"
7
7
  // until an operator re-mints the token by hand. The persistent copy lives in
8
8
  // the brand's persistent config dir so even a full reinstall restores it.
9
- import { existsSync, cpSync, chmodSync } from "node:fs";
10
- import { join } from "node:path";
9
+ import { existsSync, cpSync, chmodSync, readdirSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
10
+ import { join, dirname } from "node:path";
11
11
  const HOUSE_CRED_FILE = "cloudflare-house.env";
12
12
  /**
13
13
  * Copy the live house credential (if any) into the persistent store before the
@@ -35,3 +35,50 @@ export function restoreHouseCloudflare(installDir, persistentDir) {
35
35
  chmodSync(dest, 0o600);
36
36
  return true;
37
37
  }
38
+ /**
39
+ * Task 1671 — on upgrade, if no house credential exists yet, relocate an
40
+ * existing per-account master (CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID)
41
+ * into the house file (mode 600). This lets a pre-1631 install cross the 0.1.449
42
+ * boundary with zero manual step: the broker/calendar (Task 1670) then mint
43
+ * their scoped tokens from the relocated minter where the 1631 readers expect it.
44
+ *
45
+ * Fail-safe and idempotent:
46
+ * - never overwrites an existing house file (returns "noop");
47
+ * - never guesses a token (both master keys required);
48
+ * - deterministic: scans accounts sorted by id, takes the first with a master;
49
+ * - relocates only the two master keys, so no per-account scoped token leaks
50
+ * house-side.
51
+ *
52
+ * The relocated file is preserved on subsequent upgrades by backupHouseCloudflare
53
+ * (Task 1664), which runs before the wipe on the next install.
54
+ */
55
+ export function migrateHouseCredentialFromAccount(installDir) {
56
+ const house = join(installDir, "platform/config", HOUSE_CRED_FILE);
57
+ if (existsSync(house))
58
+ return { result: "noop" };
59
+ const accountsDir = join(installDir, "data/accounts");
60
+ if (!existsSync(accountsDir))
61
+ return { result: "absent" };
62
+ for (const id of readdirSync(accountsDir).sort()) {
63
+ const secrets = join(accountsDir, id, "secrets", "cloudflare.env");
64
+ if (!existsSync(secrets))
65
+ continue;
66
+ const env = {};
67
+ for (const line of readFileSync(secrets, "utf8").split("\n")) {
68
+ const m = line.match(/^\s*([A-Za-z_][A-Za-z0-9_]*)=(.*)$/);
69
+ if (m)
70
+ env[m[1]] = m[2].trim();
71
+ }
72
+ const apiToken = env.CLOUDFLARE_API_TOKEN;
73
+ const accountId = env.CLOUDFLARE_ACCOUNT_ID;
74
+ if (!apiToken || !accountId)
75
+ continue;
76
+ mkdirSync(dirname(house), { recursive: true });
77
+ writeFileSync(house, `CLOUDFLARE_API_TOKEN=${apiToken}\nCLOUDFLARE_ACCOUNT_ID=${accountId}\n`, {
78
+ mode: 0o600,
79
+ });
80
+ chmodSync(house, 0o600);
81
+ return { result: "relocated", source: id };
82
+ }
83
+ return { result: "absent" };
84
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy-code",
3
- "version": "0.1.451",
3
+ "version": "0.1.453",
4
4
  "description": "Install Maxy — AI for Productive People",
5
5
  "bin": {
6
6
  "create-maxy-code": "./dist/index.js"
@@ -5,6 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const node_test_1 = __importDefault(require("node:test"));
7
7
  const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const node_fs_1 = require("node:fs");
9
+ const node_os_1 = require("node:os");
10
+ const node_path_1 = require("node:path");
8
11
  const cf_exec_js_1 = require("../cf-exec.js");
9
12
  const cred = { apiToken: "cfat_x", accountId: "acc-h" };
10
13
  function recordingRun(stdout) {
@@ -145,4 +148,25 @@ function recordingFetch(response) {
145
148
  const cf = (0, cf_exec_js_1.makeCfExec)(cred, run);
146
149
  await strict_1.default.rejects(() => cf.d1List(), /not json/);
147
150
  });
151
+ // Task 1670 — makeHouseCfExec resolves a scoped storage token from the house
152
+ // minter via cf-token.sh and uses THAT token (never the minter) for wrangler.
153
+ (0, node_test_1.default)("makeHouseCfExec runs wrangler with the scoped token, not the minter", async () => {
154
+ const platformRoot = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "house-cfexec-"));
155
+ const cfg = (0, node_path_1.join)(platformRoot, "config");
156
+ (0, node_fs_1.mkdirSync)(cfg, { recursive: true });
157
+ const houseEnv = (0, node_path_1.join)(cfg, "cloudflare-house.env");
158
+ (0, node_fs_1.writeFileSync)(houseEnv, "CLOUDFLARE_API_TOKEN=cfat_minter\nCLOUDFLARE_ACCOUNT_ID=acc-h\n");
159
+ let sawToken = "";
160
+ const run = async (_cmd, args, env) => {
161
+ if (args.some((a) => a.endsWith("cf-token.sh"))) {
162
+ (0, node_fs_1.appendFileSync)(houseEnv, "CF_STORAGE_TOKEN=scoped_tok\n");
163
+ return { stdout: "CF_STORAGE_TOKEN\n" };
164
+ }
165
+ sawToken = env.CLOUDFLARE_API_TOKEN;
166
+ return { stdout: "[]" };
167
+ };
168
+ const cf = await (0, cf_exec_js_1.makeHouseCfExec)(platformRoot, run);
169
+ await cf.d1List();
170
+ strict_1.default.equal(sawToken, "scoped_tok", "wrangler saw the scoped token, not the minter");
171
+ });
148
172
  //# sourceMappingURL=cf-exec.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cf-exec.test.js","sourceRoot":"","sources":["../../src/__tests__/cf-exec.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cf-exec.test.js","sourceRoot":"","sources":["../../src/__tests__/cf-exec.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=house-scoped-token.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"house-scoped-token.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/house-scoped-token.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ // Task 1670 — resolveHouseScopedToken shells cf-token.sh against the house env
7
+ // file and reads back the persisted key value. The cf-token.sh invocation is
8
+ // mocked via the injected RunFn (it appends the key and echoes the key name).
9
+ const node_test_1 = __importDefault(require("node:test"));
10
+ const strict_1 = __importDefault(require("node:assert/strict"));
11
+ const node_fs_1 = require("node:fs");
12
+ const node_os_1 = require("node:os");
13
+ const node_path_1 = require("node:path");
14
+ const house_scoped_token_js_1 = require("../house-scoped-token.js");
15
+ function houseFile(contents) {
16
+ const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "hst-"));
17
+ const p = (0, node_path_1.join)(dir, "cloudflare-house.env");
18
+ (0, node_fs_1.writeFileSync)(p, contents);
19
+ return p;
20
+ }
21
+ (0, node_test_1.default)("mints and reads back the scoped token value", async () => {
22
+ const p = houseFile("CLOUDFLARE_API_TOKEN=cfat_minter\nCLOUDFLARE_ACCOUNT_ID=acc\n");
23
+ const run = async (_cmd, args) => {
24
+ strict_1.default.equal(args[1], "storage", "scope passed to cf-token.sh");
25
+ (0, node_fs_1.appendFileSync)(p, "CF_STORAGE_TOKEN=minted_value\n");
26
+ return { stdout: "CF_STORAGE_TOKEN\n" };
27
+ };
28
+ const tok = await (0, house_scoped_token_js_1.resolveHouseScopedToken)("storage", p, "/x/cf-token.sh", run);
29
+ strict_1.default.equal(tok, "minted_value");
30
+ });
31
+ (0, node_test_1.default)("reuse: a pre-existing key resolves to its value", async () => {
32
+ const p = houseFile("CLOUDFLARE_API_TOKEN=cfat_minter\nCLOUDFLARE_ACCOUNT_ID=acc\nCF_STORAGE_TOKEN=already_here\n");
33
+ // cf-token.sh reuse path writes nothing new, still echoes the key.
34
+ const run = async () => ({ stdout: "CF_STORAGE_TOKEN\n" });
35
+ const tok = await (0, house_scoped_token_js_1.resolveHouseScopedToken)("storage", p, "/x/cf-token.sh", run);
36
+ strict_1.default.equal(tok, "already_here");
37
+ });
38
+ (0, node_test_1.default)("throws when the persisted key is absent after the run", async () => {
39
+ const p = houseFile("CLOUDFLARE_API_TOKEN=cfat_minter\nCLOUDFLARE_ACCOUNT_ID=acc\n");
40
+ const run = async () => ({ stdout: "CF_STORAGE_TOKEN\n" }); // writes nothing
41
+ await strict_1.default.rejects(() => (0, house_scoped_token_js_1.resolveHouseScopedToken)("storage", p, "/x/cf-token.sh", run));
42
+ });
43
+ (0, node_test_1.default)("throws when cf-token.sh returns no key name", async () => {
44
+ const p = houseFile("CLOUDFLARE_API_TOKEN=cfat_minter\nCLOUDFLARE_ACCOUNT_ID=acc\n");
45
+ const run = async () => ({ stdout: "\n" });
46
+ await strict_1.default.rejects(() => (0, house_scoped_token_js_1.resolveHouseScopedToken)("storage", p, "/x/cf-token.sh", run));
47
+ });
48
+ //# sourceMappingURL=house-scoped-token.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"house-scoped-token.test.js","sourceRoot":"","sources":["../../src/__tests__/house-scoped-token.test.ts"],"names":[],"mappings":";;;;;AAAA,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,0DAA6B;AAC7B,gEAAwC;AACxC,qCAA6E;AAC7E,qCAAiC;AACjC,yCAAiC;AACjC,oEAAmE;AAGnE,SAAS,SAAS,CAAC,QAAgB;IACjC,MAAM,GAAG,GAAG,IAAA,qBAAW,EAAC,IAAA,gBAAI,EAAC,IAAA,gBAAM,GAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAC5C,IAAA,uBAAa,EAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,IAAA,mBAAI,EAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;IAC7D,MAAM,CAAC,GAAG,SAAS,CAAC,+DAA+D,CAAC,CAAC;IACrF,MAAM,GAAG,GAAU,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACtC,gBAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,6BAA6B,CAAC,CAAC;QAChE,IAAA,wBAAc,EAAC,CAAC,EAAE,iCAAiC,CAAC,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC1C,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,IAAA,+CAAuB,EAAC,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC/E,gBAAM,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;IACjE,MAAM,CAAC,GAAG,SAAS,CAAC,8FAA8F,CAAC,CAAC;IACpH,mEAAmE;IACnE,MAAM,GAAG,GAAU,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,MAAM,IAAA,+CAAuB,EAAC,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC/E,gBAAM,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;IACvE,MAAM,CAAC,GAAG,SAAS,CAAC,+DAA+D,CAAC,CAAC;IACrF,MAAM,GAAG,GAAU,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,iBAAiB;IACpF,MAAM,gBAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAA,+CAAuB,EAAC,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;IAC7D,MAAM,CAAC,GAAG,SAAS,CAAC,+DAA+D,CAAC,CAAC;IACrF,MAAM,GAAG,GAAU,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,gBAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAA,+CAAuB,EAAC,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC"}
@@ -20,4 +20,10 @@ const remediate_js_1 = require("../remediate.js");
20
20
  const before = "CLOUDFLARE_ACCOUNT_ID=acc\nCLOUDFLARE_API_TOKEN=cfat_x\nCF_PAGES_D1_TOKEN=y\nCF_DNS_TOKEN=keep\n";
21
21
  strict_1.default.equal((0, remediate_js_1.stripAccountWideTokens)(before), "CLOUDFLARE_ACCOUNT_ID=acc\nCF_DNS_TOKEN=keep\n");
22
22
  });
23
+ // Task 1670 — the house-code data scopes reach the whole shared account, so a
24
+ // stray copy in a sub-account file is a cross-tenant leak and must be stripped.
25
+ (0, node_test_1.default)("strips the account-wide data scopes (storage, calendar-d1), keeps zone hosting tokens", () => {
26
+ const before = "CLOUDFLARE_ACCOUNT_ID=acc\nCF_STORAGE_TOKEN=cfat_d1r2\nCF_CALENDAR_D1_TOKEN=cfat_d1\nCF_DNS_TOKEN=keep\n";
27
+ strict_1.default.equal((0, remediate_js_1.stripAccountWideTokens)(before), "CLOUDFLARE_ACCOUNT_ID=acc\nCF_DNS_TOKEN=keep\n");
28
+ });
23
29
  //# sourceMappingURL=remediate.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remediate.test.js","sourceRoot":"","sources":["../../src/__tests__/remediate.test.ts"],"names":[],"mappings":";;;;;AAAA,0DAA6B;AAC7B,gEAAwC;AACxC,kDAA0E;AAE1E,IAAA,mBAAI,EAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,MAAM,CAAC,GAAG,IAAA,8BAAe,EAAC,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IACvF,gBAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,gBAAM,CAAC,SAAS,CAAC,IAAA,8BAAe,EAAC,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE;QACzE,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,8EAA8E,EAAE,GAAG,EAAE;IACxF,MAAM,MAAM,GACV,kGAAkG,CAAC;IACrG,gBAAM,CAAC,KAAK,CAAC,IAAA,qCAAsB,EAAC,MAAM,CAAC,EAAE,gDAAgD,CAAC,CAAC;AACjG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"remediate.test.js","sourceRoot":"","sources":["../../src/__tests__/remediate.test.ts"],"names":[],"mappings":";;;;;AAAA,0DAA6B;AAC7B,gEAAwC;AACxC,kDAA0E;AAE1E,IAAA,mBAAI,EAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,MAAM,CAAC,GAAG,IAAA,8BAAe,EAAC,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IACvF,gBAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,gBAAM,CAAC,SAAS,CAAC,IAAA,8BAAe,EAAC,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE;QACzE,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,8EAA8E,EAAE,GAAG,EAAE;IACxF,MAAM,MAAM,GACV,kGAAkG,CAAC;IACrG,gBAAM,CAAC,KAAK,CAAC,IAAA,qCAAsB,EAAC,MAAM,CAAC,EAAE,gDAAgD,CAAC,CAAC;AACjG,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,gFAAgF;AAChF,IAAA,mBAAI,EAAC,uFAAuF,EAAE,GAAG,EAAE;IACjG,MAAM,MAAM,GACV,0GAA0G,CAAC;IAC7G,gBAAM,CAAC,KAAK,CAAC,IAAA,qCAAsB,EAAC,MAAM,CAAC,EAAE,gDAAgD,CAAC,CAAC;AACjG,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"remediate-run.d.ts","sourceRoot":"","sources":["../../src/bin/remediate-run.ts"],"names":[],"mappings":"AAaA,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIxE,MAAM,WAAW,eAAe;IAC9B,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC/D,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC/D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2CtF"}
1
+ {"version":3,"file":"remediate-run.d.ts","sourceRoot":"","sources":["../../src/bin/remediate-run.ts"],"names":[],"mappings":"AAaA,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKxE,MAAM,WAAW,eAAe;IAC9B,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC/D,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC/D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2CtF"}
@@ -16,6 +16,7 @@ const remediate_js_1 = require("../remediate.js");
16
16
  const registry_js_1 = require("../registry.js");
17
17
  const house_credential_js_1 = require("../house-credential.js");
18
18
  const cf_exec_js_1 = require("../cf-exec.js");
19
+ const house_scoped_token_js_1 = require("../house-scoped-token.js");
19
20
  async function runRemediation(deps) {
20
21
  const d1 = await deps.cfD1();
21
22
  const r2 = await deps.cfR2();
@@ -67,7 +68,7 @@ function findMasterFromAccounts(accountsDir) {
67
68
  env[m[1]] = m[2].trim();
68
69
  }
69
70
  if (env.CLOUDFLARE_API_TOKEN && env.CLOUDFLARE_ACCOUNT_ID) {
70
- return { apiToken: env.CLOUDFLARE_API_TOKEN, accountId: env.CLOUDFLARE_ACCOUNT_ID };
71
+ return { apiToken: env.CLOUDFLARE_API_TOKEN, accountId: env.CLOUDFLARE_ACCOUNT_ID, path: p };
71
72
  }
72
73
  }
73
74
  return null;
@@ -87,10 +88,13 @@ async function main() {
87
88
  const configPath = (0, node_path_1.join)(platformRoot, "config", "cloudflare-house.env");
88
89
  const mapping = JSON.parse((0, node_fs_1.readFileSync)(mappingFile, "utf8"));
89
90
  // The master is wherever it lives today: the house file if already relocated,
90
- // else the first sub-account secrets file that still carries it.
91
+ // else the first sub-account secrets file that still carries it. masterFile is
92
+ // the file cf-token.sh mints the scoped enumeration token against.
91
93
  let master;
94
+ let masterFile;
92
95
  try {
93
96
  master = (0, house_credential_js_1.readHouseCredential)(platformRoot);
97
+ masterFile = configPath;
94
98
  }
95
99
  catch {
96
100
  const found = findMasterFromAccounts(accountsDir);
@@ -99,9 +103,15 @@ async function main() {
99
103
  process.exit(2);
100
104
  return;
101
105
  }
102
- master = found;
106
+ master = { apiToken: found.apiToken, accountId: found.accountId };
107
+ masterFile = found.path;
103
108
  }
104
- const cf = (0, cf_exec_js_1.makeCfExec)(master);
109
+ // Task 1670 the master is a minter; enumerate D1/R2 through a scoped storage
110
+ // token minted from it, never the minter directly. `master` (the raw minter)
111
+ // is still what runRemediation relocates into the house file below.
112
+ const cfTokenSh = (0, node_path_1.join)(platformRoot, "plugins/cloudflare/bin/cf-token.sh");
113
+ const scoped = await (0, house_scoped_token_js_1.resolveHouseScopedToken)("storage", masterFile, cfTokenSh);
114
+ const cf = (0, cf_exec_js_1.makeCfExec)({ apiToken: scoped, accountId: master.accountId });
105
115
  const neo4j = (await import("neo4j-driver"));
106
116
  const driver = neo4j.default.driver(process.env.NEO4J_URI, neo4j.default.auth.basic(process.env.NEO4J_USER ?? "neo4j", process.env.NEO4J_PASSWORD ?? ""));
107
117
  const session = driver.session();
@@ -1 +1 @@
1
- {"version":3,"file":"remediate-run.js","sourceRoot":"","sources":["../../src/bin/remediate-run.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,iFAAiF;AACjF,6EAA6E;AAC7E,+EAA+E;AAC/E,wDAAwD;AACxD,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,iBAAiB;;AAwBjB,wCA2CC;AAjED,qCAA0F;AAC1F,yCAAmD;AACnD,kDAA0E;AAC1E,gDAAwE;AACxE,gEAA6D;AAC7D,8CAA2C;AAiBpC,KAAK,UAAU,cAAc,CAAC,IAAqB;IACxD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAExE,4EAA4E;IAC5E,uDAAuD;IACvD,MAAM,UAAU,GAAG,IAAA,8BAAe,EAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,mDAAmD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;IACnH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;IACnH,CAAC;IAED,+EAA+E;IAC/E,IAAA,mBAAS,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAA,uBAAa,EACX,IAAI,CAAC,UAAU,EACf,wBAAwB,IAAI,CAAC,MAAM,CAAC,QAAQ,2BAA2B,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAChG,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;IAEF,sEAAsE;IACtE,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,IAAA,oBAAU,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,KAAK,MAAM,SAAS,IAAI,IAAA,qBAAW,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,GAAG,IAAA,gBAAI,EAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;YACzE,IAAI,CAAC,IAAA,oBAAU,EAAC,CAAC,CAAC;gBAAE,SAAS;YAC7B,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,IAAA,qCAAsB,EAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACrB,IAAA,uBAAa,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;AAC9D,CAAC;AAED,6EAA6E;AAE7E,SAAS,sBAAsB,CAAC,WAAmB;IACjD,IAAI,CAAC,IAAA,oBAAU,EAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,KAAK,MAAM,SAAS,IAAI,IAAA,qBAAW,EAAC,WAAW,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,IAAA,gBAAI,EAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACpE,IAAI,CAAC,IAAA,oBAAU,EAAC,CAAC,CAAC;YAAE,SAAS;QAC7B,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,IAAA,sBAAY,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC3D,IAAI,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;QACD,IAAI,GAAG,CAAC,oBAAoB,IAAI,GAAG,CAAC,qBAAqB,EAAE,CAAC;YAC1D,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,oBAAoB,EAAE,SAAS,EAAE,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACtF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAA,oBAAU,EAAC,WAAW,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,8CAA8C,WAAW,IAAI,QAAQ,EAAE,CAAC,CAAC;QACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,WAAW,GAAG,IAAA,mBAAO,EAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,YAAY,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,WAAW,EAAE,MAAM,CAAC,CAA2B,CAAC;IAExF,8EAA8E;IAC9E,iEAAiE;IACjE,IAAI,MAA+C,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,GAAG,IAAA,yCAAmB,EAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,KAAK,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;YACxG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QACD,MAAM,GAAG,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAQ,CAAC;IACpD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CACjC,OAAO,CAAC,GAAG,CAAC,SAAS,EACrB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAC9F,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;YAClC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1F,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1F,OAAO;YACP,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,OAAO,EAAE,CAAC,CAAC;YAC7C,WAAW;YACX,MAAM;YACN,UAAU;SACX,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,+BAA+B,MAAM,CAAC,UAAU,aAAa,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,sBAAuB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"remediate-run.js","sourceRoot":"","sources":["../../src/bin/remediate-run.ts"],"names":[],"mappings":"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"}
@@ -26,4 +26,5 @@ export interface CfExec {
26
26
  r2Create(name: string): Promise<void>;
27
27
  }
28
28
  export declare function makeCfExec(cred: HouseCredential, run?: RunFn, fetchFn?: FetchFn): CfExec;
29
+ export declare function makeHouseCfExec(platformRoot: string, run?: RunFn, fetchFn?: FetchFn): Promise<CfExec>;
29
30
  //# sourceMappingURL=cf-exec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cf-exec.d.ts","sourceRoot":"","sources":["../src/cf-exec.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,MAAM,KAAK,GAAG,CAClB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACxB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAMjC,MAAM,MAAM,OAAO,GAAG,CACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KACrE,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,CAAC;AAEvE,MAAM,WAAW,MAAM;IACrB,MAAM,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAuBD,wBAAgB,UAAU,CACxB,IAAI,EAAE,eAAe,EACrB,GAAG,GAAE,KAAkB,EACvB,OAAO,GAAE,OAAsB,GAC9B,MAAM,CAmFR"}
1
+ {"version":3,"file":"cf-exec.d.ts","sourceRoot":"","sources":["../src/cf-exec.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,MAAM,MAAM,KAAK,GAAG,CAClB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACxB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAMjC,MAAM,MAAM,OAAO,GAAG,CACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KACrE,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,CAAC;AAEvE,MAAM,WAAW,MAAM;IACrB,MAAM,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAuBD,wBAAgB,UAAU,CACxB,IAAI,EAAE,eAAe,EACrB,GAAG,GAAE,KAAkB,EACvB,OAAO,GAAE,OAAsB,GAC9B,MAAM,CAmFR;AASD,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,GAAG,GAAE,KAAkB,EACvB,OAAO,GAAE,OAAsB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAMjB"}
@@ -4,7 +4,11 @@
4
4
  // wrangler. `run` is injectable so the wiring is unit-testable without wrangler.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.makeCfExec = makeCfExec;
7
+ exports.makeHouseCfExec = makeHouseCfExec;
7
8
  const node_child_process_1 = require("node:child_process");
9
+ const node_path_1 = require("node:path");
10
+ const house_credential_js_1 = require("./house-credential.js");
11
+ const house_scoped_token_js_1 = require("./house-scoped-token.js");
8
12
  const defaultFetch = (url, init) => fetch(url, init);
9
13
  const defaultRun = (cmd, args, env) => new Promise((resolve, reject) => {
10
14
  (0, node_child_process_1.execFile)(cmd, args, { env }, (err, stdout, stderr) => {
@@ -94,4 +98,18 @@ function makeCfExec(cred, run = defaultRun, fetchFn = defaultFetch) {
94
98
  },
95
99
  };
96
100
  }
101
+ // Task 1670 — build a CfExec whose token is a D1+R2 "storage" scope minted from
102
+ // the house minter, never the minter used directly (a minter cannot run
103
+ // wrangler d1/r2 or hit the D1/R2 API — it returns 10000). cf-token.sh
104
+ // mints-or-reuses and persists the scope house-side; the resolved value is used
105
+ // for both the wrangler run env and the API Bearer. The two UI-route broker
106
+ // sites and remediate-run construct their CfExec through the house minter this
107
+ // way instead of `makeCfExec(readHouseCredential(...))`.
108
+ async function makeHouseCfExec(platformRoot, run = defaultRun, fetchFn = defaultFetch) {
109
+ const cred = (0, house_credential_js_1.readHouseCredential)(platformRoot);
110
+ const houseEnvPath = (0, node_path_1.join)(platformRoot, "config", "cloudflare-house.env");
111
+ const cfTokenSh = (0, node_path_1.join)(platformRoot, "plugins/cloudflare/bin/cf-token.sh");
112
+ const scoped = await (0, house_scoped_token_js_1.resolveHouseScopedToken)("storage", houseEnvPath, cfTokenSh, run);
113
+ return makeCfExec({ apiToken: scoped, accountId: cred.accountId }, run, fetchFn);
114
+ }
97
115
  //# sourceMappingURL=cf-exec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cf-exec.js","sourceRoot":"","sources":["../src/cf-exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cf-exec.js","sourceRoot":"","sources":["../src/cf-exec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { RunFn } from "./cf-exec.js";
2
+ /**
3
+ * Resolve a scoped data token (e.g. "storage" = D1+R2) from the house minter.
4
+ * Shells cf-token.sh, which mints or reuses the scope and persists the key into
5
+ * the house env file, echoing the key name. Reads that key back and returns its
6
+ * value. Throws if the key is absent after the run (never returns the minter).
7
+ */
8
+ export declare function resolveHouseScopedToken(scope: string, houseEnvPath: string, cfTokenShPath: string, run?: RunFn): Promise<string>;
9
+ //# sourceMappingURL=house-scoped-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"house-scoped-token.d.ts","sourceRoot":"","sources":["../src/house-scoped-token.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAqB1C;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,GAAG,GAAE,KAAkB,GACtB,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ // Task 1670 — the house credential is a minter. Each broker/calendar consumer
3
+ // mints (and thereafter reuses) a scoped data token from it via cf-token.sh, the
4
+ // single Cloudflare mint/reuse state machine. This wrapper shells that script
5
+ // against the house env file and reads back the persisted key value. The mint
6
+ // logic itself is not duplicated here — it lives only in cf-token.sh.
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.resolveHouseScopedToken = resolveHouseScopedToken;
9
+ const node_fs_1 = require("node:fs");
10
+ const node_child_process_1 = require("node:child_process");
11
+ const defaultRun = (cmd, args, env) => new Promise((resolve, reject) => {
12
+ (0, node_child_process_1.execFile)(cmd, args, { env }, (err, stdout, stderr) => {
13
+ if (err) {
14
+ reject(new Error(`${cmd} ${args.join(" ")} failed: ${err.message}\n${stderr}`));
15
+ return;
16
+ }
17
+ resolve({ stdout: stdout.toString() });
18
+ });
19
+ });
20
+ function readKey(path, key) {
21
+ for (const line of (0, node_fs_1.readFileSync)(path, "utf8").split("\n")) {
22
+ const m = line.match(/^([A-Z0-9_]+)=(.*)$/);
23
+ if (m && m[1] === key)
24
+ return m[2].trim();
25
+ }
26
+ return undefined;
27
+ }
28
+ /**
29
+ * Resolve a scoped data token (e.g. "storage" = D1+R2) from the house minter.
30
+ * Shells cf-token.sh, which mints or reuses the scope and persists the key into
31
+ * the house env file, echoing the key name. Reads that key back and returns its
32
+ * value. Throws if the key is absent after the run (never returns the minter).
33
+ */
34
+ async function resolveHouseScopedToken(scope, houseEnvPath, cfTokenShPath, run = defaultRun) {
35
+ const preexisting = readKey(houseEnvPath, keyForScope(scope)) !== undefined;
36
+ const { stdout } = await run("bash", [cfTokenShPath, scope, houseEnvPath], { ...process.env });
37
+ const keyName = stdout.trim().split("\n").pop()?.trim() ?? "";
38
+ if (!keyName)
39
+ throw new Error(`storage-broker: cf-token.sh ${scope} returned no key name`);
40
+ const value = readKey(houseEnvPath, keyName);
41
+ if (!value) {
42
+ throw new Error(`storage-broker: scoped token ${keyName} absent in ${houseEnvPath} after mint`);
43
+ }
44
+ console.error(`[storage-broker] op=house-scoped-token src=house scope=${scope} action=${preexisting ? "reuse" : "mint"} result=active`);
45
+ return value;
46
+ }
47
+ // The persisted key name for each scope, mirroring cf-token.sh's scope table.
48
+ // Used only to derive the mint/reuse action for the observability line; the
49
+ // authoritative key is whatever cf-token.sh echoes.
50
+ function keyForScope(scope) {
51
+ switch (scope) {
52
+ case "storage":
53
+ return "CF_STORAGE_TOKEN";
54
+ case "calendar-d1":
55
+ return "CF_CALENDAR_D1_TOKEN";
56
+ default:
57
+ return "";
58
+ }
59
+ }
60
+ //# sourceMappingURL=house-scoped-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"house-scoped-token.js","sourceRoot":"","sources":["../src/house-scoped-token.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAC9E,8EAA8E;AAC9E,sEAAsE;;AA+BtE,0DAsBC;AAnDD,qCAAuC;AACvC,2DAA8C;AAG9C,MAAM,UAAU,GAAU,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAC3C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,IAAA,6BAAQ,EAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACnD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,SAAS,OAAO,CAAC,IAAY,EAAE,GAAW;IACxC,KAAK,MAAM,IAAI,IAAI,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,uBAAuB,CAC3C,KAAa,EACb,YAAoB,EACpB,aAAqB,EACrB,MAAa,UAAU;IAEvB,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC;IAC5E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAC1B,MAAM,EACN,CAAC,aAAa,EAAE,KAAK,EAAE,YAAY,CAAC,EACpC,EAAE,GAAG,OAAO,CAAC,GAAG,EAA4B,CAC7C,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,uBAAuB,CAAC,CAAC;IAC3F,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,cAAc,YAAY,aAAa,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,CAAC,KAAK,CACX,0DAA0D,KAAK,WAAW,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,gBAAgB,CACzH,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,oDAAoD;AACpD,SAAS,WAAW,CAAC,KAAa;IAChC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,kBAAkB,CAAC;QAC5B,KAAK,aAAa;YAChB,OAAO,sBAAsB,CAAC;QAChC;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -2,6 +2,7 @@ export * from "./authorize.js";
2
2
  export * from "./registry.js";
3
3
  export * from "./house-credential.js";
4
4
  export * from "./cf-exec.js";
5
+ export * from "./house-scoped-token.js";
5
6
  export * from "./audit.js";
6
7
  export * from "./remediate.js";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -25,6 +25,7 @@ __exportStar(require("./authorize.js"), exports);
25
25
  __exportStar(require("./registry.js"), exports);
26
26
  __exportStar(require("./house-credential.js"), exports);
27
27
  __exportStar(require("./cf-exec.js"), exports);
28
+ __exportStar(require("./house-scoped-token.js"), exports);
28
29
  __exportStar(require("./audit.js"), exports);
29
30
  __exportStar(require("./remediate.js"), exports);
30
31
  //# sourceMappingURL=index.js.map