feat(policy): preserve exact MCP revision allowlists - #3027
Conversation
Signed-off-by: Shiju <shiju@nvidia.com>
Signed-off-by: Shiju <shiju@nvidia.com>
3ffdf2e to
cbc0b20
Compare
Signed-off-by: Shiju <shiju@nvidia.com>
f6de66d to
cc9343d
Compare
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
The exact MCP revision allowlist is carried through the intended policy, profile, storage, SDK, and documentation surfaces, but the supervisor's protobuf ingress rejects the newly documented omitted/defaultable representation before it can be canonicalized.
Action required: Canonicalize defaultable MCP policy protobufs at supervisor ingress and add regression coverage before test dispatch.
Blocking findings:
GATOR-cc9343d3-01: Supervisor protobuf loading rejects omitted or empty MCP version lists instead of materializing the pinned default.
Carried findings:
- None
Gator metadata
- Validation: Project-valid policy feature linked to issue #2954; the operator explicitly requested review and monitoring.
- Docs: Fern policy documentation and architecture guidance are updated.
- Checks: Current-head branch and required gates are green; required E2E has not yet been dispatched.
- E2E:
test:e2eis required for policy/gateway/supervisor behavior but waits for blocking review feedback to resolve. - Head SHA:
cc9343d307642b1665144d19e1e731084dd0effb - Base SHA:
c93b2fa7da3a40a6dd6c077973cb13d2755f7e50 - Merge base SHA:
0f0c94bda3a2056bd3413accd13e361488288cc4 - Patch ID:
9c4005b9b01cad006e15c06c59e74b709717c92f - Gator payload:
8 - Review mode:
initial - Previous reviewed SHA: none
- Review budget exhausted: no
- Maintainer decision required: no
- Next state:
gator:in-review
Materialize defaultable MCP revisions before ambiguity checks, OPA construction, and sidecar delivery. Reject invalid sidecar policies with bounded errors. Signed-off-by: Shiju <shiju@nvidia.com>
|
Label |
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
The follow-up review confirms that the latest commit canonicalizes defaultable MCP policy protobufs at the supervisor ingress paths and adds regression coverage. The prior blocking finding is resolved, and no new blocking findings were found in the author-only delta.
Blocking findings:
- No blocking findings remain
Carried findings:
GATOR-cc9343d3-01: resolved by the current head; the Gator-owned thread has been closed.
Gator metadata
- Validation: Project-valid exact MCP revision allowlist feature linked to issue #2954.
- Docs: Fern policy documentation and architecture guidance are updated.
- Checks: Current-head branch checks are still running.
- E2E:
test:e2eis applied; the current-head E2E Label Help workflow is still determining the required dispatch action. - Head SHA:
c6f1857c70463ecb8e1cf596945c24c074daf686 - Base SHA:
c93b2fa7da3a40a6dd6c077973cb13d2755f7e50 - Merge base SHA:
0f0c94bda3a2056bd3413accd13e361488288cc4 - Patch ID:
3d3f6cee5bf2532265695ed52293e0ebcca2acdc - Gator payload:
8 - Review mode:
follow_up - Previous reviewed SHA:
cc9343d307642b1665144d19e1e731084dd0effb - Review budget exhausted: no
- Maintainer decision required: no
- Next state:
gator:in-review
Monitoring CompleteMonitoring is complete because this PR has merged. Final status: Gator review converged with no blocking findings remaining, maintainer approval was present, and the required Branch Checks, Helm Lint, and E2E gates passed. I removed the active Gator metadata
|
Summary
OpenShell cannot apply revision-specific MCP rules unless each inspected endpoint carries the exact revisions it allows. This PR adds a nonempty
mcp.versionsallowlist and preserves its validated value through provider profiles, policy storage and composition, merge checks, hashing, history listing, sandbox configuration, and SDK conversions. Omitted lists become exactly["2025-11-25"], explicit lists are sorted, and invalid or duplicate entries are rejected so a later registry change cannot widen a stored policy.Related Issue
Closes #2954.
Part of #2174.
Changes
2025-03-26,2025-06-18, and2025-11-25, including the batch-shape facts needed by runtime enforcement. Add an exactmcp.versionsallowlist to protobuf, provider profiles, policy YAML, and the Go SDK. Empty lists, duplicates, padded strings, unsupported dates,draft, andlatestare rejected. An omitted allowlist materializes as exactly["2025-11-25"]; the stored default never follows the newest registry entry.Testing
mise run pre-commitpassesChecklist