Docs / User Management

IAM roles & permissions

Isoward IAM is workspace-scoped (no per-service bindings yet). Built-in roles map to fixed permission sets. Admins can create custom roles with any subset of the permission catalog and assign them to members, invites, and API keys.

Manage in the dashboard

Open Team → Roles & permissions to list built-in and custom roles, create roles with grouped permission checkboxes, and delete unused custom roles. Member and API key selectors include custom roles automatically.

Permission catalog

Permissions are checked on mutating API routes. Grants are workspace-wide.

Services

PermissionWhat it grants
services.readList and view services
services.writeCreate and update services
services.deleteDelete or suspend services

Deploys

PermissionWhat it grants
deploys.readView deploy history and status
deploys.writeTrigger deploys and rollbacks

Environment & secrets

PermissionWhat it grants
env.readRead environment variable metadata
env.writeCreate and update environment variables
secrets.readReveal secret values

Domains & data

PermissionWhat it grants
domains.writeManage custom domains
datastores.writeCreate and manage Postgres / Key Value

Team & IAM

PermissionWhat it grants
team.readView members, invites, and roles
team.manageInvite, remove, and change member roles
iam.roles.manageCreate, edit, and delete custom roles
apikeys.manageCreate and revoke API keys

Workspace

PermissionWhat it grants
workspace.manageWorkspace settings and maintenance
billing.manageBilling and plan changes
audit.readRead audit logs
github.manageConnect and manage GitHub installs

Built-in roles

RolePermissions
viewerservices.readdeploys.readenv.readteam.read
developerViewer set plus write access for services, deploys, env, secrets, domains, datastores, and GitHub (11 permissions).
adminAll permissions in the catalog (full workspace control).

API

List the caller's effective permissions:

http
GET /v1/permissions
Authorization: Bearer $ISOWARD_API_TOKEN

List or fetch roles (team.read):

http
GET /v1/roles
GET /v1/roles/:id
Authorization: Bearer $ISOWARD_API_TOKEN

Create, update, or delete a custom role (iam.roles.manage):

http
POST /v1/roles
Authorization: Bearer $ISOWARD_API_TOKEN
Content-Type: application/json

{
  "name": "deployer",
  "description": "Deploy without team admin",
  "permissions": ["services.read", "deploys.read", "deploys.write"]
}

PATCH /v1/roles/:id
DELETE /v1/roles/:id

See also Teams & invites and API keys.