@gooddata/sdk-backend-tiger 11.36.0-alpha.3 → 11.36.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/esm/__version.d.ts +1 -1
  2. package/esm/__version.js +1 -1
  3. package/esm/backend/features/feature.js +2 -2
  4. package/esm/backend/organization/automations/automationsQuery.js +1 -2
  5. package/esm/backend/uiFeatures.d.ts +7 -7
  6. package/esm/backend/uiFeatures.js +6 -6
  7. package/esm/backend/workspace/automations/automationsQuery.js +1 -2
  8. package/esm/backend/workspace/automations/index.d.ts +0 -1
  9. package/esm/backend/workspace/automations/index.js +6 -14
  10. package/esm/backend/workspace/dashboards/index.js +8 -7
  11. package/esm/backend/workspace/exportDefinitions/exportDefinitionsQuery.js +1 -4
  12. package/esm/backend/workspace/exportDefinitions/index.d.ts +0 -1
  13. package/esm/backend/workspace/exportDefinitions/index.js +7 -16
  14. package/esm/backend/workspace/insights/mocks/visualizationClasses.js +13 -1
  15. package/esm/convertors/fromBackend/AutomationConverter.d.ts +2 -2
  16. package/esm/convertors/fromBackend/AutomationConverter.js +7 -7
  17. package/esm/convertors/fromBackend/ExportDefinitionsConverter.d.ts +3 -3
  18. package/esm/convertors/fromBackend/ExportDefinitionsConverter.js +8 -8
  19. package/esm/convertors/fromBackend/ExportMetadataConverter.d.ts +1 -1
  20. package/esm/convertors/fromBackend/ExportMetadataConverter.js +3 -5
  21. package/esm/convertors/fromBackend/FilterViewConvertor.js +5 -2
  22. package/esm/convertors/fromBackend/analyticalDashboards/AnalyticalDashboardConverter.js +11 -3
  23. package/esm/convertors/fromBackend/analyticalDashboards/v2/AnalyticalDashboardConverter.d.ts +3 -2
  24. package/esm/convertors/fromBackend/analyticalDashboards/v2/AnalyticalDashboardConverter.js +1 -1
  25. package/esm/convertors/toBackend/AnalyticalDashboardConverter.d.ts +9 -5
  26. package/esm/convertors/toBackend/AnalyticalDashboardConverter.js +28 -16
  27. package/esm/convertors/toBackend/AutomationConverter.d.ts +1 -1
  28. package/esm/convertors/toBackend/AutomationConverter.js +6 -6
  29. package/esm/convertors/toBackend/ExportDefinitionsConverter.d.ts +3 -3
  30. package/esm/convertors/toBackend/ExportDefinitionsConverter.js +6 -8
  31. package/package.json +12 -12
@@ -1,3 +1,3 @@
1
- export declare const LIB_VERSION = "11.36.0-alpha.3";
1
+ export declare const LIB_VERSION = "11.36.0-alpha.6";
2
2
  export declare const LIB_DESCRIPTION = "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN";
3
3
  export declare const LIB_NAME = "@gooddata/sdk-backend-tiger";
package/esm/__version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // (C) 2021 GoodData Corporation
2
2
  // DO NOT CHANGE THIS FILE, IT IS RE-GENERATED ON EVERY BUILD
3
- export const LIB_VERSION = "11.36.0-alpha.3";
3
+ export const LIB_VERSION = "11.36.0-alpha.6";
4
4
  export const LIB_DESCRIPTION = "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN";
5
5
  export const LIB_NAME = "@gooddata/sdk-backend-tiger";
@@ -9,6 +9,7 @@ export function mapFeatures(features) {
9
9
  ...loadFeature(features, TigerFeaturesNames.EnableMetricFormatOverrides, "enableMetricFormatOverrides", "BOOLEAN", FeatureFlagsValues.enableMetricFormatOverrides),
10
10
  ...loadFeature(features, TigerFeaturesNames.EnableDescriptions, "enableDescriptions", "BOOLEAN", FeatureFlagsValues.enableDescriptions),
11
11
  ...loadFeature(features, TigerFeaturesNames.EnableFunnelChart, "enableFunnelChart", "BOOLEAN", FeatureFlagsValues.enableFunnelChart),
12
+ ...loadFeature(features, TigerFeaturesNames.EnableRadarChart, "enableRadarChart", "BOOLEAN", FeatureFlagsValues.enableRadarChart),
12
13
  ...loadFeature(features, TigerFeaturesNames.EnablePyramidChart, "enablePyramidChart", "BOOLEAN", FeatureFlagsValues.enablePyramidChart),
13
14
  ...loadFeature(features, TigerFeaturesNames.EnableSankeyChart, "enableSankeyChart", "BOOLEAN", FeatureFlagsValues.enableSankeyChart),
14
15
  ...loadFeature(features, TigerFeaturesNames.EnableDependencyWheelChart, "enableDependencyWheelChart", "BOOLEAN", FeatureFlagsValues.enableDependencyWheelChart),
@@ -84,7 +85,6 @@ export function mapFeatures(features) {
84
85
  ...loadFeature(features, TigerFeaturesNames.EnableInPlatformNotifications, "enableInPlatformNotifications", "BOOLEAN", FeatureFlagsValues.enableInPlatformNotifications),
85
86
  ...loadFeature(features, TigerFeaturesNames.EnableVisualizationFilteringByTags, "enableVisualizationFilteringByTags", "BOOLEAN", FeatureFlagsValues.enableVisualizationFilteringByTags),
86
87
  ...loadFeature(features, TigerFeaturesNames.EnableVisualizationFineTuning, "enableVisualizationFineTuning", "BOOLEAN", FeatureFlagsValues.enableVisualizationFineTuning),
87
- ...loadFeature(features, TigerFeaturesNames.EnableImprovedAdFilters, "enableImprovedAdFilters", "BOOLEAN", FeatureFlagsValues.enableImprovedAdFilters),
88
88
  ...loadFeature(features, TigerFeaturesNames.EnableExternalRecipients, "enableExternalRecipients", "BOOLEAN", FeatureFlagsValues.enableExternalRecipients),
89
89
  ...loadFeature(features, TigerFeaturesNames.EnableDashboardTabularExport, "enableDashboardTabularExport", "BOOLEAN", FeatureFlagsValues.enableDashboardTabularExport),
90
90
  ...loadFeature(features, TigerFeaturesNames.EnableOrchestratedTabularExports, "enableOrchestratedTabularExports", "BOOLEAN", FeatureFlagsValues.enableOrchestratedTabularExports),
@@ -103,7 +103,6 @@ export function mapFeatures(features) {
103
103
  ...loadFeature(features, TigerFeaturesNames.EnableHighchartsAccessibility, "enableHighchartsAccessibility", "BOOLEAN", FeatureFlagsValues.enableHighchartsAccessibility),
104
104
  ...loadFeature(features, TigerFeaturesNames.EnableAccessibleChartTooltip, "enableAccessibleChartTooltip", "BOOLEAN", FeatureFlagsValues.enableAccessibleChartTooltip),
105
105
  ...loadFeature(features, TigerFeaturesNames.EnableExecutionTimestamp, "enableExecutionTimestamp", "BOOLEAN", FeatureFlagsValues.enableExecutionTimestamp),
106
- ...loadFeature(features, TigerFeaturesNames.EnableAutomationFilterContext, "enableAutomationFilterContext", "BOOLEAN", FeatureFlagsValues.enableAutomationFilterContext),
107
106
  ...loadFeature(features, TigerFeaturesNames.EnableDateFilterIdentifiersRollout, "enableDateFilterIdentifiersRollout", "BOOLEAN", FeatureFlagsValues.enableDateFilterIdentifiersRollout),
108
107
  ...loadFeature(features, TigerFeaturesNames.EnableAlertsEvaluationFrequencySetup, "enableAlertsEvaluationFrequencySetup", "BOOLEAN", FeatureFlagsValues.enableAlertsEvaluationFrequencySetup),
109
108
  ...loadFeature(features, TigerFeaturesNames.EnableLineChartTrendThreshold, "enableLineChartTrendThreshold", "BOOLEAN", FeatureFlagsValues.enableLineChartTrendThreshold),
@@ -146,6 +145,7 @@ export function mapFeatures(features) {
146
145
  ...loadFeature(features, TigerFeaturesNames.EnableKDEmptyDateValuesFilter, "enableKDEmptyDateValuesFilter", "BOOLEAN", FeatureFlagsValues.enableKDEmptyDateValuesFilter),
147
146
  ...loadFeature(features, TigerFeaturesNames.EnableRichTextWidgetFilterConfiguration, "enableRichTextWidgetFilterConfiguration", "BOOLEAN", FeatureFlagsValues.enableRichTextWidgetFilterConfiguration),
148
147
  ...loadFeature(features, TigerFeaturesNames.EnableDashboardSectionHeadersDateDataSet, "enableDashboardSectionHeadersDateDataSet", "BOOLEAN", FeatureFlagsValues.enableDashboardSectionHeadersDateDataSet),
148
+ ...loadFeature(features, TigerFeaturesNames.EnableAnalyticalDashboardVersion3, "enableAnalyticalDashboardVersion3", "BOOLEAN", FeatureFlagsValues.enableAnalyticalDashboardVersion3),
149
149
  ...loadFeature(features, TigerFeaturesNames.EnableAnomalyDetectionAlert, "enableAnomalyDetectionAlert", "BOOLEAN", FeatureFlagsValues.enableAnomalyDetectionAlert),
150
150
  ...loadFeature(features, TigerFeaturesNames.EnableAnomalyDetectionVisualization, "enableAnomalyDetectionVisualization", "BOOLEAN", FeatureFlagsValues.enableAnomalyDetectionVisualization),
151
151
  ...loadFeature(features, TigerFeaturesNames.EnableAlertOncePerInterval, "enableAlertOncePerInterval", "BOOLEAN", FeatureFlagsValues.enableAlertOncePerInterval),
@@ -102,7 +102,6 @@ export class OrganizationAutomationsQuery {
102
102
  ? ["automationResults"]
103
103
  : [];
104
104
  // Note: Organization-level automations always include user data
105
- const enableAutomationFilterContext = true;
106
105
  const enableNewScheduledExport = true;
107
106
  const requestParams = {
108
107
  ...metaIncludeObj,
@@ -130,7 +129,7 @@ export class OrganizationAutomationsQuery {
130
129
  this.setTotalCount(totalCount);
131
130
  }
132
131
  // Convert workspace automation list to standard automation objects
133
- return res.data.data.map((automationObject) => convertAutomation(automationObject, (res.data?.included ?? []), enableAutomationFilterContext, enableNewScheduledExport));
132
+ return res.data.data.map((automationObject) => convertAutomation(automationObject, (res.data?.included ?? []), enableNewScheduledExport));
134
133
  })
135
134
  .catch((error) => {
136
135
  if (error.httpStatus === 400) {
@@ -89,7 +89,6 @@ export declare enum TigerFeaturesNames {
89
89
  EnableDrilledTooltip = "enableDrilledTooltip",
90
90
  EnableVisualizationFilteringByTags = "enableVisualizationFilteringByTags",
91
91
  EnableVisualizationFineTuning = "enableVisualizationFineTuning",
92
- EnableImprovedAdFilters = "enableImprovedAdFilters",
93
92
  EnableDashboardDescriptionDynamicHeight = "enableDashboardDescriptionDynamicHeight",
94
93
  EnableAmplitudeTracker = "enableAmplitudeTracker",
95
94
  EnableSlideshowExports = "enableSlideshowExports",
@@ -104,7 +103,6 @@ export declare enum TigerFeaturesNames {
104
103
  EnableAnalyticalDesignerCatalogSideload = "enableAnalyticalDesignerCatalogSideload",
105
104
  EnableDashboardShareLink = "enableDashboardShareLink",
106
105
  EnableExecutionTimestamp = "enableExecutionTimestamp",
107
- EnableAutomationFilterContext = "enableAutomationFilterContext",
108
106
  EnableDateFilterIdentifiersRollout = "enableDateFilterIdentifiersRollout",
109
107
  EnableAlertsEvaluationFrequencySetup = "enableAlertsEvaluationFrequencySetup",
110
108
  EnableLineChartTrendThreshold = "enableLineChartTrendThreshold",
@@ -145,6 +143,7 @@ export declare enum TigerFeaturesNames {
145
143
  EnableKDEmptyDateValuesFilter = "enableKDEmptyDateValuesFilter",
146
144
  EnableRichTextWidgetFilterConfiguration = "enableRichTextWidgetFilterConfiguration",
147
145
  EnableDashboardSectionHeadersDateDataSet = "enableDashboardSectionHeadersDateDataSet",
146
+ EnableAnalyticalDashboardVersion3 = "enableAnalyticalDashboardVersion3",
148
147
  EnableAnomalyDetectionAlert = "enableAnomalyDetectionAlert",
149
148
  EnableAnomalyDetectionVisualization = "enableAnomalyDetectionVisualization",
150
149
  EnableAlertOncePerInterval = "enableAlertOncePerInterval",
@@ -168,7 +167,8 @@ export declare enum TigerFeaturesNames {
168
167
  EnableUserDataFiltersUi = "enableUserDataFiltersUi",
169
168
  EnableEnhancedInsightPicker = "enableEnhancedInsightPicker",
170
169
  EnableAiAgenticMultiConversations = "enableAiAgenticMultiConversations",
171
- EnableAiLlmAnthropicProvider = "enableAiLlmAnthropicProvider"
170
+ EnableAiLlmAnthropicProvider = "enableAiLlmAnthropicProvider",
171
+ EnableRadarChart = "enableRadarChart"
172
172
  }
173
173
  export type ITigerFeatureFlags = {
174
174
  dashboardEditModeDevRollout: (typeof FeatureFlagsValues)["dashboardEditModeDevRollout"][number];
@@ -178,6 +178,7 @@ export type ITigerFeatureFlags = {
178
178
  enableKPIDashboardExportPDF: (typeof FeatureFlagsValues)["enableKPIDashboardExportPDF"][number];
179
179
  enableSqlDatasets: (typeof FeatureFlagsValues)["enableSqlDatasets"][number];
180
180
  enableFunnelChart: (typeof FeatureFlagsValues)["enableFunnelChart"][number];
181
+ enableRadarChart: (typeof FeatureFlagsValues)["enableRadarChart"][number];
181
182
  enablePyramidChart: (typeof FeatureFlagsValues)["enablePyramidChart"][number];
182
183
  enableSankeyChart: (typeof FeatureFlagsValues)["enableSankeyChart"][number];
183
184
  enableDependencyWheelChart: (typeof FeatureFlagsValues)["enableDependencyWheelChart"][number];
@@ -252,7 +253,6 @@ export type ITigerFeatureFlags = {
252
253
  enableInPlatformNotifications: (typeof FeatureFlagsValues)["enableInPlatformNotifications"][number];
253
254
  enableVisualizationFilteringByTags: (typeof FeatureFlagsValues)["enableVisualizationFilteringByTags"][number];
254
255
  enableVisualizationFineTuning: (typeof FeatureFlagsValues)["enableVisualizationFineTuning"][number];
255
- enableImprovedAdFilters: (typeof FeatureFlagsValues)["enableImprovedAdFilters"][number];
256
256
  enableExternalRecipients: (typeof FeatureFlagsValues)["enableExternalRecipients"][number];
257
257
  enableDashboardTabularExport: (typeof FeatureFlagsValues)["enableDashboardTabularExport"][number];
258
258
  enableOrchestratedTabularExports: (typeof FeatureFlagsValues)["enableOrchestratedTabularExports"][number];
@@ -271,7 +271,6 @@ export type ITigerFeatureFlags = {
271
271
  enableHighchartsAccessibility: (typeof FeatureFlagsValues)["enableHighchartsAccessibility"][number];
272
272
  enableAccessibleChartTooltip: (typeof FeatureFlagsValues)["enableAccessibleChartTooltip"][number];
273
273
  enableExecutionTimestamp: (typeof FeatureFlagsValues)["enableExecutionTimestamp"][number];
274
- enableAutomationFilterContext: (typeof FeatureFlagsValues)["enableAutomationFilterContext"][number];
275
274
  enableDateFilterIdentifiersRollout: (typeof FeatureFlagsValues)["enableDateFilterIdentifiersRollout"][number];
276
275
  enableAlertsEvaluationFrequencySetup: (typeof FeatureFlagsValues)["enableAlertsEvaluationFrequencySetup"][number];
277
276
  enableLineChartTrendThreshold: (typeof FeatureFlagsValues)["enableLineChartTrendThreshold"][number];
@@ -310,6 +309,7 @@ export type ITigerFeatureFlags = {
310
309
  enableKDEmptyDateValuesFilter: (typeof FeatureFlagsValues)["enableKDEmptyDateValuesFilter"][number];
311
310
  enableRichTextWidgetFilterConfiguration: (typeof FeatureFlagsValues)["enableRichTextWidgetFilterConfiguration"][number];
312
311
  enableDashboardSectionHeadersDateDataSet: (typeof FeatureFlagsValues)["enableDashboardSectionHeadersDateDataSet"][number];
312
+ enableAnalyticalDashboardVersion3: (typeof FeatureFlagsValues)["enableAnalyticalDashboardVersion3"][number];
313
313
  enableAnomalyDetectionAlert: (typeof FeatureFlagsValues)["enableAnomalyDetectionAlert"][number];
314
314
  enableAnomalyDetectionVisualization: (typeof FeatureFlagsValues)["enableAnomalyDetectionVisualization"][number];
315
315
  enableAlertOncePerInterval: (typeof FeatureFlagsValues)["enableAlertOncePerInterval"][number];
@@ -346,6 +346,7 @@ export declare const FeatureFlagsValues: {
346
346
  enableKPIDashboardExportPDF: readonly [true, false];
347
347
  enableSqlDatasets: readonly [true, false];
348
348
  enableFunnelChart: readonly [true, false];
349
+ enableRadarChart: readonly [true, false];
349
350
  enablePyramidChart: readonly [true, false];
350
351
  enableSankeyChart: readonly [true, false];
351
352
  enableDependencyWheelChart: readonly [true, false];
@@ -421,7 +422,6 @@ export declare const FeatureFlagsValues: {
421
422
  enableInPlatformNotifications: readonly [true, false];
422
423
  enableVisualizationFilteringByTags: readonly [true, false];
423
424
  enableVisualizationFineTuning: readonly [true, false];
424
- enableImprovedAdFilters: readonly [true, false];
425
425
  enableExternalRecipients: readonly [true, false];
426
426
  enableDashboardTabularExport: readonly [true, false];
427
427
  enableOrchestratedTabularExports: readonly [true, false];
@@ -440,7 +440,6 @@ export declare const FeatureFlagsValues: {
440
440
  enableAnalyticalDesignerCatalogSideload: readonly [true, false];
441
441
  enableDashboardShareLink: readonly [true, false];
442
442
  enableExecutionTimestamp: readonly [true, false];
443
- enableAutomationFilterContext: readonly [true, false];
444
443
  enableDateFilterIdentifiersRollout: readonly [true, false];
445
444
  enableAlertsEvaluationFrequencySetup: readonly [true, false];
446
445
  enableLineChartTrendThreshold: readonly [true, false];
@@ -479,6 +478,7 @@ export declare const FeatureFlagsValues: {
479
478
  enableKDEmptyDateValuesFilter: readonly [true, false];
480
479
  enableRichTextWidgetFilterConfiguration: readonly [true, false];
481
480
  enableDashboardSectionHeadersDateDataSet: readonly [true, false];
481
+ enableAnalyticalDashboardVersion3: readonly [true, false];
482
482
  enableAnomalyDetectionAlert: readonly [true, false];
483
483
  enableAnomalyDetectionVisualization: readonly [true, false];
484
484
  enableAlertOncePerInterval: readonly [true, false];
@@ -93,7 +93,6 @@ var TigerFeaturesNames;
93
93
  TigerFeaturesNames["EnableDrilledTooltip"] = "enableDrilledTooltip";
94
94
  TigerFeaturesNames["EnableVisualizationFilteringByTags"] = "enableVisualizationFilteringByTags";
95
95
  TigerFeaturesNames["EnableVisualizationFineTuning"] = "enableVisualizationFineTuning";
96
- TigerFeaturesNames["EnableImprovedAdFilters"] = "enableImprovedAdFilters";
97
96
  TigerFeaturesNames["EnableDashboardDescriptionDynamicHeight"] = "enableDashboardDescriptionDynamicHeight";
98
97
  TigerFeaturesNames["EnableAmplitudeTracker"] = "enableAmplitudeTracker";
99
98
  TigerFeaturesNames["EnableSlideshowExports"] = "enableSlideshowExports";
@@ -108,7 +107,6 @@ var TigerFeaturesNames;
108
107
  TigerFeaturesNames["EnableAnalyticalDesignerCatalogSideload"] = "enableAnalyticalDesignerCatalogSideload";
109
108
  TigerFeaturesNames["EnableDashboardShareLink"] = "enableDashboardShareLink";
110
109
  TigerFeaturesNames["EnableExecutionTimestamp"] = "enableExecutionTimestamp";
111
- TigerFeaturesNames["EnableAutomationFilterContext"] = "enableAutomationFilterContext";
112
110
  TigerFeaturesNames["EnableDateFilterIdentifiersRollout"] = "enableDateFilterIdentifiersRollout";
113
111
  TigerFeaturesNames["EnableAlertsEvaluationFrequencySetup"] = "enableAlertsEvaluationFrequencySetup";
114
112
  TigerFeaturesNames["EnableLineChartTrendThreshold"] = "enableLineChartTrendThreshold";
@@ -149,6 +147,7 @@ var TigerFeaturesNames;
149
147
  TigerFeaturesNames["EnableKDEmptyDateValuesFilter"] = "enableKDEmptyDateValuesFilter";
150
148
  TigerFeaturesNames["EnableRichTextWidgetFilterConfiguration"] = "enableRichTextWidgetFilterConfiguration";
151
149
  TigerFeaturesNames["EnableDashboardSectionHeadersDateDataSet"] = "enableDashboardSectionHeadersDateDataSet";
150
+ TigerFeaturesNames["EnableAnalyticalDashboardVersion3"] = "enableAnalyticalDashboardVersion3";
152
151
  TigerFeaturesNames["EnableAnomalyDetectionAlert"] = "enableAnomalyDetectionAlert";
153
152
  TigerFeaturesNames["EnableAnomalyDetectionVisualization"] = "enableAnomalyDetectionVisualization";
154
153
  TigerFeaturesNames["EnableAlertOncePerInterval"] = "enableAlertOncePerInterval";
@@ -173,6 +172,7 @@ var TigerFeaturesNames;
173
172
  TigerFeaturesNames["EnableEnhancedInsightPicker"] = "enableEnhancedInsightPicker";
174
173
  TigerFeaturesNames["EnableAiAgenticMultiConversations"] = "enableAiAgenticMultiConversations";
175
174
  TigerFeaturesNames["EnableAiLlmAnthropicProvider"] = "enableAiLlmAnthropicProvider";
175
+ TigerFeaturesNames["EnableRadarChart"] = "enableRadarChart";
176
176
  })(TigerFeaturesNames || (TigerFeaturesNames = {}));
177
177
  export const DefaultFeatureFlags = {
178
178
  dashboardEditModeDevRollout: true,
@@ -182,6 +182,7 @@ export const DefaultFeatureFlags = {
182
182
  enableKPIDashboardExportPDF: true,
183
183
  enableSqlDatasets: false,
184
184
  enableFunnelChart: true,
185
+ enableRadarChart: false,
185
186
  enablePyramidChart: true,
186
187
  enableSankeyChart: true,
187
188
  enableDependencyWheelChart: true,
@@ -256,7 +257,6 @@ export const DefaultFeatureFlags = {
256
257
  enableInPlatformNotifications: true,
257
258
  enableVisualizationFilteringByTags: false,
258
259
  enableVisualizationFineTuning: false,
259
- enableImprovedAdFilters: true,
260
260
  enableExternalRecipients: true,
261
261
  enableDashboardTabularExport: false,
262
262
  enableOrchestratedTabularExports: false,
@@ -275,7 +275,6 @@ export const DefaultFeatureFlags = {
275
275
  enableHighchartsAccessibility: true,
276
276
  enableAccessibleChartTooltip: false,
277
277
  enableExecutionTimestamp: true,
278
- enableAutomationFilterContext: true,
279
278
  enableDateFilterIdentifiersRollout: true,
280
279
  enableAlertsEvaluationFrequencySetup: true,
281
280
  enableLineChartTrendThreshold: true,
@@ -314,6 +313,7 @@ export const DefaultFeatureFlags = {
314
313
  enableKDEmptyDateValuesFilter: true,
315
314
  enableRichTextWidgetFilterConfiguration: false,
316
315
  enableDashboardSectionHeadersDateDataSet: false,
316
+ enableAnalyticalDashboardVersion3: false,
317
317
  enableAnomalyDetectionAlert: false,
318
318
  enableAnomalyDetectionVisualization: false,
319
319
  enableAlertOncePerInterval: false,
@@ -349,6 +349,7 @@ export const FeatureFlagsValues = {
349
349
  enableKPIDashboardExportPDF: [true, false],
350
350
  enableSqlDatasets: [true, false],
351
351
  enableFunnelChart: [true, false],
352
+ enableRadarChart: [true, false],
352
353
  enablePyramidChart: [true, false],
353
354
  enableSankeyChart: [true, false],
354
355
  enableDependencyWheelChart: [true, false],
@@ -424,7 +425,6 @@ export const FeatureFlagsValues = {
424
425
  enableInPlatformNotifications: [true, false],
425
426
  enableVisualizationFilteringByTags: [true, false],
426
427
  enableVisualizationFineTuning: [true, false],
427
- enableImprovedAdFilters: [true, false],
428
428
  enableExternalRecipients: [true, false],
429
429
  enableDashboardTabularExport: [true, false],
430
430
  enableOrchestratedTabularExports: [true, false],
@@ -443,7 +443,6 @@ export const FeatureFlagsValues = {
443
443
  enableAnalyticalDesignerCatalogSideload: [true, false],
444
444
  enableDashboardShareLink: [true, false],
445
445
  enableExecutionTimestamp: [true, false],
446
- enableAutomationFilterContext: [true, false],
447
446
  enableDateFilterIdentifiersRollout: [true, false],
448
447
  enableAlertsEvaluationFrequencySetup: [true, false],
449
448
  enableLineChartTrendThreshold: [true, false],
@@ -482,6 +481,7 @@ export const FeatureFlagsValues = {
482
481
  enableKDEmptyDateValuesFilter: [true, false],
483
482
  enableRichTextWidgetFilterConfiguration: [true, false],
484
483
  enableDashboardSectionHeadersDateDataSet: [true, false],
484
+ enableAnalyticalDashboardVersion3: [true, false],
485
485
  enableAnomalyDetectionAlert: [true, false],
486
486
  enableAnomalyDetectionVisualization: [true, false],
487
487
  enableAlertOncePerInterval: [true, false],
@@ -95,7 +95,6 @@ export class AutomationsQuery {
95
95
  : [];
96
96
  const filterObj = this.constructFilter();
97
97
  const userSettings = await getSettingsForCurrentUser(this.authCall, this.requestParameters.workspaceId);
98
- const enableAutomationFilterContext = userSettings.enableAutomationFilterContext ?? true;
99
98
  const enableNewScheduledExport = userSettings.enableNewScheduledExport ?? true;
100
99
  const items = await this.authCall((client) => EntitiesApi_GetAllEntitiesAutomations(client.axios, client.basePath, {
101
100
  ...this.requestParameters,
@@ -121,7 +120,7 @@ export class AutomationsQuery {
121
120
  if (!(totalCount === null || totalCount === undefined)) {
122
121
  this.setTotalCount(totalCount);
123
122
  }
124
- return convertAutomationListToAutomations(data, enableAutomationFilterContext, enableNewScheduledExport);
123
+ return convertAutomationListToAutomations(data, enableNewScheduledExport);
125
124
  });
126
125
  return { items, totalCount: this.totalCount };
127
126
  }, this.size, this.page * this.size);
@@ -19,6 +19,5 @@ export declare class TigerWorkspaceAutomationService implements IWorkspaceAutoma
19
19
  resumeAutomation(id: string): Promise<void>;
20
20
  resumeAutomations(ids: string[]): Promise<void>;
21
21
  triggerAutomation(id: string): Promise<void>;
22
- private getEnableAutomationFilterContext;
23
22
  private getEnableNewScheduledExport;
24
23
  }
@@ -15,7 +15,6 @@ export class TigerWorkspaceAutomationService {
15
15
  }
16
16
  getAutomations = async (options) => {
17
17
  const { loadUserData = false } = options ?? {};
18
- const enableAutomationFilterContext = await this.getEnableAutomationFilterContext();
19
18
  const enableNewScheduledExport = await this.getEnableNewScheduledExport();
20
19
  return this.authCall(async (client) => {
21
20
  const result = await EntitiesApi_GetAllEntitiesAutomations(client.axios, client.basePath, {
@@ -30,7 +29,7 @@ export class TigerWorkspaceAutomationService {
30
29
  origin: "NATIVE", // ensures that no inherited automations are returned
31
30
  });
32
31
  const automations = result.data?.data || [];
33
- return automations.map((automation) => convertAutomationFromBackend(automation, result.data.included ?? [], enableAutomationFilterContext, enableNewScheduledExport));
32
+ return automations.map((automation) => convertAutomationFromBackend(automation, result.data.included ?? [], enableNewScheduledExport));
34
33
  });
35
34
  };
36
35
  getAutomationsQuery = (options) => {
@@ -38,7 +37,6 @@ export class TigerWorkspaceAutomationService {
38
37
  };
39
38
  getAutomation = async (id, options) => {
40
39
  const { loadUserData = false } = options ?? {};
41
- const enableAutomationFilterContext = await this.getEnableAutomationFilterContext();
42
40
  const enableNewScheduledExport = await this.getEnableNewScheduledExport();
43
41
  return this.authCall(async (client) => {
44
42
  const result = await EntitiesApi_GetEntityAutomations(client.axios, client.basePath, {
@@ -52,15 +50,14 @@ export class TigerWorkspaceAutomationService {
52
50
  ...(loadUserData ? ["createdBy", "modifiedBy"] : []),
53
51
  ],
54
52
  });
55
- return convertAutomationFromBackend(result.data.data, result.data.included ?? [], enableAutomationFilterContext, enableNewScheduledExport);
53
+ return convertAutomationFromBackend(result.data.data, result.data.included ?? [], enableNewScheduledExport);
56
54
  });
57
55
  };
58
56
  createAutomation = async (automation, options, widgetExecution, overrides) => {
59
57
  const { loadUserData = false } = options ?? {};
60
- const enableAutomationFilterContext = await this.getEnableAutomationFilterContext();
61
58
  const enableNewScheduledExport = await this.getEnableNewScheduledExport();
62
59
  return this.authCall(async (client) => {
63
- const convertedAutomation = convertAutomationToBackend(automation, enableAutomationFilterContext, enableNewScheduledExport, widgetExecution, overrides);
60
+ const convertedAutomation = convertAutomationToBackend(automation, enableNewScheduledExport, widgetExecution, overrides);
64
61
  const result = await EntitiesApi_CreateEntityAutomations(client.axios, client.basePath, {
65
62
  workspaceId: this.workspaceId,
66
63
  jsonApiAutomationInDocument: {
@@ -74,15 +71,14 @@ export class TigerWorkspaceAutomationService {
74
71
  ...(loadUserData ? ["createdBy", "modifiedBy"] : []),
75
72
  ],
76
73
  });
77
- return convertAutomationFromBackend(result.data.data, result.data.included ?? [], enableAutomationFilterContext, enableNewScheduledExport);
74
+ return convertAutomationFromBackend(result.data.data, result.data.included ?? [], enableNewScheduledExport);
78
75
  });
79
76
  };
80
77
  updateAutomation = async (automation, options, widgetExecution, overrides) => {
81
78
  const { loadUserData = false } = options ?? {};
82
- const enableAutomationFilterContext = await this.getEnableAutomationFilterContext();
83
79
  const enableNewScheduledExport = await this.getEnableNewScheduledExport();
84
80
  return this.authCall(async (client) => {
85
- const convertedAutomation = convertAutomationToBackend(automation, enableAutomationFilterContext, enableNewScheduledExport, widgetExecution, overrides);
81
+ const convertedAutomation = convertAutomationToBackend(automation, enableNewScheduledExport, widgetExecution, overrides);
86
82
  const result = await EntitiesApi_UpdateEntityAutomations(client.axios, client.basePath, {
87
83
  objectId: automation.id,
88
84
  workspaceId: this.workspaceId,
@@ -97,7 +93,7 @@ export class TigerWorkspaceAutomationService {
97
93
  ...(loadUserData ? ["createdBy", "modifiedBy"] : []),
98
94
  ],
99
95
  });
100
- return convertAutomationFromBackend(result.data.data, result.data.included ?? [], enableAutomationFilterContext, enableNewScheduledExport);
96
+ return convertAutomationFromBackend(result.data.data, result.data.included ?? [], enableNewScheduledExport);
101
97
  });
102
98
  };
103
99
  deleteAutomation(id) {
@@ -170,10 +166,6 @@ export class TigerWorkspaceAutomationService {
170
166
  });
171
167
  });
172
168
  }
173
- getEnableAutomationFilterContext = async () => {
174
- const userSettings = await getSettingsForCurrentUser(this.authCall, this.workspaceId);
175
- return userSettings.enableAutomationFilterContext ?? true;
176
- };
177
169
  getEnableNewScheduledExport = async () => {
178
170
  const userSettings = await getSettingsForCurrentUser(this.authCall, this.workspaceId);
179
171
  return userSettings.enableNewScheduledExport ?? true;
@@ -128,9 +128,7 @@ export class TigerWorkspaceDashboards {
128
128
  // fallback to default filters later.
129
129
  return null;
130
130
  }
131
- const userSettings = await getSettingsForCurrentUser(this.authCall, this.workspace);
132
- const enableAutomationFilterContext = userSettings.enableAutomationFilterContext ?? true;
133
- const convertedExportMetadata = convertFromBackendExportMetadata(metadata, enableAutomationFilterContext);
131
+ const convertedExportMetadata = convertFromBackendExportMetadata(metadata);
134
132
  const filterContextFromFilters = convertedExportMetadata?.filters
135
133
  ? {
136
134
  filterContext: {
@@ -204,7 +202,8 @@ export class TigerWorkspaceDashboards {
204
202
  const userSettings = await getSettingsForCurrentUser(this.authCall, this.workspace);
205
203
  const isWidgetIdentifiersEnabled = userSettings.enableWidgetIdentifiersRollout ?? true;
206
204
  const enableDashboardSectionHeadersDateDataSet = userSettings.enableDashboardSectionHeadersDateDataSet ?? false;
207
- const dashboardContent = convertAnalyticalDashboard(dashboardWithTabFilterContexts, filterContext?.ref, isWidgetIdentifiersEnabled, enableDashboardSectionHeadersDateDataSet);
205
+ const enableAnalyticalDashboardVersion3 = userSettings.enableAnalyticalDashboardVersion3 ?? false;
206
+ const dashboardContent = convertAnalyticalDashboard(dashboardWithTabFilterContexts, filterContext?.ref, isWidgetIdentifiersEnabled, enableDashboardSectionHeadersDateDataSet, enableAnalyticalDashboardVersion3);
208
207
  const result = await this.authCall((client) => {
209
208
  return DashboardsApi_CreateEntityAnalyticalDashboards(client.axios, client.basePath, {
210
209
  workspaceId: this.workspace,
@@ -262,7 +261,8 @@ export class TigerWorkspaceDashboards {
262
261
  const userSettings = await getSettingsForCurrentUser(this.authCall, this.workspace);
263
262
  const isWidgetIdentifiersEnabled = userSettings.enableWidgetIdentifiersRollout ?? true;
264
263
  const enableDashboardSectionHeadersDateDataSet = userSettings.enableDashboardSectionHeadersDateDataSet ?? false;
265
- const dashboardContent = convertAnalyticalDashboard(updatedDashboardWithTabFilterContexts, filterContext?.ref, isWidgetIdentifiersEnabled, enableDashboardSectionHeadersDateDataSet);
264
+ const enableAnalyticalDashboardVersion3 = userSettings.enableAnalyticalDashboardVersion3 ?? false;
265
+ const dashboardContent = convertAnalyticalDashboard(updatedDashboardWithTabFilterContexts, filterContext?.ref, isWidgetIdentifiersEnabled, enableDashboardSectionHeadersDateDataSet, enableAnalyticalDashboardVersion3);
266
266
  const result = await this.authCall((client) => {
267
267
  return DashboardsApi_UpdateEntityAnalyticalDashboards(client.axios, client.basePath, {
268
268
  workspaceId: this.workspace,
@@ -787,7 +787,7 @@ export class TigerWorkspaceDashboards {
787
787
  };
788
788
  createFilterView = async (filterView) => {
789
789
  try {
790
- const { name, dashboard, isDefault, filterContext, tabLocalIdentifier } = filterView;
790
+ const { name, dashboard, isDefault, filterContext, tabLocalIdentifier, parameters } = filterView;
791
791
  const dashboardId = objRefToIdentifier(dashboard, this.authCall);
792
792
  const userSettings = await getSettingsForCurrentUser(this.authCall, this.workspace);
793
793
  const useDateFilterLocalIdentifiers = userSettings.enableDateFilterIdentifiersRollout ?? true;
@@ -812,7 +812,7 @@ export class TigerWorkspaceDashboards {
812
812
  attributes: {
813
813
  isDefault,
814
814
  title: name,
815
- content: convertFilterViewContextToBackend(filterContext, useDateFilterLocalIdentifiers, tabLocalIdentifier),
815
+ content: convertFilterViewContextToBackend(filterContext, useDateFilterLocalIdentifiers, tabLocalIdentifier, parameters),
816
816
  },
817
817
  relationships: {
818
818
  user: {
@@ -841,6 +841,7 @@ export class TigerWorkspaceDashboards {
841
841
  name: title,
842
842
  filterContext,
843
843
  isDefault: persistedIsDefault ?? false,
844
+ ...(parameters === undefined ? {} : { parameters }),
844
845
  };
845
846
  });
846
847
  }
@@ -4,7 +4,6 @@ import { MetadataUtilities, } from "@gooddata/api-client-tiger";
4
4
  import { EntitiesApi_GetAllEntitiesExportDefinitions } from "@gooddata/api-client-tiger/endpoints/entitiesObjects";
5
5
  import { ServerPaging } from "@gooddata/sdk-backend-base";
6
6
  import { convertExportDefinitionMdObject } from "../../../convertors/fromBackend/ExportDefinitionsConverter.js";
7
- import { getSettingsForCurrentUser } from "../settings/index.js";
8
7
  export class ExportDefinitionsQuery {
9
8
  authCall;
10
9
  requestParameters;
@@ -65,8 +64,6 @@ export class ExportDefinitionsQuery {
65
64
  const filterObj = this.filter.title
66
65
  ? { filter: `title=containsic=${this.filter.title}` } // contains + ignore case
67
66
  : {};
68
- const userSettings = await getSettingsForCurrentUser(this.authCall, this.requestParameters.workspaceId);
69
- const enableAutomationFilterContext = userSettings.enableAutomationFilterContext ?? true;
70
67
  const items = await this.authCall((client) => EntitiesApi_GetAllEntitiesExportDefinitions(client.axios, client.basePath, {
71
68
  ...this.requestParameters,
72
69
  ...metaIncludeObj,
@@ -81,7 +78,7 @@ export class ExportDefinitionsQuery {
81
78
  if (!(totalCount === null || totalCount === undefined)) {
82
79
  this.setTotalCount(totalCount);
83
80
  }
84
- return data.data.map((ed) => convertExportDefinitionMdObject(ed, data.included, enableAutomationFilterContext));
81
+ return data.data.map((ed) => convertExportDefinitionMdObject(ed, data.included));
85
82
  });
86
83
  return { items, totalCount: this.totalCount };
87
84
  }, this.size, this.page * this.size);
@@ -12,5 +12,4 @@ export declare class TigerWorkspaceExportDefinitions implements IWorkspaceExport
12
12
  createExportDefinition: (exportDefinition: IExportDefinitionMetadataObjectDefinition) => Promise<IExportDefinitionMetadataObject>;
13
13
  updateExportDefinition: (ref: ObjRef, exportDefinition: IExportDefinitionMetadataObjectDefinition) => Promise<IExportDefinitionMetadataObject>;
14
14
  deleteExportDefinition: (ref: ObjRef) => Promise<void>;
15
- private getEnableAutomationFilterContext;
16
15
  }
@@ -7,7 +7,6 @@ import { objRefToString, } from "@gooddata/sdk-model";
7
7
  import { convertExportDefinitionMdObject as convertExportDefinitionMdObjectFromBackend } from "../../../convertors/fromBackend/ExportDefinitionsConverter.js";
8
8
  import { convertExportDefinitionMdObjectDefinition as convertExportDefinitionMdObjectDefinitionToBackend, convertExportDefinitionMdObject as convertExportDefinitionMdObjectToBackend, } from "../../../convertors/toBackend/ExportDefinitionsConverter.js";
9
9
  import { objRefToIdentifier } from "../../../utils/api.js";
10
- import { getSettingsForCurrentUser } from "../settings/index.js";
11
10
  import { exportDefinitionsListComparator } from "./comparator.js";
12
11
  import { ExportDefinitionsQuery } from "./exportDefinitionsQuery.js";
13
12
  export class TigerWorkspaceExportDefinitions {
@@ -19,7 +18,6 @@ export class TigerWorkspaceExportDefinitions {
19
18
  }
20
19
  getExportDefinitions = async (options) => {
21
20
  const requestParameters = this.getExportDefinitionsRequestParameters(options);
22
- const enableAutomationFilterContext = await this.getEnableAutomationFilterContext();
23
21
  const allExportDefinitions = await this.authCall((client) => {
24
22
  return MetadataUtilities.getAllPagesOf(client, EntitiesApi_GetAllEntitiesExportDefinitions, requestParameters, { headers: ValidateRelationsHeader })
25
23
  .then(MetadataUtilities.mergeEntitiesResults)
@@ -32,9 +30,9 @@ export class TigerWorkspaceExportDefinitions {
32
30
  const title = ed.attributes?.title;
33
31
  return title && title.toLowerCase().indexOf(lowercaseSearch) > -1;
34
32
  })
35
- .map((ed) => convertExportDefinitionMdObjectFromBackend(ed, res.included, enableAutomationFilterContext));
33
+ .map((ed) => convertExportDefinitionMdObjectFromBackend(ed, res.included));
36
34
  }
37
- return res.data.map((ep) => convertExportDefinitionMdObjectFromBackend(ep, res.included, enableAutomationFilterContext));
35
+ return res.data.map((ep) => convertExportDefinitionMdObjectFromBackend(ep, res.included));
38
36
  });
39
37
  });
40
38
  // Remove when API starts to support sort=modifiedBy,createdBy,insight.title
@@ -65,7 +63,6 @@ export class TigerWorkspaceExportDefinitions {
65
63
  };
66
64
  getExportDefinition = async (ref, options = {}) => {
67
65
  const id = objRefToIdentifier(ref, this.authCall);
68
- const enableAutomationFilterContext = await this.getEnableAutomationFilterContext();
69
66
  const includeUser = options?.loadUserData
70
67
  ? { include: ["createdBy", "modifiedBy"] }
71
68
  : {};
@@ -77,29 +74,27 @@ export class TigerWorkspaceExportDefinitions {
77
74
  if (!response.data) {
78
75
  throw new UnexpectedError(`Export definition for ${objRefToString(ref)} not found!`);
79
76
  }
80
- return convertExportDefinitionMdObjectFromBackend(response.data.data, response.data.included, enableAutomationFilterContext);
77
+ return convertExportDefinitionMdObjectFromBackend(response.data.data, response.data.included);
81
78
  };
82
79
  createExportDefinition = async (exportDefinition) => {
83
- const enableAutomationFilterContext = await this.getEnableAutomationFilterContext();
84
80
  const createResponse = await this.authCall((client) => {
85
81
  return EntitiesApi_CreateEntityExportDefinitions(client.axios, client.basePath, {
86
82
  workspaceId: this.workspace,
87
- jsonApiExportDefinitionPostOptionalIdDocument: convertExportDefinitionMdObjectDefinitionToBackend(exportDefinition, enableAutomationFilterContext),
83
+ jsonApiExportDefinitionPostOptionalIdDocument: convertExportDefinitionMdObjectDefinitionToBackend(exportDefinition),
88
84
  });
89
85
  });
90
- return convertExportDefinitionMdObjectFromBackend(createResponse.data.data, createResponse.data.included, enableAutomationFilterContext);
86
+ return convertExportDefinitionMdObjectFromBackend(createResponse.data.data, createResponse.data.included);
91
87
  };
92
88
  updateExportDefinition = async (ref, exportDefinition) => {
93
89
  const id = objRefToIdentifier(ref, this.authCall);
94
- const enableAutomationFilterContext = await this.getEnableAutomationFilterContext();
95
90
  const updateResponse = await this.authCall((client) => {
96
91
  return EntitiesApi_UpdateEntityExportDefinitions(client.axios, client.basePath, {
97
92
  objectId: id,
98
93
  workspaceId: this.workspace,
99
- jsonApiExportDefinitionInDocument: convertExportDefinitionMdObjectToBackend(exportDefinition, id, enableAutomationFilterContext),
94
+ jsonApiExportDefinitionInDocument: convertExportDefinitionMdObjectToBackend(exportDefinition, id),
100
95
  });
101
96
  });
102
- return convertExportDefinitionMdObjectFromBackend(updateResponse.data.data, updateResponse.data.included, enableAutomationFilterContext);
97
+ return convertExportDefinitionMdObjectFromBackend(updateResponse.data.data, updateResponse.data.included);
103
98
  };
104
99
  deleteExportDefinition = async (ref) => {
105
100
  const id = objRefToIdentifier(ref, this.authCall);
@@ -108,8 +103,4 @@ export class TigerWorkspaceExportDefinitions {
108
103
  workspaceId: this.workspace,
109
104
  }));
110
105
  };
111
- getEnableAutomationFilterContext = async () => {
112
- const userSettings = await getSettingsForCurrentUser(this.authCall, this.workspace);
113
- return userSettings.enableAutomationFilterContext ?? true;
114
- };
115
106
  }
@@ -1,4 +1,4 @@
1
- // (C) 2019-2025 GoodData Corporation
1
+ // (C) 2019-2026 GoodData Corporation
2
2
  import { sortBy } from "lodash-es";
3
3
  export const visualizationClasses = sortBy([
4
4
  {
@@ -229,6 +229,18 @@ export const visualizationClasses = sortBy([
229
229
  uri: "/gdc/md/gtl83h4doozbp26q0kf5qg8uiyu5gpyn/obj/1319",
230
230
  },
231
231
  },
232
+ {
233
+ visualizationClass: {
234
+ checksum: "local",
235
+ icon: "local:radar",
236
+ orderIndex: 19.4,
237
+ iconSelected: "local:radar.selected",
238
+ url: "local:radar",
239
+ title: "Radar chart",
240
+ identifier: "gdc.visualization.radar",
241
+ uri: "/gdc/md/gtl83h4doozbp26q0kf5qg8uiyu4glyn/obj/1419",
242
+ },
243
+ },
232
244
  {
233
245
  visualizationClass: {
234
246
  checksum: "local",
@@ -1,7 +1,7 @@
1
1
  import { type JsonApiAutomationOutIncludes, type JsonApiAutomationOutList, type JsonApiAutomationOutWithLinks, type JsonApiWorkspaceAutomationOutWithLinks } from "@gooddata/api-client-tiger";
2
2
  import { type FilterContextItem, type IAutomationMetadataObject, type IFilter } from "@gooddata/sdk-model";
3
- export declare function convertAutomation(automation: JsonApiAutomationOutWithLinks | JsonApiWorkspaceAutomationOutWithLinks, included: JsonApiAutomationOutIncludes[], enableAutomationFilterContext: boolean, enableNewScheduledExport: boolean): IAutomationMetadataObject;
4
- export declare const convertAutomationListToAutomations: (automationList: JsonApiAutomationOutList, enableAutomationFilterContext: boolean, enableNewScheduledExport: boolean) => IAutomationMetadataObject[];
3
+ export declare function convertAutomation(automation: JsonApiAutomationOutWithLinks | JsonApiWorkspaceAutomationOutWithLinks, included: JsonApiAutomationOutIncludes[], enableNewScheduledExport: boolean): IAutomationMetadataObject;
4
+ export declare const convertAutomationListToAutomations: (automationList: JsonApiAutomationOutList, enableNewScheduledExport: boolean) => IAutomationMetadataObject[];
5
5
  /**
6
6
  * Converts a legacy execution-level filter to a dashboard `FilterContextItem`. Used during
7
7
  * lazy migration of XLSX export definitions that historically stored `IFilter[]` instead of
@@ -78,7 +78,7 @@ const convertAutomationResult = (relationships, included) => {
78
78
  }, undefined) ?? results[results.length - 1];
79
79
  return latestResult?.attributes;
80
80
  };
81
- export function convertAutomation(automation, included, enableAutomationFilterContext, enableNewScheduledExport) {
81
+ export function convertAutomation(automation, included, enableNewScheduledExport) {
82
82
  const { id, attributes = {}, relationships = {} } = automation;
83
83
  const { title, description, tags, schedule, alert, details, createdAt, modifiedAt, metadata, state, visualExports, tabularExports, imageExports, slidesExports, rawExports, dashboardTabularExports, externalRecipients, evaluationMode, } = attributes;
84
84
  const { createdBy, modifiedBy } = relationships;
@@ -86,13 +86,13 @@ export function convertAutomation(automation, included, enableAutomationFilterCo
86
86
  const exportDefinitionsIds = relationships?.exportDefinitions?.data?.map((ed) => ed.id) ?? [];
87
87
  const includedExportDefinitions = compact(exportDefinitionsIds.map((exportDefinitionId) => included.find((i) => i.type === "exportDefinition" && i.id === exportDefinitionId)));
88
88
  const exportDefinitions = [
89
- ...includedExportDefinitions.map((ed) => convertExportDefinitionMdObjectFromBackend(ed, undefined, enableAutomationFilterContext)),
89
+ ...includedExportDefinitions.map((ed) => convertExportDefinitionMdObjectFromBackend(ed, undefined)),
90
90
  ...(visualExports?.map((ve) => enableNewScheduledExport
91
- ? wrapExportDefinition(convertVisualExportRequest(ve, enableAutomationFilterContext), ve.requestPayload.metadata)
92
- : convertInlineExportDefinitionMdObject(ve, enableAutomationFilterContext)) ?? []),
91
+ ? wrapExportDefinition(convertVisualExportRequest(ve), ve.requestPayload.metadata)
92
+ : convertInlineExportDefinitionMdObject(ve)) ?? []),
93
93
  ...(tabularExports?.map((te) => enableNewScheduledExport
94
94
  ? wrapExportDefinition(convertTabularExportRequest(te), te.requestPayload.metadata ?? undefined)
95
- : convertInlineExportDefinitionMdObject(te, enableAutomationFilterContext)) ?? []),
95
+ : convertInlineExportDefinitionMdObject(te)) ?? []),
96
96
  ...(imageExports?.map((ie) => wrapExportDefinition(convertImageExportRequest(ie), ie.requestPayload.metadata ?? undefined)) ?? []),
97
97
  ...(slidesExports?.map((se) => wrapExportDefinition(convertSlidesExportRequest(se), se.requestPayload.metadata ?? undefined)) ?? []),
98
98
  ...(dashboardTabularExports?.map((dte) => wrapExportDefinition(convertDashboardTabularExportRequest(dte))) ?? []),
@@ -159,8 +159,8 @@ export function convertAutomation(automation, included, enableAutomationFilterCo
159
159
  deprecated: false,
160
160
  };
161
161
  }
162
- export const convertAutomationListToAutomations = (automationList, enableAutomationFilterContext, enableNewScheduledExport) => {
163
- return automationList.data.map((automationObject) => convertAutomation(automationObject, automationList.included ?? [], enableAutomationFilterContext, enableNewScheduledExport));
162
+ export const convertAutomationListToAutomations = (automationList, enableNewScheduledExport) => {
163
+ return automationList.data.map((automationObject) => convertAutomation(automationObject, automationList.included ?? [], enableNewScheduledExport));
164
164
  };
165
165
  const convertAlert = (alert, state) => {
166
166
  if (!alert) {
@@ -10,11 +10,11 @@ type MetadataObjectDefinition<T extends ITigerFilter | ITigerFilterContextItem =
10
10
  };
11
11
  export declare const wrapExportDefinition: (requestPayload: IExportDefinitionRequestPayload, metadata?: MetadataObjectDefinition<ITigerFilterContextItem> | undefined) => IExportDefinitionMetadataObject;
12
12
  export declare const convertDashboardTabularExportRequest: (exportRequest: JsonApiWorkspaceAutomationOutAttributesDashboardTabularExportsInner) => IExportDefinitionDashboardRequestPayload | IExportDefinitionVisualizationObjectRequestPayload;
13
- export declare const convertVisualExportRequest: (exportRequest: AutomationAutomationVisualExport, enableAutomationFilterContext: boolean) => IExportDefinitionDashboardRequestPayload;
13
+ export declare const convertVisualExportRequest: (exportRequest: AutomationAutomationVisualExport) => IExportDefinitionDashboardRequestPayload;
14
14
  export declare const convertToRawExportRequest: (exportRequest: JsonApiWorkspaceAutomationOutAttributesRawExportsInner) => IExportDefinitionVisualizationObjectRequestPayload;
15
15
  export declare const convertImageExportRequest: (exportRequest: AutomationAutomationImageExport) => IExportDefinitionVisualizationObjectRequestPayload;
16
16
  export declare const convertSlidesExportRequest: (exportRequest: AutomationAutomationSlidesExport) => IExportDefinitionDashboardRequestPayload | IExportDefinitionVisualizationObjectRequestPayload;
17
17
  export declare const convertTabularExportRequest: (exportRequest: AutomationAutomationTabularExport) => IExportDefinitionVisualizationObjectRequestPayload;
18
- export declare const convertExportDefinitionMdObject: (exportDefinitionOut: JsonApiExportDefinitionOutWithLinks, included: JsonApiExportDefinitionOutIncludes[] | undefined, enableAutomationFilterContext: boolean) => IExportDefinitionMetadataObject;
19
- export declare const convertInlineExportDefinitionMdObject: (exportDefinitionOut: AutomationAutomationTabularExport | AutomationAutomationVisualExport, enableAutomationFilterContext: boolean) => IExportDefinitionMetadataObject;
18
+ export declare const convertExportDefinitionMdObject: (exportDefinitionOut: JsonApiExportDefinitionOutWithLinks, included?: JsonApiExportDefinitionOutIncludes[]) => IExportDefinitionMetadataObject;
19
+ export declare const convertInlineExportDefinitionMdObject: (exportDefinitionOut: AutomationAutomationTabularExport | AutomationAutomationVisualExport) => IExportDefinitionMetadataObject;
20
20
  export {};
@@ -80,13 +80,13 @@ export const convertDashboardTabularExportRequest = (exportRequest) => {
80
80
  },
81
81
  };
82
82
  };
83
- export const convertVisualExportRequest = (exportRequest, enableAutomationFilterContext) => {
83
+ export const convertVisualExportRequest = (exportRequest) => {
84
84
  const { requestPayload: { fileName, dashboardId, metadata: metadataObj }, } = exportRequest;
85
85
  const metadata = metadataObj;
86
86
  const filters = convertTigerToSdkFilters(metadata?.filters);
87
87
  const filtersObj = metadata?.filters ? { filters } : {};
88
88
  // Convert filtersByTab from metadata
89
- const filtersByTab = enableAutomationFilterContext && metadata?.filtersByTab
89
+ const filtersByTab = metadata?.filtersByTab
90
90
  ? Object.entries(metadata.filtersByTab).reduce((acc, [tabId, tabFilters]) => {
91
91
  acc[tabId] = convertTigerToSdkFilters(tabFilters) ?? [];
92
92
  return acc;
@@ -196,11 +196,11 @@ export const convertTabularExportRequest = (exportRequest) => {
196
196
  },
197
197
  };
198
198
  };
199
- export const convertExportDefinitionMdObject = (exportDefinitionOut, included = [], enableAutomationFilterContext) => {
199
+ export const convertExportDefinitionMdObject = (exportDefinitionOut, included = []) => {
200
200
  const { id, attributes, links, relationships = {} } = exportDefinitionOut;
201
201
  const { createdBy, modifiedBy } = relationships;
202
202
  const { title = "", description = "", tags = [], requestPayload, createdAt, modifiedAt, } = attributes ?? {};
203
- const request = convertExportDefinitionRequestPayload(requestPayload, enableAutomationFilterContext);
203
+ const request = convertExportDefinitionRequestPayload(requestPayload);
204
204
  return {
205
205
  type: "exportDefinition",
206
206
  id,
@@ -219,9 +219,9 @@ export const convertExportDefinitionMdObject = (exportDefinitionOut, included =
219
219
  unlisted: false,
220
220
  };
221
221
  };
222
- export const convertInlineExportDefinitionMdObject = (exportDefinitionOut, enableAutomationFilterContext) => {
222
+ export const convertInlineExportDefinitionMdObject = (exportDefinitionOut) => {
223
223
  const id = uuid();
224
- const request = convertExportDefinitionRequestPayload(exportDefinitionOut.requestPayload, enableAutomationFilterContext);
224
+ const request = convertExportDefinitionRequestPayload(exportDefinitionOut.requestPayload);
225
225
  const metadata = exportDefinitionOut.requestPayload.metadata;
226
226
  return {
227
227
  type: "exportDefinition",
@@ -237,7 +237,7 @@ export const convertInlineExportDefinitionMdObject = (exportDefinitionOut, enabl
237
237
  unlisted: false,
238
238
  };
239
239
  };
240
- const convertExportDefinitionRequestPayload = (exportRequest, enableAutomationFilterContext) => {
240
+ const convertExportDefinitionRequestPayload = (exportRequest) => {
241
241
  if (isTabularRequest(exportRequest)) {
242
242
  const { widget } = exportRequest.metadata ?? {};
243
243
  const filters = exportRequest.visualizationObjectCustomFilters;
@@ -270,7 +270,7 @@ const convertExportDefinitionRequestPayload = (exportRequest, enableAutomationFi
270
270
  const filters = convertTigerToSdkFilters(metadata?.filters);
271
271
  const filtersObj = filters ? { filters } : {};
272
272
  // Convert filtersByTab from metadata
273
- const filtersByTab = enableAutomationFilterContext && metadata?.filtersByTab
273
+ const filtersByTab = metadata?.filtersByTab
274
274
  ? Object.entries(metadata.filtersByTab).reduce((acc, [tabId, tabFilters]) => {
275
275
  acc[tabId] = convertTigerToSdkFilters(tabFilters) ?? [];
276
276
  return acc;
@@ -1,2 +1,2 @@
1
1
  import { type IExportMetadata } from "../../types/index.js";
2
- export declare const convertExportMetadata: (exportMetadata: any, enableAutomationFilterContext: boolean) => Partial<IExportMetadata> | null;
2
+ export declare const convertExportMetadata: (exportMetadata: any) => Partial<IExportMetadata> | null;
@@ -1,17 +1,15 @@
1
1
  // (C) 2023-2026 GoodData Corporation
2
2
  import { isFilterContextItem } from "@gooddata/sdk-model";
3
3
  import { convertTigerToSdkFilters } from "../shared/storedFilterConverter.js";
4
- export const convertExportMetadata = (exportMetadata, enableAutomationFilterContext) => {
4
+ export const convertExportMetadata = (exportMetadata) => {
5
5
  // Filters, or empty filters === override default filters
6
6
  return {
7
7
  ...(exportMetadata?.filters
8
8
  ? {
9
- filters: enableAutomationFilterContext
10
- ? convertTigerToSdkFilters(exportMetadata.filters)
11
- : exportMetadata.filters,
9
+ filters: convertTigerToSdkFilters(exportMetadata.filters)?.filter(isFilterContextItem) ?? [],
12
10
  }
13
11
  : {}),
14
- ...(exportMetadata?.filtersByTab && enableAutomationFilterContext
12
+ ...(exportMetadata?.filtersByTab
15
13
  ? {
16
14
  filtersByTab: Object.keys(exportMetadata?.filtersByTab).reduce((acc, tabId) => {
17
15
  acc[tabId] =
@@ -1,8 +1,8 @@
1
- // (C) 2024-2025 GoodData Corporation
1
+ // (C) 2024-2026 GoodData Corporation
2
2
  import { invariant } from "ts-invariant";
3
3
  import { AnalyticalDashboardModelV2, } from "@gooddata/api-client-tiger";
4
4
  import { idRef } from "@gooddata/sdk-model";
5
- import { convertFilterViewContextFilters } from "./analyticalDashboards/v2/AnalyticalDashboardConverter.js";
5
+ import { convertDashboardParameter, convertFilterViewContextFilters, } from "./analyticalDashboards/v2/AnalyticalDashboardConverter.js";
6
6
  /**
7
7
  * Convert filter view from API response.
8
8
  * The method expects that API call was made with "include=[user,analyticalDashboard,filterContext]
@@ -30,5 +30,8 @@ export function convertFilterView(data, included = []) {
30
30
  },
31
31
  isDefault: isDefault ?? false,
32
32
  tabLocalIdentifier: content.tabLocalIdentifier,
33
+ ...(content.parameters === undefined
34
+ ? {}
35
+ : { parameters: content.parameters.map(convertDashboardParameter) }),
33
36
  };
34
37
  }
@@ -1,6 +1,6 @@
1
1
  // (C) 2020-2026 GoodData Corporation
2
2
  import { invariant } from "ts-invariant";
3
- import { AnalyticalDashboardModelV1, AnalyticalDashboardModelV2, } from "@gooddata/api-client-tiger";
3
+ import { AnalyticalDashboardModelV1, AnalyticalDashboardModelV2, AnalyticalDashboardModelV3, } from "@gooddata/api-client-tiger";
4
4
  import { idRef, } from "@gooddata/sdk-model";
5
5
  import { convertCertificationFromBackend } from "../CertificationConverter.js";
6
6
  import { cloneWithSanitizedIdsTyped } from "../IdSanitization.js";
@@ -17,7 +17,8 @@ export const convertAnalyticalDashboard = (analyticalDashboard, included) => {
17
17
  const isPrivate = meta?.accessInfo?.private ?? false;
18
18
  // Use type guard for safer access to dashboard content
19
19
  const content = attributes?.content;
20
- const tabs = AnalyticalDashboardModelV2.isAnalyticalDashboard(content)
20
+ const tabs = AnalyticalDashboardModelV2.isAnalyticalDashboard(content) ||
21
+ AnalyticalDashboardModelV3.isAnalyticalDashboard(content)
21
22
  ? cloneWithSanitizedIdsTyped(content.tabs ?? [])
22
23
  : [];
23
24
  // NOTE: `summary` is present on the backend response, but may not be reflected in older generated API typings.
@@ -53,7 +54,14 @@ export function convertDashboard(analyticalDashboard, filterContext) {
53
54
  if (AnalyticalDashboardModelV1.isAnalyticalDashboard(content)) {
54
55
  return convertDashboardV1(analyticalDashboard, filterContext);
55
56
  }
56
- if (AnalyticalDashboardModelV2.isAnalyticalDashboard(content)) {
57
+ // V3 is a strict subset of V2 (tabs-only, no root content). It is routed through the V2
58
+ // fromBackend converter, which synthesizes root-level layout / filter configs from tabs[0]
59
+ // when the wire payload omits them. This is intentional: the in-memory `IDashboard` model
60
+ // still exposes root fields, so V3 documents present the same shape as legacy V2 documents
61
+ // to model consumers. The V3 distinction is re-applied on write — `convertAnalyticalDashboard`
62
+ // (toBackend) strips the root fields when `enableAnalyticalDashboardVersion3` is on.
63
+ if (AnalyticalDashboardModelV2.isAnalyticalDashboard(content) ||
64
+ AnalyticalDashboardModelV3.isAnalyticalDashboard(content)) {
57
65
  return convertDashboardV2(analyticalDashboard, filterContext);
58
66
  }
59
67
  invariant(false, "Unknown analytical dashboard version");
@@ -1,5 +1,6 @@
1
- import { type AnalyticalDashboardModelV2, type JsonApiAnalyticalDashboardOutDocument, type JsonApiAnalyticalDashboardOutIncludes, type JsonApiDashboardPluginOutDocument, type JsonApiDashboardPluginOutWithLinks, type JsonApiFilterContextOutDocument } from "@gooddata/api-client-tiger";
2
- import { type FilterContextItem, type IDashboard, type IDashboardLayout, type IDashboardPlugin, type IDashboardWidget, type IFilterContext } from "@gooddata/sdk-model";
1
+ import { type AnalyticalDashboardModelV2, type ITigerDashboardParameter, type JsonApiAnalyticalDashboardOutDocument, type JsonApiAnalyticalDashboardOutIncludes, type JsonApiDashboardPluginOutDocument, type JsonApiDashboardPluginOutWithLinks, type JsonApiFilterContextOutDocument } from "@gooddata/api-client-tiger";
2
+ import { type FilterContextItem, type IDashboard, type IDashboardLayout, type IDashboardParameter, type IDashboardPlugin, type IDashboardWidget, type IFilterContext } from "@gooddata/sdk-model";
3
+ export declare function convertDashboardParameter(parameter: ITigerDashboardParameter): IDashboardParameter;
3
4
  /**
4
5
  * Converts Tiger-specific analytical dashboard to platform-agnostic dashboard.
5
6
  *
@@ -56,7 +56,7 @@ function setWidgetRefsInLayout(layout) {
56
56
  });
57
57
  }, layout);
58
58
  }
59
- function convertDashboardParameter(parameter) {
59
+ export function convertDashboardParameter(parameter) {
60
60
  return {
61
61
  ref: cloneWithSanitizedIds(parameter.ref),
62
62
  parameterType: parameter.parameterType,
@@ -1,6 +1,6 @@
1
- import { type AnalyticalDashboardModelV2 } from "@gooddata/api-client-tiger";
1
+ import { type AnalyticalDashboardModelV2, type AnalyticalDashboardModelV3 } from "@gooddata/api-client-tiger";
2
2
  import { type LayoutPath } from "@gooddata/sdk-backend-spi";
3
- import { type IDashboardDefinition, type IDashboardLayout, type IDashboardPluginDefinition, type IDashboardPluginLink, type IFilterContextDefinition, type ObjRef } from "@gooddata/sdk-model";
3
+ import { type IDashboardDefinition, type IDashboardLayout, type IDashboardParameter, type IDashboardPluginDefinition, type IDashboardPluginLink, type IFilterContextDefinition, type ObjRef } from "@gooddata/sdk-model";
4
4
  /**
5
5
  * Converts platform-agnostic dashboard definition to Tiger-specific analytical dashboard.
6
6
  *
@@ -8,9 +8,13 @@ import { type IDashboardDefinition, type IDashboardLayout, type IDashboardPlugin
8
8
  * @param filterContextRef - Optional filter context reference
9
9
  * @param useWidgetLocalIdentifiers - Whether to preserve widget local identifiers
10
10
  * @param enableDashboardSectionHeadersDateDataSet - Whether to include section headers date data set
11
- * @returns Tiger analytical dashboard (uses ITigerDashboardLayout, ITigerDashboardTab, etc.)
11
+ * @param enableAnalyticalDashboardVersion3 - When true and the dashboard has tabs, produce a V3 analytical
12
+ * dashboard: tabs-only, no root-level layout / filter configs / parameters. V3 cannot be read
13
+ * by SDK versions that only know V2 root-level properties. Opt-in.
14
+ * @returns Tiger analytical dashboard (V2 by default, V3 when the flag is on and tabs are present).
12
15
  */
13
- export declare function convertAnalyticalDashboard(dashboard: IDashboardDefinition, filterContextRef?: ObjRef, useWidgetLocalIdentifiers?: boolean, enableDashboardSectionHeadersDateDataSet?: boolean): AnalyticalDashboardModelV2.IAnalyticalDashboard;
16
+ export declare function convertAnalyticalDashboard(dashboard: IDashboardDefinition, filterContextRef?: ObjRef, useWidgetLocalIdentifiers?: boolean, enableDashboardSectionHeadersDateDataSet?: boolean, enableAnalyticalDashboardVersion3?: false): AnalyticalDashboardModelV2.IAnalyticalDashboard;
17
+ export declare function convertAnalyticalDashboard(dashboard: IDashboardDefinition, filterContextRef?: ObjRef, useWidgetLocalIdentifiers?: boolean, enableDashboardSectionHeadersDateDataSet?: boolean, enableAnalyticalDashboardVersion3?: boolean): AnalyticalDashboardModelV2.IAnalyticalDashboard | AnalyticalDashboardModelV3.IAnalyticalDashboard;
14
18
  /**
15
19
  * Converts platform-agnostic filter context to Tiger-specific filter context.
16
20
  *
@@ -19,7 +23,7 @@ export declare function convertAnalyticalDashboard(dashboard: IDashboardDefiniti
19
23
  * @returns Tiger filter context (uses ITigerFilterContextItem[])
20
24
  */
21
25
  export declare function convertFilterContextToBackend(filterContext: IFilterContextDefinition, useDateFilterLocalIdentifiers?: boolean): AnalyticalDashboardModelV2.IFilterContext;
22
- export declare function convertFilterViewContextToBackend(filterContext: IFilterContextDefinition, useDateFilterLocalIdentifiers?: boolean, tabLocalIdentifier?: string): AnalyticalDashboardModelV2.IFilterContextWithTab;
26
+ export declare function convertFilterViewContextToBackend(filterContext: IFilterContextDefinition, useDateFilterLocalIdentifiers?: boolean, tabLocalIdentifier?: string, parameters?: IDashboardParameter[]): AnalyticalDashboardModelV2.IFilterContextWithTab;
23
27
  export declare function convertDashboardPluginToBackend(plugin: IDashboardPluginDefinition): AnalyticalDashboardModelV2.IDashboardPlugin;
24
28
  export declare function convertDashboardPluginLinkToBackend(pluginLink: IDashboardPluginLink): AnalyticalDashboardModelV2.IDashboardPluginLink;
25
29
  export declare function getDrillToCustomUrlPaths(layout: IDashboardLayout): LayoutPath[];
@@ -76,27 +76,36 @@ function convertDashboardTabToBackend(tab, filterContextRef, useWidgetLocalIdent
76
76
  parameters: tab.parameters?.map(convertDashboardParameterToBackend),
77
77
  };
78
78
  }
79
- /**
80
- * Converts platform-agnostic dashboard definition to Tiger-specific analytical dashboard.
81
- *
82
- * @param dashboard - Platform-agnostic dashboard definition (uses IDashboardLayout, IDashboardTab, etc.)
83
- * @param filterContextRef - Optional filter context reference
84
- * @param useWidgetLocalIdentifiers - Whether to preserve widget local identifiers
85
- * @param enableDashboardSectionHeadersDateDataSet - Whether to include section headers date data set
86
- * @returns Tiger analytical dashboard (uses ITigerDashboardLayout, ITigerDashboardTab, etc.)
87
- */
88
- export function convertAnalyticalDashboard(dashboard, filterContextRef, useWidgetLocalIdentifiers, enableDashboardSectionHeadersDateDataSet) {
89
- // For backward compatibility, if dashboard has tabs, fill root-level properties
90
- // with active/first tab's content so older SDK versions can still read the dashboard
79
+ export function convertAnalyticalDashboard(dashboard, filterContextRef, useWidgetLocalIdentifiers, enableDashboardSectionHeadersDateDataSet, enableAnalyticalDashboardVersion3) {
80
+ const hasTabs = Boolean(dashboard.tabs && dashboard.tabs.length > 0);
81
+ const emitV3 = Boolean(enableAnalyticalDashboardVersion3 && hasTabs);
82
+ const convertedTabs = dashboard.tabs?.map((tab) => convertDashboardTabToBackend(tab, tab.filterContext?.ref, useWidgetLocalIdentifiers));
83
+ if (emitV3) {
84
+ const v3 = {
85
+ version: "3",
86
+ tabs: convertedTabs,
87
+ plugins: dashboard.plugins?.map(convertDashboardPluginLinkToBackend),
88
+ disableCrossFiltering: dashboard.disableCrossFiltering,
89
+ disableUserFilterReset: dashboard.disableUserFilterReset,
90
+ disableUserFilterSave: dashboard.disableUserFilterSave,
91
+ disableFilterViews: dashboard.disableFilterViews,
92
+ evaluationFrequency: dashboard.evaluationFrequency,
93
+ };
94
+ if (enableDashboardSectionHeadersDateDataSet) {
95
+ v3.sectionHeadersDateDataSet = cloneWithSanitizedIds(dashboard.sectionHeadersDateDataSet);
96
+ }
97
+ return v3;
98
+ }
99
+ // V2 path. For backward compatibility, when tabs are present, mirror tabs[0]'s content
100
+ // into root-level properties so older SDK versions can still read the dashboard.
91
101
  let effectiveLayout = dashboard.layout;
92
102
  let effectiveDateFilterConfig = dashboard.dateFilterConfig;
93
103
  let effectiveDateFilterConfigs = dashboard.dateFilterConfigs;
94
104
  let effectiveAttributeFilterConfigs = dashboard.attributeFilterConfigs;
95
105
  let effectiveMeasureValueFilterConfigs = dashboard.measureValueFilterConfigs;
96
106
  let effectiveParameters = dashboard.parameters;
97
- if (dashboard.tabs && dashboard.tabs.length > 0) {
107
+ if (hasTabs) {
98
108
  const effectiveTab = dashboard.tabs[0];
99
- // Use tab's properties for root-level (backward compatibility)
100
109
  effectiveLayout = effectiveTab.layout;
101
110
  effectiveDateFilterConfig = effectiveTab.dateFilterConfig;
102
111
  effectiveDateFilterConfigs = effectiveTab.dateFilterConfigs;
@@ -119,7 +128,7 @@ export function convertAnalyticalDashboard(dashboard, filterContextRef, useWidge
119
128
  disableUserFilterSave: dashboard.disableUserFilterSave,
120
129
  disableFilterViews: dashboard.disableFilterViews,
121
130
  evaluationFrequency: dashboard.evaluationFrequency,
122
- tabs: dashboard.tabs?.map((tab) => convertDashboardTabToBackend(tab, tab.filterContext?.ref, useWidgetLocalIdentifiers)),
131
+ tabs: convertedTabs,
123
132
  version: "2",
124
133
  };
125
134
  if (enableDashboardSectionHeadersDateDataSet) {
@@ -143,11 +152,14 @@ export function convertFilterContextToBackend(filterContext, useDateFilterLocalI
143
152
  version: "2",
144
153
  };
145
154
  }
146
- export function convertFilterViewContextToBackend(filterContext, useDateFilterLocalIdentifiers, tabLocalIdentifier) {
155
+ export function convertFilterViewContextToBackend(filterContext, useDateFilterLocalIdentifiers, tabLocalIdentifier, parameters) {
147
156
  const updatedFilterContext = convertFilterContextToBackend(filterContext, useDateFilterLocalIdentifiers);
148
157
  return {
149
158
  ...updatedFilterContext,
150
159
  tabLocalIdentifier,
160
+ ...(parameters === undefined
161
+ ? {}
162
+ : { parameters: parameters.map(convertDashboardParameterToBackend) }),
151
163
  };
152
164
  }
153
165
  export function convertDashboardPluginToBackend(plugin) {
@@ -1,4 +1,4 @@
1
1
  import { type JsonApiAutomationIn } from "@gooddata/api-client-tiger";
2
2
  import { type IRawExportCustomOverrides } from "@gooddata/sdk-backend-spi";
3
3
  import { type IAutomationMetadataObject, type IAutomationMetadataObjectDefinition, type IExecutionDefinition } from "@gooddata/sdk-model";
4
- export declare function convertAutomation(automation: IAutomationMetadataObject | IAutomationMetadataObjectDefinition, enableAutomationFilterContext: boolean, enableNewScheduledExport: boolean, widgetExecution?: IExecutionDefinition, overrides?: IRawExportCustomOverrides): JsonApiAutomationIn;
4
+ export declare function convertAutomation(automation: IAutomationMetadataObject | IAutomationMetadataObjectDefinition, enableNewScheduledExport: boolean, widgetExecution?: IExecutionDefinition, overrides?: IRawExportCustomOverrides): JsonApiAutomationIn;
@@ -8,7 +8,7 @@ import { convertAttribute } from "./afm/AttributeConverter.js";
8
8
  import { convertMeasure } from "./afm/MeasureConverter.js";
9
9
  import { convertExportDefinitionRequestPayload, convertToDashboardTabularExportRequest, convertToImageExportRequest, convertToRawExportRequest, convertToSlidesExportRequest, convertToTabularExportRequest, convertToVisualExportRequest, convertVisualizationToDashboardTabularExportRequest, } from "./ExportDefinitionsConverter.js";
10
10
  import { toDateDataSetQualifier } from "./ObjRefConverter.js";
11
- export function convertAutomation(automation, enableAutomationFilterContext, enableNewScheduledExport, widgetExecution, overrides) {
11
+ export function convertAutomation(automation, enableNewScheduledExport, widgetExecution, overrides) {
12
12
  const { id, type, description, schedule, evaluationMode, alert, tags, title, recipients, details, notificationChannel, dashboard, metadata, exportDefinitions, } = automation;
13
13
  const relationships = omitBy({
14
14
  recipients: recipients?.length
@@ -33,7 +33,7 @@ export function convertAutomation(automation, enableAutomationFilterContext, ena
33
33
  const evaluationModeObj = evaluationMode ? { evaluationMode } : {};
34
34
  const alertObj = alert
35
35
  ? {
36
- alert: convertAlert(alert, enableAutomationFilterContext),
36
+ alert: convertAlert(alert),
37
37
  }
38
38
  : {};
39
39
  const state = alert ? alert.trigger.state : undefined;
@@ -45,12 +45,12 @@ export function convertAutomation(automation, enableAutomationFilterContext, ena
45
45
  const tabularExportsOld = exportDefinitions
46
46
  ?.filter((ed) => isExportDefinitionVisualizationObjectRequestPayload(ed.requestPayload))
47
47
  .map((ed) => ({
48
- requestPayload: convertExportDefinitionRequestPayload(ed.requestPayload, enableAutomationFilterContext, ed.title),
48
+ requestPayload: convertExportDefinitionRequestPayload(ed.requestPayload, ed.title),
49
49
  }));
50
50
  const visualExportsOld = exportDefinitions
51
51
  ?.filter((ed) => isExportDefinitionDashboardRequestPayload(ed.requestPayload))
52
52
  .map((ed) => ({
53
- requestPayload: convertExportDefinitionRequestPayload(ed.requestPayload, enableAutomationFilterContext, ed.title),
53
+ requestPayload: convertExportDefinitionRequestPayload(ed.requestPayload, ed.title),
54
54
  }));
55
55
  const { tabularExports, visualExports, imageExports, slidesExports, dashboardTabularExports, rawExports, } = (exportDefinitions ?? []).reduce((acc, ed) => {
56
56
  switch (ed.requestPayload.format) {
@@ -182,9 +182,9 @@ export function convertAutomation(automation, enableAutomationFilterContext, ena
182
182
  : {}),
183
183
  };
184
184
  }
185
- const convertAlert = (alert, enableAutomationFilterContext) => {
185
+ const convertAlert = (alert) => {
186
186
  const { condition, execution } = alert;
187
- const { filters: convertedFilters } = convertAfmFilters(execution.measures, execution.filters, enableAutomationFilterContext);
187
+ const { filters: convertedFilters } = convertAfmFilters(execution.measures, execution.filters, true);
188
188
  const base = {
189
189
  execution: {
190
190
  filters: convertedFilters,
@@ -1,7 +1,7 @@
1
1
  import { type AutomationRawExportAutomationRequest, type DashboardTabularExportRequestV2, type ImageExportRequest, type JsonApiExportDefinitionInDocument, type JsonApiExportDefinitionPostOptionalIdDocument, type SlidesExportRequest, type TabularExportRequest, type VisualExportRequest } from "@gooddata/api-client-tiger";
2
2
  import { type IRawExportCustomOverrides } from "@gooddata/sdk-backend-spi";
3
3
  import { type IExecutionDefinition, type IExportDefinitionDashboardRequestPayload, type IExportDefinitionMetadataObjectDefinition, type IExportDefinitionRequestPayload, type IExportDefinitionVisualizationObjectRequestPayload } from "@gooddata/sdk-model";
4
- export declare const convertExportDefinitionMdObjectDefinition: (exportDefinition: IExportDefinitionMetadataObjectDefinition, enableAutomationFilterContext: boolean) => JsonApiExportDefinitionPostOptionalIdDocument;
4
+ export declare const convertExportDefinitionMdObjectDefinition: (exportDefinition: IExportDefinitionMetadataObjectDefinition) => JsonApiExportDefinitionPostOptionalIdDocument;
5
5
  export declare const convertToRawExportRequest: (exportRequest: IExportDefinitionVisualizationObjectRequestPayload, widgetExecution?: IExecutionDefinition | undefined, overrides?: IRawExportCustomOverrides | undefined) => AutomationRawExportAutomationRequest;
6
6
  export declare const convertToImageExportRequest: (exportRequest: IExportDefinitionVisualizationObjectRequestPayload, title?: string | undefined) => ImageExportRequest;
7
7
  export declare const convertToSlidesExportRequest: (exportRequest: IExportDefinitionRequestPayload, title?: string | undefined) => SlidesExportRequest;
@@ -9,5 +9,5 @@ export declare const convertToVisualExportRequest: (exportRequest: IExportDefini
9
9
  export declare const convertToDashboardTabularExportRequest: (exportRequest: IExportDefinitionDashboardRequestPayload) => DashboardTabularExportRequestV2;
10
10
  export declare const convertToTabularExportRequest: (exportRequest: IExportDefinitionRequestPayload, title?: string | undefined) => TabularExportRequest;
11
11
  export declare const convertVisualizationToDashboardTabularExportRequest: (exportRequest: IExportDefinitionVisualizationObjectRequestPayload) => DashboardTabularExportRequestV2;
12
- export declare const convertExportDefinitionRequestPayload: (exportRequest: IExportDefinitionRequestPayload, enableAutomationFilterContext: boolean, title?: string | undefined) => TabularExportRequest | VisualExportRequest;
13
- export declare const convertExportDefinitionMdObject: (exportDefinition: IExportDefinitionMetadataObjectDefinition, identifier: string, enableAutomationFilterContext: boolean) => JsonApiExportDefinitionInDocument;
12
+ export declare const convertExportDefinitionRequestPayload: (exportRequest: IExportDefinitionRequestPayload, title?: string | undefined) => TabularExportRequest | VisualExportRequest;
13
+ export declare const convertExportDefinitionMdObject: (exportDefinition: IExportDefinitionMetadataObjectDefinition, identifier: string) => JsonApiExportDefinitionInDocument;
@@ -7,7 +7,7 @@ import { convertSdkFiltersToTiger } from "../shared/storedFilterConverter.js";
7
7
  import { convertAfmFilters } from "./afm/AfmFiltersConverter.js";
8
8
  import { convertAttribute } from "./afm/AttributeConverter.js";
9
9
  import { convertMeasure } from "./afm/MeasureConverter.js";
10
- export const convertExportDefinitionMdObjectDefinition = (exportDefinition, enableAutomationFilterContext) => {
10
+ export const convertExportDefinitionMdObjectDefinition = (exportDefinition) => {
11
11
  const { title, description, tags, requestPayload } = exportDefinition;
12
12
  return {
13
13
  data: {
@@ -16,7 +16,7 @@ export const convertExportDefinitionMdObjectDefinition = (exportDefinition, enab
16
16
  title,
17
17
  description,
18
18
  tags,
19
- requestPayload: convertExportDefinitionRequestPayload(requestPayload, enableAutomationFilterContext, title),
19
+ requestPayload: convertExportDefinitionRequestPayload(requestPayload, title),
20
20
  },
21
21
  },
22
22
  };
@@ -278,7 +278,7 @@ export const convertVisualizationToDashboardTabularExportRequest = (exportReques
278
278
  settings,
279
279
  };
280
280
  };
281
- export const convertExportDefinitionRequestPayload = (exportRequest, enableAutomationFilterContext, title) => {
281
+ export const convertExportDefinitionRequestPayload = (exportRequest, title) => {
282
282
  if (isExportDefinitionDashboardRequestPayload(exportRequest)) {
283
283
  const { filters, filtersByTab, dashboard } = exportRequest.content;
284
284
  // Convert filtersByTab to API format
@@ -295,9 +295,7 @@ export const convertExportDefinitionRequestPayload = (exportRequest, enableAutom
295
295
  metadata: {
296
296
  ...(filters
297
297
  ? {
298
- filters: enableAutomationFilterContext
299
- ? convertSdkFiltersToTiger(filters)
300
- : filters,
298
+ filters: convertSdkFiltersToTiger(filters),
301
299
  }
302
300
  : {}),
303
301
  ...(filtersByTabObj ? { filtersByTab: filtersByTabObj } : {}),
@@ -333,8 +331,8 @@ export const convertExportDefinitionRequestPayload = (exportRequest, enableAutom
333
331
  },
334
332
  };
335
333
  };
336
- export const convertExportDefinitionMdObject = (exportDefinition, identifier, enableAutomationFilterContext) => {
337
- const postDefinition = convertExportDefinitionMdObjectDefinition(exportDefinition, enableAutomationFilterContext);
334
+ export const convertExportDefinitionMdObject = (exportDefinition, identifier) => {
335
+ const postDefinition = convertExportDefinitionMdObjectDefinition(exportDefinition);
338
336
  return {
339
337
  data: {
340
338
  ...postDefinition.data,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-backend-tiger",
3
- "version": "11.36.0-alpha.3",
3
+ "version": "11.36.0-alpha.6",
4
4
  "description": "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN",
5
5
  "license": "MIT",
6
6
  "author": "GoodData",
@@ -22,7 +22,7 @@
22
22
  "exports": "./esm/index.js",
23
23
  "dependencies": {
24
24
  "@gooddata/emailjs-mime-codec-new": "3.0.2",
25
- "axios": "^1.9.0",
25
+ "axios": "1.13.5",
26
26
  "date-fns": "4.1.0",
27
27
  "date-fns-tz": "^3.2.0",
28
28
  "eventsource-parser": "~3.0.0",
@@ -33,12 +33,12 @@
33
33
  "ts-invariant": "0.10.3",
34
34
  "tslib": "2.8.1",
35
35
  "uuid": "11.1.0",
36
- "@gooddata/api-client-tiger": "11.36.0-alpha.3",
37
- "@gooddata/sdk-backend-spi": "11.36.0-alpha.3",
38
- "@gooddata/sdk-backend-base": "11.36.0-alpha.3",
39
- "@gooddata/sdk-code-convertors": "11.36.0-alpha.3",
40
- "@gooddata/sdk-model": "11.36.0-alpha.3",
41
- "@gooddata/util": "11.36.0-alpha.3"
36
+ "@gooddata/api-client-tiger": "11.36.0-alpha.6",
37
+ "@gooddata/sdk-backend-base": "11.36.0-alpha.6",
38
+ "@gooddata/sdk-code-convertors": "11.36.0-alpha.6",
39
+ "@gooddata/sdk-model": "11.36.0-alpha.6",
40
+ "@gooddata/sdk-backend-spi": "11.36.0-alpha.6",
41
+ "@gooddata/util": "11.36.0-alpha.6"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@gooddata/fixtures": "3.3.12",
@@ -65,10 +65,10 @@
65
65
  "oxlint-tsgolint": "0.11.4",
66
66
  "typescript": "5.9.3",
67
67
  "vitest": "4.1.0",
68
- "@gooddata/catalog-export": "11.36.0-alpha.3",
69
- "@gooddata/eslint-config": "11.36.0-alpha.3",
70
- "@gooddata/oxlint-config": "11.36.0-alpha.3",
71
- "@gooddata/reference-workspace": "11.36.0-alpha.3"
68
+ "@gooddata/eslint-config": "11.36.0-alpha.6",
69
+ "@gooddata/reference-workspace": "11.36.0-alpha.6",
70
+ "@gooddata/catalog-export": "11.36.0-alpha.6",
71
+ "@gooddata/oxlint-config": "11.36.0-alpha.6"
72
72
  },
73
73
  "scripts": {
74
74
  "_phase:build": "npm run build",