Skip to content

docs(adr): ADR-0091 (Proposed) — grant lifecycle: effective-dated assignments, delegation, break-glass, recertification substrate - #2751

Merged
os-zhuang merged 1 commit into
mainfrom
claude/adr-0091-grant-lifecycle
Jul 10, 2026
Merged

docs(adr): ADR-0091 (Proposed) — grant lifecycle: effective-dated assignments, delegation, break-glass, recertification substrate#2751
os-zhuang merged 1 commit into
mainfrom
claude/adr-0091-grant-lifecycle

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Summary

Drafts ADR-0091, the first named follow-up from ADR-0090 (§Non-goals #1): making time a first-class axis of authorization. Status is Proposed — the decisions below are open for review; nothing is implemented by this PR.

The seven proposed decisions

  • D1 — Effective dating: valid_from / valid_until (half-open, UTC) + lifecycle-audit columns (reason, delegated_from, last_certified_at/certified_by) on sys_user_position and sys_user_permission_set only. Bindings and record shares deliberately excluded (scheduled binding changes are a publish-track feature; share links already do time-boxed record access). Null = unbounded → zero migration.
  • D2 — Correctness = resolution-time filtering, fail-closed: an out-of-window row stops resolving in every resolver (core authz, explain, position-graph expansion, the D12 gate's own held-scope resolution). No background job needed for correctness (ADR-0049); explain reports "held until … — expired".
  • D3 — Delegation of duty (职务代理): self-service, time-boxed assignment of one's own delegatable: true position; mandatory valid_until + reason; dual audit (granted_by + delegated_from); no re-delegation. Substitution semantics (union) — the intersection rule stays agent-only.
  • D4 — Break-glass: pre-authorized dormant set, self-activated into a short time-boxed grant with mandatory reason + loud alert; deliberately unapproved (time box + alert + D5 review are the compensating controls).
  • D5 — Recertification substrate: framework ships attestation stamps + the D6 explain/matrix surfaces; campaign workflow (routing, escalation, auto-suspend, evidence export) is enterprise product designed in the cloud repo.
  • D6 — Agent grants time-boxed + task-attributed (ADR-0090 D10 hookup); enforcement lands with principal-linked user rows.
  • D7 — Open-core line: filtering correctness community; delegation UX / break-glass workflow / notifications / campaigns enterprise. Security correctness is never paywalled.

Placement rationale (per the docs-split decision)

Contract + semantics live here (framework, CI-governed, publicly auditable); implementation/product design for the enterprise half (campaign mechanics, activation workflow, notifications) will be a cloud-repo design doc referencing this ADR — no duplication.

Phasing

L1 spec+filtering (community-complete) → L2 delegation+break-glass shape with dogfood proof → L3 enterprise product docs/impl in cloud.

Verification

Docs-only (one new ADR file). No code, no changeset.

🤖 Generated with Claude Code

https://claude.ai/code/session_012oLzaP8n7A3YKFmgaHWC8H


Generated by Claude Code

…ignments, delegation, break-glass, recertification substrate
First named follow-up of ADR-0090. Seven decisions, all additive to the
v2 model: valid_from/valid_until on the two user-grant tables (null =
unbounded, zero migration); correctness = resolution-time filtering in
every resolver (fail-closed, no cleanup job required); self-service
delegation of delegatable positions (time-boxed, dual-audited, no
re-delegation); break-glass as pre-authorized dormant sets activated
into short time-boxed grants; recertification substrate in framework
with campaigns as enterprise product; agent grants must be time-boxed
and task-attributed (D10 hookup); open-core line keeps correctness
community and workflow enterprise.
Status: Proposed — decisions await review.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012oLzaP8n7A3YKFmgaHWC8H
@vercel

vercelBot commented Jul 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJul 10, 2026 8:39am

Request Review

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation size/m labels Jul 10, 2026
@os-zhuang
os-zhuang marked this pull request as ready for review July 10, 2026 09:22
@os-zhuang
os-zhuang merged commit af037cf into mainJul 10, 2026
15 checks passed
@os-zhuang
os-zhuang deleted the claude/adr-0091-grant-lifecycle branch July 10, 2026 09:22
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/m

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@os-zhuang@claude