Skip to content

Architecture

Designing clear workspace boundaries

6 min read

Keep membership, resources and permissions attached to the right organization.

The workspace owns everything

A workspace is the ownership boundary for every resource. Resolve the active membership on the server before reading or writing project data.

In Northstack every workspace route carries the workspace in its path, and the API checks the caller's membership before anything else. A workspace you do not belong to answers as if it did not exist.

Switching is a reload, not a filter

Switching the workspace clears cached data and reloads the current membership. Client-side filtering alone cannot enforce isolation.

The dashboard keeps nothing from the previous workspace on screen: projects, members and invoices are all read again for the new one.

Ownership is not a role change

Keep ownership transfer separate from routine role changes, and leave an auditable event for every permission change.

Transferring ownership asks for the owner's password and a confirmation, and every change to the role matrix is written to the activity log with the person who made it.