Skip to content

Enforce repository-only authority for Boatstack runs - #298

Merged
bigboateng merged 1 commit into
mainfrom
feat/boatstack-authority-boundary
Aug 4, 2026
Merged

Enforce repository-only authority for Boatstack runs#298
bigboateng merged 1 commit into
mainfrom
feat/boatstack-authority-boundary

Conversation

@bigboateng

Copy link
Copy Markdown
Contributor

Summary

  • deny external resource deletion, lifecycle weakening, and public exposure through shell and MCP safety hooks
  • add a fail-closed repository-only authority receipt for managed runs
  • distinguish HOOK_GUARDED from CREDENTIAL_ENFORCED in structured preflight output
  • require issuer keys from an operator-protected external trust store so managed agents cannot self-author authority
  • update generated distribution documentation, configuration schema, and release notes

Safety boundary

Hooks remain defense in depth and block known unsafe command families without an in-session override. CREDENTIAL_ENFORCED is reported only when a short-lived signed receipt matches the repository, worktree, host session, principal, authority class, issuer, and expiry. Missing, stale, forged, mismatched, overprivileged, or agent-authored trust inputs fail closed.

Deployment, destructive recovery, public exposure, and cloud administration remain outside managed agent sessions.

Verification

  • go test ./...
  • go vet ./...
  • go build ./...
  • python3 -m unittest tests.test_product_loop
  • generated public distribution: 404 files match source
  • generated distribution go test ./...
  • release-note validation and commit-based preflight
  • exact incident-command, wrapper, whitespace, environment-prefix, shell, indirect, MCP, receipt-binding, and trust-store refusal tests

Disclosure-Reviewed: reviewed — public-safe only, private facet kept out of this commit
@bigboateng
bigboateng merged commit e3fa496 into main Aug 4, 2026
12 checks passed
@bigboateng
bigboateng deleted the feat/boatstack-authority-boundary branch August 4, 2026 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant