Skip to content

Activation E2E: trusted CAPPO request preparation - #57

Draft
reprewindai-dev wants to merge 11 commits into
mainfrom
activation-e2e-authority-binding
Draft

Activation E2E: trusted CAPPO request preparation#57
reprewindai-dev wants to merge 11 commits into
mainfrom
activation-e2e-authority-binding

Conversation

@reprewindai-dev

Copy link
Copy Markdown
Owner

Implements the server-side trust seam for Veklom Activation without creating a second consequence path. The protected cAPI preparer derives and signs the CAPPO security envelope, WIT/ECT/WPT/Authority chain and RFC 9421 request over the exact body and trust-bearing headers. Caller-selected workspace, actor, directive and security material are not trusted. The legacy cAPI execution endpoint remains retired; CAPPO /v1/exec remains the sole consequence boundary.

Verification required before merge: npm test and production build via cAPI CI.

@vercel

vercelBot commented Aug 30, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
c-apiErrorErrorAug 30, 2026 10:21pm
veklom-id-59uwErrorErrorAug 30, 2026 10:21pm

@coderabbitai

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
auto_review:
drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@reprewindai-devreprewindai-dev left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merge hold: the exact-head CI is green, but the implemented trust boundary does not yet match the PR's stated contract. POST /api/internal/cappo/prepare authenticates only possession of CAPPO_INTERNAL_EXEC_KEY, then accepts executionId, workspaceId, and actorId from the request JSON and signs those values into WIT/ECT/WPT/Authority. The unit test calls these function parameters “trusted,” but does not prove the route derives them from an authenticated server-side session/principal or otherwise binds the shared internal credential to an allowed workspace/actor. A bearer of the internal key can therefore select an arbitrary actor/workspace and cause cAPI to mint a signed authority chain for it.

Before this activation seam can be promoted or merged, derive workspace/actor/execution identity from a trusted server-side source (or validate them against an authenticated principal/allowance that the caller cannot widen), add route-level negative tests proving spoofed workspace/actor/execution values cannot be signed, and keep caller-provided directive/security stripping plus exact-body/header signature tests. If the intended contract is instead that this shared key is itself a fully trusted authority issuer, narrow the PR/body and architecture truth accordingly rather than claiming caller-selected identity is not trusted. Source/build evidence remains green; deployed cAPI 3003 remains NOT_VERIFIED.

Sign up for freeto 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

@reprewindai-dev