Skip to main content
Every authenticated user can inspect project definitions and live operational state. Mutating operations, plus reading raw source messages, require an explicit permission. System administrators can perform every operation; everyone else receives permissions from project roles in access.yml. This keeps responsibility split cleanly:

Define roles

Commit access.yml at the project root:
stb compile rejects unknown roles, pipelines, permissions, keys, and invalid scopes. The built-in admin and viewer roles cannot be redefined. Account management and role assignment remain system-administrator operations and cannot be granted in this file.

Choose a scope

Each grant contains exactly one scope: The permission vocabulary is intentionally closed:

Assign roles

Open Users, select an account, and choose a compiled role. Leave the target empty to assign the role across every target, or enter one target name to constrain it. For example, assign Alice: The page shows the roles compiled from access.yml as read-only definitions and lists Alice’s assignments separately. Assignment changes apply on the next request. If a role is later removed from access.yml, its assignment is shown as stale and authorizes nothing.
Users administration showing project role assignments by target and read-only compiled grants

Understand enforcement

The UI disables controls the current user cannot operate, but the API is the security boundary. StreamBuild derives the actual affected pipelines from the compiled plan or warehouse metadata; it does not trust pipeline names supplied by the browser. An operation must be authorized in full. If Alice selects payments_ingestion and an unauthorized customer_exports pipeline in one build, StreamBuild rejects the whole request:
There is no partial execution. Missing policies, missing assignments, stale roles, target mismatches, unknown pipeline ownership, and incomplete pipeline coverage all fail closed.
Prefer several small roles that describe jobs people perform over one broad operator role. Users can hold multiple roles, and their grants combine to cover an operation.