@gooddata/sdk-backend-base 11.48.0-alpha.3 → 11.48.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/cachingBackend/index.d.ts +34 -0
- package/esm/cachingBackend/index.d.ts.map +1 -1
- package/esm/cachingBackend/index.js +94 -0
- package/esm/decoratedBackend/analyticalWorkspace.d.ts.map +1 -1
- package/esm/decoratedBackend/analyticalWorkspace.js +4 -0
- package/esm/decoratedBackend/facts.d.ts +16 -0
- package/esm/decoratedBackend/facts.d.ts.map +1 -0
- package/esm/decoratedBackend/facts.js +22 -0
- package/esm/decoratedBackend/types.d.ts +6 -1
- package/esm/decoratedBackend/types.d.ts.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/sdk-backend-base.d.ts +41 -0
- package/package.json +7 -7
|
@@ -25,6 +25,10 @@ export type CacheControl = {
|
|
|
25
25
|
* Resets all workspace attribute caches.
|
|
26
26
|
*/
|
|
27
27
|
resetAttributes: () => void;
|
|
28
|
+
/**
|
|
29
|
+
* Resets all workspace facts caches.
|
|
30
|
+
*/
|
|
31
|
+
resetFacts: () => void;
|
|
28
32
|
/**
|
|
29
33
|
* Resets all workspace settings caches.
|
|
30
34
|
*/
|
|
@@ -220,6 +224,36 @@ export type CachingConfiguration = {
|
|
|
220
224
|
* When non-positive number is specified, then no caching of insights will be done.
|
|
221
225
|
*/
|
|
222
226
|
maxInsightsPerWorkspace?: number;
|
|
227
|
+
/**
|
|
228
|
+
* Maximum number of workspaces for which to cache selected {@link @gooddata/sdk-backend-spi#IWorkspaceFactsService} calls.
|
|
229
|
+
* The workspace identifier is used as cache key.
|
|
230
|
+
* For each workspace, there will be a cache entry holding `maxFactsPerWorkspace` entries for fact-related calls.
|
|
231
|
+
*
|
|
232
|
+
* When limit is reached, cache entries will be evicted using LRU policy.
|
|
233
|
+
*
|
|
234
|
+
* When no maximum number is specified, the cache will be unbounded and no evictions will happen. Unbounded
|
|
235
|
+
* cache may be OK in applications where number of workspaces is small - the cache will be limited
|
|
236
|
+
* naturally and will not grow uncontrollably.
|
|
237
|
+
*
|
|
238
|
+
* When non-positive number is specified, then no caching will be done.
|
|
239
|
+
*/
|
|
240
|
+
maxFactsWorkspaces?: number;
|
|
241
|
+
/**
|
|
242
|
+
* Maximum number of facts to cache per workspace.
|
|
243
|
+
*
|
|
244
|
+
* This limit applies independently to the cache of facts (`getFact`) and the cache of fact dataset
|
|
245
|
+
* metadata (`getFactDatasetMeta`).
|
|
246
|
+
*
|
|
247
|
+
* When limit is reached, cache entries will be evicted using LRU policy.
|
|
248
|
+
*
|
|
249
|
+
* When no maximum number is specified, the cache will be unbounded and no evictions will happen. Unbounded
|
|
250
|
+
* facts cache may be OK in applications where number of facts is small and/or they are requested
|
|
251
|
+
* infrequently - the cache will be limited naturally and will not grow uncontrollably.
|
|
252
|
+
*
|
|
253
|
+
* Setting non-positive number here is invalid. If you want to turn off facts caching,
|
|
254
|
+
* tweak the `maxFactsWorkspaces` value.
|
|
255
|
+
*/
|
|
256
|
+
maxFactsPerWorkspace?: number;
|
|
223
257
|
/**
|
|
224
258
|
* Maximum number of organizations for which to cache organization-level export templates.
|
|
225
259
|
* Organization export templates are organization-level, so typically a single entry suffices.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cachingBackend/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAGH,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cachingBackend/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAGH,KAAK,kBAAkB,EA4C1B,MAAM,2BAA2B,CAAC;AA2sEnC;;;;;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,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;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;;;;;;;;;;;;OAYG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;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,oBAqB7C,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACvB,WAAW,EAAE,kBAAkB,EAC/B,MAAM,EAAE,oBAAoB,GAC7B,kBAAkB,CAmGpB"}
|
|
@@ -11,6 +11,7 @@ import { DecoratedAutomationsQuery, DecoratedWorkspaceAutomationsService, } from
|
|
|
11
11
|
import { DecoratedWorkspaceCatalogFactory } from "../decoratedBackend/catalog.js";
|
|
12
12
|
import { DecoratedElementsQuery, DecoratedElementsQueryFactory } from "../decoratedBackend/elements.js";
|
|
13
13
|
import { DecoratedDataView, DecoratedExecutionFactory, DecoratedExecutionResult, DecoratedPreparedExecution, } from "../decoratedBackend/execution.js";
|
|
14
|
+
import { DecoratedWorkspaceFactsService } from "../decoratedBackend/facts.js";
|
|
14
15
|
import { decoratedBackend } from "../decoratedBackend/index.js";
|
|
15
16
|
import { DecoratedWorkspaceInsightsService } from "../decoratedBackend/insights.js";
|
|
16
17
|
import { DecoratedOrganizationExportTemplatesService } from "../decoratedBackend/organizationExportTemplates.js";
|
|
@@ -1262,6 +1263,86 @@ function cachedInsights(ctx) {
|
|
|
1262
1263
|
return (original, workspace) => new WithInsightsCaching(original, ctx, workspace);
|
|
1263
1264
|
}
|
|
1264
1265
|
//
|
|
1266
|
+
// FACTS CACHING
|
|
1267
|
+
//
|
|
1268
|
+
function factsIncludeKeySuffix(opts) {
|
|
1269
|
+
return opts?.include?.length ? `:${opts.include.join(",")}` : "";
|
|
1270
|
+
}
|
|
1271
|
+
function getOrCreateFactsCache(ctx, workspace) {
|
|
1272
|
+
const cache = ctx.caches.workspaceFacts;
|
|
1273
|
+
let cacheEntry = cache.get(workspace);
|
|
1274
|
+
if (!cacheEntry) {
|
|
1275
|
+
cacheEntry = {
|
|
1276
|
+
facts: new LRUCache({
|
|
1277
|
+
max: ctx.config.maxFactsPerWorkspace,
|
|
1278
|
+
}),
|
|
1279
|
+
factDatasetsMeta: new LRUCache({
|
|
1280
|
+
max: ctx.config.maxFactsPerWorkspace,
|
|
1281
|
+
}),
|
|
1282
|
+
};
|
|
1283
|
+
cache.set(workspace, cacheEntry);
|
|
1284
|
+
}
|
|
1285
|
+
return cacheEntry;
|
|
1286
|
+
}
|
|
1287
|
+
class WithFactsCaching extends DecoratedWorkspaceFactsService {
|
|
1288
|
+
ctx;
|
|
1289
|
+
workspace;
|
|
1290
|
+
constructor(decorated, ctx, workspace) {
|
|
1291
|
+
super(decorated);
|
|
1292
|
+
this.ctx = ctx;
|
|
1293
|
+
this.workspace = workspace;
|
|
1294
|
+
}
|
|
1295
|
+
getFact = (ref, opts) => {
|
|
1296
|
+
const cache = getOrCreateFactsCache(this.ctx, this.workspace).facts;
|
|
1297
|
+
const suffix = factsIncludeKeySuffix(opts);
|
|
1298
|
+
const idCacheKey = isIdentifierRef(ref) ? `${ref.identifier}${suffix}` : undefined;
|
|
1299
|
+
const uriCacheKey = isUriRef(ref) ? `${ref.uri}${suffix}` : undefined;
|
|
1300
|
+
let cacheItem = firstDefined([idCacheKey, uriCacheKey].map((key) => key && cache.get(key)));
|
|
1301
|
+
if (!cacheItem) {
|
|
1302
|
+
cacheItem = super.getFact(ref, opts).catch((e) => {
|
|
1303
|
+
if (idCacheKey) {
|
|
1304
|
+
cache.delete(idCacheKey);
|
|
1305
|
+
}
|
|
1306
|
+
if (uriCacheKey) {
|
|
1307
|
+
cache.delete(uriCacheKey);
|
|
1308
|
+
}
|
|
1309
|
+
throw e;
|
|
1310
|
+
});
|
|
1311
|
+
if (idCacheKey) {
|
|
1312
|
+
cache.set(idCacheKey, cacheItem);
|
|
1313
|
+
}
|
|
1314
|
+
if (uriCacheKey) {
|
|
1315
|
+
cache.set(uriCacheKey, cacheItem);
|
|
1316
|
+
}
|
|
1317
|
+
}
|
|
1318
|
+
return cacheItem;
|
|
1319
|
+
};
|
|
1320
|
+
getFactDatasetMeta = (ref) => {
|
|
1321
|
+
const cache = getOrCreateFactsCache(this.ctx, this.workspace).factDatasetsMeta;
|
|
1322
|
+
const idCacheKey = isIdentifierRef(ref) ? ref.identifier : undefined;
|
|
1323
|
+
const uriCacheKey = isUriRef(ref) ? ref.uri : undefined;
|
|
1324
|
+
let cacheItem = firstDefined([idCacheKey, uriCacheKey].map((key) => key && cache.get(key)));
|
|
1325
|
+
if (!cacheItem) {
|
|
1326
|
+
cacheItem = super.getFactDatasetMeta(ref).catch((e) => {
|
|
1327
|
+
if (idCacheKey) {
|
|
1328
|
+
cache.delete(idCacheKey);
|
|
1329
|
+
}
|
|
1330
|
+
if (uriCacheKey) {
|
|
1331
|
+
cache.delete(uriCacheKey);
|
|
1332
|
+
}
|
|
1333
|
+
throw e;
|
|
1334
|
+
});
|
|
1335
|
+
if (idCacheKey) {
|
|
1336
|
+
cache.set(idCacheKey, cacheItem);
|
|
1337
|
+
}
|
|
1338
|
+
if (uriCacheKey) {
|
|
1339
|
+
cache.set(uriCacheKey, cacheItem);
|
|
1340
|
+
}
|
|
1341
|
+
}
|
|
1342
|
+
return cacheItem;
|
|
1343
|
+
};
|
|
1344
|
+
}
|
|
1345
|
+
//
|
|
1265
1346
|
// ORGANIZATION EXPORT TEMPLATES CACHING
|
|
1266
1347
|
//
|
|
1267
1348
|
class WithOrganizationExportTemplatesCaching extends DecoratedOrganizationExportTemplatesService {
|
|
@@ -1412,6 +1493,9 @@ function cachedAttributes(ctx) {
|
|
|
1412
1493
|
function cachedAutomations(ctx) {
|
|
1413
1494
|
return (original, workspace) => new WithAutomationsCaching(original, ctx, workspace);
|
|
1414
1495
|
}
|
|
1496
|
+
function cachedFacts(ctx) {
|
|
1497
|
+
return (original, workspace) => new WithFactsCaching(original, ctx, workspace);
|
|
1498
|
+
}
|
|
1415
1499
|
//
|
|
1416
1500
|
// Geo caching
|
|
1417
1501
|
//
|
|
@@ -1497,6 +1581,9 @@ function cacheControl(ctx) {
|
|
|
1497
1581
|
resetAttributes: () => {
|
|
1498
1582
|
ctx.caches.workspaceAttributes?.clear();
|
|
1499
1583
|
},
|
|
1584
|
+
resetFacts: () => {
|
|
1585
|
+
ctx.caches.workspaceFacts?.clear();
|
|
1586
|
+
},
|
|
1500
1587
|
resetWorkspaceSettings: () => {
|
|
1501
1588
|
ctx.caches.workspaceSettings?.clear();
|
|
1502
1589
|
},
|
|
@@ -1518,6 +1605,7 @@ function cacheControl(ctx) {
|
|
|
1518
1605
|
control.resetCatalogs();
|
|
1519
1606
|
control.resetSecuritySettings();
|
|
1520
1607
|
control.resetAttributes();
|
|
1608
|
+
control.resetFacts();
|
|
1521
1609
|
control.resetWorkspaceSettings();
|
|
1522
1610
|
control.resetGeoStyles();
|
|
1523
1611
|
control.resetExportTemplates();
|
|
@@ -1553,6 +1641,8 @@ export const RecommendedCachingConfiguration = {
|
|
|
1553
1641
|
maxWorkspaceSettings: 1,
|
|
1554
1642
|
maxAutomationsWorkspaces: 1,
|
|
1555
1643
|
maxInsightsPerWorkspace: 50,
|
|
1644
|
+
maxFactsWorkspaces: 1,
|
|
1645
|
+
maxFactsPerWorkspace: 500,
|
|
1556
1646
|
maxExportTemplatesOrgs: 1,
|
|
1557
1647
|
maxExportTemplatesWorkspaces: 1,
|
|
1558
1648
|
cacheGeoStyles: true,
|
|
@@ -1580,6 +1670,7 @@ export function withCaching(realBackend, config) {
|
|
|
1580
1670
|
const workspaceSettingsCaching = cachingEnabled(config.maxWorkspaceSettings);
|
|
1581
1671
|
const automationsCaching = cachingEnabled(config.maxAutomationsWorkspaces);
|
|
1582
1672
|
const insightsCaching = cachingEnabled(config.maxInsightsPerWorkspace);
|
|
1673
|
+
const factsCaching = cachingEnabled(config.maxFactsWorkspaces);
|
|
1583
1674
|
// Backward compatibility: `maxExportTemplatesWorkspaces` used to be the (deprecated) alias that
|
|
1584
1675
|
// sized the org export-templates cache. It now primarily drives workspace caching, but callers
|
|
1585
1676
|
// that only set the old name must keep getting org caching until the alias is removed.
|
|
@@ -1610,6 +1701,7 @@ export function withCaching(realBackend, config) {
|
|
|
1610
1701
|
workspaceInsights: insightsCaching
|
|
1611
1702
|
? new LRUCache({ max: config.maxInsightsPerWorkspace })
|
|
1612
1703
|
: undefined,
|
|
1704
|
+
workspaceFacts: factsCaching ? new LRUCache({ max: config.maxFactsWorkspaces }) : undefined,
|
|
1613
1705
|
organizationExportTemplates: exportTemplatesCaching
|
|
1614
1706
|
? new LRUCache({ max: orgExportTemplatesMax })
|
|
1615
1707
|
: undefined,
|
|
@@ -1632,6 +1724,7 @@ export function withCaching(realBackend, config) {
|
|
|
1632
1724
|
const attributes = attributeCaching ? cachedAttributes(ctx) : (v) => v;
|
|
1633
1725
|
const automations = automationsCaching ? cachedAutomations(ctx) : (v) => v;
|
|
1634
1726
|
const insights = insightsCaching ? cachedInsights(ctx) : (v) => v;
|
|
1727
|
+
const facts = factsCaching ? cachedFacts(ctx) : (v) => v;
|
|
1635
1728
|
const organizationExportTemplates = exportTemplatesCaching
|
|
1636
1729
|
? cachedOrganizationExportTemplates(ctx)
|
|
1637
1730
|
: undefined;
|
|
@@ -1651,6 +1744,7 @@ export function withCaching(realBackend, config) {
|
|
|
1651
1744
|
workspaceSettings,
|
|
1652
1745
|
automations,
|
|
1653
1746
|
insights,
|
|
1747
|
+
facts,
|
|
1654
1748
|
organizationExportTemplates,
|
|
1655
1749
|
workspaceExportTemplates,
|
|
1656
1750
|
geo,
|
|
@@ -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,
|
|
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,CAQrC;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"}
|
|
@@ -48,6 +48,10 @@ export class AnalyticalWorkspaceDecorator {
|
|
|
48
48
|
return this.decorated.parameters();
|
|
49
49
|
}
|
|
50
50
|
facts() {
|
|
51
|
+
const { facts } = this.factories;
|
|
52
|
+
if (facts) {
|
|
53
|
+
return facts(this.decorated.facts(), this.workspace);
|
|
54
|
+
}
|
|
51
55
|
return this.decorated.facts();
|
|
52
56
|
}
|
|
53
57
|
insights() {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type IFactsQuery, type IWorkspaceFactsService } from "@gooddata/sdk-backend-spi";
|
|
2
|
+
import { type IFactMetadataObject, type IMetadataObject, type IMetadataObjectBase, type IMetadataObjectIdentity, type ObjRef } from "@gooddata/sdk-model";
|
|
3
|
+
/**
|
|
4
|
+
* @alpha
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class DecoratedWorkspaceFactsService implements IWorkspaceFactsService {
|
|
7
|
+
protected readonly decorated: IWorkspaceFactsService;
|
|
8
|
+
protected constructor(decorated: IWorkspaceFactsService);
|
|
9
|
+
getFactDatasetMeta(ref: ObjRef): Promise<IMetadataObject>;
|
|
10
|
+
getFactsQuery(): IFactsQuery;
|
|
11
|
+
getFact(ref: ObjRef, opts?: {
|
|
12
|
+
include?: ["dataset"];
|
|
13
|
+
}): Promise<IFactMetadataObject>;
|
|
14
|
+
updateFactMeta(updatedFact: Partial<IMetadataObjectBase> & IMetadataObjectIdentity): Promise<IFactMetadataObject>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=facts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"facts.d.ts","sourceRoot":"","sources":["../../src/decoratedBackend/facts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,MAAM,EACd,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,8BAAsB,8BAA+B,YAAW,sBAAsB;IAC5D,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,sBAAsB;IAA1E,SAAS,aAAgC,SAAS,EAAE,sBAAsB,EAAI;IAEvE,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAE/D;IAEM,aAAa,IAAI,WAAW,CAElC;IAEM,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAE1F;IAEM,cAAc,CACjB,WAAW,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,uBAAuB,GACpE,OAAO,CAAC,mBAAmB,CAAC,CAE9B;CACJ"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// (C) 2025-2026 GoodData Corporation
|
|
2
|
+
/**
|
|
3
|
+
* @alpha
|
|
4
|
+
*/
|
|
5
|
+
export class DecoratedWorkspaceFactsService {
|
|
6
|
+
decorated;
|
|
7
|
+
constructor(decorated) {
|
|
8
|
+
this.decorated = decorated;
|
|
9
|
+
}
|
|
10
|
+
getFactDatasetMeta(ref) {
|
|
11
|
+
return this.decorated.getFactDatasetMeta(ref);
|
|
12
|
+
}
|
|
13
|
+
getFactsQuery() {
|
|
14
|
+
return this.decorated.getFactsQuery();
|
|
15
|
+
}
|
|
16
|
+
getFact(ref, opts) {
|
|
17
|
+
return this.decorated.getFact(ref, opts);
|
|
18
|
+
}
|
|
19
|
+
updateFactMeta(updatedFact) {
|
|
20
|
+
return this.decorated.updateFactMeta(updatedFact);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
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";
|
|
1
|
+
import { type IExecutionFactory, type IGeoService, type IOrganizationExportTemplatesService, type ISecuritySettingsService, type IWorkspaceAttributesService, type IWorkspaceAutomationService, type IWorkspaceCatalogFactory, type IWorkspaceDashboardsService, type IWorkspaceExportTemplatesService, type IWorkspaceFactsService, type IWorkspaceInsightsService, type IWorkspaceSettingsService } from "@gooddata/sdk-backend-spi";
|
|
2
2
|
/**
|
|
3
3
|
* @alpha
|
|
4
4
|
*/
|
|
@@ -31,6 +31,10 @@ export type DashboardsDecoratorFactory = (dashboards: IWorkspaceDashboardsServic
|
|
|
31
31
|
* @alpha
|
|
32
32
|
*/
|
|
33
33
|
export type InsightsDecoratorFactory = (insights: IWorkspaceInsightsService, workspace: string) => IWorkspaceInsightsService;
|
|
34
|
+
/**
|
|
35
|
+
* @alpha
|
|
36
|
+
*/
|
|
37
|
+
export type FactsDecoratorFactory = (facts: IWorkspaceFactsService, workspace: string) => IWorkspaceFactsService;
|
|
34
38
|
/**
|
|
35
39
|
* @alpha
|
|
36
40
|
*/
|
|
@@ -59,6 +63,7 @@ export type DecoratorFactories = {
|
|
|
59
63
|
automations?: AutomationsDecoratorFactory;
|
|
60
64
|
insights?: InsightsDecoratorFactory;
|
|
61
65
|
dashboards?: DashboardsDecoratorFactory;
|
|
66
|
+
facts?: FactsDecoratorFactory;
|
|
62
67
|
geo?: GeoDecoratorFactory;
|
|
63
68
|
organizationExportTemplates?: OrganizationExportTemplatesDecoratorFactory;
|
|
64
69
|
workspaceExportTemplates?: WorkspaceExportTemplatesDecoratorFactory;
|
|
@@ -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,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"}
|
|
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,sBAAsB,EAC3B,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,qBAAqB,GAAG,CAChC,KAAK,EAAE,sBAAsB,EAC7B,SAAS,EAAE,MAAM,KAChB,sBAAsB,CAAC;AAE5B;;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,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,2BAA2B,CAAC,EAAE,2CAA2C,CAAC;IAC1E,wBAAwB,CAAC,EAAE,wCAAwC,CAAC;CACvE,CAAC"}
|
package/esm/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ 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, WorkspaceExportTemplatesDecoratorFactory, } from "./decoratedBackend/types.js";
|
|
15
|
+
export type { DecoratorFactories, CatalogDecoratorFactory, ExecutionDecoratorFactory, SecuritySettingsDecoratorFactory, WorkspaceSettingsDecoratorFactory, AutomationsDecoratorFactory, AttributesDecoratorFactory, InsightsDecoratorFactory, DashboardsDecoratorFactory, FactsDecoratorFactory, 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";
|
package/esm/index.d.ts.map
CHANGED
|
@@ -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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"}
|
|
@@ -168,6 +168,7 @@ 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
170
|
import { IWorkspaceExportTemplatesService } from '@gooddata/sdk-backend-spi';
|
|
171
|
+
import { IWorkspaceFactsService } from '@gooddata/sdk-backend-spi';
|
|
171
172
|
import { IWorkspaceInsightsService } from '@gooddata/sdk-backend-spi';
|
|
172
173
|
import { IWorkspaceSettings } from '@gooddata/sdk-backend-spi';
|
|
173
174
|
import { IWorkspaceSettingsService } from '@gooddata/sdk-backend-spi';
|
|
@@ -455,6 +456,10 @@ export declare type CacheControl = {
|
|
|
455
456
|
* Resets all workspace attribute caches.
|
|
456
457
|
*/
|
|
457
458
|
resetAttributes: () => void;
|
|
459
|
+
/**
|
|
460
|
+
* Resets all workspace facts caches.
|
|
461
|
+
*/
|
|
462
|
+
resetFacts: () => void;
|
|
458
463
|
/**
|
|
459
464
|
* Resets all workspace settings caches.
|
|
460
465
|
*/
|
|
@@ -651,6 +656,36 @@ export declare type CachingConfiguration = {
|
|
|
651
656
|
* When non-positive number is specified, then no caching of insights will be done.
|
|
652
657
|
*/
|
|
653
658
|
maxInsightsPerWorkspace?: number;
|
|
659
|
+
/**
|
|
660
|
+
* Maximum number of workspaces for which to cache selected {@link @gooddata/sdk-backend-spi#IWorkspaceFactsService} calls.
|
|
661
|
+
* The workspace identifier is used as cache key.
|
|
662
|
+
* For each workspace, there will be a cache entry holding `maxFactsPerWorkspace` entries for fact-related calls.
|
|
663
|
+
*
|
|
664
|
+
* When limit is reached, cache entries will be evicted using LRU policy.
|
|
665
|
+
*
|
|
666
|
+
* When no maximum number is specified, the cache will be unbounded and no evictions will happen. Unbounded
|
|
667
|
+
* cache may be OK in applications where number of workspaces is small - the cache will be limited
|
|
668
|
+
* naturally and will not grow uncontrollably.
|
|
669
|
+
*
|
|
670
|
+
* When non-positive number is specified, then no caching will be done.
|
|
671
|
+
*/
|
|
672
|
+
maxFactsWorkspaces?: number;
|
|
673
|
+
/**
|
|
674
|
+
* Maximum number of facts to cache per workspace.
|
|
675
|
+
*
|
|
676
|
+
* This limit applies independently to the cache of facts (`getFact`) and the cache of fact dataset
|
|
677
|
+
* metadata (`getFactDatasetMeta`).
|
|
678
|
+
*
|
|
679
|
+
* When limit is reached, cache entries will be evicted using LRU policy.
|
|
680
|
+
*
|
|
681
|
+
* When no maximum number is specified, the cache will be unbounded and no evictions will happen. Unbounded
|
|
682
|
+
* facts cache may be OK in applications where number of facts is small and/or they are requested
|
|
683
|
+
* infrequently - the cache will be limited naturally and will not grow uncontrollably.
|
|
684
|
+
*
|
|
685
|
+
* Setting non-positive number here is invalid. If you want to turn off facts caching,
|
|
686
|
+
* tweak the `maxFactsWorkspaces` value.
|
|
687
|
+
*/
|
|
688
|
+
maxFactsPerWorkspace?: number;
|
|
654
689
|
/**
|
|
655
690
|
* Maximum number of organizations for which to cache organization-level export templates.
|
|
656
691
|
* Organization export templates are organization-level, so typically a single entry suffices.
|
|
@@ -1341,6 +1376,7 @@ export declare type DecoratorFactories = {
|
|
|
1341
1376
|
automations?: AutomationsDecoratorFactory;
|
|
1342
1377
|
insights?: InsightsDecoratorFactory;
|
|
1343
1378
|
dashboards?: DashboardsDecoratorFactory;
|
|
1379
|
+
facts?: FactsDecoratorFactory;
|
|
1344
1380
|
geo?: GeoDecoratorFactory;
|
|
1345
1381
|
organizationExportTemplates?: OrganizationExportTemplatesDecoratorFactory;
|
|
1346
1382
|
workspaceExportTemplates?: WorkspaceExportTemplatesDecoratorFactory;
|
|
@@ -1564,6 +1600,11 @@ export declare class FactMetadataObjectBuilder<T extends IFactMetadataObject = I
|
|
|
1564
1600
|
dataSet(value: IDataSetMetadataObject | undefined): this;
|
|
1565
1601
|
}
|
|
1566
1602
|
|
|
1603
|
+
/**
|
|
1604
|
+
* @alpha
|
|
1605
|
+
*/
|
|
1606
|
+
export declare type FactsDecoratorFactory = (facts: IWorkspaceFactsService, workspace: string) => IWorkspaceFactsService;
|
|
1607
|
+
|
|
1567
1608
|
/**
|
|
1568
1609
|
* Date filter local identifier generator.
|
|
1569
1610
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-backend-base",
|
|
3
|
-
"version": "11.48.0-alpha.
|
|
3
|
+
"version": "11.48.0-alpha.4",
|
|
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.
|
|
33
|
-
"@gooddata/sdk-model": "11.48.0-alpha.
|
|
34
|
-
"@gooddata/util": "11.48.0-alpha.
|
|
32
|
+
"@gooddata/sdk-backend-spi": "11.48.0-alpha.4",
|
|
33
|
+
"@gooddata/sdk-model": "11.48.0-alpha.4",
|
|
34
|
+
"@gooddata/util": "11.48.0-alpha.4"
|
|
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.
|
|
60
|
-
"@gooddata/oxlint-config": "11.48.0-alpha.
|
|
61
|
-
"@gooddata/reference-workspace": "11.48.0-alpha.
|
|
59
|
+
"@gooddata/eslint-config": "11.48.0-alpha.4",
|
|
60
|
+
"@gooddata/oxlint-config": "11.48.0-alpha.4",
|
|
61
|
+
"@gooddata/reference-workspace": "11.48.0-alpha.4"
|
|
62
62
|
},
|
|
63
63
|
"scripts": {
|
|
64
64
|
"_phase:build": "npm run build",
|