---
url: https://docs.ogmabox.com/ru/app/workflows.md
description: >-
  Создавайте повторно используемые рабочие процессы Ogma для пассивной
  обработки, активных действий и преобразования данных.
---

# Сценарии {#workflows}

Рабочие процессы — повторно используемые цепочки автоматизации, обрабатывающие перехваченный трафик, выполняющие активные шаги или преобразующие данные без отдельных скриптов.

## Типы сценариев {#workflow-types}

| Тип | Что запускает | Типичное применение |
|------|-------------|------------|
| Passive | Новый перехваченный трафик | Отмечать интересные шаблоны, тегировать запросы, автоматически создавать результаты. |
| Active | Ручной запуск | Отправлять дополнительные запросы, связывать действия, выполнять многошаговые тесты. |
| Convert | Тестовый ввод, действия преобразования или Match & Replace | Преобразовывать текст или байты, например форматировать JavaScript или нормализовать JSON. |

Пассивные рабочие процессы непрерывно работают в фоне. Активные запускаются по запросу для выбранного набора запросов.

## Полотно рабочего процесса {#the-workflow-canvas}

Откройте **Сценарии** и выберите рабочий процесс, чтобы открыть полотно.

* Узлы находятся в центре. У каждого есть типизированные входные и выходные порты.
* Соединяйте выходной порт с входным перетаскиванием.
* Нажмите узел, чтобы открыть настройки справа.
* Верхняя панель содержит запуск, включение и отключение, импорт и экспорт.

## Типы узлов {#node-types}

| Узел | Описание |
|------|-------------|
| Начало / конец | Узлы входа и выхода, соответствующие пассивному, активному или преобразующему типу. |
| Условия | If / Else, If / Else JS, HTTPQL Match, Scope Match, String Contains и Regex Match. |
| Кодирование | Кодирование и декодирование Base64, URL, Hex и HTML. |
| Форматирование и хеши | JSON Minify/Prettify, MD5, SHA-1 и SHA-256. |
| Операции с текстом | Trim, Join, Split, Match & Replace, JQ Transform и Grep Extract. |
| JavaScript | Своя логика через SDK рабочего процесса; может читать трафик, работать с файлами и создавать результаты. |
| Интеграция | Log, Webhook, Invoke Workflow, Send Request и Match & Replace Rule. |

Фактические порты и настройки смотрите в палитре узлов. Нажмите соединение для работы с ним, вместо удаления узла ради переподключения графа. Сохраняйте кнопкой **Сохранить** или **Ctrl+S** (Command+S на macOS).

## Совместное использование и область {#sharing-and-scope}

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

## Проверка перед использованием на текущем трафике {#testing-before-live-use}

У пассивных и активных рабочих процессов есть раздел **Проверка HTTP** с URL и тестовыми запросом и ответом в полном HTTP-формате. Включите рабочий процесс, заполните поля и нажмите **Проверить сценарий**. Тест сохраняет изменения перед выполнением. Тестовые значения сохраняются для каждого рабочего процесса при переходах между страницами.

У рабочего процесса Convert вместо этого есть **Тестовый ввод** и вывод. Начните с небольшого характерного примера, затем проверьте ресурс реалистичного размера. Тестовые данные не делают произвольный JavaScript или узлы Send Request безвредными: код по-прежнему может выполнять настроенные действия.

### JavaScript и файлы {#javascript-and-files}

JavaScript рабочих процессов поддерживает SDK Ogma и совместимые импорты `fs`/`path`. Используйте `sdk.fs.readFile`, `writeFile`, `appendFile`, `exists`, `readDir`, `mkdir` и `unlink` для файлов, а `sdk.path` — для путей с учётом платформы. Это помощники Ogma, а не вся стандартная библиотека Node.js.

Для экспорта ресурса прочитайте `response.getBody().toText()`, выберите место через `sdk.path.join`, создайте родительский каталог и проверьте `sdk.fs.exists`, если не хотите перезаписывать файл. Проверяйте пути перед выполнением: файловые помощники рабочих процессов работают на хосте Ogma, в отличие от `sdk.fs` плагина с частным каталогом. Эту отдельную среду см. в [SDK плагинов](../plugins/README.md#sdk-fs).

## Импорт рабочего процесса {#importing-a-workflow}

1. Нажмите **Импорт** на панели **Сценарии**.
2. Выберите JSON-файл рабочего процесса.
3. Рабочий процесс откроется на полотне. Проверьте настройки узлов перед включением.
4. Сохраните рабочий процесс.

Экспортированные JSON-файлы можно передавать между установками Ogma или хранить в системе контроля версий.

## Запуск рабочего процесса на сохранённой истории {#running-a-workflow-on-captured-history}

Активные рабочие процессы можно повторно запускать для ранее перехваченных запросов.

1. Откройте рабочий процесс.
2. Нажмите **Выполнить для истории**.
3. В диалоге сканирования истории при желании задайте фильтр HTTPQL для ограничения обрабатываемых запросов.
4. Нажмите **Запустить**.

Проверьте число совпадений и запустите задание. Ход выполнения и ошибки видны в задании сканирования и, при включённом журналировании, в истории запусков. Пассивные рабочие процессы предлагают **Сканировать историю** и **Повторить для запроса** для ретроспективной обработки.

Для нескольких интересных ресурсов выберите строки истории HTTP, нажмите правой кнопкой, выберите **Отправить в сценарий** и включённый активный сценарий. Это передаст выбранные записи без изменения определения и обработки всей истории.

Кнопка **Помощь ИИ** рядом с фильтром сканирования истории создаёт выражение HTTPQL из обычного описания.

## Запуски и результаты сценариев {#workflow-runs-and-results}

Установите флажок **Включить журналирование** в настройках, когда нужны подробности выполнения. Журналирование действует для Passive, Active и Convert, включая преобразования Match & Replace. При отключении обработка продолжается без журналов запусков и шагов; для диагностики включите его и повторите тест.

* Нажмите запуск для просмотра вывода каждого узла.
* Узлы с ошибками подсвечиваются.
* Созданные результаты проверки безопасности появляются в разделе [Находки](./findings.md).
* Извлечённые переменные видны на панели сведений о шаге.

**Очистить всё** удаляет сохранённую историю запусков выбранного рабочего процесса. Скачайте журналы перед очисткой, если нужно сохранить доказательства для отладки. Журналирование может сохранять большие данные, например полные тела скриптов, поэтому отключайте его для массовых преобразований, если оно не требуется.

## Включение пассивного рабочего процесса {#enabling-a-passive-workflow}

1. Откройте рабочий процесс.
2. Убедитесь, что схема полностью настроена (нет несоединённых обязательных портов).
3. Включите **Включено** на панели.

Включённые пассивные рабочие процессы автоматически обрабатывают новый трафик. Отключите рабочий процесс для приостановки без удаления.

## Связанные страницы {#related-pages}

* [Находки](./findings.md)
* [Окружение](./environment.md)
* [HTTPQL и StreamQL](../reference/httpql.md)
