a5e4caf5cb
leo 2026-08-12 打開總圖看到:「0 個實體 · 0 條關聯/知識庫還沒有任何關聯—— 上傳文件後 AI 會自動織網」。**而他庫裡有 1854 條三元組。** 那句話會叫他去做一件不需要做的事。 三個獨立的洞疊起來才變成那句謊: ① console-dashboard.ts 打 kbdb-graph-plugin 沒帶認證(同段落打 kbdb 的兩支都有帶) ② 那顆 worker 不在更新的部署清單裡 ⇒ token 一換它就落單 ③ **畫面把 null 畫成 0**——後端已經誠實回 null 了,是前端把它變成謊話 為什麼一直沒被發現:graph plugin 原本身上沒有 token ⇒ 門開著 ⇒ 沒帶也進得去。 2026-08-12 輪替後它有了 token,門關上,401 才浮出來。 📍 repo:matrix/arcrun(cypher-executor/src/routes/、console-ui/public/) 📍 票:Leo/Arcrun#100
64 lines
2.8 KiB
TOML
64 lines
2.8 KiB
TOML
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"
|