From d915f70691aebcf0d01268784f393304514543ab Mon Sep 17 00:00:00 2001 From: "pavel.korolkov" Date: Fri, 23 Oct 2026 17:45:37 +0500 Subject: [PATCH] docs: Add datasource sync process step --- .../admin/datasources/overview.ru.md | 14 ++++- .../admin/examples/service-autoupdates.ru.md | 4 +- .../admin/processes/overview.ru.md | 53 ++++++++++++++----- .../documentation/release-notes/v1.8.0.ru.md | 9 +++- 4 files changed, 62 insertions(+), 18 deletions(-) diff --git a/content/documentation/admin/datasources/overview.ru.md b/content/documentation/admin/datasources/overview.ru.md index 9b279f0..52c2f59 100644 --- a/content/documentation/admin/datasources/overview.ru.md +++ b/content/documentation/admin/datasources/overview.ru.md @@ -171,7 +171,17 @@ metadata: При включённом параметре «Периодическая синхронизация» источник данных будет автоматически обновлять информацию из внешних инфраструктурных систем с интервалом, определённым в параметре «Периодичность запуска». -Также каждый источник данных может быть синхронизирован вручную в любой момент времени через веб-интерфейс (пункт «Синхронизировать» в меню источника данных), либо через API. +Также каждый источник данных может быть синхронизирован вручную в любой момент времени через веб-интерфейс (пункт «Синхронизировать» в меню источника данных), либо через API. Синхронизацию также запускают действия, автоматизации, MCP-сервер портала и элемент процесса [«Источник данных»](../../processes/overview/#источник-данных). + +### Запуски синхронизации + +Каждая синхронизация — это запуск со статусом «В очереди», «Выполняется», «Успешно» или «Ошибка». Источники данных одного ресурса синхронизируются по очереди. Если у источника уже есть запуск в очереди, новая синхронизация присоединяется к нему. + +После нажатия «Синхронизировать» отображается уведомление «Синхронизация «{name}» поставлена в очередь». Пока запуск не завершён, на карточке источника данных отображается строка «Текущая синхронизация» с его статусом. + +Чтобы посмотреть историю запусков, выберите в меню источника данных «Запуски источника данных». Новые запуски отображаются сверху, для каждого — «Статус» (текст ошибки — во всплывающей подсказке), «Поставлен в очередь», «Дата старта», «Дата завершения» и «Длительность». Кнопка «Лог синхронизации» открывает лог запуска, кнопка «Запросы» — окно «Запросы на синхронизацию»: кто запросил запуск или присоединился к нему («Время запроса», «Откуда», «Кто запросил», «Если источник занят») и «Итог» — «Создал запуск» или «Присоединился к запуску». + +Если воркер остановился посреди синхронизации, примерно через 2 минуты запуск получает статус «Ошибка». ## Удаление сущностей @@ -197,7 +207,7 @@ metadata: ## Логирование запусков -Для каждого запуска источника данных создаётся запись в базе данных (БД), содержащая полный лог выполнения. Максимальное количество подобных записей регулируется параметром «максимальное количество записей» в конфигурации источника данных. При достижении максимального количества старые записи будут удаляться. +Для каждого запуска источника данных создаётся запись в базе данных (БД), содержащая полный лог выполнения. Максимальное количество подобных записей регулируется параметром «максимальное количество записей» в конфигурации источника данных. При достижении максимального количества старые записи будут удаляться. Запуски, которые ещё выполняются или которых ждёт незавершённый процесс, не удаляются. Параметр модуля `datasources.logging.enabled` позволяет выводить в stdout или скрывать логи синхронизации источников данных. При значении `true` логи выводятся в stdout, при значении `false` (по умолчанию) — не выводятся. Параметр задаётся в ModuleConfig `development-platform` (`spec.settings.datasources.logging.enabled`) или в настройках модуля в веб-интерфейсе Deckhouse Platform. diff --git a/content/documentation/admin/examples/service-autoupdates.ru.md b/content/documentation/admin/examples/service-autoupdates.ru.md index ccb2d33..b3172c7 100644 --- a/content/documentation/admin/examples/service-autoupdates.ru.md +++ b/content/documentation/admin/examples/service-autoupdates.ru.md @@ -627,8 +627,8 @@ values: {{ .template_values | nindent 4 }} На вкладке «Конфигурация» настройте шаги процесса и их порядок выполнения. Названия задач и действий приведены в качестве примера. -1. Добавьте элемент типа «Задача» с названием «Создать проект в GitLab» и выберите действие «Создать проект в GitLab» для запуска. -1. Добавьте элемент типа «Задача» с названием «Создать репозиторий из шаблона» и выберите действие «Создать репозиторий из шаблона» для запуска. +1. Добавьте элемент типа «Действие» с названием «Создать проект в GitLab» и выберите действие «Создать проект в GitLab» для запуска. +1. Добавьте элемент типа «Действие» с названием «Создать репозиторий из шаблона» и выберите действие «Создать репозиторий из шаблона» для запуска. 1. Добавьте элемент типа «Конец» для завершения процесса. После добавления всех элементов настройте последовательность выполнения: diff --git a/content/documentation/admin/processes/overview.ru.md b/content/documentation/admin/processes/overview.ru.md index 6743291..9cafc84 100644 --- a/content/documentation/admin/processes/overview.ru.md +++ b/content/documentation/admin/processes/overview.ru.md @@ -13,12 +13,13 @@ description: Создание и запуск процессов — элеме Процесс состоит из различных типов элементов: * «Начало» — точка входа в процесс. -* «Задача» — выполнение конкретного действия. +* «Действие» — выполнение конкретного действия. * «AI-агент» — отправка задачи AI-агенту и запись его ответа в хранилище процесса. * «Эксклюзивный шлюз» — условное ветвление. * «Параллельный шлюз» — объединение нескольких веток процесса в одну. * «Цикл» — повторение части процесса фиксированное число раз или обход JSON-массива из хранилища. * «Шаблон» — вычисление Go-шаблона и запись результата в хранилище процесса. +* «Источник данных» — синхронизация источников данных и ожидание её окончания. * «Таймер» — пауза до заданного момента времени. * «Примечание» — текстовый блок. * «Ошибка» — немедленная остановка процесса со статусом `Failed`. @@ -52,13 +53,13 @@ description: Создание и запуск процессов — элеме Чтобы добавить элементы на схему: -1. Добавьте элемент, выбрав его тип на панели редактора. Элементы сгруппированы на панели по назначению: «Поток» («Начало», «Конец», «Ошибка»), «Работа» («Задача», «AI-агент», «Шаблон»), «Ветвление» (шлюзы), «Время» («Таймер», «Цикл») и «Разметка» («Примечание»). +1. Добавьте элемент, выбрав его тип на панели редактора. Элементы сгруппированы на панели по назначению: «Поток» («Начало», «Конец», «Ошибка»), «Работа» («Действие», «AI-агент», «Шаблон», «Источник данных»), «Ветвление» (шлюзы), «Время» («Таймер», «Цикл») и «Разметка» («Примечание»). 1. Настройте параметры элемента в боковой панели (действие, условия и др.). 1. Свяжите элементы друг с другом. #### Типы элементов -##### Задача +##### Действие Каждая задача — это запуск конкретного действия, созданного ранее в разделе «Самообслуживание» → «Действия». @@ -182,7 +183,7 @@ AI-провайдер ищется по названию среди провай Ветки эксклюзивного шлюза могут вести к общему элементу, параллельные ветки — к общему элементу «Ошибка». -При сохранении портал также проверяет связность схемы: путь от элемента «Начало» до элемента «Конец», связи циклов и таймеров, настройки элементов «Цикл», «Таймер», «Шаблон» и «AI-агент», например число итераций и часовой пояс. Процесс с ошибкой в схеме не сохраняется, причина указывается в сообщении об ошибке. Запуск процесса, сохранённого с такой ошибкой ранее, отклоняется с той же причиной; сохранить такой процесс можно, только исправив схему. +При сохранении портал также проверяет связность схемы: путь от элемента «Начало» до элемента «Конец», связи циклов и таймеров, настройки элементов «Цикл», «Таймер», «Шаблон», «AI-агент» и «Источник данных», например число итераций и часовой пояс. Процесс с ошибкой в схеме не сохраняется, причина указывается в сообщении об ошибке. Запуск процесса, сохранённого с такой ошибкой ранее, отклоняется с той же причиной; сохранить такой процесс можно, только исправив схему. Параллельный шлюз также может использоваться для разделения веток, если подключается после элементов «Эксклюзивный шлюз» или «Цикл», либо в качестве вспомогательного элемента для повышения читаемости схемы процесса. @@ -241,6 +242,34 @@ AI-провайдер ищется по названию среди провай Примеры и ограничения — в разделе [«Хранилище процесса»](store/#элемент-шаблон). +##### Источник данных + +Элемент «Источник данных» запускает синхронизацию выбранных [источников данных](../../datasources/overview/#синхронизация) и продолжает процесс, когда все синхронизации закончатся. + +В конфигурации элемента задаются поля: + +| Поле | Обязательность | Описание | +| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| «Источники данных» | **да** | Источники, которые синхронизирует шаг. Источники синхронизируются одновременно: если один источник создаёт связи на сущности другого, поставьте их в разные шаги друг за другом | +| «Если источник уже синхронизируется» | **да** | Что делать, если источник уже синхронизируется по расписанию, вручную или другим процессом | +| «Таймаут (секунды)» | нет | Сколько ждать окончания синхронизаций. 0 — без ограничения | + +Варианты поля «Если источник уже синхронизируется»: + +- «Нужны свежие данные» — шаг ждёт синхронизацию, которая начнёт читать источник после того, как процесс дошёл до шага. Если источник уже синхронизируется, шаг ставит новую синхронизацию в очередь за текущей. +- «Подождать текущую синхронизацию» — шаг засчитывает синхронизацию, которая уже идёт или стоит в очереди. +- «Завершить с ошибкой» — если хотя бы один источник уже синхронизируется, шаг сразу получает статус `Failed` и не запускает синхронизацию ни одного источника. + +Шаг получает статус `Completed`, если все синхронизации завершились успешно, и `Failed`, если хотя бы одна завершилась ошибкой или источник удалён; в этом случае шаг дожидается остальных синхронизаций. Дальше процесс идёт так же, как после элемента [«Действие»](#действие): после ошибки он продолжается по исходящим связям, если из шага выходит связь к эксклюзивному шлюзу или связь с условием, иначе ветка процесса на этом шаге завершается. Статус шага проверяется в шлюзе через `{{ .prev_task.status }}`, в хранилище процесса шаг ничего не записывает. + +По истечении тайм-аута шаг получает статус `Timeout`, а синхронизация продолжается, и её данные попадут в каталог. + +Приостановка процесса и перезапуск портала не прерывают ожидание: шаг дожидается тех же синхронизаций. При повторном прохождении шага, например на новой итерации цикла, и при перезапуске процесса синхронизации запускаются заново. + +На схеме запуска в боковой панели шага поле «Запуски синхронизации» показывает статус синхронизации каждого источника, а кнопка «Лог синхронизации» открывает её лог. На вкладке «Лог выполнения» шага видно, какую синхронизацию шаг получил для каждого источника и чем она закончилась. + +Процесс с шагом без источников или с источником, которого нет, не сохраняется. + ##### Таймер Элемент «Таймер» приостанавливает выполнение процесса до наступления заданного момента времени, после чего активируется следующий элемент. @@ -368,8 +397,8 @@ AI-провайдер ищется по названию среди провай * `Unapproved` — в процессе не осталось другой работы, кроме задач, ожидающих согласования действия. Пока в соседней ветке выполняется шаг «AI-агент» или ожидает таймер, запуск остаётся в статусе `Running` или `Wait`. * `Paused` — выполнение процесса приостановлено. * `Resuming` — запуск восстанавливается после перезапуска портала. -* `Completed` — все ветки процесса завершились, процесс дошёл до элемента «Конец», и каждая ошибка обработана: после задачи или шага «AI-агент», завершившихся ошибкой, или отклонённой задачи ветку продолжил эксклюзивный шлюз или параллельный шлюз, который принимает любой финальный статус. -* `Partially Completed` — процесс дошёл хотя бы до одного элемента «Конец», но часть веток остановилась: на задаче или шаге «AI-агент», которые завершились ошибкой без обработки, на отклонённой задаче без обработки, на шаге, который отменил пользователь, или на параллельном шлюзе, который завершился ошибкой. Статус ставится, когда в запуске не осталось выполняющихся шагов: пока другая ветка работает, например ждёт согласования, запуск остаётся в статусе `Running`, `Unapproved` или `Wait`. +* `Completed` — все ветки процесса завершились, процесс дошёл до элемента «Конец», и каждая ошибка обработана: после задачи, шага «AI-агент» или «Источник данных», завершившихся ошибкой, или отклонённой задачи ветку продолжил эксклюзивный шлюз или параллельный шлюз, который принимает любой финальный статус. +* `Partially Completed` — процесс дошёл хотя бы до одного элемента «Конец», но часть веток остановилась: на задаче, шаге «AI-агент» или «Источник данных», которые завершились ошибкой без обработки, на отклонённой задаче без обработки, на шаге, который отменил пользователь, или на параллельном шлюзе, который завершился ошибкой. Статус ставится, когда в запуске не осталось выполняющихся шагов: пока другая ветка работает, например ждёт согласования, запуск остаётся в статусе `Running`, `Unapproved` или `Wait`. * `Failed` — процесс завершился с ошибкой: ни один элемент «Конец» не достигнут или процесс дошёл до элемента «Ошибка». * `Canceled` — пользователь остановил или отменил запуск. Этот же статус получает запуск, который не дошёл ни до одного элемента «Конец», если его ветки остановились только на шагах, отменённых пользователем. @@ -439,10 +468,10 @@ AI-провайдер ищется по названию среди провай Типовая схема процесса: 1. «Начало» — запуск процесса. -1. «Задача» — создание проекта в GitLab. +1. «Действие» — создание проекта в GitLab. 1. «Эксклюзивный шлюз» — проверка успешности создания. -1. «Задача» (при успехе) — настройка переменных проекта. -1. «Задача» (при ошибке) — отправка уведомления об ошибке. +1. «Действие» (при успехе) — настройка переменных проекта. +1. «Действие» (при ошибке) — отправка уведомления об ошибке. 1. «Конец» — завершение процесса. ### Развёртывание приложения @@ -451,10 +480,10 @@ AI-провайдер ищется по названию среди провай 1. «Начало» — запуск процесса развёртывания. 1. «Параллельный шлюз» — разделение на ветки. -1. «Задача» (ветка 1) — создание неймспейса в Kubernetes. -1. «Задача» (ветка 2) — создание секретов в Vault. +1. «Действие» (ветка 1) — создание неймспейса в Kubernetes. +1. «Действие» (ветка 2) — создание секретов в Vault. 1. «Параллельный шлюз» — ожидание завершения обеих веток. -1. «Задача» — развёртывание приложения. +1. «Действие» — развёртывание приложения. 1. «Конец» — завершение процесса. ## Ограничения diff --git a/content/documentation/release-notes/v1.8.0.ru.md b/content/documentation/release-notes/v1.8.0.ru.md index b8b2a63..636e4d8 100644 --- a/content/documentation/release-notes/v1.8.0.ru.md +++ b/content/documentation/release-notes/v1.8.0.ru.md @@ -1,7 +1,7 @@ --- title: v1.8.0 weight: 880 -description: Заметки о выпуске v1.8.0 — новая страница сущности, проверка обязательных параметров в форме сущности, исправления движка процессов и статусов запусков, настраиваемый тайм-аут шагов, разрешения на управление запусками. +description: Заметки о выпуске v1.8.0 — новая страница сущности, проверка обязательных параметров в форме сущности, элемент процесса «Источник данных» и статусы синхронизаций источников, исправления движка процессов и статусов запусков, настраиваемый тайм-аут шагов, разрешения на управление запусками. --- {{< alert level="info" >}} @@ -28,8 +28,13 @@ description: Заметки о выпуске v1.8.0 — новая страни ### Процессы -- У задачи, шага «AI-агент» и параллельного шлюза появилось поле «Таймаут (секунды)». Без значения шаг ждёт 60 минут и получает статус `Timeout`. Подробнее — в разделе [«Задача»](../admin/processes/overview/#задача). +- У задачи, шага «AI-агент» и параллельного шлюза появилось поле «Таймаут (секунды)». Без значения шаг ждёт 60 минут и получает статус `Timeout`. Подробнее — в разделе [«Действие»](../admin/processes/overview/#действие). - Схема нового процесса настраивается сразу при создании: вкладки «Конфигурация» и «Параметры» доступны до первого сохранения, процесс открывается со схемой «Начало → Конец». +- Новый элемент процесса [«Источник данных»](../admin/processes/overview/#источник-данных) запускает синхронизацию выбранных источников данных и продолжает процесс после её окончания. + +### Источники данных + +У синхронизации появился статус: текущая синхронизация отображается на карточке источника данных, а в истории запусков — статус, время и кто запросил синхронизацию. Подробнее — в разделе [«Запуски синхронизации»](../admin/datasources/overview/#запуски-синхронизации). ## Исправления