Skip to content

Commit f8a14be

Browse files
Merge pull request #5752 from gooddata/SHA_master
fix: add feature flag for external recipients
2 parents 063e58a + ceaa658 commit f8a14be

File tree

7 files changed

+38
-5
lines changed

7 files changed

+38
-5
lines changed

libs/sdk-backend-tiger/src/backend/features/feature.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// (C) 2020-2024 GoodData Corporation
1+
// (C) 2020-2025 GoodData Corporation
22

33
import { FeatureFlagsValues, ITigerFeatureFlags, TigerFeaturesNames } from "../uiFeatures.js";
44
import { convertState } from "./state.js";
@@ -604,6 +604,13 @@ export function mapFeatures(features: FeaturesMap): Partial<ITigerFeatureFlags>
604604
"BOOLEAN",
605605
FeatureFlagsValues.enableVisualizationFineTuning,
606606
),
607+
...loadFeature(
608+
features,
609+
TigerFeaturesNames.EnableExternalRecipients,
610+
"enableExternalRecipients",
611+
"BOOLEAN",
612+
FeatureFlagsValues.enableExternalRecipients,
613+
),
607614
};
608615
}
609616

libs/sdk-backend-tiger/src/backend/uiFeatures.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// (C) 2020-2024 GoodData Corporation
1+
// (C) 2020-2025 GoodData Corporation
22
import { IEarlyAccessFeaturesConfig } from "@gooddata/sdk-model";
33

44
/**
@@ -123,6 +123,7 @@ export enum TigerFeaturesNames {
123123
EnableNewUserCreationFlow = "enableNewUserCreationFlow",
124124
EnableDestinationTesting = "enableDestinationTesting",
125125
EnableInPlatformNotifications = "enableInPlatformNotifications",
126+
EnableExternalRecipients = "enableExternalRecipients",
126127
EnableVisualizationFineTuning = "enableVisualizationFineTuning",
127128
}
128129

@@ -211,6 +212,7 @@ export type ITigerFeatureFlags = {
211212
enableDestinationTesting: typeof FeatureFlagsValues["enableDestinationTesting"][number];
212213
enableInPlatformNotifications: typeof FeatureFlagsValues["enableInPlatformNotifications"][number];
213214
enableVisualizationFineTuning: typeof FeatureFlagsValues["enableVisualizationFineTuning"][number];
215+
enableExternalRecipients: typeof FeatureFlagsValues["enableExternalRecipients"][number];
214216
};
215217

216218
export const DefaultFeatureFlags: ITigerFeatureFlags = {
@@ -298,6 +300,7 @@ export const DefaultFeatureFlags: ITigerFeatureFlags = {
298300
enableDestinationTesting: false,
299301
enableInPlatformNotifications: false,
300302
enableVisualizationFineTuning: false,
303+
enableExternalRecipients: false,
301304
};
302305

303306
export const FeatureFlagsValues = {
@@ -389,4 +392,5 @@ export const FeatureFlagsValues = {
389392
enableDestinationTesting: [true, false] as const,
390393
enableInPlatformNotifications: [true, false] as const,
391394
enableVisualizationFineTuning: [true, false] as const,
395+
enableExternalRecipients: [true, false] as const,
392396
};

libs/sdk-model/api/sdk-model.api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3338,6 +3338,7 @@ export interface ISettings {
33383338
enableEarlyAccessFeaturesRollout?: boolean;
33393339
enableEmbedButtonInAD?: boolean;
33403340
enableEmbedButtonInKD?: boolean;
3341+
enableExternalRecipients?: boolean;
33413342
enableFlightRpcDataSource?: boolean;
33423343
enableGenAIChat?: boolean;
33433344
enableGenAIChatRollout?: boolean;

libs/sdk-model/src/settings/index.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// (C) 2020-2024 GoodData Corporation
1+
// (C) 2020-2025 GoodData Corporation
22

33
/**
44
* Settings are obtained from backend and are effectively a collection of feature flags or settings with
@@ -566,6 +566,11 @@ export interface ISettings {
566566
*/
567567
enableVisualizationFineTuning?: boolean;
568568

569+
/**
570+
* Enable external recipients options
571+
*/
572+
enableExternalRecipients?: boolean;
573+
569574
[key: string]: number | boolean | string | object | undefined;
570575
}
571576

libs/sdk-ui-dashboard/api/sdk-ui-dashboard.api.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7651,6 +7651,9 @@ export const selectEnableCrossFilteringAliasTitles: DashboardSelector<boolean>;
76517651
// @internal
76527652
export const selectEnableDuplicatedLabelValuesInAttributeFilter: DashboardSelector<boolean>;
76537653

7654+
// @internal
7655+
export const selectEnableExternalRecipients: DashboardSelector<boolean>;
7656+
76547657
// @public
76557658
export const selectEnableFilterValuesResolutionInDrillEvents: DashboardSelector<boolean>;
76567659

libs/sdk-ui-dashboard/src/model/store/config/configSelectors.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// (C) 2021-2024 GoodData Corporation
1+
// (C) 2021-2025 GoodData Corporation
22
import {
33
IColorPalette,
44
IDateFilterConfig,
@@ -823,3 +823,15 @@ export const selectAutomationId: DashboardSelector<string | undefined> = createS
823823
return state.automationId;
824824
},
825825
);
826+
827+
/**
828+
* Returns whether external recipients are enabled.
829+
*
830+
* @internal
831+
*/
832+
export const selectEnableExternalRecipients: DashboardSelector<boolean> = createSelector(
833+
selectConfig,
834+
(state) => {
835+
return state.settings?.enableExternalRecipients ?? false;
836+
},
837+
);

libs/sdk-ui-dashboard/src/model/store/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// (C) 2021-2024 GoodData Corporation
1+
// (C) 2021-2025 GoodData Corporation
22
export type {
33
DashboardDispatch,
44
DashboardState,
@@ -99,6 +99,7 @@ export {
9999
selectEnableCrossFilteringAliasTitles,
100100
selectEnableFlexibleLayout,
101101
selectEnableInPlatformNotifications,
102+
selectEnableExternalRecipients,
102103
selectAutomationId,
103104
} from "./config/configSelectors.js";
104105
export type { EntitlementsState } from "./entitlements/entitlementsState.js";

0 commit comments

Comments
 (0)