Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions content/documentation/admin/actions/overview.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@ weight: 10

Действие может выполняться с использованием одного из двух типов бэкенда:

- **Встроенный (BuiltIn)** — основная логика действия выполняется внутри платформы.
- **Встроенный** — основная логика действия выполняется внутри платформы.

> При выборе встроенного бэкенда необходимо указать конкретный тип встроенного действия. В зависимости от выбранного типа платформа автоматически формирует пример тела запроса и определяет перечень учетных данных, необходимых для выполнения действия.

- **Вебхук (Webhook)** — основная логика действия выполняется внешним сервисом, которому платформа отправляет HTTP-запрос.
- **Вебхук** — основная логика действия выполняется внешним сервисом, которому платформа отправляет HTTP-запрос.

#### Маскирование полей действия

Expand Down Expand Up @@ -195,6 +195,23 @@ Headers — HTTP-заголовки в формате ключ-значение,
* Источник: `{{ .response.id }}`.
* Параметр сущности: `repository_id`.

#### Запись в хранилище процесса

После выполнения действия результат записывается в поле **response**. В разделе **«Обновление»** конфигурации действия доступен блок **«Запись в хранилище процесса»**. Он применяется только при выполнении действия в рамках процесса: если заданы правила записи в хранилище, то после успешного выполнения действия значения по этим правилам записываются в хранилище.

В блоке задаётся список правил:

| Поле | Описание | Примеры |
|------|----------|---------|
| **Источник** | Строка Go-шаблона, в котором контекстом является **response** этого действия. Шаблон выполняется после успешного выполнения действия; результат (строка) записывается в хранилище. | `{{ .id }}` — получить поле id из ответа; `{{ .result.projectId }}` — получить вложенное поле projectId из result из ответа |
| **Ключ в хранилище** | Название ключа в хранилище процесса. Под этим ключом сохраняется значение из источника. | `projectId`, `deployJobId` |

Если правил нет (список пустой), при выполнении действия в процессе в хранилище ничего не записывается. Данные из хранилища можно использовать в последующих действиях того же процесса через плейсхолдеры `{{ .store.<ключ> }}`. Подробнее об использовании хранилища см. в разделе [«Хранилище процесса»](../processes/#хранилище-процесса).

{{< alert level="info" >}}
Запись в хранилище выполняется только после успешного выполнения действия.
{{< /alert >}}

#### Обновление учётных данных пользователя

После выполнения действия результат записывается в поле **response**. Если включена опция **обновление учётных данных пользователя**, то на основании данных из **response** действие автоматически обновляет учётные данные пользователя в соответствии с правилами обновления.
Expand Down
25 changes: 24 additions & 1 deletion content/documentation/admin/processes.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,30 @@ moduleStatus: experimental

На вкладке `Параметры` настраиваются параметры процесса, которые могут использоваться во всех действиях процесса.

Конфигурация и использование параметров процесса описаны в разделе [шаблонизация](../user/templating.html#параметры-процесса).
Конфигурация и использование параметров процесса описаны в разделе [шаблонизация](../user/templating/#параметры-процесса).

### Хранилище процесса

Хранилище процесса — это хранилище формата ключ-значение для передачи данных между действиями в процессе.

#### Основные характеристики

- **Одно хранилище на запуск процесса** — каждый запуск процесса имеет своё хранилище.
- **Плоские ключи** — в хранилище используются только логические ключи (например `projectId`, `deployJobId`).
- **Запись только по правилам** — в хранилище записывается только то, что задано в настройках действий, входящих в процесс (см. [«Запись в хранилище процесса»](../actions/overview/#запись-в-хранилище-процесса)). Если правил записи нет — в хранилище ничего не записывается.
- **Чтение через плейсхолдеры** — в конфигурации действий (URL, заголовки, body и т.д.) можно использовать Go-шаблоны вида `{{ .store.<ключ> }}` (см. [«Хранилище процесса»](../../user/templating/#хранилище-процесса)).

#### Как данные попадают в хранилище

1. Действие в процессе завершилось **успешно**.
2. У действия настроены правила «Запись в хранилище процесса».
3. Для каждого правила выполняется Go-шаблон из поля **Источник** с данными ответа действия; полученная строка записывается в хранилище под ключом, указанным в поле **Ключ в хранилище**.

Если для одного и того же ключа пишут несколько действий (или одно и то же действие при повторном запуске), **значение перезаписывается**.

#### Поведение при отсутствующих данных

Если **ключа нет** в хранилище (действие ещё не выполнялось, не имело правил записи или запись не произошла), при выполнении шаблона `{{ .store.<ключ> }}` действие завершится с ошибкой.

## Запуск процесса

Expand Down
2 changes: 1 addition & 1 deletion content/documentation/admin/workflows.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ moduleStatus: experimental

### Параметры сценария

Конфигурация и использование параметров сценария описаны в разделе [шаблонизация](../user/templating.html#параметры-сценария).
Конфигурация и использование параметров сценария описаны в разделе [шаблонизация](../user/templating/#параметры-сценария).
5 changes: 3 additions & 2 deletions content/documentation/release-notes/v1.3.0.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@ weight: 940
- **Jira. Задачи** — для просмотра задач в Jira ([подробнее](../../admin/widgets/types/#jira-задачи)).
- **Vault. Секреты** — для просмотра секретов в HashiCorp Vault или Deckhouse Stronghold ([подробнее](../../admin/widgets/types/#vault-секреты)).

### Действия
### Процессы и действия

Добавлена возможность отмены запущенных действий и процессов.
- Добавлен механизм обмена данными между действиями процесса: результаты выполнения действия можно записать в хранилище и использовать в последующих действиях ([подробнее](../../admin/processes/#хранилище-процесса)).
- Добавлена возможность отмены запущенных действий и процессов.

### Команды

Expand Down
28 changes: 28 additions & 0 deletions content/documentation/user/templating.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -497,3 +497,31 @@ title: Шаблонизация
{{ .workflow.notificationEmail }} // Email для уведомлений из параметров сценария
{{ .workflow.retryAttempts }} // Количество попыток повтора из параметров сценария
```

## Хранилище процесса

Хранилище доступно только в процессах и используется для передачи данных между действиями. В настройках действия задаются правила записи в хранилище (см. [«Запись в хранилище процесса»](../../admin/actions/overview/#запись-в-хранилище-процесса)), а в конфигурации последующих действий используются плейсхолдеры для чтения данных.

Для получения значения из хранилища используйте следующую конструкцию:

```go
{{ .store.<ключ> }}
```

где:

- `store` — указывает на то, что идет обращение к хранилищу процесса.
- `<ключ>` — название ключа в хранилище, под которым было сохранено значение (поле **Ключ в хранилище** в правилах записи).

Особенности использования:

- Хранилище доступно только в процессах, в обычных действиях и сценариях плейсхолдеры `{{ .store.* }}` не работают.
- Если ключа нет в хранилище (действие ещё не выполнялось, не имело правил записи или запись не произошла), действие завершится с ошибкой.
- Если для одного и того же ключа пишут несколько действий, остаётся последнее записанное значение.

Примеры использования:

```go
{{ .store.projectId }} // ID проекта из хранилища
{{ .store.orderRef }} // Референс заказа из хранилища
```
Loading