diff --git a/content/documentation/release-notes/v1.4.0.ru.md b/content/documentation/release-notes/v1.4.0.ru.md index df5bf79..ad2b17a 100644 --- a/content/documentation/release-notes/v1.4.0.ru.md +++ b/content/documentation/release-notes/v1.4.0.ru.md @@ -57,6 +57,10 @@ CREATE EXTENSION IF NOT EXISTS pg_trgm; - **Wait** — добавлено действие для паузы на заданное время ([подробнее](../../admin/actions/types/#wait)). +### Шаблонизация + +- Добавлена встроенная функция `jwtSign` для формирования подписанного JWT в Go template ([подробнее](../../user/templating/#jwtsign)). + ### Ролевая модель - Добавлен пресет роли «Platform engineer» ([подробнее](../../admin/security/rbac/#пресет-platform-engineer)). diff --git a/content/documentation/user/templating.ru.md b/content/documentation/user/templating.ru.md index 273803c..9c94eb1 100644 --- a/content/documentation/user/templating.ru.md +++ b/content/documentation/user/templating.ru.md @@ -261,6 +261,28 @@ title: Шаблонизация {{ decodeUnicode "\u0048\u0065\u006c\u006c\u006f" }} // Вывод: "Hello" ``` +### jwtSign + +`jwtSign` формирует подписанный JWT по переданным claims, ключу подписи и алгоритму. + +Параметры: + +* `claims` — карта или JSON-строка. Стандартные поля: «sub», «iss», «aud», «exp», «iat», «nbf». +* `signingKey` — ключ подписи: для HS256/HS384/HS512 строка-секрет, для RS256/ES256 и др. — PEM закрытого ключа. +* `algorithm` — алгоритм подписи: HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256 и др. +* `headers` — заголовки JWT (опционально): карта или JSON-строка, например «kid», «cty». Пустая строка или пустая карта — заголовки не задаются. + +Возвращает: + +* Строку с подписанным JWT. +* Ошибку при неверных параметрах или ключе. + +Примеры в шаблоне: + +```go +{{ jwtSign (dict "sub" "user-123" "iss" "ddp") .credentials.secret "HS256" "" }} +``` + ## Глобальные переменные Глобальные переменные — общие переменные, которые могут быть переиспользованы в шаблонизации при запуске действий.