Repository navigation
Isolate authenticated single-cluster catalogs and sessions - #187
Merged
Merged
Conversation
BorisTyshkevich
marked this pull request as ready for review
October 7, 2026 08:49
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.
Authenticated single-cluster HTTP and SSE requests now discover and expose dynamic tools through a catalog owned by the effective caller credential. Anonymous schema and database requests fail without using configured ClickHouse credentials; static mode remains available when authentication is disabled.
HTTP requests receive caller-specific MCP registries and OpenAPI catalogs. SSE sessions use credential-specific SDK handlers, reject cross-credential POSTs, and reconnect after configuration reload. Catalog caches and request dispatch share an immutable configuration generation and clean up on replacement or shutdown.
Closes #182.
Unchanged periodic reloads retain live SSE sessions and cached catalogs. Changed configurations retire the previous generation; requests holding that generation can finish bounded discovery. Log-level reload uses the atomic level without replacing the shared logger.
Validation at PR head a0fd29a: go vet, full Go tests, the CI-matched shuffled coverage command, make build, full server race tests, and full command-package race tests passed. CI passed. Independent native Sol/xhigh and external Opus/xhigh reviews returned SHIP after the first-round findings were fixed. No required checks were waived.
Post-merge verification at 0366d90: concurrent dependency updates landed on main during review. The actual merged tree received a fresh full local gate, including server and command-package race tests, and independent native and Opus reviews both returned SHIP. The main-branch CI test passed.