@iblai/iblai-api 4.41.1-core → 4.41.1-rbactest-core

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/sdk_schema.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  openapi: 3.0.3
2
2
  info:
3
3
  title: ibl-data-manager
4
- version: 4.41.1-core
4
+ version: 4.40.1-core
5
5
  description: API for iblai
6
6
  paths:
7
7
  /api/analytics/learners/:
@@ -14927,6 +14927,12 @@ paths:
14927
14927
  description: Retrieve a list of RBAC groups. Can be filtered by platform_key.
14928
14928
  summary: List RBAC groups
14929
14929
  parameters:
14930
+ - in: query
14931
+ name: owner
14932
+ schema:
14933
+ type: string
14934
+ minLength: 1
14935
+ description: Filter groups by owner username
14930
14936
  - name: page
14931
14937
  required: false
14932
14938
  in: query
@@ -14945,6 +14951,7 @@ paths:
14945
14951
  type: string
14946
14952
  minLength: 1
14947
14953
  description: Filter groups by platform key
14954
+ required: true
14948
14955
  tags:
14949
14956
  - core
14950
14957
  security:
@@ -15114,6 +15121,7 @@ paths:
15114
15121
  type: string
15115
15122
  minLength: 1
15116
15123
  description: platform key for authorization check
15124
+ required: true
15117
15125
  tags:
15118
15126
  - core
15119
15127
  security:
@@ -15123,6 +15131,88 @@ paths:
15123
15131
  description: Group deleted successfully
15124
15132
  '404':
15125
15133
  description: Group not found
15134
+ /api/core/rbac/mentor-access/:
15135
+ get:
15136
+ operationId: core_rbac_mentor_access_list
15137
+ description: Retrieve current access information for a specific mentor, including
15138
+ all groups and users that have access with their respective roles.
15139
+ summary: Get mentor access status
15140
+ parameters:
15141
+ - in: query
15142
+ name: mentor_id
15143
+ schema:
15144
+ type: integer
15145
+ description: ID of the mentor to get access information for
15146
+ required: true
15147
+ - in: query
15148
+ name: platform_key
15149
+ schema:
15150
+ type: string
15151
+ description: Platform key where the mentor belongs
15152
+ required: true
15153
+ tags:
15154
+ - core
15155
+ security:
15156
+ - PlatformApiKeyAuthentication: []
15157
+ responses:
15158
+ '200':
15159
+ content:
15160
+ application/json:
15161
+ schema:
15162
+ type: array
15163
+ items:
15164
+ $ref: '#/components/schemas/MentorPolicy'
15165
+ description: ''
15166
+ '400':
15167
+ description: Missing or invalid query parameters
15168
+ '403':
15169
+ description: Permission denied - ShareMentor permission required
15170
+ '404':
15171
+ description: Platform not found
15172
+ '500':
15173
+ description: Internal server error
15174
+ post:
15175
+ operationId: core_rbac_mentor_access_create
15176
+ description: Create or update RBAC policies to manage group and user access
15177
+ to specific mentors. Creates role-specific policies and handles adding/removing
15178
+ groups and users.
15179
+ summary: Control which RbacGroups and/or Users have access to a mentor and with
15180
+ what Role
15181
+ tags:
15182
+ - core
15183
+ requestBody:
15184
+ content:
15185
+ application/json:
15186
+ schema:
15187
+ $ref: '#/components/schemas/MentorPolicy'
15188
+ application/x-www-form-urlencoded:
15189
+ schema:
15190
+ $ref: '#/components/schemas/MentorPolicy'
15191
+ multipart/form-data:
15192
+ schema:
15193
+ $ref: '#/components/schemas/MentorPolicy'
15194
+ required: true
15195
+ security:
15196
+ - PlatformApiKeyAuthentication: []
15197
+ responses:
15198
+ '200':
15199
+ content:
15200
+ application/json:
15201
+ schema:
15202
+ $ref: '#/components/schemas/MentorPolicy'
15203
+ description: ''
15204
+ '201':
15205
+ content:
15206
+ application/json:
15207
+ schema:
15208
+ $ref: '#/components/schemas/MentorPolicy'
15209
+ description: ''
15210
+ '400':
15211
+ description: Invalid request data or validation errors
15212
+ '403':
15213
+ description: Permission denied - ShareMentor permission required
15214
+ '404':
15215
+ description: Platform or mentor not found
15126
15216
  /api/core/rbac/permissions/check/:
15127
15217
  post:
15128
15218
  operationId: core_rbac_permissions_check_create
@@ -15345,6 +15435,7 @@ paths:
15345
15435
  type: string
15346
15436
  minLength: 1
15347
15437
  description: platform key for authorization check
15438
+ required: true
15348
15439
  tags:
15349
15440
  - core
15350
15441
  security:
@@ -15535,6 +15626,7 @@ paths:
15535
15626
  type: string
15536
15627
  minLength: 1
15537
15628
  description: platform key for authorization check
15629
+ required: true
15538
15630
  tags:
15539
15631
  - core
15540
15632
  security:
@@ -15678,6 +15770,84 @@ paths:
15678
15770
  description: Permission denied - Tenant Admin access required
15679
15771
  '404':
15680
15772
  description: Platform not found
15773
+ /api/core/rbac/user-group-access/:
15774
+ get:
15775
+ operationId: core_rbac_user_group_access_retrieve
15776
+ description: Retrieve current group access information for a specific user,
15777
+ including all groups the user has access to and whether they have mentor management
15778
+ permissions.
15779
+ summary: Get user group access status
15780
+ parameters:
15781
+ - in: query
15782
+ name: platform_key
15783
+ schema:
15784
+ type: string
15785
+ description: Platform key where the groups exist
15786
+ required: true
15787
+ - in: query
15788
+ name: user_id
15789
+ schema:
15790
+ type: integer
15791
+ description: ID of the user to check group access for
15792
+ required: true
15793
+ tags:
15794
+ - core
15795
+ security:
15796
+ - PlatformApiKeyAuthentication: []
15797
+ responses:
15798
+ '200':
15799
+ content:
15800
+ application/json:
15801
+ schema:
15802
+ $ref: '#/components/schemas/UserGroupAccess'
15803
+ description: ''
15804
+ '400':
15805
+ description: Missing or invalid query parameters
15806
+ '404':
15807
+ description: Platform or user not found
15808
+ '500':
15809
+ description: Internal server error
15810
+ post:
15811
+ operationId: core_rbac_user_group_access_create
15812
+ description: Create or update user access to groups by adding/removing group
15813
+ access. Creates one policy per user with GROUP_MENTOR_MANAGER role for managing
15814
+ mentor access.
15815
+ summary: Manage user access to groups
15816
+ tags:
15817
+ - core
15818
+ requestBody:
15819
+ content:
15820
+ application/json:
15821
+ schema:
15822
+ $ref: '#/components/schemas/UserGroupAccess'
15823
+ application/x-www-form-urlencoded:
15824
+ schema:
15825
+ $ref: '#/components/schemas/UserGroupAccess'
15826
+ multipart/form-data:
15827
+ schema:
15828
+ $ref: '#/components/schemas/UserGroupAccess'
15829
+ required: true
15830
+ security:
15831
+ - PlatformApiKeyAuthentication: []
15832
+ responses:
15833
+ '200':
15834
+ content:
15835
+ application/json:
15836
+ schema:
15837
+ $ref: '#/components/schemas/UserGroupAccess'
15838
+ description: ''
15839
+ '201':
15840
+ content:
15841
+ application/json:
15842
+ schema:
15843
+ $ref: '#/components/schemas/UserGroupAccess'
15844
+ description: ''
15845
+ '400':
15846
+ description: Invalid request data or validation errors
15847
+ '404':
15848
+ description: Platform or user not found
15849
+ '500':
15850
+ description: Internal server error
15681
15851
  /api/core/session/logout/:
15682
15852
  post:
15683
15853
  operationId: core_session_logout_create
@@ -32071,6 +32241,76 @@ components:
32071
32241
  * `document` - Document
32072
32242
  * `audio` - Audio
32073
32243
  * `other` - Other
32244
+ MentorPolicy:
32245
+ type: object
32246
+ description: |-
32247
+ Serializer for mentor-specific RBAC policies using ModelSerializer pattern.
32248
+ Accepts mentor_id and role, generates resources and role internally.
32249
+ properties:
32250
+ id:
32251
+ type: integer
32252
+ readOnly: true
32253
+ name:
32254
+ type: string
32255
+ readOnly: true
32256
+ description: Policy name. If not supplied, defaults to a UUID4
32257
+ platform_key:
32258
+ type: string
32259
+ description: Platform key where the mentor belongs
32260
+ writeOnly: true
32261
+ mentor_id:
32262
+ type: integer
32263
+ writeOnly: true
32264
+ description: ID of the mentor to manage access for
32265
+ role:
32266
+ type: string
32267
+ description: Role for accessing this mentor (viewer or editor)
32268
+ resources:
32269
+ readOnly: true
32270
+ description: List of resources this policy applies to
32271
+ users:
32272
+ type: array
32273
+ items:
32274
+ $ref: '#/components/schemas/RbacUser'
32275
+ readOnly: true
32276
+ groups:
32277
+ type: array
32278
+ items:
32279
+ $ref: '#/components/schemas/RbacPolicyGroup'
32280
+ readOnly: true
32281
+ groups_to_add:
32282
+ type: array
32283
+ items:
32284
+ type: integer
32285
+ writeOnly: true
32286
+ description: List of group IDs to grant access to this mentor
32287
+ groups_to_remove:
32288
+ type: array
32289
+ items:
32290
+ type: integer
32291
+ writeOnly: true
32292
+ description: List of group IDs to revoke access from this mentor
32293
+ users_to_add:
32294
+ type: array
32295
+ items:
32296
+ type: integer
32297
+ writeOnly: true
32298
+ description: List of user IDs to grant access to this mentor
32299
+ users_to_remove:
32300
+ type: array
32301
+ items:
32302
+ type: integer
32303
+ writeOnly: true
32304
+ description: List of user IDs to revoke access from this mentor
32305
+ required:
32306
+ - groups
32307
+ - id
32308
+ - mentor_id
32309
+ - name
32310
+ - platform_key
32311
+ - resources
32312
+ - role
32313
+ - users
32074
32314
  MetricDetail:
32075
32315
  type: object
32076
32316
  description: Base serializer for detailed metric data.
@@ -33294,6 +33534,10 @@ components:
33294
33534
  description:
33295
33535
  type: string
33296
33536
  description: Optional group description
33537
+ owner:
33538
+ allOf:
33539
+ - $ref: '#/components/schemas/RbacUser'
33540
+ readOnly: true
33297
33541
  users:
33298
33542
  type: array
33299
33543
  items:
@@ -36494,6 +36738,10 @@ components:
36494
36738
  description:
36495
36739
  type: string
36496
36740
  description: Optional group description
36741
+ owner:
36742
+ allOf:
36743
+ - $ref: '#/components/schemas/RbacUser'
36744
+ readOnly: true
36497
36745
  users:
36498
36746
  type: array
36499
36747
  items:
@@ -36513,6 +36761,7 @@ components:
36513
36761
  description: List of user IDs to remove from this group
36514
36762
  required:
36515
36763
  - id
36764
+ - owner
36516
36765
  - platform
36517
36766
  - platform_key
36518
36767
  - unique_id
@@ -37990,9 +38239,6 @@ components:
37990
38239
  type: string
37991
38240
  description: 'List of LLM resource paths that students can access. Format:
37992
38241
  [''llms/openai/models/gpt-4'', ''llms/openai/'', ''llms/'']'
37993
- message:
37994
- type: string
37995
- description: Success message (only in set access response)
37996
38242
  required:
37997
38243
  - llm_resources
37998
38244
  - platform_key
@@ -38576,6 +38822,74 @@ components:
38576
38822
  type: string
38577
38823
  required:
38578
38824
  - message
38825
+ UserGroupAccess:
38826
+ type: object
38827
+ description: ModelSerializer for user group access policies
38828
+ properties:
38829
+ platform_key:
38830
+ type: string
38831
+ description: Platform key where the groups exist
38832
+ writeOnly: true
38833
+ user_id:
38834
+ type: integer
38835
+ description: ID of the user to manage group access for
38836
+ writeOnly: true
38837
+ groups_to_add:
38838
+ type: array
38839
+ items:
38840
+ type: integer
38841
+ writeOnly: true
38842
+ description: List of group IDs to grant access to
38843
+ groups_to_remove:
38844
+ type: array
38845
+ items:
38846
+ type: integer
38847
+ writeOnly: true
38848
+ description: List of group IDs to revoke access from
38849
+ policy_id:
38850
+ type: integer
38851
+ readOnly: true
38852
+ description: Policy ID
38853
+ policy_name:
38854
+ type: string
38855
+ readOnly: true
38856
+ description: Policy name
38857
+ groups_with_access:
38858
+ type: array
38859
+ items:
38860
+ $ref: '#/components/schemas/UserGroupAccessInfo'
38861
+ readOnly: true
38862
+ description: Groups with access
38863
+ required:
38864
+ - groups_with_access
38865
+ - platform_key
38866
+ - policy_id
38867
+ - policy_name
38868
+ - user_id
38869
+ UserGroupAccessInfo:
38870
+ type: object
38871
+ description: Serializer for group access information in responses
38872
+ properties:
38873
+ id:
38874
+ type: integer
38875
+ description: Group ID
38876
+ name:
38877
+ type: string
38878
+ description: Group name
38879
+ description:
38880
+ type: string
38881
+ description: Group description
38882
+ permissions:
38883
+ type: array
38884
+ items:
38885
+ type: string
38886
+ description: List of permissions user has for this group (e.g., ['read',
38887
+ 'manageMentors'])
38888
+ required:
38889
+ - description
38890
+ - id
38891
+ - name
38892
+ - permissions
38579
38893
  UserInfo:
38580
38894
  type: object
38581
38895
  description: Serializer for user information.
@@ -21,7 +21,7 @@ export type OpenAPIConfig = {
21
21
 
22
22
  export const OpenAPI: OpenAPIConfig = {
23
23
  BASE: 'https://base.manager.iblai.app',
24
- VERSION: '4.41.1-core',
24
+ VERSION: '4.40.1-core',
25
25
  WITH_CREDENTIALS: false,
26
26
  CREDENTIALS: 'include',
27
27
  TOKEN: undefined,
package/src/index.ts CHANGED
@@ -149,6 +149,7 @@ export type { MarkAllReadRequest } from './models/MarkAllReadRequest';
149
149
  export type { MarkAllReadResponse } from './models/MarkAllReadResponse';
150
150
  export type { MediaResource } from './models/MediaResource';
151
151
  export { MediaTypeEnum } from './models/MediaTypeEnum';
152
+ export type { MentorPolicy } from './models/MentorPolicy';
152
153
  export type { MetricDetail } from './models/MetricDetail';
153
154
  export { ModeEnum } from './models/ModeEnum';
154
155
  export type { NewPerLearnerList } from './models/NewPerLearnerList';
@@ -382,6 +383,8 @@ export type { UserApp } from './models/UserApp';
382
383
  export type { UserDeleteAPIError } from './models/UserDeleteAPIError';
383
384
  export type { UserDeleteAPIRequest } from './models/UserDeleteAPIRequest';
384
385
  export type { UserDeleteAPIResponse } from './models/UserDeleteAPIResponse';
386
+ export type { UserGroupAccess } from './models/UserGroupAccess';
387
+ export type { UserGroupAccessInfo } from './models/UserGroupAccessInfo';
385
388
  export type { UserInfo } from './models/UserInfo';
386
389
  export type { UserLicenseAssignmentCreate } from './models/UserLicenseAssignmentCreate';
387
390
  export type { UserLicenseAssignmentDetail } from './models/UserLicenseAssignmentDetail';
@@ -0,0 +1,52 @@
1
+ /* generated using openapi-typescript-codegen -- do not edit */
2
+ /* istanbul ignore file */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ import type { RbacPolicyGroup } from './RbacPolicyGroup';
6
+ import type { RbacUser } from './RbacUser';
7
+ /**
8
+ * Serializer for mentor-specific RBAC policies using ModelSerializer pattern.
9
+ * Accepts mentor_id and role, generates resources and role internally.
10
+ */
11
+ export type MentorPolicy = {
12
+ readonly id: number;
13
+ /**
14
+ * Policy name. If not supplied, defaults to a UUID4
15
+ */
16
+ readonly name: string;
17
+ /**
18
+ * Platform key where the mentor belongs
19
+ */
20
+ platform_key: string;
21
+ /**
22
+ * ID of the mentor to manage access for
23
+ */
24
+ mentor_id: number;
25
+ /**
26
+ * Role for accessing this mentor (viewer or editor)
27
+ */
28
+ role: string;
29
+ /**
30
+ * List of resources this policy applies to
31
+ */
32
+ readonly resources: any;
33
+ readonly users: Array<RbacUser>;
34
+ readonly groups: Array<RbacPolicyGroup>;
35
+ /**
36
+ * List of group IDs to grant access to this mentor
37
+ */
38
+ groups_to_add?: Array<number>;
39
+ /**
40
+ * List of group IDs to revoke access from this mentor
41
+ */
42
+ groups_to_remove?: Array<number>;
43
+ /**
44
+ * List of user IDs to grant access to this mentor
45
+ */
46
+ users_to_add?: Array<number>;
47
+ /**
48
+ * List of user IDs to revoke access from this mentor
49
+ */
50
+ users_to_remove?: Array<number>;
51
+ };
52
+
@@ -26,6 +26,7 @@ export type PatchedRbacGroup = {
26
26
  * Optional group description
27
27
  */
28
28
  description?: string;
29
+ readonly owner?: RbacUser;
29
30
  readonly users?: Array<RbacUser>;
30
31
  /**
31
32
  * List of user IDs to add to this group
@@ -26,6 +26,7 @@ export type RbacGroup = {
26
26
  * Optional group description
27
27
  */
28
28
  description?: string;
29
+ readonly owner: RbacUser;
29
30
  readonly users: Array<RbacUser>;
30
31
  /**
31
32
  * List of user IDs to add to this group
@@ -14,9 +14,5 @@ export type StudentLLMAccessResponse = {
14
14
  * List of LLM resource paths that students can access. Format: ['llms/openai/models/gpt-4', 'llms/openai/', 'llms/']
15
15
  */
16
16
  llm_resources: Array<string>;
17
- /**
18
- * Success message (only in set access response)
19
- */
20
- message?: string;
21
17
  };
22
18
 
@@ -0,0 +1,39 @@
1
+ /* generated using openapi-typescript-codegen -- do not edit */
2
+ /* istanbul ignore file */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ import type { UserGroupAccessInfo } from './UserGroupAccessInfo';
6
+ /**
7
+ * ModelSerializer for user group access policies
8
+ */
9
+ export type UserGroupAccess = {
10
+ /**
11
+ * Platform key where the groups exist
12
+ */
13
+ platform_key: string;
14
+ /**
15
+ * ID of the user to manage group access for
16
+ */
17
+ user_id: number;
18
+ /**
19
+ * List of group IDs to grant access to
20
+ */
21
+ groups_to_add?: Array<number>;
22
+ /**
23
+ * List of group IDs to revoke access from
24
+ */
25
+ groups_to_remove?: Array<number>;
26
+ /**
27
+ * Policy ID
28
+ */
29
+ readonly policy_id: number;
30
+ /**
31
+ * Policy name
32
+ */
33
+ readonly policy_name: string;
34
+ /**
35
+ * Groups with access
36
+ */
37
+ readonly groups_with_access: Array<UserGroupAccessInfo>;
38
+ };
39
+
@@ -0,0 +1,26 @@
1
+ /* generated using openapi-typescript-codegen -- do not edit */
2
+ /* istanbul ignore file */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ /**
6
+ * Serializer for group access information in responses
7
+ */
8
+ export type UserGroupAccessInfo = {
9
+ /**
10
+ * Group ID
11
+ */
12
+ id: number;
13
+ /**
14
+ * Group name
15
+ */
16
+ name: string;
17
+ /**
18
+ * Group description
19
+ */
20
+ description: string;
21
+ /**
22
+ * List of permissions user has for this group (e.g., ['read', 'manageMentors'])
23
+ */
24
+ permissions: Array<string>;
25
+ };
26
+