Що таке секрети для сценаріїв?
Секрети для сценаріїв — зашифроване сховище на рівні інстансу для секретів, які потрібні діям у сценаріях (передусім HTTP-запити Send Request і custom actions з Бібліотеки дій).
Навіщо окреме сховище
Раніше токени та паролі часто зберігали в параметрах нод, константах бота або коді custom actions. Це ускладнювало:
- Ротацію — доводилось шукати ключ у всіх місцях.
- Експорт/імпорт — секрети могли потрапити в JSON сценарію.
- Контроль доступу — важко обмежити, хто бачить ключ у відкритому вигляді.
Тепер сценарій зберігає посилання на запис секрету. Розшифрування відбувається лише на сервері під час виконання дії.
Що можна зберігати
Типи записів у v1:
| Тип | Типове використання |
|---|---|
| Bearer | Authorization: Bearer … |
| Basic | Login + password |
| API key | Ключ у header, query або body |
| Custom headers | Довільні секретні заголовки |
| OAuth2 client credentials | token_url, client_id, client_secret |
| SMTP | host, port, user, password |
| Telegram bot | bot token |
| HMAC secret | підпис запитів |
| Generic secret | лише root; довільні поля для custom actions |
Чого тут немає (v1)
- Токени каналів (Telegram-бот як канал, Viber, WhatsApp тощо).
- Ключі Mailgun і AI-провайдерів.
- OAuth-акаунти пошти (Gmail/Outlook).
- Плейсхолдери на кшталт
{{secrets.NAME}}у текстах сценарію. - Автоматичне перенесення всіх старих constants у сховище секретів.
Ці облікові дані залишаються у своїх розділах продукту.
Як це пов’язано з Send Request
- Адміністратор створює запис у Налаштування → Секрети для сценаріїв.
- Інтегратор у Scenario Builder у ноді Send Request вставляє посилання на секрет у URL, заголовки або body (Вставити посилання на секрет, Вставити auth header).
- У сценарії зберігається текстовий маркер посилання, не значення секрету.
- Старі ноди з полем Credential (список) або Basic/Bearer продовжують працювати без змін.
Custom actions (Action Jail)
- Параметри типу Credential у JSON-конфігу дії — інтегратор обирає запис зі списку в Scenario Builder без вводу секрету вручну.
- У коді custom action автор викликає серверні helpers для отримання заголовків або окремих полів секрету під час виконання — значення не показуються в редакторі. Готові фрагменти коду є в Секрети для сценаріїв → Сканувати застарілі секрети (вкладка Кастомні дії (Action Jail)).
- Якщо параметри дії містять HTTP-поля з маркерами посилання (як у Send Request), автор явно обробляє їх перед відправкою запиту — автоматично це працює лише в ноді Send Request.
- Детальніше: Використати секрет у custom action Action Jail.
Безпека та права
- Список у UI показує лише метадані і маскований зразок (
Bearer ***). - Дозволені споживачі обмежує, які дії можуть використати запис (наприклад, лише Send Request).
- Видалення заблоковано, поки запис використовується в сценарії (включно з inline-посиланнями).
- Можливість увімкнена адміністратором інстансу; без цього вкладка і кнопки вставки не з’являються.
Імпорт сценаріїв
При імпорті система намагається знайти запис з таким самим slug на цільовому інстансі. Inline-маркери та legacy-посилання за slug зіставляються по slug. Якщо запису немає — попередження; створіть запис вручну. Майстра автоматичного мапінгу між інстансами немає.