Appearance
Система возможностей (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.