-- 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' );