Organisations
Overview
ASD uses a multi-tenant organisation model. Every user belongs to at least one organisation, and all resources —tunnel configurations, API keys, team members, and billing —are scoped to an organisation.
Organisation Hierarchy
Organisations support a three-level hierarchy:
Organisation
├── Department (optional)
│ └── Team
└── Team (can exist without a department) - Organisation —the top-level container. Has its own billing, members, and settings.
- Department —an optional grouping layer. Useful for larger teams that need to separate concerns (e.g., “Engineering”, “QA”, “Operations”). Departments can be enabled or disabled per organisation.
- Team —the working unit. Teams have a lead and members. Tunnel configs and API keys can be scoped to specific teams.
Creating an Organisation
Every user gets a default organisation during onboarding. Additional organisations can be created from the dashboard:
- Go to Account > Organisations
- Click Create Organisation
- Provide a name and optional description
You automatically become the owner of any organisation you create.
Organisation Membership
Each member has a role that determines what they can do within the organisation:
| Role | Description |
|---|---|
| Owner | Full control —billing, settings, member management, deletion |
| Admin | Member management, team creation, configuration changes |
| Finance | Access to billing and subscription management |
| Member | Standard access —use tunnels, view team resources |
See RBAC for detailed permission breakdowns.
Multi-Organisation Support
Users can belong to multiple organisations simultaneously. The dashboard shows the currently active organisation, and users can switch between them from the sidebar.
Each organisation is fully isolated:
- Separate billing —each org has its own Stripe subscription
- Separate members —a user in Org A has no access to Org B unless invited
- Separate resources —tunnel configs, API keys, and tokens are org-scoped
- Separate settings —each org configures its own preferences
Departments
Departments add a grouping layer between organisations and teams. They are optional and can be enabled per organisation.
When departments are enabled:
- Teams belong to departments instead of directly to the organisation
- Department heads can manage teams within their department
- Resources can be scoped to a department level
When departments are disabled (the default for smaller teams), teams belong directly to the organisation.
Teams
Teams are the primary unit for organising people and resources:
- Each team has a lead and members
- Tunnel configurations can be scoped to a team
- API keys can be restricted to team-level access
- Team leads can manage their team’s membership
Creating a Team
- Go to Account > Organisation > Teams
- Click Create Team
- Assign a team lead and add members
Only organisation owners and admins can create teams.
Data Model
| Table | Purpose |
|---|---|
organisations | Organisation records with settings |
organisation_members | User-org relationships with roles |
departments | Optional department groupings |
teams | Teams with leads and members |
All tables use Row Level Security (RLS) policies. Permission checks use SECURITY DEFINER functions to avoid recursive policy evaluation.
Related Guides
- Onboarding — how default organisations are created during signup
- RBAC — role-based access control and permissions
- Invitations — invite members to your organisation