Command Palette

Search for a command to run...

События Модуля интеграций

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

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

События

integration.updated

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

Данные события выглядят так:

1{
2 provider_id: string
3 change: "update" | "enabled" | "disabled" | "delete"
4 actor: { type: string, id: string | null } | null
5 fields?: string[]
6}

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

integration.tested

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

Данные события выглядят так:

1{
2 provider_id: string
3 status: "passed" | "failed" | "skipped"
4 message?: string
5 actor: { type: string, id: string | null } | null
6}

и содержат результат проверки. У проверки из Admin в указан пользователь Admin. У ежедневной проверки равен .


Подписка на событие

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

src/subscribers/integration-tested.ts
1import type { SubscriberArgs, SubscriberConfig } from "@medusajs/framework"
2
3type IntegrationTestedData = {
4 provider_id: string
5 status: "passed" | "failed" | "skipped"
6 message?: string
7}
8
9export default async function integrationTestedHandler({
10 event: { data },
11 container,
12}: SubscriberArgs<IntegrationTestedData>) {
13 if (data.status !== "failed") {
14 return
15 }
16
17 const logger = container.resolve("logger")
18 logger.warn(`Integration ${data.provider_id} failed its connection test: ${data.message ?? "no message"}`)
19}
20
21export const config: SubscriberConfig = {
22 event: "integration.tested",
23}

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

Материалы

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