mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-19 05:50:41 +08:00
Add policy schema, proto, provider profile, OPA, and L7 proxy support for `protocol: json-rpc` and `protocol: mcp`. Generic JSON-RPC endpoints match exact method names only, with `method: "*"` as the all-method sentinel; wildcard/glob methods and params matchers are rejected. Parse JSON-RPC request bodies and batches in the forward proxy, deny response-shaped client frames, limit receive-stream GET allowance to MCP endpoints, and redact params in decision logs. Preserve L7 rule params on the proto load path so MCP `tools/call` tool filters behave like YAML-loaded policies. Add MCP conformance coverage, JSON-RPC L7 e2e coverage, and docs for the new protocols and current matcher limitations. Signed-off-by: Kris Hicks <khicks@nvidia.com> Co-authored-by: ddurst <267424412+ddurst-nvidia@users.noreply.github.com>
27 lines
942 B
Docker
27 lines
942 B
Docker
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
FROM public.ecr.aws/docker/library/node:22-bookworm-slim
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends ca-certificates iproute2 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
ARG SANDBOX_UID=1000660000
|
|
ARG SANDBOX_GID=1000660000
|
|
|
|
# Match the sandbox user expected by OpenShell policies and supervisor setup.
|
|
# The UID/GID are intentionally outside Debian's default login.defs range.
|
|
RUN groupadd -K "GID_MAX=${SANDBOX_GID}" -g "${SANDBOX_GID}" sandbox \
|
|
&& useradd -K "UID_MAX=${SANDBOX_UID}" --no-log-init -m -u "${SANDBOX_UID}" -g sandbox sandbox
|
|
|
|
WORKDIR /opt/mcp-conformance
|
|
|
|
COPY . .
|
|
RUN if [ -f package-lock.json ]; then npm ci; else npm install; fi
|
|
RUN npm run build
|
|
RUN chown -R sandbox:sandbox /opt/mcp-conformance /home/sandbox
|
|
|
|
USER sandbox
|
|
CMD ["sleep", "infinity"]
|