@gooddata/sdk-backend-tiger 11.48.0-alpha.1 → 11.48.0-alpha.3
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/auth.d.ts.map +1 -1
- package/esm/auth.js +11 -2
- package/esm/backend/features/feature.d.ts.map +1 -1
- package/esm/backend/features/feature.js +2 -0
- package/esm/backend/organization/exportTemplates.d.ts.map +1 -1
- package/esm/backend/organization/exportTemplates.js +9 -7
- package/esm/backend/organization/settings.d.ts.map +1 -1
- package/esm/backend/organization/settings.js +24 -9
- package/esm/backend/settings/responseCacheCoherence.d.ts +34 -0
- package/esm/backend/settings/responseCacheCoherence.d.ts.map +1 -0
- package/esm/backend/settings/responseCacheCoherence.js +70 -0
- package/esm/backend/uiFeatures.d.ts +6 -0
- package/esm/backend/uiFeatures.d.ts.map +1 -1
- package/esm/backend/uiFeatures.js +6 -0
- package/esm/backend/user/settings.d.ts.map +1 -1
- package/esm/backend/user/settings.js +26 -10
- package/esm/backend/workspace/execution/executionResult.d.ts.map +1 -1
- package/esm/backend/workspace/execution/executionResult.js +22 -0
- package/esm/backend/workspace/exportTemplates.d.ts.map +1 -1
- package/esm/backend/workspace/exportTemplates.js +16 -7
- package/esm/backend/workspace/genAI/ChatConversations.js +4 -2
- package/esm/backend/workspace/genAI/ChatThread.js +4 -2
- package/esm/backend/workspace/settings/index.d.ts.map +1 -1
- package/esm/backend/workspace/settings/index.js +24 -9
- package/esm/convertors/fromBackend/AutomationConverter.d.ts.map +1 -1
- package/esm/convertors/fromBackend/AutomationConverter.js +9 -10
- package/esm/convertors/fromBackend/ExportTemplatesConverter.d.ts +14 -7
- package/esm/convertors/fromBackend/ExportTemplatesConverter.d.ts.map +1 -1
- package/esm/convertors/fromBackend/ExportTemplatesConverter.js +9 -5
- package/package.json +11 -11
package/esm/__version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "11.48.0-alpha.
|
|
1
|
+
export declare const LIB_VERSION = "11.48.0-alpha.3";
|
|
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";
|
|
4
4
|
//# sourceMappingURL=__version.d.ts.map
|
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.48.0-alpha.
|
|
3
|
+
export const LIB_VERSION = "11.48.0-alpha.3";
|
|
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";
|
package/esm/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,YAAY,EAIpB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC/B,MAAM,2BAA2B,CAAC;AAKnC;;;;GAIG;AACH,8BAAsB,qBAAsB,YAAW,uBAAuB;IAC1E,SAAS,CAAC,SAAS,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAClD,qBAAqB,UAAS;IAErC,SAAgB,YAAY,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEzF,cAAc,CAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvF;IAEY,mBAAmB,CAC5B,OAAO,EAAE,sBAAsB,GAChC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAMzC;IAED,UAAgB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOrF;YAEa,WAAW;CAS5B;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAuB,SAAQ,qBAAqB;IAWzD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAJ7C,OAAO,CAAC,OAAO,CAAsB;IAErC,YACY,QAAQ,EAAE,MAAM,EACP,uBAAuB,CAAC,qCAAyB,EAGrE;IAEM,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAOlD;IAEM,kBAAkB,qEAEvB;IAEW,YAAY,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAI3F;IAEM,cAAc,6BAanB;CACL;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,0CAA0C,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAExG;;;;;;;;GAQG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;AAIzE;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAqB,SAAQ,sBAAsB;IAkBxD,OAAO,CAAC,GAAG;IAEX,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC7C,OAAO,CAAC,0CAA0C;IAlBtD,OAAO,CAAC,oBAAoB,CAAW;IAEvC;;;;;;;;;;;OAWG;IACH,YACY,GAAG,EAAE,MAAM,EACnB,uBAAuB,CAAC,EAAE,uBAAuB,EAChC,2BAA2B,CAAC,uCAA2B,EAChE,0CAA0C,SAAyC,EAI9F;IAEe,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAE3D;IAED;;;;;;;;;;;;OAYG;IACI,SAAS,6EASd;IAEF,OAAO,CAAC,aAAa;CAqBxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,2BAA4B,SAAQ,qBAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAA5D,YAAoC,uBAAuB,CAAC,qCAAyB,EAEpF;IAEM,kBAAkB,qEAEvB;IAGW,YAAY,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAI3F;CACJ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,4BAA4B,CACxC,OAAO,EAAE,kBAAkB,EAC3B,kBAAkB,EAAE,kBAAkB,EACtC,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,CAAC,EAAE;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B,GACF,MAAM,CAwBR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,8BAA8B,CAC1C,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,CAAC,EAAE,MAAM,GAClB,MAAM,CAWR;AAED;;;;GAIG;AACH,MAAM,MAAM,oCAAoC,GAAG,CAC/C,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,gBAAgB,KACtB,IAAI,CAAC;AAEV;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,6BAA6B,CACzC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,gBAAgB,GACxB,IAAI,CAYN;AAED;;;GAGG;AACH,MAAM,WAAW,oCAAoC;IACjD,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,6CAA6C,CACzD,MAAM,EAAE,oCAAoC,GAC7C,oCAAoC,CAiBtC"}
|
package/esm/auth.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// (C) 2019-2026 GoodData Corporation
|
|
2
2
|
import { invariant } from "ts-invariant";
|
|
3
|
-
import { setAxiosAuthorizationToken } from "@gooddata/api-client-tiger";
|
|
3
|
+
import { clearAxiosResponseCache, setAxiosAuthorizationToken, } from "@gooddata/api-client-tiger";
|
|
4
4
|
import { ProfileApi_GetCurrent } from "@gooddata/api-client-tiger/endpoints/profile";
|
|
5
5
|
import { convertApiError } from "./utils/errorHandling.js";
|
|
6
6
|
import { computeExpirationReminderTimeout, validateJwt } from "./utils/jwt.js";
|
|
@@ -83,8 +83,17 @@ export class TigerTokenAuthProvider extends TigerAuthProviderBase {
|
|
|
83
83
|
}
|
|
84
84
|
updateApiToken = (apiToken) => {
|
|
85
85
|
invariant(this.clients.length > 0, "The method cannot be called before initializeClient method.");
|
|
86
|
+
if (apiToken === this.apiToken) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
86
89
|
this.apiToken = apiToken;
|
|
87
|
-
|
|
90
|
+
// The memoized principal and the cached GET responses were obtained under the previous
|
|
91
|
+
// credential; served after a token change they could replay another identity's data.
|
|
92
|
+
this.principal = undefined;
|
|
93
|
+
this.clients.forEach((client) => {
|
|
94
|
+
this.initializeClient(client);
|
|
95
|
+
void clearAxiosResponseCache(client.axios);
|
|
96
|
+
});
|
|
88
97
|
};
|
|
89
98
|
}
|
|
90
99
|
const DEFAULT_EXPIRATION_REMINDER_IN_SECONDS = 60;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../src/backend/features/feature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,kBAAkB,EAAsB,MAAM,kBAAkB,CAAC;AAInG,MAAM,MAAM,UAAU,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,OAAO,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,KAAK,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAErD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../src/backend/features/feature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,kBAAkB,EAAsB,MAAM,kBAAkB,CAAC;AAInG,MAAM,MAAM,UAAU,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,OAAO,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,KAAK,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAErD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAszB9E"}
|
|
@@ -48,6 +48,7 @@ export function mapFeatures(features) {
|
|
|
48
48
|
...loadFeature(features, TigerFeaturesNames.EnableDashboardDescriptionDynamicHeight, "enableDashboardDescriptionDynamicHeight", "BOOLEAN", FeatureFlagsValues.enableDashboardDescriptionDynamicHeight),
|
|
49
49
|
...loadFeature(features, TigerFeaturesNames.EnableAmplitudeTracker, "enableAmplitudeTracker", "BOOLEAN", FeatureFlagsValues.enableAmplitudeTracker),
|
|
50
50
|
...loadFeature(features, TigerFeaturesNames.EnableExportTemplateSelection, "enableExportTemplateSelection", "BOOLEAN", FeatureFlagsValues.enableExportTemplateSelection),
|
|
51
|
+
...loadFeature(features, TigerFeaturesNames.EnableExportTemplatesSettingUi, "enableExportTemplatesSettingUi", "BOOLEAN", FeatureFlagsValues.enableExportTemplatesSettingUi),
|
|
51
52
|
...loadFeature(features, TigerFeaturesNames.EnableRawExports, "enableRawExports", "BOOLEAN", FeatureFlagsValues.enableRawExports),
|
|
52
53
|
...loadFeature(features, TigerFeaturesNames.EnableExecutionCancelling, "enableExecutionCancelling", "BOOLEAN", FeatureFlagsValues.enableExecutionCancelling),
|
|
53
54
|
...loadFeature(features, TigerFeaturesNames.EnableImmediateAttributeFilterDisplayAsLabelMigration, "enableImmediateAttributeFilterDisplayAsLabelMigration", "BOOLEAN", FeatureFlagsValues.enableImmediateAttributeFilterDisplayAsLabelMigration),
|
|
@@ -69,6 +70,7 @@ export function mapFeatures(features) {
|
|
|
69
70
|
...loadFeature(features, TigerFeaturesNames.EnableHLL, "enableHLL", "BOOLEAN", FeatureFlagsValues.enableHLL),
|
|
70
71
|
...loadFeature(features, TigerFeaturesNames.EnableGeoPushpinIcon, "enableGeoPushpinIcon", "BOOLEAN", FeatureFlagsValues.enableGeoPushpinIcon),
|
|
71
72
|
...loadFeature(features, TigerFeaturesNames.EnableGeoChartA11yImprovements, "enableGeoChartA11yImprovements", "BOOLEAN", FeatureFlagsValues.enableGeoChartA11yImprovements),
|
|
73
|
+
...loadFeature(features, TigerFeaturesNames.EnableGeoLayersExport, "enableGeoLayersExport", "BOOLEAN", FeatureFlagsValues.enableGeoLayersExport),
|
|
72
74
|
...loadFeature(features, TigerFeaturesNames.EnableGeoChartsViewportConfig, "enableGeoChartsViewportConfig", "BOOLEAN", FeatureFlagsValues.enableGeoChartsViewportConfig),
|
|
73
75
|
...loadFeature(features, TigerFeaturesNames.EnableGeoSegmentConflictRecommendation, "enableGeoSegmentConflictRecommendation", "BOOLEAN", FeatureFlagsValues.enableGeoSegmentConflictRecommendation),
|
|
74
76
|
...loadFeature(features, TigerFeaturesNames.EnableGeoBasemapConfig, "enableGeoBasemapConfig", "BOOLEAN", FeatureFlagsValues.enableGeoBasemapConfig),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exportTemplates.d.ts","sourceRoot":"","sources":["../../../src/backend/organization/exportTemplates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exportTemplates.d.ts","sourceRoot":"","sources":["../../../src/backend/organization/exportTemplates.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,yBAAyB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGxG,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAGxE,qBAAa,kCAAmC,YAAW,mCAAmC;IAC9E,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAArC,YAA6B,QAAQ,EAAE,2BAA2B,EAAI;IAE/D,kBAAkB,mCAUvB;IAEK,iBAAiB,4CAYtB;IAEK,oBAAoB,oEAkBzB;IAEK,mBAAmB,0FAsBxB;IAEK,oBAAoB,iCAKzB;CACL"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
2
|
import { v4 as uuidv4 } from "uuid";
|
|
3
|
+
import { ActionsUtilities } from "@gooddata/api-client-tiger";
|
|
3
4
|
import { ExportTemplatesApi_CreateEntityExportTemplates, ExportTemplatesApi_DeleteEntityExportTemplates, ExportTemplatesApi_GetAllEntitiesExportTemplates, ExportTemplatesApi_GetEntityExportTemplates, ExportTemplatesApi_PatchEntityExportTemplates, } from "@gooddata/api-client-tiger/endpoints/entitiesObjects";
|
|
4
5
|
import { convertExportTemplate } from "../../convertors/fromBackend/ExportTemplatesConverter.js";
|
|
5
6
|
import { objRefToIdentifier } from "../../utils/api.js";
|
|
@@ -9,10 +10,11 @@ export class OrganizationExportTemplatesService {
|
|
|
9
10
|
this.authCall = authCall;
|
|
10
11
|
}
|
|
11
12
|
getExportTemplates = async () => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
// loadAllPages walks every page (a single request returns only the first).
|
|
14
|
+
return this.authCall((client) => ActionsUtilities.loadAllPages(({ page, size }) => ExportTemplatesApi_GetAllEntitiesExportTemplates(client.axios, client.basePath, {
|
|
15
|
+
page,
|
|
16
|
+
size,
|
|
17
|
+
}).then((response) => response.data.data.map(convertExportTemplate))));
|
|
16
18
|
};
|
|
17
19
|
getExportTemplate = async (ref) => {
|
|
18
20
|
const id = objRefToIdentifier(ref, this.authCall);
|
|
@@ -20,7 +22,7 @@ export class OrganizationExportTemplatesService {
|
|
|
20
22
|
const response = await ExportTemplatesApi_GetEntityExportTemplates(client.axios, client.basePath, {
|
|
21
23
|
id,
|
|
22
24
|
});
|
|
23
|
-
return convertExportTemplate(response.data.data
|
|
25
|
+
return convertExportTemplate(response.data.data);
|
|
24
26
|
});
|
|
25
27
|
};
|
|
26
28
|
createExportTemplate = async (template) => {
|
|
@@ -35,7 +37,7 @@ export class OrganizationExportTemplatesService {
|
|
|
35
37
|
},
|
|
36
38
|
},
|
|
37
39
|
});
|
|
38
|
-
return convertExportTemplate(response.data.data
|
|
40
|
+
return convertExportTemplate(response.data.data);
|
|
39
41
|
});
|
|
40
42
|
};
|
|
41
43
|
patchExportTemplate = async (ref, template) => {
|
|
@@ -51,7 +53,7 @@ export class OrganizationExportTemplatesService {
|
|
|
51
53
|
},
|
|
52
54
|
},
|
|
53
55
|
});
|
|
54
|
-
return convertExportTemplate(response.data.data
|
|
56
|
+
return convertExportTemplate(response.data.data);
|
|
55
57
|
});
|
|
56
58
|
};
|
|
57
59
|
deleteExportTemplate = async (ref) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/backend/organization/settings.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EACH,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,EACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,KAAK,2BAA2B,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/backend/organization/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { ActionsApi_ResolveAllSettingsWithoutWorkspace } from "@gooddata/api-cli
|
|
|
3
3
|
import { EntitiesApi_CreateEntityOrganizationSettings, EntitiesApi_DeleteEntityOrganizationSettings, EntitiesApi_GetAllEntitiesOrganizationSettings, EntitiesApi_UpdateEntityOrganizationSettings, } from "@gooddata/api-client-tiger/endpoints/entitiesObjects";
|
|
4
4
|
import { unwrapSettingContent } from "../../convertors/fromBackend/SettingsConverter.js";
|
|
5
5
|
import { mapTypeToKey } from "../settings/mapping.js";
|
|
6
|
+
import { invalidateSettingsResponses, trackSettingsResponse } from "../settings/responseCacheCoherence.js";
|
|
6
7
|
import { TigerSettingsService } from "../settings/settings.js";
|
|
7
8
|
export class OrganizationSettingsService extends TigerSettingsService {
|
|
8
9
|
authCall;
|
|
@@ -127,9 +128,9 @@ export class OrganizationSettingsService extends TigerSettingsService {
|
|
|
127
128
|
return this.deleteSettingByType("ACTIVE_COLOR_PALETTE");
|
|
128
129
|
}
|
|
129
130
|
async getSettings() {
|
|
130
|
-
const { data } = await this.authCall(async (client) =>
|
|
131
|
-
|
|
132
|
-
}));
|
|
131
|
+
const { data } = await this.authCall(async (client) =>
|
|
132
|
+
// The user-level read hits the same endpoint without excludeUserSettings; the scope keeps them apart.
|
|
133
|
+
trackSettingsResponse(client.axios, "org:excludeUser", (requestOptions) => ActionsApi_ResolveAllSettingsWithoutWorkspace(client.axios, client.basePath, { excludeUserSettings: true }, requestOptions)));
|
|
133
134
|
return data.reduce((result, setting) => {
|
|
134
135
|
return {
|
|
135
136
|
...result,
|
|
@@ -143,7 +144,7 @@ export class OrganizationSettingsService extends TigerSettingsService {
|
|
|
143
144
|
}));
|
|
144
145
|
}
|
|
145
146
|
async updateSetting(type, id, content) {
|
|
146
|
-
|
|
147
|
+
const result = await this.authCall((client) => EntitiesApi_UpdateEntityOrganizationSettings(client.axios, client.basePath, {
|
|
147
148
|
id,
|
|
148
149
|
jsonApiOrganizationSettingInDocument: {
|
|
149
150
|
data: {
|
|
@@ -156,9 +157,11 @@ export class OrganizationSettingsService extends TigerSettingsService {
|
|
|
156
157
|
},
|
|
157
158
|
},
|
|
158
159
|
}));
|
|
160
|
+
await invalidateSettingsResponses(this.authCall);
|
|
161
|
+
return result;
|
|
159
162
|
}
|
|
160
163
|
async createSetting(type, id, content) {
|
|
161
|
-
|
|
164
|
+
const result = await this.authCall((client) => EntitiesApi_CreateEntityOrganizationSettings(client.axios, client.basePath, {
|
|
162
165
|
jsonApiOrganizationSettingInDocument: {
|
|
163
166
|
data: {
|
|
164
167
|
type: "organizationSetting",
|
|
@@ -170,13 +173,25 @@ export class OrganizationSettingsService extends TigerSettingsService {
|
|
|
170
173
|
},
|
|
171
174
|
},
|
|
172
175
|
}));
|
|
176
|
+
await invalidateSettingsResponses(this.authCall);
|
|
177
|
+
return result;
|
|
173
178
|
}
|
|
174
179
|
async deleteSettingByType(type) {
|
|
175
180
|
const settings = await this.getSettingByType(type);
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
181
|
+
let deleted = false;
|
|
182
|
+
try {
|
|
183
|
+
for (const setting of settings.data.data) {
|
|
184
|
+
await this.authCall((client) => EntitiesApi_DeleteEntityOrganizationSettings(client.axios, client.basePath, {
|
|
185
|
+
id: setting.id,
|
|
186
|
+
}));
|
|
187
|
+
deleted = true;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
finally {
|
|
191
|
+
// A failure partway still leaves earlier deletions persisted — invalidate for those.
|
|
192
|
+
if (deleted) {
|
|
193
|
+
await invalidateSettingsResponses(this.authCall);
|
|
194
|
+
}
|
|
180
195
|
}
|
|
181
196
|
}
|
|
182
197
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type AxiosInstance, type AxiosRequestConfig, type AxiosResponse } from "axios";
|
|
2
|
+
import { type TigerAuthenticatedCallGuard } from "../../types/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Runs a settings-resolution request under a generation-scoped cache id and records the id for
|
|
5
|
+
* eviction by the next settings write.
|
|
6
|
+
*
|
|
7
|
+
* The cacheScope must uniquely identify the call site including every request parameter that
|
|
8
|
+
* changes the response (workspace, user-inclusion), otherwise two different reads would share a
|
|
9
|
+
* cache entry and cross-serve each other's bodies.
|
|
10
|
+
*
|
|
11
|
+
* When a settings write completes while the request is in flight, the response lands under an
|
|
12
|
+
* already-superseded generation id that no future read will look up; it is dropped right away
|
|
13
|
+
* instead of tracked. The raced caller still receives the possibly-pre-write body once — that is
|
|
14
|
+
* server-side request ordering no client cache can fix — but the cache never serves it again.
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export declare function trackSettingsResponse<TResponse extends AxiosResponse>(axiosInstance: AxiosInstance, cacheScope: string, request: (requestOptions: AxiosRequestConfig & {
|
|
19
|
+
id: string;
|
|
20
|
+
}) => Promise<TResponse>): Promise<TResponse>;
|
|
21
|
+
/**
|
|
22
|
+
* Invalidates all settings-resolution reads after a settings write: bumps the generation, so
|
|
23
|
+
* subsequent reads use fresh cache ids and cannot hit — or deduplicate onto — anything cached or
|
|
24
|
+
* in flight from before the write, and evicts the superseded tracked entries so they do not
|
|
25
|
+
* linger in memory until their TTL.
|
|
26
|
+
*
|
|
27
|
+
* Deliberately coarse: org-level settings cascade into every workspace's resolved settings, so any
|
|
28
|
+
* settings write (org, workspace, or user) invalidates all of them instead of reasoning per scope.
|
|
29
|
+
* Over-invalidation only costs one cheap refetch; under-invalidation would mean silent stale data.
|
|
30
|
+
*
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
export declare function invalidateSettingsResponses(authCall: TigerAuthenticatedCallGuard): Promise<void>;
|
|
34
|
+
//# sourceMappingURL=responseCacheCoherence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseCacheCoherence.d.ts","sourceRoot":"","sources":["../../../src/backend/settings/responseCacheCoherence.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAIxF,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAexE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,SAAS,aAAa,EACvE,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,cAAc,EAAE,kBAAkB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,SAAS,CAAC,GACrF,OAAO,CAAC,SAAS,CAAC,CAepB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAatG"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { removeAxiosResponseCacheEntries } from "@gooddata/api-client-tiger";
|
|
3
|
+
// The backend serves settings-resolution GETs with a cacheable Cache-Control (a short max-age),
|
|
4
|
+
// so the axios layer caches them and a read shortly after a settings write would return the
|
|
5
|
+
// pre-write body (read-after-write staleness). Every settings-resolution read therefore carries
|
|
6
|
+
// an explicit cache id embedding a per-instance GENERATION that every settings write bumps: a
|
|
7
|
+
// post-write read never shares a cache entry — nor deduplicates onto an in-flight request — with
|
|
8
|
+
// any pre-write read, so it always fetches fresh data. Superseded entries are additionally
|
|
9
|
+
// evicted (registry below) so they do not linger in memory until their TTL. Keyed per axios
|
|
10
|
+
// instance, like the response cache itself.
|
|
11
|
+
const trackedIds = new WeakMap();
|
|
12
|
+
const generations = new WeakMap();
|
|
13
|
+
const generationOf = (axiosInstance) => generations.get(axiosInstance) ?? 0;
|
|
14
|
+
/**
|
|
15
|
+
* Runs a settings-resolution request under a generation-scoped cache id and records the id for
|
|
16
|
+
* eviction by the next settings write.
|
|
17
|
+
*
|
|
18
|
+
* The cacheScope must uniquely identify the call site including every request parameter that
|
|
19
|
+
* changes the response (workspace, user-inclusion), otherwise two different reads would share a
|
|
20
|
+
* cache entry and cross-serve each other's bodies.
|
|
21
|
+
*
|
|
22
|
+
* When a settings write completes while the request is in flight, the response lands under an
|
|
23
|
+
* already-superseded generation id that no future read will look up; it is dropped right away
|
|
24
|
+
* instead of tracked. The raced caller still receives the possibly-pre-write body once — that is
|
|
25
|
+
* server-side request ordering no client cache can fix — but the cache never serves it again.
|
|
26
|
+
*
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export async function trackSettingsResponse(axiosInstance, cacheScope, request) {
|
|
30
|
+
const dispatchedGeneration = generationOf(axiosInstance);
|
|
31
|
+
const id = `gd.settings.resolve:${cacheScope}:g${dispatchedGeneration}`;
|
|
32
|
+
const response = await request({ id });
|
|
33
|
+
if (dispatchedGeneration !== generationOf(axiosInstance)) {
|
|
34
|
+
await removeAxiosResponseCacheEntries(axiosInstance, [id]);
|
|
35
|
+
return response;
|
|
36
|
+
}
|
|
37
|
+
let ids = trackedIds.get(axiosInstance);
|
|
38
|
+
if (!ids) {
|
|
39
|
+
ids = new Set();
|
|
40
|
+
trackedIds.set(axiosInstance, ids);
|
|
41
|
+
}
|
|
42
|
+
ids.add(id);
|
|
43
|
+
return response;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Invalidates all settings-resolution reads after a settings write: bumps the generation, so
|
|
47
|
+
* subsequent reads use fresh cache ids and cannot hit — or deduplicate onto — anything cached or
|
|
48
|
+
* in flight from before the write, and evicts the superseded tracked entries so they do not
|
|
49
|
+
* linger in memory until their TTL.
|
|
50
|
+
*
|
|
51
|
+
* Deliberately coarse: org-level settings cascade into every workspace's resolved settings, so any
|
|
52
|
+
* settings write (org, workspace, or user) invalidates all of them instead of reasoning per scope.
|
|
53
|
+
* Over-invalidation only costs one cheap refetch; under-invalidation would mean silent stale data.
|
|
54
|
+
*
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
export async function invalidateSettingsResponses(authCall) {
|
|
58
|
+
await authCall(async (client) => {
|
|
59
|
+
// Bump first and unconditionally — the registry is empty precisely when the first read
|
|
60
|
+
// is still in flight, and that read must land under a superseded generation.
|
|
61
|
+
generations.set(client.axios, generationOf(client.axios) + 1);
|
|
62
|
+
const ids = trackedIds.get(client.axios);
|
|
63
|
+
if (!ids?.size) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const toEvict = [...ids];
|
|
67
|
+
ids.clear();
|
|
68
|
+
await removeAxiosResponseCacheEntries(client.axios, toEvict);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
@@ -47,6 +47,7 @@ export declare enum TigerFeaturesNames {
|
|
|
47
47
|
EnableDashboardDescriptionDynamicHeight = "enableDashboardDescriptionDynamicHeight",
|
|
48
48
|
EnableAmplitudeTracker = "enableAmplitudeTracker",
|
|
49
49
|
EnableExportTemplateSelection = "enableExportTemplateSelection",
|
|
50
|
+
EnableExportTemplatesSettingUi = "enableExportTemplatesSettingUi",
|
|
50
51
|
EnableRawExports = "enableRawExports",
|
|
51
52
|
EnableExecutionCancelling = "enableExecutionCancelling",
|
|
52
53
|
EnableDashboardTabularExport = "enableDashboardTabularExport",
|
|
@@ -68,6 +69,7 @@ export declare enum TigerFeaturesNames {
|
|
|
68
69
|
EnableHLL = "enableHLL",
|
|
69
70
|
EnableGeoPushpinIcon = "enableGeoPushpinIcon",
|
|
70
71
|
EnableGeoChartA11yImprovements = "enableGeoChartA11yImprovements",
|
|
72
|
+
EnableGeoLayersExport = "enableGeoLayersExport",
|
|
71
73
|
EnableGeoChartsViewportConfig = "enableGeoChartsViewportConfig",
|
|
72
74
|
EnableGeoSegmentConflictRecommendation = "enableGeoSegmentConflictRecommendation",
|
|
73
75
|
EnableGeoBasemapConfig = "enableGeoBasemapConfig",
|
|
@@ -166,6 +168,7 @@ export type ITigerFeatureFlags = {
|
|
|
166
168
|
enableDashboardDescriptionDynamicHeight: (typeof FeatureFlagsValues)["enableDashboardDescriptionDynamicHeight"][number];
|
|
167
169
|
enableAmplitudeTracker: (typeof FeatureFlagsValues)["enableAmplitudeTracker"][number];
|
|
168
170
|
enableExportTemplateSelection: (typeof FeatureFlagsValues)["enableExportTemplateSelection"][number];
|
|
171
|
+
enableExportTemplatesSettingUi: (typeof FeatureFlagsValues)["enableExportTemplatesSettingUi"][number];
|
|
169
172
|
enableRawExports: (typeof FeatureFlagsValues)["enableRawExports"][number];
|
|
170
173
|
enableExecutionCancelling: (typeof FeatureFlagsValues)["enableExecutionCancelling"][number];
|
|
171
174
|
enableImmediateAttributeFilterDisplayAsLabelMigration: (typeof FeatureFlagsValues)["enableImmediateAttributeFilterDisplayAsLabelMigration"][number];
|
|
@@ -187,6 +190,7 @@ export type ITigerFeatureFlags = {
|
|
|
187
190
|
enableHLL: (typeof FeatureFlagsValues)["enableHLL"][number];
|
|
188
191
|
enableGeoPushpinIcon: (typeof FeatureFlagsValues)["enableGeoPushpinIcon"][number];
|
|
189
192
|
enableGeoChartA11yImprovements: (typeof FeatureFlagsValues)["enableGeoChartA11yImprovements"][number];
|
|
193
|
+
enableGeoLayersExport: (typeof FeatureFlagsValues)["enableGeoLayersExport"][number];
|
|
190
194
|
enableGeoChartsViewportConfig: (typeof FeatureFlagsValues)["enableGeoChartsViewportConfig"][number];
|
|
191
195
|
enableGeoSegmentConflictRecommendation: (typeof FeatureFlagsValues)["enableGeoSegmentConflictRecommendation"][number];
|
|
192
196
|
enableGeoBasemapConfig: (typeof FeatureFlagsValues)["enableGeoBasemapConfig"][number];
|
|
@@ -284,6 +288,7 @@ export declare const FeatureFlagsValues: {
|
|
|
284
288
|
enableDashboardDescriptionDynamicHeight: readonly [true, false];
|
|
285
289
|
enableAmplitudeTracker: readonly [true, false];
|
|
286
290
|
enableExportTemplateSelection: readonly [true, false];
|
|
291
|
+
enableExportTemplatesSettingUi: readonly [true, false];
|
|
287
292
|
enableRawExports: readonly [true, false];
|
|
288
293
|
enableHighchartsAccessibility: readonly [true, false];
|
|
289
294
|
enableAccessibleChartTooltip: readonly [true, false];
|
|
@@ -305,6 +310,7 @@ export declare const FeatureFlagsValues: {
|
|
|
305
310
|
enableHLL: readonly [true, false];
|
|
306
311
|
enableGeoPushpinIcon: readonly [true, false];
|
|
307
312
|
enableGeoChartA11yImprovements: readonly [true, false];
|
|
313
|
+
enableGeoLayersExport: readonly [true, false];
|
|
308
314
|
enableGeoChartsViewportConfig: readonly [true, false];
|
|
309
315
|
enableGeoSegmentConflictRecommendation: readonly [true, false];
|
|
310
316
|
enableGeoBasemapConfig: readonly [true, false];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiFeatures.d.ts","sourceRoot":"","sources":["../../src/backend/uiFeatures.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEtG;;;GAGG;AAEH,oBAAY,kBAAkB;IAC1B,6BAA6B,kCAAkC;IAC/D,2BAA2B,gCAAgC;IAC3D,4BAA4B,iCAAiC;IAC7D,iBAAiB,sBAAsB;IACvC,6BAA6B,kCAAkC;IAC/D,4BAA4B,iCAAiC;IAC7D,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,wBAAwB,6BAA6B;IACrD,2BAA2B,gCAAgC;IAC3D,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,sBAAsB,2BAA2B;IACjD,uBAAuB,4BAA4B;IACnD,gBAAgB,qBAAqB;IACrC,mCAAmC,wCAAwC;IAC3E,sBAAsB,2BAA2B;IACjD,mBAAmB,wBAAwB;IAC3C,0BAA0B,+BAA+B;IACzD,uBAAuB,4BAA4B;IACnD,yBAAyB,8BAA8B;IACvD,wBAAwB,6BAA6B;IACrD,mBAAmB,wBAAwB;IAC3C,4BAA4B,iCAAiC;IAC7D,2BAA2B,gCAAgC;IAC3D,cAAc,mBAAmB;IACjC,oBAAoB,yBAAyB;IAC7C,+BAA+B,oCAAoC;IACnE,eAAe,oBAAoB;IACnC,gCAAgC,qCAAqC;IACrE,4BAA4B,iCAAiC;IAC7D,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,4BAA4B,iCAAiC;IAC7D,uCAAuC,4CAA4C;IACnF,mBAAmB,wBAAwB;IAC3C,iBAAiB,sBAAsB;IACvC,kCAAkC,uCAAuC;IACzE,6BAA6B,kCAAkC;IAC/D,uCAAuC,4CAA4C;IACnF,sBAAsB,2BAA2B;IACjD,6BAA6B,kCAAkC;IAC/D,gBAAgB,qBAAqB;IACrC,yBAAyB,8BAA8B;IACvD,4BAA4B,iCAAiC;IAC7D,gCAAgC,qCAAqC;IACrE,qDAAqD,0DAA0D;IAC/G,uCAAuC,4CAA4C;IACnF,wCAAwC,6CAA6C;IACrF,iCAAiC,sCAAsC;IACvE,6BAA6B,kCAAkC;IAC/D,oCAAoC,yCAAyC;IAC7E,8BAA8B,mCAAmC;IACjE,kBAAkB,uBAAuB;IACzC,uBAAuB,4BAA4B;IACnD,4BAA4B,iCAAiC;IAC7D,mBAAmB,wBAAwB;IAC3C,2BAA2B,gCAAgC;IAC3D,mBAAmB,wBAAwB;IAC3C,aAAa,kBAAkB;IAC/B,SAAS,cAAc;IACvB,oBAAoB,yBAAyB;IAC7C,8BAA8B,mCAAmC;IACjE,6BAA6B,kCAAkC;IAC/D,sCAAsC,2CAA2C;IACjF,sBAAsB,2BAA2B;IACjD,yBAAyB,8BAA8B;IACvD,+BAA+B,oCAAoC;IACnE,iBAAiB,sBAAsB;IACvC,sBAAsB,2BAA2B;IACjD,iBAAiB,sBAAsB;IACvC,0BAA0B,+BAA+B;IACzD,8BAA8B,mCAAmC;IACjE,4BAA4B,iCAAiC;IAC7D,yBAAyB,8BAA8B;IACvD,wBAAwB,6BAA6B;IACrD,iCAAiC,sCAAsC;IACvE,oCAAoC,yCAAyC;IAC7E,gCAAgC,qCAAqC;IACrE,iBAAiB,sBAAsB;IACvC,uCAAuC,4CAA4C;IACnF,wCAAwC,6CAA6C;IACrF,iCAAiC,sCAAsC;IACvE,2BAA2B,gCAAgC;IAC3D,mCAAmC,wCAAwC;IAC3E,0BAA0B,+BAA+B;IACzD,qBAAqB,0BAA0B;IAC/C,2BAA2B,gCAAgC;IAC3D,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,0BAA0B,+BAA+B;IACzD,sBAAsB,2BAA2B;IACjD,6BAA6B,mCAAmC;IAChE,gCAAgC,sCAAsC;IACtE,mBAAmB,wBAAwB;IAC3C,6BAA6B,kCAAkC;IAC/D,sBAAsB,2BAA2B;IACjD,WAAW,gBAAgB;IAC3B,uBAAuB,4BAA4B;IACnD,uBAAuB,4BAA4B;IACnD,2BAA2B,gCAAgC;IAC3D,iCAAiC,sCAAsC;IACvE,4BAA4B,iCAAiC;IAC7D,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,8BAA8B,wCAAwC;IACtE,oCAAoC,8CAA8C;IAClF,4BAA4B,iCAAiC;IAC7D,4BAA4B,sCAAsC;IAClE,sBAAsB,2BAA2B;IACjD,0BAA0B,+BAA+B;IACzD,oBAAoB,yBAAyB;CAChD;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,6BAA6B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;IACpG,2BAA2B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;IAChG,4BAA4B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;IAClG,iBAAiB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5E,gBAAgB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1E,gBAAgB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1E,oBAAoB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;IAClF,oBAAoB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;IAClF,wBAAwB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1F,2BAA2B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;IAChG,qBAAqB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;IACpF,uBAAuB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;IACxF,sBAAsB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;IACtF,uBAAuB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;IACxF,gBAAgB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1E,mCAAmC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChH,sBAAsB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;IACtF,wBAAwB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1F,mBAAmB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChF,0BAA0B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9F,uBAAuB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;IACxF,yBAAyB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5F,mBAAmB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChF,4BAA4B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;IAClG,2BAA2B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;IAChG,cAAc,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;IACtE,oBAAoB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;IAClF,+BAA+B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxG,eAAe,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IACxE,gCAAgC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1G,4BAA4B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;IAClG,oBAAoB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;IAClF,mBAAmB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChF,mBAAmB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChF,4BAA4B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;IAClG,uCAAuC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,yCAAyC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxH,mBAAmB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChF,iBAAiB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5E,kCAAkC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,oCAAoC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9G,6BAA6B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;IACpG,4BAA4B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;IAClG,gCAAgC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1G,uCAAuC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,yCAAyC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxH,sBAAsB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;IACtF,6BAA6B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;IACpG,gBAAgB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1E,yBAAyB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5F,qDAAqD,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,uDAAuD,CAAC,CAAC,MAAM,CAAC,CAAC;IACpJ,uCAAuC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,yCAAyC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxH,6BAA6B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;IACpG,4BAA4B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;IAClG,wCAAwC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,0CAA0C,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1H,iCAAiC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,mCAAmC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5G,6BAA6B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;IACpG,oCAAoC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,sCAAsC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClH,8BAA8B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtG,kBAAkB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9E,uBAAuB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;IACxF,4BAA4B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;IAClG,mBAAmB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChF,2BAA2B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;IAChG,mBAAmB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChF,aAAa,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;IACpE,SAAS,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5D,oBAAoB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;IAClF,8BAA8B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtG,6BAA6B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;IACpG,sCAAsC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,wCAAwC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtH,sBAAsB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;IACtF,yBAAyB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5F,+BAA+B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxG,iBAAiB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5E,sBAAsB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;IACtF,iBAAiB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5E,0BAA0B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9F,0BAA0B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9F,iCAAiC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,mCAAmC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5G,yBAAyB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5F,wBAAwB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1F,8BAA8B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtG,iBAAiB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5E,uCAAuC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,yCAAyC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxH,wCAAwC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,0CAA0C,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1H,iCAAiC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,mCAAmC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5G,2BAA2B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;IAChG,mCAAmC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChH,0BAA0B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9F,qBAAqB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;IACpF,2BAA2B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;IAChG,mBAAmB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChF,uBAAuB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;IACxF,mBAAmB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChF,uBAAuB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;IACxF,0BAA0B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9F,sBAAsB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;IACtF,8BAA8B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtG,iCAAiC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,mCAAmC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5G,mBAAmB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChF,6BAA6B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;IACpG,sBAAsB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;IACtF,WAAW,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;IAChE,4BAA4B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;IAClG,oBAAoB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;IAClF,iCAAiC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,mCAAmC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5G,oCAAoC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,sCAAsC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClH,gCAAgC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1G,uBAAuB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;IACxF,uBAAuB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;IACxF,2BAA2B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;IAChG,4BAA4B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;IAClG,mCAAmC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChH,yCAAyC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,2CAA2C,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5H,4BAA4B,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;IAClG,iCAAiC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,mCAAmC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5G,sBAAsB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;CACzF,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBAoHjC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoH9B,CAAC"}
|
|
1
|
+
{"version":3,"file":"uiFeatures.d.ts","sourceRoot":"","sources":["../../src/backend/uiFeatures.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,7 @@ var TigerFeaturesNames;
|
|
|
49
49
|
TigerFeaturesNames["EnableDashboardDescriptionDynamicHeight"] = "enableDashboardDescriptionDynamicHeight";
|
|
50
50
|
TigerFeaturesNames["EnableAmplitudeTracker"] = "enableAmplitudeTracker";
|
|
51
51
|
TigerFeaturesNames["EnableExportTemplateSelection"] = "enableExportTemplateSelection";
|
|
52
|
+
TigerFeaturesNames["EnableExportTemplatesSettingUi"] = "enableExportTemplatesSettingUi";
|
|
52
53
|
TigerFeaturesNames["EnableRawExports"] = "enableRawExports";
|
|
53
54
|
TigerFeaturesNames["EnableExecutionCancelling"] = "enableExecutionCancelling";
|
|
54
55
|
TigerFeaturesNames["EnableDashboardTabularExport"] = "enableDashboardTabularExport";
|
|
@@ -70,6 +71,7 @@ var TigerFeaturesNames;
|
|
|
70
71
|
TigerFeaturesNames["EnableHLL"] = "enableHLL";
|
|
71
72
|
TigerFeaturesNames["EnableGeoPushpinIcon"] = "enableGeoPushpinIcon";
|
|
72
73
|
TigerFeaturesNames["EnableGeoChartA11yImprovements"] = "enableGeoChartA11yImprovements";
|
|
74
|
+
TigerFeaturesNames["EnableGeoLayersExport"] = "enableGeoLayersExport";
|
|
73
75
|
TigerFeaturesNames["EnableGeoChartsViewportConfig"] = "enableGeoChartsViewportConfig";
|
|
74
76
|
TigerFeaturesNames["EnableGeoSegmentConflictRecommendation"] = "enableGeoSegmentConflictRecommendation";
|
|
75
77
|
TigerFeaturesNames["EnableGeoBasemapConfig"] = "enableGeoBasemapConfig";
|
|
@@ -168,6 +170,7 @@ export const DefaultFeatureFlags = {
|
|
|
168
170
|
enableDashboardDescriptionDynamicHeight: false,
|
|
169
171
|
enableAmplitudeTracker: false,
|
|
170
172
|
enableExportTemplateSelection: true,
|
|
173
|
+
enableExportTemplatesSettingUi: false,
|
|
171
174
|
enableRawExports: false,
|
|
172
175
|
enableExecutionCancelling: false,
|
|
173
176
|
enableImmediateAttributeFilterDisplayAsLabelMigration: false,
|
|
@@ -189,6 +192,7 @@ export const DefaultFeatureFlags = {
|
|
|
189
192
|
enableHLL: false,
|
|
190
193
|
enableGeoPushpinIcon: true,
|
|
191
194
|
enableGeoChartA11yImprovements: true,
|
|
195
|
+
enableGeoLayersExport: false,
|
|
192
196
|
enableGeoChartsViewportConfig: true,
|
|
193
197
|
enableGeoSegmentConflictRecommendation: true,
|
|
194
198
|
enableGeoBasemapConfig: true,
|
|
@@ -285,6 +289,7 @@ export const FeatureFlagsValues = {
|
|
|
285
289
|
enableDashboardDescriptionDynamicHeight: [true, false],
|
|
286
290
|
enableAmplitudeTracker: [true, false],
|
|
287
291
|
enableExportTemplateSelection: [true, false],
|
|
292
|
+
enableExportTemplatesSettingUi: [true, false],
|
|
288
293
|
enableRawExports: [true, false],
|
|
289
294
|
enableHighchartsAccessibility: [true, false],
|
|
290
295
|
enableAccessibleChartTooltip: [true, false],
|
|
@@ -306,6 +311,7 @@ export const FeatureFlagsValues = {
|
|
|
306
311
|
enableHLL: [true, false],
|
|
307
312
|
enableGeoPushpinIcon: [true, false],
|
|
308
313
|
enableGeoChartA11yImprovements: [true, false],
|
|
314
|
+
enableGeoLayersExport: [true, false],
|
|
309
315
|
enableGeoChartsViewportConfig: [true, false],
|
|
310
316
|
enableGeoSegmentConflictRecommendation: [true, false],
|
|
311
317
|
enableGeoBasemapConfig: [true, false],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/backend/user/settings.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAI1F,OAAO,EAAE,KAAK,2BAA2B,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/backend/user/settings.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAI1F,OAAO,EAAE,KAAK,2BAA2B,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIhG,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,qBAAa,wBACT,SAAQ,oBAAoB,CAAC,aAAa,CAC1C,YAAW,oBAAoB;IAGnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IADrC,OAAO,CAAC,mBAAmB,CAAuB;IAClD,YAA6B,QAAQ,EAAE,2BAA2B,EAGjE;IAEqB,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,CA6B1D;IAED,UAAyB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,mHAQhE;IAED,UAAyB,aAAa,CAAC,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAoBtG;IAED,UAAyB,aAAa,CAAC,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAmBtG;IAED,UAAyB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAoBlF;CACJ"}
|
|
@@ -5,6 +5,7 @@ import { ProfileApi_GetCurrent } from "@gooddata/api-client-tiger/endpoints/prof
|
|
|
5
5
|
import { unwrapSettingContent } from "../../convertors/fromBackend/SettingsConverter.js";
|
|
6
6
|
import { TigerFeaturesService, pickContext } from "../features/index.js";
|
|
7
7
|
import { mapTypeToKey } from "../settings/mapping.js";
|
|
8
|
+
import { invalidateSettingsResponses, trackSettingsResponse } from "../settings/responseCacheCoherence.js";
|
|
8
9
|
import { TigerSettingsService } from "../settings/settings.js";
|
|
9
10
|
import { DefaultUserSettings } from "../uiSettings.js";
|
|
10
11
|
export class TigerUserSettingsService extends TigerSettingsService {
|
|
@@ -20,7 +21,8 @@ export class TigerUserSettingsService extends TigerSettingsService {
|
|
|
20
21
|
const profile = await ProfileApi_GetCurrent(client.axios);
|
|
21
22
|
const context = pickContext(undefined, profile.organizationId, profile.entitlements);
|
|
22
23
|
const features = await this.tigerFeatureService.getFeatures(profile, context);
|
|
23
|
-
|
|
24
|
+
// The org-level read hits the same endpoint with excludeUserSettings; the scope keeps them apart.
|
|
25
|
+
const { data } = await trackSettingsResponse(client.axios, "user:withUser", (requestOptions) => ActionsApi_ResolveAllSettingsWithoutWorkspace(client.axios, client.basePath, {}, requestOptions));
|
|
24
26
|
const resolvedSettings = data.reduce((result, setting) => ({
|
|
25
27
|
...result,
|
|
26
28
|
[mapTypeToKey(setting.type, setting.id)]: unwrapSettingContent(setting.content),
|
|
@@ -43,7 +45,7 @@ export class TigerUserSettingsService extends TigerSettingsService {
|
|
|
43
45
|
});
|
|
44
46
|
}
|
|
45
47
|
async updateSetting(type, id, content) {
|
|
46
|
-
|
|
48
|
+
const result = await this.authCall(async (client) => {
|
|
47
49
|
const profile = await ProfileApi_GetCurrent(client.axios);
|
|
48
50
|
return EntitiesApi_UpdateEntityUserSettings(client.axios, client.basePath, {
|
|
49
51
|
id,
|
|
@@ -60,9 +62,11 @@ export class TigerUserSettingsService extends TigerSettingsService {
|
|
|
60
62
|
},
|
|
61
63
|
});
|
|
62
64
|
});
|
|
65
|
+
await invalidateSettingsResponses(this.authCall);
|
|
66
|
+
return result;
|
|
63
67
|
}
|
|
64
68
|
async createSetting(type, id, content) {
|
|
65
|
-
|
|
69
|
+
const result = await this.authCall(async (client) => {
|
|
66
70
|
const profile = await ProfileApi_GetCurrent(client.axios);
|
|
67
71
|
return EntitiesApi_CreateEntityUserSettings(client.axios, client.basePath, {
|
|
68
72
|
userId: profile.userId,
|
|
@@ -78,17 +82,29 @@ export class TigerUserSettingsService extends TigerSettingsService {
|
|
|
78
82
|
},
|
|
79
83
|
});
|
|
80
84
|
});
|
|
85
|
+
await invalidateSettingsResponses(this.authCall);
|
|
86
|
+
return result;
|
|
81
87
|
}
|
|
82
88
|
async deleteSettingByType(type) {
|
|
83
89
|
const settings = await this.getSettingByType(type);
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
let deleted = false;
|
|
91
|
+
try {
|
|
92
|
+
for (const setting of settings.data.data) {
|
|
93
|
+
await this.authCall(async (client) => {
|
|
94
|
+
const profile = await ProfileApi_GetCurrent(client.axios);
|
|
95
|
+
return EntitiesApi_DeleteEntityUserSettings(client.axios, client.basePath, {
|
|
96
|
+
userId: profile.userId,
|
|
97
|
+
id: setting.id,
|
|
98
|
+
});
|
|
90
99
|
});
|
|
91
|
-
|
|
100
|
+
deleted = true;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
finally {
|
|
104
|
+
// A failure partway still leaves earlier deletions persisted — invalidate for those.
|
|
105
|
+
if (deleted) {
|
|
106
|
+
await invalidateSettingsResponses(this.authCall);
|
|
107
|
+
}
|
|
92
108
|
}
|
|
93
109
|
}
|
|
94
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executionResult.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/execution/executionResult.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"executionResult.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/execution/executionResult.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,oBAAoB,EAM5B,MAAM,4BAA4B,CAAC;AAqBpC,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAGtB,KAAK,SAAS,EAEd,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kCAAkC,EAEvC,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,eAAe,EAEpB,KAAK,eAAe,EACpB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EAG1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEH,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAG5B,MAAM,qBAAqB,CAAC;AAgB7B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAE7F,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAmE3E,qBAAa,oBAAqB,YAAW,gBAAgB;IAOrD,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,UAAU,EAAE,oBAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,QAAQ,CAAC,YAAY,EAAE,oBAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa;aACd,OAAO,CAAC;aACR,MAAM,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAbvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,SAAgB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,YACqB,QAAQ,EAAE,2BAA2B,EACtC,UAAU,EAAE,oBAAoB,EAC/B,gBAAgB,EAAE,iBAAiB,EAC3C,YAAY,EAAE,oBAAoB,EAC1B,aAAa,EAAE,aAAa,EAC7B,OAAO,CAAC,SAAmB,EAC3B,MAAM,CAAC,yBAAa,EACnB,iBAAiB,CAAC,oBAAQ,EAS9C;IAEM,UAAU,4CAWf;IAEW,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAczC;IAEY,eAAe,CAAC,cAAc,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CA4BtF;IAEY,eAAe,CAAC,cAAc,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CA6CtF;IAEY,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAiCtG;IAEY,iBAAiB,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0C9F;IAEY,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAmB5E;IAEY,mBAAmB,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,cAAc,CAAC,CA0BpG;IAEM,SAAS,IAAI,kBAAkB,CAKrC;IAEY,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAuElE;IAEM,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAE9C;IAEM,WAAW,IAAI,MAAM,CAE3B;IAEM,QAAQ,IAAI,MAAM,CAExB;IAED,OAAO,CAAC,UAAU,CAiBhB;IAEF,OAAO,CAAC,6BAA6B;CAexC"}
|
|
@@ -25,6 +25,14 @@ const TABULAR_EXPORT_FORMATS = ["CSV", "XLSX", "HTML", "PDF"];
|
|
|
25
25
|
function isTabularExportFormat(format = "") {
|
|
26
26
|
return TABULAR_EXPORT_FORMATS.includes(format);
|
|
27
27
|
}
|
|
28
|
+
function buildTabularExportExecution(resultId, result, title) {
|
|
29
|
+
const customOverride = resolveCustomOverride(result.dimensions, result.definition);
|
|
30
|
+
return {
|
|
31
|
+
executionResult: resultId,
|
|
32
|
+
title,
|
|
33
|
+
customOverride: augmentCustomOverrideWithNormalizedKeys(customOverride, result.definition),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
28
36
|
function sanitizeOffset(offset) {
|
|
29
37
|
return offset.map((offsetItem = 0) => offsetItem);
|
|
30
38
|
}
|
|
@@ -245,6 +253,20 @@ export class TigerExecutionResult {
|
|
|
245
253
|
visualizationObject: options.visualizationObjectId,
|
|
246
254
|
visualizationObjectCustomFilters: options.visualizationObjectCustomFilters,
|
|
247
255
|
};
|
|
256
|
+
// For multi-layer geo visualizations the export ships one sheet/file per layer. The main
|
|
257
|
+
// layer is this result (index 0); the additional layers come pre-executed in the config.
|
|
258
|
+
// When executions is present the backend ignores the top-level executionResult/customOverride.
|
|
259
|
+
if (options.additionalExecutions?.length) {
|
|
260
|
+
payload.executions = [
|
|
261
|
+
{ executionResult: this._resultId, title: options.title, customOverride: augmented },
|
|
262
|
+
...options.additionalExecutions.flatMap(({ executionResult, title }) => {
|
|
263
|
+
const layerResultId = executionResult.resultId();
|
|
264
|
+
return layerResultId
|
|
265
|
+
? [buildTabularExportExecution(layerResultId, executionResult, title)]
|
|
266
|
+
: [];
|
|
267
|
+
}),
|
|
268
|
+
];
|
|
269
|
+
}
|
|
248
270
|
return this.authCall(async (client) => {
|
|
249
271
|
const tabularExport = await ExportApi_CreateTabularExport(client.axios, client.basePath, {
|
|
250
272
|
workspaceId: this.workspace,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exportTemplates.d.ts","sourceRoot":"","sources":["../../../src/backend/workspace/exportTemplates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exportTemplates.d.ts","sourceRoot":"","sources":["../../../src/backend/workspace/exportTemplates.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,yBAAyB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGxG,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAGxE,qBAAa,+BAAgC,YAAW,gCAAgC;IAEhF,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAF9B,YACqB,QAAQ,EAAE,2BAA2B,EACrC,SAAS,EAAE,MAAM,EAClC;IAEG,kBAAkB,mCAcvB;IAEK,iBAAiB,4CAgBtB;IAEK,oBAAoB,oEAmBzB;IAEK,mBAAmB,0FAuBxB;IAEK,oBAAoB,iCAQzB;CACL"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
2
|
import { v4 as uuidv4 } from "uuid";
|
|
3
|
+
import { ActionsUtilities } from "@gooddata/api-client-tiger";
|
|
3
4
|
import { EntitiesApi_CreateEntityWorkspaceExportTemplates, EntitiesApi_DeleteEntityWorkspaceExportTemplates, EntitiesApi_GetAllEntitiesWorkspaceExportTemplates, EntitiesApi_GetEntityWorkspaceExportTemplates, EntitiesApi_PatchEntityWorkspaceExportTemplates, } from "@gooddata/api-client-tiger/endpoints/entitiesObjects";
|
|
4
5
|
import { convertExportTemplate } from "../../convertors/fromBackend/ExportTemplatesConverter.js";
|
|
5
6
|
import { objRefToIdentifier } from "../../utils/api.js";
|
|
@@ -11,10 +12,15 @@ export class WorkspaceExportTemplatesService {
|
|
|
11
12
|
this.workspace = workspace;
|
|
12
13
|
}
|
|
13
14
|
getExportTemplates = async () => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
})
|
|
15
|
+
// loadAllPages walks every page (a single request returns only the first).
|
|
16
|
+
// `metaInclude: ["origin"]` populates each entity's origin meta so the converter can flag
|
|
17
|
+
// templates inherited from a parent workspace (PARENT origin) as read-only.
|
|
18
|
+
return this.authCall((client) => ActionsUtilities.loadAllPages(({ page, size }) => EntitiesApi_GetAllEntitiesWorkspaceExportTemplates(client.axios, client.basePath, {
|
|
19
|
+
workspaceId: this.workspace,
|
|
20
|
+
metaInclude: ["origin"],
|
|
21
|
+
page,
|
|
22
|
+
size,
|
|
23
|
+
}).then((response) => response.data.data.map(convertExportTemplate))));
|
|
18
24
|
};
|
|
19
25
|
getExportTemplate = async (ref) => {
|
|
20
26
|
const objectId = objRefToIdentifier(ref, this.authCall);
|
|
@@ -22,8 +28,11 @@ export class WorkspaceExportTemplatesService {
|
|
|
22
28
|
const response = await EntitiesApi_GetEntityWorkspaceExportTemplates(client.axios, client.basePath, {
|
|
23
29
|
workspaceId: this.workspace,
|
|
24
30
|
objectId,
|
|
31
|
+
// Populate origin meta so the converter can flag a template inherited from a
|
|
32
|
+
// parent workspace / the organization, consistent with getExportTemplates.
|
|
33
|
+
metaInclude: ["origin"],
|
|
25
34
|
});
|
|
26
|
-
return convertExportTemplate(response.data.data
|
|
35
|
+
return convertExportTemplate(response.data.data);
|
|
27
36
|
});
|
|
28
37
|
};
|
|
29
38
|
createExportTemplate = async (template) => {
|
|
@@ -39,7 +48,7 @@ export class WorkspaceExportTemplatesService {
|
|
|
39
48
|
},
|
|
40
49
|
},
|
|
41
50
|
});
|
|
42
|
-
return convertExportTemplate(response.data.data
|
|
51
|
+
return convertExportTemplate(response.data.data);
|
|
43
52
|
});
|
|
44
53
|
};
|
|
45
54
|
patchExportTemplate = async (ref, template) => {
|
|
@@ -56,7 +65,7 @@ export class WorkspaceExportTemplatesService {
|
|
|
56
65
|
},
|
|
57
66
|
},
|
|
58
67
|
});
|
|
59
|
-
return convertExportTemplate(response.data.data
|
|
68
|
+
return convertExportTemplate(response.data.data);
|
|
60
69
|
});
|
|
61
70
|
};
|
|
62
71
|
deleteExportTemplate = async (ref) => {
|
|
@@ -460,9 +460,11 @@ function convertUserContext(userContext) {
|
|
|
460
460
|
? w.widgetType === "visualizationSwitcher"
|
|
461
461
|
? {
|
|
462
462
|
activeVisualizationId: objRefToString(w.insightRef),
|
|
463
|
-
...(w.
|
|
463
|
+
...(w.visualizations
|
|
464
464
|
? {
|
|
465
|
-
visualizationIds: w.
|
|
465
|
+
visualizationIds: w.visualizations
|
|
466
|
+
.map(({ insightRef }) => insightRef ? objRefToString(insightRef) : "")
|
|
467
|
+
.filter(Boolean),
|
|
466
468
|
}
|
|
467
469
|
: {}),
|
|
468
470
|
}
|
|
@@ -473,9 +473,11 @@ function convertUserContext(userContext) {
|
|
|
473
473
|
? w.widgetType === "visualizationSwitcher"
|
|
474
474
|
? {
|
|
475
475
|
activeVisualizationId: objRefToString(w.insightRef),
|
|
476
|
-
...(w.
|
|
476
|
+
...(w.visualizations
|
|
477
477
|
? {
|
|
478
|
-
visualizationIds: w.
|
|
478
|
+
visualizationIds: w.visualizations
|
|
479
|
+
.map(({ insightRef }) => insightRef ? objRefToString(insightRef) : null)
|
|
480
|
+
.filter(Boolean),
|
|
479
481
|
}
|
|
480
482
|
: {}),
|
|
481
483
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/settings/index.ts"],"names":[],"mappings":"AAYA,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EACjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,WAAW,EAEhB,KAAK,MAAM,EAEd,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAAE,KAAK,2BAA2B,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/settings/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import { unwrapSettingContent } from "../../../convertors/fromBackend/SettingsCo
|
|
|
10
10
|
import { objRefToIdentifier } from "../../../utils/api.js";
|
|
11
11
|
import { TigerFeaturesService, getControlledFeatureRollout, getOrganizationTier, } from "../../features/index.js";
|
|
12
12
|
import { mapTypeToKey } from "../../settings/mapping.js";
|
|
13
|
+
import { invalidateSettingsResponses, trackSettingsResponse } from "../../settings/responseCacheCoherence.js";
|
|
13
14
|
import { TigerSettingsService } from "../../settings/settings.js";
|
|
14
15
|
import { DefaultUserSettings } from "../../uiSettings.js";
|
|
15
16
|
import { GET_OPTIMIZED_WORKSPACE_PARAMS } from "../constants.js";
|
|
@@ -177,7 +178,7 @@ export class TigerWorkspaceSettings extends TigerSettingsService {
|
|
|
177
178
|
}));
|
|
178
179
|
}
|
|
179
180
|
async updateSetting(type, id, content) {
|
|
180
|
-
|
|
181
|
+
const result = await this.authCall(async (client) => EntitiesApi_UpdateEntityWorkspaceSettings(client.axios, client.basePath, {
|
|
181
182
|
workspaceId: this.workspace,
|
|
182
183
|
objectId: id,
|
|
183
184
|
jsonApiWorkspaceSettingInDocument: {
|
|
@@ -191,9 +192,11 @@ export class TigerWorkspaceSettings extends TigerSettingsService {
|
|
|
191
192
|
},
|
|
192
193
|
},
|
|
193
194
|
}));
|
|
195
|
+
await invalidateSettingsResponses(this.authCall);
|
|
196
|
+
return result;
|
|
194
197
|
}
|
|
195
198
|
async createSetting(type, id, content) {
|
|
196
|
-
|
|
199
|
+
const result = await this.authCall(async (client) => EntitiesApi_CreateEntityWorkspaceSettings(client.axios, client.basePath, {
|
|
197
200
|
workspaceId: this.workspace,
|
|
198
201
|
jsonApiWorkspaceSettingPostOptionalIdDocument: {
|
|
199
202
|
data: {
|
|
@@ -206,14 +209,26 @@ export class TigerWorkspaceSettings extends TigerSettingsService {
|
|
|
206
209
|
},
|
|
207
210
|
},
|
|
208
211
|
}));
|
|
212
|
+
await invalidateSettingsResponses(this.authCall);
|
|
213
|
+
return result;
|
|
209
214
|
}
|
|
210
215
|
async deleteSettingByType(type) {
|
|
211
216
|
const settings = await this.getSettingByType(type);
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
+
let deleted = false;
|
|
218
|
+
try {
|
|
219
|
+
for (const setting of settings.data.data) {
|
|
220
|
+
await this.authCall(async (client) => EntitiesApi_DeleteEntityWorkspaceSettings(client.axios, client.basePath, {
|
|
221
|
+
workspaceId: this.workspace,
|
|
222
|
+
objectId: setting.id,
|
|
223
|
+
}));
|
|
224
|
+
deleted = true;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
finally {
|
|
228
|
+
// A failure partway still leaves earlier deletions persisted — invalidate for those.
|
|
229
|
+
if (deleted) {
|
|
230
|
+
await invalidateSettingsResponses(this.authCall);
|
|
231
|
+
}
|
|
217
232
|
}
|
|
218
233
|
}
|
|
219
234
|
}
|
|
@@ -232,10 +247,10 @@ function resolveCurrencyFormatOverride(metricFormatOverride) {
|
|
|
232
247
|
* @internal
|
|
233
248
|
*/
|
|
234
249
|
async function resolveSettings(authCall, workspace, excludeUserSettings = false) {
|
|
235
|
-
const { data } = await authCall(async (client) => ActionsApi_WorkspaceResolveAllSettings(client.axios, client.basePath, {
|
|
250
|
+
const { data } = await authCall(async (client) => trackSettingsResponse(client.axios, `ws:${workspace}:${excludeUserSettings ? "excludeUser" : "withUser"}`, (requestOptions) => ActionsApi_WorkspaceResolveAllSettings(client.axios, client.basePath, {
|
|
236
251
|
workspaceId: workspace,
|
|
237
252
|
excludeUserSettings: excludeUserSettings || undefined,
|
|
238
|
-
}));
|
|
253
|
+
}, requestOptions)));
|
|
239
254
|
const settings = data.reduce((result, setting) => {
|
|
240
255
|
const key = mapTypeToKey(setting.type, setting.id);
|
|
241
256
|
if (key === "dateFilterConfig") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutomationConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/AutomationConverter.ts"],"names":[],"mappings":"AAIA,OAAO,EAIH,KAAK,yBAAyB,EAO9B,KAAK,uCAAuC,EAC5C,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAE7B,KAAK,6BAA6B,EAQlC,KAAK,sCAAsC,EAK9C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEH,KAAK,iBAAiB,EAEtB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAI9B,KAAK,OAAO,EA0Bf,MAAM,qBAAqB,CAAC;AA0I7B,wBAAgB,iBAAiB,CAC7B,UAAU,EAAE,6BAA6B,GAAG,sCAAsC,EAClF,QAAQ,EAAE,4BAA4B,EAAE,GACzC,yBAAyB,CA0H3B;AAED,eAAO,MAAM,kCAAkC,2EAM9C,CAAC;
|
|
1
|
+
{"version":3,"file":"AutomationConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/AutomationConverter.ts"],"names":[],"mappings":"AAIA,OAAO,EAIH,KAAK,yBAAyB,EAO9B,KAAK,uCAAuC,EAC5C,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAE7B,KAAK,6BAA6B,EAQlC,KAAK,sCAAsC,EAK9C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEH,KAAK,iBAAiB,EAEtB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAI9B,KAAK,OAAO,EA0Bf,MAAM,qBAAqB,CAAC;AA0I7B,wBAAgB,iBAAiB,CAC7B,UAAU,EAAE,6BAA6B,GAAG,sCAAsC,EAClF,QAAQ,EAAE,4BAA4B,EAAE,GACzC,yBAAyB,CA0H3B;AAED,eAAO,MAAM,kCAAkC,2EAM9C,CAAC;AAiBF,eAAO,MAAM,YAAY,sMAoGxB,CAAC;AA0CF;;;;;;;GAOG;AACH,wBAAgB,yCAAyC,CACrD,MAAM,EAAE,OAAO,EACf,uBAAuB,EAAE,MAAM,GAChC,iBAAiB,GAAG,SAAS,CAgG/B"}
|
|
@@ -157,19 +157,18 @@ export const convertAutomationListToAutomations = (automationList) => {
|
|
|
157
157
|
return automationList.data.map((automationObject) => convertAutomation(automationObject, automationList.included ?? []));
|
|
158
158
|
};
|
|
159
159
|
/**
|
|
160
|
-
*
|
|
161
|
-
*
|
|
160
|
+
* The wire value is an untyped string with no type tag. A value that parses to a finite number
|
|
161
|
+
* decodes as a number (legacy NUMBER rows, incl. `Number("") === 0`); everything else passes
|
|
162
|
+
* through as-is, so a STRING value that happens to look numeric decodes as a number too.
|
|
162
163
|
*/
|
|
163
164
|
function convertParameterItems(items) {
|
|
164
|
-
|
|
165
|
-
for (const item of items) {
|
|
165
|
+
return items.map((item) => {
|
|
166
166
|
const value = Number(item.value);
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
return result;
|
|
167
|
+
return {
|
|
168
|
+
ref: idRef(item.parameter.identifier.id, "parameter"),
|
|
169
|
+
value: Number.isFinite(value) ? value : item.value,
|
|
170
|
+
};
|
|
171
|
+
});
|
|
173
172
|
}
|
|
174
173
|
export const convertAlert = (alert, state) => {
|
|
175
174
|
if (!alert) {
|
|
@@ -1,20 +1,27 @@
|
|
|
1
|
+
import { type JsonApiExportDefinitionOutMeta } from "@gooddata/api-client-tiger";
|
|
1
2
|
import { type IExportTemplate, type IExportTemplateDashboardSlides, type IExportTemplateWidgetSlides } from "@gooddata/sdk-model";
|
|
2
3
|
/**
|
|
3
|
-
* Structural view of
|
|
4
|
-
*
|
|
4
|
+
* Structural view of a JSON:API export template entity. Organization- and workspace-level export
|
|
5
|
+
* template entities share this shape (attributes + inheritance `meta`), so a single converter handles
|
|
6
|
+
* both — mirroring how {@link convertMemoryItem} accepts either scope's generated type.
|
|
5
7
|
*
|
|
6
8
|
* @internal
|
|
7
9
|
*/
|
|
8
|
-
interface
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
interface IExportTemplateOutEntity {
|
|
11
|
+
id: string;
|
|
12
|
+
type: string;
|
|
13
|
+
meta?: JsonApiExportDefinitionOutMeta;
|
|
14
|
+
attributes: {
|
|
15
|
+
name: string;
|
|
16
|
+
dashboardSlidesTemplate?: IExportTemplateDashboardSlides | null;
|
|
17
|
+
widgetSlidesTemplate?: IExportTemplateWidgetSlides | null;
|
|
18
|
+
};
|
|
12
19
|
}
|
|
13
20
|
/**
|
|
14
21
|
* Converts a JSON:API export template entity into the {@link IExportTemplate} model.
|
|
15
22
|
*
|
|
16
23
|
* @internal
|
|
17
24
|
*/
|
|
18
|
-
export declare function convertExportTemplate(
|
|
25
|
+
export declare function convertExportTemplate(entity: IExportTemplateOutEntity): IExportTemplate;
|
|
19
26
|
export {};
|
|
20
27
|
//# sourceMappingURL=ExportTemplatesConverter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExportTemplatesConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/ExportTemplatesConverter.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAEnC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ExportTemplatesConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/ExportTemplatesConverter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAEnC,MAAM,qBAAqB,CAAC;AAI7B;;;;;;GAMG;AACH,UAAU,wBAAwB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,8BAA8B,CAAC;IACtC,UAAU,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,uBAAuB,CAAC,EAAE,8BAA8B,GAAG,IAAI,CAAC;QAChE,oBAAoB,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;KAC7D,CAAC;CACL;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,GAAG,eAAe,CAUvF"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
2
|
import { idRef, } from "@gooddata/sdk-model";
|
|
3
|
+
import { isInheritedObject } from "./ObjectInheritance.js";
|
|
3
4
|
/**
|
|
4
5
|
* Converts a JSON:API export template entity into the {@link IExportTemplate} model.
|
|
5
6
|
*
|
|
6
7
|
* @internal
|
|
7
8
|
*/
|
|
8
|
-
export function convertExportTemplate(
|
|
9
|
+
export function convertExportTemplate(entity) {
|
|
9
10
|
return {
|
|
10
|
-
ref: idRef(id),
|
|
11
|
-
name: attributes.name,
|
|
12
|
-
dashboardSlidesTemplate: attributes.dashboardSlidesTemplate,
|
|
13
|
-
widgetSlidesTemplate: attributes.widgetSlidesTemplate,
|
|
11
|
+
ref: idRef(entity.id),
|
|
12
|
+
name: entity.attributes.name,
|
|
13
|
+
dashboardSlidesTemplate: entity.attributes.dashboardSlidesTemplate,
|
|
14
|
+
widgetSlidesTemplate: entity.attributes.widgetSlidesTemplate,
|
|
15
|
+
// Templates inherited from a parent workspace (or the organization) come back with a PARENT
|
|
16
|
+
// origin and are read-only in the current scope.
|
|
17
|
+
isInherited: isInheritedObject(entity),
|
|
14
18
|
};
|
|
15
19
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-backend-tiger",
|
|
3
|
-
"version": "11.48.0-alpha.
|
|
3
|
+
"version": "11.48.0-alpha.3",
|
|
4
4
|
"description": "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GoodData",
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
"ts-invariant": "0.10.3",
|
|
34
34
|
"tslib": "2.8.1",
|
|
35
35
|
"uuid": "11.1.1",
|
|
36
|
-
"@gooddata/api-client-tiger": "11.48.0-alpha.
|
|
37
|
-
"@gooddata/sdk-backend-base": "11.48.0-alpha.
|
|
38
|
-
"@gooddata/sdk-backend-spi": "11.48.0-alpha.
|
|
39
|
-
"@gooddata/sdk-
|
|
40
|
-
"@gooddata/sdk-
|
|
41
|
-
"@gooddata/util": "11.48.0-alpha.
|
|
36
|
+
"@gooddata/api-client-tiger": "11.48.0-alpha.3",
|
|
37
|
+
"@gooddata/sdk-backend-base": "11.48.0-alpha.3",
|
|
38
|
+
"@gooddata/sdk-backend-spi": "11.48.0-alpha.3",
|
|
39
|
+
"@gooddata/sdk-code-convertors": "11.48.0-alpha.3",
|
|
40
|
+
"@gooddata/sdk-model": "11.48.0-alpha.3",
|
|
41
|
+
"@gooddata/util": "11.48.0-alpha.3"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@gooddata/fixtures": "3.7.0",
|
|
@@ -65,10 +65,10 @@
|
|
|
65
65
|
"oxlint-tsgolint": "0.15.0",
|
|
66
66
|
"typescript": "5.9.3",
|
|
67
67
|
"vitest": "4.1.8",
|
|
68
|
-
"@gooddata/catalog-export": "11.48.0-alpha.
|
|
69
|
-
"@gooddata/
|
|
70
|
-
"@gooddata/
|
|
71
|
-
"@gooddata/reference-workspace": "11.48.0-alpha.
|
|
68
|
+
"@gooddata/catalog-export": "11.48.0-alpha.3",
|
|
69
|
+
"@gooddata/eslint-config": "11.48.0-alpha.3",
|
|
70
|
+
"@gooddata/oxlint-config": "11.48.0-alpha.3",
|
|
71
|
+
"@gooddata/reference-workspace": "11.48.0-alpha.3"
|
|
72
72
|
},
|
|
73
73
|
"scripts": {
|
|
74
74
|
"_phase:build": "npm run build",
|