diff --git a/docs/uk/channels/feishu.md b/docs/uk/channels/feishu.md index 71ba047d9..b65c5273c 100644 --- a/docs/uk/channels/feishu.md +++ b/docs/uk/channels/feishu.md @@ -2,29 +2,29 @@ read_when: - Ви хочете підключити бота Feishu/Lark - Ви налаштовуєте канал Feishu -summary: Огляд, можливості та конфігурація бота Feishu +summary: Огляд бота Feishu, можливості та налаштування title: Feishu x-i18n: - generated_at: "2026-04-29T05:57:05Z" + generated_at: "2026-05-03T18:54:01Z" model: gpt-5.5 provider: openai - source_hash: 37de7cbb12821f119ca1a06fcdb8e80a07752e1cbfc462344d24750fbf13147a + source_hash: 16d8156d215d47fa6e7d810e3a70eb8e84176a681669c27de8f58320be83a7a0 source_path: channels/feishu.md workflow: 16 --- # Feishu / Lark -Feishu/Lark — це універсальна платформа для спільної роботи, де команди спілкуються, діляться документами, керують календарями та працюють разом. +Feishu/Lark — це універсальна платформа для співпраці, де команди спілкуються, діляться документами, керують календарями та виконують роботу разом. -**Статус:** готово до production для приватних повідомлень ботам і групових чатів. WebSocket є типовим режимом; режим Webhook необов’язковий. +**Стан:** готово до production для DM із ботом і групових чатів. WebSocket є режимом за замовчуванням; режим webhook необов’язковий. --- ## Швидкий старт -Потрібен OpenClaw 2026.4.25 або новіший. Виконайте `openclaw --version`, щоб перевірити. Оновіться за допомогою `openclaw update`. +Потрібен OpenClaw 2026.4.25 або новіший. Запустіть `openclaw --version`, щоб перевірити. Оновіть за допомогою `openclaw update`. @@ -32,7 +32,7 @@ Feishu/Lark — це універсальна платформа для спіл ```bash openclaw channels login --channel feishu ``` - Проскануйте QR-код мобільним застосунком Feishu/Lark, щоб автоматично створити бота Feishu/Lark. + Відскануйте QR-код у мобільному застосунку Feishu/Lark, щоб автоматично створити бота Feishu/Lark. @@ -46,14 +46,14 @@ Feishu/Lark — це універсальна платформа для спіл ## Контроль доступу -### Приватні повідомлення +### Прямі повідомлення -Налаштуйте `dmPolicy`, щоб керувати тим, хто може надсилати приватні повідомлення боту: +Налаштуйте `dmPolicy`, щоб керувати тим, хто може надсилати DM боту: -- `"pairing"` — невідомі користувачі отримують код сполучення; підтвердіть через CLI -- `"allowlist"` — спілкуватися можуть лише користувачі, перелічені в `allowFrom` (типово: лише власник бота) -- `"open"` — дозволити публічні приватні повідомлення лише коли `allowFrom` містить `"*"`; з обмежувальними записами спілкуватися можуть лише відповідні користувачі -- `"disabled"` — вимкнути всі приватні повідомлення +- `"pairing"` — невідомі користувачі отримують код сполучення; підтвердьте через CLI +- `"allowlist"` — спілкуватися можуть лише користувачі, перелічені в `allowFrom` (за замовчуванням: лише власник бота) +- `"open"` — дозволити публічні DM лише коли `allowFrom` містить `"*"`; з обмежувальними записами спілкуватися можуть лише користувачі, що відповідають умовам +- `"disabled"` — вимкнути всі DM **Підтвердити запит на сполучення:** @@ -66,26 +66,26 @@ openclaw pairing approve feishu **Політика груп** (`channels.feishu.groupPolicy`): -| Значення | Поведінка | -| ------------- | ------------------------------------------------------------------------------------------------ | -| `"open"` | Відповідати на всі повідомлення в групах | -| `"allowlist"` | Відповідати лише групам у `groupAllowFrom` або явно налаштованим у `groups.` | -| `"disabled"` | Вимкнути всі групові повідомлення; явні записи `groups.` не перевизначають це | +| Значення | Поведінка | +| ------------ | ------------------------------------------------------------------------------------------------------------ | +| `"open"` | Відповідати на всі повідомлення в групах | +| `"allowlist"` | Відповідати лише групам у `groupAllowFrom` або явно налаштованим у `groups.` | +| `"disabled"` | Вимкнути всі групові повідомлення; явні записи `groups.` не перевизначають це | -Типово: `allowlist` +За замовчуванням: `allowlist` **Вимога згадки** (`channels.feishu.requireMention`): -- `true` — вимагати @згадку (типово) -- `false` — відповідати без @згадки +- `true` — вимагати @mention (за замовчуванням) +- `false` — відповідати без @mention - Перевизначення для окремої групи: `channels.feishu.groups..requireMention` -- Трансляційні лише `@all` і `@_all` не вважаються згадками бота. Повідомлення, яке згадує і `@all`, і бота напряму, усе одно зараховується як згадка бота. +- `@all` і `@_all`, призначені лише для розсилки, не вважаються згадками бота. Повідомлення, яке згадує і `@all`, і бота напряму, все одно зараховується як згадка бота. --- -## Приклади конфігурації груп +## Приклади налаштування груп -### Дозволити всі групи, без вимоги @згадки +### Дозволити всі групи, @mention не потрібна ```json5 { @@ -97,7 +97,7 @@ openclaw pairing approve feishu } ``` -### Дозволити всі групи, але все ще вимагати @згадку +### Дозволити всі групи, але все ще вимагати @mention ```json5 { @@ -124,7 +124,7 @@ openclaw pairing approve feishu } ``` -У режимі `allowlist` ви також можете допустити групу, додавши явний запис `groups.`. Явні записи не перевизначають `groupPolicy: "disabled"`. Типові значення з wildcard у `groups.*` налаштовують відповідні групи, але самі по собі не допускають групи. +У режимі `allowlist` ви також можете допустити групу, додавши явний запис `groups.`. Явні записи не перевизначають `groupPolicy: "disabled"`. Шаблонні значення за замовчуванням у `groups.*` налаштовують відповідні групи, але самі по собі не допускають групи. ```json5 { @@ -164,23 +164,23 @@ openclaw pairing approve feishu -## Отримати ідентифікатори груп/користувачів +## Отримати ID групи/користувача -### Ідентифікатори груп (`chat_id`, формат: `oc_xxx`) +### ID груп (`chat_id`, формат: `oc_xxx`) -Відкрийте групу у Feishu/Lark, натисніть іконку меню у верхньому правому куті та перейдіть до **Налаштувань**. Ідентифікатор групи (`chat_id`) зазначено на сторінці налаштувань. +Відкрийте групу у Feishu/Lark, натисніть піктограму меню у верхньому правому куті та перейдіть до **Налаштувань**. ID групи (`chat_id`) наведено на сторінці налаштувань. -![Отримати ідентифікатор групи](/images/feishu-get-group-id.png) +![Отримати ID групи](/images/feishu-get-group-id.png) -### Ідентифікатори користувачів (`open_id`, формат: `ou_xxx`) +### ID користувачів (`open_id`, формат: `ou_xxx`) -Запустіть gateway, надішліть приватне повідомлення боту, потім перевірте журнали: +Запустіть gateway, надішліть DM боту, потім перевірте журнали: ```bash openclaw logs --follow ``` -Шукайте `open_id` у виводі журналу. Також можна перевірити запити на сполучення, що очікують: +Знайдіть `open_id` у виводі журналу. Також можна перевірити запити на сполучення, що очікують: ```bash openclaw pairing list feishu @@ -190,11 +190,11 @@ openclaw pairing list feishu ## Поширені команди -| Команда | Опис | -| --------- | ---------------------------- | -| `/status` | Показати статус бота | -| `/reset` | Скинути поточний сеанс | -| `/model` | Показати або змінити модель ШІ | +| Команда | Опис | +| --------- | ----------------------------------- | +| `/status` | Показати стан бота | +| `/reset` | Скинути поточний сеанс | +| `/model` | Показати або змінити модель ШІ | Feishu/Lark не підтримує нативні меню slash-команд, тому надсилайте їх як звичайні текстові повідомлення. @@ -207,23 +207,23 @@ Feishu/Lark не підтримує нативні меню slash-команд, ### Бот не відповідає в групових чатах 1. Переконайтеся, що бота додано до групи -2. Переконайтеся, що ви @згадали бота (це потрібно типово) -3. Перевірте, що `groupPolicy` не є `"disabled"` +2. Переконайтеся, що ви @mention бота (обов’язково за замовчуванням) +3. Перевірте, що `groupPolicy` не дорівнює `"disabled"` 4. Перевірте журнали: `openclaw logs --follow` ### Бот не отримує повідомлення -1. Переконайтеся, що бота опубліковано й схвалено у Feishu Open Platform / Lark Developer +1. Переконайтеся, що бот опублікований і схвалений у Feishu Open Platform / Lark Developer 2. Переконайтеся, що підписка на події містить `im.message.receive_v1` -3. Переконайтеся, що вибрано **постійне підключення** (WebSocket) -4. Переконайтеся, що надано всі потрібні області дозволів -5. Переконайтеся, що gateway працює: `openclaw gateway status` +3. Переконайтеся, що вибрано **постійне з’єднання** (WebSocket) +4. Переконайтеся, що надано всі необхідні permission scopes +5. Переконайтеся, що gateway запущений: `openclaw gateway status` 6. Перевірте журнали: `openclaw logs --follow` ### App Secret витік 1. Скиньте App Secret у Feishu Open Platform / Lark Developer -2. Оновіть значення у своїй конфігурації +2. Оновіть значення у вашій конфігурації 3. Перезапустіть gateway: `openclaw gateway restart` --- @@ -260,16 +260,16 @@ Feishu/Lark не підтримує нативні меню slash-команд, } ``` -`defaultAccount` керує тим, який обліковий запис використовується, коли вихідні API не вказують `accountId`. +`defaultAccount` керує тим, який обліковий запис використовується, коли outbound API не вказують `accountId`. `accounts..tts` використовує ту саму форму, що й `messages.tts`, і виконує глибоке злиття поверх -глобальної конфігурації TTS, тому налаштування Feishu з кількома ботами можуть зберігати спільні облікові дані -провайдера глобально, перевизначаючи лише голос, модель, персону або автоматичний режим +глобальної конфігурації TTS, тож налаштування Feishu з кількома ботами можуть зберігати спільні облікові дані +провайдерів глобально, перевизначаючи лише голос, модель, персону або автоматичний режим для кожного облікового запису. ### Обмеження повідомлень -- `textChunkLimit` — розмір фрагмента вихідного тексту (типово: `2000` символів) -- `mediaMaxMb` — ліміт завантаження/вивантаження медіа (типово: `30` МБ) +- `textChunkLimit` — розмір фрагмента вихідного тексту (за замовчуванням: `2000` символів) +- `mediaMaxMb` — обмеження на завантаження/вивантаження медіа (за замовчуванням: `30` MB) ### Потокове передавання @@ -280,20 +280,20 @@ Feishu/Lark підтримує потокові відповіді через і channels: { feishu: { streaming: true, // enable streaming card output (default: true) - blockStreaming: true, // enable block-level streaming (default: true) + blockStreaming: true, // opt into completed-block streaming }, }, } ``` -Установіть `streaming: false`, щоб надіслати повну відповідь одним повідомленням. +Встановіть `streaming: false`, щоб надіслати повну відповідь одним повідомленням. `blockStreaming` вимкнено за замовчуванням; вмикайте його лише тоді, коли хочете перед фінальною відповіддю скидати завершені блоки асистента. ### Оптимізація квоти -Зменште кількість викликів API Feishu/Lark за допомогою двох необов’язкових прапорців: +Зменште кількість API-викликів Feishu/Lark за допомогою двох необов’язкових прапорців: -- `typingIndicator` (типово `true`): установіть `false`, щоб пропустити виклики реакції набору тексту -- `resolveSenderNames` (типово `true`): установіть `false`, щоб пропустити пошуки профілів відправників +- `typingIndicator` (за замовчуванням `true`): встановіть `false`, щоб пропускати виклики реакції набору тексту +- `resolveSenderNames` (за замовчуванням `true`): встановіть `false`, щоб пропускати пошуки профілів відправників ```json5 { @@ -308,7 +308,7 @@ Feishu/Lark підтримує потокові відповіді через і ### Сеанси ACP -Feishu/Lark підтримує ACP для приватних повідомлень і повідомлень у групових тредах. ACP у Feishu/Lark керується текстовими командами — нативних меню slash-команд немає, тому використовуйте повідомлення `/acp ...` безпосередньо в розмові. +Feishu/Lark підтримує ACP для DM і повідомлень у групових тредах. ACP у Feishu/Lark керується текстовими командами — нативних меню slash-команд немає, тому використовуйте повідомлення `/acp ...` безпосередньо в розмові. #### Постійне прив’язування ACP @@ -354,19 +354,19 @@ Feishu/Lark підтримує ACP для приватних повідомле } ``` -#### Запуск ACP із чату +#### Створити ACP із чату -У приватному повідомленні або треді Feishu/Lark: +У DM або треді Feishu/Lark: ```text /acp spawn codex --thread here ``` -`--thread here` працює для приватних повідомлень і повідомлень у тредах Feishu/Lark. Подальші повідомлення у прив’язаній розмові спрямовуються безпосередньо до цього сеансу ACP. +`--thread here` працює для DM і повідомлень у тредах Feishu/Lark. Подальші повідомлення у прив’язаній розмові спрямовуються безпосередньо до цього сеансу ACP. -### Маршрутизація кількох агентів +### Маршрутизація між кількома агентами -Використовуйте `bindings`, щоб спрямовувати приватні повідомлення або групи Feishu/Lark до різних агентів. +Використовуйте `bindings`, щоб маршрутизувати DM або групи Feishu/Lark до різних агентів. ```json5 { @@ -399,10 +399,10 @@ Feishu/Lark підтримує ACP для приватних повідомле Поля маршрутизації: - `match.channel`: `"feishu"` -- `match.peer.kind`: `"direct"` (приватне повідомлення) або `"group"` (груповий чат) -- `match.peer.id`: Open ID користувача (`ou_xxx`) або ідентифікатор групи (`oc_xxx`) +- `match.peer.kind`: `"direct"` (DM) або `"group"` (груповий чат) +- `match.peer.id`: Open ID користувача (`ou_xxx`) або ID групи (`oc_xxx`) -Див. [Отримати ідентифікатори груп/користувачів](#get-groupuser-ids), щоб отримати поради щодо пошуку. +Див. [Отримати ID групи/користувача](#get-groupuser-ids) для порад із пошуку. --- @@ -410,34 +410,34 @@ Feishu/Lark підтримує ACP для приватних повідомле Повна конфігурація: [Конфігурація Gateway](/uk/gateway/configuration) -| Налаштування | Опис | Типово | -| ------------------------------------------------- | --------------------------------------------------------------------------------------------- | ---------------- | -| `channels.feishu.enabled` | Увімкнути/вимкнути канал | `true` | -| `channels.feishu.domain` | Домен API (`feishu` або `lark`) | `feishu` | -| `channels.feishu.connectionMode` | Транспорт подій (`websocket` або `webhook`) | `websocket` | -| `channels.feishu.defaultAccount` | Обліковий запис за замовчуванням для вихідної маршрутизації | `default` | -| `channels.feishu.verificationToken` | Потрібно для режиму webhook | — | -| `channels.feishu.encryptKey` | Потрібно для режиму webhook | — | -| `channels.feishu.webhookPath` | Шлях маршруту webhook | `/feishu/events` | -| `channels.feishu.webhookHost` | Хост прив’язки webhook | `127.0.0.1` | -| `channels.feishu.webhookPort` | Порт прив’язки webhook | `3000` | -| `channels.feishu.accounts..appId` | ID застосунку | — | -| `channels.feishu.accounts..appSecret` | Секрет застосунку | — | -| `channels.feishu.accounts..domain` | Перевизначення домену для окремого облікового запису | `feishu` | -| `channels.feishu.accounts..tts` | Перевизначення TTS для окремого облікового запису | `messages.tts` | -| `channels.feishu.dmPolicy` | Політика DM | `allowlist` | -| `channels.feishu.allowFrom` | Список дозволених DM (список open_id) | [BotOwnerId] | -| `channels.feishu.groupPolicy` | Політика груп | `allowlist` | -| `channels.feishu.groupAllowFrom` | Список дозволених груп | — | -| `channels.feishu.requireMention` | Вимагати @mention у групах | `true` | -| `channels.feishu.groups..requireMention` | Перевизначення @mention для окремої групи; явні ID також допускають групу в режимі allowlist | успадковано | -| `channels.feishu.groups..enabled` | Увімкнути/вимкнути конкретну групу | `true` | -| `channels.feishu.textChunkLimit` | Розмір фрагмента повідомлення | `2000` | -| `channels.feishu.mediaMaxMb` | Обмеження розміру медіа | `30` | -| `channels.feishu.streaming` | Потокове виведення карток | `true` | -| `channels.feishu.blockStreaming` | Потокове передавання на рівні блоків | `true` | -| `channels.feishu.typingIndicator` | Надсилати реакції набору тексту | `true` | -| `channels.feishu.resolveSenderNames` | Визначати відображувані імена відправників | `true` | +| Налаштування | Опис | Типове значення | +| ------------------------------------------------- | -------------------------------------------------------------------------------- | ---------------- | +| `channels.feishu.enabled` | Увімкнути/вимкнути канал | `true` | +| `channels.feishu.domain` | Домен API (`feishu` або `lark`) | `feishu` | +| `channels.feishu.connectionMode` | Транспорт подій (`websocket` або `webhook`) | `websocket` | +| `channels.feishu.defaultAccount` | Типовий обліковий запис для вихідної маршрутизації | `default` | +| `channels.feishu.verificationToken` | Потрібно для режиму Webhook | — | +| `channels.feishu.encryptKey` | Потрібно для режиму Webhook | — | +| `channels.feishu.webhookPath` | Шлях маршруту Webhook | `/feishu/events` | +| `channels.feishu.webhookHost` | Хост прив’язки Webhook | `127.0.0.1` | +| `channels.feishu.webhookPort` | Порт прив’язки Webhook | `3000` | +| `channels.feishu.accounts..appId` | Ідентифікатор застосунку | — | +| `channels.feishu.accounts..appSecret` | Секрет застосунку | — | +| `channels.feishu.accounts..domain` | Перевизначення домену для окремого облікового запису | `feishu` | +| `channels.feishu.accounts..tts` | Перевизначення TTS для окремого облікового запису | `messages.tts` | +| `channels.feishu.dmPolicy` | Політика приватних повідомлень | `allowlist` | +| `channels.feishu.allowFrom` | Список дозволених приватних повідомлень (список open_id) | [BotOwnerId] | +| `channels.feishu.groupPolicy` | Політика груп | `allowlist` | +| `channels.feishu.groupAllowFrom` | Список дозволених груп | — | +| `channels.feishu.requireMention` | Вимагати @згадку в групах | `true` | +| `channels.feishu.groups..requireMention` | Перевизначення @згадки для групи; явні ідентифікатори також допускають групу в режимі списку дозволених | успадковано | +| `channels.feishu.groups..enabled` | Увімкнути/вимкнути певну групу | `true` | +| `channels.feishu.textChunkLimit` | Розмір фрагмента повідомлення | `2000` | +| `channels.feishu.mediaMaxMb` | Обмеження розміру медіа | `30` | +| `channels.feishu.streaming` | Потокове виведення картки | `true` | +| `channels.feishu.blockStreaming` | Потокове надсилання відповідей завершеними блоками | `false` | +| `channels.feishu.typingIndicator` | Надсилати реакції набору тексту | `true` | +| `channels.feishu.resolveSenderNames` | Визначати відображувані імена відправників | `true` | --- @@ -446,21 +446,21 @@ Feishu/Lark підтримує ACP для приватних повідомле ### Отримання - ✅ Текст -- ✅ Форматований текст (post) +- ✅ Розширений текст (допис) - ✅ Зображення - ✅ Файли - ✅ Аудіо - ✅ Відео/медіа - ✅ Стікери -Вхідні аудіоповідомлення Feishu/Lark нормалізуються як медіаплейсхолдери, а не -як необроблений JSON `file_key`. Коли налаштовано `tools.media.audio`, OpenClaw +Вхідні аудіоповідомлення Feishu/Lark нормалізуються як медіаплейсхолдери замість +необробленого JSON `file_key`. Коли налаштовано `tools.media.audio`, OpenClaw завантажує ресурс голосової нотатки й запускає спільну транскрипцію аудіо перед -ходом агента, тож агент отримує текстову розшифровку мовлення. Якщо Feishu містить -текст транскрипції безпосередньо в аудіо payload, цей текст використовується без -ще одного виклику ASR. Без провайдера транскрипції аудіо агент усе одно отримує -плейсхолдер `` разом зі збереженим вкладенням, а не необроблений -payload ресурсу Feishu. +ходом агента, тому агент отримує розшифровку мовлення. Якщо Feishu включає +текст транскрипту безпосередньо в аудіокорисне навантаження, цей текст +використовується без додаткового виклику ASR. Без провайдера транскрипції аудіо +агент усе одно отримує плейсхолдер `` разом зі збереженим +вкладенням, а не необроблене корисне навантаження ресурсу Feishu. ### Надсилання @@ -470,34 +470,37 @@ payload ресурсу Feishu. - ✅ Аудіо - ✅ Відео/медіа - ✅ Інтерактивні картки (зокрема потокові оновлення) -- ⚠️ Форматований текст (форматування у стилі post; не підтримує повні можливості авторингу Feishu/Lark) +- ⚠️ Розширений текст (форматування у стилі допису; не підтримує повні можливості авторингу Feishu/Lark) -Нативні аудіобульбашки Feishu/Lark використовують тип повідомлення Feishu `audio` і потребують -медіа для завантаження Ogg/Opus (`file_type: "opus"`). Наявні медіа `.opus` і `.ogg` -надсилаються безпосередньо як нативне аудіо. MP3/WAV/M4A та інші ймовірні аудіоформати -перекодовуються у 48kHz Ogg/Opus через `ffmpeg` лише тоді, коли відповідь запитує -доставку голосом (`audioAsVoice` / інструмент повідомлень `asVoice`, зокрема відповіді -TTS у вигляді голосових нотаток). Звичайні вкладення MP3 залишаються звичайними файлами. Якщо `ffmpeg` відсутній або -конвертація не вдається, OpenClaw повертається до вкладення файлу й записує причину в журнал. +Нативні аудіобульбашки Feishu/Lark використовують тип повідомлення Feishu `audio` +і потребують завантажених медіа Ogg/Opus (`file_type: "opus"`). Наявні медіа +`.opus` і `.ogg` надсилаються безпосередньо як нативне аудіо. MP3/WAV/M4A та +інші ймовірні аудіоформати перекодовуються у 48 кГц Ogg/Opus за допомогою +`ffmpeg` лише коли відповідь запитує доставку голосом (`audioAsVoice` / +інструмент повідомлень `asVoice`, зокрема відповіді голосовими нотатками TTS). +Звичайні вкладення MP3 залишаються звичайними файлами. Якщо `ffmpeg` відсутній +або перетворення не вдається, OpenClaw повертається до файлового вкладення й +записує причину в журнал. -### Потоки та відповіді +### Ланцюжки та відповіді - ✅ Вбудовані відповіді -- ✅ Відповіді в потоках -- ✅ Відповіді з медіа залишаються прив’язаними до потоку під час відповіді на повідомлення в потоці +- ✅ Відповіді в ланцюжках +- ✅ Медіавідповіді залишаються прив’язаними до ланцюжка під час відповіді на повідомлення в ланцюжку Для `groupSessionScope: "group_topic"` і `"group_topic_sender"` нативні -тематичні групи Feishu/Lark використовують подію `thread_id` (`omt_*`) як канонічний -ключ тематичної сесії. Звичайні групові відповіді, які OpenClaw перетворює на потоки, і далі -використовують ID кореневого повідомлення відповіді (`om_*`), щоб перший хід і наступний хід -залишалися в тій самій сесії. +тематичні групи Feishu/Lark використовують подію `thread_id` (`omt_*`) як +канонічний ключ тематичної сесії. Звичайні групові відповіді, які OpenClaw +перетворює на ланцюжки, продовжують використовувати ідентифікатор кореневого +повідомлення відповіді (`om_*`), щоб перший хід і наступний хід залишалися в тій +самій сесії. --- ## Пов’язане - [Огляд каналів](/uk/channels) — усі підтримувані канали -- [Сполучення](/uk/channels/pairing) — автентифікація DM і процес сполучення -- [Групи](/uk/channels/groups) — поведінка групового чату й обмеження за згадками +- [Сполучення](/uk/channels/pairing) — автентифікація приватних повідомлень і процес сполучення +- [Групи](/uk/channels/groups) — поведінка групових чатів і контроль згадок - [Маршрутизація каналів](/uk/channels/channel-routing) — маршрутизація сесій для повідомлень -- [Безпека](/uk/gateway/security) — модель доступу й посилення захисту +- [Безпека](/uk/gateway/security) — модель доступу та зміцнення безпеки