@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.
Files changed (32) hide show
  1. package/esm/__version.d.ts +1 -1
  2. package/esm/__version.js +1 -1
  3. package/esm/auth.d.ts.map +1 -1
  4. package/esm/auth.js +11 -2
  5. package/esm/backend/features/feature.d.ts.map +1 -1
  6. package/esm/backend/features/feature.js +2 -0
  7. package/esm/backend/organization/exportTemplates.d.ts.map +1 -1
  8. package/esm/backend/organization/exportTemplates.js +9 -7
  9. package/esm/backend/organization/settings.d.ts.map +1 -1
  10. package/esm/backend/organization/settings.js +24 -9
  11. package/esm/backend/settings/responseCacheCoherence.d.ts +34 -0
  12. package/esm/backend/settings/responseCacheCoherence.d.ts.map +1 -0
  13. package/esm/backend/settings/responseCacheCoherence.js +70 -0
  14. package/esm/backend/uiFeatures.d.ts +6 -0
  15. package/esm/backend/uiFeatures.d.ts.map +1 -1
  16. package/esm/backend/uiFeatures.js +6 -0
  17. package/esm/backend/user/settings.d.ts.map +1 -1
  18. package/esm/backend/user/settings.js +26 -10
  19. package/esm/backend/workspace/execution/executionResult.d.ts.map +1 -1
  20. package/esm/backend/workspace/execution/executionResult.js +22 -0
  21. package/esm/backend/workspace/exportTemplates.d.ts.map +1 -1
  22. package/esm/backend/workspace/exportTemplates.js +16 -7
  23. package/esm/backend/workspace/genAI/ChatConversations.js +4 -2
  24. package/esm/backend/workspace/genAI/ChatThread.js +4 -2
  25. package/esm/backend/workspace/settings/index.d.ts.map +1 -1
  26. package/esm/backend/workspace/settings/index.js +24 -9
  27. package/esm/convertors/fromBackend/AutomationConverter.d.ts.map +1 -1
  28. package/esm/convertors/fromBackend/AutomationConverter.js +9 -10
  29. package/esm/convertors/fromBackend/ExportTemplatesConverter.d.ts +14 -7
  30. package/esm/convertors/fromBackend/ExportTemplatesConverter.d.ts.map +1 -1
  31. package/esm/convertors/fromBackend/ExportTemplatesConverter.js +9 -5
  32. package/package.json +11 -11
@@ -1,4 +1,4 @@
1
- export declare const LIB_VERSION = "11.48.0-alpha.1";
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.1";
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":"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"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
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
- this.clients.forEach((client) => this.initializeClient(client));
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,CAwyB9E"}
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":"AAWA,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,mCASvB;IAEK,iBAAiB,4CAYtB;IAEK,oBAAoB,oEAkBzB;IAEK,mBAAmB,0FAsBxB;IAEK,oBAAoB,iCAKzB;CACL"}
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
- return this.authCall(async (client) => {
13
- const response = await ExportTemplatesApi_GetAllEntitiesExportTemplates(client.axios, client.basePath, {});
14
- return response.data.data.map((item) => convertExportTemplate(item.id, item.attributes));
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.id, response.data.data.attributes);
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.id, response.data.data.attributes);
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.id, response.data.data.attributes);
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":"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"}
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) => ActionsApi_ResolveAllSettingsWithoutWorkspace(client.axios, client.basePath, {
131
- excludeUserSettings: true,
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
- return this.authCall((client) => EntitiesApi_UpdateEntityOrganizationSettings(client.axios, client.basePath, {
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
- return this.authCall((client) => EntitiesApi_CreateEntityOrganizationSettings(client.axios, client.basePath, {
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
- for (const setting of settings.data.data) {
177
- await this.authCall((client) => EntitiesApi_DeleteEntityOrganizationSettings(client.axios, client.basePath, {
178
- id: setting.id,
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":"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"}
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;AAGhG,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,CAyB1D;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,CAkBtG;IAED,UAAyB,aAAa,CAAC,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAiBtG;IAED,UAAyB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAWlF;CACJ"}
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
- const { data } = await ActionsApi_ResolveAllSettingsWithoutWorkspace(client.axios, client.basePath, {});
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
- return this.authCall(async (client) => {
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
- return this.authCall(async (client) => {
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
- for (const setting of settings.data.data) {
85
- await this.authCall(async (client) => {
86
- const profile = await ProfileApi_GetCurrent(client.axios);
87
- return EntitiesApi_DeleteEntityUserSettings(client.axios, client.basePath, {
88
- userId: profile.userId,
89
- id: setting.id,
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,EAK5B,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;AAsD3E,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,CAwDlE;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"}
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":"AAWA,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,mCASvB;IAEK,iBAAiB,4CAatB;IAEK,oBAAoB,oEAmBzB;IAEK,mBAAmB,0FAuBxB;IAEK,oBAAoB,iCAQzB;CACL"}
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
- return this.authCall(async (client) => {
15
- const response = await EntitiesApi_GetAllEntitiesWorkspaceExportTemplates(client.axios, client.basePath, { workspaceId: this.workspace });
16
- return response.data.data.map((item) => convertExportTemplate(item.id, item.attributes));
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.id, response.data.data.attributes);
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.id, response.data.data.attributes);
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.id, response.data.data.attributes);
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.visualizationRefs
463
+ ...(w.visualizations
464
464
  ? {
465
- visualizationIds: w.visualizationRefs.map(objRefToString),
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.visualizationRefs
476
+ ...(w.visualizations
477
477
  ? {
478
- visualizationIds: w.visualizationRefs.map(objRefToString),
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":"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"}
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
- return this.authCall(async (client) => EntitiesApi_UpdateEntityWorkspaceSettings(client.axios, client.basePath, {
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
- return this.authCall(async (client) => EntitiesApi_CreateEntityWorkspaceSettings(client.axios, client.basePath, {
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
- for (const setting of settings.data.data) {
213
- await this.authCall(async (client) => EntitiesApi_DeleteEntityWorkspaceSettings(client.axios, client.basePath, {
214
- workspaceId: this.workspace,
215
- objectId: setting.id,
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;AAkBF,eAAO,MAAM,YAAY,sMAoGxB,CAAC;AA0CF;;;;;;;GAOG;AACH,wBAAgB,yCAAyC,CACrD,MAAM,EAAE,OAAO,EACf,uBAAuB,EAAE,MAAM,GAChC,iBAAiB,GAAG,SAAS,CAgG/B"}
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
- * Rows whose stringified value does not parse to a finite number are dropped the toBackend
161
- * converter invariants on finite values, so passing them through would break the next save.
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
- const result = [];
165
- for (const item of items) {
165
+ return items.map((item) => {
166
166
  const value = Number(item.value);
167
- if (!Number.isFinite(value)) {
168
- continue;
169
- }
170
- result.push({ ref: idRef(item.parameter.identifier.id, "parameter"), value });
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 the JSON:API export template attributes. Organization- and workspace-level
4
- * export template entities share the same attribute shape, so a single converter handles both.
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 IExportTemplateOutAttributes {
9
- name: string;
10
- dashboardSlidesTemplate?: IExportTemplateDashboardSlides | null;
11
- widgetSlidesTemplate?: IExportTemplateWidgetSlides | null;
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(id: string, attributes: IExportTemplateOutAttributes): IExportTemplate;
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;AAE7B;;;;;GAKG;AACH,UAAU,4BAA4B;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB,CAAC,EAAE,8BAA8B,GAAG,IAAI,CAAC;IAChE,oBAAoB,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;CAC7D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,4BAA4B,GAAG,eAAe,CAO3G"}
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(id, attributes) {
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.1",
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.1",
37
- "@gooddata/sdk-backend-base": "11.48.0-alpha.1",
38
- "@gooddata/sdk-backend-spi": "11.48.0-alpha.1",
39
- "@gooddata/sdk-model": "11.48.0-alpha.1",
40
- "@gooddata/sdk-code-convertors": "11.48.0-alpha.1",
41
- "@gooddata/util": "11.48.0-alpha.1"
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.1",
69
- "@gooddata/oxlint-config": "11.48.0-alpha.1",
70
- "@gooddata/eslint-config": "11.48.0-alpha.1",
71
- "@gooddata/reference-workspace": "11.48.0-alpha.1"
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",