Skip to content

Release/v1.0.3#5159

Merged
brian-hussey merged 19 commits into
mainfrom
Release/v1.0.3
Jun 10, 2026
Merged

Release/v1.0.3#5159
brian-hussey merged 19 commits into
mainfrom
Release/v1.0.3

Conversation

@cafalchio

Copy link
Copy Markdown
Collaborator

🔗 Related Issue

Closes #


📝 Summary

[1.0.3] - 2026-06-10 - Auth & JWT Cleanup, Admin UI Fixes, FedRAMP/FIPS Hardening, and Bug Fixes

Overview

Release 1.0.3 consolidates 61 PRs focused on authentication and JWT hardening, FedRAMP/FIPS compliance, rate-limiter and plugin improvements, performance/caching, and a broad set of bug fixes. This release cleans up the JWT token model, strengthens FIPS/STIG compliance, and improves multi-architecture builds and CI reliability:

  • 🔐 Security & Auth - JWT token cleanup (UUID-based subjects, JIT credential resolution), OAuth audience parameter support, CSRF cookie name standardization, same-origin cookie auth for OAuth callbacks, API-token idle-timeout handling, SSO callback redirect fixes, PII redaction in logs, and CA-cert validation handling for authless MCPs.
  • 🖥️ Admin UI - Alpine.js CSP migration and component consolidation, Teams panel loading fix, script-defer race-condition fix, SRI hash fixes, and plugin operator labels.
  • 🛡️ FedRAMP / FIPS Compliance - Opt-in FIPS compliance mode with parameterized base images, additional STIG controls, dotfile permission modes, and /app ownership adjustments.
  • 🧩 Plugins & Rate Limiting - Tightened plugin-bindings payload surface, dedicated Redis instance support for the rate limiter, CPEX plugin regression fixes and metadata resolution, and tool pre-invoke diagnostics.
  • ⚡ Performance & Caching - AuthCache full-team-object storage, token-revocation caching, team cache hardening, metrics aggregation throttling, and a faster Rust fast-test server.
  • 🏗️ Build & CI - Multi-architecture (s390x) wheels, merge-queue gates, FIPS-capable base images, container hardening, and node/Playwright CI fixes.
  • 🐛 Bug Fixes - Observability Resources tab, migration blockers, gateway CRUD REST API, DB CHECK-constraint ordering, edge-mode health convergence, and Streamable HTTP /mcp redirect handling.

Added

🔐 Security & Auth

  • 🎫 OAuth Audience Parameter (#4795) – Added OAuth audience parameter support for Atlassian and Auth0. Improves OAuth interoperability with providers that require an audience claim.
  • 🕵️ PII Redaction in Logs (#5013) – Redact PII from log output. Strengthens privacy and compliance posture.

🛡️ FedRAMP / FIPS Compliance

  • 🔒 Opt-in FIPS Compliance Mode (#4810) – Parameterized base images and added an opt-in FIPS compliance mode. Enables FedRAMP-aligned deployments.

🧩 Plugins & Rate Limiting

  • 🧪 Tool Pre-Invoke Diagnostics (#4937) – Added diagnostics for tool pre-invoke modified payloads. Improves plugin debugging.
  • 🚦 Separate Redis for Rate Limiter (#4859) – Enabled a dedicated Redis instance for the rate limiter. Isolates rate-limit state from the shared cache.

🏗️ Infrastructure

  • 📡 Redis Configuration Publisher (#4926) – Added a Redis-based configuration publisher for the experimental dataplane. Lays groundwork for distributed config propagation.

Changed

🔐 Security & Auth

  • 🎫 JWT Cleanup (#4816) – Removed unused data from JWT tokens, moved token subjects to user IDs (UUID), and resolved credentials just-in-time. Simplifies the token model and reduces token payload surface.
  • 🧩 Alpine.js CSP Build (#4676) – Migrated Alpine.js to the Vite-bundled @alpinejs/csp build and eliminated unsafe-eval. Strengthens Content Security Policy compliance.

🗄️ Database & API

  • 🔧 Admin Gateway CRUD REST Endpoints (#4808) – Added JSON support and RESTful endpoints for admin gateway CRUD operations. Improves API consistency and automation.

⚡ Performance & Caching

  • 👥 AuthCache Full Team Objects (#4550) – Store full team objects in AuthCache to eliminate a secondary DB query. Reduces auth hot-path latency.
  • 🎫 Token Revocation Caching (#4527) – Cache get_token_revocation / is_token_revoked to eliminate hot-path DB queries. Improves request throughput.
  • 🦀 Rust Fast-Test Server Speedup (#5059) – Sped up the Rust fast-test server. Reduces benchmark/test cycle time.

🖥️ Admin UI

  • 🧹 Alpine.js Component Setup Consolidation (#5024) – Consolidated Alpine.js component setup. Simplifies UI initialization.

Fixed

🔐 Security & Auth

  • 🎫 OAuth Token Endpoint Auth Method (#4717) – Honor token_endpoint_auth_method in OAuth token exchange. Fixes auth-method negotiation with stricter providers.
  • 🍪 Same-Origin Cookie Auth for OAuth Callback (#4868) – Allow cookie auth for same-origin OAuth callback fetch requests. Fixes OAuth callback flows in the React UI.
  • ⏱️ API Token Idle Timeout (#5000) – Skip idle timeout for API tokens and fix the is_admin fallback chain. Prevents premature API-token expiry.
  • 🔁 SSO Callback Redirect for Team Members (#4777) – Fixed SSO callback redirect for non-admin users with team memberships. Resolves post-login redirect failures.
  • 🔒 CA Cert Validation on Authless MCPs (#5075) – Disable CA cert validation on authless MCPs. Fixes connectivity to authless upstreams.
  • 👁️ Admin Private Resource Visibility (#4878) – Admin users can now view and edit their own private resources (tools, prompts, resources, servers, gateways). Fixes admin UX inconsistency.

🖥️ Admin UI

  • 🏷️ Plugin Operator Labels (#4718) – Return operator labels in GET /admin/plugins to match PUT input. Fixes plugin admin round-trips.
  • 🔁 Script Defer / Alpine Race (#5117) – Added defer to script tags to prevent an Alpine.js race condition. Fixes intermittent UI initialization failures.
  • 👥 Teams Panel Loading (#5085) – Fixed the Admin UI Teams panel stuck on loading. Restores team management visibility.
  • 🔑 Alpine.js SRI Hashes (#5025) – Fixed the Alpine.js SRI hashes. Restores subresource-integrity validation.

🛡️ FedRAMP / FIPS Compliance

  • 📋 STIG Controls in FIPS Block (#5033) – Extended the FedRAMP FIPS compliance block with missing STIG controls. Improves compliance coverage.
  • 🔍 Remaining STIG Failures (#5053) – Resolved the remaining 4 STIG failures from the 2026-06-03 OpenSCAP scan. Closes audit gaps.
  • 🔐 /app Dotfile Modes (#5069) – Set mode 0740 on /app dotfiles in the FIPS compliance block. Aligns file permissions with FIPS requirements.
  • 🔒 /app Group Ownership for FIPS (#5112) – Keep /app group-owned by root so FIPS 0750 mode survives arbitrary-UID runtimes. Fixes FIPS file-mode enforcement.

🧩 Plugins

  • 🔧 CPEX Plugin Regressions (#4629) – Covered CPEX plugin regressions. Restores plugin behavior parity.
  • 📦 Plugin Metadata Resolution (#4916) – Resolve plugin metadata from packages. Fixes plugin discovery from installed packages.

🗄️ Database & Migrations

📊 Observability, Metrics & Caching

  • 📑 Observability Resources Tab Empty (#3977) – Fixed the Observability Resources tab always empty due to a span-name mismatch and session isolation. Restores resource traces.
  • ⏱️ Metrics Aggregation Throttling (#4468) – Throttle aggregate_all_components with a pg advisory lock and configurable interval. Prevents metrics-aggregation overload.
  • 👥 Team Cache Hardening (#5008) – Team cache hardening: cross-worker eviction, update_team, transient ORM, and nullable safety. Improves cache correctness.

🔌 MCP & Transport

🏗️ Build & Multi-Architecture

  • 🧱 s390x Wheels (#5014, #5057) – Fixed the s390x wheel and connected s390 wheels with the build. Enables s390x distribution.
  • 🐳 Image Bug / Postgres (#5039) – Fixed an image bug and added Postgres. Restores image build correctness.
  • 🟢 Node.js / File Rename (#5042) – Renamed a file and fixed Node.js. Fixes build tooling.
  • 🧪 Node Install on Playwright Workflow (#5063) – Fixed Node installation on the Playwright workflow. Restores UI test CI.
  • 📦 fast_test_server Build Context (#5118) – Repointed the fast_test_server build context to the renamed Rust crate. Fixes compose builds.
  • 🔒 Container Image Hardening (#4973) – Hardened container images on fast-test, slow-test, and a2a-test-echo servers. Strengthens test-image security.
  • 🦀 Rust Dependency Pins (#4832) – Updated Rust dependency pins. Keeps the Rust toolchain current.

🔧 CI

  • 📢 Slack Notify JSON Payload (#5028) – Use a valid JSON string in the Slack notify payload instead of YAML. Fixes CI notifications.
  • 🔀 Merge Queue Support (#5032) – Enabled merge queue support in docker-multiplatform.yml. Unblocks merge-queue builds.
  • ✅ Docker Build Complete Gate (#5060) – Added a Docker Build Complete gate for the merge queue. Improves merge-queue signal.

🧰 Developer Experience

  • 💾 make serve Preserves .venv (#4944) – make serve no longer silently deletes an existing .venv. Prevents accidental environment loss.

Chores

  • 📊 SQL Sanitizer Logging (#4708) – Basic logging for the SQL sanitizer. Improves observability of sanitization.
  • 👥 CODEOWNERS Updates (#4941, #5055) – Removed test ownership and moved global code owners to the bottom. Refines review routing.
  • 🔐 Pre-commit Hashed External Repos (#4983) – Added hashed versions to external repositories installed in pre-commit. Improves supply-chain pinning.
  • 🔑 Secrets Correction (#5029) – Corrected secrets following a bad addition and linting issues. Fixes secret-detection baseline.
  • 🧹 YAML Whitespace Cleanup (#5120) – Removed extra spaces introduced in YAML files (Add hashed version to external repositories installed in pre-commit #4983). Restores YAML lint cleanliness.
  • 📦 CPEX Plugin Bumps (#4979, #4985) – Bumped CPEX detection plugins and updated CPEX to 0.1.1.dev1 for CopyOnWriteDict support. Keeps plugins current.
  • 📦 Dependency Upgrades (#5006) – Upgraded prometheus-fastapi-instrumentator to 8.0.0, updated starlette. Maintains dependency freshness and security.
  • 📝 Rate-Limiter Plugin-Bindings Docs (#4848) – Tightened the plugin-bindings payload surface documentation. Clarifies binding configuration scope.
  • 🧪 gRPC Integration Test Depth (#4658) – Expanded gRPC integration test depth for PR feat(transport): add gRPC methods as MCP tools #3202. Improves protocol coverage.
  • 🧪 Loadtest Gaps (#4698) – Closed load-test gaps. Improves performance-test coverage.
  • 🧪 Playwright admin_api Fixture (#4265) – Stopped the Playwright admin_api fixture from duplicating JWT auth and fixed linting. Improves UI-test reliability.

Known Issues

  • 🔒 CSRF Validation Failure on Some Admin UI Actions (#5151) – Several Admin UI actions may fail with {"detail":"CSRF validation failed","code":"CSRF_TOKEN_INVALID"}. This happens when the jwt_token cookie is set with the HttpOnly flag: the global CSRFMiddleware applies to all non-exempt routes, and some Admin UI endpoints are currently missing from csrf_exempt_paths.
    • Workaround: Set CSRF_EXEMPT_PATHS in your .env. Copy the CSRF_EXEMPT_PATHS value from .env.example into .env, then restart the application.

🏷️ Type of Change

  • Bug fix
  • Feature / Enhancement
  • Documentation
  • Refactor
  • Chore (deps, CI, tooling)
  • Other (describe below)

🧪 Verification

Check Command Status
Lint suite make lint x
Unit tests make test x
Coverage ≥ 80% make coverage x

✅ Checklist

  • Code formatted (make black isort pre-commit)
  • Tests added/updated for changes
  • Documentation updated (if applicable)
  • No secrets or credentials committed

📓 Notes (optional)

Screenshots, design decisions, or additional context.

cafalchio and others added 17 commits June 9, 2026 15:20
Signed-off-by: cafalchio <mcafalchio@gmail.com>
Signed-off-by: cafalchio <mcafalchio@gmail.com>
Signed-off-by: cafalchio <mcafalchio@gmail.com>
Signed-off-by: cafalchio <mcafalchio@gmail.com>
Update frontend CDN dependencies to their latest jsdelivr-available
patch releases and regenerate SRI hashes (release-management section 3.5).

- marked 18.0.3 -> 18.0.5
- dompurify 3.4.2 -> 3.4.8

CodeMirror (5.65.20) and Font Awesome (7.0.1) held at current versions:
newer releases exist on npm but are not yet mirrored on cdnjs, so they
would fail SRI verification and the airgapped download path. Chart.js
(4.5.1) is already latest.

Signed-off-by: Pratik Gandhi <gandhipratik203@gmail.com>
…aint

Signed-off-by: Madhu Mohan Jaishankar <madhu.mohan.jaishankar@ibm.com>
fix(charts): align TOKEN_EXPIRY default with config.py le=1440 constr…
Signed-off-by: Pratik Gandhi <gandhipratik203@gmail.com>
…ibility

Signed-off-by: Madhu Mohan Jaishankar <madhu.mohan.jaishankar@ibm.com>
…nd-registry-tests

fix: use value='' for auth type None option and fix registry grid vis…
Signed-off-by: cafalchio <mcafalchio@gmail.com>
Signed-off-by: cafalchio <mcafalchio@gmail.com>
Drop the 9 epic/ui-rewrite sub-PRs (that branch is not merged into the release)
and the 2 release-branch internal PRs (#5126 deps bump, #5147 chart default).
Overview count 72 -> 61. Only the 1.0.3 section is added; older sections untouched.

Signed-off-by: Pratik Gandhi <gandhipratik203@gmail.com>
Document the CSRF validation failure on some Admin UI actions (issue #5151)
and the CSRF_EXEMPT_PATHS workaround, as a Known Issues subsection of the
1.0.3 release notes.

Signed-off-by: Pratik Gandhi <gandhipratik203@gmail.com>
Drop 'React UI Rewrite' from the 1.0.3 heading (those PRs are not in this
release) in favour of 'Admin UI Fixes', and set the release date to 2026-06-10.

Signed-off-by: Pratik Gandhi <gandhipratik203@gmail.com>
docs(changelog): add 1.0.3 release section
Signed-off-by: cafalchio <mcafalchio@gmail.com>
ja8zyjits
ja8zyjits previously approved these changes Jun 10, 2026

@ja8zyjits ja8zyjits 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.

LGMT
Read through each line.

  1. Version changes
  2. Module Doc String update
  3. COmments for imports
  4. playright test improvements causing changes in mcp_registry_partial.html and admin.html
    Overall looks fine

marekdano
marekdano previously approved these changes Jun 10, 2026

@marekdano marekdano 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 changes in mcp_registry_partial.html and admin.html are relevant. They fixed the bugs in the admin UI, and Playwright caught them. Now Playwright tests are green

LGTM

gcgoncalves
gcgoncalves previously approved these changes Jun 10, 2026
brian-hussey and others added 2 commits June 10, 2026 10:18
…planning state

Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>
Update to update the roadmap to be accurate reflection of our currnt …
@cafalchio cafalchio dismissed stale reviews from gcgoncalves, marekdano, and ja8zyjits via 11d14a7 June 10, 2026 09:25

@ja8zyjits ja8zyjits 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.

LGTM

@brian-hussey brian-hussey added this pull request to the merge queue Jun 10, 2026
Merged via the queue into main with commit 65dcfe2 Jun 10, 2026
68 of 131 checks passed
@brian-hussey brian-hussey deleted the Release/v1.0.3 branch June 10, 2026 09:57
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.

7 participants