Skip to content

docs: proposed plan for cpex-openshell integration#123

Merged
araujof merged 3 commits into
devfrom
feat/openshell
Jul 17, 2026
Merged

docs: proposed plan for cpex-openshell integration#123
araujof merged 3 commits into
devfrom
feat/openshell

Conversation

@imolloy

@imolloy imolloy commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a draft proposal (docs/plans/2026-06-17-001-feat-cpex-openshell-integration.md) exploring whether CPEX can provide an optional, operator-owned identity and fine-grained authorization layer for OpenShell's L7 egress proxy. This is a solicitation for feedback — not an implementation, and not a drop-in replacement for the existing OPA/regorus policy path.

The proposal frames a Phase 0 compatibility and threat-model spike as a decision gate before any in-tree product integration. It documents the current OpenShell and CPEX integration context (including hard blockers like the Rust 1.96 vs. 1.95.0 MSRV mismatch), sets design constraints, and sketches a phased delivery plan.

What's in the doc

  • Invariants — OpenShell retains L4/SSRF/process/canonicalization/credential-protection; CPEX cannot widen the baseline; deny always wins; identity must be authenticated with provenance; failure is closed; no secret disclosure.
  • Initial scope — narrow CPEX authorization adapter for REST request admission, one local PDP (Cedar or CEL after spike), operator-owned digest-pinned bundle. Explicitly excludes JWT/OAuth exchange, response mutation, PII, taint/session state, Valkey, and non-REST protocols in v1.
  • Configuration ownership — gateway-owned bundle registry (preferred) or typed SandboxPolicy protobuf reference; no inline APL in agent-editable policy.
  • Evaluation order, minimal L7Authorizer interface, EffectiveL7Policy snapshot semantics for atomic reload.
  • Phased plan — Phase 0 spike → Phase 1 RFC → Phase 2 refactor → Phase 3 feature-gated shadow-then-enforce pilot → Phase 4 separately approved follow-ups.
  • Validation matrix, non-goals, and requested feedback — with explicit questions on ownership model, identity source, PDP choice, and pilot SLOs.

Non-goals for this PR

  • No code changes, no schema changes, no dependency additions.
  • No commitment to adopt CPEX — Phase 0 is a decision gate, and rejection is a valid outcome.

araujof added 2 commits July 17, 2026 15:59
Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>

@araujof araujof left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nice job! LGTM

@araujof
araujof changed the base branch from main to dev July 17, 2026 20:16
@araujof
araujof merged commit 70e721f into dev Jul 17, 2026
9 checks passed
@araujof
araujof deleted the feat/openshell branch July 17, 2026 20:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants