Command Palette

Search for a command to run...

Воркфлоу Модуля интеграций

В этом справочнике перечислены воркфлоу и шаги, которые экспортирует Модуль интеграций. Их запускают собственные API-роуты Admin модуля, и ваш код тоже может их запускать, например из API-роута, подписчика или собственного воркфлоу.

Внимание: 

Меняйте настройки интеграций только через эти воркфлоу. Запись через сервис модуля обходит валидацию, шифрование, сброс кэша и историю изменений, подробнее на странице Сервис Модуля интеграций.

Пути импорта

Все воркфлоу с этой страницы экспортируются из корня пакета, , вместе с типами их входных данных, например . Из шагов корень пакета экспортирует только . Все воркфлоу и шаги с этой страницы экспортируются из подпути .

Например, собственный воркфлоу, который одним из шагов выключает интеграцию:

src/workflows/disable-my-integration.ts
1import { createWorkflow, WorkflowResponse } from "@medusajs/framework/workflows-sdk"
2import { setIntegrationEnabledWorkflow } from "@gorgo/medusa-integration"
3
4export const disableMyIntegrationWorkflow = createWorkflow(
5 "disable-my-integration",
6 () => {
7 const integration = setIntegrationEnabledWorkflow.runAsStep({
8 input: { provider_id: "int_my", is_enabled: false },
9 })
10
11 return new WorkflowResponse(integration)
12 }
13)

запускает воркфлоу модуля как шаг вашего. Во входных данных нет , поэтому история изменений запишет изменение с типом автора . Если следующий шаг вашего воркфлоу упадёт, интеграция вернётся в прежнее состояние, а её запись в истории будет удалена.

Внимание: 

Откат есть только у шагов и . Если вы запустили , или как шаг собственного воркфлоу и следующий шаг упал, сохранённые параметры, удаление и остаются, а запись в истории удаляется. В итоге изменение может остаться без записи в истории изменений. Что делает при откате каждый шаг, описано в разделе Шаги.


Воркфлоу

Каждый воркфлоу ниже, кроме , заканчивается шагом , который отправляет событие воркфлоу, когда выполнились все предыдущие шаги. Если запуск падает раньше, например с ошибкой или , событие не отправляется, а откат не отправляет второе событие.

upsertIntegrationWorkflow

Сохраняет значения параметров инстанса интеграции. При первом сохранении создаёт запись, а дальше обновляет её. Именно этот воркфлоу выполняется, когда в Admin сохраняют секцию. Шаги идут в таком порядке.

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

Loading...

Воркфлоу проверяет записываемые параметры по сохранённой конфигурации с наложенными новыми значениями, шифрует секреты и сохраняет запись. Затем он записывает в историю изменение или , если что-то изменилось, и отправляет событие . Возвращает сохранённую запись , в которой секреты зашифрованы.

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

setIntegrationEnabledWorkflow

Включает или выключает настроенную интеграцию. Шаги идут в таком порядке.

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

Loading...

Воркфлоу меняет у сохранённой записи, записывает в историю изменение или , если интеграция ещё не была в этом состоянии, и отправляет событие . Возвращает обновлённую запись. Завершается ошибкой , если у интеграции ещё нет сохранённой записи, потому что до первого сохранения включать нечего. Если следующий шаг падает, прежнее состояние восстанавливается.

deleteIntegrationWorkflow

Удаляет сохранённые настройки инстанса интеграции. Провайдер остаётся зарегистрированным, а интеграция снова показывается как ненастроенная. Шаги идут в таком порядке.

Запись в истории пропускается, если удалять было нечего, а событие отправляется в любом случае.

Loading...

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

testIntegrationConnectionWorkflow

Запускает проверку соединения, которую объявляет дескриптор провайдера. Шаги идут в таком порядке.

Шаг проверки сохраняет , только если у интеграции есть сохранённая запись, а событие отправляется при любом результате.

Loading...

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

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

Для каждого из этих результатов воркфлоу отправляет событие . Что Admin показывает для каждого статуса, описано в разделе Проверка соединения.

Запланированная задача модуля запускает этот воркфлоу каждый день в 03:00 для каждой включённой интеграции, провайдер которой объявляет проверку, с автором . В их число входит и включённая, но ещё не завершённая интеграция, которая получает с текстом .

getResolvedIntegrationOptionsWorkflow

Получает параметры инстанса интеграции так же, как и метод сервиса .

Loading...

Воркфлоу возвращает или , если интеграция не настроена, выключена или не заполнена. Если под этими идентификатором и инстансом не зарегистрирован ни один провайдер, он бросает исключение. Когда его использовать, читайте в руководстве Чтение параметров.


Шаги

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

Материалы

Изменено 12 ноября 2026 г.·Редактировать страницу