Teams & roles
Everything on HostStack belongs to a team. Give each person the role they need, narrow a member further with permissions, and give CI an API key that can deploy but not much else.
Roles
Every member of a team has one of three roles:
ownerExactly one per team — whoever created it, until they transfer it. Can do everything, including deleting the team and changing other members' roles.
adminRuns the team day to day: deletes and suspends resources, manages members, API keys and billing.
memberBuilds and ships: creates projects, services and databases, deploys, and edits settings and environment variables. The default role for an invite.
What each role can do
| Action | Owner | Admin | Member |
|---|---|---|---|
| View resources, logs, metrics, deploys and billing | ✓ | ✓ | ✓ |
| Create projects, services and databases | ✓ | ✓ | ✓ |
| Deploy, roll back, restart | ✓ | ✓ | ✓ |
| Change service settings and environment variables | ✓ | ✓ | ✓ |
| Add a custom domain | ✓ | ✓ | ✓ |
| Remove a custom domain | ✓ | ✓ | — |
| Suspend, resume or delete a service, database or project | ✓ | ✓ | — |
| Database credentials, backups and restores | ✓ | ✓ | — |
| Create and revoke API keys | ✓ | ✓ | — |
| Invite and remove members, set member permissions | ✓ | ✓ | — |
| Add a card, open the billing portal, edit billing details | ✓ | ✓ | — |
| Rename the team | ✓ | ✓ | — |
| Change a member's role | ✓ | — | — |
| Transfer ownership, export team data, delete the team | ✓ | — | — |
Only an owner can remove another owner, and a team can't be deleted while it still has services, databases or other resources in it.
Invite someone
Open the team settings
In the dashboard, go to Settings → Team. You need to be an admin or the owner.
Enter their email and a role
Under Invite Member, enter the address and pick Member or Admin. You can't invite someone straight in as owner — transfer ownership instead.
They accept
If the address already has a HostStack account, they're added to the team straight away. Otherwise they get an email with an Accept invitation link; they create an account with that same address and join. The link expires after 7 days.
Pending invitations are listed under the form, where an admin can cancel them. An invitation can only be accepted by an account with the address it was sent to, so a forwarded link is useless to anyone else.
Narrow what a member can do
By default a member can do everything in the member column above. To restrict one, select them in the members table on Settings → Team. The Permissions for … grid lets you tick read, write, delete and deploy per area, or apply a quick preset:
| Preset | The member can |
|---|---|
| Read-only | See everything. Change nothing in projects, services, databases, billing or the team. |
| Developer | Create and change projects, services and databases, and deploy. Not delete them, and not change billing or the team. |
| Admin | Every box ticked — the same as no restriction. It doesn't make them an admin; change their role for that. |
Once a member has any permission set, they can do only what's ticked. The grants govern changes to projects, services (including their deploys and environment variables), databases, billing and the team; everything else keeps plain member access. Permissions don't apply to admins or the owner, who can always do everything their role allows.
Transfer ownership
The owner can hand the team to an existing member from the Transfer Ownership card on Settings → Team. The new owner is promoted, the previous owner becomes an admin, and both get an email. Invite the person first if they aren't a member yet.
Transfer is how you leave a team you own: the last owner can't be removed or downgraded.
API key permissions
API keys belong to a team, not to a person, and only work on that team. Admins and the owner create them under Settings → API keys, and each key gets one of two permission levels:
full_access Everything an admin can do. Owner-only actions — transferring ownership, deleting the team, changing roles — stay out of reach of every key.
deploy_only Everything a member can do, except the actions that need full access: writing or revealing environment variables, creating or revoking API keys, managing members, and billing. It can still create projects, services and databases, change service settings and deploy. Use it for CI jobs that only need to trigger deploys.
Creating a key
- The key starts with
hs_live_and is shown once. HostStack stores only a hash, so copy it when it's created; a lost key has to be replaced. - Optionally restrict it to IPv4 addresses or CIDR ranges (up to 50), and give it an expiry of 1 to 3,650 days. Without an expiry it lasts until it's revoked.
- The name and IP allow-list can be changed later. The permission level can't — create a new key and revoke the old one.
- Creating a key requires a verified email address.
Next steps
Was this page helpful?