Forgecroft Docs
Guides / Access Control

Access Grants

Composable, fine-grained permissions that build on top of org roles.

What Are Access Grants?

Access grants are individual permissions given to a user or team on a specific resource. They complement org roles by providing granular control.

Creating a Grant

POST /access-grants
{
  "subject_type": "user",
  "subject_id": "user-uuid",
  "verb": "write",
  "resource_type": "workspace",
  "resource_id": "workspace-uuid"
}

The operation is idempotent — creating a duplicate grant returns 200 with the existing grant.

Verbs

VerbWhat it allows
readView the resource
writeModify the resource
deleteRemove the resource
manage_membersAdd/remove members
manage_grantsCreate/revoke access grants
triggerStart a run
applyExecute an apply run
approveApprove a pending run
rejectReject a pending run
abortCancel an in-progress run
force_unlockRelease a stale state lock
useUse the resource

Resource Types

org, project, workspace, run, credential, vcs, state_backend, tool_config, policy_set, team, approval_rule, notification.

Escalation Prevention

A user can only grant a verb they already hold. You cannot give permissions you don’t have yourself. This prevents privilege escalation through the grant system.

Who Can Grant

Who Can Revoke

Listing Grants

GET /access-grants?subject_type=user&resource_type=workspace

Non-admin callers can only list their own grants — their query params are overridden to force subject_type=user and subject_id=caller.