@gooddata/sdk-backend-base 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.
@@ -221,15 +221,22 @@ export type CachingConfiguration = {
221
221
  */
222
222
  maxInsightsPerWorkspace?: number;
223
223
  /**
224
- * Maximum number of organizations for which to cache export templates.
225
- * Export templates are organization-level, so typically a single entry suffices.
224
+ * Maximum number of organizations for which to cache organization-level export templates.
225
+ * Organization export templates are organization-level, so typically a single entry suffices.
226
226
  *
227
227
  * When non-positive number is specified, then no caching will be done.
228
228
  */
229
229
  maxExportTemplatesOrgs?: number;
230
230
  /**
231
- * @deprecated Use {@link CachingConfiguration.maxExportTemplatesOrgs} instead.
232
- * Export templates are organization-scoped, not workspace-scoped.
231
+ * Maximum number of workspaces for which to cache workspace-level export templates.
232
+ *
233
+ * When limit is reached, cache entries will be evicted using LRU policy.
234
+ *
235
+ * When non-positive number is specified, then no caching will be done.
236
+ *
237
+ * For backward compatibility this value is also used as a fallback for
238
+ * {@link CachingConfiguration.maxExportTemplatesOrgs} when the latter is unset — it used to be
239
+ * the deprecated alias that sized the organization export-templates cache.
233
240
  */
234
241
  maxExportTemplatesWorkspaces?: number;
235
242
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cachingBackend/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAGH,KAAK,kBAAkB,EA0C1B,MAAM,2BAA2B,CAAC;AAkgEnC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACvB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,IAAI,CAAC;IAE5B;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAElC;;OAEG;IACH,eAAe,EAAE,MAAM,IAAI,CAAC;IAE5B;;OAEG;IACH,sBAAsB,EAAE,MAAM,IAAI,CAAC;IAEnC;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,oBAAoB,EAAE,MAAM,IAAI,CAAC;IAEjC;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;;;OASG;IACH,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAExC;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,CAAC;IAEpD;;;;;;;;;;;OAWG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC;;;;;;;;;;OAUG;IACH,6BAA6B,CAAC,EAAE,MAAM,CAAC;IAEvC;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;;;;;;;OAWG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;;;;;;;;;;;;OAaG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAEtC;;;;;;;;;;;OAWG;IACH,oCAAoC,CAAC,EAAE,MAAM,CAAC;IAE9C;;;;;;;;;;;OAWG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;;;;;;;;;;;;OAaG;IACH,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAEhD;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AASF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,EAAE,oBAkB7C,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACvB,WAAW,EAAE,kBAAkB,EAC/B,MAAM,EAAE,oBAAoB,GAC7B,kBAAkB,CAqFpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cachingBackend/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAGH,KAAK,kBAAkB,EA2C1B,MAAM,2BAA2B,CAAC;AAklEnC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACvB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,IAAI,CAAC;IAE5B;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAElC;;OAEG;IACH,eAAe,EAAE,MAAM,IAAI,CAAC;IAE5B;;OAEG;IACH,sBAAsB,EAAE,MAAM,IAAI,CAAC;IAEnC;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,oBAAoB,EAAE,MAAM,IAAI,CAAC;IAEjC;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;;;OASG;IACH,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAExC;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,CAAC;IAEpD;;;;;;;;;;;OAWG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC;;;;;;;;;;OAUG;IACH,6BAA6B,CAAC,EAAE,MAAM,CAAC;IAEvC;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;;;;;;;OAWG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;;;;;;;;;;;;OAaG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAEtC;;;;;;;;;;;OAWG;IACH,oCAAoC,CAAC,EAAE,MAAM,CAAC;IAE9C;;;;;;;;;;;OAWG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;;;;;;;;;;;;OAaG;IACH,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAEhD;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AASF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,EAAE,oBAmB7C,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACvB,WAAW,EAAE,kBAAkB,EAC/B,MAAM,EAAE,oBAAoB,GAC7B,kBAAkB,CA+FpB"}
@@ -15,6 +15,7 @@ import { decoratedBackend } from "../decoratedBackend/index.js";
15
15
  import { DecoratedWorkspaceInsightsService } from "../decoratedBackend/insights.js";
16
16
  import { DecoratedOrganizationExportTemplatesService } from "../decoratedBackend/organizationExportTemplates.js";
17
17
  import { DecoratedSecuritySettingsService } from "../decoratedBackend/securitySettings.js";
18
+ import { DecoratedWorkspaceExportTemplatesService } from "../decoratedBackend/workspaceExportTemplates.js";
18
19
  import { DecoratedWorkspaceSettingsService } from "../decoratedBackend/workspaceSettings.js";
19
20
  import { mergeBbox } from "../toolkit/geoItems.js";
20
21
  //
@@ -1277,7 +1278,11 @@ class WithOrganizationExportTemplatesCaching extends DecoratedOrganizationExport
1277
1278
  const result = cache.get(key);
1278
1279
  if (!result) {
1279
1280
  const promise = super.getExportTemplates().catch((e) => {
1280
- cache.delete(key);
1281
+ // Only evict our own failed promise — a newer in-flight request may already own the
1282
+ // key (after invalidation or LRU eviction) and must not be dropped.
1283
+ if (cache.get(key) === promise) {
1284
+ cache.delete(key);
1285
+ }
1281
1286
  throw e;
1282
1287
  });
1283
1288
  cache.set(key, promise);
@@ -1307,6 +1312,61 @@ function cachedOrganizationExportTemplates(ctx) {
1307
1312
  return (original, organizationId) => new WithOrganizationExportTemplatesCaching(original, ctx, organizationId);
1308
1313
  }
1309
1314
  //
1315
+ // WORKSPACE EXPORT TEMPLATES CACHING
1316
+ //
1317
+ class WithWorkspaceExportTemplatesCaching extends DecoratedWorkspaceExportTemplatesService {
1318
+ ctx;
1319
+ workspace;
1320
+ constructor(decorated, ctx, workspace) {
1321
+ super(decorated);
1322
+ this.ctx = ctx;
1323
+ this.workspace = workspace;
1324
+ }
1325
+ getExportTemplates() {
1326
+ const cache = this.ctx.caches.workspaceExportTemplates;
1327
+ const key = this.workspace;
1328
+ const result = cache.get(key);
1329
+ if (!result) {
1330
+ const promise = super.getExportTemplates().catch((e) => {
1331
+ // Only evict our own failed promise — a newer in-flight request may already own the
1332
+ // key (after invalidation or LRU eviction) and must not be dropped.
1333
+ if (cache.get(key) === promise) {
1334
+ cache.delete(key);
1335
+ }
1336
+ throw e;
1337
+ });
1338
+ cache.set(key, promise);
1339
+ return promise;
1340
+ }
1341
+ return result;
1342
+ }
1343
+ // oxlint-disable-next-line sonarjs/no-identical-functions -- intentionally mirrors the org-scope caching decorator
1344
+ async createExportTemplate(template) {
1345
+ const result = await super.createExportTemplate(template);
1346
+ this.invalidateCache();
1347
+ return result;
1348
+ }
1349
+ // oxlint-disable-next-line sonarjs/no-identical-functions -- intentionally mirrors the org-scope caching decorator
1350
+ async patchExportTemplate(ref, template) {
1351
+ const result = await super.patchExportTemplate(ref, template);
1352
+ this.invalidateCache();
1353
+ return result;
1354
+ }
1355
+ async deleteExportTemplate(ref) {
1356
+ await super.deleteExportTemplate(ref);
1357
+ this.invalidateCache();
1358
+ }
1359
+ invalidateCache() {
1360
+ // Clear every workspace entry, not just this.workspace: a workspace template list can include
1361
+ // templates inherited from a parent workspace, so a write here (or in a parent) can affect the
1362
+ // cached lists of descendant workspaces too. Writes are rare, so over-invalidating is cheap.
1363
+ this.ctx.caches.workspaceExportTemplates?.clear();
1364
+ }
1365
+ }
1366
+ function cachedWorkspaceExportTemplates(ctx) {
1367
+ return (original, workspace) => new WithWorkspaceExportTemplatesCaching(original, ctx, workspace);
1368
+ }
1369
+ //
1310
1370
  //
1311
1371
  //
1312
1372
  function collectionItemsFilterKey(config) {
@@ -1448,6 +1508,7 @@ function cacheControl(ctx) {
1448
1508
  },
1449
1509
  resetExportTemplates: () => {
1450
1510
  ctx.caches.organizationExportTemplates?.clear();
1511
+ ctx.caches.workspaceExportTemplates?.clear();
1451
1512
  },
1452
1513
  resetInsights: () => {
1453
1514
  ctx.caches.workspaceInsights?.clear();
@@ -1493,6 +1554,7 @@ export const RecommendedCachingConfiguration = {
1493
1554
  maxAutomationsWorkspaces: 1,
1494
1555
  maxInsightsPerWorkspace: 50,
1495
1556
  maxExportTemplatesOrgs: 1,
1557
+ maxExportTemplatesWorkspaces: 1,
1496
1558
  cacheGeoStyles: true,
1497
1559
  };
1498
1560
  /**
@@ -1518,9 +1580,12 @@ export function withCaching(realBackend, config) {
1518
1580
  const workspaceSettingsCaching = cachingEnabled(config.maxWorkspaceSettings);
1519
1581
  const automationsCaching = cachingEnabled(config.maxAutomationsWorkspaces);
1520
1582
  const insightsCaching = cachingEnabled(config.maxInsightsPerWorkspace);
1521
- // Accept both the new and deprecated config names for backward compatibility
1522
- const exportTemplatesMaxOrgs = config.maxExportTemplatesOrgs ?? config.maxExportTemplatesWorkspaces;
1523
- const exportTemplatesCaching = cachingEnabled(exportTemplatesMaxOrgs);
1583
+ // Backward compatibility: `maxExportTemplatesWorkspaces` used to be the (deprecated) alias that
1584
+ // sized the org export-templates cache. It now primarily drives workspace caching, but callers
1585
+ // that only set the old name must keep getting org caching until the alias is removed.
1586
+ const orgExportTemplatesMax = config.maxExportTemplatesOrgs ?? config.maxExportTemplatesWorkspaces;
1587
+ const exportTemplatesCaching = cachingEnabled(orgExportTemplatesMax);
1588
+ const workspaceExportTemplatesCaching = cachingEnabled(config.maxExportTemplatesWorkspaces);
1524
1589
  const geoCaching = config.cacheGeoStyles === true;
1525
1590
  // Determine execution cache configuration: count-based (maxExecutions) takes precedence over time-based (maxExecutionsAge)
1526
1591
  const executionCacheOptions = cachingEnabled(config.maxExecutions)
@@ -1546,7 +1611,10 @@ export function withCaching(realBackend, config) {
1546
1611
  ? new LRUCache({ max: config.maxInsightsPerWorkspace })
1547
1612
  : undefined,
1548
1613
  organizationExportTemplates: exportTemplatesCaching
1549
- ? new LRUCache({ max: exportTemplatesMaxOrgs })
1614
+ ? new LRUCache({ max: orgExportTemplatesMax })
1615
+ : undefined,
1616
+ workspaceExportTemplates: workspaceExportTemplatesCaching
1617
+ ? new LRUCache({ max: config.maxExportTemplatesWorkspaces })
1550
1618
  : undefined,
1551
1619
  geo: geoCaching
1552
1620
  ? {
@@ -1567,6 +1635,9 @@ export function withCaching(realBackend, config) {
1567
1635
  const organizationExportTemplates = exportTemplatesCaching
1568
1636
  ? cachedOrganizationExportTemplates(ctx)
1569
1637
  : undefined;
1638
+ const workspaceExportTemplates = workspaceExportTemplatesCaching
1639
+ ? cachedWorkspaceExportTemplates(ctx)
1640
+ : undefined;
1570
1641
  const workspaceSettings = workspaceSettingsCaching ? cachedWorkspaceSettings(ctx) : (v) => v;
1571
1642
  const geo = geoCaching ? cachedGeo(ctx) : undefined;
1572
1643
  if (config.onCacheReady) {
@@ -1581,6 +1652,7 @@ export function withCaching(realBackend, config) {
1581
1652
  automations,
1582
1653
  insights,
1583
1654
  organizationExportTemplates,
1655
+ workspaceExportTemplates,
1584
1656
  geo,
1585
1657
  });
1586
1658
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analyticalWorkspace.d.ts","sourceRoot":"","sources":["../../src/decoratedBackend/analyticalWorkspace.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,4BAA6B,YAAW,oBAAoB;IAC9D,SAAS,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAE/C,YAAY,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAE,kBAAkB,EAIzE;IAEM,aAAa,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAEnF;IAEM,gBAAgB,CAAC,UAAU,EAAE,0BAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAE7F;IAEM,kBAAkB,IAAI,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAErE;IAEM,UAAU,IAAI,2BAA2B,CAQ/C;IAEM,SAAS,IAAI,iBAAiB,CAQpC;IAEM,OAAO,IAAI,wBAAwB,CAQzC;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,QAAQ,IAAI,yBAAyB,CAE3C;IAEM,UAAU,IAAI,2BAA2B,CAE/C;IAEM,KAAK,IAAI,sBAAsB,CAErC;IAEM,QAAQ,IAAI,yBAAyB,CAQ3C;IAEM,UAAU,IAAI,2BAA2B,CAQ/C;IAEM,QAAQ,IAAI,yBAAyB,CAQ3C;IAEM,OAAO,IAAI,wBAAwB,CAEzC;IAEM,QAAQ,IAAI,yBAAyB,CAE3C;IAEM,WAAW,IAAI,4BAA4B,CAEjD;IAEM,KAAK,IAAI,oBAAoB,CAEnC;IAEM,iBAAiB,IAAI,uBAAuB,CAElD;IAEM,UAAU,IAAI,yBAAyB,CAE7C;IAEM,aAAa,IAAI,8BAA8B,CAErD;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,oBAAoB,IAAI,4BAA4B,CAE1D;IAEM,MAAM,IAAI,uBAAuB,CAEvC;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,WAAW,IAAI,mBAAmB,CAExC;IAEM,YAAY,IAAI,6BAA6B,CAEnD;IAEM,WAAW,IAAI,2BAA2B,CAQhD;IAEM,KAAK,IAAI,aAAa,CAE5B;IAEM,UAAU,IAAI,kBAAkB,CAEtC;IAEM,eAAe,IAAI,gCAAgC,CAEzD;CACJ"}
1
+ {"version":3,"file":"analyticalWorkspace.d.ts","sourceRoot":"","sources":["../../src/decoratedBackend/analyticalWorkspace.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,4BAA6B,YAAW,oBAAoB;IAC9D,SAAS,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAE/C,YAAY,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAE,kBAAkB,EAIzE;IAEM,aAAa,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAEnF;IAEM,gBAAgB,CAAC,UAAU,EAAE,0BAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAE7F;IAEM,kBAAkB,IAAI,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAErE;IAEM,UAAU,IAAI,2BAA2B,CAQ/C;IAEM,SAAS,IAAI,iBAAiB,CAQpC;IAEM,OAAO,IAAI,wBAAwB,CAQzC;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,QAAQ,IAAI,yBAAyB,CAE3C;IAEM,UAAU,IAAI,2BAA2B,CAE/C;IAEM,KAAK,IAAI,sBAAsB,CAErC;IAEM,QAAQ,IAAI,yBAAyB,CAQ3C;IAEM,UAAU,IAAI,2BAA2B,CAQ/C;IAEM,QAAQ,IAAI,yBAAyB,CAQ3C;IAEM,OAAO,IAAI,wBAAwB,CAEzC;IAEM,QAAQ,IAAI,yBAAyB,CAE3C;IAEM,WAAW,IAAI,4BAA4B,CAEjD;IAEM,KAAK,IAAI,oBAAoB,CAEnC;IAEM,iBAAiB,IAAI,uBAAuB,CAElD;IAEM,UAAU,IAAI,yBAAyB,CAE7C;IAEM,aAAa,IAAI,8BAA8B,CAErD;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,oBAAoB,IAAI,4BAA4B,CAE1D;IAEM,MAAM,IAAI,uBAAuB,CAEvC;IAEM,iBAAiB,IAAI,kCAAkC,CAE7D;IAEM,WAAW,IAAI,mBAAmB,CAExC;IAEM,YAAY,IAAI,6BAA6B,CAEnD;IAEM,WAAW,IAAI,2BAA2B,CAQhD;IAEM,KAAK,IAAI,aAAa,CAE5B;IAEM,UAAU,IAAI,kBAAkB,CAEtC;IAEM,eAAe,IAAI,gCAAgC,CAQzD;CACJ"}
@@ -124,6 +124,10 @@ export class AnalyticalWorkspaceDecorator {
124
124
  return this.decorated.references();
125
125
  }
126
126
  exportTemplates() {
127
+ const { workspaceExportTemplates } = this.factories;
128
+ if (workspaceExportTemplates) {
129
+ return workspaceExportTemplates(this.decorated.exportTemplates(), this.workspace);
130
+ }
127
131
  return this.decorated.exportTemplates();
128
132
  }
129
133
  }
@@ -1,4 +1,4 @@
1
- import { type IExecutionFactory, type IGeoService, type IOrganizationExportTemplatesService, type ISecuritySettingsService, type IWorkspaceAttributesService, type IWorkspaceAutomationService, type IWorkspaceCatalogFactory, type IWorkspaceDashboardsService, type IWorkspaceInsightsService, type IWorkspaceSettingsService } from "@gooddata/sdk-backend-spi";
1
+ import { type IExecutionFactory, type IGeoService, type IOrganizationExportTemplatesService, type ISecuritySettingsService, type IWorkspaceAttributesService, type IWorkspaceAutomationService, type IWorkspaceCatalogFactory, type IWorkspaceDashboardsService, type IWorkspaceExportTemplatesService, type IWorkspaceInsightsService, type IWorkspaceSettingsService } from "@gooddata/sdk-backend-spi";
2
2
  /**
3
3
  * @alpha
4
4
  */
@@ -39,6 +39,10 @@ export type GeoDecoratorFactory = (geo: IGeoService) => IGeoService;
39
39
  * @alpha
40
40
  */
41
41
  export type OrganizationExportTemplatesDecoratorFactory = (exportTemplates: IOrganizationExportTemplatesService, organizationId: string) => IOrganizationExportTemplatesService;
42
+ /**
43
+ * @alpha
44
+ */
45
+ export type WorkspaceExportTemplatesDecoratorFactory = (exportTemplates: IWorkspaceExportTemplatesService, workspace: string) => IWorkspaceExportTemplatesService;
42
46
  /**
43
47
  * Provides factory functions for the different decorators (currently only supports execution
44
48
  * decorator). Input to each factory function is the original implementation from the wrapped backend, output
@@ -57,5 +61,6 @@ export type DecoratorFactories = {
57
61
  dashboards?: DashboardsDecoratorFactory;
58
62
  geo?: GeoDecoratorFactory;
59
63
  organizationExportTemplates?: OrganizationExportTemplatesDecoratorFactory;
64
+ workspaceExportTemplates?: WorkspaceExportTemplatesDecoratorFactory;
60
65
  };
61
66
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/decoratedBackend/types.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,mCAAmC,EACxC,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EACjC,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,gBAAgB,EAAE,iBAAiB,KAAK,iBAAiB,CAAC;AAEnG;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,wBAAwB,KAAK,wBAAwB,CAAC;AAEtG;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG,CAC3C,gBAAgB,EAAE,wBAAwB,KACzC,wBAAwB,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,iCAAiC,GAAG,CAC5C,QAAQ,EAAE,yBAAyB,EACnC,SAAS,EAAE,MAAM,KAChB,yBAAyB,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CACrC,UAAU,EAAE,2BAA2B,EACvC,SAAS,EAAE,MAAM,KAChB,2BAA2B,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,CACtC,WAAW,EAAE,2BAA2B,EACxC,SAAS,EAAE,MAAM,KAChB,2BAA2B,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CACrC,UAAU,EAAE,2BAA2B,EACvC,SAAS,EAAE,MAAM,KAChB,2BAA2B,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACnC,QAAQ,EAAE,yBAAyB,EACnC,SAAS,EAAE,MAAM,KAChB,yBAAyB,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,WAAW,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,2CAA2C,GAAG,CACtD,eAAe,EAAE,mCAAmC,EACpD,cAAc,EAAE,MAAM,KACrB,mCAAmC,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,gBAAgB,CAAC,EAAE,gCAAgC,CAAC;IACpD,iBAAiB,CAAC,EAAE,iCAAiC,CAAC;IACtD,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,2BAA2B,CAAC,EAAE,2CAA2C,CAAC;CAC7E,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/decoratedBackend/types.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,mCAAmC,EACxC,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACrC,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EACjC,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,gBAAgB,EAAE,iBAAiB,KAAK,iBAAiB,CAAC;AAEnG;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,wBAAwB,KAAK,wBAAwB,CAAC;AAEtG;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG,CAC3C,gBAAgB,EAAE,wBAAwB,KACzC,wBAAwB,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,iCAAiC,GAAG,CAC5C,QAAQ,EAAE,yBAAyB,EACnC,SAAS,EAAE,MAAM,KAChB,yBAAyB,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CACrC,UAAU,EAAE,2BAA2B,EACvC,SAAS,EAAE,MAAM,KAChB,2BAA2B,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,CACtC,WAAW,EAAE,2BAA2B,EACxC,SAAS,EAAE,MAAM,KAChB,2BAA2B,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CACrC,UAAU,EAAE,2BAA2B,EACvC,SAAS,EAAE,MAAM,KAChB,2BAA2B,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACnC,QAAQ,EAAE,yBAAyB,EACnC,SAAS,EAAE,MAAM,KAChB,yBAAyB,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,WAAW,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,2CAA2C,GAAG,CACtD,eAAe,EAAE,mCAAmC,EACpD,cAAc,EAAE,MAAM,KACrB,mCAAmC,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,wCAAwC,GAAG,CACnD,eAAe,EAAE,gCAAgC,EACjD,SAAS,EAAE,MAAM,KAChB,gCAAgC,CAAC;AAEtC;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,gBAAgB,CAAC,EAAE,gCAAgC,CAAC;IACpD,iBAAiB,CAAC,EAAE,iCAAiC,CAAC;IACtD,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,2BAA2B,CAAC,EAAE,2CAA2C,CAAC;IAC1E,wBAAwB,CAAC,EAAE,wCAAwC,CAAC;CACvE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type IWorkspaceExportTemplatesService } from "@gooddata/sdk-backend-spi";
2
+ import { type IExportTemplate, type IExportTemplateDefinition, type ObjRef } from "@gooddata/sdk-model";
3
+ /**
4
+ * @alpha
5
+ */
6
+ export declare abstract class DecoratedWorkspaceExportTemplatesService implements IWorkspaceExportTemplatesService {
7
+ protected readonly decorated: IWorkspaceExportTemplatesService;
8
+ protected constructor(decorated: IWorkspaceExportTemplatesService);
9
+ getExportTemplates(): Promise<IExportTemplate[]>;
10
+ getExportTemplate(ref: ObjRef): Promise<IExportTemplate>;
11
+ createExportTemplate(template: IExportTemplateDefinition): Promise<IExportTemplate>;
12
+ patchExportTemplate(ref: ObjRef, template: Partial<IExportTemplateDefinition>): Promise<IExportTemplate>;
13
+ deleteExportTemplate(ref: ObjRef): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=workspaceExportTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceExportTemplates.d.ts","sourceRoot":"","sources":["../../src/decoratedBackend/workspaceExportTemplates.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,yBAAyB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAExG;;GAEG;AACH,8BAAsB,wCAAyC,YAAW,gCAAgC;IAChF,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gCAAgC;IAApF,SAAS,aAAgC,SAAS,EAAE,gCAAgC,EAAI;IAEjF,kBAAkB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAEtD;IAEM,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAE9D;IAEM,oBAAoB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC,CAEzF;IAEM,mBAAmB,CACtB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAC7C,OAAO,CAAC,eAAe,CAAC,CAE1B;IAEM,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtD;CACJ"}
@@ -0,0 +1,25 @@
1
+ // (C) 2026 GoodData Corporation
2
+ /**
3
+ * @alpha
4
+ */
5
+ export class DecoratedWorkspaceExportTemplatesService {
6
+ decorated;
7
+ constructor(decorated) {
8
+ this.decorated = decorated;
9
+ }
10
+ getExportTemplates() {
11
+ return this.decorated.getExportTemplates();
12
+ }
13
+ getExportTemplate(ref) {
14
+ return this.decorated.getExportTemplate(ref);
15
+ }
16
+ createExportTemplate(template) {
17
+ return this.decorated.createExportTemplate(template);
18
+ }
19
+ patchExportTemplate(ref, template) {
20
+ return this.decorated.patchExportTemplate(ref, template);
21
+ }
22
+ deleteExportTemplate(ref) {
23
+ return this.decorated.deleteExportTemplate(ref);
24
+ }
25
+ }
package/esm/index.d.ts CHANGED
@@ -12,13 +12,14 @@ export { type DummyBackendConfig, dummyBackend, dummyBackendEmptyData, dummyData
12
12
  export { DummySemanticSearchQueryBuilder } from "./dummyBackend/DummySemanticSearch.js";
13
13
  export { DummyGenAIChatThread, DummyChatConversations } from "./dummyBackend/DummyGenAIChatThread.js";
14
14
  export { decoratedBackend } from "./decoratedBackend/index.js";
15
- export type { DecoratorFactories, CatalogDecoratorFactory, ExecutionDecoratorFactory, SecuritySettingsDecoratorFactory, WorkspaceSettingsDecoratorFactory, AutomationsDecoratorFactory, AttributesDecoratorFactory, InsightsDecoratorFactory, DashboardsDecoratorFactory, GeoDecoratorFactory, OrganizationExportTemplatesDecoratorFactory, } from "./decoratedBackend/types.js";
15
+ export type { DecoratorFactories, CatalogDecoratorFactory, ExecutionDecoratorFactory, SecuritySettingsDecoratorFactory, WorkspaceSettingsDecoratorFactory, AutomationsDecoratorFactory, AttributesDecoratorFactory, InsightsDecoratorFactory, DashboardsDecoratorFactory, GeoDecoratorFactory, OrganizationExportTemplatesDecoratorFactory, WorkspaceExportTemplatesDecoratorFactory, } from "./decoratedBackend/types.js";
16
16
  export { type PreparedExecutionWrapper, DecoratedExecutionFactory, DecoratedPreparedExecution, DecoratedExecutionResult, } from "./decoratedBackend/execution.js";
17
17
  export { DecoratedWorkspaceDashboardsService } from "./decoratedBackend/dashboards.js";
18
18
  export { DecoratedWorkspaceInsightsService } from "./decoratedBackend/insights.js";
19
19
  export { type WorkspaceCatalogWrapper, DecoratedWorkspaceCatalogFactory, DecoratedWorkspaceCatalog, } from "./decoratedBackend/catalog.js";
20
20
  export { DecoratedSecuritySettingsService } from "./decoratedBackend/securitySettings.js";
21
21
  export { DecoratedOrganizationExportTemplatesService } from "./decoratedBackend/organizationExportTemplates.js";
22
+ export { DecoratedWorkspaceExportTemplatesService } from "./decoratedBackend/workspaceExportTemplates.js";
22
23
  export { DecoratedWorkspaceSettingsService } from "./decoratedBackend/workspaceSettings.js";
23
24
  export { type AnalyticalBackendCallbacks, withEventing } from "./eventingBackend/index.js";
24
25
  export { type CachingConfiguration, type CacheControl, withCaching, RecommendedCachingConfiguration, } from "./cachingBackend/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/esm/index.js CHANGED
@@ -20,6 +20,7 @@ export { DecoratedWorkspaceInsightsService } from "./decoratedBackend/insights.j
20
20
  export { DecoratedWorkspaceCatalogFactory, DecoratedWorkspaceCatalog, } from "./decoratedBackend/catalog.js";
21
21
  export { DecoratedSecuritySettingsService } from "./decoratedBackend/securitySettings.js";
22
22
  export { DecoratedOrganizationExportTemplatesService } from "./decoratedBackend/organizationExportTemplates.js";
23
+ export { DecoratedWorkspaceExportTemplatesService } from "./decoratedBackend/workspaceExportTemplates.js";
23
24
  export { DecoratedWorkspaceSettingsService } from "./decoratedBackend/workspaceSettings.js";
24
25
  export { withEventing } from "./eventingBackend/index.js";
25
26
  export { withCaching, RecommendedCachingConfiguration, } from "./cachingBackend/index.js";
@@ -167,6 +167,7 @@ import { IWorkspaceCatalogAvailableItemsFactory } from '@gooddata/sdk-backend-sp
167
167
  import { IWorkspaceCatalogFactory } from '@gooddata/sdk-backend-spi';
168
168
  import { IWorkspaceCatalogFactoryOptions } from '@gooddata/sdk-backend-spi';
169
169
  import { IWorkspaceDashboardsService } from '@gooddata/sdk-backend-spi';
170
+ import { IWorkspaceExportTemplatesService } from '@gooddata/sdk-backend-spi';
170
171
  import { IWorkspaceInsightsService } from '@gooddata/sdk-backend-spi';
171
172
  import { IWorkspaceSettings } from '@gooddata/sdk-backend-spi';
172
173
  import { IWorkspaceSettingsService } from '@gooddata/sdk-backend-spi';
@@ -651,15 +652,22 @@ export declare type CachingConfiguration = {
651
652
  */
652
653
  maxInsightsPerWorkspace?: number;
653
654
  /**
654
- * Maximum number of organizations for which to cache export templates.
655
- * Export templates are organization-level, so typically a single entry suffices.
655
+ * Maximum number of organizations for which to cache organization-level export templates.
656
+ * Organization export templates are organization-level, so typically a single entry suffices.
656
657
  *
657
658
  * When non-positive number is specified, then no caching will be done.
658
659
  */
659
660
  maxExportTemplatesOrgs?: number;
660
661
  /**
661
- * @deprecated Use {@link CachingConfiguration.maxExportTemplatesOrgs} instead.
662
- * Export templates are organization-scoped, not workspace-scoped.
662
+ * Maximum number of workspaces for which to cache workspace-level export templates.
663
+ *
664
+ * When limit is reached, cache entries will be evicted using LRU policy.
665
+ *
666
+ * When non-positive number is specified, then no caching will be done.
667
+ *
668
+ * For backward compatibility this value is also used as a fallback for
669
+ * {@link CachingConfiguration.maxExportTemplatesOrgs} when the latter is unset — it used to be
670
+ * the deprecated alias that sized the organization export-templates cache.
663
671
  */
664
672
  maxExportTemplatesWorkspaces?: number;
665
673
  /**
@@ -1228,6 +1236,19 @@ export declare abstract class DecoratedWorkspaceDashboardsService implements IWo
1228
1236
  setFilterViewAsDefault(ref: ObjRef, isDefault: boolean): Promise<void>;
1229
1237
  }
1230
1238
 
1239
+ /**
1240
+ * @alpha
1241
+ */
1242
+ export declare abstract class DecoratedWorkspaceExportTemplatesService implements IWorkspaceExportTemplatesService {
1243
+ protected readonly decorated: IWorkspaceExportTemplatesService;
1244
+ protected constructor(decorated: IWorkspaceExportTemplatesService);
1245
+ getExportTemplates(): Promise<IExportTemplate[]>;
1246
+ getExportTemplate(ref: ObjRef): Promise<IExportTemplate>;
1247
+ createExportTemplate(template: IExportTemplateDefinition): Promise<IExportTemplate>;
1248
+ patchExportTemplate(ref: ObjRef, template: Partial<IExportTemplateDefinition>): Promise<IExportTemplate>;
1249
+ deleteExportTemplate(ref: ObjRef): Promise<void>;
1250
+ }
1251
+
1231
1252
  /**
1232
1253
  * Abstract base class for decorators of the {@link @gooddata/sdk-backend-spi#IWorkspaceInsightsService}.
1233
1254
  *
@@ -1322,6 +1343,7 @@ export declare type DecoratorFactories = {
1322
1343
  dashboards?: DashboardsDecoratorFactory;
1323
1344
  geo?: GeoDecoratorFactory;
1324
1345
  organizationExportTemplates?: OrganizationExportTemplatesDecoratorFactory;
1346
+ workspaceExportTemplates?: WorkspaceExportTemplatesDecoratorFactory;
1325
1347
  };
1326
1348
 
1327
1349
  /**
@@ -2391,6 +2413,11 @@ export declare function withNormalization(realBackend: IAnalyticalBackend, confi
2391
2413
  */
2392
2414
  export declare type WorkspaceCatalogWrapper = (catalog: IWorkspaceCatalog) => IWorkspaceCatalog;
2393
2415
 
2416
+ /**
2417
+ * @alpha
2418
+ */
2419
+ export declare type WorkspaceExportTemplatesDecoratorFactory = (exportTemplates: IWorkspaceExportTemplatesService, workspace: string) => IWorkspaceExportTemplatesService;
2420
+
2394
2421
  /**
2395
2422
  * @alpha
2396
2423
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-backend-base",
3
- "version": "11.48.0-alpha.1",
3
+ "version": "11.48.0-alpha.3",
4
4
  "description": "GoodData.UI SDK - Base for backend implementations",
5
5
  "license": "MIT",
6
6
  "author": "GoodData",
@@ -29,9 +29,9 @@
29
29
  "ts-invariant": "0.10.3",
30
30
  "tslib": "2.8.1",
31
31
  "uuid": "11.1.1",
32
- "@gooddata/sdk-backend-spi": "11.48.0-alpha.1",
33
- "@gooddata/sdk-model": "11.48.0-alpha.1",
34
- "@gooddata/util": "11.48.0-alpha.1"
32
+ "@gooddata/sdk-backend-spi": "11.48.0-alpha.3",
33
+ "@gooddata/sdk-model": "11.48.0-alpha.3",
34
+ "@gooddata/util": "11.48.0-alpha.3"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@microsoft/api-documenter": "^7.17.0",
@@ -56,9 +56,9 @@
56
56
  "oxlint-tsgolint": "0.15.0",
57
57
  "typescript": "5.9.3",
58
58
  "vitest": "4.1.8",
59
- "@gooddata/eslint-config": "11.48.0-alpha.1",
60
- "@gooddata/oxlint-config": "11.48.0-alpha.1",
61
- "@gooddata/reference-workspace": "11.48.0-alpha.1"
59
+ "@gooddata/eslint-config": "11.48.0-alpha.3",
60
+ "@gooddata/oxlint-config": "11.48.0-alpha.3",
61
+ "@gooddata/reference-workspace": "11.48.0-alpha.3"
62
62
  },
63
63
  "scripts": {
64
64
  "_phase:build": "npm run build",