-- credential-primitives-wasm — credential-store-migration T2（D19：D1 只存目錄，不存密文）
-- SDD: system-dev/docs/3-specs/arcrun/credential-primitives-wasm/credential-store-migration.md §2.2
--
-- ⚠️ 已退役（D38 圍牆修復，2026-08-07）：本檔在 KBDB 裡多開了一張獨立表，違反「KBDB 只有
-- 三張核心表」的鐵律（見 kbdb-usage skill「反例」）。deploy.ts 已不再套用本檔——新裝置改跑
-- 0005_credential_template.sql（template 定義）＋ 0006_drop_credentials_table.sql（把舊資料
-- 搬進 entries 後拆表）。本檔保留純供歷史對照（欄位定義與 0005 的 slots_json 一字對應），
-- 不要再照抄這個形狀；新資料類型請照 0003/0004/0005 的手法（template + entries）。
--
-- 密文本體不在這裡：值住在 CF Workers per-script Secrets（掛在 cypher worker 上，管理 API 唯寫）。
-- 這張表只存「目錄」：租戶(api_key) / 名字 / 服務 / 敏感度 / 指向 Workers Secrets 的 env var 名(secret_ref)。
-- 冪等（IF NOT EXISTS），與 0001_base.sql 同模式，套用機制走 cli/src/lib/deploy.ts applyD1Migration。
-- 同一顆 D1（與 KBDB base 共用 arcrun-kbdb），不新建第二顆。

CREATE TABLE IF NOT EXISTS credentials ( -- kbdb-sql-ok: 已退役的歷史存底，deploy.ts 不再套用本檔（改跑 0005+0006），保留純供欄位對照
  api_key      TEXT NOT NULL,           -- 租戶
  name         TEXT NOT NULL,           -- credential 名（= auth-recipe required_secrets[].key，如 telegram_bot_token）
  service      TEXT,                    -- 對應 service（telegram / notion …），可空
  sensitivity  TEXT NOT NULL DEFAULT 'standard',  -- 'standard' | 'high'（high = SA JSON/private key）
  secret_ref   TEXT NOT NULL,           -- 指向 Workers Secrets 的 env var 名（如 CRED_TELEGRAM_BOT_TOKEN_XXXXXXXX；不是密文本體）
  created_at   INTEGER NOT NULL,
  last_used_at INTEGER,                 -- 執行注入時更新（治理面 last_used 顯示用）
  PRIMARY KEY (api_key, name)
);

CREATE INDEX IF NOT EXISTS idx_cred_apikey ON credentials(api_key);
