Add a self-hosted CIMD opt-out with DCR fallback - #1989
Open
marcelruhf wants to merge 11 commits into
Open
marcelruhf wants to merge 11 commits into
marcelruhf wants to merge 11 commits into
Conversation
…th-cimd-deployment-capability
…th-cimd-deployment-capability
…th-cimd-deployment-capability
marcelruhf
marked this pull request as ready for review
September 14, 2026 16:18
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Executor running only on
localhostcan call a remote MCP/OAuth server, but that server cannot fetch Executor's Client ID Metadata Document (CIMD) from the user's loopback address; private routing, firewalls, or authenticated ingress can create similar reachability limits. SetEXECUTOR_OAUTH_CIMD_ENABLED=falseto use Dynamic Client Registration (DCR), where supported, for automatic MCP and discovered OpenAPI connections; unset ortruepreserves CIMD, and other values fail startup.OpenAPI templates retain their discovery metadata so unsetting the switch restores CIMD on the next connection; legacy templates recover discovery from the saved spec only when both OAuth endpoints match.
Verification
bun run format:checkbun run lintbun run typecheckVITEST_MAX_WORKERS=2 TURBO_TEST_CONCURRENCY=1 bun run test --env-mode=looseFlows completed real consent, token exchange, and authenticated API calls. Provider ledgers confirmed DCR versus CIMD; mismatched legacy endpoints were rejected. Runs used local service emulators with an unpublished MCP CIMD patch. Test containers and tunnels were cleaned up. Focused checks and MCP/OpenAPI Docker flows reran after the final test simplification.
Recordings — five passing Docker scenarios
Checklist
executor(patch), following the fixed release group convention.