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

# Organisaties en invites

Ship de demo-achtige org-loop: creëren, wisselen, uitnodigen, rollen, verlaten en danger-zone-delete.

## Setup en configuratie

Lees vóór elke stap [Voordat u begint](https://supastack.dev/nl/docs/web/before-you-start.md) en [Basisbeginselen van de terminal](https://supastack.dev/nl/docs/web/terminal-basics.md). Deze instructies gaan ervan uit dat je de volledige supastack monorepo in VS Code hebt geopend; zijn root package.json markeert de root van de repository. In pnpm-opdrachten is een werkruimtepakket een app of map met gedeelde code; in het product is een werkruimte de gegevenscontainer en de beveiligingsgrens van een team. corepack pnpm --filter ... selecteert één pakket uit de monorepo terwijl opdrachten vanuit de root worden uitgevoerd. Als u alleen een gesynchroniseerde mobiele map of desktopmap hebt geopend, bevat deze niet de webbackend, Docker-installatie of rootscripts: voer de backend uit vanaf deze monorepo of een bereikbare gehoste server en gebruik de eigen scripts van de platformmap. Een omgevingsvariabele is een benoemde instelling die is opgeslagen in een lokaal .env-bestand of op uw hostingdashboard; start de relevante app opnieuw nadat u deze hebt gewijzigd en houd servergeheimen buiten de NEXT_PUBLIC_- en EXPO_PUBLIC_-waarden.

1. Start de webapp vanuit de root van de repository met corepack pnpm --filter @supastack/web dev en maak een testaccount.

2. Open het scherm voor het instellen van de organisatie, maak een testwerkruimte en nodig vervolgens een tweede test-e-mail uit via Instellingen → Leden. Een werkruimte is de teamgrens die eigenaar is van leden en records.

3. Accepteer de uitnodiging terwijl u bent aangemeld met hetzelfde e-mailadres. Verwacht: het tweede account kan de uitgenodigde werkruimte betreden met de toegewezen rol, maar kan geen acties voor alleen de eigenaar beheren.

Organisatieworkspaces verschillen van persoonlijke workspaces in packages/db. Na signup duwen onboarding-gates (/onboarding, /new-organization, /select-organization, /choose-plan) de gebruiker naar een actieve org vóór productbilling en -settings.

Invites creëren een pending workspace_invitation-rij en sturen transactionele e-mail met een /invite/[token]-accept-URL. Accepteren vereist een overeenkomend ingelogd e-mailadres. Ledenlijst, rolupdates en verlaten leven onder /settings/members; hernoemen/verwijderen en verlaten verschijnen ook op /organization/settings.

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

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


## Commando's om te kopiëren

Volg de opmerkingen om te zien in welke map een opdracht wordt uitgevoerd. Als twee terminals zijn gelabeld, opent u twee terminalvensters en laat u de eerste opdracht draaien terwijl u de tweede gebruikt.

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


## Implementatieworkflow

Resolveer de actieve workspace uit cookie → gebruikersvoorkeur → membership, en verifieer membership bij elke write. Owners en admins beheren invites/rollen; enige owners kunnen zichzelf niet verlaten of degraderen.

Gebruik bij voorkeur evaluateLeaveOrganization en evaluateMemberRoleUpdate uit @supastack/db voordat je memberships muteert. Emit member.left / member.role_changed in-app-notificaties na succesvolle mutaties wanneer inAppProduct is ingeschakeld.

Platformbeheer is een aparte grens: alleen platformbeheerders kunnen gebruikers, verbanningen en nabootsing van identiteit beheren. Een rol eigenaar/beheerder van een werkruimte verleent geen platformtoegang. De gedocumenteerde organisatierollen zijn eigenaar, beheerder en lid.


## Verificatie en probleemoplossing

Als een uitnodigingslink zegt dat de e-mail niet overeenkomt, log dan in met het exacte adres dat de e-mail heeft ontvangen. Als de uitnodigings-e-mail ontbreekt, controleer dan het lokale e-mailresultaat voordat u deze opnieuw verzendt. Als een lid een organisatie niet kan zien, schakel dan over naar de juiste werkruimte en verifieer het lidmaatschap; los dit nooit op door een andere workspaceId vanuit de browser door te geven.

Gefocuste Vitest: workspace-leave-/rolhelpers, invite-acceptatie, organisatie-onboarding-gates. Handmatig: maak org → nodig uit → accepteer op een tweede account → update rol → verlaat als niet-owner → verwijder als owner met getypte bevestiging.


## Volgende

[Onboardingflow](https://supastack.dev/nl/docs/web/onboarding.md)
