Skip to content

Система возможностей (Capabilities)

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

Что такое capability

Capability — это атомарная функция интеграции. Например, интеграция «Telegram Уведомления» может предоставлять несколько возможностей:

  • Уведомлять при смене статуса закупки
  • Уведомлять при создании нового счёта
  • Уведомлять при добавлении поставщика

Каждая из них включается или выключается отдельно.

Список возможностей платформы

CapabilityОписание
NOTIFY_ON_PROCUREMENT_STATUS_CHANGEУведомление при смене статуса закупки
NOTIFY_ON_INVOICE_CREATEDУведомление при создании счёта
NOTIFY_ON_PAYMENT_REGISTEREDУведомление при регистрации оплаты
NOTIFY_ON_REQUEST_CREATEDУведомление при создании заявки
CATALOG_SYNCСинхронизация номенклатуры с внешней системой
PRICE_IMPORTИмпорт прайс-листов поставщиков
ORDER_EXPORTЭкспорт заказов во внешнюю систему
INVOICE_EXPORTЭкспорт счетов
COUNTERPARTY_SYNCСинхронизация контрагентов
BANK_STATEMENT_IMPORTИмпорт банковских выписок
PAYMENT_STATUS_SYNCСинхронизация статусов оплат
DOCUMENT_SIGNПодписание документов ЭЦП
DOCUMENT_SENDОтправка документов по ЭДО
SHIPMENT_TRACKОтслеживание статусов доставки
WAREHOUSE_SYNCСинхронизация остатков на складе
SPREADSHEET_EXPORTЭкспорт данных в таблицы (Google Sheets, Excel)
CUSTOMПроизвольная возможность для кастомных интеграций

Как работают capabilities

При установке интеграции платформа автоматически создаёт записи возможностей на основе capabilitiesSchema определения интеграции. Каждая возможность создаётся в состоянии enabledByDefault из схемы.

Установка → materializeCapabilities() → IntegrationCapabilityRecord[]

При деактивации или удалении установки все её возможности автоматически отключаются.

Проверка наличия возможности

Внутри платформы другие модули могут проверять, есть ли у тенанта нужная возможность:

hasCapability(tenantId, 'CATALOG_SYNC') → true / false

Это позволяет, например, показывать кнопку «Экспорт в 1С» только тем порталам, у которых установлена и активна соответствующая интеграция.

Управление через API

Список возможностей установки

Возможности видны в детальной карточке установки:

GET /api/v1/integrations/installations/:id

json
{
  "capabilities": [
    { "capability": "NOTIFY_ON_PROCUREMENT_STATUS_CHANGE", "isEnabled": true, "config": null },
    { "capability": "NOTIFY_ON_INVOICE_CREATED", "isEnabled": false, "config": null }
  ]
}

Включение/выключение возможности

Управление отдельными возможностями выполняется через обновление конфигурации установки. Детальный API управления capabilities доступен администраторам портала.

Конфигурация возможности

Некоторые capabilities поддерживают дополнительную конфигурацию — например, в какой именно чат отправлять уведомления определённого типа. Конфигурация хранится в поле config записи capability в формате JSON.

Документация платформы SNABZHENETS+.