Skip to content

Release/1.0.9 - #6486

Merged
ja8zyjits merged 10 commits into
mainfrom
Release/v1.0.9
Sep 1, 2026
Merged

Release/1.0.9#6486
ja8zyjits merged 10 commits into
mainfrom
Release/v1.0.9

Conversation

@prakhar-singh1928

@prakhar-singh1928 prakhar-singh1928 commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

[1.0.9] - 2026-08-31 - mTLS, OAuth Quick Wins, Tool Preview, Catalog Actions, and Security Hardening

Overview

Release 1.0.9 consolidates 42 PRs focused on inbound mTLS client certificate auth, MCP server OAuth improvements, tool preview and schema publishing, catalog gateway actions, TLS/SSL enhancements, and security hardening:

  • Security & Auth - Inbound mTLS (client certificate authentication), MCP server OAuth form quick wins (read-only redirect URI, drop password grant), session refresh and validate endpoints, default token creation to creator's personal team, and invisible Unicode stripping from stored auth credentials.
  • API & Platform - MCP handshake test endpoint for Test Connection and virtual servers, new tool preview permission and preview functions, tool schema publishing to dataplane, catalog gateway actions backend support, and gateway-side TLS override for end-to-end HTTPS.
  • Operations - Experimental UI added to compose, SSL/TLS exposed for gateway pods, TLS cipher suite exposure, automated catalog icon generation, and load test consolidation.
  • Documentation - Dynamic env production risk documentation for translate, live black-box test requirement policy.

Added

Security & Auth

  • Inbound mTLS (client certificate authentication) (#6352) - Added inbound mTLS support for client certificate authentication.
  • MCP server OAuth form quick wins (#6315) - Read-only redirect URI and dropped password grant from MCP server OAuth form.
  • Session refresh and validate endpoints (#6235) - Added session refresh and validate endpoints.

API & Platform

  • MCP handshake test endpoint for Test Connection (#5934) - Added MCP handshake test endpoint for Test Connection.
  • Tool preview permission (#6321) - Added new permission for tool preview.
  • Tool preview functions (#6360) - Added preview functions to the tools service.
  • Tool schema publishing to dataplane (#6348) - Publish tool schemas to the dataplane.
  • Catalog gateway actions backend (#6355) - Support catalog gateway actions in backend.
  • Gateway-side TLS override (#6422) - Added gateway-side TLS override for end-to-end HTTPS (closes #6266).

Operations & Tooling

  • Experimental UI in compose (#6320) - Added experimental UI to docker-compose.
  • SSL/TLS exposed for gateway pods (#6362) - SSL/TLS exposed for gateway pods.
  • TLS cipher suite exposure (#6483) - Exposed TLS cipher suite configuration.
  • Automated MCP server catalog icon generation (#6397) - Automated MCP server catalog icon generation.

Fixed

Security & Auth

  • Default token creation to creator's personal team (#6354) - Token creation now defaults to the creator's personal team.
  • Reject/strip invisible Unicode in stored auth credentials (#6350) - Gateway rejects or strips invisible Unicode in stored auth credentials.
  • Enforce component-aware directory confinement on admin log download (#6393) - Enforced component-aware directory confinement on admin log download.
  • Harden local A2A egress handling (#6399) - Hardened local A2A egress handling.

Gateway & Platform

  • Missing migration columns in migrate_enc_secret (#6324) - Added missing migration columns to migrate_enc_secret.
  • MCP handshake test endpoint for virtual servers (#6405) - Added MCP handshake test endpoint for virtual servers.
  • Gateway/tool/prompt/resource audit rows in activity feed (#6351) - Render gateway/tool/prompt/resource audit rows correctly in activity feed.
  • Cache StatefulHTTP JWT admin lookups (#6437) - Cached StatefulHTTP JWT admin lookups.
  • Normalize bundled catalog icon bounds (#6441) - Normalized bundled catalog icon bounds.

Deprecations & Cleanup

  • Remove deprecated PUT /admin/users endpoint (#6304) - Removed deprecated PUT /admin/users endpoint and added sunset marker pre-commit hook.

Build & CI

  • CI venv recreation for broken Python symlink (#6302) - Recreate CI venv when cached Python symlink is broken.
  • Raise clippy large-error-threshold for mcp_runtime (#6349) - Raised clippy large-error-threshold for mcp_runtime.
  • Bump pinned UBI10 base image tags (#6413) - Bumped pinned UBI10 base image tags to pick up python3 CVE fix.

Changed

  • Remove fast_test_server; consolidate load tests (#6192) - Removed fast_test_server and consolidated load tests.

Documentation

  • Document dynamic env production risk (#6388) - Documented dynamic env production risk for translate.
  • Require live black-box tests where applicable (#6326) - Required live black-box tests where applicable.

Chores

PR Description
#6301 chore: remove temporary min-release-age-exclude pins from .npmrc
#6312 chore: bump dependency-review-action from v4.9.0 to v5.0.0
#6319 chore: .env.example cleanup
#6325 refactor: tool invoke function refactor
#6306 test: add MCP Apps live stack tests to TestRawJsonRpc
#6398 test: fix Playwright gateway OAuth and team flakiness

Signed-off-by: prakhar-singh1928 <prakhar.singh1928@ibm.com>
Signed-off-by: prakhar-singh1928 <prakhar.singh1928@ibm.com>
Signed-off-by: Lang-Akshay <akshay.shinde26@ibm.com>
Signed-off-by: Lang-Akshay <akshay.shinde26@ibm.com>

@msureshkumar88 msureshkumar88 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for putting the 1.0.9 bump together — the version propagation is clean almost everywhere, and I validated the release artifacts end to end before reviewing:

  • make dist + make verify produce a 1.0.9 wheel/sdist, pyroma 10/10, sdist and VCS file lists match
  • make docker-prod builds successfully; image label org.opencontainers.image.version=1.0.9, container comes up healthy and /version reports 1.0.9
  • cargo check -p contextforge_mcp_runtime --tests is clean (0 warnings) with the test-helper change in place
  • helm lint charts/mcp-stack passes, chart renders as mcp-stack-1.0.9
  • Live smoke against the built image: admin login, admin UI panels render, gateway federation + tool discovery, /rpc tool invocation, and virtual-server tools/list / tools/call all work

Blocking

charts/mcp-stack/values.yaml:1065 — migration job image tag is still v1.0.8

  image:
    repository: ghcr.io/ibm/mcp-context-forge
    tag: "v1.0.8"                            # Should match mcpContextForge.image.tag

templates/job-migration.yaml:52 renders this as {{ .Values.migration.image.repository }}:{{ .Values.migration.image.tag }}, so a 1.0.9 Helm install would run the Alembic migration job on the 1.0.8 image against a 1.0.9 gateway. The inline comment on that same line already says it should match mcpContextForge.image.tag (correctly bumped at line 88). Bumping this to v1.0.9 resolves it.

Suggestions (non-blocking)

Consider extending .bumpversion.cfg so this can't recur. It currently covers only mcpgateway/__init__.py, pyproject.toml, Cargo.toml, charts/mcp-stack/Chart.yaml and SECURITY.md. That leaves charts/mcp-stack/values.yaml (both image tags), Containerfile, plugins/external/cedar/pyproject.toml and plugins/external/opa/pyproject.toml to be edited by hand every release — which is exactly where the miss above happened. Adding them as [bumpversion:file(...)] entries would be a nice follow-up, either here or separately.

crates/mcp_runtime/src/lib.rsensure_test_auth_secret(). The switch from Once::call_once to a check-then-set is a behaviour change that's unrelated to the version bump, and it drops the serialization that made the unsafe { set_var(...) } sound. Rust 2024 marks set_var unsafe specifically because of the concurrent getenv/setenv race, and the tests run multi-threaded, so two threads can now observe the var as unset and both call set_var. The original // SAFETY: comment went away with the Once as well. If the goal was to re-set the var when a test clears it, keeping the Once for the initial set (or wrapping the check-and-set in a Mutex) would preserve that guarantee — and it'd be worth a line in the PR description explaining the change either way.

PR description. The template is still unfilled (no linked issue, summary, or verification section). Filling in at least the summary and verification commands would help whoever audits this release later.

Signed-off-by: prakhar-singh1928 <prakhar.singh1928@ibm.com>
Signed-off-by: Lang-Akshay <akshay.shinde26@ibm.com>
Signed-off-by: Lang-Akshay <akshay.shinde26@ibm.com>
Signed-off-by: Lang-Akshay <akshay.shinde26@ibm.com>
@jonpspri jonpspri added the MUST P1: Non-negotiable, critical requirements without which the product is non-functional or unsafe label Aug 31, 2026
chore: release v1.0.9 — mTLS, OAuth Quick Wins, Tool Preview, Catalog Actions, and Security Hardening
msureshkumar88
msureshkumar88 previously approved these changes Aug 31, 2026

@msureshkumar88 msureshkumar88 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

The migration job image tag is fixed at the current head (charts/mcp-stack/values.yaml:1065 v1.0.9), CHANGELOG has the 1.0.9 section, and everything I validated on the earlier revision — dist/wheel build, helm lint, container build/health, cargo check, and a live black-box pass through the admin UI, federation, and RPC — still holds since none of that touched the file that changed since. Approving.

Signed-off-by: prakhar-singh1928 <prakhar.singh1928@ibm.com>

@brian-hussey brian-hussey left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

All processes followed for team clearance and all changes here look good. Approving.

@ja8zyjits
ja8zyjits added this pull request to the merge queue Sep 1, 2026

@Lang-Akshay Lang-Akshay left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM

Merged via the queue into main with commit f909289 Sep 1, 2026
67 checks passed
@ja8zyjits
ja8zyjits deleted the Release/v1.0.9 branch September 1, 2026 13:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

MUST P1: Non-negotiable, critical requirements without which the product is non-functional or unsafe

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docker-compose.yml gateway SSL env vars are commented out — provide a documented activation path

6 participants