diff --git a/src/containers/Tenant/Query/QueryEditor/QueryEditor.tsx b/src/containers/Tenant/Query/QueryEditor/QueryEditor.tsx index d4264bc159..78969c5d20 100644 --- a/src/containers/Tenant/Query/QueryEditor/QueryEditor.tsx +++ b/src/containers/Tenant/Query/QueryEditor/QueryEditor.tsx @@ -39,6 +39,7 @@ import { useTypedSelector, } from '../../../../utils/hooks'; import {useChangedQuerySettings} from '../../../../utils/hooks/useChangedQuerySettings'; +import {useDisableOidcStreaming} from '../../../../utils/hooks/useDisableOidcStreaming'; import {useLastQueryExecutionSettings} from '../../../../utils/hooks/useLastQueryExecutionSettings'; import {DEFAULT_QUERY_SETTINGS, QUERY_ACTIONS, QUERY_MODES} from '../../../../utils/query'; import {useCurrentSchema} from '../../TenantContext'; @@ -94,10 +95,14 @@ export default function QueryEditor(props: QueryEditorProps) { const [lastExecutedQueryText, setLastExecutedQueryText] = React.useState(''); const [isQueryStreamingEnabled] = useSetting(ENABLE_QUERY_STREAMING); + // Temporary check: disable streaming if backend parameter contains "oidc" + const isOidcBackend = useDisableOidcStreaming(); + const isStreamingEnabled = useStreamingAvailable() && isQueryStreamingEnabled && - querySettings.queryMode === QUERY_MODES.query; + querySettings.queryMode === QUERY_MODES.query && + !isOidcBackend; const [sendQuery] = queryApi.useUseSendQueryMutation(); const [streamQuery] = queryApi.useUseStreamQueryMutation(); diff --git a/src/containers/Tenant/Query/QuerySettingsDialog/TimeoutLabel.tsx b/src/containers/Tenant/Query/QuerySettingsDialog/TimeoutLabel.tsx index 4be7444027..a1c9fe4797 100644 --- a/src/containers/Tenant/Query/QuerySettingsDialog/TimeoutLabel.tsx +++ b/src/containers/Tenant/Query/QuerySettingsDialog/TimeoutLabel.tsx @@ -3,6 +3,7 @@ import {HelpMark, Switch} from '@gravity-ui/uikit'; import {cn} from '../../../../utils/cn'; import {ENABLE_QUERY_STREAMING} from '../../../../utils/constants'; import {useSetting} from '../../../../utils/hooks'; +import {useDisableOidcStreaming} from '../../../../utils/hooks/useDisableOidcStreaming'; import {QUERY_SETTINGS_FIELD_SETTINGS} from './constants'; import i18n from './i18n'; @@ -20,7 +21,12 @@ interface TimeoutLabelProps { export function TimeoutLabel({isDisabled, isChecked, onToggle}: TimeoutLabelProps) { const [isQueryStreamingEnabled] = useSetting(ENABLE_QUERY_STREAMING); - if (isQueryStreamingEnabled) { + // Temporary check: disable streaming UI if backend parameter contains "oidc" + const isOidcBackend = useDisableOidcStreaming(); + + const shouldShowStreamingUI = isQueryStreamingEnabled && !isOidcBackend; + + if (shouldShowStreamingUI) { return (
{ + const [{backend}] = useQueryParams({backend: StringParam}); + return backend && backend.includes('oidc'); +}; diff --git a/src/utils/hooks/useQueryExecutionSettings.ts b/src/utils/hooks/useQueryExecutionSettings.ts index 769f6a7e20..e9b8dd1efd 100644 --- a/src/utils/hooks/useQueryExecutionSettings.ts +++ b/src/utils/hooks/useQueryExecutionSettings.ts @@ -14,6 +14,7 @@ import { querySettingsRestoreSchema, } from '../query'; +import {useDisableOidcStreaming} from './useDisableOidcStreaming'; import {useSetting} from './useSetting'; export const useQueryExecutionSettings = () => { @@ -24,6 +25,11 @@ export const useQueryExecutionSettings = () => { const [useShowPlanToSvg] = useSetting(USE_SHOW_PLAN_SVG_KEY); const [enableQueryStreaming] = useSetting(ENABLE_QUERY_STREAMING); + // Temporary check: disable streaming behavior if backend parameter contains "oidc" + const isOidcBackend = useDisableOidcStreaming(); + + const effectiveStreamingEnabled = enableQueryStreaming && !isOidcBackend; + const setQueryExecutionSettings = React.useCallback( (settings: QuerySettings) => { setSettings({ @@ -39,7 +45,7 @@ export const useQueryExecutionSettings = () => { const settings: QuerySettings = { ...validatedSettings, timeout: - enableQueryStreaming && validatedSettings.queryMode === QUERY_MODES.query + effectiveStreamingEnabled && validatedSettings.queryMode === QUERY_MODES.query ? validatedSettings.timeout || null : validatedSettings.timeout || undefined, statisticsMode: useShowPlanToSvg ? STATISTICS_MODES.full : validatedSettings.statisticsMode,