> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# Organizações e convites

Entrega o ciclo de org de demonstração: criar, mudar, convidar, papéis, sair e eliminação em zona de perigo.

## Instalação e configuração

Antes de qualquer etapa, leia [Antes de começar](https://supastack.dev/pt/docs/web/before-you-start.md) e [Noções básicas sobre terminal](https://supastack.dev/pt/docs/web/terminal-basics.md). Estas instruções presumem que você abriu o monorepo supastack completo no VS Code; sua raiz package.json marca a raiz do repositório. Nos comandos pnpm, um pacote de espaço de trabalho é um aplicativo ou uma pasta de código compartilhado; no produto, um espaço de trabalho é o contêiner de dados e o limite de segurança de uma equipe. corepack pnpm --filter ... seleciona um pacote do monorepo enquanto os comandos são executados a partir de sua raiz. Se você abriu apenas uma pasta móvel ou desktop sincronizada, ela não contém o back-end da Web, a configuração do Docker ou os scripts raiz: execute o back-end deste monorepo ou de um servidor hospedado acessível e use os próprios scripts da pasta da plataforma. Uma variável de ambiente é uma configuração nomeada armazenada em um arquivo .env local ou no painel de hospedagem; reinicie o aplicativo relevante após alterá-lo e mantenha os segredos do servidor fora dos valores NEXT_PUBLIC_ e EXPO_PUBLIC_.

1. Inicie o aplicativo Web a partir da raiz do repositório com corepack pnpm --filter @supastack/web dev e crie uma conta de teste.

2. Abra a tela de configuração da organização, crie um espaço de trabalho de teste e convide um segundo e-mail de teste em Configurações → Membros. Um espaço de trabalho é o limite da equipe que possui membros e registros.

3. Aceite o convite enquanto estiver conectado com o mesmo e-mail. Esperado: a segunda conta pode entrar no espaço de trabalho convidado com a função atribuída, mas não pode gerenciar ações exclusivas do proprietário.

Os workspaces de organização são distintos dos pessoais em packages/db. Após o registo, as portas de onboarding (/onboarding, /new-organization, /select-organization, /choose-plan) empurram o utilizador para uma org ativa antes da faturação e definições do produto.

Os convites criam uma linha workspace_invitation pendente e enviam um email transacional com um URL de aceitação /invite/[token]. Aceitar exige um email de sessão correspondente. A lista de membros, papéis e saída vivem em /settings/members; renomear/eliminar e sair também aparecem em /organization/settings.

```
Routes
  /new-organization
  /select-organization
  /invite/[token]
  /settings/members
  /organization/settings

Server actions
  createOrganizationAction
  createWorkspaceInviteAction
  acceptWorkspaceInviteAction
  updateMemberRoleAction
  leaveOrganizationAction
  renameOrganizationAction
  deleteOrganizationAction
```


## Comandos para copiar

Siga os comentários para ver em qual pasta um comando é executado. Se dois terminais estiverem rotulados, abra duas janelas de terminal e mantenha o primeiro comando em execução enquanto usa o segundo.

```
corepack pnpm --filter @supastack/web dev
```


## Fluxo de implementação

Resolve o workspace ativo a partir de cookie → preferência de utilizador → adesão, depois verifica a adesão em cada escrita. Owners e admins gerem convites/papéis; um owner único não pode sair nem despromover-se.

Prefere evaluateLeaveOrganization e evaluateMemberRoleUpdate de @supastack/db antes de mutar adesões. Emite notificações in-app member.left / member.role_changed após mutações bem-sucedidas quando inAppProduct estiver ativado.

A administração da plataforma é um limite separado: apenas os administradores da plataforma podem gerenciar usuários, banimentos e falsificação de identidade. Uma função de proprietário/administrador do espaço de trabalho não concede acesso à plataforma. As funções documentadas da organização são proprietário, administrador e membro.


## Verificação e resolução de problemas

Se um link de convite disser que o e-mail não corresponde, faça login usando o endereço exato que o recebeu. Se o e-mail de convite estiver faltando, verifique o resultado do e-mail local antes de reenviar. Se um membro não conseguir ver uma organização, mude para o espaço de trabalho correto e verifique a associação; nunca corrija isso passando outro workspaceId do navegador.

Vitest focado: helpers de saída/papel de workspace, aceitação de convite, portas de onboarding de org. Manual: criar uma org → convidar → aceitar numa segunda conta → mudar papel → sair como não-owner → eliminar como owner com confirmação escrita.


## Seguinte

[Fluxo de onboarding](https://supastack.dev/pt/docs/web/onboarding.md)
