@gooddata/sdk-model 11.40.0-alpha.3 → 11.40.0-alpha.5

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.
@@ -163,6 +163,13 @@ export declare const isUserGroupAccessGrantee: (obj: unknown) => obj is IUserGro
163
163
  * @public
164
164
  */
165
165
  export type AccessGranularPermission = "VIEW" | "EDIT" | "SHARE";
166
+ /**
167
+ * Provenance of a granted permission — granted directly to the grantee,
168
+ * or inherited from a group or rule.
169
+ *
170
+ * @alpha
171
+ */
172
+ export type PermissionSource = "direct" | "indirect";
166
173
  /**
167
174
  * Access grantee specification with granular permissions.
168
175
  *
@@ -177,6 +184,15 @@ export interface IGranteeGranularity {
177
184
  * Permissions granted by inheritance
178
185
  */
179
186
  inheritedPermissions: AccessGranularPermission[];
187
+ /**
188
+ * Optional per-permission provenance, positionally aligned with
189
+ * {@link IGranteeGranularity.permissions}. When present, entry `i` describes
190
+ * how `permissions[i]` was granted. Backends that don't track this omit
191
+ * the field.
192
+ *
193
+ * @alpha
194
+ */
195
+ permissionSources?: PermissionSource[];
180
196
  }
181
197
  /**
182
198
  * User access grantee specification with granular permissions.
@@ -1,4 +1,4 @@
1
- // (C) 2021-2025 GoodData Corporation
1
+ // (C) 2021-2026 GoodData Corporation
2
2
  import { isEmpty } from "lodash-es";
3
3
  /**
4
4
  * Tests whether the provided object is an instance of {@link IUserAccess}.
@@ -0,0 +1,23 @@
1
+ import { type AccessGranteeDetail } from "./index.js";
2
+ /**
3
+ * Catalog object kinds that support per-object access management.
4
+ *
5
+ * @alpha
6
+ */
7
+ export type ObjectPermissionsObjectKind = "attribute" | "fact" | "label";
8
+ /**
9
+ * Tests whether the provided value is an {@link ObjectPermissionsObjectKind}.
10
+ *
11
+ * @param k - value to test
12
+ * @alpha
13
+ */
14
+ export declare const isObjectPermissionsObjectKind: (k: unknown) => k is ObjectPermissionsObjectKind;
15
+ /**
16
+ * Current access state for a single object: a flat list of grants. Grants reuse
17
+ * the shared {@link AccessGranteeDetail} union.
18
+ *
19
+ * @alpha
20
+ */
21
+ export interface IObjectAccessList {
22
+ grants: AccessGranteeDetail[];
23
+ }
@@ -0,0 +1,10 @@
1
+ // (C) 2026 GoodData Corporation
2
+ /**
3
+ * Tests whether the provided value is an {@link ObjectPermissionsObjectKind}.
4
+ *
5
+ * @param k - value to test
6
+ * @alpha
7
+ */
8
+ export const isObjectPermissionsObjectKind = (k) => {
9
+ return k === "attribute" || k === "fact" || k === "label";
10
+ };
package/esm/index.d.ts CHANGED
@@ -83,7 +83,8 @@ export type { IWorkspaceUserGroup } from "./userGroup/index.js";
83
83
  export type { ThemeFontUri, ThemeColor, IThemeColorFamily, IThemeComplementaryPalette, IThemeWidgetTitle, IThemeTypography, IThemeFontsDef, IThemePalette, IThemeKpi, IThemeKpiValue, IThemeChart, IThemeTable, ITheme, IThemeAnalyticalDesigner, IThemeAnalyticalDesignerTitle, IThemeButton, IThemeDashboard, IThemeDashboardContent, IThemeDashboardContentKpi, IThemeDashboardContentWidget, IThemeDashboardEditPanel, IThemeDashboardFilterBar, IThemeDashboardFilterBarButton, IThemeDashboardNavigation, IThemeDashboardNavigationItem, IThemeDashboardNavigationTitle, IThemeDashboardSection, IThemeDashboardSectionDescription, IThemeDashboardSectionTitle, IThemeDashboardTitle, IThemeMetadataObject, IThemeDefinition, IThemeModal, IThemeModalTitle, IThemeTooltip, IThemeImages, IThemeMessage, IThemeMessageVariant, IThemeToastMessage, IThemeToastMessageVariant, IThemeHeader, ImageUri, IThemeAxis, IThemeChartTooltip, IThemeDataLabel, ThemeDashboardDensity, } from "./theme/index.js";
84
84
  export type { IWorkspacePermissions, WorkspacePermission } from "./permissions/index.js";
85
85
  export { type DataValue, type ForecastDataValue, type IGeoJsonFeature, type IMeasureDescriptor, type IMeasureDescriptorObject, type IMeasureDescriptorItem, type IDimensionItemDescriptor, type IDimensionDescriptor, type IAttributeHeaderFormOf, type IAttributeDescriptorBody, type IAttributeDescriptor, type IMeasureGroupDescriptor, type IResultAttributeHeader, type IResultHeader, type IResultMeasureHeader, type IResultAttributeHeaderItem, type IResultMeasureHeaderItem, type IResultTotalHeader, type IResultTotalHeaderItem, type ITotalDescriptor, type ITotalDescriptorItem, type IResultWarning, type IColorDescriptor, type IColorDescriptorItem, isColorDescriptor, isAttributeDescriptor, isMeasureGroupDescriptor, isTotalDescriptor, isMeasureDescriptor, isResultAttributeHeader, isResultMeasureHeader, isResultTotalHeader, resultHeaderName, attributeDescriptorLocalId, attributeDescriptorName, geoFeatureId, } from "./execution/results/index.js";
86
- export { type AccessGranteeDetail, type IAccessGrantee, type IUserAccess, type IUserAccessGrantee, type IUserGroupAccess, type IUserGroupAccessGrantee, type IGranularAccessGrantee, type AccessGranularPermission, type IGranteeGranularity, type IAvailableAccessGrantee, type IAvailableUserAccessGrantee, type IAvailableUserGroupAccessGrantee, type IGranularUserAccess, type IGranularUserGroupAccess, type IGranularRulesAccess, type IGranularUserAccessGrantee, type IGranularUserGroupAccessGrantee, type IGranularRulesAccessGrantee, type WorkspaceAccessPermission, type IWorkspaceAccess, type IUserWorkspaceAccessGrantee, type IUserGroupWorkspaceAccessGrantee, isUserAccess, isUserAccessGrantee, isUserGroupAccess, isUserGroupAccessGrantee, isGranularAccess, isAvailableUserGroupAccessGrantee, isAvailableUserAccessGrantee, isGranularAccessGrantee, isGranularUserAccessGrantee, isGranularUserGroupAccessGrantee, isGranularUserAccess, isGranularUserGroupAccess, isGranularRulesAccessGrantee, isUserWorkspaceAccessGrantee, isUserGroupWorkspaceAccessGrantee, } from "./accessControl/index.js";
86
+ export { type AccessGranteeDetail, type IAccessGrantee, type IUserAccess, type IUserAccessGrantee, type IUserGroupAccess, type IUserGroupAccessGrantee, type IGranularAccessGrantee, type AccessGranularPermission, type PermissionSource, type IGranteeGranularity, type IAvailableAccessGrantee, type IAvailableUserAccessGrantee, type IAvailableUserGroupAccessGrantee, type IGranularUserAccess, type IGranularUserGroupAccess, type IGranularRulesAccess, type IGranularUserAccessGrantee, type IGranularUserGroupAccessGrantee, type IGranularRulesAccessGrantee, type WorkspaceAccessPermission, type IWorkspaceAccess, type IUserWorkspaceAccessGrantee, type IUserGroupWorkspaceAccessGrantee, isUserAccess, isUserAccessGrantee, isUserGroupAccess, isUserGroupAccessGrantee, isGranularAccess, isAvailableUserGroupAccessGrantee, isAvailableUserAccessGrantee, isGranularAccessGrantee, isGranularUserAccessGrantee, isGranularUserGroupAccessGrantee, isGranularUserAccess, isGranularUserGroupAccess, isGranularRulesAccessGrantee, isUserWorkspaceAccessGrantee, isUserGroupWorkspaceAccessGrantee, } from "./accessControl/index.js";
87
+ export { type ObjectPermissionsObjectKind, isObjectPermissionsObjectKind, type IObjectAccessList, } from "./accessControl/objectPermissions.js";
87
88
  export { type IOrganizationDescriptor, type IOrganizationDescriptorUpdate, type IWorkspacePermissionAssignment, type IAssignedWorkspace, type AssignedWorkspacePermission, type IOrganizationPermissionAssignment, type OrganizationPermissionAssignment, type IOrganizationAssignee, type AssignedDataSourcePermission, type IAssignedDataSource, type IDataSourcePermissionAssignment, AssignedWorkspacePermissionValue, OrganizationPermissionAssignmentValue, AssignedDataSourcePermissionValue, isAssignedWorkspacePermission, } from "./organization/index.js";
88
89
  export type { IEntitlementsName, IEntitlementDescriptor } from "./entitlements/index.js";
89
90
  export type { DataSourceType, IDataSourceIdentifierDescriptor } from "./dataSources/index.js";
package/esm/index.js CHANGED
@@ -72,6 +72,7 @@ export { DashboardParameterModeValues, isDashboardParameter, } from "./dashboard
72
72
  export { isSeparators, } from "./settings/settings.js";
73
73
  export { isColorDescriptor, isAttributeDescriptor, isMeasureGroupDescriptor, isTotalDescriptor, isMeasureDescriptor, isResultAttributeHeader, isResultMeasureHeader, isResultTotalHeader, resultHeaderName, attributeDescriptorLocalId, attributeDescriptorName, geoFeatureId, } from "./execution/results/index.js";
74
74
  export { isUserAccess, isUserAccessGrantee, isUserGroupAccess, isUserGroupAccessGrantee, isGranularAccess, isAvailableUserGroupAccessGrantee, isAvailableUserAccessGrantee, isGranularAccessGrantee, isGranularUserAccessGrantee, isGranularUserGroupAccessGrantee, isGranularUserAccess, isGranularUserGroupAccess, isGranularRulesAccessGrantee, isUserWorkspaceAccessGrantee, isUserGroupWorkspaceAccessGrantee, } from "./accessControl/index.js";
75
+ export { isObjectPermissionsObjectKind, } from "./accessControl/objectPermissions.js";
75
76
  export { AssignedWorkspacePermissionValue, OrganizationPermissionAssignmentValue, AssignedDataSourcePermissionValue, isAssignedWorkspacePermission, } from "./organization/index.js";
76
77
  export { exportDefinitionTitle, exportDefinitionCreated, exportDefinitionUpdated, isExportDefinitionDashboardRequestPayload, isExportDefinitionVisualizationObjectRequestPayload, } from "./exports/index.js";
77
78
  export { CSV_DELIMITER_PRESETS, DEFAULT_CSV_DELIMITER, DEFAULT_CSV_DELIMITER_PRESET_ID, getCsvDelimiterValidationError, getCsvDelimiterPreset, getCsvDelimiterValue, getCsvDelimiterState, } from "./exports/csvDelimiter.js";
@@ -6978,6 +6978,17 @@ export declare interface IFeatureFlags {
6978
6978
  * Enables Metric Editor loading as a remote module in the host application.
6979
6979
  */
6980
6980
  enableShellApplication_metricEditor?: boolean;
6981
+ /**
6982
+ * Per-app sub-flag under enableShellApplication. When true (and
6983
+ * enableShellApplication is also true), Analytical Designer runs as a
6984
+ * pluggable app inside the host. When false, the legacy standalone AD
6985
+ * served at the /analyze hash route is rendered instead.
6986
+ */
6987
+ enableShellApplication_analyticalDesigner?: boolean;
6988
+ /**
6989
+ * Enables Resizable Dashboard sidebar in edit mode.
6990
+ */
6991
+ enableDashboardSidebarResize?: boolean;
6981
6992
  }
6982
6993
 
6983
6994
  /**
@@ -7672,6 +7683,15 @@ export declare interface IGranteeGranularity {
7672
7683
  * Permissions granted by inheritance
7673
7684
  */
7674
7685
  inheritedPermissions: AccessGranularPermission[];
7686
+ /**
7687
+ * Optional per-permission provenance, positionally aligned with
7688
+ * {@link IGranteeGranularity.permissions}. When present, entry `i` describes
7689
+ * how `permissions[i]` was granted. Backends that don't track this omit
7690
+ * the field.
7691
+ *
7692
+ * @alpha
7693
+ */
7694
+ permissionSources?: PermissionSource[];
7675
7695
  }
7676
7696
 
7677
7697
  /**
@@ -9824,6 +9844,16 @@ export declare interface INumberParameterDefinition {
9824
9844
  constraints?: INumberParameterConstraints;
9825
9845
  }
9826
9846
 
9847
+ /**
9848
+ * Current access state for a single object: a flat list of grants. Grants reuse
9849
+ * the shared {@link AccessGranteeDetail} union.
9850
+ *
9851
+ * @alpha
9852
+ */
9853
+ export declare interface IObjectAccessList {
9854
+ grants: AccessGranteeDetail[];
9855
+ }
9856
+
9827
9857
  /**
9828
9858
  * Object certification data.
9829
9859
  *
@@ -12408,6 +12438,14 @@ export declare function isNotificationChannelMetadataObjectDefinition(obj: unkno
12408
12438
  */
12409
12439
  export declare function isNumberParameterDefinition(def: IParameterDefinition): def is INumberParameterDefinition;
12410
12440
 
12441
+ /**
12442
+ * Tests whether the provided value is an {@link ObjectPermissionsObjectKind}.
12443
+ *
12444
+ * @param k - value to test
12445
+ * @alpha
12446
+ */
12447
+ export declare const isObjectPermissionsObjectKind: (k: unknown) => k is ObjectPermissionsObjectKind;
12448
+
12411
12449
  /**
12412
12450
  * Type guard checking whether object is an Identifier Reference or an URI reference.
12413
12451
  *
@@ -16211,6 +16249,13 @@ export declare type NotificationType = "alertNotification" | "scheduleNotificati
16211
16249
  */
16212
16250
  export declare type ObjectOrigin = "ALL" | "PARENTS" | "NATIVE";
16213
16251
 
16252
+ /**
16253
+ * Catalog object kinds that support per-object access management.
16254
+ *
16255
+ * @alpha
16256
+ */
16257
+ export declare type ObjectPermissionsObjectKind = "attribute" | "fact" | "label";
16258
+
16214
16259
  /**
16215
16260
  * Metadata object types
16216
16261
  *
@@ -16268,6 +16313,14 @@ export declare const OrganizationPermissionAssignmentValue: {
16268
16313
  readonly BASE_UI_ACCESS: "BASE_UI_ACCESS";
16269
16314
  };
16270
16315
 
16316
+ /**
16317
+ * Provenance of a granted permission — granted directly to the grantee,
16318
+ * or inherited from a group or rule.
16319
+ *
16320
+ * @alpha
16321
+ */
16322
+ export declare type PermissionSource = "direct" | "indirect";
16323
+
16271
16324
  /**
16272
16325
  * Indicates current platform edition.
16273
16326
  *
@@ -1018,4 +1018,15 @@ export interface IFeatureFlags {
1018
1018
  * Enables Metric Editor loading as a remote module in the host application.
1019
1019
  */
1020
1020
  enableShellApplication_metricEditor?: boolean;
1021
+ /**
1022
+ * Per-app sub-flag under enableShellApplication. When true (and
1023
+ * enableShellApplication is also true), Analytical Designer runs as a
1024
+ * pluggable app inside the host. When false, the legacy standalone AD
1025
+ * served at the /analyze hash route is rendered instead.
1026
+ */
1027
+ enableShellApplication_analyticalDesigner?: boolean;
1028
+ /**
1029
+ * Enables Resizable Dashboard sidebar in edit mode.
1030
+ */
1031
+ enableDashboardSidebarResize?: boolean;
1021
1032
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-model",
3
- "version": "11.40.0-alpha.3",
3
+ "version": "11.40.0-alpha.5",
4
4
  "description": "GoodData Model definitions used by UI components and Backend SPI",
5
5
  "license": "MIT",
6
6
  "author": "GoodData",
@@ -52,13 +52,13 @@
52
52
  "eslint-plugin-no-barrel-files": "1.2.2",
53
53
  "eslint-plugin-sonarjs": "3.0.6",
54
54
  "npm-run-all": "^4.1.5",
55
- "oxfmt": "0.45.0",
56
- "oxlint": "^1.43.0",
57
- "oxlint-tsgolint": "0.11.4",
55
+ "oxfmt": "0.52.0",
56
+ "oxlint": "1.51.0",
57
+ "oxlint-tsgolint": "0.15.0",
58
58
  "typescript": "5.9.3",
59
- "vitest": "4.1.0",
60
- "@gooddata/eslint-config": "11.40.0-alpha.3",
61
- "@gooddata/oxlint-config": "11.40.0-alpha.3"
59
+ "vitest": "4.1.8",
60
+ "@gooddata/oxlint-config": "11.40.0-alpha.5",
61
+ "@gooddata/eslint-config": "11.40.0-alpha.5"
62
62
  },
63
63
  "scripts": {
64
64
  "_phase:build": "npm run build",