You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ch-oauth-ldap authenticates ephemeral ClickHouse users and maps their roles on every tracked ClickHouse build, but distributed-query authorization with externally assigned roles depends on two upstream ClickHouse bugs. This issue tracks the compatibility matrix, the upstream fixes, and the work to bring 24.8 Altinity Stable back to full support once a bugfix release carries them.
Verified live by integration/clickhouse/run-all-builds.sh (see integration/clickhouse/lib/expectations.sh for the per-build expectations and docs/ch-oauth-ldap-operator-guide.md §1 for the operator-facing statement).
Compatibility matrix (as of 2026-08-29)
Capability
24.8 (24.8.11.51285.altinitystable)
25.3
25.8 (25.8.28.10001.altinitystable)
26.3
Ephemeral-user auth, currentUser(), dynamic currentRoles(), role refresh on reconnect, local-user precedence
✅
✅
✅
✅
Distributed query over base tables keeps the pushed external roles on remote nodes
❌ expected-fail (bug 1)
❌ expected-fail (bug 1)
✅
✅
Distributed query over a normal VIEW keeps the pushed external roles
❌ (bug 2)
❌ (bug 2)
❌ (bug 2)
❌ (bug 2)
LDAP search_limit overflow (257 mapped roles vs <search_limit>256</search_limit>)
auth fails closed (HTTP 403), measured
not measured (fixture fails closed on untracked lines)
auth fails closed (HTTP 403), measured
not measured
24.8 and 25.8 are the tracked builds (run-all-builds.sh); 25.3 and 26.3 were characterized in a one-off sweep and can be run ad hoc via PHASE3_CH_IMAGE.
An Altinity Stable 24.8.x bugfix release that backports #79099 (bug 1). Bug 2 (#116840) additionally needs an upstream fix and its backport; until then VIEW-based distributed authorization stays unsupported on every line, and that is documented rather than blocked on.
Work items when such a release exists
Add the new 24.8.x image to integration/clickhouse/run-all-builds.sh (keep the current 24.8.11 baseline until the new one is verified, then replace or keep both).
Flip H_base_table_propagation:24.8 from expected_fail to must_pass in integration/clickhouse/lib/expectations.shonly after./integration/clickhouse/run-all-builds.sh shows scenario H passing on that image (the fixture fails closed if an expectation is wrong in either direction).
If the release also carries a fix for #116840: flip H_view_propagation:<line> to must_pass for that line (the view canary will start reporting an unexpected pass, which is the signal).
Re-measure scenario G' (search_limit overflow consequence) on the new build; search_limit_overflow_expectation_for / search_limit_overflow_wire_tuple in expectations.sh must be extended for any new build line (they die on unknown lines by design).
Update the compatibility wording in README.md ("Wiring ClickHouse to ch-oauth-ldap"), docs/ch-oauth-ldap-operator-guide.md §1, integration/clickhouse/README.md, and issue Implement LDAP OAuth helper for ephemeral ClickHouse users and dynamic roles #19's "Compatibility target" — internal/securitytest/docs_contract_test.go enforces the ≥25.8 qualification phrase, so update the test's required-phrase list in the same PR.
Re-run ./integration/clickhouse/run-ha.sh on the new build (the HA fixture uses the default ClickHouse image).
Summary
ch-oauth-ldapauthenticates ephemeral ClickHouse users and maps their roles on every tracked ClickHouse build, but distributed-query authorization with externally assigned roles depends on two upstream ClickHouse bugs. This issue tracks the compatibility matrix, the upstream fixes, and the work to bring 24.8 Altinity Stable back to full support once a bugfix release carries them.Verified live by
integration/clickhouse/run-all-builds.sh(seeintegration/clickhouse/lib/expectations.shfor the per-build expectations anddocs/ch-oauth-ldap-operator-guide.md§1 for the operator-facing statement).Compatibility matrix (as of 2026-08-29)
24.8.11.51285.altinitystable)25.8.28.10001.altinitystable)currentUser(), dynamiccurrentRoles(), role refresh on reconnect, local-user precedenceDistributedquery over base tables keeps the pushed external roles on remote nodesDistributedquery over a normal VIEW keeps the pushed external rolessearch_limitoverflow (257 mapped roles vs<search_limit>256</search_limit>)24.8 and 25.8 are the tracked builds (
run-all-builds.sh); 25.3 and 26.3 were characterized in a one-off sweep and can be run ad hoc viaPHASE3_CH_IMAGE.The two upstream bugs
push_external_roles_in_interserver_queriesmechanism) so the roles are pushed and the remote logsexternal_roles applied, but the query is still denied. No 24.8 Altinity Stable release through 24.8.14.10547 carries #79099. Fixed in 25.8+.ContextDatacopy constructor omitsexternal_roles) — Pushed external roles (push_external_roles_in_interserver_queries) are lost when the remote query reads through a normal VIEW ClickHouse/ClickHouse#116840, filed by us 2026-08-28, open, reproduces on every line through 26.3. The fixture tracks it as an expected-fail canary (scenario H view oracle) so a fix is detected automatically.What "24.8 fully supported" requires
Work items when such a release exists
integration/clickhouse/run-all-builds.sh(keep the current 24.8.11 baseline until the new one is verified, then replace or keep both).H_base_table_propagation:24.8fromexpected_failtomust_passinintegration/clickhouse/lib/expectations.shonly after./integration/clickhouse/run-all-builds.shshows scenario H passing on that image (the fixture fails closed if an expectation is wrong in either direction).H_view_propagation:<line>tomust_passfor that line (the view canary will start reporting an unexpected pass, which is the signal).search_limitoverflow consequence) on the new build;search_limit_overflow_expectation_for/search_limit_overflow_wire_tupleinexpectations.shmust be extended for any new build line (theydieon unknown lines by design).README.md("Wiring ClickHouse toch-oauth-ldap"),docs/ch-oauth-ldap-operator-guide.md§1,integration/clickhouse/README.md, and issue Implement LDAP OAuth helper for ephemeral ClickHouse users and dynamic roles #19's "Compatibility target" —internal/securitytest/docs_contract_test.goenforces the ≥25.8 qualification phrase, so update the test's required-phrase list in the same PR../integration/clickhouse/run-ha.shon the new build (the HA fixture uses the default ClickHouse image).References
<!-- ship-log -->comment, phase 3 handoff, for the root-cause analysis).