密鑰
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 只注入集合密鑰的子集:
密鑰如何變成環境變數
解析元件的密鑰時:- 在您的 Space 內按識別碼找到集合
- 載入限定於指定環境的密鑰
- 集合層級密鑰(無環境)作為預設值包含
- 環境特定的密鑰覆蓋同名的集合層級密鑰
- 解析值內的密鑰參考
- 密鑰名稱轉換為環境變數格式:大寫,非英數字元變為底線
Stripe Secret Key 的密鑰變成 STRIPE_SECRET_KEY。
每個密鑰都有一個主體模式,決定其注入方式:
string密鑰(API 金鑰、權杖、URI)作為純量字串注入json密鑰(結構化設定)作為 JSON 字串注入fields密鑰(登入認證、型別欄位包)作為 JSON 字串注入
何時注入密鑰
範本參考
密鑰值可使用 Kazzle 在其他地方使用的相同語法參考其他密鑰欄位:${secret.<uuid>.<field>}— 密鑰值或工具參數內的特定欄位或 JSON 路徑(已啟用保管庫參考)。${secret.<uuid>}— 整個密鑰主體。只在工具明確要求整個原始密鑰時使用;不要在應用程式 env/config 中使用。