Add feature flag for sse (#17152)

As title
This commit is contained in:
Thomas Trompette
2026-01-14 15:20:45 +01:00
committed by GitHub
parent a9e07d4f97
commit 93aef30046
6 changed files with 22 additions and 0 deletions
@@ -1373,6 +1373,7 @@ export enum FeatureFlagKey {
IS_PUBLIC_DOMAIN_ENABLED = 'IS_PUBLIC_DOMAIN_ENABLED',
IS_RECORD_PAGE_LAYOUT_ENABLED = 'IS_RECORD_PAGE_LAYOUT_ENABLED',
IS_ROW_LEVEL_PERMISSION_PREDICATES_ENABLED = 'IS_ROW_LEVEL_PERMISSION_PREDICATES_ENABLED',
IS_SSE_DB_EVENTS_ENABLED = 'IS_SSE_DB_EVENTS_ENABLED',
IS_TIMELINE_ACTIVITY_MIGRATED = 'IS_TIMELINE_ACTIVITY_MIGRATED',
IS_UNIQUE_INDEXES_ENABLED = 'IS_UNIQUE_INDEXES_ENABLED'
}
@@ -1356,6 +1356,7 @@ export enum FeatureFlagKey {
IS_PUBLIC_DOMAIN_ENABLED = 'IS_PUBLIC_DOMAIN_ENABLED',
IS_RECORD_PAGE_LAYOUT_ENABLED = 'IS_RECORD_PAGE_LAYOUT_ENABLED',
IS_ROW_LEVEL_PERMISSION_PREDICATES_ENABLED = 'IS_ROW_LEVEL_PERMISSION_PREDICATES_ENABLED',
IS_SSE_DB_EVENTS_ENABLED = 'IS_SSE_DB_EVENTS_ENABLED',
IS_TIMELINE_ACTIVITY_MIGRATED = 'IS_TIMELINE_ACTIVITY_MIGRATED',
IS_UNIQUE_INDEXES_ENABLED = 'IS_UNIQUE_INDEXES_ENABLED'
}
@@ -2,15 +2,28 @@ import { SSEProviderEffect } from '@/sse-db-event/components/SSEProviderEffect';
import { SSEQuerySubscribeEffect } from '@/sse-db-event/components/SSEQuerySubscribeEffect';
import { SseClientContext } from '@/sse-db-event/contexts/SseClientContext';
import { useSseClient } from '@/sse-db-event/hooks/useSseClient.util';
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
import { type ReactNode } from 'react';
import { FeatureFlagKey } from '~/generated/graphql';
type SSEProviderProps = {
children: ReactNode;
};
export const SSEProvider = ({ children }: SSEProviderProps) => {
const isSseDbEventsEnabled = useIsFeatureEnabled(
FeatureFlagKey.IS_SSE_DB_EVENTS_ENABLED,
);
const { sseClient } = useSseClient();
if (!isSseDbEventsEnabled) {
return (
<SseClientContext.Provider value={null}>
{children}
</SseClientContext.Provider>
);
}
return (
<SseClientContext.Provider value={sseClient}>
<SSEProviderEffect />
@@ -11,4 +11,5 @@ export enum FeatureFlagKey {
IS_TIMELINE_ACTIVITY_MIGRATED = 'IS_TIMELINE_ACTIVITY_MIGRATED',
IS_ROW_LEVEL_PERMISSION_PREDICATES_ENABLED = 'IS_ROW_LEVEL_PERMISSION_PREDICATES_ENABLED',
IS_IF_ELSE_ENABLED = 'IS_IF_ELSE_ENABLED',
IS_SSE_DB_EVENTS_ENABLED = 'IS_SSE_DB_EVENTS_ENABLED',
}
@@ -221,6 +221,7 @@ describe('WorkspaceEntityManager', () => {
IS_GLOBAL_WORKSPACE_DATASOURCE_ENABLED: false,
IS_ROW_LEVEL_PERMISSION_PREDICATES_ENABLED: false,
IS_IF_ELSE_ENABLED: false,
IS_SSE_DB_EVENTS_ENABLED: false,
},
userWorkspaceRoleMap: {},
eventEmitterService: {
@@ -76,6 +76,11 @@ export const seedFeatureFlags = async ({
workspaceId: workspaceId,
value: true,
},
{
key: FeatureFlagKey.IS_SSE_DB_EVENTS_ENABLED,
workspaceId: workspaceId,
value: true,
},
])
.execute();
};