name = "arcrun-cypher-executor" main = "src/index.ts" compatibility_date = "2025-02-19" compatibility_flags = ["nodejs_compat"] # 測試環境不啟用 Service Binding(Miniflare 無法解析外部服務) # 2026-06-04:移除 WASM_BUCKET R2 mock。R2 wasm 路徑已 dead,不再需要測試 mock。 # KV mock(BUILD-006) [[kv_namespaces]] binding = "EXEC_CONTEXT" id = "test-exec-context" [[kv_namespaces]] binding = "WEBHOOKS" id = "test-webhooks" [[kv_namespaces]] binding = "CREDENTIALS_KV" id = "test-credentials-kv" [[kv_namespaces]] binding = "RECIPES" id = "test-recipes" # console session mock(分流台勾掉 route 測試;console-auth.ts 的 session 真身存這個 KV) [[kv_namespaces]] binding = "SESSIONS_KV" id = "test-sessions-kv" # portal-auth P3:/portal/data/workflows 讀最近執行(stats:{name}:{ts}) [[kv_namespaces]] binding = "ANALYTICS_KV" id = "test-analytics-kv" # credential-store-migration T8/T9 測試用 D1 mock(Miniflare 本地 SQLite,非真實 leo21c D1; # schema 由 tests/setup.ts 在測試啟動時建表,不用 migrations_dir——0002_credentials.sql 就一張表, # 直接 exec 比接 migrations 機制簡單) [[d1_databases]] binding = "CREDENTIALS_DB" database_name = "test-credentials-db" database_id = "test-credentials-db-id" [vars] ENVIRONMENT = "test" # 分流台勾掉 route 測試:KBDB 指到假 host(fetchMock 攔截,絕不外連——尤其不打官方 uncle6 fallback) KBDB_BASE_URL = "https://kbdb.test" CONSOLE_TENANT = "leo" # portal-auth P3:graph 粗閘放行後的轉發目標也指假 host(fetchMock 攔截,絕不外連) KBDB_GRAPH_URL = "https://graph.test" # Arcrun#100:kbdb-graph-plugin 對 /triplets /graph /search /entities 掛 Bearer 閘。測試環境要有 # 這把(明顯的假字串、非真實金鑰)才驗得出「cypher 打 plugin 有沒有帶 token」——原本兩支 # /triplets/stats 漏帶 → 永遠 401 → 前端「三元組 0」。真實部署仍走 wrangler secret put。 KBDB_INTERNAL_TOKEN = "test-fake-not-a-real-token" # credential-ok:測試假值,同上方 CF_SECRETS_API_TOKEN 慣例 # D61(ADR D61 / Leo/arcrun-rag#55):認證儲存(lib/portal-auth-store.ts)走 CF Workers # Scripts secrets 管理 API(https://api.cloudflare.com/...),authStoreWritable() 只看這兩項 # 存不存在。測試環境預設就緒(比照真實已裝妥的實例),值是明顯的假字串、非真實金鑰;實際的 # PUT/DELETE 呼叫一律靠 tests/*.ts 裡的 fetchMock 攔截,不外連。要測「寫入路徑未就緒」 # 的分支才需要繞過 SELF、直接呼叫 router.fetch(req, fakeEnv, ctx) 帶缺項的 env(見 # tests/health.test.ts 既有前例)。 CF_SECRETS_API_TOKEN = "test-fake-not-a-real-token" # credential-ok:測試假值,見上方註解 CF_ACCOUNT_ID = "test-account"