Repository navigation
RFC-0025: Optional Namespace Agent author role - #4045
cooktheryan wants to merge 20 commits into
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: blocked before merge. What this changesThis PR proposes an optional human-only Agent Author Role, its Namespace-wide permissions, and an implementation plan. Example: An administrator delegates Agent management in the default Namespace.
Review scores
ProductKind: Feature · Worth it: Needs a maintainer decision · Fix scope: Complete Merge readiness⛔ Blocked before merge - 2 items remain Keep open for maintainer review: the proposal addresses a real delegation gap, and no actionable document defects remain. Priority: P3 Decision needed
Before merge
FindingsNone. Agent review detailsHow this fits togetherOCC authenticates callers and uses the selected IAM Driver to authorize resource operations; the proposal extends managed bindings and transactional credential grants within that existing path. flowchart TB
Admin[Installation administrator] -. Proposed assignment .-> IAM[Selected IAM Driver]
Human[Human Principal] --> Console[OCC Console and API]
Console --> IAM
IAM -. Proposed authorization .-> Resources[Namespace Agents and resources]
Resources -. Exact credential grants .-> Agent[Agent ServicePrincipal]
Technical reviewBest possible solution: Resolve the explicit authority and IAM contract decision before landing this RFC ahead of its linked implementation. Do we have a high-confidence way to reproduce the issue? This is a feature proposal; current source and existing integration assertions confirm the supported policy API cannot delegate create permissions. Is this the best way to solve the issue? The proposal reuses OCC, the selected IAM Driver, and existing transaction owners, while clearly exposing the broad credential authority that requires an owner decision. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 5a61a08eec78. Provenance checked
SecurityNone. EvidenceWhat I checked:
LabelsLabel changes: No label changes. Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment HistoryReview history (9 earlier review cycles; latest 8 shown)
Reviewed October 29, 2026, 7:00 PM ET / 23:00 UTC (Revision 10). |
|
@clawsweeper re-review the current RFC revision, including the proposal scope, permission boundaries, and RFC numbering. |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review current RFC-0024 revision; check the required file set, numbering sequence, and proposal requirements. |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review RFC head The RFC now explicitly retains credential grants needed by queued and claimed deployments and requires assigned-human Stop/Delete proof, rejection after revocation, restored authority after reassignment, and evidence that Restrictions actually applied. The plan adds superseding qualification for runtime commit cd6683b and distinguishes it from merge follow-up d19e91a. Earlier evidence and Manual Notes are preserved; the corrected reports supersede the earlier Restriction and assigned-user lifecycle claims. The opening description links the updated assertions, stage output, regression record, media in #4059, and explicit failed-attempt limits. Full Compose qualification remains blocked at startup. Current-head CI and maintainer acceptance remain open. The RFC stays Proposed, with implementation unmerged. Formatting, whitespace and relative-file link checks passed, and all ten evidence links checked returned HTTP 200. Independent GPT-6.1 Sol document review found no actionable defects. Full docs/length/spec checks remain blocked by missing local documentation dependencies; no dependencies were installed or product tests run for this prose-only change. Dependency-independent estimates are about 1,200 words for the RFC and 2,000 for the coherent delivery plan, below the 2,500-word limit. |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review current head
This automated follow-up reports observed GitHub workflow state; it does not claim a failure was repaired or that maintainer approval was granted. Please re-evaluate the current revision and evidence. |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review RFC head The remaining author finding is fixed: specs/README.md now reports 9 implemented, 8 partially implemented, and 8 not implemented RFCs, matching its 25 rows. I checked the row inventory directly; formatting and whitespace checks pass. This is a documentation-only correction, with no product tests or permission changes. The RFC decision remains Proposed and needs maintainer acceptance. |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review current head
This automated follow-up reports observed GitHub workflow state; it does not claim a failure was repaired or that maintainer approval was granted. Please re-evaluate the current revision and evidence. |
|
🦞👀 Re-review progress:
|
Summary
principalIdlookup and transactional managed Namespace bindings; unsupported selected Drivers fail closed without fallback.The assignment authorizes credential consumption through user-controlled Agents. Hidden Secret metadata values do not prevent those workloads from using or exposing supplied credentials. Use separate Namespaces for users who must not share that authority; runtime isolation and network enforcement remain operator responsibilities.
ServiceAccount credential issuance is excluded. Initial Agent runtime credential provisioning remains permitted through Agent read/operate and the existing lifecycle checks. These clarifications do not change the proposed permissions.
Research
Current Namespace policy cannot grant
agent:create, while the Agent workflow needs collection-level authority and permissions on supporting resources. Kubernetes RoleBindings do not authorize OCC API requests, and OCE Agents are not Kubernetes custom resources. The proposal therefore uses OCC authorization and grants no Kubernetes API access.The optional Role supports self-service through the existing Console and keeps Installation administration with operators. Operators must assign it only where shared access to all matching Namespace resources is intended. AWS is only a validation environment; the proposal adds no AWS-specific product behavior.
Files
specs/README.mdspecs/rfcs/0025-agent-author-role.mdspecs/plans/0025-agent-author-role.mdFeasibility evidence
cd6683bb3, all six recorded Kubernetes QA stages passed, including model execution, credential replacement, activation cleanup, and the assigned-human lifecycle. The human performed Stop, was denied Stop/Delete after revocation, and performed Delete after explicit reassignment. Database return values confirmed the Restriction fixture was inserted and removed. These results supersede earlier artifacts for persisted Restrictions and assigned-user Stop/Delete.EACCESonchown /routing/gateway-api-key. An initial concurrent Kubernetes run failed at browser login withERR_NETWORK_CHANGED; its sequential retry passed. Redacted attempt outcomes preserve these limits. The test clusters/databases were removed and the validation host was stopped.d19e91ad6merges main and repairs integration and generated API documentation. Module-policy checks passed 2/2, Create Agent browser checks 18/18, and lint, typecheck, formatting, OpenAPI and workspace checks passed. Runtime qualification remains tied tocd6683bb3; current-head CI is not established by earlier results.Documentation checks
Index correction
4b6e76f80makes the summary match all 25 RFC rows: 9 implemented, 8 partially implemented, and 8 not implemented.Formatting and whitespace checks passed. Local length, documentation, and spec checks remain blocked by missing
@sindresorhus/slugify; no dependencies were installed. Dependency-independent estimates put the RFC near 1,200 words and its plan near 2,000, below the 2,500-word limit. The plan stays together as one delivery record with historical and superseding qualification. Manual Notes and historical results are preserved.The RFC remains Proposed, with implementation unmerged. Maintainer acceptance of the IAM contract and shared Namespace/Secret authority remains open.
Review focus
principalIdlookup and transactional Namespace bindings acceptable, with unsupported Drivers failing closed?