Секрети
Kazzle має вбудований зашифрований сейф для зберігання ключів API, облікових даних баз даних, токенів та інших конфіденційних значень, які потребує ваш додаток. Секрети зашифровані в спокої за допомогою AES-256-GCM з ключами шифрування даних, обгорнутими KMS — значення у відкритому вигляді ніколи не потрапляють до бази даних.Концепції
Колекції групують пов’язані секрети разом (наприкладstripe-keys, database-credentials). Кожна колекція має slug (малі літери, через дефіс), на який ви посилаєтесь у файлах конфігурації та командах CLI.
Середовища — це необов’язкові області видимості в межах колекції (наприклад production, staging). Секрети можуть бути обмежені конкретним середовищем або залишатися на рівні колекції як значення за замовчуванням.
Порядок розв’язання: під час розв’язання секретів для заданої колекції + середовища секрети, специфічні для середовища, перевизначають секрети на рівні колекції з тим самим іменем. Це дозволяє вам ділитися більшістю секретів між середовищами, перевизначаючи конкретні значення для кожного середовища.
Управління секретами
У додатку
Відкрийте Параметри > Сейф, щоб створювати колекції, середовища та секрети через інтерфейс.За допомогою ШІ
ШІ може створювати колекції, створювати середовища, зберігати секрети, переміщувати їх між областями видимості та видаляти їх для вас. ШІ бачить імена та метадані секретів, але не зашифровані значення.За допомогою CLI
Посилання на секрети з вашого додатку
Вкажітьenv компонента на колекцію секретів та середовище в kazzle.config.ts. Кожен секрет у цій області видимості вводиться як змінна середовища процесу, ім’я якої відповідає імені секрету:
env.collection та env.environment — це slugs, а не імена для відображення. Використовуйте env.include, щоб вводити лише підмножину секретів колекції:
Як секрети стають змінними середовища
Коли секрети розв’язуються для компонента:- Колекція знаходиться за slug у вашому простору
- Завантажуються секрети, обмежені вказаним середовищем
- Секрети на рівні колекції (без середовища) включаються як значення за замовчуванням
- Секрети, специфічні для середовища, перевизначають секрети на рівні колекції з тим самим іменем
- Посилання на секрети всередині значень розв’язуються
- Імена секретів перетворюються у формат змінної середовища: великі літери, не буквено-цифрові символи стають підкресленнями
Stripe Secret Key стає STRIPE_SECRET_KEY.
Кожен секрет має режим тіла, який визначає, як він вводиться:
- Секрети
string(ключі API, токени, URI) вводяться як звичайні скалярні рядки - Секрети
json(структурована конфігурація) вводяться як рядки JSON - Секрети
fields(облікові дані для входу, типізовані мішки полів) вводяться як рядки JSON
Коли вводяться секрети
Посилання на шаблони
Значення секретів можуть посилатися на інші поля секретів з тим самим синтаксисом, який Kazzle використовує в інших місцях:${secret.<uuid>.<field>}— конкретне поле або шлях JSON всередині значень секретів або параметрів інструменту, де увімкнено посилання на сейф.${secret.<uuid>}— все тіло секрету. Використовуйте лише коли інструмент явно запитує весь сирий секрет; не використовуйте це в конфігурації/середовищі додатку.