Skip to content

Commit 3bffcbd

Browse files
authored
fix: disable oidc streaming (#2462)
1 parent 736c5f0 commit 3bffcbd

File tree

4 files changed

+30
-3
lines changed

4 files changed

+30
-3
lines changed

src/containers/Tenant/Query/QueryEditor/QueryEditor.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import {
3939
useTypedSelector,
4040
} from '../../../../utils/hooks';
4141
import {useChangedQuerySettings} from '../../../../utils/hooks/useChangedQuerySettings';
42+
import {useDisableOidcStreaming} from '../../../../utils/hooks/useDisableOidcStreaming';
4243
import {useLastQueryExecutionSettings} from '../../../../utils/hooks/useLastQueryExecutionSettings';
4344
import {DEFAULT_QUERY_SETTINGS, QUERY_ACTIONS, QUERY_MODES} from '../../../../utils/query';
4445
import {useCurrentSchema} from '../../TenantContext';
@@ -94,10 +95,14 @@ export default function QueryEditor(props: QueryEditorProps) {
9495
const [lastExecutedQueryText, setLastExecutedQueryText] = React.useState<string>('');
9596
const [isQueryStreamingEnabled] = useSetting<boolean>(ENABLE_QUERY_STREAMING);
9697

98+
// Temporary check: disable streaming if backend parameter contains "oidc"
99+
const isOidcBackend = useDisableOidcStreaming();
100+
97101
const isStreamingEnabled =
98102
useStreamingAvailable() &&
99103
isQueryStreamingEnabled &&
100-
querySettings.queryMode === QUERY_MODES.query;
104+
querySettings.queryMode === QUERY_MODES.query &&
105+
!isOidcBackend;
101106

102107
const [sendQuery] = queryApi.useUseSendQueryMutation();
103108
const [streamQuery] = queryApi.useUseStreamQueryMutation();

src/containers/Tenant/Query/QuerySettingsDialog/TimeoutLabel.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {HelpMark, Switch} from '@gravity-ui/uikit';
33
import {cn} from '../../../../utils/cn';
44
import {ENABLE_QUERY_STREAMING} from '../../../../utils/constants';
55
import {useSetting} from '../../../../utils/hooks';
6+
import {useDisableOidcStreaming} from '../../../../utils/hooks/useDisableOidcStreaming';
67

78
import {QUERY_SETTINGS_FIELD_SETTINGS} from './constants';
89
import i18n from './i18n';
@@ -20,7 +21,12 @@ interface TimeoutLabelProps {
2021
export function TimeoutLabel({isDisabled, isChecked, onToggle}: TimeoutLabelProps) {
2122
const [isQueryStreamingEnabled] = useSetting<boolean>(ENABLE_QUERY_STREAMING);
2223

23-
if (isQueryStreamingEnabled) {
24+
// Temporary check: disable streaming UI if backend parameter contains "oidc"
25+
const isOidcBackend = useDisableOidcStreaming();
26+
27+
const shouldShowStreamingUI = isQueryStreamingEnabled && !isOidcBackend;
28+
29+
if (shouldShowStreamingUI) {
2430
return (
2531
<div className={b('switch-title')}>
2632
<Switch
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import {StringParam, useQueryParams} from 'use-query-params';
2+
3+
/**
4+
* Temporary hook to check if streaming should be disabled for OIDC backends
5+
* Returns true if the backend parameter contains "oidc"
6+
*/
7+
export const useDisableOidcStreaming = () => {
8+
const [{backend}] = useQueryParams({backend: StringParam});
9+
return backend && backend.includes('oidc');
10+
};

src/utils/hooks/useQueryExecutionSettings.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
querySettingsRestoreSchema,
1515
} from '../query';
1616

17+
import {useDisableOidcStreaming} from './useDisableOidcStreaming';
1718
import {useSetting} from './useSetting';
1819

1920
export const useQueryExecutionSettings = () => {
@@ -24,6 +25,11 @@ export const useQueryExecutionSettings = () => {
2425
const [useShowPlanToSvg] = useSetting<boolean>(USE_SHOW_PLAN_SVG_KEY);
2526
const [enableQueryStreaming] = useSetting<boolean>(ENABLE_QUERY_STREAMING);
2627

28+
// Temporary check: disable streaming behavior if backend parameter contains "oidc"
29+
const isOidcBackend = useDisableOidcStreaming();
30+
31+
const effectiveStreamingEnabled = enableQueryStreaming && !isOidcBackend;
32+
2733
const setQueryExecutionSettings = React.useCallback(
2834
(settings: QuerySettings) => {
2935
setSettings({
@@ -39,7 +45,7 @@ export const useQueryExecutionSettings = () => {
3945
const settings: QuerySettings = {
4046
...validatedSettings,
4147
timeout:
42-
enableQueryStreaming && validatedSettings.queryMode === QUERY_MODES.query
48+
effectiveStreamingEnabled && validatedSettings.queryMode === QUERY_MODES.query
4349
? validatedSettings.timeout || null
4450
: validatedSettings.timeout || undefined,
4551
statisticsMode: useShowPlanToSvg ? STATISTICS_MODES.full : validatedSettings.statisticsMode,

0 commit comments

Comments
 (0)