Перейти до основного вмісту

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Групи доступу — це іменовані списки відправників, які ви визначаєте один раз і на які посилаєтеся з allowlist каналів через accessGroup:<name>. Використовуйте їх, коли тих самих людей потрібно дозволити в кількох каналах повідомлень або коли один довірений набір має застосовуватися і до авторизації відправників у DM, і до груп. Групи доступу самі по собі не надають доступу. Група має значення лише тоді, коли поле allowlist посилається на неї.

Статичні групи відправників повідомлень

Статичні групи відправників використовують type: "message.senders".
{
  accessGroups: {
    operators: {
      type: "message.senders",
      members: {
        "*": ["global-owner-id"],
        discord: ["discord:123456789012345678"],
        telegram: ["987654321"],
        whatsapp: ["+15551234567"],
      },
    },
  },
}
Списки учасників індексуються за id каналу повідомлень:
КлючЗначення
"*"Спільні записи, які перевіряються для кожного каналу повідомлень, що посилається на групу.
discordЗаписи, які перевіряються лише для зіставлення allowlist Discord.
telegramЗаписи, які перевіряються лише для зіставлення allowlist Telegram.
whatsappЗаписи, які перевіряються лише для зіставлення allowlist WhatsApp.
Записи зіставляються зі звичайними правилами allowFrom цільового каналу. OpenClaw не перекладає id відправників між каналами. Якщо Alice має id Telegram і id Discord, укажіть обидва id під відповідними ключами.

Посилання на групи з allowlist

Посилайтеся на групу через accessGroup:<name> будь-де, де шлях каналу повідомлень підтримує allowlist відправників. Приклад allowlist для DM:
{
  accessGroups: {
    operators: {
      type: "message.senders",
      members: {
        discord: ["discord:123456789012345678"],
        telegram: ["987654321"],
      },
    },
  },
  channels: {
    discord: {
      dmPolicy: "allowlist",
      allowFrom: ["accessGroup:operators"],
    },
    telegram: {
      dmPolicy: "allowlist",
      allowFrom: ["accessGroup:operators"],
    },
  },
}
Приклад allowlist відправників групи:
{
  accessGroups: {
    oncall: {
      type: "message.senders",
      members: {
        whatsapp: ["+15551234567"],
        googlechat: ["users/1234567890"],
      },
    },
  },
  channels: {
    whatsapp: {
      groupPolicy: "allowlist",
      groupAllowFrom: ["accessGroup:oncall"],
    },
    googlechat: {
      spaces: {
        "spaces/AAA": {
          users: ["accessGroup:oncall"],
        },
      },
    },
  },
}
Ви можете поєднувати групи й прямі записи:
{
  channels: {
    discord: {
      dmPolicy: "allowlist",
      allowFrom: ["accessGroup:operators", "discord:123456789012345678"],
    },
  },
}

Підтримувані шляхи каналів повідомлень

Групи доступу доступні в спільних шляхах авторизації каналів повідомлень, зокрема:
  • allowlist відправників DM, як-от channels.<channel>.allowFrom
  • allowlist відправників груп, як-от channels.<channel>.groupAllowFrom
  • специфічні для каналу allowlist відправників на рівні окремої кімнати, які використовують ті самі правила зіставлення відправників
  • шляхи авторизації команд, які повторно використовують allowlist відправників каналів повідомлень
Підтримка каналу залежить від того, чи цей канал підключено через спільні допоміжні засоби авторизації відправників OpenClaw. Поточна вбудована підтримка охоплює Discord, Google Chat, Nostr, WhatsApp, Zalo і Zalo Personal. Статичні групи message.senders спроєктовані як незалежні від каналу, тож нові канали повідомлень мають підтримувати їх, використовуючи спільні допоміжні засоби plugin SDK замість власного розгортання allowlist.

Аудиторії каналів Discord

Discord також підтримує динамічний тип групи доступу:
{
  accessGroups: {
    maintainers: {
      type: "discord.channelAudience",
      guildId: "1456350064065904867",
      channelId: "1456744319972282449",
      membership: "canViewChannel",
    },
  },
  channels: {
    discord: {
      dmPolicy: "allowlist",
      allowFrom: ["accessGroup:maintainers"],
    },
  },
}
discord.channelAudience означає: “дозволити відправників DM Discord, які наразі можуть переглядати цей канал guild.” OpenClaw визначає відправника через Discord під час авторизації та застосовує правила дозволу Discord ViewChannel. Використовуйте це, коли канал Discord уже є джерелом істини для команди, наприклад #maintainers або #on-call. Вимоги та поведінка в разі помилки:
  • Боту потрібен доступ до guild і каналу.
  • Боту потрібен Server Members Intent у Discord Developer Portal.
  • Група доступу не надає доступ, коли Discord повертає Missing Access, відправника неможливо визначити як учасника guild або канал належить іншому guild.
Більше прикладів, специфічних для Discord: Контроль доступу Discord

Нотатки щодо безпеки

  • Групи доступу — це псевдоніми allowlist, а не ролі. Вони самі по собі не створюють власників, не схвалюють запити на сполучення й не надають дозволи на інструменти.
  • dmPolicy: "open" усе одно вимагає "*" в ефективному allowlist DM. Посилання на групу доступу не є тим самим, що публічний доступ.
  • Відсутні назви груп не надають доступ. Якщо allowFrom містить accessGroup:operators, а accessGroups.operators відсутній, цей запис нікого не авторизує.
  • Зберігайте id каналів стабільними. Надавайте перевагу числовим/user id замість відображуваних імен, коли канал підтримує обидва варіанти.

Усунення несправностей

Якщо відправник має збігатися, але його заблоковано:
  1. Переконайтеся, що поле allowlist містить точне посилання accessGroup:<name>.
  2. Переконайтеся, що accessGroups.<name>.type правильний.
  3. Переконайтеся, що id відправника вказано під відповідним ключем каналу або під "*".
  4. Переконайтеся, що запис використовує звичайний синтаксис allowlist цього каналу.
  5. Для аудиторій каналів Discord переконайтеся, що бот бачить канал guild і має ввімкнений Server Members Intent.
Запустіть openclaw doctor після редагування конфігурації контролю доступу. Він виявляє багато недійсних комбінацій allowlist і політик ще до виконання.