> ## 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

# Organizzazioni e inviti

Consegna il ciclo org dimostrativo: creare, cambiare, invitare, ruoli, uscire ed eliminazione in zona di pericolo.

## Installazione e configurazione

Prima di qualsiasi passaggio, leggere [Prima di iniziare](https://supastack.dev/it/docs/web/before-you-start.md) e [Nozioni di base sui terminali](https://supastack.dev/it/docs/web/terminal-basics.md). Queste istruzioni presuppongono che tu abbia aperto l'intero supastack monorepo in VS Code; la sua radice package.json contrassegna la radice del repository. Nei comandi pnpm, un pacchetto dell'area di lavoro è un'app o una cartella di codice condiviso; nel prodotto, uno spazio di lavoro è il contenitore dei dati di un team e il limite di sicurezza. corepack pnpm --filter ... seleziona un pacchetto dal monorepo mentre i comandi vengono eseguiti dalla sua radice. Se hai aperto solo una cartella mobile o desktop sincronizzata, non contiene il backend Web, la configurazione di Docker o gli script root: esegui il backend da questo monorepo o da un server ospitato raggiungibile e utilizza gli script della cartella della piattaforma. Una variabile di ambiente è un'impostazione denominata memorizzata in un file .env locale o nel dashboard dell'hosting; riavvia l'app pertinente dopo averla modificata e mantieni i segreti del server fuori dai valori NEXT_PUBLIC_ e EXPO_PUBLIC_.

1. Avviare l'app Web dalla root del repository con corepack pnpm --filter @supastack/web dev e creare un account di prova.

2. Apri la schermata di configurazione dell'organizzazione, crea uno spazio di lavoro di prova, quindi invita una seconda email di prova da Impostazioni → Membri. Un'area di lavoro è il confine del team che possiede membri e record.

3. Accetta l'invito dopo aver effettuato l'accesso con la stessa email. Previsto: il secondo account può accedere all'area di lavoro invitata con il ruolo assegnato, ma non può gestire le azioni riservate al solo proprietario.

I workspace organizzazione sono distinti da quelli personali in packages/db. Dopo la registrazione, i cancelli di onboarding (/onboarding, /new-organization, /select-organization, /choose-plan) spingono l'utente in una org attiva prima della fatturazione e delle impostazioni di prodotto.

Gli inviti creano una riga workspace_invitation in sospeso e inviano un'email transazionale con un URL di accettazione /invite/[token]. Accettare richiede un'email di sessione corrispondente. Lista membri, ruoli e uscita vivono sotto /settings/members; rinominare/eliminare e uscire compaiono anche su /organization/settings.

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

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


## Comandi da copiare

Segui i commenti per vedere in quale cartella viene eseguito un comando. Se due terminali sono etichettati, apri due finestre di terminale e mantieni il primo comando in esecuzione mentre usi il secondo.

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


## Flusso di implementazione

Risolvi il workspace attivo da cookie → preferenza utente → appartenenza, poi verifica l'appartenenza a ogni scrittura. Owner e admin gestiscono inviti/ruoli; un owner unico non può uscire né degradare sé stesso.

Preferisci evaluateLeaveOrganization e evaluateMemberRoleUpdate da @supastack/db prima di mutare le appartenenze. Emetti notifiche in-app member.left / member.role_changed dopo mutazioni riuscite quando inAppProduct è abilitato.

L'amministrazione della piattaforma è un confine separato: solo gli amministratori della piattaforma possono gestire utenti, ban e impersonificazione. Un ruolo di proprietario/amministratore dell'area di lavoro non concede l'accesso alla piattaforma. I ruoli dell'organizzazione documentati sono proprietario, amministratore e membro.


## Verifica e risoluzione dei problemi

Se un collegamento di invito indica che l'e-mail non corrisponde, accedi utilizzando l'indirizzo esatto che l'ha ricevuto. Se manca l'e-mail di invito, controlla il risultato dell'e-mail locale prima di inviarla nuovamente. Se un membro non riesce a visualizzare un'organizzazione, passa all'area di lavoro corretta e verifica l'appartenenza; non risolvere mai questo problema passando un altro workspaceId dal browser.

Vitest mirato: helper uscita/ruolo workspace, accettazione invito, cancelli di onboarding org. Manuale: creare una org → invitare → accettare su un secondo account → cambiare ruolo → uscire come non-owner → eliminare come owner con conferma digitata.


## Successivo

[Flusso di onboarding](https://supastack.dev/it/docs/web/onboarding.md)
