@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.
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/backend/features/feature.js +2 -2
- package/esm/backend/organization/automations/automationsQuery.js +1 -2
- package/esm/backend/uiFeatures.d.ts +7 -7
- package/esm/backend/uiFeatures.js +6 -6
- package/esm/backend/workspace/automations/automationsQuery.js +1 -2
- package/esm/backend/workspace/automations/index.d.ts +0 -1
- package/esm/backend/workspace/automations/index.js +6 -14
- package/esm/backend/workspace/dashboards/index.js +8 -7
- package/esm/backend/workspace/exportDefinitions/exportDefinitionsQuery.js +1 -4
- package/esm/backend/workspace/exportDefinitions/index.d.ts +0 -1
- package/esm/backend/workspace/exportDefinitions/index.js +7 -16
- package/esm/backend/workspace/insights/mocks/visualizationClasses.js +13 -1
- package/esm/convertors/fromBackend/AutomationConverter.d.ts +2 -2
- package/esm/convertors/fromBackend/AutomationConverter.js +7 -7
- package/esm/convertors/fromBackend/ExportDefinitionsConverter.d.ts +3 -3
- package/esm/convertors/fromBackend/ExportDefinitionsConverter.js +8 -8
- package/esm/convertors/fromBackend/ExportMetadataConverter.d.ts +1 -1
- package/esm/convertors/fromBackend/ExportMetadataConverter.js +3 -5
- package/esm/convertors/fromBackend/FilterViewConvertor.js +5 -2
- package/esm/convertors/fromBackend/analyticalDashboards/AnalyticalDashboardConverter.js +11 -3
- package/esm/convertors/fromBackend/analyticalDashboards/v2/AnalyticalDashboardConverter.d.ts +3 -2
- package/esm/convertors/fromBackend/analyticalDashboards/v2/AnalyticalDashboardConverter.js +1 -1
- package/esm/convertors/toBackend/AnalyticalDashboardConverter.d.ts +9 -5
- package/esm/convertors/toBackend/AnalyticalDashboardConverter.js +28 -16
- package/esm/convertors/toBackend/AutomationConverter.d.ts +1 -1
- package/esm/convertors/toBackend/AutomationConverter.js +6 -6
- package/esm/convertors/toBackend/ExportDefinitionsConverter.d.ts +3 -3
- package/esm/convertors/toBackend/ExportDefinitionsConverter.js +6 -8
- package/package.json +12 -12
package/esm/__version.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "11.36.0-alpha.
|
|
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
|
+
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 ?? []),
|
|
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,
|
|
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 ?? [],
|
|
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 ?? [],
|
|
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,
|
|
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 ?? [],
|
|
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,
|
|
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 ?? [],
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
33
|
+
.map((ed) => convertExportDefinitionMdObjectFromBackend(ed, res.included));
|
|
36
34
|
}
|
|
37
|
-
return res.data.map((ep) => convertExportDefinitionMdObjectFromBackend(ep, res.included
|
|
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
|
|
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
|
|
83
|
+
jsonApiExportDefinitionPostOptionalIdDocument: convertExportDefinitionMdObjectDefinitionToBackend(exportDefinition),
|
|
88
84
|
});
|
|
89
85
|
});
|
|
90
|
-
return convertExportDefinitionMdObjectFromBackend(createResponse.data.data, createResponse.data.included
|
|
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
|
|
94
|
+
jsonApiExportDefinitionInDocument: convertExportDefinitionMdObjectToBackend(exportDefinition, id),
|
|
100
95
|
});
|
|
101
96
|
});
|
|
102
|
-
return convertExportDefinitionMdObjectFromBackend(updateResponse.data.data, updateResponse.data.included
|
|
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-
|
|
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[],
|
|
4
|
-
export declare const convertAutomationListToAutomations: (automationList: JsonApiAutomationOutList,
|
|
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,
|
|
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
|
|
89
|
+
...includedExportDefinitions.map((ed) => convertExportDefinitionMdObjectFromBackend(ed, undefined)),
|
|
90
90
|
...(visualExports?.map((ve) => enableNewScheduledExport
|
|
91
|
-
? wrapExportDefinition(convertVisualExportRequest(ve
|
|
92
|
-
: convertInlineExportDefinitionMdObject(ve
|
|
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
|
|
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,
|
|
163
|
-
return automationList.data.map((automationObject) => convertAutomation(automationObject, automationList.included ?? [],
|
|
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
|
|
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
|
|
19
|
-
export declare const convertInlineExportDefinitionMdObject: (exportDefinitionOut: AutomationAutomationTabularExport | AutomationAutomationVisualExport
|
|
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
|
|
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 =
|
|
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 = []
|
|
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
|
|
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
|
|
222
|
+
export const convertInlineExportDefinitionMdObject = (exportDefinitionOut) => {
|
|
223
223
|
const id = uuid();
|
|
224
|
-
const request = convertExportDefinitionRequestPayload(exportDefinitionOut.requestPayload
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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:
|
|
10
|
-
? convertTigerToSdkFilters(exportMetadata.filters)
|
|
11
|
-
: exportMetadata.filters,
|
|
9
|
+
filters: convertTigerToSdkFilters(exportMetadata.filters)?.filter(isFilterContextItem) ?? [],
|
|
12
10
|
}
|
|
13
11
|
: {}),
|
|
14
|
-
...(exportMetadata?.filtersByTab
|
|
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-
|
|
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
|
-
|
|
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");
|
package/esm/convertors/fromBackend/analyticalDashboards/v2/AnalyticalDashboardConverter.d.ts
CHANGED
|
@@ -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
|
-
* @
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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 (
|
|
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:
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
185
|
+
const convertAlert = (alert) => {
|
|
186
186
|
const { condition, execution } = alert;
|
|
187
|
-
const { filters: convertedFilters } = convertAfmFilters(execution.measures, execution.filters,
|
|
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
|
|
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,
|
|
13
|
-
export declare const convertExportDefinitionMdObject: (exportDefinition: IExportDefinitionMetadataObjectDefinition, identifier: string
|
|
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
|
|
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,
|
|
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,
|
|
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:
|
|
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
|
|
337
|
-
const postDefinition = convertExportDefinitionMdObjectDefinition(exportDefinition
|
|
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
|
+
"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": "
|
|
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.
|
|
37
|
-
"@gooddata/sdk-backend-
|
|
38
|
-
"@gooddata/sdk-
|
|
39
|
-
"@gooddata/sdk-
|
|
40
|
-
"@gooddata/sdk-
|
|
41
|
-
"@gooddata/util": "11.36.0-alpha.
|
|
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/
|
|
69
|
-
"@gooddata/
|
|
70
|
-
"@gooddata/
|
|
71
|
-
"@gooddata/
|
|
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",
|