@grantjs/schema 1.1.7 → 1.3.0

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.
Files changed (50) hide show
  1. package/package.json +7 -7
  2. package/src/generated/graphql.ts +1617 -126
  3. package/src/generated/resolvers.ts +505 -0
  4. package/src/generated/schema-types.ts +268 -0
  5. package/src/index.ts +2 -0
  6. package/src/operations/groups/getGroupsList.graphql +38 -0
  7. package/src/operations/groups/updateGroup.graphql +6 -0
  8. package/src/operations/me/me.graphql +4 -0
  9. package/src/operations/permissions/getPermissionsList.graphql +45 -0
  10. package/src/operations/permissions/updatePermission.graphql +6 -0
  11. package/src/operations/resources/updateResource.graphql +6 -0
  12. package/src/operations/role-permissions/role-permissions.graphql +39 -0
  13. package/src/operations/roles/getRoles.graphql +12 -0
  14. package/src/operations/roles/getRolesList.graphql +38 -0
  15. package/src/operations/roles/updateRole.graphql +6 -0
  16. package/src/operations/user-permissions/user-permissions.graphql +39 -0
  17. package/src/operations/users/getUsers.graphql +26 -0
  18. package/src/operations/users/getUsersList.graphql +43 -0
  19. package/src/operations/users/updateUser.graphql +6 -0
  20. package/src/schema/auth/inputs/is-authorized.graphql +7 -0
  21. package/src/schema/auth/queries/is-authorized.graphql +3 -0
  22. package/src/schema/groups/types/group-searchable-field.graphql +1 -0
  23. package/src/schema/groups/types/group.graphql +3 -0
  24. package/src/schema/permissions/types/permission.graphql +2 -0
  25. package/src/schema/project-role-permissions/types/project-role-permission.graphql +27 -0
  26. package/src/schema/project-user-groups/types/project-user-group.graphql +27 -0
  27. package/src/schema/project-user-permissions/types/project-user-permission.graphql +27 -0
  28. package/src/schema/projects/inputs/sync-project-cdm.graphql +27 -0
  29. package/src/schema/role-permissions/inputs/assign-role-permission.graphql +5 -0
  30. package/src/schema/role-permissions/inputs/query-role-permissions.graphql +4 -0
  31. package/src/schema/role-permissions/inputs/revoke-role-permission.graphql +6 -0
  32. package/src/schema/role-permissions/mutations/assign-role-permission.graphql +3 -0
  33. package/src/schema/role-permissions/mutations/revoke-role-permission.graphql +3 -0
  34. package/src/schema/role-permissions/types/role-permission.graphql +10 -0
  35. package/src/schema/roles/inputs/create-role.graphql +1 -0
  36. package/src/schema/roles/types/role-searchable-field.graphql +1 -0
  37. package/src/schema/roles/types/role.graphql +5 -0
  38. package/src/schema/user-groups/inputs/add-user-group.graphql +4 -0
  39. package/src/schema/user-groups/inputs/query-user-groups.graphql +4 -0
  40. package/src/schema/user-groups/inputs/remove-user-group.graphql +4 -0
  41. package/src/schema/user-groups/types/user-group.graphql +10 -0
  42. package/src/schema/user-permissions/inputs/assign-user-permission.graphql +5 -0
  43. package/src/schema/user-permissions/inputs/query-user-permissions.graphql +4 -0
  44. package/src/schema/user-permissions/inputs/revoke-user-permission.graphql +6 -0
  45. package/src/schema/user-permissions/mutations/assign-user-permission.graphql +3 -0
  46. package/src/schema/user-permissions/mutations/revoke-user-permission.graphql +3 -0
  47. package/src/schema/user-permissions/types/user-permission.graphql +10 -0
  48. package/src/schema/users/inputs/create-user.graphql +2 -0
  49. package/src/schema/users/inputs/update-user.graphql +1 -0
  50. package/src/schema/users/types/user.graphql +7 -0
@@ -260,6 +260,12 @@ export type AddProjectRoleInput = {
260
260
  roleId: Scalars['ID']['input'];
261
261
  };
262
262
 
263
+ export type AddProjectRolePermissionInput = {
264
+ permissionId: Scalars['ID']['input'];
265
+ projectId: Scalars['ID']['input'];
266
+ roleId: Scalars['ID']['input'];
267
+ };
268
+
263
269
  export type AddProjectTagInput = {
264
270
  isPrimary?: InputMaybe<Scalars['Boolean']['input']>;
265
271
  projectId: Scalars['ID']['input'];
@@ -274,12 +280,24 @@ export type AddProjectUserApiKeyInput = {
274
280
  userId: Scalars['ID']['input'];
275
281
  };
276
282
 
283
+ export type AddProjectUserGroupInput = {
284
+ groupId: Scalars['ID']['input'];
285
+ projectId: Scalars['ID']['input'];
286
+ userId: Scalars['ID']['input'];
287
+ };
288
+
277
289
  export type AddProjectUserInput = {
278
290
  metadata?: InputMaybe<Scalars['JSON']['input']>;
279
291
  projectId: Scalars['ID']['input'];
280
292
  userId: Scalars['ID']['input'];
281
293
  };
282
294
 
295
+ export type AddProjectUserPermissionInput = {
296
+ permissionId: Scalars['ID']['input'];
297
+ projectId: Scalars['ID']['input'];
298
+ userId: Scalars['ID']['input'];
299
+ };
300
+
283
301
  export type AddResourceTagInput = {
284
302
  isPrimary?: InputMaybe<Scalars['Boolean']['input']>;
285
303
  resourceId: Scalars['ID']['input'];
@@ -297,6 +315,11 @@ export type AddRoleTagInput = {
297
315
  tagId: Scalars['ID']['input'];
298
316
  };
299
317
 
318
+ export type AddUserGroupInput = {
319
+ groupId: Scalars['ID']['input'];
320
+ userId: Scalars['ID']['input'];
321
+ };
322
+
300
323
  export type AddUserRoleInput = {
301
324
  roleId: Scalars['ID']['input'];
302
325
  userId: Scalars['ID']['input'];
@@ -354,6 +377,18 @@ export enum ApiKeySortableField {
354
377
  Name = 'name',
355
378
  }
356
379
 
380
+ export type AssignRolePermissionInput = {
381
+ permissionId: Scalars['ID']['input'];
382
+ roleId: Scalars['ID']['input'];
383
+ scope: Scope;
384
+ };
385
+
386
+ export type AssignUserPermissionInput = {
387
+ permissionId: Scalars['ID']['input'];
388
+ scope: Scope;
389
+ userId: Scalars['ID']['input'];
390
+ };
391
+
357
392
  export type Auditable = {
358
393
  createdAt: Scalars['Date']['output'];
359
394
  deletedAt?: Maybe<Scalars['Date']['output']>;
@@ -595,6 +630,7 @@ export type CreateRoleInput = {
595
630
  groupIds?: InputMaybe<Array<Scalars['ID']['input']>>;
596
631
  metadata?: InputMaybe<Scalars['JSON']['input']>;
597
632
  name: Scalars['String']['input'];
633
+ permissionIds?: InputMaybe<Array<Scalars['ID']['input']>>;
598
634
  primaryTagId?: InputMaybe<Scalars['ID']['input']>;
599
635
  scope: Scope;
600
636
  tagIds?: InputMaybe<Array<Scalars['ID']['input']>>;
@@ -617,8 +653,10 @@ export type CreateUserAuthenticationMethodInput = {
617
653
  };
618
654
 
619
655
  export type CreateUserInput = {
656
+ groupIds?: InputMaybe<Array<Scalars['ID']['input']>>;
620
657
  metadata?: InputMaybe<Scalars['JSON']['input']>;
621
658
  name: Scalars['String']['input'];
659
+ permissionIds?: InputMaybe<Array<Scalars['ID']['input']>>;
622
660
  pictureUrl?: InputMaybe<Scalars['String']['input']>;
623
661
  primaryTagId?: InputMaybe<Scalars['ID']['input']>;
624
662
  roleIds?: InputMaybe<Array<Scalars['ID']['input']>>;
@@ -697,7 +735,10 @@ export type Group = Auditable & {
697
735
  id: Scalars['ID']['output'];
698
736
  metadata: Scalars['JSON']['output'];
699
737
  name: Scalars['String']['output'];
738
+ permissionCount: Scalars['Int']['output'];
700
739
  permissions?: Maybe<Array<Permission>>;
740
+ primaryTag?: Maybe<Tag>;
741
+ tagCount: Scalars['Int']['output'];
701
742
  tags?: Maybe<Array<Tag>>;
702
743
  updatedAt: Scalars['Date']['output'];
703
744
  };
@@ -709,6 +750,11 @@ export type GroupCdmInput = {
709
750
  name: Scalars['String']['input'];
710
751
  permissions?: InputMaybe<Array<Scalars['String']['input']>>;
711
752
  primaryTag?: InputMaybe<Scalars['String']['input']>;
753
+ /**
754
+ * Denormalized search tokens for list views (email, legacy ids, etc.).
755
+ * Also persisted under metadata.cdmSource.searchable on import.
756
+ */
757
+ searchable?: InputMaybe<Scalars['JSON']['input']>;
712
758
  tags?: InputMaybe<Array<Scalars['String']['input']>>;
713
759
  };
714
760
 
@@ -742,6 +788,7 @@ export type GroupPermissionPermissionArgs = {
742
788
  export enum GroupSearchableField {
743
789
  Description = 'description',
744
790
  Name = 'name',
791
+ SearchDocument = 'searchDocument',
745
792
  }
746
793
 
747
794
  export type GroupSortInput = {
@@ -784,6 +831,13 @@ export type IsAuthorizedContextInput = {
784
831
  resource?: InputMaybe<Scalars['JSON']['input']>;
785
832
  };
786
833
 
834
+ /**
835
+ * Check whether the authenticated principal may perform an action on a resource.
836
+ *
837
+ * Unions Role → Group → Permission, User → Group → Permission, Role → Permission,
838
+ * and User → Permission before matching the requested resource and action.
839
+ * Conditional permissions are evaluated against role/group/user execution context.
840
+ */
787
841
  export type IsAuthorizedInput = {
788
842
  context: IsAuthorizedContextInput;
789
843
  permission: IsAuthorizedPermissionInput;
@@ -878,6 +932,8 @@ export type Mutation = {
878
932
  __typename?: 'Mutation';
879
933
  _empty?: Maybe<Scalars['String']['output']>;
880
934
  acceptInvitation: AcceptInvitationResult;
935
+ assignRolePermission: RolePermission;
936
+ assignUserPermission: UserPermission;
881
937
  /**
882
938
  * Cancel a pending or running project CDM sync job. Cancellation is
883
939
  * immediate when the job is still PENDING; if the job is already RUNNING, the
@@ -929,6 +985,8 @@ export type Mutation = {
929
985
  revokeApiKey: ApiKey;
930
986
  revokeInvitation: OrganizationInvitation;
931
987
  revokeMyUserSession: RevokeMyUserSessionResult;
988
+ revokeRolePermission: RolePermission;
989
+ revokeUserPermission: UserPermission;
932
990
  /**
933
991
  * Rotate the signing key for the given scope: create a new active key and mark the previous one as rotated.
934
992
  * Allowed scopes: accountProject, organizationProject only.
@@ -985,6 +1043,14 @@ export type MutationAcceptInvitationArgs = {
985
1043
  input: AcceptInvitationInput;
986
1044
  };
987
1045
 
1046
+ export type MutationAssignRolePermissionArgs = {
1047
+ input: AssignRolePermissionInput;
1048
+ };
1049
+
1050
+ export type MutationAssignUserPermissionArgs = {
1051
+ input: AssignUserPermissionInput;
1052
+ };
1053
+
988
1054
  export type MutationCancelProjectSyncArgs = {
989
1055
  id: Scalars['ID']['input'];
990
1056
  jobId: Scalars['ID']['input'];
@@ -1160,6 +1226,14 @@ export type MutationRevokeMyUserSessionArgs = {
1160
1226
  id: Scalars['ID']['input'];
1161
1227
  };
1162
1228
 
1229
+ export type MutationRevokeRolePermissionArgs = {
1230
+ input: RevokeRolePermissionInput;
1231
+ };
1232
+
1233
+ export type MutationRevokeUserPermissionArgs = {
1234
+ input: RevokeUserPermissionInput;
1235
+ };
1236
+
1163
1237
  export type MutationRotateSigningKeyArgs = {
1164
1238
  scope: Scope;
1165
1239
  };
@@ -1524,8 +1598,10 @@ export type Permission = Auditable & {
1524
1598
  id: Scalars['ID']['output'];
1525
1599
  metadata: Scalars['JSON']['output'];
1526
1600
  name: Scalars['String']['output'];
1601
+ primaryTag?: Maybe<Tag>;
1527
1602
  resource?: Maybe<Resource>;
1528
1603
  resourceId?: Maybe<Scalars['ID']['output']>;
1604
+ tagCount: Scalars['Int']['output'];
1529
1605
  tags?: Maybe<Array<Tag>>;
1530
1606
  updatedAt: Scalars['Date']['output'];
1531
1607
  };
@@ -1737,6 +1813,17 @@ export type ProjectRoleProjectArgs = {
1737
1813
  organizationId: Scalars['ID']['input'];
1738
1814
  };
1739
1815
 
1816
+ export type ProjectRolePermission = Auditable & {
1817
+ __typename?: 'ProjectRolePermission';
1818
+ createdAt: Scalars['Date']['output'];
1819
+ deletedAt?: Maybe<Scalars['Date']['output']>;
1820
+ id: Scalars['ID']['output'];
1821
+ permissionId: Scalars['ID']['output'];
1822
+ projectId: Scalars['ID']['output'];
1823
+ roleId: Scalars['ID']['output'];
1824
+ updatedAt: Scalars['Date']['output'];
1825
+ };
1826
+
1740
1827
  export enum ProjectSearchableField {
1741
1828
  Description = 'description',
1742
1829
  Name = 'name',
@@ -1866,12 +1953,35 @@ export type ProjectUserApiKey = Auditable & {
1866
1953
  userId: Scalars['ID']['output'];
1867
1954
  };
1868
1955
 
1956
+ export type ProjectUserGroup = Auditable & {
1957
+ __typename?: 'ProjectUserGroup';
1958
+ createdAt: Scalars['Date']['output'];
1959
+ deletedAt?: Maybe<Scalars['Date']['output']>;
1960
+ groupId: Scalars['ID']['output'];
1961
+ id: Scalars['ID']['output'];
1962
+ projectId: Scalars['ID']['output'];
1963
+ updatedAt: Scalars['Date']['output'];
1964
+ userId: Scalars['ID']['output'];
1965
+ };
1966
+
1967
+ export type ProjectUserPermission = Auditable & {
1968
+ __typename?: 'ProjectUserPermission';
1969
+ createdAt: Scalars['Date']['output'];
1970
+ deletedAt?: Maybe<Scalars['Date']['output']>;
1971
+ id: Scalars['ID']['output'];
1972
+ permissionId: Scalars['ID']['output'];
1973
+ projectId: Scalars['ID']['output'];
1974
+ updatedAt: Scalars['Date']['output'];
1975
+ userId: Scalars['ID']['output'];
1976
+ };
1977
+
1869
1978
  export type Query = {
1870
1979
  __typename?: 'Query';
1871
1980
  _empty?: Maybe<Scalars['String']['output']>;
1872
1981
  apiKeys: ApiKeyPage;
1873
1982
  groups: GroupPage;
1874
1983
  invitation?: Maybe<OrganizationInvitation>;
1984
+ /** Evaluate authorization for the current session or API key token. */
1875
1985
  isAuthorized: AuthorizationResult;
1876
1986
  me: MeResponse;
1877
1987
  myMfaDevices: Array<MfaDevice>;
@@ -2167,6 +2277,12 @@ export type QueryProjectResourcesInput = {
2167
2277
  resourceId?: InputMaybe<Scalars['ID']['input']>;
2168
2278
  };
2169
2279
 
2280
+ export type QueryProjectRolePermissionsInput = {
2281
+ permissionId?: InputMaybe<Scalars['ID']['input']>;
2282
+ projectId?: InputMaybe<Scalars['ID']['input']>;
2283
+ roleId?: InputMaybe<Scalars['ID']['input']>;
2284
+ };
2285
+
2170
2286
  export type QueryProjectRolesInput = {
2171
2287
  projectId: Scalars['ID']['input'];
2172
2288
  };
@@ -2181,6 +2297,18 @@ export type QueryProjectUserApiKeysInput = {
2181
2297
  userId: Scalars['ID']['input'];
2182
2298
  };
2183
2299
 
2300
+ export type QueryProjectUserGroupsInput = {
2301
+ groupId?: InputMaybe<Scalars['ID']['input']>;
2302
+ projectId?: InputMaybe<Scalars['ID']['input']>;
2303
+ userId?: InputMaybe<Scalars['ID']['input']>;
2304
+ };
2305
+
2306
+ export type QueryProjectUserPermissionsInput = {
2307
+ permissionId?: InputMaybe<Scalars['ID']['input']>;
2308
+ projectId?: InputMaybe<Scalars['ID']['input']>;
2309
+ userId?: InputMaybe<Scalars['ID']['input']>;
2310
+ };
2311
+
2184
2312
  export type QueryProjectUsersInput = {
2185
2313
  projectId?: InputMaybe<Scalars['ID']['input']>;
2186
2314
  userId?: InputMaybe<Scalars['ID']['input']>;
@@ -2196,11 +2324,26 @@ export type QueryRoleGroupsInput = {
2196
2324
  roleId?: InputMaybe<Scalars['ID']['input']>;
2197
2325
  };
2198
2326
 
2327
+ export type QueryRolePermissionsInput = {
2328
+ permissionId?: InputMaybe<Scalars['ID']['input']>;
2329
+ roleId?: InputMaybe<Scalars['ID']['input']>;
2330
+ };
2331
+
2199
2332
  export type QueryRoleTagsInput = {
2200
2333
  roleId?: InputMaybe<Scalars['ID']['input']>;
2201
2334
  tagId?: InputMaybe<Scalars['ID']['input']>;
2202
2335
  };
2203
2336
 
2337
+ export type QueryUserGroupsInput = {
2338
+ groupId?: InputMaybe<Scalars['ID']['input']>;
2339
+ userId?: InputMaybe<Scalars['ID']['input']>;
2340
+ };
2341
+
2342
+ export type QueryUserPermissionsInput = {
2343
+ permissionId?: InputMaybe<Scalars['ID']['input']>;
2344
+ userId?: InputMaybe<Scalars['ID']['input']>;
2345
+ };
2346
+
2204
2347
  export type QueryUserRolesInput = {
2205
2348
  roleId?: InputMaybe<Scalars['ID']['input']>;
2206
2349
  userId?: InputMaybe<Scalars['ID']['input']>;
@@ -2341,6 +2484,12 @@ export type RemoveProjectRoleInput = {
2341
2484
  roleId: Scalars['ID']['input'];
2342
2485
  };
2343
2486
 
2487
+ export type RemoveProjectRolePermissionInput = {
2488
+ permissionId: Scalars['ID']['input'];
2489
+ projectId: Scalars['ID']['input'];
2490
+ roleId: Scalars['ID']['input'];
2491
+ };
2492
+
2344
2493
  export type RemoveProjectTagInput = {
2345
2494
  projectId: Scalars['ID']['input'];
2346
2495
  tagId: Scalars['ID']['input'];
@@ -2352,11 +2501,23 @@ export type RemoveProjectUserApiKeyInput = {
2352
2501
  userId: Scalars['ID']['input'];
2353
2502
  };
2354
2503
 
2504
+ export type RemoveProjectUserGroupInput = {
2505
+ groupId: Scalars['ID']['input'];
2506
+ projectId: Scalars['ID']['input'];
2507
+ userId: Scalars['ID']['input'];
2508
+ };
2509
+
2355
2510
  export type RemoveProjectUserInput = {
2356
2511
  projectId: Scalars['ID']['input'];
2357
2512
  userId: Scalars['ID']['input'];
2358
2513
  };
2359
2514
 
2515
+ export type RemoveProjectUserPermissionInput = {
2516
+ permissionId: Scalars['ID']['input'];
2517
+ projectId: Scalars['ID']['input'];
2518
+ userId: Scalars['ID']['input'];
2519
+ };
2520
+
2360
2521
  export type RemoveResourceTagInput = {
2361
2522
  resourceId: Scalars['ID']['input'];
2362
2523
  tagId: Scalars['ID']['input'];
@@ -2372,6 +2533,11 @@ export type RemoveRoleTagInput = {
2372
2533
  tagId: Scalars['ID']['input'];
2373
2534
  };
2374
2535
 
2536
+ export type RemoveUserGroupInput = {
2537
+ groupId: Scalars['ID']['input'];
2538
+ userId: Scalars['ID']['input'];
2539
+ };
2540
+
2375
2541
  export type RemoveUserRoleInput = {
2376
2542
  roleId: Scalars['ID']['input'];
2377
2543
  userId: Scalars['ID']['input'];
@@ -2501,27 +2667,55 @@ export type RevokeMyUserSessionResult = {
2501
2667
  success: Scalars['Boolean']['output'];
2502
2668
  };
2503
2669
 
2670
+ export type RevokeRolePermissionInput = {
2671
+ hardDelete?: InputMaybe<Scalars['Boolean']['input']>;
2672
+ permissionId: Scalars['ID']['input'];
2673
+ roleId: Scalars['ID']['input'];
2674
+ scope: Scope;
2675
+ };
2676
+
2677
+ export type RevokeUserPermissionInput = {
2678
+ hardDelete?: InputMaybe<Scalars['Boolean']['input']>;
2679
+ permissionId: Scalars['ID']['input'];
2680
+ scope: Scope;
2681
+ userId: Scalars['ID']['input'];
2682
+ };
2683
+
2504
2684
  export type Role = Auditable & {
2505
2685
  __typename?: 'Role';
2506
2686
  createdAt: Scalars['Date']['output'];
2507
2687
  deletedAt?: Maybe<Scalars['Date']['output']>;
2508
2688
  description?: Maybe<Scalars['String']['output']>;
2689
+ groupCount: Scalars['Int']['output'];
2509
2690
  groups?: Maybe<Array<Group>>;
2510
2691
  id: Scalars['ID']['output'];
2511
2692
  metadata: Scalars['JSON']['output'];
2512
2693
  name: Scalars['String']['output'];
2694
+ permissionCount: Scalars['Int']['output'];
2695
+ primaryTag?: Maybe<Tag>;
2696
+ rolePermissions?: Maybe<Array<RolePermission>>;
2697
+ tagCount: Scalars['Int']['output'];
2513
2698
  tags?: Maybe<Array<Tag>>;
2514
2699
  updatedAt: Scalars['Date']['output'];
2515
2700
  };
2516
2701
 
2517
2702
  export type RoleCdmInput = {
2518
2703
  description?: InputMaybe<Scalars['String']['input']>;
2704
+ /**
2705
+ * Group keys from the `groups` section. When set, permissions are linked via
2706
+ * Role → Group → Permission. Omit to use direct `permissions` on the role.
2707
+ */
2519
2708
  groups?: InputMaybe<Array<Scalars['String']['input']>>;
2520
2709
  key: Scalars['String']['input'];
2521
2710
  metadata?: InputMaybe<Scalars['JSON']['input']>;
2522
2711
  name: Scalars['String']['input'];
2712
+ /**
2713
+ * Permission document keys or catalog refs (`resourceSlug:action`). Used for
2714
+ * direct Role → Permission when `groups` is empty.
2715
+ */
2523
2716
  permissions?: InputMaybe<Array<Scalars['String']['input']>>;
2524
2717
  primaryTag?: InputMaybe<Scalars['String']['input']>;
2718
+ searchable?: InputMaybe<Scalars['JSON']['input']>;
2525
2719
  tags?: InputMaybe<Array<Scalars['String']['input']>>;
2526
2720
  };
2527
2721
 
@@ -2552,9 +2746,30 @@ export type RolePage = PaginatedResults & {
2552
2746
  totalCount: Scalars['Int']['output'];
2553
2747
  };
2554
2748
 
2749
+ export type RolePermission = Auditable & {
2750
+ __typename?: 'RolePermission';
2751
+ createdAt: Scalars['Date']['output'];
2752
+ deletedAt?: Maybe<Scalars['Date']['output']>;
2753
+ id: Scalars['ID']['output'];
2754
+ permission?: Maybe<Permission>;
2755
+ permissionId: Scalars['ID']['output'];
2756
+ role?: Maybe<Role>;
2757
+ roleId: Scalars['ID']['output'];
2758
+ updatedAt: Scalars['Date']['output'];
2759
+ };
2760
+
2761
+ export type RolePermissionPermissionArgs = {
2762
+ scope: Scope;
2763
+ };
2764
+
2765
+ export type RolePermissionRoleArgs = {
2766
+ scope: Scope;
2767
+ };
2768
+
2555
2769
  export enum RoleSearchableField {
2556
2770
  Description = 'description',
2557
2771
  Name = 'name',
2772
+ SearchDocument = 'searchDocument',
2558
2773
  }
2559
2774
 
2560
2775
  export type RoleSortInput = {
@@ -2948,6 +3163,7 @@ export type UpdateUserAuthenticationMethodInput = {
2948
3163
  };
2949
3164
 
2950
3165
  export type UpdateUserInput = {
3166
+ groupIds?: InputMaybe<Array<Scalars['ID']['input']>>;
2951
3167
  metadata?: InputMaybe<Scalars['JSON']['input']>;
2952
3168
  name?: InputMaybe<Scalars['String']['input']>;
2953
3169
  pictureUrl?: InputMaybe<Scalars['String']['input']>;
@@ -2999,10 +3215,17 @@ export type User = Auditable & {
2999
3215
  id: Scalars['ID']['output'];
3000
3216
  metadata: Scalars['JSON']['output'];
3001
3217
  name: Scalars['String']['output'];
3218
+ permissionCount: Scalars['Int']['output'];
3002
3219
  pictureUrl?: Maybe<Scalars['String']['output']>;
3220
+ primaryTag?: Maybe<Tag>;
3221
+ projectUserApiKeyCount: Scalars['Int']['output'];
3222
+ roleCount: Scalars['Int']['output'];
3003
3223
  roles?: Maybe<Array<Role>>;
3224
+ tagCount: Scalars['Int']['output'];
3004
3225
  tags?: Maybe<Array<Tag>>;
3005
3226
  updatedAt: Scalars['Date']['output'];
3227
+ userGroups?: Maybe<Array<UserGroup>>;
3228
+ userPermissions?: Maybe<Array<UserPermission>>;
3006
3229
  };
3007
3230
 
3008
3231
  export type UserApiKeyCdmInput = {
@@ -3045,13 +3268,18 @@ export enum UserAuthenticationMethodProvider {
3045
3268
 
3046
3269
  export type UserCdmInput = {
3047
3270
  apiKeys?: InputMaybe<Array<UserApiKeyCdmInput>>;
3271
+ /** Direct group assignment. Each key must appear in the document `groups` section. */
3048
3272
  groups?: InputMaybe<Array<Scalars['String']['input']>>;
3049
3273
  key: CdmKeyResolverInput;
3050
3274
  metadata?: InputMaybe<Scalars['JSON']['input']>;
3051
3275
  name: Scalars['String']['input'];
3276
+ /** Direct user → permission grants (document keys or catalog `resourceSlug:action` refs). */
3052
3277
  permissions?: InputMaybe<Array<Scalars['String']['input']>>;
3053
3278
  primaryTag?: InputMaybe<Scalars['String']['input']>;
3279
+ /** Role template keys from the `roles` section. */
3054
3280
  roles?: InputMaybe<Array<Scalars['String']['input']>>;
3281
+ /** Denormalized search tokens for project-scoped user list views. */
3282
+ searchable?: InputMaybe<Scalars['JSON']['input']>;
3055
3283
  tags?: InputMaybe<Array<Scalars['String']['input']>>;
3056
3284
  };
3057
3285
 
@@ -3075,6 +3303,26 @@ export type UserExportData = {
3075
3303
  updatedAt: Scalars['Date']['output'];
3076
3304
  };
3077
3305
 
3306
+ export type UserGroup = Auditable & {
3307
+ __typename?: 'UserGroup';
3308
+ createdAt: Scalars['Date']['output'];
3309
+ deletedAt?: Maybe<Scalars['Date']['output']>;
3310
+ group?: Maybe<Group>;
3311
+ groupId: Scalars['ID']['output'];
3312
+ id: Scalars['ID']['output'];
3313
+ updatedAt: Scalars['Date']['output'];
3314
+ user?: Maybe<User>;
3315
+ userId: Scalars['ID']['output'];
3316
+ };
3317
+
3318
+ export type UserGroupGroupArgs = {
3319
+ scope: Scope;
3320
+ };
3321
+
3322
+ export type UserGroupUserArgs = {
3323
+ scope: Scope;
3324
+ };
3325
+
3078
3326
  export type UserPage = PaginatedResults & {
3079
3327
  __typename?: 'UserPage';
3080
3328
  hasNextPage: Scalars['Boolean']['output'];
@@ -3082,6 +3330,26 @@ export type UserPage = PaginatedResults & {
3082
3330
  users: Array<User>;
3083
3331
  };
3084
3332
 
3333
+ export type UserPermission = Auditable & {
3334
+ __typename?: 'UserPermission';
3335
+ createdAt: Scalars['Date']['output'];
3336
+ deletedAt?: Maybe<Scalars['Date']['output']>;
3337
+ id: Scalars['ID']['output'];
3338
+ permission?: Maybe<Permission>;
3339
+ permissionId: Scalars['ID']['output'];
3340
+ updatedAt: Scalars['Date']['output'];
3341
+ user?: Maybe<User>;
3342
+ userId: Scalars['ID']['output'];
3343
+ };
3344
+
3345
+ export type UserPermissionPermissionArgs = {
3346
+ scope: Scope;
3347
+ };
3348
+
3349
+ export type UserPermissionUserArgs = {
3350
+ scope: Scope;
3351
+ };
3352
+
3085
3353
  export type UserRegistrationData = {
3086
3354
  name: Scalars['String']['input'];
3087
3355
  password: Scalars['String']['input'];
package/src/index.ts CHANGED
@@ -18,8 +18,10 @@ export type {
18
18
  ResolversTypes,
19
19
  ResolverTypeWrapper,
20
20
  ResourceResolvers,
21
+ RolePermissionResolvers,
21
22
  RoleResolvers,
22
23
  TagResolvers,
24
+ UserPermissionResolvers,
23
25
  UserResolvers,
24
26
  } from './generated/resolvers';
25
27
  export * from './generated/schema-types';
@@ -0,0 +1,38 @@
1
+ query GetGroupsList(
2
+ $scope: Scope!
3
+ $page: Int
4
+ $limit: Int
5
+ $sort: GroupSortInput
6
+ $search: String
7
+ $ids: [ID!]
8
+ $tagIds: [ID!]
9
+ ) {
10
+ groups(
11
+ scope: $scope
12
+ page: $page
13
+ limit: $limit
14
+ sort: $sort
15
+ search: $search
16
+ ids: $ids
17
+ tagIds: $tagIds
18
+ ) {
19
+ groups {
20
+ id
21
+ name
22
+ description
23
+ metadata
24
+ createdAt
25
+ updatedAt
26
+ primaryTag {
27
+ id
28
+ name
29
+ color
30
+ isPrimary
31
+ }
32
+ permissionCount
33
+ tagCount
34
+ }
35
+ totalCount
36
+ hasNextPage
37
+ }
38
+ }
@@ -6,5 +6,11 @@ mutation UpdateGroup($id: ID!, $input: UpdateGroupInput!) {
6
6
  metadata
7
7
  createdAt
8
8
  updatedAt
9
+ tags {
10
+ id
11
+ name
12
+ color
13
+ isPrimary
14
+ }
9
15
  }
10
16
  }
@@ -11,6 +11,10 @@ query Me {
11
11
  name
12
12
  pictureUrl
13
13
  metadata
14
+ roleCount
15
+ permissionCount
16
+ projectUserApiKeyCount
17
+ tagCount
14
18
  createdAt
15
19
  updatedAt
16
20
  }
@@ -0,0 +1,45 @@
1
+ query GetPermissionsList(
2
+ $scope: Scope!
3
+ $page: Int
4
+ $limit: Int
5
+ $sort: PermissionSortInput
6
+ $search: String
7
+ $ids: [ID!]
8
+ $tagIds: [ID!]
9
+ ) {
10
+ permissions(
11
+ scope: $scope
12
+ page: $page
13
+ limit: $limit
14
+ sort: $sort
15
+ search: $search
16
+ ids: $ids
17
+ tagIds: $tagIds
18
+ ) {
19
+ permissions {
20
+ id
21
+ name
22
+ action
23
+ description
24
+ metadata
25
+ resourceId
26
+ condition
27
+ createdAt
28
+ updatedAt
29
+ primaryTag {
30
+ id
31
+ name
32
+ color
33
+ isPrimary
34
+ }
35
+ resource {
36
+ id
37
+ name
38
+ slug
39
+ }
40
+ tagCount
41
+ }
42
+ totalCount
43
+ hasNextPage
44
+ }
45
+ }
@@ -13,5 +13,11 @@ mutation UpdatePermission($id: ID!, $input: UpdatePermissionInput!) {
13
13
  condition
14
14
  createdAt
15
15
  updatedAt
16
+ tags {
17
+ id
18
+ name
19
+ color
20
+ isPrimary
21
+ }
16
22
  }
17
23
  }
@@ -8,5 +8,11 @@ mutation UpdateResource($id: ID!, $input: UpdateResourceInput!) {
8
8
  isActive
9
9
  createdAt
10
10
  updatedAt
11
+ tags {
12
+ id
13
+ name
14
+ color
15
+ isPrimary
16
+ }
11
17
  }
12
18
  }