f87d0e92f4
leo 更新 leo21c 時撞到(他問「部分失敗?」): ✗ D1 migration: 部署物缺 kbdb/migrations/0005_credential_template.sql ✗ D1 migration: 部署物缺 kbdb/migrations/0006_drop_credentials_table.sql (四顆 worker cypher/registry/kbdb/mcp 全部 ✓,失敗的只有這兩個檔) 根因不是誰忘了推:.gitignore:53 的 `*.sql` 是為了擋 D1 匯出備份(整庫全量=機敏), 但它連 migration 一起吃掉。0001-0004 還在,只因為它們在該規則之前就 commit 了 (gitignore 不影響已追蹤檔案)⇒ 0005/0006 從產生那天起就不在任何 clone 裡。 ⇒ 這不是 leo 一台的事:更新指令從 Gitea 抓 main,那兩個檔不在那裡 ⇒ **任何人裝/更新都會收到同一組失敗**,包含全新安裝。 修法照 rules/05-deploy-convention.md「WASM 來源」段已有的慣例 (`.component-builds/**/component.wasm` 就是用否定規則放行的): !kbdb/migrations/*.sql 範圍實測(沒開太大): kbdb/migrations/0005、0006 → 放行 backup-2026.sql / kbdb/backup-x.sql / dump.sql / cypher-executor/export.sql → 仍被擋 進版控前確認過無機敏值:grep 命中的 token/secret/api_key 全是欄位名 (api_key、secret_ref)與註解;無 >=20 位英數的疑似真值。 殘項:leo21c 實查 templates 9 個、credential 不在其中 ⇒ 0005 從未套用, 那台仍停在 D38 之前(credentials 走 0002 的獨立表)。要補套需另跑一次更新。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
26 lines
1.8 KiB
SQL
26 lines
1.8 KiB
SQL
-- credential template seed(D38 圍牆修復,總管交辦,2026-08-07)
|
||
-- SDD:無專屬 SDD(D38 事故修復任務,見 system-dev/wiki/decisions-summary.md D38 段)。
|
||
--
|
||
-- D38 鐵律(leo 2026-06-14 立、2026-08-07 擴大):KBDB 三張表打天下,永遠不加新表;
|
||
-- 新資料類型一律用 template + entries,同 0003_library_map.sql / 0004_execution_log_template.sql
|
||
-- 的手法——對 templates 表 INSERT OR IGNORE 一列定義,不建新表、不動既有表的結構。
|
||
--
|
||
-- 這是「credential 目錄」的第二個家:原本 0002_credentials.sql 在 KBDB 裡多開了一張
|
||
-- 獨立表(違規,見 kbdb-usage skill「反例」),本檔 + 0006_drop_credentials_table.sql
|
||
-- 把它改回三張表的形狀——一筆 credential=entries 表一列(entry_type='credential',
|
||
-- page_name=name 當冪等鍵,owner_id=api_key 做租戶隔離,其餘欄位打包進 metadata_json),
|
||
-- 儲存精神比照既有 recipe_stat / execution_log(template 只負責文件化,實際資料不走
|
||
-- entry_values 全展開的多列 record)。
|
||
--
|
||
-- 密文本體不在這裡:值仍住在 CF Workers per-script Secrets(掛在 cypher worker 上,管理
|
||
-- API 唯寫,D19「擁有目錄,不擁有內容物」不變)。這張 template 定義的 slots 全部是目錄
|
||
-- 欄位,零密文——與舊 0002_credentials.sql 的欄位定義一字不變,只是換了個家。
|
||
INSERT OR IGNORE INTO templates (id, name, description, slots_json, created_by)
|
||
VALUES (
|
||
'tpl-credential',
|
||
'credential',
|
||
'credential 目錄(D38 圍牆修復:改走 entries 表 entry_type=credential,取代舊 credentials 表;零密文,密文本體住 Workers per-script Secrets)',
|
||
'["name","service","sensitivity","secret_ref","last_used_at"]',
|
||
'system'
|
||
);
|