Секреты
Kazzle имеет встроенное зашифрованное хранилище для сохранения API-ключей, учетных данных базы данных, токенов и других конфиденциальных значений, необходимых вашему приложению. Секреты зашифрованы в покое с помощью AES-256-GCM с использованием ключей шифрования данных, обернутых KMS — открытые значения никогда не попадают в базу данных.Концепции
Коллекции группируют связанные секреты вместе (например,stripe-keys, database-credentials). Каждая коллекция имеет slug (строчные буквы, через дефис), на который вы ссылаетесь в файлах конфигурации и командах CLI.
Окружения — это необязательные области видимости в коллекции (например, production, staging). Секреты могут быть привязаны к конкретному окружению или оставлены на уровне коллекции как значения по умолчанию.
Порядок разрешения: при разрешении секретов для данной коллекции + окружения секреты, специфичные для окружения, переопределяют секреты уровня коллекции с тем же именем. Это позволяет вам делиться большинством секретов между окружениями, переопределяя конкретные значения для каждого окружения.
Управление секретами
В приложении
Откройте Settings > Vault для создания коллекций, окружений и секретов через интерфейс.С помощью ИИ
ИИ может создавать коллекции, создавать окружения, сохранять секреты, перемещать их между областями видимости и удалять их для вас. ИИ видит имена секретов и метаданные, но не зашифрованные значения.С помощью 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>}— все тело секрета. Используйте только когда инструмент явно запрашивает весь необработанный секрет; не используйте это в конфигурации/окружении приложения.