密鑰
Kazzle 內建加密保管庫,用於儲存 API 金鑰、資料庫認證、權杖和應用程式所需的其他敏感值。密鑰使用 AES-256-GCM 加密(採用 KMS 包裝的資料加密金鑰)進行靜態加密 — 純文字值永遠不會接觸資料庫。概念
集合將相關密鑰分組在一起(例如stripe-keys、database-credentials)。每個集合都有一個識別碼(小寫、用連字號分隔),您可在設定檔和 CLI 命令中參考。
環境是集合內的選用範圍(例如 production、staging)。密鑰可限定於特定環境,或保留在集合層級作為預設值。
**解析順序:**解析給定集合 + 環境的密鑰時,環境特定密鑰會覆寫同名的集合層級密鑰。這讓您可在環境間共用大多數密鑰,同時按環境覆寫特定值。
管理密鑰
在應用程式中
開啟 Settings > Vault 以透過 UI 建立集合、環境和密鑰。使用 AI
AI 可為您建立集合、建立環境、儲存密鑰、在範圍間移動密鑰,以及刪除密鑰。 AI 可看到密鑰名稱和中繼資料,但看不到加密值。使用 CLI
從應用程式參考密鑰
在kazzle.config.ts 中將元件的 env 指向密鑰集合和環境。該範圍內的每個密鑰都會注入為程序環境變數,其名稱與密鑰名稱相符:
env.collection 和 env.environment 是識別碼,不是顯示名稱。使用 env.include 只注入集合密鑰的子集:
密鑰如何成為環境變數
解析元件的密鑰時:- 在您的空間內按識別碼找到集合
- 載入限定於指定環境的密鑰
- 集合層級密鑰(無環境)作為預設值包含
- 環境特定密鑰覆寫同名的集合層級密鑰
- 解析值內的密鑰參考
- 密鑰名稱轉換為環境變數格式:大寫,非英數字元變為底線
Stripe Secret Key 的密鑰變為 STRIPE_SECRET_KEY。
每個密鑰都有主體模式,決定其注入方式:
string密鑰(API 金鑰、權杖、URI)注入為純量字串json密鑰(結構化設定)注入為 JSON 字串fields密鑰(登入認證、型別欄位包)注入為 JSON 字串
何時注入密鑰
| 內容 | 已注入? | 詳細資訊 |
|---|---|---|
| 部署(程序元件) | 是 | 在生產環境中新增為執行時環境變數 |
| 部署(UI 元件) | 部分 | 只有 VITE_* 前置密鑰在建置時傳遞 |
CLI(kazzle run) | 是 | 注入到命令的環境 |
CLI(secrets.export) | 是 | 匯出為 KEY=value 行 |
| 開發預覽 | 尚未 | 預覽啟動器尚未解析元件 env — 目前請使用 kazzle run |
範本參考
密鑰值可使用 Kazzle 在其他地方使用的相同語法參考其他密鑰欄位:${secret.<uuid>.<field>}— 特定欄位或 JSON 路徑。用於應用程式環境/設定。${secret.<uuid>}— 整個密鑰主體。僅在工具明確要求整個原始密鑰時使用;不要在應用程式環境/設定中使用。