Teams & Permissions
A team is a named group of organization members that gets shared access to one or more projects. Teams are how you say "the backend group can edit secrets on the API project; the frontend group is read-only."
The permission model
Each team grants a set of per-project permissions. The same four booleans apply everywhere access is granted (teams, service tokens):
| Permission | What it allows |
|---|---|
can_read | View the project, its services, secrets metadata (names only — never values), deployments, logs. On by default when a project is added to a team. |
can_change_gws_configs | Edit gws.json, services, profiles, watch configuration. Required for gws config import. |
can_change_secrets | Create, update, and delete secrets. Values are still write-only — no one ever reads them back. |
can_delete_project | Delete the project and everything it owns. Use sparingly. |
The four flags are independent — you can grant can_change_secrets without can_change_gws_configs, or vice versa.
Create a team
- Open Organizations → <your org> → Teams.
- Click Create team, give it a name (e.g.
backend,frontend,devops). - The team is created empty; you'll add members and projects next.
Add members to a team
- Open the team.
- Members sub-tab → Add member.
- Pick from the active org members (you can only add people who are already in the organization — see Inviting Members).
A user can be on multiple teams. Their effective per-project permissions are the union of all teams that grant access to that project — i.e. permissions are additive, not overridden.
Grant project access
- Open the team.
- Projects sub-tab → Add project.
- Pick a project in the organization and tick the permissions to grant.
can_readis the default; the others are off until you opt in.
To revoke access, remove the project from the team. To change permissions, edit the row.
Recipes
Read-only auditor team
can_read: ✓ (default)
can_change_gws_configs: ✗
can_change_secrets: ✗
can_delete_project: ✗
Useful for security or compliance roles that need to see deployments and config but not change anything.
App developers
can_read: ✓
can_change_gws_configs: ✓
can_change_secrets: ✗
can_delete_project: ✗
Devs can iterate on services, profiles, and watch config — but can't rotate production secrets.
DevOps / on-call
can_read: ✓
can_change_gws_configs: ✓
can_change_secrets: ✓
can_delete_project: ✗
Full operational access without the foot-gun of accidental project deletion.
Project lead
can_read: ✓
can_change_gws_configs: ✓
can_change_secrets: ✓
can_delete_project: ✓
Total ownership of a single project. Combine with org member role to keep blast radius small.
What the CLI sees
The CLI authenticates as a user, so it inherits whatever permissions the user's teams grant on each project. If gws secret set returns 403, it usually means a team is missing can_change_secrets for the project.
For CI and AI agents that should not be tied to a person, mint a service token with the exact permission set you want, scoped to one project.