Skip to main content
O ingresso de canais é o limite experimental de controle de acesso para eventos recebidos de canais. Os plugins são responsáveis pelos fatos da plataforma e pelos efeitos colaterais; o núcleo é responsável pela política genérica: listas de permissões de mensagens diretas/grupos, entradas de mensagens diretas do armazenamento de pareamento, gates de rota, gates de comando, autenticação de eventos, ativação por menção, diagnósticos com dados ocultados e admissão. Use openclaw/plugin-sdk/channel-ingress-runtime nos caminhos de recebimento.

Resolvedor de runtime

Não pré-calcule listas de permissões efetivas, proprietários de comandos nem grupos de comandos. O resolvedor os deriva de listas de permissões brutas, callbacks de armazenamento, descritores de rota, grupos de acesso, política e tipo de conversa.

Resultado

Os plugins incluídos no pacote devem consumir diretamente as projeções modernas: A autorização de eventos continua disponível no ingress.graph ordenado e no ingress.reasonCode decisivo; nenhuma projeção separada de evento é emitida. Helpers obsoletos do SDK de terceiros podem reconstruir formatos antigos internamente. Novos caminhos de recebimento incluídos no pacote não devem converter resultados modernos de volta em DTOs locais.

Grupos de acesso

As entradas de accessGroup:<name> permanecem com dados ocultados. O núcleo resolve por conta própria os grupos message.senders estáticos e chama resolveAccessGroupMembership somente para grupos dinâmicos que exigem uma consulta à plataforma. Grupos ausentes, sem suporte ou com falha são bloqueados por padrão.

Modos de evento

Use mayPair: false para reações, botões, callbacks e comandos nativos.

Rotas e ativação

Use descritores de rota para políticas de sala, tópico, guilda, thread ou rota aninhada:
Use channelIngressRoutes(...) quando um plugin tiver vários descritores de rota opcionais; ele filtra ramificações desabilitadas, mantendo os fatos das rotas genéricos e ordenados pelo precedence de cada descritor. O gate de menção é um gate de ativação. A ausência de uma menção retorna admission: "skip" para que o kernel do turno não processe um turno somente de observação. A maioria dos canais deve manter a ativação depois dos gates de remetente e de comando. Superfícies de chat público que precisam silenciar tráfego sem menção antes do ruído da lista de permissões do remetente podem optar por activation.order: "before-sender" quando o bypass de comandos de texto estiver desabilitado. Canais com ativação implícita, como respostas em threads do bot, podem passar activation.allowedImplicitMentionKinds; o activationAccess.shouldBypassMention projetado então informa quando um comando ou uma ativação implícita ignorou a exigência de uma menção explícita.

Ocultação de dados

Valores brutos de remetente e entradas brutas de listas de permissões servem apenas como entrada do resolvedor. Eles nunca devem aparecer no estado resolvido, nas decisões, nos diagnósticos, nos snapshots nem nos fatos de compatibilidade. Use IDs opacos de sujeitos, entradas, rotas e diagnósticos.

Verificação