Skip to content
Het fundament eronderData foundation

Aanmelden en rollen

Alleen ons team, alleen ons project, en de server beslist.

Growth-OS bevat onze pipeline, onze gesprekstranscripten, onze besluiten en ons financiële grootboek. Je meldt je één keer aan, en daarna bepaalt de server welke collega je bent en in welk project je zit. Wat de browser beweert, telt niet mee. Je rol bepaalt of je een besluit mag wijzigen of het budget mag openen.

  • 1

    path that decides who you are

  • 4

    access levels behind every role name

  • 0

    project IDs trusted from the browser

Het probleem dat dit oplost

Zonder een gedeelde basis bouwt elk team deze randgevallen opnieuw, en anders.

The sheet with one setting: whoever has the link

A pipeline spreadsheet cannot tell salary lines apart from a prospect list. Everyone who can open it can read all of it, and nobody can tell you who did. Growth-OS resolves membership per project on every read and every write.

Role rules that drift apart

When each screen writes its own check, they slowly disagree. Finance opens to someone who was only meant to read, and nobody notices until an awkward conversation. One ranking function keeps every screen consistent.

The leaver with a tab still open

Access checked once, when a page loaded, never expires. Here membership is resolved on the request itself, so removing someone from the project actually removes them.

Hoe het werkt

Het mechanisme van begin tot eind, zoals het in de repository is geïmplementeerd.

  1. 1

    Clerk confirms the session

    Sign-in runs through Clerk once per request. Without a session, nothing after this step runs at all.

  2. 2

    The session maps to a teammate

    The server looks that login up in our own users table. A login with no teammate record gets a clear error rather than a free pass.

  3. 3

    Membership is checked next to the data

    The same database call that reads or writes your record confirms you belong to that organization and project. There is no gap between the check and the work.

  4. 4

    One function ranks the roles

    roleAtLeast ranks viewer, editor, admin and owner, and every WISEPIM role name maps onto one of them. Organization owners keep access to every project; otherwise a project membership wins, falling back to the organization one.

Interactief voorbeeld

Bekijk het in werking

Deze rondleiding toont het geïmplementeerde backendcontract zonder account, credentials of providercalls.

Interactief voorbeeld

Explore the decisions this makes

Kies een voorbeeldstatus
Read and discuss

Alleen deterministische voorbeelddata. De interactie gebruikt geen account-, provider- of netwerkverbinding.

Kernpunten

Waarom dit belangrijk is

The server decides who you are

Every request is matched to a real teammate row in our own database. A session that maps to nobody stops at the door.

Seven role names, four levels

Owner, Founder, Admin, Editor, First hire, Advisory, Viewer. They rank into four access levels, compared by one function that every screen uses.

Locked unless you belong

No session, no teammate record, or no membership in the project, and the request stops with a plain error instead of falling through to a default.

Technische garanties

Wat dit wel en niet belooft

Veiligheidsgrens

Clerk verzorgt het aanmelden zelf, dus de beschikbaarheid daarvan kunnen wij niet beloven. Wat hier bewezen wordt, is de grens aan de serverkant: welke collega je bent, en wat je daarmee mag aanraken.

Implementatiebewijs

De grens hierboven is geen claim maar code. Deze bestanden dragen het contract:

  • src/server/auth.ts
  • src/server/permissions.ts
  • src/policies/roles.ts
Vragen

Veelgestelde vragen

Waar Aanmelden en rollen op rust

De documentatie beschrijft dezelfde contracten die deze pagina demonstreert.