Caso de uso: Eu gerencio 12 Grupos de Trabalho de Análise (AWGs) para o Repositório de Dados de Ciência Aberta da NASA, com aproximadamente 1.700 membros em mais de 60 países. Cada AWG tem seu próprio grupo no Discourse (por exemplo, @AIMLawg, @AnimalAWG, @HUMANawg, etc., totalizando 12, e crescendo). Quando eu ou minha equipe precisamos enviar um anúncio para toda a comunidade, temos que mencionar manualmente (@) todos os 12 grupos em cada postagem: o que é propenso a erros, tedioso e fácil de esquecer um.
Eu quero um único grupo @AWGall que reflita automaticamente a associação de todos os 12 subgrupos, para que uma única menção (@) alcance todos.
O que eu tentei:
- Criei um grupo @AWGall manualmente e escrevi um script de API para adicionar em massa membros de todos os subgrupos — isso funciona como uma captura de tela única, mas não se mantém sincronizado. Toda vez que um novo membro entra em qualquer um dos 12 AWGs (o que acontece constantemente), o @AWGall fica desatualizado.
- Pesquisei por um recurso nativo de grupos aninhados/grupo de grupos — ele não existe. A discussão anterior mais próxima é Hierarchical group membership (groups inside groups) de 2021, que confirmou que não havia planos para implementar isso na época.
O que estou pedindo:
Qualquer uma destas opções resolveria o problema:
- Opção A — Grupos aninhados: Permitir que um grupo inclua outros grupos como membros, para que a associação se resolva transitivamente. Quando alguém entra no @AIMLawg, ele aparece automaticamente no @AWGall.
- Opção B — Gatilho de sincronização automática: Quando um usuário é adicionado ou removido de um grupo, acionar uma sincronização de associação configurável que o adiciona/remove de um grupo pai designado.
Por que isso é importante além do meu caso:
Qualquer comunidade com subcomunidades (departamentos, turmas, equipes, faixas etárias, regiões) encontra essa barreira. A solução alternativa atual — manter manualmente um grupo plano separado — falha imediatamente à medida que a associação evolui. Esta é uma limitação geral do Discourse, não um caso de uso de nicho.
Fico feliz em discutir as trocas de implementação. Existe um plugin que já lida com isso, ou há interesse em construí-lo nativamente?