From 20c7610371c401f622ef4e6ea1b9ba812963be95 Mon Sep 17 00:00:00 2001 From: richblack Date: Tue, 21 Jul 2026 01:32:16 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E5=B7=B2?= =?UTF-8?q?=E5=BB=A2=E6=A3=84=E7=9A=84=E8=87=AA=E7=AE=A1=E5=8A=A0=E5=AF=86?= =?UTF-8?q?=E9=87=91=E9=91=B0=E6=A9=9F=E5=88=B6=EF=BC=88credential=20?= =?UTF-8?q?=E5=85=A8=E9=9D=A2=E8=A8=97=E7=AE=A1=20CF=20Workers=20Secrets?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit leo 2026-07-20 明令:「已經改用 cf 自己的 secrets,不要再說它了」 「我希望以後再也看不到這個詞再出現」 背景:credential 早已遷移至 CF Workers per-script Secrets + D1 目錄, 舊的自管金鑰(client 端 AES-GCM + KV 密文 + crypto_decrypt)是遷移期遺留。 本次連根移除,含一併作廢的死 SaaS 碼。 移除: - 舊 KV 密文解密路徑(credential-injector.ts 整檔、dual-read fallback) 前置驗證:leo21c / youlin 兩帳號 CREDENTIALS_KV 實測 *:cred:* 皆 0 筆 - migrate-to-workers-secrets 搬家端點(回填已完成,無可回填) - /register 路由與 generateApiKey(HMAC 產 ak_ key 是 SaaS 遺物; self-hosted 走 namespace 明碼 D21,已無人使用) - platform_crypto component(三帳號實測 404 已退役,無 workflow 引用) 保留(附理由): - crypto_decrypt 保留為永遠回失敗的 stub——現役三個 auth .wasm 仍宣告該 import,缺項會讓 WASM instantiate 直接失敗。待零件重編後可真正刪除。 順帶修復(原不在範圍,但會實際壞事): - /auth/callback 有 `if (!key) redirect(server_error)` 閘,未設該 secret 的 實例會登入直接失敗 → 已移除 - OAuth 兩處把 provider token 寫進舊加密 KV(租戶鍵與實際 api_key 在 rotate 後必然分歧,已失效)→ 改導向 Workers Secrets,包 try/catch 不影響登入 - acr init Standard 模式呼叫已刪除的 /register → 改引導 OAuth 取 key - .claude/rules 與 system-dev/docs 是同一規範的兩份鏡像,先前只改 rules 導致鏡像仍在教舊做法 → 已同步(此類雙檔同步應納入檢查) 新用戶安裝從此零 secret 前置。 測試 187/188(唯一 fail 為 pre-existing,stash 驗證與本次無關); cypher-executor 與 cli typecheck 全綠。 Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/rules/01-tech-stack.md | 27 +- .claude/rules/05-deploy-convention.md | 7 +- .component-builds/auth_oauth2/wrangler.toml | 1 - .../auth_service_account/src/index.ts | 1 - .../auth_service_account/wrangler.toml | 2 - .../auth_static_key/src/index.ts | 1 - .../auth_static_key/wrangler.toml | 2 - .../platform_crypto/component.wasm | Bin 1102335 -> 0 bytes .../platform_crypto/package.json | 14 - .../platform_crypto/pnpm-lock.yaml | 898 ------------------ .../platform_crypto/pnpm-workspace.yaml | 8 - .../platform_crypto/src/index.ts | 108 --- .../platform_crypto/tsconfig.json | 11 - .../platform_crypto/wrangler.toml | 15 - .env.example | 10 +- BACKLOG.md | 4 +- README.md | 12 +- cli/src/commands/config.ts | 2 +- cli/src/commands/creds.ts | 8 +- cli/src/commands/init.ts | 56 +- cli/src/lib/cf-api.ts | 40 - cli/src/lib/config.ts | 7 +- cli/src/lib/deploy.ts | 7 - .../src/actions/auth-dispatcher.ts | 8 +- .../src/actions/credential-injector.ts | 235 ----- cypher-executor/src/graph-executor.ts | 25 +- cypher-executor/src/index.ts | 2 - cypher-executor/src/lib/component-loader.ts | 2 +- .../src/lib/console-dashboard-model.ts | 2 +- cypher-executor/src/lib/wasi-shim.ts | 142 +-- cypher-executor/src/routes/auth.ts | 66 +- cypher-executor/src/routes/credentials.ts | 91 +- cypher-executor/src/routes/recipes.ts | 2 +- cypher-executor/src/routes/register.ts | 46 - cypher-executor/src/types.ts | 1 - cypher-executor/tests/credentials.test.ts | 73 +- cypher-executor/tests/wasi-shim.test.ts | 9 +- cypher-executor/wrangler.test.toml | 1 - cypher-executor/wrangler.toml | 1 - docs/HANDOFF-self-host-harness.md | 2 +- llms.txt | 8 +- .../platform_crypto/component.contract.yaml | 56 -- registry/components/platform_crypto/main.go | 206 ---- .../docs/2-architecture/01-tech-stack.md | 27 +- .../docs/3-specs/arcrun-core-mvp/design.md | 3 + .../docs/3-specs/arcrun-core-mvp/tasks.md | 2 - system-dev/docs/3-specs/arcrun/arcrun.md | 7 +- .../credential-store-migration.md | 11 +- .../credential-store-redesign.md | 3 + .../credential-primitives-wasm/design.md | 5 + .../credential-primitives-wasm/tasks.md | 3 + .../arcrun/sdk-and-website/config-layering.md | 1 - .../sdk-and-website/self-hosted-init.md | 23 +- .../docs/3-specs/user-cc-harness/design.md | 2 +- .../docs/4-guides/05-deploy-convention.md | 7 +- system-dev/docs/5-records/README.md | 4 + .../2026-05-29-encryption-key-drift.md | 3 + .../pre-customer-checklist-2026-06-07.md | 3 + .../壓測-recipe-library-2026-06-07.md | 3 + system-dev/wiki/cards/decisions/00-INDEX.md | 1 - .../decisions/多worker-ENCRYPTION_KEY同步.md | 35 - system-dev/wiki/decisions-summary.md | 26 - system-dev/wiki/mistakes.md | 20 - system-dev/wiki/status.md | 3 +- 64 files changed, 214 insertions(+), 2197 deletions(-) delete mode 100644 .component-builds/platform_crypto/component.wasm delete mode 100644 .component-builds/platform_crypto/package.json delete mode 100644 .component-builds/platform_crypto/pnpm-lock.yaml delete mode 100644 .component-builds/platform_crypto/pnpm-workspace.yaml delete mode 100644 .component-builds/platform_crypto/src/index.ts delete mode 100644 .component-builds/platform_crypto/tsconfig.json delete mode 100644 .component-builds/platform_crypto/wrangler.toml delete mode 100644 cypher-executor/src/actions/credential-injector.ts delete mode 100644 cypher-executor/src/routes/register.ts delete mode 100644 registry/components/platform_crypto/component.contract.yaml delete mode 100644 registry/components/platform_crypto/main.go delete mode 100644 system-dev/wiki/cards/decisions/多worker-ENCRYPTION_KEY同步.md diff --git a/.claude/rules/01-tech-stack.md b/.claude/rules/01-tech-stack.md index a12cb8d..1270437 100644 --- a/.claude/rules/01-tech-stack.md +++ b/.claude/rules/01-tech-stack.md @@ -30,7 +30,8 @@ |---|---| | `u6u.http_request` | 發 HTTP 請求 | | `u6u.kv_get` | 讀 Cloudflare KV(Worker 側依 key 前綴路由到正確 KV) | -| `u6u.crypto_decrypt` | AES-GCM 解密(encryption key 永不暴露給 WASM) | +| `u6u.secret_get` | 讀 CF Workers Secrets(只放行 `CRED_` 前綴) | +| `u6u.crypto_decrypt` | ⚠️ 已廢除,保留成永遠回失敗的 stub(現役 wasm 仍宣告此 import) | | `u6u.crypto_sign_rs256` | RSA-SHA256 簽章(PKCS8 bytes 傳入) | **所有 host function 在 `cypher-executor/src/lib/wasi-shim.ts` 實作**。零件透過 WASI import 使用。 @@ -50,16 +51,22 @@ **警告:R2 不存平台內建零件的 WASM**。平台零件已 bundle 進各自的 Worker binary(`[[wasm_modules]]` 或 `import ... assert { type: 'webassembly' }`)。 -## 加解密規範 +## Credential 儲存規範 -- **演算法**:AES-GCM 256-bit -- **加密位置**:Client 端(CLI / Python SDK / JS SDK) - - Python:`cryptography` 套件 - - JS:Web Crypto API(`crypto.subtle`) -- **解密位置**:Server 端 **WASM primitive**(透過 host function `crypto_decrypt`) - - cypher-executor TS **不解密**,只提供 host function - - `ENCRYPTION_KEY` 只在 Worker host function 內部讀取,**永不經 stdin / 回傳值傳給 WASM** -- **傳輸格式**:`{ name, encrypted, iv }`(iv base64、encrypted base64) +**arcrun 不自管加密金鑰。** credential 明文由 **Cloudflare Workers Secrets** 託管 +(per-script secret,掛在用戶自己的 cypher worker 上): + +- secret 名稱 = `CRED_{NAME}_{sha256(api_key)[:8]}`(跨租戶命名隔離) +- D1 `credentials` 表只存**目錄**(api_key / name / service / secret_ref),不存值 +- D19:擁有目錄,不擁有內容物——連 owner 都讀不回,只能覆寫/刪除 +- 需要 worker 設 `CF_SECRETS_API_TOKEN`(機密,用戶手動 put)+ `CF_ACCOUNT_ID`(自動注入) + +> 註:`crypto_decrypt` host function 是**永遠回失敗的 stub**,因為現役三個 `auth_*` +> `.wasm` 仍宣告該 import(缺項會讓 WASM instantiate 失敗)。三個零件重編後即可刪除。 +- **取用位置**:Server 端 **WASM primitive**(透過 host function `secret_get(ref)`) + - cypher-executor TS 不碰業務邏輯,只提供 host function + - `secret_get` 只放行 `CRED_` 前綴,WASM 讀不到 worker 本身的其他機密 +- **傳輸格式**:明文值走 TLS(`POST /credentials`),不做 client 端加密 ## 網路部署 diff --git a/.claude/rules/05-deploy-convention.md b/.claude/rules/05-deploy-convention.md index e48b4ad..0ee9fe3 100644 --- a/.claude/rules/05-deploy-convention.md +++ b/.claude/rules/05-deploy-convention.md @@ -62,10 +62,13 @@ find . -name 'wrangler.toml' -not -path '*/node_modules/*' -not -name 'wrangler. **CI 只提供 Cloudflare 驗證,不碰 runtime secret**。 - GH Actions secrets:`CLOUDFLARE_API_TOKEN`、`CLOUDFLARE_ACCOUNT_ID`(一次性設好) -- Runtime secret(例:`ENCRYPTION_KEY`、`OPENAI_KEY`、`GOOGLE_API_KEY`): +- Runtime secret(例:`CF_SECRETS_API_TOKEN`、`OPENAI_KEY`、`GOOGLE_API_KEY`): - **由 richblack 一次性手動** `wrangler secret put ` 設進各 Worker - 不進 CI,不進 `wrangler.toml` `[vars]` - - 需要的 Worker:`auth_static_key`、`auth_service_account`(兩個都要 `ENCRYPTION_KEY`) + - 需要的 Worker:`arcrun-cypher-executor`(`CF_SECRETS_API_TOKEN`——寫 credential 進 + Workers Secrets 用;`CF_ACCOUNT_ID` 非機密由 `acr init` 自動注入) + +> `auth_static_key` / `auth_service_account` 不需要任何 secret。 --- diff --git a/.component-builds/auth_oauth2/wrangler.toml b/.component-builds/auth_oauth2/wrangler.toml index e0184ab..a139115 100644 --- a/.component-builds/auth_oauth2/wrangler.toml +++ b/.component-builds/auth_oauth2/wrangler.toml @@ -19,4 +19,3 @@ id = "e7f4320f88d343f187e35e3543dd74c9" binding = "RECIPES" id = "9cf9db905c6241f78503199e58b2ffe0" -# ENCRYPTION_KEY 透過 wrangler secret put 設定 diff --git a/.component-builds/auth_service_account/src/index.ts b/.component-builds/auth_service_account/src/index.ts index 21bca8f..d2a08cc 100644 --- a/.component-builds/auth_service_account/src/index.ts +++ b/.component-builds/auth_service_account/src/index.ts @@ -11,7 +11,6 @@ * * 安全邊界: * - api_key 經 stdin 傳進 WASM,同時綁到 host function 的 kv_get 做越權檢查 - * - ENCRYPTION_KEY 只存在於 host function 的 closure 中,不會進入 WASM 記憶體 * - private key 只以 PKCS8 bytes 傳給 crypto_sign_rs256 host function,decrypt 後 plaintext 不離開 WASM */ diff --git a/.component-builds/auth_service_account/wrangler.toml b/.component-builds/auth_service_account/wrangler.toml index 86f3a08..d9ddbd0 100644 --- a/.component-builds/auth_service_account/wrangler.toml +++ b/.component-builds/auth_service_account/wrangler.toml @@ -20,5 +20,3 @@ id = "e7f4320f88d343f187e35e3543dd74c9" binding = "RECIPES" id = "9cf9db905c6241f78503199e58b2ffe0" -# ENCRYPTION_KEY 透過 wrangler secret set 設定 -# wrangler secret put ENCRYPTION_KEY diff --git a/.component-builds/auth_static_key/src/index.ts b/.component-builds/auth_static_key/src/index.ts index b74765a..9136af1 100644 --- a/.component-builds/auth_static_key/src/index.ts +++ b/.component-builds/auth_static_key/src/index.ts @@ -8,7 +8,6 @@ * * 安全邊界: * - api_key 經 stdin 傳進 WASM,同時綁到 host function 的 kv_get 做越權檢查 - * - ENCRYPTION_KEY 只存在於 host function 的 closure 中,不會進入 WASM 記憶體 */ import componentWasm from '../component.wasm' assert { type: 'webassembly' }; diff --git a/.component-builds/auth_static_key/wrangler.toml b/.component-builds/auth_static_key/wrangler.toml index 42826fd..f77feae 100644 --- a/.component-builds/auth_static_key/wrangler.toml +++ b/.component-builds/auth_static_key/wrangler.toml @@ -20,5 +20,3 @@ id = "e7f4320f88d343f187e35e3543dd74c9" binding = "RECIPES" id = "9cf9db905c6241f78503199e58b2ffe0" -# ENCRYPTION_KEY 透過 wrangler secret set 設定 -# wrangler secret put ENCRYPTION_KEY diff --git a/.component-builds/platform_crypto/component.wasm b/.component-builds/platform_crypto/component.wasm deleted file mode 100644 index 3c014081fe58b6c7f750963c826784b1cdcd0258..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1102335 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

sGN}^DyOC3_jjd0 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∈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
{0;<%8epbgBrtME|n#A-lGzkY&Z~kR4KFf0Bv| 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.0.0'} - - '@cloudflare/unenv-preset@2.16.1': - resolution: {integrity: sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw==} - peerDependencies: - unenv: 2.0.0-rc.24 - workerd: '>1.20260305.0 <2.0.0-0' - peerDependenciesMeta: - workerd: - optional: true - - '@cloudflare/workerd-darwin-64@1.20260430.1': - resolution: {integrity: sha512-ADohZUHf7NBvPp2PdZig2Opxx+hDkk3ve7jrTne3JRx9kDSB73zc4LzcEeEN8LKkbAcqZmvfRJfpChSlusu0lA==} - engines: {node: '>=16'} - cpu: [x64] - os: [darwin] - - '@cloudflare/workerd-darwin-arm64@1.20260430.1': - resolution: {integrity: sha512-/DoYC/1wHs+YRZzzqSQg1/EHB4hiv1yV5U8FnmapRRIzVaPtnt+ApeOXeMrIdKidgKOI8TqQzgBU8xbIM7Cl4Q==} - engines: {node: '>=16'} - cpu: [arm64] - os: [darwin] - - '@cloudflare/workerd-linux-64@1.20260430.1': - resolution: {integrity: sha512-koJhBWvEVZPKCVFtMLp2iMHlYr+lFCF47wGbnlKdHVlemV0zTxJEyHI8aLlrhPLhBmOmYLp46rXw09/qJkRIhQ==} - engines: {node: '>=16'} - cpu: [x64] - os: [linux] - - '@cloudflare/workerd-linux-arm64@1.20260430.1': - resolution: {integrity: sha512-hMdapNAzNQZDXGGkg4Slydc3fRJP5FUZLJVVcZCW/+imhhJro9Z1rv5n/wfR+txKoSWhTYR8eOp8Pyi2bzLzlw==} - engines: {node: '>=16'} - cpu: [arm64] - os: [linux] - - '@cloudflare/workerd-windows-64@1.20260430.1': - resolution: {integrity: sha512-jS3ffixjb5USOwz4frw4WzCz0HrjVxkgyU3WiYb06N7hBAfN6eOrveAJ4QRef0+suK4V1vQFoB1oKdRBsXe9Dw==} - engines: {node: '>=16'} - cpu: [x64] - os: [win32] - - '@cloudflare/workers-types@4.20260505.1': - resolution: {integrity: sha512-Uz9D2hcwB4/pdnmCU7RsgknY8TQ5st0cQMMN6h/hvWt1TCt99GUkbi6dMgWdP7jXfIfh+S/EI5zQugI9RZn4Bw==} - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@emnapi/runtime@1.10.0': - resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.27.3': - resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.27.3': - resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.27.3': - resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.27.3': - resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.27.3': - resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.27.3': - resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.27.3': - resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.27.3': - resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.27.3': - resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.27.3': - resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openharmony-arm64@0.27.3': - resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/sunos-x64@0.27.3': - resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.27.3': - resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.27.3': - resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.27.3': - resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@img/colour@1.1.0': - resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} - engines: {node: '>=18'} - - '@img/sharp-darwin-arm64@0.34.5': - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] - - '@img/sharp-darwin-x64@0.34.5': - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-darwin-arm64@1.2.4': - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} - cpu: [arm64] - os: [darwin] - - '@img/sharp-libvips-darwin-x64@1.2.4': - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-linux-arm64@1.2.4': - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-arm@1.2.4': - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} - cpu: [arm] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-ppc64@1.2.4': - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-riscv64@1.2.4': - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} - cpu: [riscv64] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-s390x@1.2.4': - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-x64@1.2.4': - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} - cpu: [x64] - os: [linux] - libc: [musl] - - '@img/sharp-linux-arm64@0.34.5': - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-arm@0.34.5': - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-ppc64@0.34.5': - resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-riscv64@0.34.5': - resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [riscv64] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-s390x@0.34.5': - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-x64@0.34.5': - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@img/sharp-linuxmusl-arm64@0.34.5': - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@img/sharp-linuxmusl-x64@0.34.5': - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - libc: [musl] - - '@img/sharp-wasm32@0.34.5': - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] - - '@img/sharp-win32-arm64@0.34.5': - resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [win32] - - '@img/sharp-win32-ia32@0.34.5': - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] - - '@img/sharp-win32-x64@0.34.5': - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@poppinss/colors@4.1.6': - resolution: {integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==} - - '@poppinss/dumper@0.6.5': - resolution: {integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==} - - '@poppinss/exception@1.2.3': - resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} - - '@sindresorhus/is@7.2.0': - resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} - engines: {node: '>=18'} - - '@speed-highlight/core@1.2.15': - resolution: {integrity: sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==} - - blake3-wasm@2.1.5: - resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} - - cookie@1.1.1: - resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} - engines: {node: '>=18'} - - detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} - engines: {node: '>=8'} - - error-stack-parser-es@1.0.5: - resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} - - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} - engines: {node: '>=18'} - hasBin: true - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - hono@4.12.17: - resolution: {integrity: sha512-FbJJNb/XgX7YW0hX/V8w5oYLztKEsRLykCMZWt1WdLtsfjzMvmoqWBA4H4t5norinq8/rh20oiZYr+WSl4UzAQ==} - engines: {node: '>=16.9.0'} - - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - miniflare@4.20260430.0: - resolution: {integrity: sha512-MWvMm3Siho9Yj7lbJZidLs8hbrRvIcOrif2mnsHQZdvoKfedpea+GaN8XJxbpRcq0B2WzNI1BB1ihdnqes3/ZA==} - engines: {node: '>=22.0.0'} - hasBin: true - - path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} - - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} - engines: {node: '>=10'} - hasBin: true - - sharp@0.34.5: - resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - - supports-color@10.2.2: - resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} - engines: {node: '>=18'} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - - undici@7.24.8: - resolution: {integrity: sha512-6KQ/+QxK49Z/p3HO6E5ZCZWNnCasyZLa5ExaVYyvPxUwKtbCPMKELJOqh7EqOle0t9cH/7d2TaaTRRa6Nhs4YQ==} - engines: {node: '>=20.18.1'} - - unenv@2.0.0-rc.24: - resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} - - workerd@1.20260430.1: - resolution: {integrity: sha512-KEgIWyiw3Jmn+DCd/L3ePo5fmiiYb/UcwKvDWPf/nLLOiwShDFzDSsegU5NY/JcwgvO/QsLHVi2FYrbkcXNY5Q==} - engines: {node: '>=16'} - hasBin: true - - wrangler@4.87.0: - resolution: {integrity: sha512-lfhfKwLfQlowwgV0xhlYgE9fU3n0I30d4ccGY/rTCEm/n42Mjvlr0Ng3ZPNqlsrsKBcDR531V7dsPkgELvrk/Q==} - engines: {node: '>=22.0.0'} - hasBin: true - peerDependencies: - '@cloudflare/workers-types': ^4.20260430.1 - peerDependenciesMeta: - '@cloudflare/workers-types': - optional: true - - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - youch-core@0.3.3: - resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} - - youch@4.1.0-beta.10: - resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} - -snapshots: - - '@cloudflare/kv-asset-handler@0.5.0': {} - - '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260430.1)': - dependencies: - unenv: 2.0.0-rc.24 - optionalDependencies: - workerd: 1.20260430.1 - - '@cloudflare/workerd-darwin-64@1.20260430.1': - optional: true - - '@cloudflare/workerd-darwin-arm64@1.20260430.1': - optional: true - - '@cloudflare/workerd-linux-64@1.20260430.1': - optional: true - - '@cloudflare/workerd-linux-arm64@1.20260430.1': - optional: true - - '@cloudflare/workerd-windows-64@1.20260430.1': - optional: true - - '@cloudflare/workers-types@4.20260505.1': {} - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@emnapi/runtime@1.10.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@esbuild/aix-ppc64@0.27.3': - optional: true - - '@esbuild/android-arm64@0.27.3': - optional: true - - '@esbuild/android-arm@0.27.3': - optional: true - - '@esbuild/android-x64@0.27.3': - optional: true - - '@esbuild/darwin-arm64@0.27.3': - optional: true - - '@esbuild/darwin-x64@0.27.3': - optional: true - - '@esbuild/freebsd-arm64@0.27.3': - optional: true - - '@esbuild/freebsd-x64@0.27.3': - optional: true - - '@esbuild/linux-arm64@0.27.3': - optional: true - - '@esbuild/linux-arm@0.27.3': - optional: true - - '@esbuild/linux-ia32@0.27.3': - optional: true - - '@esbuild/linux-loong64@0.27.3': - optional: true - - '@esbuild/linux-mips64el@0.27.3': - optional: true - - '@esbuild/linux-ppc64@0.27.3': - optional: true - - '@esbuild/linux-riscv64@0.27.3': - optional: true - - '@esbuild/linux-s390x@0.27.3': - optional: true - - '@esbuild/linux-x64@0.27.3': - optional: true - - '@esbuild/netbsd-arm64@0.27.3': - optional: true - - '@esbuild/netbsd-x64@0.27.3': - optional: true - - '@esbuild/openbsd-arm64@0.27.3': - optional: true - - '@esbuild/openbsd-x64@0.27.3': - optional: true - - '@esbuild/openharmony-arm64@0.27.3': - optional: true - - '@esbuild/sunos-x64@0.27.3': - optional: true - - '@esbuild/win32-arm64@0.27.3': - optional: true - - '@esbuild/win32-ia32@0.27.3': - optional: true - - '@esbuild/win32-x64@0.27.3': - optional: true - - '@img/colour@1.1.0': {} - - '@img/sharp-darwin-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.4 - optional: true - - '@img/sharp-darwin-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.4 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-darwin-x64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-arm@1.2.4': - optional: true - - '@img/sharp-libvips-linux-ppc64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-riscv64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-s390x@1.2.4': - optional: true - - '@img/sharp-libvips-linux-x64@1.2.4': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - optional: true - - '@img/sharp-linux-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.4 - optional: true - - '@img/sharp-linux-arm@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.4 - optional: true - - '@img/sharp-linux-ppc64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.4 - optional: true - - '@img/sharp-linux-riscv64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.2.4 - optional: true - - '@img/sharp-linux-s390x@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.4 - optional: true - - '@img/sharp-linux-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.4 - optional: true - - '@img/sharp-linuxmusl-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - optional: true - - '@img/sharp-linuxmusl-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - optional: true - - '@img/sharp-wasm32@0.34.5': - dependencies: - '@emnapi/runtime': 1.10.0 - optional: true - - '@img/sharp-win32-arm64@0.34.5': - optional: true - - '@img/sharp-win32-ia32@0.34.5': - optional: true - - '@img/sharp-win32-x64@0.34.5': - optional: true - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@poppinss/colors@4.1.6': - dependencies: - kleur: 4.1.5 - - '@poppinss/dumper@0.6.5': - dependencies: - '@poppinss/colors': 4.1.6 - '@sindresorhus/is': 7.2.0 - supports-color: 10.2.2 - - '@poppinss/exception@1.2.3': {} - - '@sindresorhus/is@7.2.0': {} - - '@speed-highlight/core@1.2.15': {} - - blake3-wasm@2.1.5: {} - - cookie@1.1.1: {} - - detect-libc@2.1.2: {} - - error-stack-parser-es@1.0.5: {} - - esbuild@0.27.3: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.3 - '@esbuild/android-arm': 0.27.3 - '@esbuild/android-arm64': 0.27.3 - '@esbuild/android-x64': 0.27.3 - '@esbuild/darwin-arm64': 0.27.3 - '@esbuild/darwin-x64': 0.27.3 - '@esbuild/freebsd-arm64': 0.27.3 - '@esbuild/freebsd-x64': 0.27.3 - '@esbuild/linux-arm': 0.27.3 - '@esbuild/linux-arm64': 0.27.3 - '@esbuild/linux-ia32': 0.27.3 - '@esbuild/linux-loong64': 0.27.3 - '@esbuild/linux-mips64el': 0.27.3 - '@esbuild/linux-ppc64': 0.27.3 - '@esbuild/linux-riscv64': 0.27.3 - '@esbuild/linux-s390x': 0.27.3 - '@esbuild/linux-x64': 0.27.3 - '@esbuild/netbsd-arm64': 0.27.3 - '@esbuild/netbsd-x64': 0.27.3 - '@esbuild/openbsd-arm64': 0.27.3 - '@esbuild/openbsd-x64': 0.27.3 - '@esbuild/openharmony-arm64': 0.27.3 - '@esbuild/sunos-x64': 0.27.3 - '@esbuild/win32-arm64': 0.27.3 - '@esbuild/win32-ia32': 0.27.3 - '@esbuild/win32-x64': 0.27.3 - - fsevents@2.3.3: - optional: true - - hono@4.12.17: {} - - kleur@4.1.5: {} - - miniflare@4.20260430.0: - dependencies: - '@cspotcode/source-map-support': 0.8.1 - sharp: 0.34.5 - undici: 7.24.8 - workerd: 1.20260430.1 - ws: 8.18.0 - youch: 4.1.0-beta.10 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - path-to-regexp@6.3.0: {} - - pathe@2.0.3: {} - - semver@7.7.4: {} - - sharp@0.34.5: - dependencies: - '@img/colour': 1.1.0 - detect-libc: 2.1.2 - semver: 7.7.4 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.5 - '@img/sharp-darwin-x64': 0.34.5 - '@img/sharp-libvips-darwin-arm64': 1.2.4 - '@img/sharp-libvips-darwin-x64': 1.2.4 - '@img/sharp-libvips-linux-arm': 1.2.4 - '@img/sharp-libvips-linux-arm64': 1.2.4 - '@img/sharp-libvips-linux-ppc64': 1.2.4 - '@img/sharp-libvips-linux-riscv64': 1.2.4 - '@img/sharp-libvips-linux-s390x': 1.2.4 - '@img/sharp-libvips-linux-x64': 1.2.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - '@img/sharp-linux-arm': 0.34.5 - '@img/sharp-linux-arm64': 0.34.5 - '@img/sharp-linux-ppc64': 0.34.5 - '@img/sharp-linux-riscv64': 0.34.5 - '@img/sharp-linux-s390x': 0.34.5 - '@img/sharp-linux-x64': 0.34.5 - '@img/sharp-linuxmusl-arm64': 0.34.5 - '@img/sharp-linuxmusl-x64': 0.34.5 - '@img/sharp-wasm32': 0.34.5 - '@img/sharp-win32-arm64': 0.34.5 - '@img/sharp-win32-ia32': 0.34.5 - '@img/sharp-win32-x64': 0.34.5 - - supports-color@10.2.2: {} - - tslib@2.8.1: - optional: true - - typescript@5.9.3: {} - - undici@7.24.8: {} - - unenv@2.0.0-rc.24: - dependencies: - pathe: 2.0.3 - - workerd@1.20260430.1: - optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260430.1 - '@cloudflare/workerd-darwin-arm64': 1.20260430.1 - '@cloudflare/workerd-linux-64': 1.20260430.1 - '@cloudflare/workerd-linux-arm64': 1.20260430.1 - '@cloudflare/workerd-windows-64': 1.20260430.1 - - wrangler@4.87.0(@cloudflare/workers-types@4.20260505.1): - dependencies: - '@cloudflare/kv-asset-handler': 0.5.0 - '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260430.1) - blake3-wasm: 2.1.5 - esbuild: 0.27.3 - miniflare: 4.20260430.0 - path-to-regexp: 6.3.0 - unenv: 2.0.0-rc.24 - workerd: 1.20260430.1 - optionalDependencies: - '@cloudflare/workers-types': 4.20260505.1 - fsevents: 2.3.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - ws@8.18.0: {} - - youch-core@0.3.3: - dependencies: - '@poppinss/exception': 1.2.3 - error-stack-parser-es: 1.0.5 - - youch@4.1.0-beta.10: - dependencies: - '@poppinss/colors': 4.1.6 - '@poppinss/dumper': 0.6.5 - '@speed-highlight/core': 1.2.15 - cookie: 1.1.1 - youch-core: 0.3.3 diff --git a/.component-builds/platform_crypto/pnpm-workspace.yaml b/.component-builds/platform_crypto/pnpm-workspace.yaml deleted file mode 100644 index d4d28e2..0000000 --- a/.component-builds/platform_crypto/pnpm-workspace.yaml +++ /dev/null @@ -1,8 +0,0 @@ -allowBuilds: - esbuild: true - sharp: true - workerd: true -onlyBuiltDependencies: - - esbuild - - sharp - - workerd diff --git a/.component-builds/platform_crypto/src/index.ts b/.component-builds/platform_crypto/src/index.ts deleted file mode 100644 index 7ba92b9..0000000 --- a/.component-builds/platform_crypto/src/index.ts +++ /dev/null @@ -1,108 +0,0 @@ -/** - * arcrun platform_crypto Worker - * - * POST / → JSON input {action, ...} → JSON output - * - * Actions: - * generate_api_key — HMAC-SHA256(email, ENCRYPTION_KEY) → ak_{hex[:32]} - * encrypt — AES-GCM(plaintext, ENCRYPTION_KEY) → {encrypted, iv}(base64) - * random_token — crypto random bytes → hex string - * - * 安全邊界:ENCRYPTION_KEY 只存在於 closure,永不進入外部(rule 02 §2.2)。 - * 此 Worker 直接用 crypto.subtle 實作,不走 WASM runner。 - * TinyGo WASM async host function 在 Cloudflare Workers 的 u6u namespace 不支援 Promise. - * WASM 零件 (registry/components/platform_crypto/) 保留作為 edge-Go 移植時的參考。 - */ - -import { Hono } from 'hono'; -import { cors } from 'hono/cors'; - -type Env = { - ENCRYPTION_KEY: string; -}; - -type Input = { - action: string; - email?: string; - plaintext?: string; - bytes?: number; -}; - -const app = new Hono<{ Bindings: Env }>(); -app.use('*', cors()); - -app.get('/', (c) => c.json({ ok: true, component: 'platform_crypto' })); - -app.post('/', async (c) => { - let input: Input; - try { - input = await c.req.json() as Input; - } catch { - return c.json({ success: false, error: 'request body must be JSON' }, 400); - } - - const encryptionKey = c.env.ENCRYPTION_KEY; - if (!encryptionKey) { - return c.json({ success: false, error: 'ENCRYPTION_KEY not configured' }, 503); - } - - try { - switch (input.action) { - case 'generate_api_key': { - if (!input.email) return c.json({ success: false, error: 'email 必填' }, 400); - const apiKey = await generateApiKey(input.email, encryptionKey); - return c.json({ success: true, api_key: apiKey }); - } - case 'encrypt': { - if (!input.plaintext) return c.json({ success: false, error: 'plaintext 必填' }, 400); - const { encrypted, iv } = await aesEncrypt(input.plaintext, encryptionKey); - return c.json({ success: true, encrypted, iv }); - } - case 'random_token': { - const numBytes = (input.bytes ?? 32) > 0 ? (input.bytes ?? 32) : 32; - const token = randomHex(numBytes); - return c.json({ success: true, token }); - } - default: - return c.json({ success: false, error: `不支援的 action: ${input.action}` }, 400); - } - } catch (e) { - return c.json( - { success: false, error: e instanceof Error ? e.message : String(e) }, - 500, - ); - } -}); - -export default app; - -// ── Crypto implementations (rule 02 §2.2: crypto.subtle 只准在 wasi-shim.ts 或 platform_crypto) ── - -async function generateApiKey(email: string, encryptionKey: string): Promise { - const keyBytes = new TextEncoder().encode(encryptionKey.slice(0, 32)); - const cryptoKey = await crypto.subtle.importKey( - 'raw', keyBytes, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign'], - ); - const sig = await crypto.subtle.sign('HMAC', cryptoKey, new TextEncoder().encode(email)); - const hex = Array.from(new Uint8Array(sig)).map(b => b.toString(16).padStart(2, '0')).join(''); - return 'ak_' + hex.slice(0, 32); -} - -async function aesEncrypt(plaintext: string, encryptionKey: string): Promise<{ encrypted: string; iv: string }> { - const keyBytes = new TextEncoder().encode(encryptionKey.slice(0, 32)); - const cryptoKey = await crypto.subtle.importKey('raw', keyBytes, { name: 'AES-GCM' }, false, ['encrypt']); - const iv = crypto.getRandomValues(new Uint8Array(12)); - const enc = await crypto.subtle.encrypt( - { name: 'AES-GCM', iv }, - cryptoKey, - new TextEncoder().encode(plaintext), - ); - const toB64 = (buf: ArrayBuffer | Uint8Array) => - btoa(String.fromCharCode(...new Uint8Array(buf instanceof ArrayBuffer ? buf : buf))); - return { encrypted: toB64(enc), iv: toB64(iv) }; -} - -function randomHex(numBytes: number): string { - const arr = crypto.getRandomValues(new Uint8Array(numBytes)); - return Array.from(arr).map(b => b.toString(16).padStart(2, '0')).join(''); -} diff --git a/.component-builds/platform_crypto/tsconfig.json b/.component-builds/platform_crypto/tsconfig.json deleted file mode 100644 index b65fda7..0000000 --- a/.component-builds/platform_crypto/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "module": "ES2022", - "moduleResolution": "bundler", - "lib": ["ES2022"], - "types": ["@cloudflare/workers-types"], - "strict": true, - "noEmit": true - } -} diff --git a/.component-builds/platform_crypto/wrangler.toml b/.component-builds/platform_crypto/wrangler.toml deleted file mode 100644 index 91b159e..0000000 --- a/.component-builds/platform_crypto/wrangler.toml +++ /dev/null @@ -1,15 +0,0 @@ -name = "arcrun-platform-crypto" -main = "src/index.ts" -compatibility_date = "2025-02-19" -compatibility_flags = ["nodejs_compat"] -workers_dev = true - -[vars] -COMPONENT_ID = "platform_crypto" - -[[routes]] -pattern = "platform-crypto.arcrun.dev/*" -zone_name = "arcrun.dev" - -# ENCRYPTION_KEY 透過 wrangler secret set 設定 -# wrangler secret put ENCRYPTION_KEY diff --git a/.env.example b/.env.example index d447118..b562936 100644 --- a/.env.example +++ b/.env.example @@ -30,19 +30,15 @@ CLOUDFLARE_ACCOUNT_ID= CLOUDFLARE_API_TOKEN= -# ── ② 身份與加密(自架單人用,這兩格你自己決定/保管)────────────────────────── +# ── ② 身份(自架單人用)────────────────────────────────────────────────────── # # NAMESPACE:你的資料分區標籤。隨便取個英數小名即可(例:leo、myteam)。 # 這不是密碼,只是用來分隔你的資料。 # -# ENCRYPTION_KEY:你的 credential 加密金鑰,64 個以上的 hex 字元。你自己保管。 -# 不會的話,AI 可以幫你產一串: -# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" -# ⚠️ 這串忘了 = 你之前上傳加密的 credential 就解不開了,請留底。 -# (安裝完還要把「同一串」設進你的 worker,acr init 會印確切指令給你跟著做。) +# (credential 不再需要自管加密金鑰:明文由 CF Workers Secrets 託管, +# `acr creds push` 會直接寫進你自己的 worker。) # NAMESPACE= -ENCRYPTION_KEY= # ── ③ 各服務的 token(要連哪個服務才填哪個;可之後再加)──────────────────────── diff --git a/BACKLOG.md b/BACKLOG.md index cd34064..4ff518d 100644 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -19,7 +19,7 @@ - [~] **credential 注入 401 修復** — `{{credential.X}}` 注入失敗,用戶被迫把 token 明文寫進 workflow。 **根因**:此語法系統沒實裝(三條 template 路徑都不認 `credential.` namespace)。 **修法**(design §8,richblack 2026-06-10 確認):auth_static_key 加 `resolve_credentials` action(WASM 解密) - + graph-executor `resolveCredentialRefs` 偵測回填(不碰 ENCRYPTION_KEY,rule 02 §2.2)。 + + graph-executor `resolveCredentialRefs` 偵測回填(不碰金鑰,rule 02 §2.2)。 **8.1-8.4 done**(tinygo build OK + tsc 0 + §2.2 自檢綠)。**待 8.5 端對端驗收**(部署 + 真 OpenAI key + 全新帳號打 2xx)。 - [ ] **§8 P1/P2 recipe/workflow list 遷 D1** — CF KV list 免費僅 1000/日,不修=用戶用一用就 429, 免費承諾破功。D1 現已可建(依賴解除),架構拍板走 kbdb `/entries` HTTP 雙寫不加 binding。 @@ -34,7 +34,7 @@ ### ⚪ P2(不擋封測) - [ ] `arcrun.dev/llms.txt` serve(landing/public 補檔) -- [ ] ENCRYPTION_KEY 冪等性、MCP account-source、recipe submit uuid 回傳 +- [ ] MCP account-source、recipe submit uuid 回傳 - [ ] 文件遷移階段二/三 + wiki modules/ - [ ] 下方第一期殘項:步驟 2(acr recipe test)、步驟 5b(資料外流警示 SDD)、步驟 6(搬家拆 matrix) diff --git a/README.md b/README.md index 2605c46..27306ca 100644 --- a/README.md +++ b/README.md @@ -161,27 +161,21 @@ acr init --self-hosted 你不需要懂 git、不需要懂 tinygo、不需要手動建任何東西——預編譯好的零件(`.wasm`)直接從 GitHub 下載,用**你自己的** CF token 部署到**你的**帳號。 -**最後一步:身份設定(你自己持有,工具不碰)。** self-hosted 是單租戶——你不需要平台發的 API Key,只需要兩個你自己填的值。在專案建一個 `.env`: +**最後一步:身份設定(你自己持有,工具不碰)。** self-hosted 是單租戶——你不需要平台發的 API Key,只需要一個你自己填的值。在專案建一個 `.env`: ```bash # .env(已被 gitignore;CLI 會自動讀) NAMESPACE=leo # 你的資料分區標籤(明碼即可,這不是密碼) -ENCRYPTION_KEY=<64+ hex> # credential 加密金鑰,你自己保管(忘了 = 解不開已上傳的 credential) -# 生成 key:node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" ``` > `NAMESPACE` 只是「你的資料放哪個分區」的標籤,不是密碼——要防別人呼叫你的 webhook,請對 webhook 加保護(見下)。 -把**同一把** `ENCRYPTION_KEY` 也設進你的 worker(runtime 解密要用,CLI 會印確切指令): +credential **不需要**你自管加密金鑰:`acr creds push` 走 TLS 把值送進你自己的 worker,由 **Cloudflare Workers Secrets** 託管(連你自己都讀不回,只能覆寫/刪除)。這需要 cypher worker 有一把能打 Workers Scripts secrets API 的 CF token(`acr init` 會印確切指令): ```bash -wrangler secret put ENCRYPTION_KEY --name arcrun-cypher-executor -wrangler secret put ENCRYPTION_KEY --name arcrun-auth-static-key -wrangler secret put ENCRYPTION_KEY --name arcrun-auth-service-account +wrangler secret put CF_SECRETS_API_TOKEN --name arcrun-cypher-executor ``` -> 不想自己 put?跑 `acr init` 時明示同意,AI 可代你設——但預設由你自己 put(金鑰是你持有的)。 - 完成。之後有新版零件,跑 `acr update` 一樣自動拉新、重部署。 > 想先不碰 Cloudflare、純在本機感受語法?`acr init --local` 然後直接跳到下面「寫一個工作流」。 diff --git a/cli/src/commands/config.ts b/cli/src/commands/config.ts index 7d7f9c9..614c6f8 100644 --- a/cli/src/commands/config.ts +++ b/cli/src/commands/config.ts @@ -18,7 +18,7 @@ const SOURCE_LABEL: Record = { }; /** 敏感欄位只印前綴,避免把 token 完整印到終端 / log。*/ -const SENSITIVE = new Set(['api_key', 'encryption_key', 'cf_api_token']); +const SENSITIVE = new Set(['api_key', 'cf_api_token']); function mask(field: string, value: string): string { if (SENSITIVE.has(field) && value.length > 8) return `${value.slice(0, 8)}…`; diff --git a/cli/src/commands/creds.ts b/cli/src/commands/creds.ts index 9bbdb04..e1fbf24 100644 --- a/cli/src/commands/creds.ts +++ b/cli/src/commands/creds.ts @@ -1,11 +1,9 @@ /** * acr creds push/list/replace/delete * - * credential-store-migration T5(2026-07-03,Arcrun#2)已把 server 端寫入路徑從 - * 「client AES-GCM 加密 + {name,encrypted,iv}」改為「明文值 + TLS 傳輸」(§2.4 選項甲: - * arcrun 不再自管 ENCRYPTION_KEY,密文改由 CF Workers Secrets 託管)。T9(§3 治理端點) - * 對應把 CLI 薄殼換成新的 list/replace/delete 三支指令:全部只做「讀 argv/yaml → 呼叫 - * cypher-executor API → 印結果」,不做任何加解密或業務邏輯(rule 07 薄殼原則)。 + * 寫入路徑=「明文值 + TLS 傳輸」,值交由 CF Workers Secrets 託管。CLI 是薄殼: + * list/replace/delete 三支指令全部只做「讀 argv/yaml → 呼叫 cypher-executor API → + * 印結果」,不做任何加解密或業務邏輯(rule 07 薄殼原則)。 * * 移除任何「印出 credential 值」的路徑(D19:擁有目錄,不擁有內容物,連 owner 都讀不回)。 */ diff --git a/cli/src/commands/init.ts b/cli/src/commands/init.ts index 22cfdd6..9bab027 100644 --- a/cli/src/commands/init.ts +++ b/cli/src/commands/init.ts @@ -11,7 +11,6 @@ import { saveConfig, type ArcrunConfig } from '../lib/config.js'; import { CfAccountClient } from '../lib/cf-api.js'; import { REQUIRED_KV_NAMESPACES, - SECRET_TARGET_WORKERS, downloadAndDeploy, type DeployContext, } from '../lib/deploy.js'; @@ -19,7 +18,7 @@ import { cmdInstallHarness } from './install-harness.js'; import { cmdMcpSetup } from './mcp-setup.js'; import { detectEnvironment, printPreflight, verifyInstall } from '../lib/preflight.js'; -const ARCRUN_REGISTER_URL = 'https://cypher.arcrun.dev/register'; +const ARCRUN_LOGIN_URL = 'https://arcrun.dev/login'; async function prompt(rl: ReturnType, question: string): Promise { const answer = await rl.question(chalk.cyan(`? ${question}: `)); @@ -103,40 +102,23 @@ async function initLocal(): Promise { } async function initStandard(rl: ReturnType): Promise { - console.log(chalk.gray(' Standard 模式:只需要 email,不需要 Cloudflare 帳號\n')); + console.log(chalk.gray(' Standard 模式:用 arcrun.dev 帳號登入取得 API Key\n')); - const email = await prompt(rl, 'Email(用來取得 API Key)'); + // API Key 發放走網站 OAuth 登入(/auth/google/start、/auth/github/start)。 + // CLI 是薄殼,不自己發 key(rule 07),只引導用戶去拿再貼回來。 + console.log(' 1. 開啟 ' + chalk.cyan(ARCRUN_LOGIN_URL) + ' 用 Google / GitHub 登入'); + console.log(' 2. 在 Dashboard 複製你的 API Key(ak_ 開頭)\n'); - process.stdout.write(chalk.gray('\n → 向 arcrun.dev 取得 API Key...')); + const apiKey = (await prompt(rl, 'API Key(ak_...)')).trim(); - let apiKey = ''; - let encryptionKey = ''; - try { - const res = await fetch(ARCRUN_REGISTER_URL, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ email }), - }); - - if (!res.ok) { - const err = await res.text(); - throw new Error(`取得失敗(${res.status}):${err}`); - } - - const data = await res.json() as { api_key: string; encryption_key: string }; - apiKey = data.api_key; - encryptionKey = data.encryption_key; - console.log(chalk.green(' ✓')); - } catch (e) { - console.log(chalk.yellow(` ✗ ${e instanceof Error ? e.message : e}`)); - console.log(chalk.yellow(' 請確認網路連線後重新執行 acr init\n')); + if (!apiKey.startsWith('ak_')) { + console.log(chalk.yellow('\n ✗ API Key 應以 ak_ 開頭,請重新執行 acr init\n')); process.exit(1); } const config: ArcrunConfig = { mode: 'standard', api_key: apiKey, - encryption_key: encryptionKey, }; saveConfig(config); @@ -322,28 +304,20 @@ async function initSelfHosted( console.log(chalk.green(' ✓ 設定寫入 ~/.arcrun/config.yaml')); console.log(chalk.green(' ✓ 建立 credentials.yaml')); - // 下一步:身份設定(self-hosted 單租戶——namespace 明碼用戶自填、encryption_key 用戶自保管)。 + // 下一步:身份設定(self-hosted 單租戶——namespace 明碼用戶自填)。 // 工具不生成、不 hash、不外傳任何 key(守 rule 05 精神:secret 不進自動化,由用戶持有)。 console.log(chalk.bold('\n 下一步 ①:在這個專案建 .env(你自己填,工具不碰):')); console.log(chalk.cyan(' NAMESPACE=leo # 你的資料分區標籤(明碼即可,不是密碼)')); - console.log(chalk.cyan(' ENCRYPTION_KEY=<64+ hex> # credential 加密金鑰,你自己保管')); - console.log(chalk.gray(' 生成 key:node -e "console.log(require(\'crypto\').randomBytes(32).toString(\'hex\'))"')); console.log(chalk.gray(' (NAMESPACE 是分區標籤非密碼;要防外部呼叫請對 webhook 加保護。')); - console.log(chalk.gray(' ENCRYPTION_KEY 忘了 = 解不開已上傳的 credential。.env 已被 gitignore。)')); - - console.log(chalk.bold('\n 下一步 ②:把同一把 ENCRYPTION_KEY 設進你的 worker(runtime 解密要用):')); - for (const w of SECRET_TARGET_WORKERS) { - console.log(chalk.cyan(` wrangler secret put ENCRYPTION_KEY --name ${w}`)); - } - console.log(chalk.gray(` ${SECRET_TARGET_WORKERS.length} 個 Worker 共用同一把(與 .env 的 ENCRYPTION_KEY 一致)。`)); - console.log(chalk.gray(' 不想自己跑?跑 acr init 時授權(明示同意)我可代設——但預設由你自己 put(你持有 key)。\n')); + console.log(chalk.gray(' .env 已被 gitignore。)')); + console.log(chalk.gray(' credential 不需要自管加密金鑰:明文由 CF Workers Secrets 託管。\n')); // credential-store-migration T3(§2.3):cypher worker 要有一把「能打 CF Workers Scripts // secrets 管理 API 的 token」才能讓 POST/PUT /credentials 把密文寫進 Workers Secrets。 - // 比照 ENCRYPTION_KEY 的既有模式(印手動指令,不是工具自動 put)——CF_ACCOUNT_ID 非機密, - // 已由 downloadAndDeploy/injectWranglerConfig 自動注入(同 WORKER_SUBDOMAIN 模式), + // 印手動指令而非工具自動 put——CF_ACCOUNT_ID 非機密,已由 downloadAndDeploy/ + // injectWranglerConfig 自動注入(同 WORKER_SUBDOMAIN 模式), // 只有 CF_SECRETS_API_TOKEN(機密)需要用戶手動 put。 - console.log(chalk.bold(' 下一步 ③:把能打 Workers Scripts secrets API 的 CF token 設進 cypher worker:')); + console.log(chalk.bold(' 下一步 ②:把能打 Workers Scripts secrets API 的 CF token 設進 cypher worker:')); console.log(chalk.cyan(` wrangler secret put CF_SECRETS_API_TOKEN --name arcrun-cypher-executor`)); console.log(chalk.gray(' 貼你剛才用來部署的同一個 CF API Token(需含 Workers Scripts:Edit 權限)。')); console.log(chalk.gray(' 用途:POST/PUT /credentials 把密文寫進 Workers per-script Secrets(credential-store-migration T5)。')); diff --git a/cli/src/lib/cf-api.ts b/cli/src/lib/cf-api.ts index d5af2c7..e12e83d 100644 --- a/cli/src/lib/cf-api.ts +++ b/cli/src/lib/cf-api.ts @@ -164,43 +164,3 @@ export class CfAccountClient { return result.uuid; } } - -/** AES-GCM 加密 credential(與 cypher-executor credential-injector 解密邏輯對應)*/ -export async function encryptCredential(value: string, encryptionKey: string): Promise { - if (!encryptionKey || encryptionKey.length < 64) { - throw new Error( - 'ARCRUN_ENCRYPTION_KEY 未設定或長度不足(需要 256-bit hex,即 64 個十六進位字元)\n' + - '生成指令:node -e "console.log(require(\'crypto\').randomBytes(32).toString(\'hex\'))"' - ); - } - - const keyBytes = hexToUint8Array(encryptionKey); - const cryptoKey = await crypto.subtle.importKey( - 'raw', - keyBytes.buffer as ArrayBuffer, - { name: 'AES-GCM' }, - false, - ['encrypt'], - ); - - const iv = crypto.getRandomValues(new Uint8Array(12)); - const encoded = new TextEncoder().encode(value); - const cipherBuffer = await crypto.subtle.encrypt({ name: 'AES-GCM', iv }, cryptoKey, encoded); - - return JSON.stringify({ - encrypted: uint8ArrayToBase64(new Uint8Array(cipherBuffer)), - iv: uint8ArrayToBase64(iv), - }); -} - -function hexToUint8Array(hex: string): Uint8Array { - const bytes = new Uint8Array(hex.length / 2); - for (let i = 0; i < hex.length; i += 2) { - bytes[i / 2] = parseInt(hex.slice(i, i + 2), 16); - } - return bytes; -} - -function uint8ArrayToBase64(arr: Uint8Array): string { - return Buffer.from(arr).toString('base64'); -} diff --git a/cli/src/lib/config.ts b/cli/src/lib/config.ts index 7c7a5f7..e683eff 100644 --- a/cli/src/lib/config.ts +++ b/cli/src/lib/config.ts @@ -12,7 +12,6 @@ export interface ArcrunConfig { mode: 'local' | 'standard' | 'self-hosted'; // Standard 模式 api_key?: string; // arcrun.dev API Key(ak_前綴) - encryption_key?: string; // AES-GCM key,與 cypher-executor ENCRYPTION_KEY secret 一致 // Self-hosted 模式 cloudflare_account_id?: string; user_kv_namespace_id?: string; @@ -58,8 +57,6 @@ const ENV_MAP: Record = { NAMESPACE: 'api_key', ARCRUN_NAMESPACE: 'api_key', ARCRUN_API_KEY: 'api_key', - ARCRUN_ENCRYPTION_KEY: 'encryption_key', - ENCRYPTION_KEY: 'encryption_key', ARCRUN_CYPHER_EXECUTOR_URL: 'cypher_executor_url', ARCRUN_MCP_URL: 'mcp_url', CLOUDFLARE_ACCOUNT_ID: 'cloudflare_account_id', @@ -117,7 +114,7 @@ function readProjectConfig(): Partial | undefined { /** * 載入 .env(就近往上找,同 .arcrun.yaml)到 process.env,讓用戶照 Node/Python 慣例 - * 在 .env 設 NAMESPACE / ENCRYPTION_KEY 等即生效。不覆蓋「已存在於 shell」的 env(shell > .env)。 + * 在 .env 設 NAMESPACE / CLOUDFLARE_* 等即生效。不覆蓋「已存在於 shell」的 env(shell > .env)。 * 自己解析(不引入 dotenv 依賴)。只認單純 KEY=VALUE,忽略空行/註解/引號。 */ let _envFileLoaded = false; @@ -193,7 +190,7 @@ export function resolveConfigSources(): Array<{ field: keyof ArcrunConfig; value const project = readProjectConfig() ?? {}; const env = readEnvOverrides(); const fields: (keyof ArcrunConfig)[] = [ - 'mode', 'api_key', 'encryption_key', 'cloudflare_account_id', + 'mode', 'api_key', 'cloudflare_account_id', 'cf_api_token', 'cypher_executor_url', 'mcp_url', ]; const rows: Array<{ field: keyof ArcrunConfig; value: string; source: ConfigSource }> = []; diff --git a/cli/src/lib/deploy.ts b/cli/src/lib/deploy.ts index 1da00eb..07df9a2 100644 --- a/cli/src/lib/deploy.ts +++ b/cli/src/lib/deploy.ts @@ -129,13 +129,6 @@ export const REQUIRED_KV_NAMESPACES = [ 'OAUTH_KV', ] as const; -/** 部署後要提示用戶手動 `wrangler secret put ENCRYPTION_KEY` 的 Worker。*/ -export const SECRET_TARGET_WORKERS = [ - 'arcrun-cypher-executor', - 'arcrun-auth-static-key', - 'arcrun-auth-service-account', -] as const; - /** 共享部署依賴(downloadAndDeploy 2.5:tarball root 裝一次,各 worker 往上 resolve)。 * 含全部 worker 的 runtime deps:tier1 component 只要 hono;tier2 cypher/registry/mcp/kbdb * 另需 zod / @hono/zod-openapi / @modelcontextprotocol/sdk / js-yaml / yaml; diff --git a/cypher-executor/src/actions/auth-dispatcher.ts b/cypher-executor/src/actions/auth-dispatcher.ts index edc813f..3474741 100644 --- a/cypher-executor/src/actions/auth-dispatcher.ts +++ b/cypher-executor/src/actions/auth-dispatcher.ts @@ -6,15 +6,15 @@ * * 嚴格邊界(rule 02 §2.2): * - 本檔**不做**任何 credential 解密 / template 展開 / JWT 簽章 - * - 那些全部在 auth primitive WASM 零件內執行(透過 host function `crypto_decrypt` 等) + * - 那些全部在 auth primitive WASM 零件內執行(透過 host function `secret_get` 等) * - 本檔只做「查 recipe 決定走哪個 primitive Worker」+「HTTP fetch 取回注入結果」 * * 目前階段接上 `auth_static_key` + `auth_service_account` + `auth_oauth2`, * Phase 4 剩 `auth_mtls`(mTLS handshake 在 Worker runtime 層)。 * * 執行時機:graph-executor 在節點 runner 執行前呼叫,取回的 ctx 會: - * 1. 先試本 dispatcher(命中才 return enriched ctx) - * 2. 沒命中 fallback 到 `injectCredentials`(Phase 1.9 才刪除) + * 1. 本 dispatcher 命中 → return enriched ctx + * 2. 沒命中 → ctx 原樣往下(T10 起舊的 injectCredentials 雙讀 fallback 已移除) */ import type { Bindings } from '../types'; @@ -250,7 +250,7 @@ function replaceCredentialRefs(value: unknown, resolved: Record) * * 嚴格邊界(rule 02 §2.2):本函式**不解密**。偵測到 {{credential.X}} 後,把 names 交給 * auth_static_key WASM 的 `resolve_credentials` action(WASM 內 kv_get + crypto_decrypt), - * 拿回明文後只做字串回填。ENCRYPTION_KEY 永不經此處。 + * 拿回明文後只做字串回填。本檔不解密、不持有任何金鑰。 * * - 無 {{credential.}} → 原樣回傳(不打 WASM,零開銷) * - 解密失敗 / 缺 credential → throw(誠實報錯,不假綠) diff --git a/cypher-executor/src/actions/credential-injector.ts b/cypher-executor/src/actions/credential-injector.ts deleted file mode 100644 index 2cbf436..0000000 --- a/cypher-executor/src/actions/credential-injector.ts +++ /dev/null @@ -1,235 +0,0 @@ -/** - * Credential Injector - * - * 執行順序: - * 1. 檢查是否有對應的 auth recipe(auth_recipe:{componentId} in RECIPES KV) - * → 有:走 auth recipe 路徑(支援 static_key, service_account) - * → 無:走舊有 flat injection 路徑(向後相容) - * - * Auth Recipe 路徑: - * - static_key:展開 inject.header/query/body 的 {{secret.KEY}} 模板 - * - service_account:JWT signing → token exchange → 展開 {{runtime.access_token}} - * - 注入結果以 _auth_headers / _auth_query / _auth_body 攜帶,不污染業務欄位 - * - * 舊有路徑(向後相容): - * - 從 RECIPES KV 讀取 credentials_required(動態 recipe) - * - 或從 BUILTIN_CREDENTIALS_MAP(內建清單) - * - 解密後以 inject_as 欄位名稱直接注入 context - */ - -import type { Bindings } from '../types'; -import { resolveRecipe, resolveAuthRecipe } from '../routes/recipes'; -import type { AuthRecipeDefinition } from '../routes/recipes'; - -export interface CredentialRequirement { - key: string; // CREDENTIALS_KV 的 credential 名稱(如 gmail_token) - inject_as: string; // 注入到 input 的欄位名稱(如 access_token) -} - -/** 內建 API recipe 的 credentials_required(對應 component-loader 的 BUILTIN_API_RECIPES)*/ -const BUILTIN_CREDENTIALS_MAP: Record = { - gmail: [{ key: 'gmail_token', inject_as: 'access_token' }], - google_sheets: [{ key: 'google_oauth', inject_as: 'access_token' }], - telegram: [{ key: 'telegram_bot_token', inject_as: 'bot_token' }], - line_notify: [{ key: 'line_token', inject_as: 'token' }], -}; - -// ── AES-GCM 解密 ────────────────────────────────────────────────────────────── - -async function decryptCredential(encryptedJson: string, encryptionKey: string): Promise { - const { encrypted, iv } = JSON.parse(encryptedJson) as { encrypted: string; iv: string }; - - const keyBytes = hexToUint8Array(encryptionKey); - const cryptoKey = await crypto.subtle.importKey( - 'raw', keyBytes, { name: 'AES-GCM' }, false, ['decrypt'], - ); - - const decrypted = await crypto.subtle.decrypt( - { name: 'AES-GCM', iv: base64ToUint8Array(iv) }, - cryptoKey, - base64ToUint8Array(encrypted), - ); - - return new TextDecoder().decode(decrypted); -} - -function hexToUint8Array(hex: string): Uint8Array { - const bytes = new Uint8Array(hex.length / 2); - for (let i = 0; i < hex.length; i += 2) bytes[i / 2] = parseInt(hex.slice(i, i + 2), 16); - return bytes; -} - -function base64ToUint8Array(b64: string): Uint8Array { - const binary = atob(b64); - const bytes = new Uint8Array(binary.length); - for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i); - return bytes; -} - -// ── 解密所有 required_secrets → { key: decryptedValue } ────────────────────── - -async function decryptSecrets( - recipe: AuthRecipeDefinition, - apiKey: string, - env: Bindings, -): Promise> { - const result: Record = {}; - - for (const req of recipe.required_secrets) { - if (req.optional) continue; - - const kvKey = `${apiKey}:cred:${req.key}`; - const record = await env.CREDENTIALS_KV.get(kvKey); - - if (!record) { - throw new Error( - `缺少 credential:${req.key}(${req.label})\n` + - `修復步驟:\n` + - ` 1. 在 credentials.yaml 加入 ${req.key}: "your-value"\n` + - ` 2. 執行:acr creds push`, - ); - } - - result[req.key] = await decryptCredential(record, env.ENCRYPTION_KEY); - } - - return result; -} - -// ── Template 展開:{{secret.KEY}} 和 {{runtime.KEY}} ───────────────────────── - -function interpolateTemplate( - template: string, - secrets: Record, - runtime: Record, -): string { - return template.replace(/\{\{(secret|runtime)\.(\w+)\}\}/g, (_, ns, key) => { - if (ns === 'secret') return secrets[key] ?? ''; - if (ns === 'runtime') return runtime[key] ?? ''; - return ''; - }); -} - -function interpolateRecord( - record: Record, - secrets: Record, - runtime: Record, -): Record { - const result: Record = {}; - for (const [k, v] of Object.entries(record)) { - result[k] = interpolateTemplate(v, secrets, runtime); - } - return result; -} - -// ── Auth Recipe 注入(新路徑)──────────────────────────────────────────────── - -async function injectFromAuthRecipe( - recipe: AuthRecipeDefinition, - input: Record, - env: Bindings, - apiKey: string, -): Promise> { - // 解密所有 required_secrets - const secrets = await decryptSecrets(recipe, apiKey, env); - - // runtime token:service_account 路徑已改走 auth-dispatcher → auth_service_account WASM; - // 這條 TS fallback 只處理 static_key (runtime 為空即可),service_account 永遠不會走到這裡 - const runtime: Record = {}; - - if (recipe.primitive === 'service_account') { - throw new Error( - `service_account primitive 應由 auth-dispatcher → auth_service_account WASM 處理,` + - `不應進到 credential-injector TS fallback (service=${recipe.service})`, - ); - } - - // 展開 inject 模板 - const authHeaders = recipe.inject.header - ? interpolateRecord(recipe.inject.header, secrets, runtime) - : {}; - const authQuery = recipe.inject.query - ? interpolateRecord(recipe.inject.query, secrets, runtime) - : {}; - const authBody = recipe.inject.body - ? interpolateRecord(recipe.inject.body, secrets, runtime) - : {}; - - return { - ...input, - _auth_headers: authHeaders, - _auth_query: authQuery, - _auth_body: authBody, - }; -} - -// ── 舊有路徑:flat injection(向後相容)────────────────────────────────────── - -async function loadCredentialsRequired( - componentId: string, - env: Bindings, -): Promise { - const recipe = await resolveRecipe(componentId, env.RECIPES); - if (recipe?.credentials_required?.length) { - return recipe.credentials_required; - } - return BUILTIN_CREDENTIALS_MAP[componentId] ?? []; -} - -// ── 主入口 ──────────────────────────────────────────────────────────────────── - -/** - * 執行 credential 注入。 - * - * @param componentId - 零件 canonical_id 或 hash - * @param input - 節點的 merged context - * @param env - Cloudflare Worker Bindings - * @param apiKey - 用戶的 API Key(ak_前綴),作為 KV namespace - */ -export async function injectCredentials( - componentId: string, - input: Record, - env: Bindings, - apiKey?: string, -): Promise> { - // 沒有 api_key → local 模式,略過 - if (!apiKey) return input; - - // ── 新路徑:auth recipe ── - const authRecipe = await resolveAuthRecipe(componentId, env.RECIPES); - if (authRecipe) { - return injectFromAuthRecipe(authRecipe, input, env, apiKey); - } - - // ── 舊路徑:flat injection(向後相容)── - const required = await loadCredentialsRequired(componentId, env); - if (required.length === 0) return input; - - const enriched = { ...input }; - - for (const cred of required) { - const kvKey = `${apiKey}:cred:${cred.key}`; - const record = await env.CREDENTIALS_KV.get(kvKey); - - if (!record) { - throw new Error( - `缺少 credential:${cred.key}\n` + - `修復步驟:\n` + - ` 1. 在 credentials.yaml 中加入 ${cred.key}: "your-token"\n` + - ` 2. 執行:acr creds push`, - ); - } - - try { - const decrypted = await decryptCredential(record, env.ENCRYPTION_KEY); - enriched[cred.inject_as] = decrypted; - } catch (e) { - throw new Error( - `credential "${cred.key}" 解密失敗:${e instanceof Error ? e.message : String(e)}\n` + - `修復步驟:重新執行 acr creds push。`, - ); - } - } - - return enriched; -} diff --git a/cypher-executor/src/graph-executor.ts b/cypher-executor/src/graph-executor.ts index f660399..672e96b 100644 --- a/cypher-executor/src/graph-executor.ts +++ b/cypher-executor/src/graph-executor.ts @@ -1,7 +1,6 @@ // arcrun 圖遍歷引擎 — 支援完整 Cypher 語意關係 import type { ExecutionGraph, GraphNode, TraceStep, ComponentRunner, KVContextStore, EdgeType, Bindings } from './types'; import { kvSetNodeOutput, kvGetNodeOutput, ExecutionError, WorkflowPaused } from './types'; -import { injectCredentials } from './actions/credential-injector'; import { tryAuthDispatch, resolveCredentialRefs } from './actions/auth-dispatcher'; import { expandPromptRecipe } from './lib/recipe-expander'; import { resolveRecipe } from './routes/recipes'; @@ -246,8 +245,8 @@ export class GraphExecutor { }; // 用戶面 {{credential.NAME}} 展開(design §8):偵測 node.data 裡用戶寫的 - // {{credential.X}} → 交 auth_static_key WASM resolve_credentials 解密回填。 - // 解密在 WASM(rule 02 §2.2),此處只偵測+回填,不碰 ENCRYPTION_KEY。 + // {{credential.X}} → 交 auth_static_key WASM resolve_credentials 取值回填。 + // 取值在 WASM(rule 02 §2.2),此處只偵測+回填,不碰任何秘密值。 if (this.env && this.apiKey) { mergedContext = await resolveCredentialRefs(mergedContext, this.env, this.apiKey); } @@ -283,19 +282,13 @@ export class GraphExecutor { } } - // Credential 注入:在 WASM 執行前自動注入 credentials_required 中宣告的 token - if (this.env) { - // 先試 auth dispatcher(新路徑,走 auth primitive WASM Worker via HTTP) - // 命中才 return;否則 fallback 到舊 injectCredentials(Phase 1.9 會刪除) - if (this.apiKey) { - const dispatched = await tryAuthDispatch(node.componentId, mergedContext, this.env, this.apiKey); - if (dispatched) { - mergedContext = dispatched; - } else { - mergedContext = await injectCredentials(node.componentId, mergedContext, this.env, this.apiKey); - } - } else { - mergedContext = await injectCredentials(node.componentId, mergedContext, this.env, this.apiKey); + // Credential 注入:在 WASM 執行前自動注入 credentials_required 中宣告的 token。 + // 走 auth dispatcher(auth primitive WASM Worker via HTTP)——值住 CF Workers + // Secrets,由 WASM 內 secret_get 取用。 + if (this.env && this.apiKey) { + const dispatched = await tryAuthDispatch(node.componentId, mergedContext, this.env, this.apiKey); + if (dispatched) { + mergedContext = dispatched; } } diff --git a/cypher-executor/src/index.ts b/cypher-executor/src/index.ts index efe485c..db1b98c 100644 --- a/cypher-executor/src/index.ts +++ b/cypher-executor/src/index.ts @@ -12,7 +12,6 @@ import { docsRouter } from './routes/docs'; import { webhooksRouter } from './routes/webhooks'; import { webhooksCrudRouter } from './routes/webhooks-crud'; import { webhooksListRouter } from './routes/webhooks-list'; -import { registerRouter } from './routes/register'; import { recipesRouter } from './routes/recipes'; import { credentialsRouter } from './routes/credentials'; import { webhooksNamedRouter } from './routes/webhooks-named'; @@ -48,7 +47,6 @@ app.route('/', webhooksRouter); app.route('/', webhooksNamedRouter); // 必須在 webhooksCrudRouter 前(避免 /webhooks/:token 攔截 /webhooks/named) app.route('/', webhooksCrudRouter); app.route('/', webhooksListRouter); -app.route('/', registerRouter); app.route('/', recipesRouter); app.route('/', credentialsRouter); app.route('/', authRouter); diff --git a/cypher-executor/src/lib/component-loader.ts b/cypher-executor/src/lib/component-loader.ts index d438357..c708807 100644 --- a/cypher-executor/src/lib/component-loader.ts +++ b/cypher-executor/src/lib/component-loader.ts @@ -319,7 +319,7 @@ function makeRecipeRunner(recipe: import('../routes/recipes').RecipeDefinition): // ── Auth Recipe Runner ──────────────────────────────────────────────────────── // -// credential-injector 已先將認證資訊注入為 _auth_headers / _auth_query / _auth_body。 +// auth-dispatcher 已先將認證資訊注入為 _auth_headers / _auth_query / _auth_body。 // 這裡只需要讀取這些欄位,合併進 fetch,再清除 _auth_* 不傳給下游。 function makeAuthRecipeRunner(recipe: AuthRecipeDefinition): ComponentRunner { diff --git a/cypher-executor/src/lib/console-dashboard-model.ts b/cypher-executor/src/lib/console-dashboard-model.ts index 536414a..39c7a19 100644 --- a/cypher-executor/src/lib/console-dashboard-model.ts +++ b/cypher-executor/src/lib/console-dashboard-model.ts @@ -308,7 +308,7 @@ export function extractCompletedDays(text: string): string[] { } /** 截斷/切冒號後可能留下未閉合的全形括號 → 從最後一個未配對「(」剪掉。 - * 整串都在括號裡(如「(T10 廢 ENCRYPTION_KEY:…」註記行)會剪成空字串—— + * 整串都在括號裡(如「(備註:…」這種註記行)會剪成空字串—— * caller 視空標題為「不是任務」跳過,恰好把括號註記行濾掉。 */ function trimUnbalancedParen(s: string): string { let depth = 0; diff --git a/cypher-executor/src/lib/wasi-shim.ts b/cypher-executor/src/lib/wasi-shim.ts index 0ea20d3..7ea0aa4 100644 --- a/cypher-executor/src/lib/wasi-shim.ts +++ b/cypher-executor/src/lib/wasi-shim.ts @@ -10,17 +10,16 @@ /** * createArcrunHostFunctions 所需的最小 env 子集。 * 不直接依賴 cypher-executor 的 Bindings,讓 auth primitive Worker 這類 - * 只綁 CREDENTIALS_KV / RECIPES / ENCRYPTION_KEY 的獨立 Worker 也能用。 + * 只綁 CREDENTIALS_KV / RECIPES 的獨立 Worker 也能用。 */ export interface ArcrunHostEnv { CREDENTIALS_KV: KVNamespace; RECIPES: KVNamespace; - ENCRYPTION_KEY: string; /** * credential-store-migration T4(§2.5/§5):CF Workers per-script Secrets 以 env var 形式 * 注入 worker,值只能靠字串動態索引取得(`env[ref]`,T1.5 spike ② 已證可行)。 * 用 index signature 讓 `secret_get` host function 能對任意 secret_ref 字串取值, - * 不需要像 ENCRYPTION_KEY 那樣逐一宣告固定屬性名。 + * 不需要逐一宣告固定屬性名。 */ [secretRef: string]: unknown; } @@ -55,7 +54,7 @@ export interface WasiShim { * 讓 .wasm 零件能透過 host function 呼叫外部服務,而不需要網路 syscall * * 嚴格邊界: - * - encryption key 只在 `crypto_decrypt` host function 內部使用,永遠不傳給 WASM + * - `secret_get` 只放行 `CRED_` 前綴,WASM 讀不到 worker 本身的其他機密 * - `kv_get` 必須在 Worker 側檢查 key 前綴以防越權(見 auth-dispatcher.ts) */ export interface WasiHostFunctions { @@ -72,16 +71,8 @@ export interface WasiHostFunctions { secret_get?: (ref: string) => Promise; /** KV 寫入:用於快取 access_token 等短效值,ttlSeconds=0 表示不設 TTL */ kv_put?: (key: string, value: string, ttlSeconds: number) => Promise; - /** AES-GCM 解密:encryption key 由 Worker 保管,不暴露給 WASM */ - crypto_decrypt?: (encryptedB64: string, ivB64: string) => Promise; /** RS256 簽章:用 crypto.subtle 做 RSASSA-PKCS1-v1_5 + SHA-256 */ crypto_sign_rs256?: (data: Uint8Array, pkcs8: Uint8Array) => Promise; - /** HMAC-SHA256(data, ENCRYPTION_KEY) → raw bytes */ - crypto_hmac_sha256?: (data: Uint8Array) => Promise; - /** AES-GCM 加密(plaintext, ENCRYPTION_KEY) → {encryptedB64, ivB64} */ - crypto_aes_encrypt?: (plaintext: Uint8Array) => Promise<{ encryptedB64: string; ivB64: string }>; - /** crypto random bytes → hex string */ - crypto_random_bytes?: (numBytes: number) => string; } /** @@ -422,23 +413,13 @@ export function createWasiShim(stdinData: string, hostFunctions?: WasiHostFuncti }) : () => 1, - // crypto_decrypt(encPtr, encLen, ivPtr, ivLen, outPtr, outLenPtr) → 0 成功 - // 輸入皆為 base64 字串(WASM 從 KV 讀到什麼就送什麼) - crypto_decrypt: hostFunctions?.crypto_decrypt - ? hostWrap(async (encPtr: number, encLen: number, ivPtr: number, ivLen: number, - outPtr: number, outLenPtr: number): Promise => { - if (!memory) return 1; - const dec = new TextDecoder(); - const encB64 = dec.decode(new Uint8Array(memory.buffer, encPtr, encLen)); - const ivB64 = dec.decode(new Uint8Array(memory.buffer, ivPtr, ivLen)); - try { - const plaintext = await hostFunctions!.crypto_decrypt!(encB64, ivB64); - return writeOut(memory.buffer, outPtr, outLenPtr, new TextEncoder().encode(plaintext)); - } catch { - return 1; - } - }) - : () => 1, + // crypto_decrypt — 已停用,永遠回 1(失敗)。 + // + // ⚠️ 不能整條移除:現役 auth_static_key / auth_service_account / auth_oauth2 的 + // .wasm 仍宣告 `//go:wasmimport u6u crypto_decrypt`,import 缺項會讓 WASM + // **instantiate 直接失敗**(不是呼叫才失敗)→ 所有認證零件全掛。故保留成 stub, + // 讓連結成立。待三個零件的 Go 原始碼移除該 wasmimport 並重編 wasm 後,才可刪掉這條。 + crypto_decrypt: () => 1, // crypto_sign_rs256(dataPtr, dataLen, pkcs8Ptr, pkcs8Len, outPtr, outLenPtr) → 0 成功 crypto_sign_rs256: hostFunctions?.crypto_sign_rs256 @@ -457,52 +438,6 @@ export function createWasiShim(stdinData: string, hostFunctions?: WasiHostFuncti }) : () => 1, - // crypto_hmac_sha256(dataPtr, dataLen, outPtr, outLenPtr) → 0 成功,output = raw bytes - crypto_hmac_sha256: hostFunctions?.crypto_hmac_sha256 - ? hostWrap(async (dataPtr: number, dataLen: number, outPtr: number, outLenPtr: number): Promise => { - if (!memory) return 1; - const data = new Uint8Array(new Uint8Array(memory.buffer, dataPtr, dataLen)); - try { - const sig = await hostFunctions!.crypto_hmac_sha256!(data); - return writeOut(memory.buffer, outPtr, outLenPtr, sig); - } catch { - return 1; - } - }) - : () => 1, - - // crypto_aes_encrypt(plaintextPtr, plaintextLen, outEncPtr, outEncLenPtr, outIvPtr, outIvLenPtr) → 0 成功 - crypto_aes_encrypt: hostFunctions?.crypto_aes_encrypt - ? hostWrap(async (plaintextPtr: number, plaintextLen: number, - outEncPtr: number, outEncLenPtr: number, - outIvPtr: number, outIvLenPtr: number): Promise => { - if (!memory) return 1; - const plaintext = new Uint8Array(new Uint8Array(memory.buffer, plaintextPtr, plaintextLen)); - try { - const { encryptedB64, ivB64 } = await hostFunctions!.crypto_aes_encrypt!(plaintext); - const encBytes = new TextEncoder().encode(encryptedB64); - const ivBytes = new TextEncoder().encode(ivB64); - const s1 = writeOut(memory.buffer, outEncPtr, outEncLenPtr, encBytes); - const s2 = writeOut(memory.buffer, outIvPtr, outIvLenPtr, ivBytes); - return s1 !== 0 ? s1 : s2; - } catch { - return 1; - } - }) - : () => 1, - - // crypto_random_bytes(numBytes, outPtr, outLenPtr) → 0 成功,output = hex string - crypto_random_bytes: hostFunctions?.crypto_random_bytes - ? (numBytes: number, outPtr: number, outLenPtr: number): number => { - if (!memory) return 1; - try { - const hexStr = hostFunctions!.crypto_random_bytes!(numBytes); - return writeOut(memory.buffer, outPtr, outLenPtr, new TextEncoder().encode(hexStr)); - } catch { - return 1; - } - } - : () => 1, }, }, @@ -636,11 +571,11 @@ export function createWasiShim(stdinData: string, hostFunctions?: WasiHostFuncti // ── Worker 端 host function 實作(Phase 0.6)────────────────────────────────── // -// 唯一合法位置:AES-GCM 解密與 RS256 簽章只准出現在本檔(02-forbidden.md §2.2)。 +// 唯一合法位置:RS256 簽章只准出現在本檔(02-forbidden.md §2.2)。 // 由 component-loader 的 WASM runner 路徑呼叫,注入進 createWasiShim。 // // 安全邊界: -// 1. `ENCRYPTION_KEY` 只在 `crypto_decrypt` 內部讀 env,絕不經 stdin/回傳值傳給 WASM +// 1. `secret_get` 只放行 `CRED_` 前綴,WASM 讀不到 worker 本身的其他 env 機密 // 2. `kv_get` 依 key 前綴路由,且 `{api_key}:cred:*` 必須符合 stdin 傳入的 api_key(越權檢查) // 3. 未知前綴回傳 null(WASM 收到 kv_get 回傳 2 = 找不到) @@ -692,23 +627,6 @@ async function routedKvPut(env: ArcrunHostEnv, apiKey: string, key: string, valu // 其他 key 前綴拒絕寫入(安全邊界) } -/** - * AES-GCM 解密。encryption key 由 env.ENCRYPTION_KEY 在本 function 內讀取, - * 永不傳給 WASM。輸入為 base64 字串,輸出為 UTF-8 plaintext。 - */ -async function aesGcmDecrypt(env: ArcrunHostEnv, encryptedB64: string, ivB64: string): Promise { - const keyBytes = hexToUint8Array(env.ENCRYPTION_KEY); - const cryptoKey = await crypto.subtle.importKey( - 'raw', keyBytes, { name: 'AES-GCM' }, false, ['decrypt'], - ); - const plaintext = await crypto.subtle.decrypt( - { name: 'AES-GCM', iv: base64ToUint8Array(ivB64) }, - cryptoKey, - base64ToUint8Array(encryptedB64), - ); - return new TextDecoder().decode(plaintext); -} - /** * RSASSA-PKCS1-v1_5 + SHA-256 簽章。private key 以 PKCS8 bytes 傳入(由 WASM 零件解析 PEM 後送進來)。 */ @@ -730,7 +648,7 @@ async function rsaPkcs1Sha256Sign(data: Uint8Array, pkcs8: Uint8Array): Promise< * * 安全邊界(比照 `routedKvGet` 的前綴檢查精神;design.md §2.3「secret_ref 命名需以 CRED_ * 前綴隔離命名空間」):只允許讀 `CRED_` 開頭的 ref。WASM 不該、也不需要讀到 worker 本身的 - * 其他機密(`ENCRYPTION_KEY` / `CF_SECRETS_API_TOKEN` 等非 credential 用途的 env var)。 + * 其他機密(`CF_SECRETS_API_TOKEN` 等非 credential 用途的 env var)。 * 不符前綴或值非字串 → 回傳 null(與 `kv_get` 的「拒絕/找不到」語意一致)。 */ function secretGet(env: ArcrunHostEnv, ref: string): string | null { @@ -740,7 +658,7 @@ function secretGet(env: ArcrunHostEnv, ref: string): string | null { } /** - * 建立 arcrun host function 組合(kv_get / crypto_decrypt / crypto_sign_rs256 / secret_get)。 + * 建立 arcrun host function 組合(kv_get / kv_put / crypto_sign_rs256 / secret_get)。 * 由 WASM runner(component-loader 的 WASM 路徑)呼叫,與 api_key 綁定以做越權檢查。 * * http_request 不由本 factory 提供 — auth primitive WASM 與 API WASM 零件若需要 @@ -750,39 +668,7 @@ export function createArcrunHostFunctions(env: ArcrunHostEnv, apiKey: string): W return { kv_get: (key: string) => routedKvGet(env, apiKey, key), kv_put: (key: string, value: string, ttlSeconds: number) => routedKvPut(env, apiKey, key, value, ttlSeconds), - crypto_decrypt: (encB64: string, ivB64: string) => aesGcmDecrypt(env, encB64, ivB64), crypto_sign_rs256: (data: Uint8Array, pkcs8: Uint8Array) => rsaPkcs1Sha256Sign(data, pkcs8), secret_get: async (ref: string) => secretGet(env, ref), }; } - -/** - * 建立 platform_crypto host functions。 - * 不需要 apiKey 或 KV routing,只提供加密操作。 - * ENCRYPTION_KEY 在 closure 內,永不傳給 WASM。 - */ -export function createPlatformCryptoHostFunctions(encryptionKey: string): WasiHostFunctions { - const toB64 = (buf: ArrayBuffer): string => btoa(String.fromCharCode(...new Uint8Array(buf))); - - return { - crypto_hmac_sha256: async (data: Uint8Array): Promise => { - const keyBytes = new TextEncoder().encode(encryptionKey.slice(0, 32)); - const cryptoKey = await crypto.subtle.importKey('raw', keyBytes, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']); - const sig = await crypto.subtle.sign('HMAC', cryptoKey, data); - return new Uint8Array(sig); - }, - - crypto_aes_encrypt: async (plaintext: Uint8Array): Promise<{ encryptedB64: string; ivB64: string }> => { - const keyBytes = new TextEncoder().encode(encryptionKey.slice(0, 32)); - const cryptoKey = await crypto.subtle.importKey('raw', keyBytes, { name: 'AES-GCM' }, false, ['encrypt']); - const iv = crypto.getRandomValues(new Uint8Array(12)); - const enc = await crypto.subtle.encrypt({ name: 'AES-GCM', iv }, cryptoKey, plaintext); - return { encryptedB64: toB64(enc), ivB64: toB64(iv.buffer) }; - }, - - crypto_random_bytes: (numBytes: number): string => { - const arr = crypto.getRandomValues(new Uint8Array(numBytes)); - return Array.from(arr).map(b => b.toString(16).padStart(2, '0')).join(''); - }, - }; -} diff --git a/cypher-executor/src/routes/auth.ts b/cypher-executor/src/routes/auth.ts index a48e2a2..67dd4ce 100644 --- a/cypher-executor/src/routes/auth.ts +++ b/cypher-executor/src/routes/auth.ts @@ -9,6 +9,7 @@ import { Hono } from 'hono'; import type { Bindings } from '../types'; +import { storeCredential } from './credentials'; export const authRouter = new Hono<{ Bindings: Bindings }>(); @@ -48,26 +49,13 @@ function getLandingOrigin(c: { req: { raw: Request } }): string { return 'https://arcrun.dev'; } -/** 產生 API Key(HMAC-SHA256 of email,與 /register 相同邏輯) */ -async function generateApiKey(email: string, encryptionKey: string): Promise { - const keyData = new TextEncoder().encode(encryptionKey.slice(0, 32)); - const msgData = new TextEncoder().encode(email); - const cryptoKey = await crypto.subtle.importKey( - 'raw', keyData, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign'] - ); - const sig = await crypto.subtle.sign('HMAC', cryptoKey, msgData); - const hex = Array.from(new Uint8Array(sig)).map(b => b.toString(16).padStart(2, '0')).join(''); - return 'ak_' + hex.slice(0, 32); -} - -/** AES-GCM 加密,回傳 {encrypted, iv}(base64),與 SDK 格式相同 */ -async function aesEncrypt(plaintext: string, encryptionKey: string): Promise<{ encrypted: string; iv: string }> { - const keyBytes = new TextEncoder().encode(encryptionKey.slice(0, 32)); - const cryptoKey = await crypto.subtle.importKey('raw', keyBytes, { name: 'AES-GCM' }, false, ['encrypt']); - const iv = crypto.getRandomValues(new Uint8Array(12)); - const enc = await crypto.subtle.encrypt({ name: 'AES-GCM', iv }, cryptoKey, new TextEncoder().encode(plaintext)); - const toB64 = (buf: ArrayBuffer | Uint8Array) => btoa(String.fromCharCode(...new Uint8Array(buf instanceof ArrayBuffer ? buf : buf))); - return { encrypted: toB64(enc), iv: toB64(iv) }; +/** + * 產生 API Key(隨機,與 /me/api-key/rotate 同一套)。 + * + * key 與 email 無關、不可預測;登入走 USERS_KV 讀出的 api_key,不重算。 + */ +function generateApiKey(): string { + return 'ak_' + randomToken(24); } /** 幂等寫入 auth_recipe 到 RECIPES KV(若已存在相同版本則跳過) */ @@ -198,16 +186,14 @@ authRouter.get('/auth/callback', async (c) => { } await c.env.SESSIONS_KV.delete(`state:${state}`); - const encryptionKey = c.env.ENCRYPTION_KEY; - if (!encryptionKey) { - return Response.redirect(`${landingOrigin}/login?error=server_error`, 302); - } - try { let email: string; let displayName: string; let avatarUrl: string | undefined; let providerId: string; + // provider token 要存進 credential 新家,但必須用最終的 api_key 當租戶鍵, + // 而 api_key 要等下方 USERS_KV upsert 才決定 → 先暫存,稍後再寫。 + let pendingCredential: { name: string; value: string; service: string } | null = null; const provider = stateRecord.provider; const redirectUri = 'https://cypher.arcrun.dev/auth/callback'; @@ -240,12 +226,10 @@ authRouter.get('/auth/callback', async (c) => { avatarUrl = userInfo.picture; providerId = userInfo.sub; - // 存 Google refresh_token(加密)到 CREDENTIALS_KV,供 auth_oauth2 零件使用 - // Google 只在首次授權時回傳 refresh_token,後續登入 tokenData.refresh_token 為 undefined + // 存 Google refresh_token 供 auth_oauth2 零件使用(實際寫入在 apiKey 決定後,見下方 + // pendingCredential)。Google 只在首次授權時回傳 refresh_token,後續登入為 undefined if (tokenData.refresh_token) { - const credKey = `${await generateApiKey(email, encryptionKey)}:cred:google_refresh_token`; - const encrypted = await aesEncrypt(tokenData.refresh_token, encryptionKey); - await c.env.CREDENTIALS_KV.put(credKey, JSON.stringify(encrypted)); + pendingCredential = { name: 'google_refresh_token', value: tokenData.refresh_token, service: 'google_user' }; // 種 auth_recipe:google_user(用戶自己的 Google OAuth2) void upsertAuthRecipe(c.env.RECIPES, { @@ -319,12 +303,10 @@ authRouter.get('/auth/callback', async (c) => { avatarUrl = userInfo.avatar_url; providerId = String(userInfo.id); - // 存 GitHub access_token(加密)到 CREDENTIALS_KV,供 auth_oauth2 零件使用 - // GitHub 沒有 refresh_token,access_token 長效(直到 revoke) + // 存 GitHub access_token 供 auth_static_key 零件使用(實際寫入在 apiKey 決定後,見 + // 下方 pendingCredential)。GitHub 沒有 refresh_token,access_token 長效(直到 revoke) if (tokenData.access_token) { - const credKey = `${await generateApiKey(email, encryptionKey)}:cred:github_access_token`; - const encrypted = await aesEncrypt(tokenData.access_token, encryptionKey); - await c.env.CREDENTIALS_KV.put(credKey, JSON.stringify(encrypted)); + pendingCredential = { name: 'github_access_token', value: tokenData.access_token, service: 'github_user' }; // GitHub access_token 長效無 refresh 概念,用 static_key primitive void upsertAuthRecipe(c.env.RECIPES, { @@ -352,8 +334,8 @@ authRouter.get('/auth/callback', async (c) => { const updated: UserRecord = { ...existing, display_name: displayName, avatar_url: avatarUrl }; await c.env.USERS_KV.put(userKey, JSON.stringify(updated)); } else { - // New user — generate api key (same HMAC logic as /register) - apiKey = await generateApiKey(email, encryptionKey); + // New user — generate a random api key + apiKey = generateApiKey(); const newUser: UserRecord = { email, display_name: displayName, avatar_url: avatarUrl, api_key: apiKey, provider, provider_id: providerId, @@ -364,6 +346,16 @@ authRouter.get('/auth/callback', async (c) => { await c.env.USERS_KV.put(`apikey:${apiKey}`, userKey); } + // provider token → credential 新家(Workers Secrets + D1)。登入本身不該因為存 + // credential 失敗而失敗(例如 self-hosted 未設 CF_SECRETS_API_TOKEN)→ 吞錯誤只記 log。 + if (pendingCredential) { + try { + await storeCredential(c.env, apiKey, pendingCredential.name, pendingCredential.value, pendingCredential.service); + } catch (e) { + console.error('存 provider token 失敗(不影響登入):', e instanceof Error ? e.message : String(e)); + } + } + // Create session (TTL 7 days) const sessionId = randomToken(32); const session: SessionRecord = { diff --git a/cypher-executor/src/routes/credentials.ts b/cypher-executor/src/routes/credentials.ts index ab4fc07..53250c6 100644 --- a/cypher-executor/src/routes/credentials.ts +++ b/cypher-executor/src/routes/credentials.ts @@ -17,11 +17,7 @@ * (2026-07-03 T1.5 spike 定案)對舊格式的刻意取代,SDD §6 Q-b 仍列為需 leo 明確接受的 * 誠實 trade-off(本次實作先落地,若 leo 不接受選項甲需回頭改)。 * - * credential-store-migration T8(§4.2 回填)+ T9(§3 治理端點): - * - `POST /credentials/migrate-to-workers-secrets`:把呼叫者(X-Arcrun-API-Key)名下的舊 - * `{api_key}:cred:{name}` KV row 逐一解密(重用 wasi-shim 唯一合法 crypto_decrypt 呼叫點, - * 不在本檔重新實作解密)→ PUT 進 Workers Secrets → D1 upsert 目錄。冪等:D1 已有可解析 - * secret_ref 的 row 就跳過;逐筆誠實回報 ok/skipped/fail(mindset §7 不假綠)。 + * credential-store-migration T9(§3 治理端點): * - `GET /credentials`:改讀 D1(與 `/credentials/catalog` 共用同一份 query,同時保留 * `/catalog` 別名,Console 既有呼叫不受影響)。 * - `DELETE /credentials/:name`:先查 D1 拿 secret_ref → 有則刪 Workers Secret + D1 row; @@ -31,7 +27,6 @@ import { Hono } from 'hono'; import type { Bindings } from '../types'; import { sha256Prefix } from '../lib/hash'; -import { createArcrunHostFunctions } from '../lib/wasi-shim'; export const credentialsRouter = new Hono<{ Bindings: Bindings }>(); @@ -52,6 +47,25 @@ async function deriveSecretRef(apiKey: string, name: string): Promise { return `CRED_${name.toUpperCase()}_${hash8.toUpperCase()}`; } +/** + * 存一筆 credential 進「新家」(CF Workers Secrets 明文 + D1 目錄)。 + * + * 給 OAuth callback 這類非 /credentials 端點的內部呼叫者用(存 provider token 供 + * auth primitive 零件取用)。與 `POST /credentials` 共用同一條寫入路徑, + * 確保只有一套儲存。 + */ +export async function storeCredential( + env: Bindings, + apiKey: string, + name: string, + value: string, + service: string | null, +): Promise { + const secretRef = await deriveSecretRef(apiKey, name); + await putWorkerSecret(env, secretRef, value); + await upsertCredentialRow(env.CREDENTIALS_DB, apiKey, name, service, 'standard', secretRef); +} + function validateName(name: unknown): name is string { return typeof name === 'string' && /^\w+$/.test(name); } @@ -308,68 +322,3 @@ credentialsRouter.get('/credentials', async (c) => { return c.json({ success: false, error: e instanceof Error ? e.message : String(e) }, 502); } }); - -interface MigrateResult { - name: string; - ok: boolean; - skipped?: boolean; - error?: string; -} - -// POST /credentials/migrate-to-workers-secrets — 回填(T8,§4.2):一次性、冪等、可審。 -// 把呼叫者名下舊 `{api_key}:cred:{name}` KV row({encrypted, iv} AES-GCM 密文)逐一解密 -// →(重用 wasi-shim 唯一合法 crypto_decrypt 呼叫點,本檔不重新實作解密)→ PUT 進 Workers -// Secrets → D1 upsert 目錄。冪等:D1 已有該 (api_key,name) row 且 secret_ref 非空 → 跳過。 -// 不刪 KV 舊密文(§4.3 回滾錨點——雙讀 fallback、廢除 ENCRYPTION_KEY 前的安全網)。 -credentialsRouter.post('/credentials/migrate-to-workers-secrets', async (c) => { - const apiKey = c.req.header('X-Arcrun-API-Key'); - if (!apiKey) { - return c.json({ error: '缺少 X-Arcrun-API-Key header' }, 401); - } - - const cryptoDecrypt = createArcrunHostFunctions(c.env, apiKey).crypto_decrypt; - if (!cryptoDecrypt) { - return c.json({ success: false, error: 'crypto_decrypt host function 未就緒' }, 500); - } - - const prefix = `${apiKey}:cred:`; - const list = await c.env.CREDENTIALS_KV.list({ prefix }); - const results: MigrateResult[] = []; - - for (const key of list.keys) { - const name = key.name.slice(prefix.length); - try { - const existingRef = await findSecretRef(c.env.CREDENTIALS_DB, apiKey, name); - if (existingRef) { - results.push({ name, ok: true, skipped: true }); - continue; - } - - const raw = await c.env.CREDENTIALS_KV.get(key.name); - if (!raw) { - results.push({ name, ok: false, error: 'KV row 讀不到值(可能已被刪除)' }); - continue; - } - const { encrypted, iv } = JSON.parse(raw) as { encrypted: string; iv: string }; - const plaintext = await cryptoDecrypt(encrypted, iv); - - const secretRef = await deriveSecretRef(apiKey, name); - await putWorkerSecret(c.env, secretRef, plaintext); - await upsertCredentialRow(c.env.CREDENTIALS_DB, apiKey, name, null, 'standard', secretRef); - results.push({ name, ok: true }); - } catch (e) { - // 誠實回報逐筆 fail,不假綠(mindset §7) - results.push({ name, ok: false, error: e instanceof Error ? e.message : String(e) }); - } - } - - const failed = results.filter(r => !r.ok); - return c.json({ - success: failed.length === 0, - total: results.length, - migrated: results.filter(r => r.ok && !r.skipped).length, - skipped: results.filter(r => r.skipped).length, - failed: failed.length, - results, - }); -}); diff --git a/cypher-executor/src/routes/recipes.ts b/cypher-executor/src/routes/recipes.ts index 6c67dbf..402b45e 100644 --- a/cypher-executor/src/routes/recipes.ts +++ b/cypher-executor/src/routes/recipes.ts @@ -401,7 +401,7 @@ recipesRouter.delete('/recipes/:id', async (c) => { * 2. rec_xxxxxxxx → idx:{hash} 反查 canonical_id → 再走 canonical 解析。 * 3. canonical_id → 先查 idx:installed:{canonical_id}(本部署安裝的唯一版本)→ recipe:{uuid}; * 查不到 fallback 舊 key recipe:{canonical_id}(種子 / migration 前資料)。 - * 執行鏈路(component-loader/auth-dispatcher/credential-injector)都經此 → 不破執行。 + * 執行鏈路(component-loader/auth-dispatcher)都經此 → 不破執行。 */ export async function resolveRecipe( id: string, diff --git a/cypher-executor/src/routes/register.ts b/cypher-executor/src/routes/register.ts deleted file mode 100644 index 496f779..0000000 --- a/cypher-executor/src/routes/register.ts +++ /dev/null @@ -1,46 +0,0 @@ -// POST /register — API Key 發放 -// email → HMAC-SHA256(email, ENCRYPTION_KEY) → api_key (ak_ 前綴) -// 同一個 email 永遠得到相同的 Key,無需資料庫 - -import { Hono } from 'hono'; -import type { Bindings } from '../types'; - -export const registerRouter = new Hono<{ Bindings: Bindings }>(); - -registerRouter.post('/register', async (c) => { - let email: string; - try { - const body = await c.req.json() as { email?: string }; - email = (body.email ?? '').trim().toLowerCase(); - } catch { - return c.json({ success: false, error: 'request body 必須為 JSON' }, 400); - } - - if (!email || !email.includes('@')) { - return c.json({ success: false, error: 'email 格式不正確' }, 400); - } - - const encryptionKey = c.env.ENCRYPTION_KEY; - if (!encryptionKey || encryptionKey.length < 32) { - return c.json({ success: false, error: 'server configuration error' }, 500); - } - - // HMAC-SHA256(email, ENCRYPTION_KEY) → hex → 取前 32 字元 → ak_ 前綴 - const keyData = new TextEncoder().encode(encryptionKey.slice(0, 32)); - const msgData = new TextEncoder().encode(email); - - const cryptoKey = await crypto.subtle.importKey( - 'raw', keyData, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign'] - ); - const sig = await crypto.subtle.sign('HMAC', cryptoKey, msgData); - const hex = Array.from(new Uint8Array(sig)).map(b => b.toString(16).padStart(2, '0')).join(''); - const apiKey = 'ak_' + hex.slice(0, 32); - - return c.json({ - success: true, - api_key: apiKey, - encryption_key: encryptionKey, // 用戶需要此 key 才能加密上傳 credential - email, - message: 'API Key 已發放,請妥善保存。相同 email 永遠得到相同的 Key。', - }); -}); diff --git a/cypher-executor/src/types.ts b/cypher-executor/src/types.ts index 6c9ca60..742faa4 100644 --- a/cypher-executor/src/types.ts +++ b/cypher-executor/src/types.ts @@ -46,7 +46,6 @@ export type Bindings = { AI: Ai; // 環境變數 ENVIRONMENT: string; - ENCRYPTION_KEY: string; // hex-encoded 256-bit AES key(wrangler secret) MULTI_TENANT?: string; // "false" = Self-hosted 單租戶模式,預設 "true" // OAuth Secrets(wrangler secret) GOOGLE_CLIENT_ID?: string; diff --git a/cypher-executor/tests/credentials.test.ts b/cypher-executor/tests/credentials.test.ts index 76313ce..296e082 100644 --- a/cypher-executor/tests/credentials.test.ts +++ b/cypher-executor/tests/credentials.test.ts @@ -1,12 +1,10 @@ /** - * credential-store-migration T8(回填端點)+ T9(治理端點)測試。 + * credential 治理端點測試。 * * 範圍限制(誠實記錄,非本檔缺陷):`putWorkerSecret` / `deleteWorkerSecret` 呼叫真實 * Cloudflare API(`fetch` 到 api.cloudflare.com)。測試環境(wrangler.test.toml)刻意不設 * CF_SECRETS_API_TOKEN/CF_ACCOUNT_ID,所以本檔只覆蓋「不需要真的打 CF API」的路徑: * - D1-only 的 GET /credentials、/credentials/catalog - * - migrate 端點的冪等 skip 分支(D1 已有 row 就不會走到 putWorkerSecret) - * - migrate 端點在缺 CF token 時對「真的需要新建」的 row 誠實回報 fail(不假綠) * - DELETE 在 D1 無 row 時 fallback 刪舊 KV(不會走到 deleteWorkerSecret) * 真正打 CF Workers Secrets API 成功寫入/刪除的路徑,由部署到 leo21c 帳號後的端到端 * curl 驗證覆蓋(見 credential-store-migration.md T8/T9 完成記錄)。 @@ -90,75 +88,6 @@ describe('GET /credentials (D1, T9)', () => { }); }); -describe('POST /credentials/migrate-to-workers-secrets (T8)', () => { - beforeEach(async () => { - await clearTenantRows(); - await env.CREDENTIALS_KV.list({ prefix: `${API_KEY}:cred:` }).then(async (list) => { - for (const k of list.keys) await env.CREDENTIALS_KV.delete(k.name); - }); - }); - - it('缺 X-Arcrun-API-Key → 401', async () => { - const res = await SELF.fetch('https://cypher.test/credentials/migrate-to-workers-secrets', { method: 'POST' }); - expect(res.status).toBe(401); - }); - - it('D1 已有 row(曾回填過)→ 跳過,不誤判為失敗', async () => { - await insertCredentialRow('already_migrated', 'CRED_ALREADY_MIGRATED_ABCDEF01'); - // 對應的舊 KV row 仍在(§4.3 回滾錨點:回填後不刪 KV),驗證「有 D1 row 就跳過」而非重打 CF API - await env.CREDENTIALS_KV.put( - `${API_KEY}:cred:already_migrated`, - JSON.stringify({ encrypted: 'irrelevant', iv: 'irrelevant' }), - ); - - const res = await SELF.fetch('https://cypher.test/credentials/migrate-to-workers-secrets', { - method: 'POST', - headers: { 'X-Arcrun-API-Key': API_KEY }, - }); - const body = await res.json() as { - success: boolean; total: number; migrated: number; skipped: number; failed: number; - results: Array<{ name: string; ok: boolean; skipped?: boolean }>; - }; - expect(body.success).toBe(true); - expect(body.total).toBe(1); - expect(body.skipped).toBe(1); - expect(body.migrated).toBe(0); - expect(body.failed).toBe(0); - expect(body.results[0]).toMatchObject({ name: 'already_migrated', ok: true, skipped: true }); - }); - - it('無任何舊 KV row → 空結果,success:true(沒東西可回填不是失敗)', async () => { - const res = await SELF.fetch('https://cypher.test/credentials/migrate-to-workers-secrets', { - method: 'POST', - headers: { 'X-Arcrun-API-Key': API_KEY }, - }); - const body = await res.json() as { success: boolean; total: number }; - expect(body.success).toBe(true); - expect(body.total).toBe(0); - }); - - it('真正需要回填的 row(D1 無資料)在測試環境缺 CF token 時誠實回報 fail,不假綠', async () => { - await env.CREDENTIALS_KV.put( - `${API_KEY}:cred:needs_migration`, - JSON.stringify({ encrypted: 'ZmFrZQ==', iv: 'ZmFrZQ==' }), - ); - const res = await SELF.fetch('https://cypher.test/credentials/migrate-to-workers-secrets', { - method: 'POST', - headers: { 'X-Arcrun-API-Key': API_KEY }, - }); - const body = await res.json() as { - success: boolean; failed: number; results: Array<{ name: string; ok: boolean; error?: string }>; - }; - // 解密本身可能因假造的 base64 密文而失敗,或走到 putWorkerSecret 因缺 CF_SECRETS_API_TOKEN 失敗—— - // 兩者都應該落在「誠實回報 fail」而非靜默假裝成功 - expect(body.success).toBe(false); - expect(body.failed).toBe(1); - const row = body.results.find(r => r.name === 'needs_migration'); - expect(row?.ok).toBe(false); - expect(row?.error).toBeTruthy(); - }); -}); - describe('DELETE /credentials/:name (T9)', () => { beforeEach(clearTenantRows); diff --git a/cypher-executor/tests/wasi-shim.test.ts b/cypher-executor/tests/wasi-shim.test.ts index f8b2cb9..a1761be 100644 --- a/cypher-executor/tests/wasi-shim.test.ts +++ b/cypher-executor/tests/wasi-shim.test.ts @@ -231,7 +231,7 @@ function makeFakeEnv(overrides: Record = {}): ArcrunHostEnv { return { CREDENTIALS_KV: fakeKv, RECIPES: fakeKv, - ENCRYPTION_KEY: 'deadbeef'.repeat(8), + CF_SECRETS_API_TOKEN: 'fake-cf-token', ...overrides, }; } @@ -249,11 +249,10 @@ describe('createArcrunHostFunctions — secret_get', () => { await expect(hostFns.secret_get!('CRED_NOT_SET')).resolves.toBeNull(); }); - it('非 CRED_ 前綴 → 一律拒絕回 null(即使 env 上真的有這個值,如 ENCRYPTION_KEY)', async () => { + it('非 CRED_ 前綴 → 一律拒絕回 null(即使 env 上真的有這個值,如 CF_SECRETS_API_TOKEN)', async () => { const env = makeFakeEnv(); const hostFns = createArcrunHostFunctions(env, 'ak_test'); - // ENCRYPTION_KEY 是 worker 自己的機密,WASM 不該透過 secret_get 拿到(安全邊界) - await expect(hostFns.secret_get!('ENCRYPTION_KEY')).resolves.toBeNull(); + // CF_SECRETS_API_TOKEN 是 worker 自己的機密,WASM 不該透過 secret_get 拿到(安全邊界) await expect(hostFns.secret_get!('CF_SECRETS_API_TOKEN')).resolves.toBeNull(); }); @@ -266,7 +265,7 @@ describe('createArcrunHostFunctions — secret_get', () => { describe('u6u.secret_get — WASI import wiring', () => { // 誠實註記(撞牆記錄):vitest-pool-workers 環境的 WebAssembly 支援 JSPI,hostWrap() 因此把 - // secret_get(以及既有的 kv_get / crypto_decrypt 等所有 async host function)包成 + // secret_get(以及既有的 kv_get / crypto_sign_rs256 等所有 async host function)包成 // `WebAssembly.Suspending` 物件而非一般函式——這類物件設計上只能當 WASM import 綁定使用, // 不能在 JS 端直接 `fn(...)` 呼叫(會拋 "is not a function")。用 probe 測試證實 // kv_get 的 import 同樣是 `Suspending` 物件、同樣不可直接呼叫——這是既有架構的環境限制, diff --git a/cypher-executor/wrangler.test.toml b/cypher-executor/wrangler.test.toml index 928ed13..ccf2cc8 100644 --- a/cypher-executor/wrangler.test.toml +++ b/cypher-executor/wrangler.test.toml @@ -44,7 +44,6 @@ database_id = "test-credentials-db-id" [vars] ENVIRONMENT = "test" -ENCRYPTION_KEY = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" # 分流台勾掉 route 測試:KBDB 指到假 host(fetchMock 攔截,絕不外連——尤其不打官方 uncle6 fallback) KBDB_BASE_URL = "https://kbdb.test" CONSOLE_TENANT = "leo" diff --git a/cypher-executor/wrangler.toml b/cypher-executor/wrangler.toml index 231e776..a096012 100644 --- a/cypher-executor/wrangler.toml +++ b/cypher-executor/wrangler.toml @@ -114,7 +114,6 @@ service = "arcrun-validate-json" [vars] ENVIRONMENT = "production" # MULTI_TENANT = "true" -# ENCRYPTION_KEY 透過 wrangler secret set 設定 # credential-store-migration T3(§2.3 寫入路徑需要的 token+account id): # CF_SECRETS_API_TOKEN 是機密,透過 `wrangler secret put CF_SECRETS_API_TOKEN` 設定(不進 toml)。 diff --git a/docs/HANDOFF-self-host-harness.md b/docs/HANDOFF-self-host-harness.md index 4f9f976..bfe574d 100644 --- a/docs/HANDOFF-self-host-harness.md +++ b/docs/HANDOFF-self-host-harness.md @@ -120,7 +120,7 @@ self-host 自動部署可以參考同一套掃描邏輯(`find . -name wrangler - **把 cypher-executor 的 `[vars] WORKER_SUBDOMAIN` 改成 CC 自己的帳號 subdomain**(self-host 關鍵,見 P0 #9:cypher-executor 走 `arcrun-{name}.{subdomain}.workers.dev` 對內 URL)。 - **seed 降級 recipe + auth recipe 進 RECIPES KV**:新帳號 KV 是空的。把 §2.1 那些 recipe(kbdb_get/gmail_send/...)+ auth recipe seed 寫進去。auth recipe seed 已有 `cypher-executor/scripts/seed-auth-recipes.ts`,API recipe 需確認有對應 seed 機制(routes/recipes.ts 是動態 push,可能要寫一份 seed 腳本或用 `acr recipe push`)。 - 寫回 config(現有欄位已足夠)。 -2. **runtime secret 不進 CLI 自動化**:`ENCRYPTION_KEY` 等由 CC 自己 `wrangler secret put`(rule 05 禁止 secret 進自動化流程)。CLI 應在最後**印出提示**告訴 CC 要手動 put 哪些 secret 到哪些 worker。 +2. **runtime secret 不進 CLI 自動化**:`CF_SECRETS_API_TOKEN` 等由 CC 自己 `wrangler secret put`(rule 05 禁止 secret 進自動化流程)。CLI 應在最後**印出提示**告訴 CC 要手動 put 哪些 secret 到哪些 worker。 **驗收(客觀證據,不是口頭宣布 — mindset §7)**: - richblack 用全新 CF 帳號跑 `acr init --self-hosted` → 全程無手動建 KV / 部署。 diff --git a/llms.txt b/llms.txt index b285d04..8bb371d 100644 --- a/llms.txt +++ b/llms.txt @@ -41,13 +41,13 @@ npm i -g arcrun && acr install-harness · Account / Workers KV Storage / Edit · Account / D1 / Edit ← **必勾**,arcrun 用 D1 存 workflow/recipe;漏勾會 init 時 D1 建失敗(Authentication error) → 複製產生的 token。(不需要 R2、不需要綁信用卡——D1 也在免費額度,不綁卡。) - - `NAMESPACE`:隨便取個英數小名(非密碼)。`ENCRYPTION_KEY`:你可幫他產 - (`node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"`)。 + - `NAMESPACE`:隨便取個英數小名(非密碼)。credential 不需要自管加密金鑰。 - 使用者把值貼進 .env(或貼給你、你幫他填進對應格)。**CLOUDFLARE 兩格沒填,後面什麼都跑不了。** - - 連外部服務(如 Notion)的 token 也填進 .env 的 ③ 區,之後 `acr creds push` 加密上傳。 + - 連外部服務(如 Notion)的 token 也填進 .env 的 ③ 區,之後 `acr creds push` 上傳(走 TLS,存進 CF Workers Secrets)。 4. `acr init --self-hosted`(你幫跑,讀 .env 的 CF 憑證)—— 自動建資源、部署、seed、寫 .mcp.json(MCP 連線)。 跑完會印「安裝驗收」逐項 ✓/✗;有 ✗ 照它給的指令補(多數 `acr update` 冪等重試)。 -5. 跑完照提示 `wrangler secret put ENCRYPTION_KEY`(CLI 會印確切指令)。 +5. 跑完照提示 `wrangler secret put CF_SECRETS_API_TOKEN --name arcrun-cypher-executor`(CLI 會印確切指令; + 用途=讓 cypher 能把 credential 寫進 Workers Secrets)。 6. 把使用者需求拆成 workflow → `acr push`。完成給客觀證據(HTTP 2xx / trace)。 ## 暴露提醒 diff --git a/registry/components/platform_crypto/component.contract.yaml b/registry/components/platform_crypto/component.contract.yaml deleted file mode 100644 index 06dac41..0000000 --- a/registry/components/platform_crypto/component.contract.yaml +++ /dev/null @@ -1,56 +0,0 @@ -canonical_id: "platform_crypto" -display_name: "Platform Crypto Primitive" -category: "platform" -version: "v1" -wasi_target: "preview1" -stability: "stable" -runtime_compat: - - "cf-workers" - - "workerd" - - "wazero" -constraints: - max_size_kb: 2048 - max_cold_start_ms: 50 - no_network_syscall: true - no_filesystem_syscall: true - io_model: "stdin_stdout_json" -input_schema: - type: object - required: [action] - properties: - action: - type: string - enum: [generate_api_key, encrypt, random_token] - email: - type: string - description: generate_api_key 用 - plaintext: - type: string - description: encrypt 用 - bytes: - type: integer - description: random_token 用,預設 32 -output_schema: - type: object - properties: - success: - type: boolean - api_key: - type: string - description: generate_api_key 結果,ak_ 前綴 - encrypted: - type: string - description: encrypt 結果,base64 - iv: - type: string - description: encrypt 結果,base64 - token: - type: string - description: random_token 結果,hex -tags: [platform, crypto, internal] -description: | - 平台內部 crypto primitive。 - - generate_api_key: HMAC-SHA256(email, ENCRYPTION_KEY) → ak_xxx - - encrypt: AES-GCM(plaintext, ENCRYPTION_KEY) → {encrypted, iv}(base64) - - random_token: crypto random bytes → hex string - ENCRYPTION_KEY 由 host 持有,永不進入 WASM。 diff --git a/registry/components/platform_crypto/main.go b/registry/components/platform_crypto/main.go deleted file mode 100644 index 03d44a9..0000000 --- a/registry/components/platform_crypto/main.go +++ /dev/null @@ -1,206 +0,0 @@ -// platform_crypto — Arcrun 平台內部 crypto primitive -// -// Actions: -// generate_api_key — HMAC-SHA256(email, ENCRYPTION_KEY) → ak_{hex[:32]} -// encrypt — AES-GCM(plaintext, ENCRYPTION_KEY) → {encrypted, iv}(base64) -// random_token — crypto random bytes → hex string -// -// ENCRYPTION_KEY 由 host 持有,永不進入 WASM。 -// -// Host imports: -// u6u.crypto_hmac_sha256 — HMAC-SHA256(data, key=ENCRYPTION_KEY) → raw bytes -// u6u.crypto_aes_encrypt — AES-GCM(plaintext, key=ENCRYPTION_KEY) → encrypted_b64 + iv_b64 -// u6u.crypto_random_bytes — crypto-random bytes → hex string -// -//go:build tinygo - -package main - -import ( - "encoding/json" - "io" - "os" - "strings" - "unsafe" -) - -// ── host function 宣告 ─────────────────────────────────────────────────────── - -// crypto_hmac_sha256(dataPtr, dataLen, outPtr, outLenPtr) → 0 成功 -// key = host 的 ENCRYPTION_KEY,output = raw bytes(hex encode 由 WASM 做) -// -//go:wasmimport u6u crypto_hmac_sha256 -func hostCryptoHmacSha256( - dataPtr uintptr, dataLen uint32, - outPtr uintptr, outLenPtr uintptr, -) uint32 - -// crypto_aes_encrypt(plaintextPtr, plaintextLen, outEncPtr, outEncLenPtr, outIvPtr, outIvLenPtr) → 0 成功 -// output: encrypted(base64)放 outEnc,iv(base64)放 outIv -// -//go:wasmimport u6u crypto_aes_encrypt -func hostCryptoAesEncrypt( - plaintextPtr uintptr, plaintextLen uint32, - outEncPtr uintptr, outEncLenPtr uintptr, - outIvPtr uintptr, outIvLenPtr uintptr, -) uint32 - -// crypto_random_bytes(numBytes, outPtr, outLenPtr) → 0 成功 -// output: hex string -// -//go:wasmimport u6u crypto_random_bytes -func hostCryptoRandomBytes( - numBytes uint32, - outPtr uintptr, outLenPtr uintptr, -) uint32 - -// ── 型別 ───────────────────────────────────────────────────────────────────── - -type Input struct { - Action string `json:"action"` - Email string `json:"email,omitempty"` - Plaintext string `json:"plaintext,omitempty"` - Bytes int `json:"bytes,omitempty"` -} - -// ── main ───────────────────────────────────────────────────────────────────── - -func main() { - raw, err := io.ReadAll(os.Stdin) - if err != nil { - writeError("failed to read stdin: " + err.Error()) - return - } - - var input Input - if err := json.Unmarshal(raw, &input); err != nil { - writeError("invalid input JSON: " + err.Error()) - return - } - - switch input.Action { - case "generate_api_key": - if input.Email == "" { - writeError("email 必填") - return - } - sig, ok := hmacSha256([]byte(input.Email)) - if !ok { - writeError("HMAC-SHA256 失敗") - return - } - apiKey := "ak_" + hex(sig)[:32] - out, _ := json.Marshal(map[string]interface{}{ - "success": true, - "api_key": apiKey, - }) - os.Stdout.Write(out) - - case "encrypt": - if input.Plaintext == "" { - writeError("plaintext 必填") - return - } - encB64, ivB64, ok := aesEncrypt([]byte(input.Plaintext)) - if !ok { - writeError("AES-GCM 加密失敗") - return - } - out, _ := json.Marshal(map[string]interface{}{ - "success": true, - "encrypted": encB64, - "iv": ivB64, - }) - os.Stdout.Write(out) - - case "random_token": - n := input.Bytes - if n <= 0 { - n = 32 - } - token, ok := randomBytes(uint32(n)) - if !ok { - writeError("random bytes 失敗") - return - } - out, _ := json.Marshal(map[string]interface{}{ - "success": true, - "token": token, - }) - os.Stdout.Write(out) - - default: - writeError("不支援的 action: " + input.Action) - } -} - -// ── helpers ─────────────────────────────────────────────────────────────────── - -func writeError(msg string) { - out, _ := json.Marshal(map[string]interface{}{ - "success": false, - "error": msg, - }) - os.Stdout.Write(out) -} - -func hmacSha256(data []byte) ([]byte, bool) { - if len(data) == 0 { - return nil, false - } - outBuf := make([]byte, 64) // SHA-256 = 32 bytes raw - var outLen uint32 - status := hostCryptoHmacSha256( - uintptr(unsafe.Pointer(&data[0])), uint32(len(data)), - uintptr(unsafe.Pointer(&outBuf[0])), uintptr(unsafe.Pointer(&outLen)), - ) - if status != 0 { - return nil, false - } - return outBuf[:outLen], true -} - -func aesEncrypt(plaintext []byte) (string, string, bool) { - if len(plaintext) == 0 { - return "", "", false - } - encBuf := make([]byte, 65536) - ivBuf := make([]byte, 64) - var encLen, ivLen uint32 - status := hostCryptoAesEncrypt( - uintptr(unsafe.Pointer(&plaintext[0])), uint32(len(plaintext)), - uintptr(unsafe.Pointer(&encBuf[0])), uintptr(unsafe.Pointer(&encLen)), - uintptr(unsafe.Pointer(&ivBuf[0])), uintptr(unsafe.Pointer(&ivLen)), - ) - if status != 0 { - return "", "", false - } - return string(encBuf[:encLen]), string(ivBuf[:ivLen]), true -} - -func randomBytes(n uint32) (string, bool) { - outBuf := make([]byte, n*2+4) // hex = 2 chars per byte - var outLen uint32 - status := hostCryptoRandomBytes( - n, - uintptr(unsafe.Pointer(&outBuf[0])), uintptr(unsafe.Pointer(&outLen)), - ) - if status != 0 { - return "", false - } - return string(outBuf[:outLen]), true -} - -// hex encodes raw bytes to lowercase hex string -func hex(b []byte) string { - const hexChars = "0123456789abcdef" - out := make([]byte, len(b)*2) - for i, v := range b { - out[i*2] = hexChars[v>>4] - out[i*2+1] = hexChars[v&0xf] - } - return string(out) -} - -// strings import 只為了 strings.Builder(interpolate 用,這裡不需要但 import 要保留給未來) -var _ = strings.Builder{} diff --git a/system-dev/docs/2-architecture/01-tech-stack.md b/system-dev/docs/2-architecture/01-tech-stack.md index a12cb8d..1270437 100644 --- a/system-dev/docs/2-architecture/01-tech-stack.md +++ b/system-dev/docs/2-architecture/01-tech-stack.md @@ -30,7 +30,8 @@ |---|---| | `u6u.http_request` | 發 HTTP 請求 | | `u6u.kv_get` | 讀 Cloudflare KV(Worker 側依 key 前綴路由到正確 KV) | -| `u6u.crypto_decrypt` | AES-GCM 解密(encryption key 永不暴露給 WASM) | +| `u6u.secret_get` | 讀 CF Workers Secrets(只放行 `CRED_` 前綴) | +| `u6u.crypto_decrypt` | ⚠️ 已廢除,保留成永遠回失敗的 stub(現役 wasm 仍宣告此 import) | | `u6u.crypto_sign_rs256` | RSA-SHA256 簽章(PKCS8 bytes 傳入) | **所有 host function 在 `cypher-executor/src/lib/wasi-shim.ts` 實作**。零件透過 WASI import 使用。 @@ -50,16 +51,22 @@ **警告:R2 不存平台內建零件的 WASM**。平台零件已 bundle 進各自的 Worker binary(`[[wasm_modules]]` 或 `import ... assert { type: 'webassembly' }`)。 -## 加解密規範 +## Credential 儲存規範 -- **演算法**:AES-GCM 256-bit -- **加密位置**:Client 端(CLI / Python SDK / JS SDK) - - Python:`cryptography` 套件 - - JS:Web Crypto API(`crypto.subtle`) -- **解密位置**:Server 端 **WASM primitive**(透過 host function `crypto_decrypt`) - - cypher-executor TS **不解密**,只提供 host function - - `ENCRYPTION_KEY` 只在 Worker host function 內部讀取,**永不經 stdin / 回傳值傳給 WASM** -- **傳輸格式**:`{ name, encrypted, iv }`(iv base64、encrypted base64) +**arcrun 不自管加密金鑰。** credential 明文由 **Cloudflare Workers Secrets** 託管 +(per-script secret,掛在用戶自己的 cypher worker 上): + +- secret 名稱 = `CRED_{NAME}_{sha256(api_key)[:8]}`(跨租戶命名隔離) +- D1 `credentials` 表只存**目錄**(api_key / name / service / secret_ref),不存值 +- D19:擁有目錄,不擁有內容物——連 owner 都讀不回,只能覆寫/刪除 +- 需要 worker 設 `CF_SECRETS_API_TOKEN`(機密,用戶手動 put)+ `CF_ACCOUNT_ID`(自動注入) + +> 註:`crypto_decrypt` host function 是**永遠回失敗的 stub**,因為現役三個 `auth_*` +> `.wasm` 仍宣告該 import(缺項會讓 WASM instantiate 失敗)。三個零件重編後即可刪除。 +- **取用位置**:Server 端 **WASM primitive**(透過 host function `secret_get(ref)`) + - cypher-executor TS 不碰業務邏輯,只提供 host function + - `secret_get` 只放行 `CRED_` 前綴,WASM 讀不到 worker 本身的其他機密 +- **傳輸格式**:明文值走 TLS(`POST /credentials`),不做 client 端加密 ## 網路部署 diff --git a/system-dev/docs/3-specs/arcrun-core-mvp/design.md b/system-dev/docs/3-specs/arcrun-core-mvp/design.md index a5cbb2e..b11306c 100644 --- a/system-dev/docs/3-specs/arcrun-core-mvp/design.md +++ b/system-dev/docs/3-specs/arcrun-core-mvp/design.md @@ -5,6 +5,9 @@ superseded_by: "" # Design Document: arcrun MVP +> ⚠️ 本檔的 credential 注入程式碼範例描述舊儲存機制,已於 2026-07-20 移除。 +> 現行做法見 `.claude/rules/01-tech-stack.md`「Credential 儲存規範」。 + ## Overview arcrun MVP 的核心設計原則是**最小異動、最快可用**。所有目標都能透過以下三個操作達成: diff --git a/system-dev/docs/3-specs/arcrun-core-mvp/tasks.md b/system-dev/docs/3-specs/arcrun-core-mvp/tasks.md index 477a015..2ae606c 100644 --- a/system-dev/docs/3-specs/arcrun-core-mvp/tasks.md +++ b/system-dev/docs/3-specs/arcrun-core-mvp/tasks.md @@ -97,7 +97,6 @@ - [x] 14. `acr init` 已實作,修正項: - [x] 14.1 Standard 模式不再傳送 `cf_api_token` 至 arcrun.dev(只傳 `email`) - [x] 14.2 `require()` 改用 `await import()` 修正 ES module 相容 - - [ ] 14.3 **待補**:`acr init` 需詢問 `ARCRUN_ENCRYPTION_KEY` 並寫入 config(目前加密 key 需手動設定) - _Requirements: 4.2, 6.3_ - [x] 15. `acr creds push` 已實作 @@ -193,7 +192,6 @@ - [ ] A. `builtins/` 清理:`initComponents.ts` 仍用舊的 HTTP endpoint 模式上架零件(`buildComponentDefs` 含 URL),應改為呼叫 `POST /submit` 送 WASM binary + contract,或直接移除 builtins(功能已整合到 registry) - [ ] B. `validate` 指令 credential 檢測邏輯修復(見 Phase 4 Task 18) -- [ ] C. `acr init` 加入 `ARCRUN_ENCRYPTION_KEY` 設定步驟 - [ ] D. `acr parts` YAML 解析改用 `js-yaml` --- diff --git a/system-dev/docs/3-specs/arcrun/arcrun.md b/system-dev/docs/3-specs/arcrun/arcrun.md index 56a91a2..f2927a7 100644 --- a/system-dev/docs/3-specs/arcrun/arcrun.md +++ b/system-dev/docs/3-specs/arcrun/arcrun.md @@ -63,10 +63,10 @@ P0 全部清除才啟動封測。 |---|------|------|------| | 1 | acr parts scaffold 正確輸出 | ✅ 完成 | 21 個零件內建清單 | | 2 | acr recipe push 端對端 | ✅ 完成 | httpbin_post 驗證通過 | -| 3 | acr creds push 代碼 | ✅ 完成 | 需 ARCRUN_ENCRYPTION_KEY | +| 3 | acr creds push 代碼 | ✅ 完成 | 值交 CF Workers Secrets 託管 | | 4 | credential 注入端對端 | ✅ 完成 | 無 token 時錯誤訊息正確 | | 5 | acr push + webhook trigger | ✅ 完成 | 端對端驗證通過 | -| 6 | acr creds push 實測 | ✅ 完成 | /register 回傳 encryption_key,acr init 自動存入 config(CLI 1.0.9)| +| 6 | acr creds push 實測 | ✅ 完成 | acr init 自動存入 config(CLI 1.0.9)| | 7 | Google Sheets 真實寫入 | ⚠️ 部分驗證 | credential 注入已驗證;實際 Sheets 寫入需真實 OAuth token | | 8 | 第三方服務認證 recipe | ✅ 完成 | 20 個服務(Notion/Slack/GitHub/OpenAI 等),CLI 1.1.0 | | **9** | **cypher-executor outbound HTTP fetch 全失效** | ✅ **已解決 2026-05-13**(CF 同 zone 自循環死鎖,改走 workers.dev)| 詳見下方專段 | @@ -339,8 +339,7 @@ acr push 就會自動建立 cron-idx 並開始定時觸發。 ## 四、封測前 P3(啟動當天) -- [ ] 用封測者 email 呼叫 `/register`,取得 api_key -- [ ] 將 ARCRUN_ENCRYPTION_KEY 以安全方式提供給封測者 +- [ ] 引導封測者到 arcrun.dev 登入取得 api_key - [ ] 確認聯絡管道 --- diff --git a/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/credential-store-migration.md b/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/credential-store-migration.md index 67ff9e1..8b96aa1 100644 --- a/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/credential-store-migration.md +++ b/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/credential-store-migration.md @@ -1,5 +1,9 @@ # Credential Store 遷移 SDD — KV → D1(目錄)+ CF Workers per-script Secrets(密文) +> ⚠️ **歷史記錄(本卷 T1-T10 已全數完成,2026-07-20 收尾)**。本檔記述的是「從舊自管金鑰 +> 遷移到 CF Workers Secrets」的過程,文中提及的舊機制**均已不存在**,僅供考古,勿依此操作。 +> 現行做法見 `.claude/rules/01-tech-stack.md`「Credential 儲存規範」。 + > 建立:2026-06-29 by arcrun CC|對應 issue:Arcrun#13(優先序 3)|決策:leo 2026-06-29 拍板(D19) > **修訂 2026-07-03(T1.5 spike,證據 Arcrun#2)**:密文的家由「CF Secrets Store 產品」改為「**CF Workers per-script Secrets**」(`wrangler secret put` / API `PUT /accounts/{id}/workers/scripts/{script}/secrets` 那套)。原因:T1 spike 實證 Secrets Store 的 Worker binding 部署時靜態宣告、`.get(ref)` 參數被忽略,不支援「runtime 依 D1 ref 動態查任意 secret」;T1.5 spike 四驗證全過(API 動態加免重部署/`env[ref]` 動態索引可行/14 把未觸上限/重部署後存活),方向定案。§2.3、§2.5、T3、T4 已依此改寫;**雙讀過渡、回填、回滾、治理(D1 只存 metadata+secret_ref 不存密文)設計不動**。D21(2026-07-02 leo 拍板):當作 SaaS 不存在,按單用戶自架設計,多租戶段落標「future SaaS 再議」。 > 範圍宣告:本檔是既有 SDD `credential-primitives-wasm/` 的補充設計(rule 02 §4.3 例外:現有 SDD 目錄內新增單檔)。**不施工,先 SDD,總管審對齊後放行。** @@ -370,6 +374,11 @@ CLI 薄殼(rule 07):`acr creds list`(讀 D1 顯示)、`acr creds repla 清空 → 另外手工在 KV 塞一筆「只存在舊 KV、無 D1 row」的假資料,`DELETE` 走 legacy-kv fallback 分支,CF API 核對 KV key 真的被刪除。兩分支皆對真實 leo21c 帳號驗證通過,非模擬。 -- [ ] T10 回填驗證 + 觀察期 → 廢 ENCRYPTION_KEY(§4.4,leo 明示放行)。 +- [x] T10 回填驗證 + 觀察期 → 舊自管金鑰路徑全數移除(§4.4,leo 明示放行)。2026-07-20 完成: + 兩帳號 CREDENTIALS_KV 實測 0 筆密文(無可回填)→ 移除舊雙讀 fallback、回填端點、 + client 端加密與相關零件(`platform_crypto`、`credential-injector.ts`、`register.ts`)。 + `crypto_decrypt` host function 保留成永遠回失敗的 stub(現役三個 `auth_*` .wasm 仍宣告 + 該 import,缺項會讓 WASM instantiate 失敗);三個零件重編後即可刪除。 + **本卷至此全數完成,屬歷史記錄。** > **每個 cred 操作跨 TS / WASM / host-function / 兩個 store,必端到端實測**(防再假綠,mindset §7)。原「T1 不通則整案停」已兌現一輪:T1 負結果 → 整案停 → 總管裁決轉向 → T1.5 全過 → **T2-T9 解凍**。備援(若施工再撞死路):codegen binding + 自動重部署(Arcrun#2 總管裁決的方向 1)。 diff --git a/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/credential-store-redesign.md b/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/credential-store-redesign.md index 3da910f..6482d8f 100644 --- a/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/credential-store-redesign.md +++ b/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/credential-store-redesign.md @@ -1,5 +1,8 @@ # Credential Store 重設計提案(A telegram 一致性 + B KV→D1 + C 友善前門) +> ⚠️ **歷史記錄**:本檔的儲存決策已被 `credential-store-migration.md` 取代並執行完畢 +> (2026-07-20)。文中提及的舊自管金鑰機制**已不存在**,僅供考古,勿依此操作。 + > 建立:2026-06-29 by arcrun CC|更新:2026-06-29(依 leo 最終精確 spec 改寫)|對應 issue:Arcrun#13 > 範圍宣告:本檔是既有 SDD `credential-primitives-wasm/` 的補充設計筆記(不是新 SDD 子系統,rule 02 §4.3 例外)。 > 詞彙(leo 堅持精確):**零件/component=TinyGo WASM**、**recipe=http_request+固定設定(打最終 API)**、 diff --git a/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/design.md b/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/design.md index 3694645..0f46054 100644 --- a/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/design.md +++ b/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/design.md @@ -5,6 +5,11 @@ superseded_by: "" # Design Document: Credential Primitives TS → WASM 改寫 +> ⚠️ **本檔的 credential 儲存/解密段落已過時**(`crypto_decrypt` 現為永遠回失敗的 stub, +> credential 值改由 CF Workers Secrets 託管、經 `secret_get(ref)` 取用)。遷移已於 +> 2026-07-20 完成,見 `credential-store-migration.md`;現行做法見 +> `.claude/rules/01-tech-stack.md`「Credential 儲存規範」。以下解密相關敘述僅供考古。 + ## Overview 將 `cypher-executor` 中以 TypeScript 實作的 credential 注入邏輯,改寫為 4 個獨立的 WASM 零件。這是 `credential_parts.md` 長期規格的實現,不再是「未來 Phase」。 diff --git a/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/tasks.md b/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/tasks.md index 5d1af70..e4bc312 100644 --- a/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/tasks.md +++ b/system-dev/docs/3-specs/arcrun/credential-primitives-wasm/tasks.md @@ -1,5 +1,8 @@ # Implementation Tasks: Credential Primitives TS → WASM +> ⚠️ **歷史記錄**:文中 credential 加解密相關的完成記錄描述的是舊機制,該機制已於 +> 2026-07-20 完全移除(見 `credential-store-migration.md` T10)。僅供考古,勿依此操作。 + **嚴格規範(richblack 2026-04-19)**:cypher-executor TS 不得實作任何 credential / auth / template / JWT / 解密邏輯。全部走 TinyGo WASM + host functions(方案 B)。 **封測狀態**:推遲(richblack 2026-04-19 決定)。先完成 Phase 1-3 清除違規 TS,再啟動封測。 diff --git a/system-dev/docs/3-specs/arcrun/sdk-and-website/config-layering.md b/system-dev/docs/3-specs/arcrun/sdk-and-website/config-layering.md index 99af47b..64c6ba4 100644 --- a/system-dev/docs/3-specs/arcrun/sdk-and-website/config-layering.md +++ b/system-dev/docs/3-specs/arcrun/sdk-and-website/config-layering.md @@ -38,7 +38,6 @@ |---|---|---| | `ARCRUN_MODE` | `mode` | local/standard/self-hosted | | `ARCRUN_API_KEY` | `api_key` | standard | -| `ARCRUN_ENCRYPTION_KEY` | `encryption_key` | standard/self-hosted | | `ARCRUN_CYPHER_EXECUTOR_URL` | `cypher_executor_url` | self-hosted 指向自己的 cypher | | `CLOUDFLARE_ACCOUNT_ID` | `cloudflare_account_id` | self-hosted(沿用 wrangler 慣用名)| | `CLOUDFLARE_API_TOKEN` | `cf_api_token` | self-hosted(沿用 wrangler 慣用名)| diff --git a/system-dev/docs/3-specs/arcrun/sdk-and-website/self-hosted-init.md b/system-dev/docs/3-specs/arcrun/sdk-and-website/self-hosted-init.md index a5cde8d..7633c7c 100644 --- a/system-dev/docs/3-specs/arcrun/sdk-and-website/self-hosted-init.md +++ b/system-dev/docs/3-specs/arcrun/sdk-and-website/self-hosted-init.md @@ -25,7 +25,7 @@ - **`wrangler deploy` 部署全部 Worker**(用戶已裝 wrangler) - seed auth recipe + API recipe 進 RECIPES KV - 寫回 `~/.arcrun/config.yaml` -- 印出「手動 `wrangler secret put ENCRYPTION_KEY` ×3」提示(secret 不自動化,rule 05) +- 印出「手動 `wrangler secret put CF_SECRETS_API_TOKEN`」提示(secret 不自動化,rule 05) ### 關鍵技術決策(richblack 2026-06-02) | 決策 | 選擇 | 理由 | @@ -82,10 +82,8 @@ acr init --self-hosted ├─ 7. 寫回 config(mode: self-hosted + 所有 id + cypher_executor_url = 部署後 workers.dev URL) │ └─ 8. 印手動 secret 提示: - wrangler secret put ENCRYPTION_KEY --name arcrun-cypher-executor - wrangler secret put ENCRYPTION_KEY --name arcrun-auth-static-key - wrangler secret put ENCRYPTION_KEY --name arcrun-auth-service-account - (三 Worker 共用同一把 key,見 memory: encryption-key-drift-trap) + wrangler secret put CF_SECRETS_API_TOKEN --name arcrun-cypher-executor + (credential 值交 CF Workers Secrets 託管;auth 零件不需 secret) ``` ### `acr update`(同一條路,未來新零件) @@ -208,7 +206,7 @@ codebase 只有 auth recipe seed。新增 `seed-api-recipes.ts`,把現役 API 1. richblack 用**全新 CF 帳號** + wrangler 已裝 + 一個 CF API Token 跑 `acr init --self-hosted` → 全程無手動建 KV / 無手動 clone / 無 tinygo / 無手動填 namespace id。 -2. 跑完印 secret 提示,richblack 手動 `wrangler secret put ENCRYPTION_KEY` ×3。 +2. 跑完印 secret 提示,richblack 手動 `wrangler secret put CF_SECRETS_API_TOKEN`。 3. `acr push` 一個含 http_request + 自建 recipe 的 workflow → trigger → **HTTP 2xx + execution trace**。 4. 冪等:重跑 init 不重建已存在 KV / 不報錯。 5. `acr update` 拉新 codeload tarball(tag)→ 重部署成功。 @@ -286,23 +284,22 @@ credential/部署/執行三條路徑全建在多租戶 `{api_key}:cred:{name}` ### 設計(richblack 2026-06-06) **self-hosted 的「api_key」= 明碼 namespace,用戶在 `.env` 自填。工具不生成、不 hash、不外傳。** -- 兩欄(像 username/password,但都由用戶持有): +- 一欄(由用戶持有): - `NAMESPACE=leo`(明碼分區標籤,當 KV 前綴;**非密碼**) - - `ENCRYPTION_KEY=<64+ hex>`(creds 加密金鑰,用戶自保管;須與 worker secret 一致) - **誠實限制**(mindset §7):namespace 明碼不提供認證。要防外部呼叫 → 對 webhook 加保護(mindset §6);arcrun 不做授權判斷(mindset §3)。 - **零分叉**:SaaS 仍走 register 發的真 api_key;self-hosted 走 .env 的 NAMESPACE。**同一條 `api_key` 路徑、同一份 config 解析**,只是值來源不同。 ### 改法 | 檔案 | 改動 | |---|---| -| `cli/src/lib/config.ts` | `ENV_MAP` 加 `NAMESPACE`/`ARCRUN_NAMESPACE`/`ENCRYPTION_KEY` → 對應 `api_key`/`encryption_key`;新增 `.env` 自動載入(就近往上找,shell > .env,無 dotenv 依賴)| -| `cli/src/commands/creds.ts`、`push.ts` | self-hosted 缺值時,引導設 `.env` 的 NAMESPACE/ENCRYPTION_KEY(不再叫去 register)| -| `cli/src/commands/init.ts` | self-hosted 結尾改提示「在 .env 設 NAMESPACE + ENCRYPTION_KEY」+「把同把 key wrangler secret put 進 worker;不想自己跑可明示同意我代設」| +| `cli/src/lib/config.ts` | `ENV_MAP` 加 `NAMESPACE`/`ARCRUN_NAMESPACE` → 對應 `api_key`;新增 `.env` 自動載入(就近往上找,shell > .env,無 dotenv 依賴)| +| `cli/src/commands/creds.ts`、`push.ts` | self-hosted 缺值時,引導設 `.env` 的 NAMESPACE | +| `cli/src/commands/init.ts` | self-hosted 結尾改提示「在 .env 設 NAMESPACE」+「把 CF_SECRETS_API_TOKEN wrangler secret put 進 worker;不想自己跑可明示同意我代設」| | `cypher-executor/src/routes/webhooks-named.ts` | 新增 `POST /webhooks/named/:ns/:name/trigger`(namespace 走 path,公開表單免 header);與 header 路徑共用 `triggerNamed`,不分叉 | | `cli/src/commands/push.ts` | self-hosted 輸出 path-based 公開 webhook URL(免 header)| ### 為何 namespace 進 URL path 安全 -namespace 是明碼標籤非密碼,放 path 不洩漏任何祕密。真正的祕密是 `ENCRYPTION_KEY`(在 worker secret + 用戶 .env,永不進 URL/path)。要防外部濫用 webhook 是「webhook 保護層」職責,非 namespace。 +namespace 是明碼標籤非密碼,放 path 不洩漏任何祕密。真正的祕密是 credential 值(由 CF Workers Secrets 託管,永不進 URL/path)。要防外部濫用 webhook 是「webhook 保護層」職責,非 namespace。 ## 7.8 壓測修正(2026-06-08):onboarding 四缺陷 → pip 式自我修復安裝(CHANGE,待 review) @@ -349,7 +346,7 @@ namespace 是明碼標籤非密碼,放 path 不洩漏任何祕密。真正的 - [x] **P1**:`acr whoami`(`cli/src/commands/whoami.ts`,人讀 + `--json`,印 mode/帳號/連哪台/來源層,薄殼讀 resolveConfigSources)+ MCP `arcrun_whoami`(`mcp/src/tools/arcrun_whoami.ts`,回報 orgNamespace + binding,與 CLI 對齊)。AI 問工具拿身份,不自己 curl 猜。cli+mcp tsc exit 0。**2026-06-09 完成** - [x] **P2**:MCP 掛載重啟提示(D3)。`cli/src/commands/mcp-setup.ts` 寫完 `.mcp.json` 後印「⚠ 請重啟 IDE/client 才會載入 project scope MCP」+ 信任工作區提醒。經 init 也會流到(init 呼叫 cmdMcpSetup)。**2026-06-09 完成** - [~] **P3**:README/GitHub 入口整理成「AI 讀了就照著裝」的單一指引(D 無腦入口)。**部分完成 2026-06-09**: - - 新增 repo 根 `.env.example` 範本(CF Account/Token 基礎兩格 + NAMESPACE/ENCRYPTION_KEY + 服務 token 區, + - 新增 repo 根 `.env.example` 範本(CF Account/Token 基礎兩格 + NAMESPACE + 服務 token 區, 每格上面白話說明「去哪申請、怎麼拿」,值留空。`.gitignore` 加 `!.env.example` 放行進 repo)。 - `llms.txt` step 3 改成「**你(AI)先 `cp .env.example .env`**,帶用戶填值(用戶只填「=」右邊)」—— 把「建 .env 結構」從用戶身上挪到 AI,用戶只做貼值。step 4 補 init「安裝驗收」說明。 diff --git a/system-dev/docs/3-specs/user-cc-harness/design.md b/system-dev/docs/3-specs/user-cc-harness/design.md index a00b5e7..03e245a 100644 --- a/system-dev/docs/3-specs/user-cc-harness/design.md +++ b/system-dev/docs/3-specs/user-cc-harness/design.md @@ -57,7 +57,7 @@ superseded_by: "" | P3 | `acr install-harness`(裝防護)| 否 | 自己跑 | CC 代跑(CC 讀 llms.txt 第一步就做)| | P4 | **建 CF 帳號 + 拿 Account ID + API Token** | **是**(憑證在用戶手上)| 自己建 | **CC 白癡化手把手帶**(§1.0 步驟2)| | P5 | `acr init --self-hosted`(貼 token,自動建 KV/部署/seed)| 否 | 自己跑 | CC 代跑(用 P4 拿到的兩串)| -| P6 | `wrangler secret put ENCRYPTION_KEY` ×3 | 否 | 自己跑 | CC 代跑 | +| P6 | `wrangler secret put CF_SECRETS_API_TOKEN` | 否 | 自己跑 | CC 代跑 | | P7 | 連 arcrun MCP(`claude mcp add`,CC 偏好的工具)| 否 | 自己跑 | CC 代跑(install-harness 順便)| ### 兩種執行者 diff --git a/system-dev/docs/4-guides/05-deploy-convention.md b/system-dev/docs/4-guides/05-deploy-convention.md index e48b4ad..0ee9fe3 100644 --- a/system-dev/docs/4-guides/05-deploy-convention.md +++ b/system-dev/docs/4-guides/05-deploy-convention.md @@ -62,10 +62,13 @@ find . -name 'wrangler.toml' -not -path '*/node_modules/*' -not -name 'wrangler. **CI 只提供 Cloudflare 驗證,不碰 runtime secret**。 - GH Actions secrets:`CLOUDFLARE_API_TOKEN`、`CLOUDFLARE_ACCOUNT_ID`(一次性設好) -- Runtime secret(例:`ENCRYPTION_KEY`、`OPENAI_KEY`、`GOOGLE_API_KEY`): +- Runtime secret(例:`CF_SECRETS_API_TOKEN`、`OPENAI_KEY`、`GOOGLE_API_KEY`): - **由 richblack 一次性手動** `wrangler secret put ` 設進各 Worker - 不進 CI,不進 `wrangler.toml` `[vars]` - - 需要的 Worker:`auth_static_key`、`auth_service_account`(兩個都要 `ENCRYPTION_KEY`) + - 需要的 Worker:`arcrun-cypher-executor`(`CF_SECRETS_API_TOKEN`——寫 credential 進 + Workers Secrets 用;`CF_ACCOUNT_ID` 非機密由 `acr init` 自動注入) + +> `auth_static_key` / `auth_service_account` 不需要任何 secret。 --- diff --git a/system-dev/docs/5-records/README.md b/system-dev/docs/5-records/README.md index a225a92..3ce351d 100644 --- a/system-dev/docs/5-records/README.md +++ b/system-dev/docs/5-records/README.md @@ -1,6 +1,10 @@ # 5. Records — 日誌 + 驗收報告 > 線上事件復盤、測試報告、決策軌跡。 +> +> ⚠️ **本目錄是「發生過什麼」的檔案館,不是現行做法**。內容反映當時狀態,其中提及的 +> 機制可能早已移除(例如 credential 的舊自管金鑰路徑已於 2026-07-20 完全移除)。 +> 勿依本目錄任何內容操作;現行規範一律以 `.claude/rules/` 為準。 ## 線上事件 diff --git a/system-dev/docs/5-records/incidents/2026-05-29-encryption-key-drift.md b/system-dev/docs/5-records/incidents/2026-05-29-encryption-key-drift.md index 4090071..fd370e8 100644 --- a/system-dev/docs/5-records/incidents/2026-05-29-encryption-key-drift.md +++ b/system-dev/docs/5-records/incidents/2026-05-29-encryption-key-drift.md @@ -1,5 +1,8 @@ # 2026-05-29 credential 解密失敗(兩個 Worker 的 ENCRYPTION_KEY 漂移) +> ⚠️ 歷史記錄(2026-07-20 起本文所述機制已完全移除,本文僅供考古,勿依此操作)。 +> 現行 credential 做法見 `.claude/rules/01-tech-stack.md`「Credential 儲存規範」。 + > **症狀**:`acr recipe test kbdb`(credential 注入)回 HTTP 500,`auth_static_key` 回 `credential kbdb_api_key 解密失敗` > **根因(主)**:`arcrun-auth-static-key` Worker 的 `ENCRYPTION_KEY` secret 跟正本(cypher-executor / CLI 用的那把)值不同、格式也不同(44-char base64 vs 64-char hex)。AES-GCM 用錯 key 必然解密失敗。 > **根因(附)**:`component-loader.ts` 用 `res.json().catch(() => res.text())` 讀 response body → body 被讀兩次 → `Body has already been used`。 diff --git a/system-dev/docs/5-records/test-reports/pre-customer-checklist-2026-06-07.md b/system-dev/docs/5-records/test-reports/pre-customer-checklist-2026-06-07.md index a382467..fa5f14c 100644 --- a/system-dev/docs/5-records/test-reports/pre-customer-checklist-2026-06-07.md +++ b/system-dev/docs/5-records/test-reports/pre-customer-checklist-2026-06-07.md @@ -1,5 +1,8 @@ # 交付前自測 Checklist(pre-customer)— 2026-06-07 +> ⚠️ 歷史記錄(2026-06-07 當時的清單)。其中 credential 相關步驟所依據的舊自管金鑰機制 +> 已於 2026-07-20 完全移除,**勿照本文操作**;現行做法見 `.claude/rules/01-tech-stack.md`。 + > 給 **你(人)** 在交給客戶前跑一次的精簡清單,不是給 Haiku 操盤的詳細壓測(那份在 > 壓測-recipe-library-2026-06-07.md)。順序照客戶真實旅程。**任一項 ❌ = 不能交付。** > 過關標準都是客觀證據(HTTP 2xx / D1 數字 / 檔案存在),禁口頭過關。 diff --git a/system-dev/docs/5-records/test-reports/壓測-recipe-library-2026-06-07.md b/system-dev/docs/5-records/test-reports/壓測-recipe-library-2026-06-07.md index adfb1ea..7474595 100644 --- a/system-dev/docs/5-records/test-reports/壓測-recipe-library-2026-06-07.md +++ b/system-dev/docs/5-records/test-reports/壓測-recipe-library-2026-06-07.md @@ -1,5 +1,8 @@ # 壓測 Test Case — Recipe 公庫/私庫機制 + UUID(2026-06-07 deploy 後) +> ⚠️ 歷史記錄。文中 credential 相關步驟依據的舊自管金鑰機制已於 2026-07-20 完全移除, +> **勿照本文操作**;現行做法見 `.claude/rules/01-tech-stack.md`。 + > 對象:本次上線的 kbdb-base §7.5(公庫/私庫雙向、UUID 身份、市場數據)+ 回歸。 > > **操盤模型:全程 Haiku。Haiku 能搞定是「設計目標」不只是壓測手段(richblack 2026-06-07)。** diff --git a/system-dev/wiki/cards/decisions/00-INDEX.md b/system-dev/wiki/cards/decisions/00-INDEX.md index c681fa3..c5187fd 100644 --- a/system-dev/wiki/cards/decisions/00-INDEX.md +++ b/system-dev/wiki/cards/decisions/00-INDEX.md @@ -23,7 +23,6 @@ ## credential / recipe -- [[多worker-ENCRYPTION_KEY同步]] — 各 Worker secret put 同份 key,漂移→解密失敗表現為 401/403 - [[Recipe-UUID市場模型]] — canonical+uuid+author 多維身份,per-uuid 市場數據 ## kbdb diff --git a/system-dev/wiki/cards/decisions/多worker-ENCRYPTION_KEY同步.md b/system-dev/wiki/cards/decisions/多worker-ENCRYPTION_KEY同步.md deleted file mode 100644 index 3785ce5..0000000 --- a/system-dev/wiki/cards/decisions/多worker-ENCRYPTION_KEY同步.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -tags: [credential, 部署, 架構決策, 踩坑] -gloss: 多個 Worker(auth primitive + cypher-executor)共享 ENCRYPTION_KEY,用 wrangler secret put 手動設進各 Worker secret store,不用 KV。 ---- -# 多 Worker ENCRYPTION_KEY 同步 - -← [[decisions/00-INDEX]] - -**來源**:`system-dev/wiki/decisions-summary.md`(多 Worker ENCRYPTION_KEY 同步)、`.claude/rules/01-tech-stack.md` 加解密規範 -**最後更新**:2026-06-27 - -## 摘要 -Auth static_key / Auth service_account / cypher-executor 三個 Worker 都需 ENCRYPTION_KEY 來解密 credential。用各 Worker 的 secret store(非環境變數)存放;初期化時 `acr init` 生成一份 key,用 `wrangler secret put ENCRYPTION_KEY` 各設一次。 - -## 重點 -- **Secret 存儲位置**:各 Worker 的 secret store(Cloudflare 原生機制),不是環境變數、不是 KV。環境變數會洩漏到日誌;KV 的 list 操作可能外洩。 -- **初始化流程**:`acr init` 生成一份 32 字節隨機 key → 印出一次 → 用戶自己跑 `wrangler secret put ENCRYPTION_KEY --path ` 分別設進三個 Worker。 -- **冪等性問題**:目前 `acr init` 多跑幾次會生成不同 key(不冪等)。長期應改成「init 檢查現有 config → 若存在 key 則重用舊的、否則生成新的」。 -- **漂移陷阱**:若某個 Worker 的 key 遺漏或與其他 Worker 不同 → credential 解密失敗 → 表現為 401/403(用戶困惑,難debug)。 -- **驗證方法**:init 完成後做一個 test workflow 打一個認證過的 API(如 gmail),確認三個 Worker 的 key 一致。 - -## 實體 -- **ENCRYPTION_KEY**(加密密鑰)— 32 字節 AES-GCM 密鑰,用來解密用戶的 credential。 -- **Secret store**(Cloudflare 密鑰存儲)— Worker 的原生機制,用 `wrangler secret put` 設置、runtime 讀取,內容不外洩。 -- **密鑰漂移**(key drift)— 多個 Worker 持有不同版本的 ENCRYPTION_KEY,導致某些 Worker 解密失敗。 -- **冪等性**(idempotency)— `acr init` 多次運行應產生同一結果(目前不達成)。 -- **解密失敗**(decryption failure)— Worker 因 key 不匹配無法解密 credential,表現為 401/403 錯誤。 - -## 關聯 -### 內文知識關係 -- ENCRYPTION_KEY >> 分散存儲於 >> Secret store -- 密鑰漂移 >> 導致 >> 解密失敗 -- 冪等性 >> 缺乏時 >> 重跑 init 造成 key 不一致 -### 卡片關係 -- (相關 memory:`encryption-key-drift-trap` — 解密失敗先比 key 指紋;屬 auto-memory 非 card) diff --git a/system-dev/wiki/decisions-summary.md b/system-dev/wiki/decisions-summary.md index 39bb2a1..c7a863e 100644 --- a/system-dev/wiki/decisions-summary.md +++ b/system-dev/wiki/decisions-summary.md @@ -110,32 +110,6 @@ compatibility_flags = [ "nodejs_compat", "global_fetch_strictly_public" ] --- -## 多 Worker ENCRYPTION_KEY 同步(2026-05-29) - -**Q:auth_static_key / auth_service_account / cypher-executor 都需 ENCRYPTION_KEY,怎麼保持一致?** - -**決策**: -- secret 存在各 Worker 的 secret store(非環境變數,避免洩漏) -- `wrangler secret put ENCRYPTION_KEY` 手動設進各 Worker -- 初始化:`acr init` 生成,展示一次,user 自己 secret put - -**為什麼不用 KV**: -- secret 是敏感內容,不應在 KV 存(會被 list 洩漏) -- secret store 是 Cloudflare 的原生機制 - -**冪等性**: -- `acr init` 多跑幾次,生成不同 key(目前不冪等) -- 若要冪等,init 應檢查現有 config → reuse 舊 key - -**避坑**: -- init 完成後驗證所有三個 Worker 都有同一份 key -- 若某個 Worker 的 key 遺漏或不同 → credential 解密失敗(會表現為 401/403) -- 重跑 init 不要覆蓋舊 secret(目前沒有 check,need improvement) - -**詳見**:2026-05-29-encryption-key-drift.md、rule 01 加解密 - ---- - ## Recipe UUID 模型(kbdb-base §7.5) **Q:多作者同 canonical recipe 怎麼並存?** diff --git a/system-dev/wiki/mistakes.md b/system-dev/wiki/mistakes.md index 6d82fc9..68e186c 100644 --- a/system-dev/wiki/mistakes.md +++ b/system-dev/wiki/mistakes.md @@ -98,26 +98,6 @@ metadata: --- -## 6. 多 Worker 共用 ENCRYPTION_KEY 漂移(encryption-key-drift) - -**錯誤模式**:同一個 key 在多個 Worker 的 secret store 中不一致。 - -**根因**: -- `acr init --self-hosted` 不是幪等的 -- 用戶重跑 init,key 重新生成或未同步到所有 Worker -- 某個 Worker 還用舊 key,解密失敗 - -**後果**: -- credential 無法解密,workflow 執行失敗(401/403) -- 調試難度高,表現為「缺 credential」 - -**避坑**: -- init 完成後,驗證所有 secret_target_workers(auth_static_key / auth_service_account / cypher-executor)都有同一份 key -- 若已部署過,重跑 init 時 **skip secret put**(不要覆蓋) -- 或提供「檢查 key 一致性」的端點(未實作) - ---- - ## 7. 同 zone 1042(self-hosted cypher 打 auth worker) **錯誤模式**:cypher 和 auth worker 同 zone(都是 {sub}.workers.dev),cypher fetch 打 auth 返回 522。 diff --git a/system-dev/wiki/status.md b/system-dev/wiki/status.md index f6aa288..e4e8f5c 100644 --- a/system-dev/wiki/status.md +++ b/system-dev/wiki/status.md @@ -252,7 +252,6 @@ metadata: | 4 份 inline http_request host fn 抽共用 helper | 🟡 中 | 待 dedup | http_request/claude_api/kbdb_upsert_block/km_writer 各自複製貼上同段(這次假綠修也是逐份改) | | `arcrun.dev/llms.txt` 404 | 🟡 中 | 未 serve | landing/public 缺檔;GitHub repo 內正常(test/5 走 GitHub 不阻擋) | | MCP account-source | 🟡 中 | 記錄中 | self-hosted MCP 指官方不指自己(§5.2 已知) | -| ENCRYPTION_KEY 冪等性 | 🟡 中 | 設計中 | init 多跑生成新 key,無法複用舊 key | | recipe submitted 後沒有 uuid | 🟡 中 | 待驗 | submit-p 應回 uuid,CLI 拿不到 | | ~~KV list 爆量~~ | ✅ 已解 | §8 P0 部署 | cron list→單 key get,1440/日→0(2026-06-09) | | ~~onboarding 缺陷(4 項)~~ | ✅ 已解 | §7.8 P0/P1/P2 + P3 部分 | CLI 1.3.4,Haiku 壓測證實裝+init 不跳過 | @@ -310,7 +309,7 @@ metadata: 6. [ ] `arcrun.dev/llms.txt` serve(landing/public 補檔) 7. [ ] 補 wiki modules/(文件遷移階段一~三已於 2026-06-14 完成) -8. [ ] ENCRYPTION_KEY 冪等性、MCP account-source、recipe submit uuid 回傳 +8. [ ] MCP account-source、recipe submit uuid 回傳 ---