Skip to content

Plan: plugin architecture (D41–D46) — credential plane, sandboxing, harness admission, approval policy as plugins - #1

Open
itz4blitz wants to merge 1 commit into
mainfrom
plan/plugin-architecture
Open

Plan: plugin architecture (D41–D46) — credential plane, sandboxing, harness admission, approval policy as plugins#1
itz4blitz wants to merge 1 commit into
mainfrom
plan/plugin-architecture

Conversation

@itz4blitz

Copy link
Copy Markdown
Contributor

What

Turns today's security-architecture discussion into plan-level commitments: plugins are the extension mechanism for everything deployment-specific, and the first-party plugins ARE the security architecture.

New locked decisions (house format, consistent with D13/D17/D12/D23/D25/D40)

# Decision Extends
D41 Plugins, not PRs — multiplexer-plugin-api seams; users extend without forking D13, D20
D42 Manifest + declared capabilities, least-privilege, host-enforced; no ambient authority; deny-by-default egress
D43 CredentialProvider trait; 1Password as first-party flagship, service-account scoped to one automation vault, feeding the session cache D23 (unchanged — extended, not amended)
D44 SandboxProvider trait; container-first per-session isolation; the D25 independent-enforcement rule is implemented HERE D25
D45 HarnessAdapter trait; claude-code/codex/opencode/zcode admitted as plugins over generic ACP; the process boundary is a security feature, not a limitation D10, D17
D46 ApprovalPolicy plugin chain over the D12 4-way enum; the approval gate is a security boundary, policy plugins held to core testing bars D12, D21, D33

New plan doc

plan/21-plugin-architecture.md — trait sketches (CredentialProvider, SandboxProvider, HarnessAdapter, ApprovalPolicy), manifest + capability model, out-of-process plugin host (v1), threat-model mapping covering both exposures (credential readability and abuse-in-session use), milestone mapping on the D40 dependency spine (plugin API in Phase 1; sandbox + remote enforcement pull-forward parallel-safe), testing bars (no mock-only security tests), and open questions framed for adversarial review.

Why

The server-centric runtime makes multiplexer-server the trust boundary — but only if the server core stays minimal and the per-deployment variables (which vault, which sandbox, which harnesses, which approval strictness) live behind capability-scoped seams. This also keeps D23 honest: no live user-session op reads, ever; the vault bridge is the plugin's own narrowly-scoped auth.

Review notes

  • D43 is deliberately worded as an extension of D23, not an amendment — core SecretStore behavior is untouched.
  • D45 reframes (but does not edit) plan/01's framing of process-boundary adapters; plan/01 edit comes after review if the reframe is accepted.
  • plan/21 §8 carries three open questions intended for the adversarial review pass (pane plugin rendering, egress-policy ownership, credential TTL enforcement point).

…plane, sandboxing, harness admission, approval policy

Core stays small and security-reviewable; deployment-specific concerns
become capability-scoped plugins. First-party flagship plugins: 1Password
CredentialProvider (service-account scoped, feeds the D23 session cache),
container SandboxProvider (implements the D25 independent-enforcement rule),
ACP HarnessAdapters (claude-code/codex/opencode/zcode admission per D17),
and the ApprovalPolicy pack over the D12 4-way enum.

- docs/DECISIONS.md: D41–D46 appended (house format), summary table gains plan/21 row
- plan/21-plugin-architecture.md: new plan doc — trait seams, manifest &
  capabilities, out-of-process plugin host, threat-model mapping (credential
  readability + abuse-in-session), milestone mapping on the D40 spine,
  testing bars, open questions for adversarial review
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