Repository navigation
docs(roles): say which operations a role allowlist can grant - #685
Conversation
A role's operations allowlist could list deploy_component, restart_service, set_configuration, the status operations, and a dozen more without ever being granted them; harper core now grants them as listed. Document the canonical-name rule for aliased operations, the super_user operations a listing still cannot grant, the upgrade effect in the 5.3 release notes, and a least-privilege deploy role next to the OIDC trust-policy scope. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request updates the documentation and release notes for Harper v5.3.0 to clarify operation permissions. It highlights that twenty previously restricted operations, such as deploy_component, can now be granted by listing them, enabling least-privilege CI deployment. It also details how aliased operations are handled and lists operations that remain restricted. The review feedback suggests splitting a security warning regarding literal credentials into separate sentences to improve readability and ensure critical security advice is easily scannable.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nted it add_role and alter_role check only that each operations entry is a known name, so a role can hold catchup, get_backup, or a secrets-store operation; the call is what gets refused. Earlier releases likewise stored a listing of deploy_component and the other nineteen while refusing the call. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
cb1kenobi
left a comment
There was a problem hiding this comment.
The latest commit fixes the allowlist-storage wording already raised on the users-and-roles overview. The docs now say a role can store a known non-grantable name while the call is still refused, and that the twenty previously silent operations are granted as listed on upgrade. The literal-token caveat remains its own sentence. No remaining blocking contradiction was found on the changed lines.
—
Reviewed cf1e886
Companion to HarperFast/harper#2809, which makes a role's
operationsallowlist grantdeploy_component,restart_service,set_configuration, the status operations, and the other operations it silently refused (their authorization entries had no API name, so the allowlist checked a handler name no role can list).reference/users-and-roles/overview.md(Operation Permissions): the canonical-name rule for the eight aliased operations, thesuper_useroperations a listing still cannot grant (secrets, OIDC trust policies,get_deployment_payload, managed backups,get_backup,read_transaction_log, and the legacycatchup, which harper#2809 now refuses), and, under the existing v5.3.0 badge, that the twenty operations earlier releases refused are granted as listed now.release-notes/v5-lincoln/5.3.md(Operation Allowlist Enforcement): the upgrade effect, since a role that already lists one of those operations gains it without an edit.reference/operations-api/operations.md(OIDC trust policy scope): a least-privilege deploy role (deploy_componentplusget_deployment), and why literal registry/git tokens still needsuper_useron a node with secret custody.Version badge: harper#2809 merged after v5.3.0-beta.2, which is still the newest tag, so the change ships in v5.3.0.
Verification
prettier --checkpasses on the three changed files, and CI's Format, Lint, TypeScript and Workflow Tests checks pass. The Docusaurus build passes inside Deploy PR Preview; only that job's upload to the preview host has failed, on the host's storage (out of disk quota, then a missing blob), not on this change.🤖 Generated with Claude Code