v1.0.0-RC1 - Security Hardening, Enterprise Controls & Quality #3037
crivetimihai
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
v1.0.0-RC1 - Security Hardening, Enterprise Controls & Quality
This release delivers enterprise security hardening, comprehensive RBAC improvements, and production-quality enforcement with 189 issues resolved.
🏆 Major Achievements
Release 1.0.0-RC1 hardens ContextForge for enterprise production deployments:
🔐 Streamlined Authentication Model & Secure Defaults (#2555)
Action Required: Multiple authentication defaults have changed to secure-by-default values.
Token Validation Defaults
true- JWT tokens must include a JTI claim for revocation supporttrue- JWT tokens must include an expiration claimfalse- Self-registration disabled by defaultAdminAuthMiddleware
/admin/*routesBasic Auth Configuration
false- Basic auth disabled for API endpoints by defaultfalseby defaultCookie Authentication Rejected for API Requests
Authorizationheader (Bearer token, API key, or Basic auth if enabled)/admin/*routesSSO Redirect Validation
ALLOWED_ORIGINSandAPP_DOMAINsettings🔑 JWT Session Token Format Change (#2757)
Action Required: Session JWT tokens (login/SSO) no longer embed
teamsornamespacesclaims.token_use: "session"claim to signal server-side team resolution📋 Strict JSON Schema Validation (#2348)
Action Required: Invalid JSON schemas are now rejected at registration time.
true- Invalid JSON schemas rejected with HTTP 400$schemafield is missingPOST/PUTon/tools,/prompts,/resourcesendpoints🛡️ SSRF Protection Enabled by Default (#2663)
Action Required: Gateway and tool URLs pointing to private/internal networks are now blocked.
true169.254.169.254), Kubernetes service IPs, and link-local addressesSSRF_BLOCKED_NETWORKSandSSRF_BLOCKED_HOSTS🔒 Admin Demotion Protection (#2763)
true- Prevents any admin from being demoted, deactivated, or locked out via API/UIPROTECT_ALL_ADMINS=falseto allow demoting all-but-last-admin (previous behavior)👥 Mandatory Default Role Assignment (#2694, #2741)
platform_admin(global) +team_admin(team scope)platform_viewer(global) +team_admin(team scope)🌐 RFC 9728 OAuth Protected Resource Metadata (#2706)
Action Required: OAuth Protected Resource Metadata endpoint URLs have changed for RFC 9728 compliance.
GET /.well-known/oauth-protected-resource?server_id={id}now returns HTTP 404 (previously returned metadata)GET /servers/{id}/.well-known/oauth-protected-resourcenow returns HTTP 301 redirect to the new pathGET /.well-known/oauth-protected-resource/servers/{UUID}/mcpauthorization_serversis now a JSON array (was a string)🔑 Token Expiration Enforced at Creation (#2898)
Action Required: Token creation now rejects tokens without expiration when
REQUIRE_TOKEN_EXPIRATION=true(the default).POST /tokensreturns HTTP 400 ifexpires_in_daysis not providedREQUIRE_TOKEN_EXPIRATIONonly validated incoming tokens at authentication time🔒 Account Lockout Defaults Changed (#2628)
MAX_FAILED_LOGIN_ATTEMPTSdefault changed from5to10ACCOUNT_LOCKOUT_DURATION_MINUTESdefault changed from30to1🖼️ X-Frame-Options Empty String Behavior (#2958)
X_FRAME_OPTIONS=""(empty string) previously fell through toDENY(blocking iframe embedding)None, which omits the header entirely and allows iframe embedding from any origin🔐 Encryption Service v2 Format (#2724)
v2:{json}format with Argon2id-derived keys (old PBKDF2HMAC format still readable)encrypt_secret()now raisesAlreadyEncryptedErrorif called on already-encrypted datadecrypt_secret()now raisesNotEncryptedErrorif called on plaintext data📊 Admin UI Behavior Changes
✨ Highlights
🔐 Enterprise Security Controls
Credential protection, SSRF prevention, and granular multi-tenant isolation
This release introduces a comprehensive enterprise security layer with defense-in-depth controls:
🏛️ Unified Policy Decision Point (Cedar/OPA)
Pluggable authorization engine supporting Cedar, OPA, and native policy evaluation
A new policy abstraction layer (#2223) enables enterprise authorization decisions through Cedar policies, OPA rules, or the built-in native RBAC engine.
⚡ Tool Circuit Breaker & Timeouts
Configurable timeouts with circuit breaker pattern for tool invocations
New resilience controls (#2078) prevent cascading failures from slow or failing downstream MCP servers with configurable timeouts and automatic circuit breaking.
🔗 Session Affinity
Sticky sessions for stateful MCP workflows
Session affinity (#1986) ensures stateful MCP interactions are routed to the same backend server, enabling reliable multi-turn tool workflows.
🔍 Unified Search Experience
Cross-entity search across all MCP Gateway resources
Unified search (#2109) provides a single search interface across tools, prompts, resources, servers, gateways, and agents in the Admin UI.
🔒 Self-Service Password Reset
Forgot password flow for self-service password recovery
Users can now reset their passwords (#2542) through a self-service workflow without requiring administrator intervention.
📡 Elicitation Support (MCP 2025-06-18)
Interactive user input during tool execution per MCP specification
Elicitation support (#234) enables MCP servers to request additional user input during tool execution, following the MCP 2025-06-18 specification.
🆕 Added
🔐 Security & Policy
🔌 Plugins & Extensibility
🏗️ Infrastructure & Deployment
🎛️ Features
🧪 Testing & Quality
tests/populateframework for seeding test data🐛 Fixed
🔐 Authentication & Authorization
AttributeErrorcrash in SSO redirect validation; also fixed CORS origins producing malformed URLsjwks_uri👥 Multi-Tenancy & Teams
current_user_ctx["db"]always being None📊 Admin UI
password_change_required/auth/email/meprompt_idnow visible in UI🔧 MCP Protocol & Tools
_can be added to gateway/mcpendpoint responsestranslatefor stdio serversjson_extracton PostgreSQL🗄️ Database & Sessions
PermissionService.check_permission()expires_atcalculation in DCR client registration⚡ Stability
🐳 Deployment & Infrastructure
🔨 Linting & Pre-commit
🔒 Security
⚡ Performance
🔌 Plugin Optimization
🗄️ Database & Infrastructure
🔧 Chores
sso_entra_admin_groupsto validatorworkflow_dispatchplatforms inputdatetime.utcnow(), unused imports📝 Documentation
📦 Migration Guide
From v1.0.0-BETA-2 to v1.0.0-RC1
Database migrations run automatically on startup. Backup recommended before upgrading.
1. Review Breaking Changes (Required)
This release changes multiple authentication defaults to secure-by-default values. Read the Breaking Changes section above before upgrading, especially:
2. Update Docker Compose
3. Generate New Tokens (If Needed)
4. New Environment Variables
5. Verify RBAC Roles
After upgrade, all existing users will receive default RBAC roles. Review in Admin UI:
platform_admin+team_adminplatform_viewer+team_admin🔗 Resources
Documentation
Source Code
ContextForge Ecosystem
Container Images
v1.0.0-RC1,1.0.0-RC1,latestCommunity
Quick Start
Previous Release: v1.0.0-BETA-2 - Performance, Scale & Reliability
Next Planned Release: v1.0.0 RC2 - Release candidate 2, short bugfix release prior to v1.0.0 GA
This discussion was created from the release v1.0.0-RC1 - Security Hardening, Enterprise Controls & Quality.
Beta Was this translation helpful? Give feedback.
All reactions