Bí mật
Kazzle có một kho lưu trữ được mã hóa tích hợp để lưu trữ khóa API, thông tin xác thực 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. Bí mật được mã hóa khi lưu trữ bằng AES-256-GCM sử dụng 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.Khái niệm
Bộ sưu tập nhóm các bí mật liên quan với nhau (ví dụ:stripe-keys, database-credentials). Mỗi bộ sưu tập 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.
Môi trường là các phạm vi tùy chọn trong một bộ sưu tập (ví dụ: production, staging). Bí mật có thể được giới hạn trong một môi trường cụ thể hoặc để ở cấp bộ sưu tập dưới dạng mặc định.
Thứ tự phân giải: khi phân giải bí mật cho một bộ sưu tập + môi trường nhất định, bí mật dành riêng cho môi trường sẽ ghi đè bí mật cấp bộ sưu tập có cùng tên. Điều này cho phép bạn chia sẻ hầu hết bí mật trên các môi trường trong khi ghi đè các giá trị cụ thể cho từng môi trường.
Quản lý bí mật
Trong ứng dụng
Mở Cài đặt > Vault để tạo bộ sưu tập, môi trường và bí mật thông qua giao diện người dùng.Với AI
AI có thể tạo bộ sưu tập, tạo môi trường, lưu trữ bí mật, 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 bí mật và siêu dữ liệu nhưng không nhìn thấy các giá trị được mã hóa.Với CLI
Tham chiếu bí mật từ ứng dụng của bạn
Trỏenv của một thành phần tới một bộ sưu tập bí mật và môi trường trong kazzle.config.ts. Mỗi bí mật trong phạm vi đó được tiêm dưới dạng biến env quy trình có tên khớp với tên bí mật:
env.collection và env.environment là slug, 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 bí mật của bộ sưu tập:
Cách bí mật trở thành biến env
Khi bí mật được phân giải cho một thành phần:- Bộ sưu tập được tìm thấy theo slug trong không gian của bạn
- Bí mật được giới hạn trong môi trường được chỉ định được tải
- Bí mật cấp bộ sưu tập (không có môi trường) được bao gồm dưới dạng mặc định
- Bí mật dành riêng cho môi trường ghi đè bí mật cấp bộ sưu tập có cùng tên
- Tham chiếu bí mật bên trong các giá trị được phân giải
- Tên bí mật đượ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 bí mật có một chế độ nội dung xác định cách nó được tiêm:
- Bí mật
string(khóa API, token, URI) được tiêm dưới dạng chuỗi vô hướng thuần túy - Bí mật
json(cấu hình có cấu trúc) được tiêm dưới dạng chuỗi JSON - Bí mật
fields(thông tin xác thực đăng nhập, túi trường được nhập) được tiêm dưới dạng chuỗi JSON
Khi bí mật được tiêm
| Bối cảnh | Được tiêm? | Chi tiết |
|---|---|---|
| Triển khai (thành phần quy trình) | Có | Được thêm dưới dạng biến môi trường thời gian chạy trong sản xuất |
| Triển khai (thành phần UI) | Một phần | Chỉ bí mật có tiền tố VITE_* được chuyển tại thời gian xây dựng |
CLI (kazzle run) | Có | Được tiêm vào môi trường của lệnh |
CLI (secrets.export) | Có | Được xuất dưới dạng dòng KEY=value |
| Xem trước phát triển | Chưa | Trình khởi động xem trước không phân giải env thành phần chưa — sử dụng kazzle run hiện tại |
Tham chiếu mẫu
Giá trị bí mật có thể tham chiếu các trường bí mật 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. Sử dụng định dạng này cho env/cấu hình ứng dụng.${secret.<uuid>}— toàn bộ nội dung bí mật. Chỉ sử dụng khi một công cụ yêu cầu rõ ràng toàn bộ bí mật thô; không sử dụng trong env/cấu hình ứng dụ