temporality
RUEdit this page↗
Administration

Org structure, users and policies

The department tree, roles and grants, projects and visibility. Org Policies — every dimension, inheritance and the run's effective policy.

Three access layers work together in Temporality: who the person is (user, role, job title), where they stand (org structure, units, projects) and what they are allowed to do (policies on units). Managed on the Organization page (/org, admin) and Users (/users, admin).

#Org structure

The department tree expresses how the company is organized — and configures access through it: by structure, not by scattered lists.

#Users and roles

The Users page (/users): creation, role, job title, unit, bearer tokens, password, notification channels, the active toggle.

Field Meaning
Role Platform permissions: reader < writer < operator < admin (alias viewer = reader)
Job title The person's function ("QA engineer") — the natural address for group questions, see Job titles and groups
Unit Position in the org structure — leads to the unit's policies
Projects Visibility scope: only allowed projects (or all with *)
Role Can
reader Read: dashboard, traces, knowledge, timeline
writer Start tasks, create project resources
operator Approvals, reconcile undecided operations, knowledge invalidation
admin Users, providers, channels, org structure, everything else

Org-unit role grants (org_unit_role) upgrade a person's role locally: a grant of operator on a unit applies to the unit and its whole subtree without changing the global role — "senior engineer of their department" gets operator rights only in their part of the structure.

Authentication is password-first (the "Password | API token" form); tokens serve service accounts and scripts; external SSO (OIDC) with JIT provisioning — Administration → External authentication.

#Policies (Org Policies)

A policy is a set of restrictions attached to an org unit (or to the whole installation when no unit is set). Inheritance flows top-down: a run is governed by the merge of every policy in its position — global, the project's units and the initiator's unit — by the rule "can only narrow". A child policy can never loosen an ancestor's restriction.

Dimension Restricts
allowed_models Which models the agent may use (name list; empty = any)
allowed_mcp Which MCP servers are available
max_tokens, max_budget_usd, timeout_seconds Per-run ceilings: tokens, dollars, time
network_mode: deny Disables the sandbox network entirely
sandbox_mode: read_only Read-only sandbox
approval_mode: tools Consequential tools require human approval (+ behavior monitoring)
egress_allowlist The external-destination baseline (unioned with the agent's own list)
intake_mode: deny Bans channel-initiated tasks for the subtree
filesystem: read / write / deny Filesystem areas: read, write (write is always inside read), absolute deny — see below

#File rules

filesystem uses glob masks over project paths:

{
  "filesystem": {
    "read":  ["**"],
    "write": ["src/**", "tests/**", "docs/**"],
    "deny":  ["secrets/**", "deploy/production/**"]
  }
}

#The run's effective policy

The policy is frozen at run start and never changes mid-run: policy changes do not raise a running process's privileges (new runs take the current one). The journal keeps the snapshot version (policy_version) — it shows which rules authorized the run.

Delegation never widens access: child runs inherit the initiator's security context — the whole delegation tree works with the permissions of the human who started the work, regardless of the agents' Lead/Coder/ Reviewer roles.

Automated runs (webhooks, schedules, triggers) act as an execution identity — a service identity with its own allowed lists and human_targets re-checked at every critical step. Policies resolve from the identity's org position.

#In the interface

See also: Personalization — how agent knowledge accounts for people; internals — docs/org-structure.md.