@gooddata/sdk-model 11.26.0-alpha.0 → 11.26.0-alpha.2

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.
@@ -0,0 +1,423 @@
1
+ import { type ILocale } from "../base/localization.js";
2
+ import { type IEntitlementsName } from "../entitlements/index.js";
3
+ import { type OrganizationPermissionAssignment } from "../organization/index.js";
4
+ import { type IWorkspacePermissions } from "../permissions/index.js";
5
+ import { type IFeatureFlags, type IPermanentSettings } from "../settings/settings.js";
6
+ /**
7
+ * Defines in which scope the application should be registered.
8
+ *
9
+ * The default UI uses this information to determine if the application is visible in
10
+ * the organization or workspace portal.
11
+ *
12
+ * @alpha
13
+ */
14
+ export type ApplicationScope = "organization" | "workspace";
15
+ /**
16
+ * Localized titles of pluggable application.
17
+ *
18
+ * @alpha
19
+ */
20
+ export type LocalizedTitle = {
21
+ [locale in ILocale]: string;
22
+ };
23
+ /**
24
+ * Logical condition for evaluating requirement properties.
25
+ *
26
+ * Supports composable AND/OR logic for determining whether an application should be accessible.
27
+ * Conditions can be nested arbitrarily to express complex boolean expressions.
28
+ *
29
+ * There are three forms:
30
+ *
31
+ * 1. **Plain object (implicit AND)** — all specified properties must match their expected values.
32
+ * This is the simplest form and is backwards compatible with the original flat object types.
33
+ * Example:
34
+ * \{ canInitData: true, canRefreshData: true \} // both must be true
35
+ *
36
+ * 2. **$or condition** — at least one of the nested conditions must be satisfied.
37
+ * Example:
38
+ * \{ \$or: [\{ canInitData: true \}, \{ canRefreshData: true \}] \} // either one suffices
39
+ *
40
+ * 3. **$and condition** — all nested conditions must be satisfied. Useful when composing
41
+ * with $or at deeper levels to express grouped AND clauses.
42
+ * Example:
43
+ * \{
44
+ * \$or: [
45
+ * \{ \$and: [\{ canInitData: true \}, \{ canManageProject: true \}] \},
46
+ * \{ canRefreshData: true \},
47
+ * ]
48
+ * \}
49
+ *
50
+ * @alpha
51
+ */
52
+ export type Condition<T> = T | IConditionOr<T> | IConditionAnd<T>;
53
+ /**
54
+ * OR condition — at least one of the nested conditions must be satisfied.
55
+ *
56
+ * @alpha
57
+ */
58
+ export interface IConditionOr<T> {
59
+ $or: Array<Condition<T>>;
60
+ }
61
+ /**
62
+ * AND condition — all nested conditions must be satisfied.
63
+ *
64
+ * @alpha
65
+ */
66
+ export interface IConditionAnd<T> {
67
+ $and: Array<Condition<T>>;
68
+ }
69
+ /**
70
+ * Settings and their values that must be set for the pluggable application to be accessible for the currently
71
+ * logged user.
72
+ *
73
+ * @alpha
74
+ */
75
+ export type RequiredSettings = Condition<Partial<IPermanentSettings | IFeatureFlags>>;
76
+ /**
77
+ * Entitlements and their values that must be set for the pluggable application to be accessible for
78
+ * the currently logged user.
79
+ *
80
+ * @alpha
81
+ */
82
+ export type RequiredEntitlements = Condition<Partial<{
83
+ [entitlement in IEntitlementsName]: string | boolean;
84
+ }>>;
85
+ /**
86
+ * Workspace permissions and their values that must be set for the pluggable application to be accessible for
87
+ * the currently logged user.
88
+ *
89
+ * @alpha
90
+ */
91
+ export type RequiredWorkspacePermissions = Condition<Partial<IWorkspacePermissions>>;
92
+ /**
93
+ * Organization permissions that must be set for the pluggable application to be accessible for
94
+ * the currently logged user.
95
+ *
96
+ * @alpha
97
+ */
98
+ export type RequiredOrganizationPermissions = Condition<Partial<{
99
+ [permission in OrganizationPermissionAssignment]: boolean;
100
+ }>>;
101
+ /**
102
+ * Pluggable application meta-information, v1.
103
+ *
104
+ * @alpha
105
+ */
106
+ export interface IPluggableApplicationMetaV1 {
107
+ /**
108
+ * The version of the application API.
109
+ *
110
+ * Explicit version is specified here as the applications list will be passed down the contract,
111
+ * for example, to shell application UI rendered, that can use 3rd party module for rendering.
112
+ * The local and remote registry manifest is versioned, but these types will not be passed down once
113
+ * the resulting list of the application is constructed from both of these manifests.
114
+ */
115
+ apiVersion: "1.0";
116
+ /**
117
+ * Unique ID of the application.
118
+ *
119
+ * Used when the application is referenced by the remote registry override and in any other case
120
+ * when the application needs to be referenced.
121
+ */
122
+ id: string;
123
+ /**
124
+ * States if the application is enabled and should be allowed to load by the shell application.
125
+ *
126
+ * Used mainly by the remote registry override to disable the standard application.
127
+ */
128
+ isEnabled?: boolean;
129
+ /**
130
+ * Title of the application.
131
+ *
132
+ * Used, for example, in Application Header, when the localized title variant is not provided.
133
+ */
134
+ title: string;
135
+ /**
136
+ * Optional localized titles map keyed by supported locale.
137
+ *
138
+ * It is used in the Application Header to display a localized name of the application. Each application
139
+ * has its own locale bundle, but it can't be used to store the localized name of the application.
140
+ * The application bundle is loaded and parsed only after the user clicks on the application link.
141
+ */
142
+ localizedTitle?: LocalizedTitle;
143
+ /**
144
+ * Defines in which scope the application should be registered.
145
+ *
146
+ * The default UI uses this information to determine if the application is visible in
147
+ * the organization or workspace portal.
148
+ */
149
+ applicationScope: ApplicationScope;
150
+ /**
151
+ * Order of the application in the menu.
152
+ *
153
+ * Applications are sorted and rendered in the default UI according to this value, from smallest
154
+ * to the highest.
155
+ */
156
+ menuOrder: number;
157
+ /**
158
+ * Settings (and feature flags) and their values that must be set for the pluggable application to be
159
+ * accessible for the currently
160
+ * logged user.
161
+ */
162
+ requiredSettings?: RequiredSettings;
163
+ /**
164
+ * Entitlements and their values that must be set for the pluggable application to be accessible for
165
+ * the currently logged user.
166
+ */
167
+ requiredEntitlements?: RequiredEntitlements;
168
+ /**
169
+ * Workspace permissions and their values that must be set for the pluggable application to be
170
+ * accessible for the currently logged user.
171
+ */
172
+ requiredWorkspacePermissions?: RequiredWorkspacePermissions;
173
+ /**
174
+ * Organization permissions that must be set for the pluggable application to be accessible for
175
+ * the currently logged user.
176
+ */
177
+ requiredOrganizationPermissions?: RequiredOrganizationPermissions;
178
+ }
179
+ /**
180
+ * Pluggable application meta-information.
181
+ *
182
+ * @alpha
183
+ */
184
+ export type PluggableApplicationMeta = IPluggableApplicationMetaV1;
185
+ /**
186
+ * Definition of the remote pluggable application.
187
+ * The application is loaded via Module Federation.
188
+ *
189
+ * @alpha
190
+ */
191
+ export interface IRemotePluggableApplicationModule {
192
+ /**
193
+ * Full URL of the remote federated module with the application bundle.
194
+ *
195
+ * @example
196
+ * https://my-remote-federated-module.com/remoteEntry.js
197
+ */
198
+ url: string;
199
+ /**
200
+ * Unique module federation scope value (must match the remote module definition during build)
201
+ * Must be unique within the same remote federation to not share dependencies and scope with another
202
+ * application.
203
+ *
204
+ * @example
205
+ * "my-remote-federated-module"
206
+ */
207
+ scope: string;
208
+ /**
209
+ * Exposed module name. Must match the remote module definition.
210
+ * Maps to internal application module (e.g. "./src/remote-entry.tsx")
211
+ *
212
+ * @example
213
+ * "./AppModule"
214
+ */
215
+ module: string;
216
+ /**
217
+ * Base route of the application.
218
+ * It is relative to the shell application route.
219
+ *
220
+ * @example
221
+ * "/my-application"
222
+ *
223
+ * When the application is registered to "organization" scope, the application will be hosted at
224
+ * /organization/my-application.
225
+ * When the application is registered to the "workspace" scope, the application will be hosted at
226
+ * /workspace/\{workspaceId\}/my-application.
227
+ */
228
+ routeBase: string;
229
+ }
230
+ /**
231
+ * Remote pluggable application registry item, v1.
232
+ * Loaded via Module Federation.
233
+ *
234
+ * @alpha
235
+ */
236
+ export interface IRemotePluggableApplicationRegistryItemV1 extends IPluggableApplicationMetaV1 {
237
+ /**
238
+ * Defines how the remote-federated module should be loaded.
239
+ */
240
+ remote: IRemotePluggableApplicationModule;
241
+ }
242
+ /**
243
+ * Remote pluggable application registry item.
244
+ * Loaded via Module Federation.
245
+ *
246
+ * @alpha
247
+ */
248
+ export type RemotePluggableApplicationRegistryItem = IRemotePluggableApplicationRegistryItemV1;
249
+ /**
250
+ * Definition of the pluggable application deployed locally with the shell application.
251
+ * The application is loaded from the host bundle asynchronously via lazy-loaded import.
252
+ *
253
+ * @alpha
254
+ */
255
+ export interface ILocalPluggableApplicationModule {
256
+ /**
257
+ * Local module path.
258
+ * Imported from the host bundle asynchronously.
259
+ *
260
+ * @example
261
+ * "/src/localApps/organization.tsx"
262
+ */
263
+ localModule: string;
264
+ /**
265
+ * Base route of the application.
266
+ * It is relative to the shell application route.
267
+ *
268
+ * @example
269
+ * "/my-application
270
+ *
271
+ * When the application is registered to "organization" scope, the application will be hosted at
272
+ * /organization/my-application.
273
+ * When the application is registered to "workspace" scope, the application will be hosted at
274
+ * /workspace/\{workspaceId\}/my-application.
275
+ */
276
+ routeBase: string;
277
+ }
278
+ /**
279
+ * Local pluggable application registry item, v1.
280
+ * Loaded from the host bundle asynchronously.
281
+ *
282
+ * @alpha
283
+ */
284
+ export interface ILocalPluggableApplicationRegistryItemV1 extends IPluggableApplicationMetaV1 {
285
+ /**
286
+ * Defines how the local module should be loaded.
287
+ */
288
+ local: ILocalPluggableApplicationModule;
289
+ }
290
+ /**
291
+ * Local pluggable application registry item.
292
+ * Loaded from the host bundle asynchronously.
293
+ *
294
+ * @alpha
295
+ */
296
+ export type LocalPluggableApplicationRegistryItem = ILocalPluggableApplicationRegistryItemV1;
297
+ /**
298
+ * Definition of the pluggable application that is just a URL link.
299
+ * The default UI will replace the application window with the URL link.
300
+ *
301
+ * @alpha
302
+ */
303
+ export interface IExternalUrlPluggableApplicationModule {
304
+ /**
305
+ * URL of the external application.
306
+ *
307
+ * @example
308
+ * https://google.com
309
+ */
310
+ url: string;
311
+ }
312
+ /**
313
+ * External pluggable application registry item, v1.
314
+ *
315
+ * Loaded from an external application hosted module outside the shell, i.e., external link that will
316
+ * replace the application window.
317
+ *
318
+ * @alpha
319
+ */
320
+ export interface IExternalPluggableApplicationRegistryItemV1 extends IPluggableApplicationMetaV1 {
321
+ /**
322
+ * Defines where the web application should be redirected.
323
+ */
324
+ external: IExternalUrlPluggableApplicationModule;
325
+ }
326
+ /**
327
+ * External pluggable application registry item.
328
+ *
329
+ * Loaded from an external application hosted module outside the shell, i.e., external link that will
330
+ * replace the application window.
331
+ *
332
+ * @alpha
333
+ */
334
+ export type ExternalPluggableApplicationRegistryItem = IExternalPluggableApplicationRegistryItemV1;
335
+ /**
336
+ * Pluggable application registry item
337
+ *
338
+ * @alpha
339
+ */
340
+ export type PluggableApplicationRegistryItem = RemotePluggableApplicationRegistryItem | LocalPluggableApplicationRegistryItem | ExternalPluggableApplicationRegistryItem;
341
+ /**
342
+ * Pluggable application registry, v1.
343
+ *
344
+ * @alpha
345
+ */
346
+ export interface ILocalPluggableApplicationsRegistryV1 {
347
+ /**
348
+ * The version of the API used by the application manifest
349
+ */
350
+ apiVersion: "1.0";
351
+ /**
352
+ * The list of pluggable applications deployed in the shell application by default.
353
+ */
354
+ applications: PluggableApplicationRegistryItem[];
355
+ }
356
+ /**
357
+ * Pluggable application registry
358
+ *
359
+ * @alpha
360
+ */
361
+ export type LocalPluggableApplicationsRegistry = ILocalPluggableApplicationsRegistryV1;
362
+ /**
363
+ * Pluggable application remote registry, v1.
364
+ *
365
+ * @alpha
366
+ */
367
+ export interface IRemotePluggableApplicationsRegistryV1 {
368
+ /**
369
+ * The version of the API used by the application manifest
370
+ */
371
+ apiVersion: "1.0";
372
+ /**
373
+ * The overrides of the pluggable applications deployed in the shell application by default.
374
+ *
375
+ * Each override is mapped to a key that is the well-documented ID of the default pluggable application,
376
+ * e.g., gdc-analytical-designer, gdc-dashboards, etc. The property can be used, for example, to disable
377
+ * one of these applications or changing the order under which it is added to the Application Header menu.
378
+ */
379
+ overrides?: {
380
+ [applicationId: string]: Partial<PluggableApplicationRegistryItem>;
381
+ };
382
+ /**
383
+ * The optional list of allowed standard applications.
384
+ *
385
+ * The array of well-documented IDs of the standard applications that are deployed in the shell
386
+ * application by default. The property can be used to stabilize which of the standard applications
387
+ * will be available in the Application Header menu. When a new standard application is deployed in
388
+ * the shell application, it will not appear in the menu until it is added to the list of allowed
389
+ * standard applications.
390
+ */
391
+ allowedStandardApplications?: string[];
392
+ /**
393
+ * The list of additional pluggable applications registered to the shell application.
394
+ *
395
+ * Mainly used to register 3rd party hosted remote module federated applications.
396
+ */
397
+ applications?: PluggableApplicationRegistryItem[];
398
+ }
399
+ /**
400
+ * Pluggable application remote registry
401
+ *
402
+ * @alpha
403
+ */
404
+ export type RemotePluggableApplicationsRegistry = IRemotePluggableApplicationsRegistryV1;
405
+ /**
406
+ * Type guard for ExternalPluggableApplicationRegistryItem
407
+ *
408
+ * @alpha
409
+ */
410
+ export declare function isExternalPluggableApplicationRegistryItem(app: PluggableApplicationRegistryItem): app is ExternalPluggableApplicationRegistryItem;
411
+ /**
412
+ * Type guard for LocalPluggableApplicationRegistryItem
413
+ *
414
+ * @alpha
415
+ */
416
+ export declare function isLocalPluggableApplicationRegistryItem(app: PluggableApplicationRegistryItem): app is LocalPluggableApplicationRegistryItem;
417
+ /**
418
+ * Type guard for RemotePluggableApplicationRegistryItem
419
+ *
420
+ * @alpha
421
+ */
422
+ export declare function isRemotePluggableApplicationRegistryItem(app: PluggableApplicationRegistryItem): app is RemotePluggableApplicationRegistryItem;
423
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pluggableApplication/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { isEmpty } from "lodash-es";
3
+ /**
4
+ * Type guard for ExternalPluggableApplicationRegistryItem
5
+ *
6
+ * @alpha
7
+ */
8
+ export function isExternalPluggableApplicationRegistryItem(app) {
9
+ return !isEmpty(app) && app.external !== undefined;
10
+ }
11
+ /**
12
+ * Type guard for LocalPluggableApplicationRegistryItem
13
+ *
14
+ * @alpha
15
+ */
16
+ export function isLocalPluggableApplicationRegistryItem(app) {
17
+ return !isEmpty(app) && app.local !== undefined;
18
+ }
19
+ /**
20
+ * Type guard for RemotePluggableApplicationRegistryItem
21
+ *
22
+ * @alpha
23
+ */
24
+ export function isRemotePluggableApplicationRegistryItem(app) {
25
+ return !isEmpty(app) && app.remote !== undefined;
26
+ }
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pluggableApplication/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkcpC;;;;GAIG;AACH,MAAM,UAAU,0CAA0C,CACtD,GAAqC,EACU;IAC/C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAK,GAAgD,CAAC,QAAQ,KAAK,SAAS,CAAC;AAAA,CACpG;AAED;;;;GAIG;AACH,MAAM,UAAU,uCAAuC,CACnD,GAAqC,EACO;IAC5C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAK,GAA6C,CAAC,KAAK,KAAK,SAAS,CAAC;AAAA,CAC9F;AAED;;;;GAIG;AACH,MAAM,UAAU,wCAAwC,CACpD,GAAqC,EACQ;IAC7C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAK,GAA8C,CAAC,MAAM,KAAK,SAAS,CAAC;AAAA,CAChG"}