console: fix cancel subscribe button for the emulator#36679
Open
leedqin wants to merge 1 commit into
Open
Conversation
- Fixed a bug where clicking Cancel on a running SUBSCRIBE in the SQL Shell did nothing in self-managed deployments with authMode None (e.g. the emulator). The Shell's websocket authenticated as `materialize` via WebSocketAuth::Basic, but the HTTP path used to fire pg_cancel_backend() was bare globalFetch with no auth header, so environmentd resolved it as anonymous_http_user and rejected the cancel with 42501 — anonymous_http_user isn't a member of `materialize`, which pg_cancel_backend's role-membership check requires. - Added a #flexibleDeploymentAuthMiddleware on SelfManagedApiClient that attaches Authorization: Basic <materialize:> on HTTP fetches in authMode None, mirroring the websocket auth already set up in getWsAuthConfig(). HTTP and websocket now resolve to the same role, so cancel works and any future role-sensitive HTTP operation (DROP, ALTER, ownership checks) won't hit the same asymmetry.
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.
Fixed a bug where clicking Cancel on a running SUBSCRIBE in the SQL Shell did nothing in self-managed deployments with authMode None (e.g. the emulator). The Shell's websocket authenticated as
materializevia WebSocketAuth::Basic, but the HTTP path used to fire pg_cancel_backend() was bare globalFetch with no auth header, so environmentd resolved it as anonymous_http_user and rejected the cancel with 42501 — anonymous_http_user isn't a member ofmaterialize, which pg_cancel_backend's role-membership check requires.Added a #flexibleDeploymentAuthMiddleware on SelfManagedApiClient that attaches Authorization: Basic materialize: on HTTP fetches in authMode None, mirroring the websocket auth already set up in getWsAuthConfig(). HTTP and websocket now resolve to the same role, so cancel works and any future role-sensitive HTTP operation (DROP, ALTER, ownership checks) won't hit the same asymmetry.
Remove these sections if your commit already has a good description!
Motivation
Fixes CNS-64
Verification
cancel_subscribe.mov