Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
Access groups are named sender lists you define once and reference from channel allowlists with
accessGroup:<name>Use them when the same people should be allowed across several message channels, or when one trusted set should apply to both DMs and group sender authorization.
Access groups do not grant access by themselves. A group only matters when an allowlist field references it.
Static sender groups use
type: "message.senders"json5{ accessGroups: { operators: { type: "message.senders", members: { "*": ["global-owner-id"], discord: ["discord:123456789012345678"], telegram: ["987654321"], whatsapp: ["+15551234567"], }, }, }, }
Member lists are keyed by message-channel id:
| Key | Meaning |
|---|---|
text "*" | Shared entries checked for every message channel that references group. |
text discord | Entries checked only for Discord allowlist matching. |
text telegram | Entries checked only for Telegram allowlist matching. |
text whatsapp | Entries checked only for WhatsApp allowlist matching. |
Entries are matched with the destination channel's normal
allowFromReference a group with
accessGroup:<name>DM allowlist example:
json5{ accessGroups: { operators: { type: "message.senders", members: { discord: ["discord:123456789012345678"], telegram: ["987654321"], }, }, }, channels: { discord: { dmPolicy: "allowlist", allowFrom: ["accessGroup:operators"], }, telegram: { dmPolicy: "allowlist", allowFrom: ["accessGroup:operators"], }, }, }
Group sender allowlist example:
json5{ 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"], }, }, }, }, }
You can mix groups and direct entries:
json5{ channels: { discord: { dmPolicy: "allowlist", allowFrom: ["accessGroup:operators", "discord:123456789012345678"], }, }, }
Access groups are available in shared message-channel authorization paths, including:
channels.<channel>.allowFromchannels.<channel>.groupAllowFromChannel support depends on whether that channel is wired through the shared OpenClaw sender-authorization helpers. Current bundled support includes Discord, Google Chat, Nostr, WhatsApp, Zalo, and Zalo Personal. Static
message.sendersDiscord also supports a dynamic access group type:
json5{ accessGroups: { maintainers: { type: "discord.channelAudience", guildId: "1456350064065904867", channelId: "1456744319972282449", membership: "canViewChannel", }, }, channels: { discord: { dmPolicy: "allowlist", allowFrom: ["accessGroup:maintainers"], }, }, }
discord.channelAudienceViewChannelUse this when a Discord channel is already the source of truth for a team, such as
#maintainers#on-callRequirements and failure behavior:
Missing AccessMore Discord-specific examples: Discord access control
dmPolicy: "open""*"allowFromaccessGroup:operatorsaccessGroups.operatorsIf a sender should match but is blocked:
accessGroup:<name>accessGroups.<name>.type"*"Run
openclaw doctor© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine