@gooddata/sdk-backend-spi 11.40.0-alpha.2 → 11.40.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/index.d.ts CHANGED
@@ -51,6 +51,7 @@ export type { IOrganizationSettingsService } from "./organization/settings/index
51
51
  export type { IOrganizationExportTemplatesService } from "./organization/exportTemplates/index.js";
52
52
  export type { IWorkspaceUserGroupsQuery, IWorkspaceUserGroupsQueryOptions, IWorkspaceUserGroupsQueryResult, } from "./workspace/userGroups/index.js";
53
53
  export type { IWorkspaceAccessControlService } from "./workspace/accessControl/index.js";
54
+ export type { IObjectPermissionsObject, IWorkspaceObjectPermissionsService, } from "./workspace/objectPermissions/index.js";
54
55
  export type { IOrganizationUserService, IOrganizationUsersQuery, IOrganizationUsersQueryResult, IOrganizationUserGroupsQuery, IOrganizationUserGroupsQueryResult, } from "./organization/users/index.js";
55
56
  export type { IOrganizationPermissionService, IPermissionsAssignment, } from "./organization/permissions/index.js";
56
57
  export type { IOrganizationNotificationChannelService } from "./organization/notificationChannels/index.js";
@@ -63,7 +64,6 @@ export type { IOrganizationAutomationService, IOrganizationAutomationsQuery, IOr
63
64
  export type { IOrganizationAgentsService, IAgentsQuery, IAgentsQueryResult, } from "./organization/agents/index.js";
64
65
  export type { AutomationType, AutomationFilterType, IGetAutomationsQueryOptions, } from "./common/automations.js";
65
66
  export type { IWorkspaceKeyDriverAnalysisService, IChangeAnalysisResults, IKeyDriver, IChangeAnalysisPeriod, IChangeAnalysisOptions, IChangeAnalysisDefinition, } from "./workspace/keyDriverAnalysis/index.js";
66
- export type { IOrganizationLlmEndpointsService, ILlmEndpointsQuery, ILlmEndpointsQueryResult, } from "./organization/llmEndpoints/index.js";
67
67
  export type { IOrganizationLlmProvidersService, ILlmProvidersQuery, ILlmProvidersQueryResult, } from "./organization/llmProviders/index.js";
68
68
  export type { IOrganizationNotificationService } from "./organization/notifications/index.js";
69
69
  export type { INotificationsQuery, INotificationsQueryResult } from "./organization/notifications/query.js";
@@ -3,7 +3,6 @@ import { type IOrganizationAgentsService } from "./agents/index.js";
3
3
  import { type IOrganizationAutomationService } from "./automations/index.js";
4
4
  import { type IOrganizationExportTemplatesService } from "./exportTemplates/index.js";
5
5
  import { type IOrganizationGenAIService } from "./genAI/index.js";
6
- import { type IOrganizationLlmEndpointsService } from "./llmEndpoints/index.js";
7
6
  import { type IOrganizationLlmProvidersService } from "./llmProviders/index.js";
8
7
  import { type IOrganizationNotificationChannelService } from "./notificationChannels/index.js";
9
8
  import { type IOrganizationNotificationService } from "./notifications/index.js";
@@ -58,10 +57,6 @@ export interface IOrganization {
58
57
  * Returns service that can be used to query and manage organization notification channels.
59
58
  */
60
59
  notificationChannels(): IOrganizationNotificationChannelService;
61
- /**
62
- * Returns service that can be used to query and manage organization LLM endpoints.
63
- */
64
- llmEndpoints(): IOrganizationLlmEndpointsService;
65
60
  /**
66
61
  * Returns service that can be used to query and manage organization LLM providers.
67
62
  */
@@ -99,7 +99,6 @@ import { IGranularAccessGrantee } from '@gooddata/sdk-model';
99
99
  import { IInsight } from '@gooddata/sdk-model';
100
100
  import { IInsightDefinition } from '@gooddata/sdk-model';
101
101
  import type { IListedDashboard } from '@gooddata/sdk-model';
102
- import { ILlmEndpointOpenAI } from '@gooddata/sdk-model';
103
102
  import { ILlmProvider } from '@gooddata/sdk-model';
104
103
  import { IMeasure } from '@gooddata/sdk-model';
105
104
  import { IMeasureDescriptor } from '@gooddata/sdk-model';
@@ -118,6 +117,7 @@ import { INotificationChannelMetadataObject } from '@gooddata/sdk-model';
118
117
  import { INotificationChannelMetadataObjectDefinition } from '@gooddata/sdk-model';
119
118
  import { INotificationChannelTestResponse } from '@gooddata/sdk-model';
120
119
  import { INullableFilter } from '@gooddata/sdk-model';
120
+ import { IObjectAccessList } from '@gooddata/sdk-model';
121
121
  import type { IObjectCertificationWrite } from '@gooddata/sdk-model';
122
122
  import { IOpenAiConfig } from '@gooddata/sdk-model';
123
123
  import { IOrganizationAssignee } from '@gooddata/sdk-model';
@@ -161,13 +161,13 @@ import { IWorkspacePermissions } from '@gooddata/sdk-model';
161
161
  import { IWorkspaceSettings } from '@gooddata/sdk-model';
162
162
  import { IWorkspaceUser } from '@gooddata/sdk-model';
163
163
  import { IWorkspaceUserGroup } from '@gooddata/sdk-model';
164
- import { LlmEndpointOpenAIPatch } from '@gooddata/sdk-model';
165
164
  import { LlmProviderListModelsResults } from '@gooddata/sdk-model';
166
165
  import { LlmProviderPatch } from '@gooddata/sdk-model';
167
166
  import { LlmProviderTestResults } from '@gooddata/sdk-model';
168
167
  import type { MemoryItemStrategy } from '@gooddata/sdk-model';
169
168
  import { NotificationChannelDestinationType } from '@gooddata/sdk-model';
170
169
  import { ObjectOrigin } from '@gooddata/sdk-model';
170
+ import { ObjectPermissionsObjectKind } from '@gooddata/sdk-model';
171
171
  import { ObjectType } from '@gooddata/sdk-model';
172
172
  import { ObjRef } from '@gooddata/sdk-model';
173
173
  import { OrganizationPermissionAssignment } from '@gooddata/sdk-model';
@@ -724,6 +724,11 @@ export declare interface IAnalyticalWorkspace {
724
724
  * Returns service that can be used to manage access control records for the workspace.
725
725
  */
726
726
  accessControl(): IWorkspaceAccessControlService;
727
+ /**
728
+ * Returns service that manages per-object access for catalog attributes, facts and labels.
729
+ * @alpha
730
+ */
731
+ objectPermissions(): IWorkspaceObjectPermissionsService;
727
732
  /**
728
733
  * Returns service that operates over attribute hierarchies
729
734
  * @alpha
@@ -4624,57 +4629,6 @@ export declare interface IListKnowledgeDocumentsOptions {
4624
4629
  state?: "enabled" | "disabled";
4625
4630
  }
4626
4631
 
4627
- /**
4628
- * Service to query LLM endpoints.
4629
- *
4630
- * @alpha
4631
- */
4632
- export declare interface ILlmEndpointsQuery {
4633
- /**
4634
- * Sets number of LLM endpoints to return per page.
4635
- * Default size: 100
4636
- *
4637
- * @param size - desired max number of LLM endpoints per page must be a positive number
4638
- * @returns LLM endpoints query
4639
- */
4640
- withSize(size: number): ILlmEndpointsQuery;
4641
- /**
4642
- * Sets starting page for the query. Backend WILL return no data if the page is greater than
4643
- * total number of pages.
4644
- * Default page: 0
4645
- *
4646
- * @param page - zero indexed, must be non-negative
4647
- * @returns LLM endpoints query
4648
- */
4649
- withPage(page: number): ILlmEndpointsQuery;
4650
- /**
4651
- * Sets sorting for the query.
4652
- *
4653
- * @param sort - Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
4654
- * @returns LLM endpoints query
4655
- */
4656
- withSorting(sort: string[]): ILlmEndpointsQuery;
4657
- /**
4658
- * Starts the LLM endpoints query.
4659
- *
4660
- * @returns promise of first page of the results
4661
- */
4662
- query(): Promise<ILlmEndpointsQueryResult>;
4663
- /**
4664
- * Starts the LLM endpoints query.
4665
- *
4666
- * @returns promise with a list of all LLM endpoints matching the specified options
4667
- */
4668
- queryAll(): Promise<ILlmEndpointOpenAI[]>;
4669
- }
4670
-
4671
- /**
4672
- * Queried LLM endpoints are returned in a paged representation.
4673
- *
4674
- * @alpha
4675
- */
4676
- export declare type ILlmEndpointsQueryResult = IPagedResource<ILlmEndpointOpenAI>;
4677
-
4678
4632
  /**
4679
4633
  * Service to query LLM providers.
4680
4634
  *
@@ -5155,6 +5109,17 @@ export declare interface IObjectExpressionToken {
5155
5109
  ref: ObjRef;
5156
5110
  }
5157
5111
 
5112
+ /**
5113
+ * Identifies an object whose access is being managed. The `kind` lets the backend
5114
+ * route to the right endpoint without an extra lookup to resolve the ref.
5115
+ *
5116
+ * @alpha
5117
+ */
5118
+ export declare interface IObjectPermissionsObject {
5119
+ readonly kind: ObjectPermissionsObjectKind;
5120
+ readonly ref: ObjRef;
5121
+ }
5122
+
5158
5123
  /**
5159
5124
  * Represents an organization that services analytical workspaces.
5160
5125
  *
@@ -5201,10 +5166,6 @@ export declare interface IOrganization {
5201
5166
  * Returns service that can be used to query and manage organization notification channels.
5202
5167
  */
5203
5168
  notificationChannels(): IOrganizationNotificationChannelService;
5204
- /**
5205
- * Returns service that can be used to query and manage organization LLM endpoints.
5206
- */
5207
- llmEndpoints(): IOrganizationLlmEndpointsService;
5208
5169
  /**
5209
5170
  * Returns service that can be used to query and manage organization LLM providers.
5210
5171
  */
@@ -5605,64 +5566,6 @@ export declare interface IOrganizationGeoCollectionsService {
5605
5566
  importGeoCollectionFile(collectionId: string, location: string): Promise<void>;
5606
5567
  }
5607
5568
 
5608
- /**
5609
- * This service provides access to organization llm endpoints configuration.
5610
- *
5611
- * @alpha
5612
- */
5613
- export declare interface IOrganizationLlmEndpointsService {
5614
- /**
5615
- * Get count of all llm endpoints
5616
- *
5617
- * @returns Promise resolved with number of llm endpoints.
5618
- */
5619
- getCount(): Promise<number>;
5620
- /**
5621
- * Get endpoints query
5622
- *
5623
- * @returns endpoints query
5624
- */
5625
- getEndpointsQuery(): ILlmEndpointsQuery;
5626
- /**
5627
- * Delete an endpoint
5628
- *
5629
- * @param id - id of the endpoint
5630
- * @returns Promise resolved when the endpoint is deleted.
5631
- */
5632
- deleteLlmEndpoint(id: string): Promise<void>;
5633
- /**
5634
- * Get llm endpoint by id
5635
- *
5636
- * @param id - id of the endpoint
5637
- * @returns Promise resolved with endpoint.
5638
- */
5639
- getLlmEndpoint(id: string): Promise<ILlmEndpointOpenAI | undefined>;
5640
- /**
5641
- * Create a new llm endpoint
5642
- *
5643
- * @param endpoint - definition of the llm endpoint
5644
- * @param token - token for the llm endpoint, if applicable
5645
- * @returns Promise resolved with created llm endpoint.
5646
- */
5647
- createLlmEndpoint(endpoint: ILlmEndpointOpenAI, token?: string): Promise<ILlmEndpointOpenAI>;
5648
- /**
5649
- * Update existing llm endpoint
5650
- *
5651
- * @param endpoint - definition of the llm endpoint
5652
- * @param token - token for the llm endpoint, if applicable
5653
- * @returns Promise resolved when the llm endpoint is updated.
5654
- */
5655
- updateLlmEndpoint(endpoint: ILlmEndpointOpenAI, token?: string): Promise<ILlmEndpointOpenAI>;
5656
- /**
5657
- * Patch existing llm endpoint
5658
- *
5659
- * @param endpoint - definition of the llm endpoint
5660
- * @param token - token for the llm endpoint, if applicable
5661
- * @returns Promise resolved when the llm endpoint is patched.
5662
- */
5663
- patchLlmEndpoint(endpoint: LlmEndpointOpenAIPatch, token?: string): Promise<ILlmEndpointOpenAI>;
5664
- }
5665
-
5666
5569
  /**
5667
5570
  * This service provides access to organization llm providers configuration.
5668
5571
  *
@@ -8680,6 +8583,38 @@ export declare interface IWorkspaceMeasuresService {
8680
8583
  getConnectedAttributes(definition: IMeasure, auxMeasures?: IMeasure[]): Promise<ObjRef[]>;
8681
8584
  }
8682
8585
 
8586
+ /**
8587
+ * Reads and updates who has access to a single catalog object. The grantee
8588
+ * types are shared with the dashboard share service so the same UI primitives
8589
+ * work for both flows.
8590
+ *
8591
+ * @alpha
8592
+ */
8593
+ export declare interface IWorkspaceObjectPermissionsService {
8594
+ /**
8595
+ * Returns the current list of grants for the given object.
8596
+ *
8597
+ * @param target - the object whose access to read
8598
+ */
8599
+ getAccessList(target: IObjectPermissionsObject): Promise<IObjectAccessList>;
8600
+ /**
8601
+ * Applies the given grants. Grantees not included in `grantees` are left
8602
+ * unchanged; a grantee with an empty `permissions` array is removed.
8603
+ *
8604
+ * @param target - the object whose access to change
8605
+ * @param grantees - grants to apply
8606
+ */
8607
+ manageObjectPermissions(target: IObjectPermissionsObject, grantees: IGranularAccessGrantee[]): Promise<void>;
8608
+ /**
8609
+ * Returns the users and groups in the workspace that can be granted access.
8610
+ * Excludes the current user. Whether organization admins are excluded
8611
+ * depends on the backend.
8612
+ *
8613
+ * @param target - the object to find available assignees for
8614
+ */
8615
+ getAvailableAssignees(target: IObjectPermissionsObject): Promise<IAvailableAccessGrantee[]>;
8616
+ }
8617
+
8683
8618
  /**
8684
8619
  * Service for querying additional parameter data.
8685
8620
  *
@@ -16,6 +16,7 @@ import { type IWorkspaceCatalogFactory } from "./ldm/catalog.js";
16
16
  import { type IWorkspaceDatasetsService } from "./ldm/datasets.js";
17
17
  import { type IWorkspaceLogicalModelService } from "./ldm/model.js";
18
18
  import { type IWorkspaceMeasuresService } from "./measures/index.js";
19
+ import { type IWorkspaceObjectPermissionsService } from "./objectPermissions/index.js";
19
20
  import { type IWorkspaceParametersService } from "./parameters/index.js";
20
21
  import { type IWorkspacePermissionsService } from "./permissions/index.js";
21
22
  import { type IReferencesService } from "./references/index.js";
@@ -128,6 +129,11 @@ export interface IAnalyticalWorkspace {
128
129
  * Returns service that can be used to manage access control records for the workspace.
129
130
  */
130
131
  accessControl(): IWorkspaceAccessControlService;
132
+ /**
133
+ * Returns service that manages per-object access for catalog attributes, facts and labels.
134
+ * @alpha
135
+ */
136
+ objectPermissions(): IWorkspaceObjectPermissionsService;
131
137
  /**
132
138
  * Returns service that operates over attribute hierarchies
133
139
  * @alpha
@@ -0,0 +1,42 @@
1
+ import { type IAvailableAccessGrantee, type IGranularAccessGrantee, type IObjectAccessList, type ObjRef, type ObjectPermissionsObjectKind } from "@gooddata/sdk-model";
2
+ /**
3
+ * Identifies an object whose access is being managed. The `kind` lets the backend
4
+ * route to the right endpoint without an extra lookup to resolve the ref.
5
+ *
6
+ * @alpha
7
+ */
8
+ export interface IObjectPermissionsObject {
9
+ readonly kind: ObjectPermissionsObjectKind;
10
+ readonly ref: ObjRef;
11
+ }
12
+ /**
13
+ * Reads and updates who has access to a single catalog object. The grantee
14
+ * types are shared with the dashboard share service so the same UI primitives
15
+ * work for both flows.
16
+ *
17
+ * @alpha
18
+ */
19
+ export interface IWorkspaceObjectPermissionsService {
20
+ /**
21
+ * Returns the current list of grants for the given object.
22
+ *
23
+ * @param target - the object whose access to read
24
+ */
25
+ getAccessList(target: IObjectPermissionsObject): Promise<IObjectAccessList>;
26
+ /**
27
+ * Applies the given grants. Grantees not included in `grantees` are left
28
+ * unchanged; a grantee with an empty `permissions` array is removed.
29
+ *
30
+ * @param target - the object whose access to change
31
+ * @param grantees - grants to apply
32
+ */
33
+ manageObjectPermissions(target: IObjectPermissionsObject, grantees: IGranularAccessGrantee[]): Promise<void>;
34
+ /**
35
+ * Returns the users and groups in the workspace that can be granted access.
36
+ * Excludes the current user. Whether organization admins are excluded
37
+ * depends on the backend.
38
+ *
39
+ * @param target - the object to find available assignees for
40
+ */
41
+ getAvailableAssignees(target: IObjectPermissionsObject): Promise<IAvailableAccessGrantee[]>;
42
+ }
@@ -0,0 +1,2 @@
1
+ // (C) 2026 GoodData Corporation
2
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-backend-spi",
3
- "version": "11.40.0-alpha.2",
3
+ "version": "11.40.0-alpha.4",
4
4
  "description": "GoodData Backend SPI abstraction interfaces",
5
5
  "license": "MIT",
6
6
  "author": "GoodData",
@@ -24,7 +24,7 @@
24
24
  "lodash-es": "^4.17.23",
25
25
  "ts-invariant": "0.10.3",
26
26
  "tslib": "2.8.1",
27
- "@gooddata/sdk-model": "11.40.0-alpha.2"
27
+ "@gooddata/sdk-model": "11.40.0-alpha.4"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@microsoft/api-documenter": "^7.17.0",
@@ -43,13 +43,13 @@
43
43
  "eslint-plugin-no-barrel-files": "1.2.2",
44
44
  "eslint-plugin-sonarjs": "3.0.6",
45
45
  "npm-run-all": "^4.1.5",
46
- "oxfmt": "0.45.0",
47
- "oxlint": "^1.43.0",
48
- "oxlint-tsgolint": "0.11.4",
46
+ "oxfmt": "0.52.0",
47
+ "oxlint": "1.51.0",
48
+ "oxlint-tsgolint": "0.15.0",
49
49
  "typescript": "5.9.3",
50
- "vitest": "4.1.0",
51
- "@gooddata/oxlint-config": "11.40.0-alpha.2",
52
- "@gooddata/eslint-config": "11.40.0-alpha.2"
50
+ "vitest": "4.1.8",
51
+ "@gooddata/oxlint-config": "11.40.0-alpha.4",
52
+ "@gooddata/eslint-config": "11.40.0-alpha.4"
53
53
  },
54
54
  "scripts": {
55
55
  "_phase:build": "npm run build",
@@ -1,108 +0,0 @@
1
- import { type ILlmEndpointOpenAI, type LlmEndpointOpenAIPatch } from "@gooddata/sdk-model";
2
- import { type IPagedResource } from "../../common/paging.js";
3
- /**
4
- * Service to query LLM endpoints.
5
- *
6
- * @alpha
7
- */
8
- export interface ILlmEndpointsQuery {
9
- /**
10
- * Sets number of LLM endpoints to return per page.
11
- * Default size: 100
12
- *
13
- * @param size - desired max number of LLM endpoints per page must be a positive number
14
- * @returns LLM endpoints query
15
- */
16
- withSize(size: number): ILlmEndpointsQuery;
17
- /**
18
- * Sets starting page for the query. Backend WILL return no data if the page is greater than
19
- * total number of pages.
20
- * Default page: 0
21
- *
22
- * @param page - zero indexed, must be non-negative
23
- * @returns LLM endpoints query
24
- */
25
- withPage(page: number): ILlmEndpointsQuery;
26
- /**
27
- * Sets sorting for the query.
28
- *
29
- * @param sort - Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
30
- * @returns LLM endpoints query
31
- */
32
- withSorting(sort: string[]): ILlmEndpointsQuery;
33
- /**
34
- * Starts the LLM endpoints query.
35
- *
36
- * @returns promise of first page of the results
37
- */
38
- query(): Promise<ILlmEndpointsQueryResult>;
39
- /**
40
- * Starts the LLM endpoints query.
41
- *
42
- * @returns promise with a list of all LLM endpoints matching the specified options
43
- */
44
- queryAll(): Promise<ILlmEndpointOpenAI[]>;
45
- }
46
- /**
47
- * Queried LLM endpoints are returned in a paged representation.
48
- *
49
- * @alpha
50
- */
51
- export type ILlmEndpointsQueryResult = IPagedResource<ILlmEndpointOpenAI>;
52
- /**
53
- * This service provides access to organization llm endpoints configuration.
54
- *
55
- * @alpha
56
- */
57
- export interface IOrganizationLlmEndpointsService {
58
- /**
59
- * Get count of all llm endpoints
60
- *
61
- * @returns Promise resolved with number of llm endpoints.
62
- */
63
- getCount(): Promise<number>;
64
- /**
65
- * Get endpoints query
66
- *
67
- * @returns endpoints query
68
- */
69
- getEndpointsQuery(): ILlmEndpointsQuery;
70
- /**
71
- * Delete an endpoint
72
- *
73
- * @param id - id of the endpoint
74
- * @returns Promise resolved when the endpoint is deleted.
75
- */
76
- deleteLlmEndpoint(id: string): Promise<void>;
77
- /**
78
- * Get llm endpoint by id
79
- *
80
- * @param id - id of the endpoint
81
- * @returns Promise resolved with endpoint.
82
- */
83
- getLlmEndpoint(id: string): Promise<ILlmEndpointOpenAI | undefined>;
84
- /**
85
- * Create a new llm endpoint
86
- *
87
- * @param endpoint - definition of the llm endpoint
88
- * @param token - token for the llm endpoint, if applicable
89
- * @returns Promise resolved with created llm endpoint.
90
- */
91
- createLlmEndpoint(endpoint: ILlmEndpointOpenAI, token?: string): Promise<ILlmEndpointOpenAI>;
92
- /**
93
- * Update existing llm endpoint
94
- *
95
- * @param endpoint - definition of the llm endpoint
96
- * @param token - token for the llm endpoint, if applicable
97
- * @returns Promise resolved when the llm endpoint is updated.
98
- */
99
- updateLlmEndpoint(endpoint: ILlmEndpointOpenAI, token?: string): Promise<ILlmEndpointOpenAI>;
100
- /**
101
- * Patch existing llm endpoint
102
- *
103
- * @param endpoint - definition of the llm endpoint
104
- * @param token - token for the llm endpoint, if applicable
105
- * @returns Promise resolved when the llm endpoint is patched.
106
- */
107
- patchLlmEndpoint(endpoint: LlmEndpointOpenAIPatch, token?: string): Promise<ILlmEndpointOpenAI>;
108
- }
@@ -1,2 +0,0 @@
1
- // (C) 2023-2026 GoodData Corporation
2
- export {};