Канал интеграции (integration_point)

Описание

Канал интеграции определяет точку обработки HTTP веб-хуков, поступающих из внешних систем, а также URL внешней системы для отправки в нее HTTP запросов.

Поддерживает также обработку сообщений, поступающих по websocket-подключениям, и отправку сообщений в них.

Типы каналов интеграции расширяются солюшенами, связывающими их со "служебными сценариями по умолчанию", недоступными для редактирования.

Ограничения

  • Коллекция доступна в любом домене.

  • Лицензируется количественным параметром: расходуется лицензия на тип канала.

Поля

Структура сущности
{
  "id": uuid,
  "code": str,
  "type": str,
  "token_local": str,
  "token_remote": str,
  "token_remote2": str,
  "url": str,
  "recv_svcscriptcode": str,
  "send_svcscriptcode": str,
  "recv_svcscriptcode_ws": str,
  "send_svcscriptcode_ws": str,
  "opts": {
    "allow_files_api": bool,
    "comment": str,
    "issync": bool,
    "recv_timeout": int,
    "roles": ["special01"],
    "userid": "37a85e8-1a01-835f-4490-e78015a20052",
    "title": str
  },
  "ext": {
    "ct": date,
    "lwt": date
  }
}
Table 1. Поля
Спецификация Описание

Поле: id
Режим: inout
Тип: uuid
По умолчанию: generated

Идентификатор. Может быть задан при создании, иначе генерируется системой.

Поле: code
Режим: in
Тип: str
По умолчанию: required

Код. Применяется для ассоциирования с другими сущностями и компонентами сценариев.

Поле: type
Режим: in
Тип: str
По умолчанию: required

Тип канала интеграции.
Количество каналов интеграции каждого типа ограничивается лицензией.

Поле: token_local
Режим: out
Тип: str
По умолчанию: generated

Локальный токен.
Используется при поступлении HTTP веб-хуков и Websocket-подключений от внешних систем на веб-сервере системы «Era» в целях авторизации и обнаружения связанного канала интеграции.
Уникален по всем доменам.
Не подлежит модификации.

Поле: token_remote
Режим: in
Тип: str
По умолчанию: empty

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

Поле: token_remote2
Режим: in
Тип: str
По умолчанию: empty

Дополнительный внешний токен.
Может использоваться в привязанных сценариях для построения запросов к внешней системе.

Поле: recv_svcscriptcode
Режим: in
Тип: str
По умолчанию: empty | required

Код служебного сценария, запускаемого для обработки входящего HTTP-запроса с использованием token_local.
Обязательное поле для type = public.

Поле: send_svcscriptcode
Режим: in
Тип: str
По умолчанию: empty

Код служебного сценария, запускаемого для отправки HTTP-запроса в канал из сценариев чат-бота

Поле: recv_svcscriptcode_ws
Режим: in
Тип: str
По умолчанию: empty

Код служебного сценария, запускаемого для обработки входящего websocket-сообщения с использованием token_local

Поле: send_svcscriptcode_ws
Режим: in
Тип: str
По умолчанию: empty

Код служебного сценария, запускаемого для отправки websocket-сообщения в канал из сценариев чат-бота

Поле: url
Режим: in
Тип: str
По умолчанию: empty

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

Поле: opts
Режим: in
Тип: object
Составное поле

Поле: opts.allow_files_api
Режим: in
Тип: bool
По умолчанию: false

Допуск на работу с файлами. Доступно только для type=public

Поле: opts.filter_capabilities
Режим: in
Тип: array
По умолчанию: empty

Допуск подключения по websocket на работу с конкретными Websocket Token-API. Можно перечислить конкретные, либо разрешить для всех, указав ["*"]. По умолчанию всегда разрешена capability subscribe.

Поле: opts.comment
Режим: in
Тип: str
По умолчанию: empty

Произвольный комментарий

Поле: opts.issync
Режим: in
Тип: bool
По умолчанию: false

Выключатель синхронного режима запуска сценариев, true – дожидаться ответа от сценария

Поле: opts.recv_timeout
Режим: in
Тип: int
По умолчанию: 0

Максимальное время исполнения сценария recv_svcscript в секундах. 0 означает, что будет применено значение, определённое веб-сервером (10 сек.). Максимально позволенное значение - 60 сек.

Поле: opts.roles
Режим: in
Тип: array
По умолчанию: empty

Определяет состав ролей для авторизации через сервис IAM

Поле: opts.userid
Режим: in
Тип: uuid
По умолчанию: empty

Идентификатор пользователя системы, от имени которого выполняются запросы. Применяются также роли этого пользователя.

Поле: opts.title
Режим: in
Тип: str
По умолчанию: empty

Произвольный заголовок

Поле: ext
Режим: inout
Тип: object
Составное поле

Позволяет расширять состав произвольными ключами и значениями

Поле: ext.ct
Режим: out
Тип: date
По умолчанию: generated

Время создания объекта

Поле: ext.lwt
Режим: out
Тип: date
По умолчанию: generated

Время последней модификации объекта

Типы канала интеграции

Table 2. Типы канала интеграции
Значение Описание

"public"

Канал интеграции общего назначения. Применяется при:

  • отправке HTTP-запросов из сценариев в солюшенах, имеющих ограничения по выбору URL в компоненте "Веб-запрос". Конечный URL вычисляется путем сцепления значения поля url выбранного канала интеграции, символа / и указанной страницы.

  • получении входящих HTTP-запросов от произвольных отправителей с использованием token_local. В этом случае запускается сценарий recv_svcscriptcode. В частности при получении сообщений для чат-сессий.

  • создании собственного внутреннего API в служебных сценариях на протоколах HTTP и websocket. Применяются значения полей recv_svcscriptcode, recv_svcscriptcode_ws, url и token_local, а также компонента "Отправка вебсокет-сообщения".

  • отправки сообщений из сценариев чат-ботов в канал. Применяются поля send_svcscriptcode, send_svcscriptcode_ws.

"subscr"

Канал интеграции для подписчиков на события системы.
Поддерживает подписку по протоколам HTTP и Websocket.
В первом случае отправка событий производится веб-хуками по адресу, указанному в запросе подписки, либо по адресу url.
Во втором случае отправка событий производится обратно в websocket-подключение.

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

Поля recv_svcscriptcode, recv_svcscriptcode_ws, send_svcscriptcode и send_svcscriptcode_ws не используются.

прочие

Определяются солюшеном домена. Состав прочих типов каналов интеграции и служебные сценарии обработки содержатся в ассетах солюшена.

Характер работы аналогичен каналу "public", однако значения полей url, recv_svcscriptcode, recv_svcscriptcode_ws, send_svcscriptcode и send_svcscriptcode_ws не используются. Вместо них применяются значения, заданные в метаданных солюшена.

См. также

Логические роли

  • ws производит обслуживание websocket-подключений и прием HTTP веб-хуков.

  • svc производит обработку служебных сценариев, в том числе отправку HTTP-запросов компонентом "Веб-запрос".