Secrets
Kazzle có một kho lưu trữ được mã hóa tích hợp sẵn để lưu trữ khóa API, thông tin đăng nhập cơ sở dữ liệu, token và các giá trị nhạy cảm khác mà ứng dụng của bạn cần. Secrets được mã hóa khi lưu trữ bằng AES-256-GCM sử dụng các khóa mã hóa dữ liệu được bao bọc bởi KMS — các giá trị văn bản thuần túy không bao giờ chạm vào cơ sở dữ liệu.Concepts
Collections nhóm các secrets liên quan lại với nhau (ví dụ:stripe-keys, database-credentials). Mỗi collection có một slug (chữ thường, có dấu gạch ngang) mà bạn tham chiếu trong các tệp cấu hình và lệnh CLI.
Environments là các phạm vi tùy chọn trong một collection (ví dụ: production, staging). Secrets có thể được giới hạn trong một môi trường cụ thể hoặc để ở cấp collection như các giá trị mặc định.
Thứ tự phân giải: khi phân giải secrets cho một collection + environment nhất định, secrets dành riêng cho môi trường sẽ ghi đè các secrets cấp collection có cùng tên. Điều này cho phép bạn chia sẻ hầu hết các secrets trên các môi trường trong khi ghi đè các giá trị cụ thể cho từng môi trường.
Managing secrets
In the app
Mở Settings > Vault để tạo collections, environments và secrets thông qua giao diện người dùng.With the AI
AI có thể tạo collections, tạo environments, lưu trữ secrets, di chuyển chúng giữa các phạm vi và xóa chúng cho bạn. AI nhìn thấy tên secrets và siêu dữ liệu nhưng không nhìn thấy các giá trị được mã hóa.With the CLI
Referencing secrets from your app
Trỏenv của một component tới một secret collection và environment trong kazzle.config.ts. Mỗi secret trong phạm vi đó được tiêm dưới dạng một biến env quy trình có tên khớp với tên secret:
env.collection và env.environment là slugs, không phải tên hiển thị. Sử dụng env.include để tiêm chỉ một tập hợp con các secrets của collection:
How secrets become env vars
Khi secrets được phân giải cho một component:- Collection được tìm thấy theo slug trong space của bạn
- Secrets được giới hạn trong environment được chỉ định được tải
- Secrets cấp collection (không có environment) được bao gồm như các giá trị mặc định
- Secrets dành riêng cho môi trường ghi đè các secrets cấp collection có cùng tên
- Các tham chiếu secret bên trong các giá trị được phân giải
- Tên secrets được chuyển đổi thành định dạng biến env: chữ hoa, các ký tự không phải chữ và số trở thành dấu gạch dưới
Stripe Secret Key trở thành STRIPE_SECRET_KEY.
Mỗi secret có một body mode xác định cách nó được tiêm:
stringsecrets (khóa API, tokens, URI) được tiêm dưới dạng các chuỗi vô hướng thuần túyjsonsecrets (cấu hình có cấu trúc) được tiêm dưới dạng các chuỗi JSONfieldssecrets (thông tin đăng nhập, các túi trường được gõ) được tiêm dưới dạng các chuỗi JSON
When secrets are injected
Template references
Các giá trị secret có thể tham chiếu các trường secret khác bằng cú pháp tương tự mà Kazzle sử dụng ở nơi khác:${secret.<uuid>.<field>}— trường cụ thể hoặc đường dẫn JSON bên trong các giá trị secret hoặc tham số công cụ nơi các tham chiếu vault được bật.${secret.<uuid>}— toàn bộ body secret. Chỉ sử dụng khi một công cụ rõ ràng yêu cầu toàn bộ secret thô; không sử dụng cái này trong app env/config.