Skip to content

[CF-DATAPLANE][CPEX] Resolve scoped bindings and typed extensions - #128

Draft
lucarlig wants to merge 2 commits into
mainfrom
user/luca/issue-6253-cpex-typed-extensions
Draft

[CF-DATAPLANE][CPEX] Resolve scoped bindings and typed extensions#128
lucarlig wants to merge 2 commits into
mainfrom
user/luca/issue-6253-cpex-typed-extensions

Conversation

@lucarlig

@lucarlig lucarlig commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

  • replace the singleton CPEX runtime with an atomically swapped catalog of immutable runtimes keyed by validated revision
  • select the exact runtime revision from each authenticated principal and virtual-host binding, while pinning it across pre, streamed, and post lifecycle calls
  • resolve and cache bounded, immutable dispatch plans for each ordered target binding before invoking CPEX entries
  • reject unknown config fields, unsupported CPEX options, empty names/revisions/lists, duplicate names, stale revisions, and unknown or incompatible plugins
  • pass None to CPEX when a post-only hook is the first lifecycle hook
  • retain capability-gated typed extensions and canonical backend-local tool, prompt, and resource routing
  • verify direct and namespaced password-resource redaction with the bundled secrets-detection plugin

Runtime contract

This intentionally replaces the unstable version 2 single-snapshot document. Version 3 is an atomic catalog:

{
  "version": 3,
  "snapshots": {
    "revision-id": {
      "plugins": []
    }
  }
}

The control plane must retain a revision in this catalog while any published UserConfig.plugin_bindings can reference it. Targets with no plugins are omitted; a revision is required whenever a target binding exists. There is no version 2 fallback.

The Control Plane publisher in IBM/mcp-context-forge#6252 must publish this catalog and matching effective-binding revisions before runtime plugins are enabled.

CPEX alignment

Verification

  • cargo nextest run --workspace --all-features (238 passed, 13 skipped)
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo deny check
  • cargo shear
  • cargo fmt --all -- --check
  • signed commit hooks, including IBM Detect Secrets

Closes IBM/mcp-context-forge#6253

Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
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.

[CF-DATAPLANE][CPEX] Resolve scoped bindings and pass safe typed extensions to MCP hooks

1 participant