Organizações
Crie uma equipe, convide membros e defina funções.
O Siglata organiza arquivos e permissões de acesso por organização. Todos os ativos de um projeto — incluindo arquivos, reservas de upload, cotas de armazenamento, listas de membros, convites e concessões do Model Context Protocol (MCP) — são particionados pelo identificador da organização. Um usuário pode pertencer a múltiplas organizações e alternar entre elas. Cada organização mantém seus próprios dados e permissões.
Arquitetura Multi-Inquilino
No Siglata, uma organização é o limite fundamental de segurança e retenção de dados:
┌────────────────────────────────────────────────────────────────────────┐
│ Conta Siglata │
│ (alex@exemplo.com) │
└──────────────────────────────────┬─────────────────────────────────────┘
│
┌─────────────────────────┴─────────────────────────┐
▼ ▼
┌─────────────────────────────────┐ ┌─────────────────────────────────┐
│ Acme Corp (org_1a2b3c) │ │ Dev Studio (org_9z8y7x) │
├─────────────────────────────────┤ ├─────────────────────────────────┤
│ • Função: Proprietário (Owner) │ │ • Função: Membro (Member) │
│ • Cota: 10 GiB Dedicada │ │ • Cota: 10 GiB Dedicada │
│ • Arquivos Privados e Lixeira │ │ • Arquivos Privados e Lixeira │
│ • Membros e Convites Próprios │ │ • Membros e Convites Próprios │
│ • Concessões OAuth MCP Próprias │ │ • Concessões OAuth MCP Próprias │
└─────────────────────────────────┘ └─────────────────────────────────┘
- Particionamento Estrito de Dados: Todas as consultas ao banco de dados e caminhos de armazenamento de objetos incluem o
organizationId. O vazamento de dados entre inquilinos é impedido tanto no esquema do banco quanto nas camadas de aplicação. - Cotas de Armazenamento Independentes: Cada organização possui sua própria cota base de 10 GiB (
limitBytes), que não é afetada pelo armazenamento de arquivos em outras organizações. - Integrações Delimitadas: Clientes MCP conectados e concessões OAuth vinculam-se estritamente a uma organização por vez. O MCP de produto também exige entitlement de piloto nessa organização antes de emitir tokens ou executar ferramentas.
Controle de Acesso Baseado em Funções (RBAC)
O Siglata define três funções organizacionais com hierarquia rígida e fundamentadas no princípio do menor privilégio:
| Capacidade | owner |
admin |
member |
|---|---|---|---|
| Visualizar, enviar, baixar e renomear arquivos | ✓ | ✓ | ✓ |
| Mover arquivos para lixeira e restaurar em 30 dias | ✓ | ✓ | ✓ |
| Consultar métricas de armazenamento da organização | ✓ | ✓ | ✓ |
| Conectar clientes MCP pessoais | ✓ | ✓ | ✓ |
| Convidar novos membros e atribuir funções | ✓ | ✓ | — |
| Cancelar convites pendentes | ✓ | ✓ | — |
| Atualizar funções de membros | ✓ | ✓ | — |
| Remover membros da organização | ✓ | ✓ | — |
| Atualizar nome e slug de URL da organização | ✓ | ✓ | — |
| Promover membros a Proprietário ou excluir organização | ✓ | — | — |
Proprietários excluem uma organização com confirmação pelo nome no console, a operação CallScript organization_delete (entrada vazia; ligada ao grant) ou POST /auth/organization/delete. A exclusão limpa o plano de arquivos da organização antes de remover membros, convites e a linha da organização.
Proteções e Invariantes de Função
- Proteção ao Proprietário Exclusivo: Uma organização deve sempre possuir pelo menos um proprietário ativo. Um proprietário exclusivo não pode ser rebaixado ou removido até que outro membro seja promovido a proprietário.
- Delegação de Administradores: Administradores podem convidar membros, atribuir funções de membro/administrador e remover colaboradores, mas não podem rebaixar ou remover proprietários existentes.
- Validação de Políticas em Tempo Real: As verificações de função (
requireRoleForScopes) ocorrem dinamicamente a cada requisição de API e operação MCP. Mudanças de função surtem efeito imediato sem exigir que os usuários saiam da sessão.
Ciclo de Vida de Convite de Membros
Convide colaboradores para o seu espaço de trabalho com segurança por meio de convites por e-mail localizados:
1. Admin envia convite ──> E-mail de convite localizado (pt-BR / en-US) ──> Token salvo
│
▼
2. Destinatário abre link ──> Login com link mágico sem senha ──> Aceita convite
│
▼
3. Registro de membro criado ──> Organização surge no seletor ──> Acesso ativo
1. Enviar um Convite
Administradores e proprietários podem convidar novos membros da equipe pela operação CallScript invitation_create dentro de um script MCP execute ou pelo endpoint POST /auth/organization/invite-member:
- Informe o endereço de e-mail do destinatário.
- Escolha a função a ser atribuída (
owner,adminoumember). - Escolha a preferência de idioma (
pt-BRouen-US) pelo cabeçalhox-siglata-localepara garantir que os e-mails transacionais sejam entregues no idioma nativo do destinatário.
2. Gerenciar Convites Pendentes
- Convites pendentes são retornados pela operação CallScript
invitations_listou porGET /auth/organization/list-invitations. - Reenvie um convite pendente com
invitation_resend(mesmo e-mail e função do create). - Liste convites endereçados a você em outras organizações com
invitations_mine. - Os convites permanecem válidos por 7 dias.
- Um administrador pode cancelar um convite pendente a qualquer momento antes da aceitação (
invitation_cancel), o que invalida imediatamente o token correspondente.
3. Aceitação e Integração
- O destinatário clica no link seguro contido no e-mail, ou usa
invitation_accept/invitation_rejectvinculados à concessão quando o convite é da organização da concessão OAuth. - Aceitar e rejeitar recusam convites de outras organizações (
INVITATION_ORG_MISMATCH); entrar em outra organização exige aceite no console e uma nova concessão OAuth. - Saia da organização vinculada à concessão com
organization_leave; a próxima chamada MCP falha por falta de associação. - Caso ainda não possua uma conta no Siglata, ele se autentica instantaneamente por meio de um link mágico sem senha — nenhuma criação de senha é exigida.
- Ao confirmar o convite, sua conta é vinculada como membro ativo e a organização passa a ser exibida no seletor de espaços de trabalho.
Alternar Espaços de Trabalho
Usuários que pertencem a múltiplas organizações podem alternar de contexto:
- Console Siglata: Durante o login e a autorização MCP, a etapa de seleção da organização define o espaço de trabalho ativo.
- Clientes de IA via MCP: Cada concessão de conexão MCP vincula-se a uma organização específica. Confirme o vínculo com a operação CallScript
principal_getdentro de um scriptexecute(organizationId, função, escopos); chameorganization_getquando precisar do nome ou do slug. Para conectar um agente de IA a múltiplas organizações, autorize conexões de servidor individuais para cada espaço de trabalho.
Remoção de Membro e Revogação Imediata
Quando um colaborador deixa a equipe ou seu acesso é revogado:
- Um administrador remove o usuário pela operação CallScript
member_removeou pelo endpointPOST /auth/organization/remove-member. - O registro de
memberdo usuário no banco de dados é excluído atomicamente. - Qualquer token MCP ativo detido por esse usuário para a organização é rejeitado na próxima chamada com:
{ "code": "ORGANIZATION_MEMBERSHIP_REQUIRED", "message": "Current organization membership is required" } - Downloads binários autenticados e requisições à API são bloqueados de imediato, garantindo que não haja retenção indevida de dados. Conecte um cliente MCP ou gerencie arquivos.