Occlude
Book a call
All docs pages

Docs

Grants and sessions

AvailableSigned manifestsPlannedApprovals in the admin consoleReviewed 29 October 2026

A grant is a time-boxed permission set bound to one unit of work. A session is the workspace that grant opens. When the grant ends, the session ends with it.

A grant

ElementContent
PurposeOne sentence: the ticket, the pull request, the agent's plan
ScopeThe file set, resolved from a profile plus the task's declared output paths
Time boxA time to live. Expiry revokes everything. No standing grant to clean up
Risk at declarationCounted, not guessed: this task's scope touches N Occluded paths and M Absent paths. Any Absent path holds the grant for approval
RevocationAutomatic at the end or at expiry; manual from the console, which closes a live session

A session's scope is the per-path minimum of three things: the profile, the grant, and the granting admin's own access. Nobody grants what they do not hold.

Lifecycle

StateMeaningNext
declaredPurpose, scope and time box submittedheld if any Absent path is in scope, otherwise approved by policy
heldWaiting on the named approver, shown to the requesterapproved or refused
approvedThe manifest is signedactive when a workspace accepts it
activeThe workspace is running; doors may attachexpired, revoked or ended
amendingA live session reached an Absent path, or the admin widened the scopeApproval signs a new manifest and the workspace reloads; refusal leaves the session as it was
expired, revoked, endedThe workspace is destroyed; the visible changes are kept for the exportFinal

A grant is revoked from the console, by a change to the repository's policy, or by your SSO provider: when someone is deprovisioned, every grant they hold ends, including the sessions of agents running under their grants.

The Absent hold, and reload

When a live session reaches for an Absent path, the process gets ENOENT, because the path was never mounted. The request is surfaced inline on the door it came from, an agent run pauses, and the named approver is asked.

If they approve, the grant is amended, a new manifest is signed, and the workspace applies it in place: the person's processes keep running, build jobs restart, and the newly permitted path is mounted. If they refuse, nothing changes. Both outcomes are on the record.

From declaration to close

  1. A grant is declared: by an admin, from a contractor's ticket, or from an agent's plan. Risk is counted.
  2. If it is held, the named approver answers.
  3. Occlude resolves the profile, the grant and the grantor's access into a manifest, and signs it.
  4. A workspace starts and verifies the signature.
  5. The workspace mounts the real tree minus Absent paths, prepares stubs, and opens the person's side.
  6. A door attaches. It is authenticated against the grant; a door never holds the workspace's own credentials.
  7. Every decision is buffered and flushed to the record.
  8. At the time limit, on revocation, or when the last door has detached and an idle timeout passes, the person's processes stop, then the build's jobs, then the workspace is destroyed. The export is ready.

What fails closed

What failsWhat happens
The manifest is invalid, expired or unsignedNo person's side is ever created
A secret the build needs is missingThe job that needs it fails with a named error; nothing falls back to a file
The Occlude service is unreachable mid-sessionThe session runs until its time limit and the record buffers; a full buffer pauses the person's side
The file view failsThe person's processes are stopped before the mount can be reused, and the session ends as faulted
The time limitEnforced by the workspace's own clock. Revocation from the service is a second path, not the only one