@nice2dev/ui-tools 1.0.10

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 (158) hide show
  1. package/README.md +36 -0
  2. package/dist/access-control.d.ts +726 -0
  3. package/dist/access-control.d.ts.map +1 -0
  4. package/dist/accessibility-i18n.d.ts +1017 -0
  5. package/dist/accessibility-i18n.d.ts.map +1 -0
  6. package/dist/ai-assistant.d.ts +263 -0
  7. package/dist/ai-assistant.d.ts.map +1 -0
  8. package/dist/ai-playgrounds.d.ts +842 -0
  9. package/dist/ai-playgrounds.d.ts.map +1 -0
  10. package/dist/alerting-incidents.d.ts +558 -0
  11. package/dist/alerting-incidents.d.ts.map +1 -0
  12. package/dist/api-designer.d.ts +1568 -0
  13. package/dist/api-designer.d.ts.map +1 -0
  14. package/dist/api-testing.d.ts +1146 -0
  15. package/dist/api-testing.d.ts.map +1 -0
  16. package/dist/apm-profiling.d.ts +656 -0
  17. package/dist/apm-profiling.d.ts.map +1 -0
  18. package/dist/artifacts.d.ts +421 -0
  19. package/dist/artifacts.d.ts.map +1 -0
  20. package/dist/audit-compliance.d.ts +752 -0
  21. package/dist/audit-compliance.d.ts.map +1 -0
  22. package/dist/certificates.d.ts +256 -0
  23. package/dist/certificates.d.ts.map +1 -0
  24. package/dist/chart-builder.d.ts +1404 -0
  25. package/dist/chart-builder.d.ts.map +1 -0
  26. package/dist/cloud-instances.d.ts +169 -0
  27. package/dist/cloud-instances.d.ts.map +1 -0
  28. package/dist/config-management.d.ts +350 -0
  29. package/dist/config-management.d.ts.map +1 -0
  30. package/dist/containers.d.ts +256 -0
  31. package/dist/containers.d.ts.map +1 -0
  32. package/dist/dashboard-designer.d.ts +1238 -0
  33. package/dist/dashboard-designer.d.ts.map +1 -0
  34. package/dist/data-management.d.ts +496 -0
  35. package/dist/data-management.d.ts.map +1 -0
  36. package/dist/data-pipeline.d.ts +1105 -0
  37. package/dist/data-pipeline.d.ts.map +1 -0
  38. package/dist/data-warehouse.d.ts +1097 -0
  39. package/dist/data-warehouse.d.ts.map +1 -0
  40. package/dist/dataset-management.d.ts +782 -0
  41. package/dist/dataset-management.d.ts.map +1 -0
  42. package/dist/db-adapters.d.ts +704 -0
  43. package/dist/db-adapters.d.ts.map +1 -0
  44. package/dist/db-admin.d.ts +699 -0
  45. package/dist/db-admin.d.ts.map +1 -0
  46. package/dist/db-designer.d.ts +366 -0
  47. package/dist/db-designer.d.ts.map +1 -0
  48. package/dist/debugger.d.ts +356 -0
  49. package/dist/debugger.d.ts.map +1 -0
  50. package/dist/device-management.d.ts +871 -0
  51. package/dist/device-management.d.ts.map +1 -0
  52. package/dist/distributed-tracing.d.ts +427 -0
  53. package/dist/distributed-tracing.d.ts.map +1 -0
  54. package/dist/dns-management.d.ts +215 -0
  55. package/dist/dns-management.d.ts.map +1 -0
  56. package/dist/download-manager.d.ts +271 -0
  57. package/dist/download-manager.d.ts.map +1 -0
  58. package/dist/download-torrent.d.ts +1062 -0
  59. package/dist/download-torrent.d.ts.map +1 -0
  60. package/dist/edge-computing.d.ts +720 -0
  61. package/dist/edge-computing.d.ts.map +1 -0
  62. package/dist/education.d.ts +1135 -0
  63. package/dist/education.d.ts.map +1 -0
  64. package/dist/email-template.d.ts +1141 -0
  65. package/dist/email-template.d.ts.map +1 -0
  66. package/dist/erp-enterprise.d.ts +1270 -0
  67. package/dist/erp-enterprise.d.ts.map +1 -0
  68. package/dist/form-builder.d.ts +1117 -0
  69. package/dist/form-builder.d.ts.map +1 -0
  70. package/dist/game-engine-advanced.d.ts +1049 -0
  71. package/dist/game-engine-advanced.d.ts.map +1 -0
  72. package/dist/git.d.ts +415 -0
  73. package/dist/git.d.ts.map +1 -0
  74. package/dist/hardware-integration.d.ts +966 -0
  75. package/dist/hardware-integration.d.ts.map +1 -0
  76. package/dist/iac.d.ts +318 -0
  77. package/dist/iac.d.ts.map +1 -0
  78. package/dist/icon-tools.d.ts +1023 -0
  79. package/dist/icon-tools.d.ts.map +1 -0
  80. package/dist/ide.d.ts +322 -0
  81. package/dist/ide.d.ts.map +1 -0
  82. package/dist/index.cjs +2 -0
  83. package/dist/index.cjs.map +1 -0
  84. package/dist/index.d.ts +176 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.mjs +1887 -0
  87. package/dist/index.mjs.map +1 -0
  88. package/dist/integration-platform.d.ts +857 -0
  89. package/dist/integration-platform.d.ts.map +1 -0
  90. package/dist/kubernetes.d.ts +278 -0
  91. package/dist/kubernetes.d.ts.map +1 -0
  92. package/dist/life-management.d.ts +1132 -0
  93. package/dist/life-management.d.ts.map +1 -0
  94. package/dist/log-management.d.ts +473 -0
  95. package/dist/log-management.d.ts.map +1 -0
  96. package/dist/mathematics.d.ts +870 -0
  97. package/dist/mathematics.d.ts.map +1 -0
  98. package/dist/message-queue.d.ts +1006 -0
  99. package/dist/message-queue.d.ts.map +1 -0
  100. package/dist/metrics-dashboard.d.ts +596 -0
  101. package/dist/metrics-dashboard.d.ts.map +1 -0
  102. package/dist/mobile-components.d.ts +766 -0
  103. package/dist/mobile-components.d.ts.map +1 -0
  104. package/dist/model-deployment.d.ts +787 -0
  105. package/dist/model-deployment.d.ts.map +1 -0
  106. package/dist/model-registry.d.ts +740 -0
  107. package/dist/model-registry.d.ts.map +1 -0
  108. package/dist/model-training.d.ts +706 -0
  109. package/dist/model-training.d.ts.map +1 -0
  110. package/dist/network-config.d.ts +334 -0
  111. package/dist/network-config.d.ts.map +1 -0
  112. package/dist/network-monitoring.d.ts +291 -0
  113. package/dist/network-monitoring.d.ts.map +1 -0
  114. package/dist/pdf-tools.d.ts +1003 -0
  115. package/dist/pdf-tools.d.ts.map +1 -0
  116. package/dist/pipelines.d.ts +250 -0
  117. package/dist/pipelines.d.ts.map +1 -0
  118. package/dist/remote-desktop.d.ts +207 -0
  119. package/dist/remote-desktop.d.ts.map +1 -0
  120. package/dist/report-designer.d.ts +1153 -0
  121. package/dist/report-designer.d.ts.map +1 -0
  122. package/dist/scada-industrial.d.ts +848 -0
  123. package/dist/scada-industrial.d.ts.map +1 -0
  124. package/dist/scientific-research.d.ts +1149 -0
  125. package/dist/scientific-research.d.ts.map +1 -0
  126. package/dist/secret-management.d.ts +617 -0
  127. package/dist/secret-management.d.ts.map +1 -0
  128. package/dist/security-scanning.d.ts +714 -0
  129. package/dist/security-scanning.d.ts.map +1 -0
  130. package/dist/self-service-analytics.d.ts +1208 -0
  131. package/dist/self-service-analytics.d.ts.map +1 -0
  132. package/dist/sensor-dashboard.d.ts +845 -0
  133. package/dist/sensor-dashboard.d.ts.map +1 -0
  134. package/dist/server-management.d.ts +331 -0
  135. package/dist/server-management.d.ts.map +1 -0
  136. package/dist/smart-home.d.ts +861 -0
  137. package/dist/smart-home.d.ts.map +1 -0
  138. package/dist/spreadsheet.d.ts +1043 -0
  139. package/dist/spreadsheet.d.ts.map +1 -0
  140. package/dist/sql-editor.d.ts +402 -0
  141. package/dist/sql-editor.d.ts.map +1 -0
  142. package/dist/terminal.d.ts +245 -0
  143. package/dist/terminal.d.ts.map +1 -0
  144. package/dist/testing-qa.d.ts +1013 -0
  145. package/dist/testing-qa.d.ts.map +1 -0
  146. package/dist/torrent-client.d.ts +298 -0
  147. package/dist/torrent-client.d.ts.map +1 -0
  148. package/dist/traceless.d.ts +759 -0
  149. package/dist/traceless.d.ts.map +1 -0
  150. package/dist/virtual-machines.d.ts +199 -0
  151. package/dist/virtual-machines.d.ts.map +1 -0
  152. package/dist/visual-scripting.d.ts +381 -0
  153. package/dist/visual-scripting.d.ts.map +1 -0
  154. package/dist/word-processor.d.ts +1124 -0
  155. package/dist/word-processor.d.ts.map +1 -0
  156. package/dist/workspace.d.ts +333 -0
  157. package/dist/workspace.d.ts.map +1 -0
  158. package/package.json +62 -0
@@ -0,0 +1,726 @@
1
+ /**
2
+ * @file access-control.ts
3
+ * @module @nice2dev/ui-tools/access-control
4
+ * @description PRO-12.3 — Access Control types
5
+ *
6
+ * IAM management, user directory, role manager, permission matrix,
7
+ * policy editor, access reviews, JIT access, MFA, SSO.
8
+ */
9
+ /** Identity provider */
10
+ export interface IdentityProvider {
11
+ readonly id: string;
12
+ readonly name: string;
13
+ readonly type: IdpType;
14
+ readonly enabled: boolean;
15
+ readonly config: IdpConfig;
16
+ readonly mappings: AttributeMappings;
17
+ readonly createdAt: Date;
18
+ readonly updatedAt: Date;
19
+ }
20
+ /** IDP type */
21
+ export type IdpType = 'local' | 'ldap' | 'active_directory' | 'saml' | 'oidc' | 'oauth2' | 'scim';
22
+ /** IDP config */
23
+ export type IdpConfig = LdapConfig | SamlConfig | OidcConfig | ScimConfig;
24
+ /** LDAP config */
25
+ export interface LdapConfig {
26
+ readonly type: 'ldap' | 'active_directory';
27
+ readonly host: string;
28
+ readonly port: number;
29
+ readonly bindDn: string;
30
+ readonly baseDn: string;
31
+ readonly userSearchBase: string;
32
+ readonly userFilter: string;
33
+ readonly groupSearchBase?: string;
34
+ readonly groupFilter?: string;
35
+ readonly useSsl: boolean;
36
+ readonly startTls: boolean;
37
+ readonly connectionTimeout: number;
38
+ readonly searchTimeout: number;
39
+ }
40
+ /** SAML config */
41
+ export interface SamlConfig {
42
+ readonly type: 'saml';
43
+ readonly entityId: string;
44
+ readonly ssoUrl: string;
45
+ readonly sloUrl?: string;
46
+ readonly certificate: string;
47
+ readonly signatureAlgorithm: string;
48
+ readonly digestAlgorithm: string;
49
+ readonly wantAssertionsSigned: boolean;
50
+ readonly wantMessagesSigned: boolean;
51
+ readonly allowUnsolicitedResponse: boolean;
52
+ readonly acsUrl: string;
53
+ readonly metadataUrl?: string;
54
+ }
55
+ /** OIDC config */
56
+ export interface OidcConfig {
57
+ readonly type: 'oidc';
58
+ readonly issuer: string;
59
+ readonly clientId: string;
60
+ readonly clientSecret?: string;
61
+ readonly authorizationEndpoint: string;
62
+ readonly tokenEndpoint: string;
63
+ readonly userinfoEndpoint?: string;
64
+ readonly endSessionEndpoint?: string;
65
+ readonly jwksUri: string;
66
+ readonly scopes: readonly string[];
67
+ readonly responseType: string;
68
+ readonly redirectUri: string;
69
+ readonly usePkce: boolean;
70
+ }
71
+ /** SCIM config */
72
+ export interface ScimConfig {
73
+ readonly type: 'scim';
74
+ readonly baseUrl: string;
75
+ readonly bearerToken?: string;
76
+ readonly version: '1.1' | '2.0';
77
+ readonly syncInterval: number;
78
+ readonly pushEnabled: boolean;
79
+ }
80
+ /** Attribute mappings */
81
+ export interface AttributeMappings {
82
+ readonly username: string;
83
+ readonly email: string;
84
+ readonly firstName?: string;
85
+ readonly lastName?: string;
86
+ readonly displayName?: string;
87
+ readonly phone?: string;
88
+ readonly groups?: string;
89
+ readonly roles?: string;
90
+ readonly custom: Record<string, string>;
91
+ }
92
+ /** User */
93
+ export interface IamUser {
94
+ readonly id: string;
95
+ readonly username: string;
96
+ readonly email: string;
97
+ readonly firstName?: string;
98
+ readonly lastName?: string;
99
+ readonly displayName?: string;
100
+ readonly phone?: string;
101
+ readonly avatar?: string;
102
+ readonly status: UserStatus;
103
+ readonly type: UserType;
104
+ readonly source: UserSource;
105
+ readonly roles: readonly string[];
106
+ readonly groups: readonly string[];
107
+ readonly permissions: readonly string[];
108
+ readonly attributes: Record<string, unknown>;
109
+ readonly mfaEnabled: boolean;
110
+ readonly mfaMethods: readonly MfaMethod[];
111
+ readonly passwordLastChanged?: Date;
112
+ readonly lastLogin?: Date;
113
+ readonly lastLoginIp?: string;
114
+ readonly loginCount: number;
115
+ readonly failedLoginAttempts: number;
116
+ readonly lockedUntil?: Date;
117
+ readonly createdAt: Date;
118
+ readonly updatedAt: Date;
119
+ readonly createdBy?: string;
120
+ }
121
+ /** User status */
122
+ export type UserStatus = 'active' | 'inactive' | 'pending' | 'locked' | 'suspended' | 'archived';
123
+ /** User type */
124
+ export type UserType = 'human' | 'service' | 'machine' | 'bot';
125
+ /** User source */
126
+ export interface UserSource {
127
+ readonly providerId: string;
128
+ readonly providerType: IdpType;
129
+ readonly externalId?: string;
130
+ }
131
+ /** MFA method */
132
+ export type MfaMethod = 'totp' | 'sms' | 'email' | 'webauthn' | 'push' | 'backup_codes';
133
+ /** User search query */
134
+ export interface UserSearchQuery {
135
+ readonly query?: string;
136
+ readonly status?: readonly UserStatus[];
137
+ readonly type?: readonly UserType[];
138
+ readonly roles?: readonly string[];
139
+ readonly groups?: readonly string[];
140
+ readonly providers?: readonly string[];
141
+ readonly mfaEnabled?: boolean;
142
+ readonly createdAfter?: Date;
143
+ readonly createdBefore?: Date;
144
+ readonly lastLoginAfter?: Date;
145
+ readonly lastLoginBefore?: Date;
146
+ readonly sortBy?: UserSortField;
147
+ readonly sortOrder?: 'asc' | 'desc';
148
+ readonly page: number;
149
+ readonly pageSize: number;
150
+ }
151
+ /** User sort field */
152
+ export type UserSortField = 'username' | 'email' | 'displayName' | 'status' | 'createdAt' | 'lastLogin';
153
+ /** User search result */
154
+ export interface UserSearchResult {
155
+ readonly users: readonly IamUser[];
156
+ readonly total: number;
157
+ readonly page: number;
158
+ readonly pageSize: number;
159
+ readonly hasMore: boolean;
160
+ }
161
+ /** Role */
162
+ export interface IamRole {
163
+ readonly id: string;
164
+ readonly name: string;
165
+ readonly displayName: string;
166
+ readonly description?: string;
167
+ readonly type: RoleType;
168
+ readonly permissions: readonly string[];
169
+ readonly inheritsFrom: readonly string[];
170
+ readonly constraints?: RoleConstraints;
171
+ readonly metadata: Record<string, unknown>;
172
+ readonly system: boolean;
173
+ readonly createdAt: Date;
174
+ readonly updatedAt: Date;
175
+ }
176
+ /** Role type */
177
+ export type RoleType = 'system' | 'organization' | 'project' | 'custom';
178
+ /** Role constraints */
179
+ export interface RoleConstraints {
180
+ readonly maxUsers?: number;
181
+ readonly requiresMfa: boolean;
182
+ readonly ipWhitelist?: readonly string[];
183
+ readonly timeRestrictions?: TimeRestrictions;
184
+ readonly resourceScopes?: readonly ResourceScope[];
185
+ }
186
+ /** Time restrictions */
187
+ export interface TimeRestrictions {
188
+ readonly daysOfWeek: readonly number[];
189
+ readonly startTime: string;
190
+ readonly endTime: string;
191
+ readonly timezone: string;
192
+ }
193
+ /** Resource scope */
194
+ export interface ResourceScope {
195
+ readonly resourceType: string;
196
+ readonly resourceIds?: readonly string[];
197
+ readonly conditions?: Record<string, unknown>;
198
+ }
199
+ /** Role hierarchy */
200
+ export interface RoleHierarchy {
201
+ readonly roots: readonly RoleNode[];
202
+ }
203
+ /** Role node */
204
+ export interface RoleNode {
205
+ readonly role: IamRole;
206
+ readonly children: readonly RoleNode[];
207
+ readonly depth: number;
208
+ }
209
+ /** Permission */
210
+ export interface Permission {
211
+ readonly id: string;
212
+ readonly name: string;
213
+ readonly displayName: string;
214
+ readonly description?: string;
215
+ readonly resource: string;
216
+ readonly action: PermissionAction;
217
+ readonly category: string;
218
+ readonly system: boolean;
219
+ }
220
+ /** Permission action */
221
+ export type PermissionAction = 'create' | 'read' | 'update' | 'delete' | 'list' | 'execute' | 'manage' | 'admin' | '*';
222
+ /** Permission matrix */
223
+ export interface PermissionMatrix {
224
+ readonly resources: readonly PermissionResource[];
225
+ readonly roles: readonly string[];
226
+ readonly matrix: PermissionMatrixCell[][];
227
+ }
228
+ /** Permission resource */
229
+ export interface PermissionResource {
230
+ readonly name: string;
231
+ readonly displayName: string;
232
+ readonly actions: readonly PermissionAction[];
233
+ }
234
+ /** Permission matrix cell */
235
+ export interface PermissionMatrixCell {
236
+ readonly resource: string;
237
+ readonly action: PermissionAction;
238
+ readonly granted: boolean;
239
+ readonly inherited: boolean;
240
+ readonly inheritedFrom?: string;
241
+ }
242
+ /** Group */
243
+ export interface IamGroup {
244
+ readonly id: string;
245
+ readonly name: string;
246
+ readonly displayName: string;
247
+ readonly description?: string;
248
+ readonly type: GroupType;
249
+ readonly source: GroupSource;
250
+ readonly roles: readonly string[];
251
+ readonly permissions: readonly string[];
252
+ readonly members: readonly GroupMember[];
253
+ readonly memberCount: number;
254
+ readonly parentGroupId?: string;
255
+ readonly childGroupIds: readonly string[];
256
+ readonly attributes: Record<string, unknown>;
257
+ readonly createdAt: Date;
258
+ readonly updatedAt: Date;
259
+ }
260
+ /** Group type */
261
+ export type GroupType = 'security' | 'distribution' | 'organizational' | 'project' | 'dynamic';
262
+ /** Group source */
263
+ export interface GroupSource {
264
+ readonly providerId: string;
265
+ readonly providerType: IdpType;
266
+ readonly externalId?: string;
267
+ readonly syncEnabled: boolean;
268
+ }
269
+ /** Group member */
270
+ export interface GroupMember {
271
+ readonly userId: string;
272
+ readonly username: string;
273
+ readonly displayName?: string;
274
+ readonly email?: string;
275
+ readonly membershipType: MembershipType;
276
+ readonly addedAt: Date;
277
+ readonly addedBy?: string;
278
+ readonly expiresAt?: Date;
279
+ }
280
+ /** Membership type */
281
+ export type MembershipType = 'direct' | 'inherited' | 'dynamic';
282
+ /** Dynamic group rule */
283
+ export interface DynamicGroupRule {
284
+ readonly id: string;
285
+ readonly groupId: string;
286
+ readonly attribute: string;
287
+ readonly operator: RuleOperator;
288
+ readonly value: string;
289
+ readonly logic?: 'and' | 'or';
290
+ }
291
+ /** Rule operator */
292
+ export type RuleOperator = 'equals' | 'not_equals' | 'contains' | 'not_contains' | 'starts_with' | 'ends_with' | 'matches' | 'in' | 'not_in';
293
+ /** Access policy */
294
+ export interface AccessPolicy {
295
+ readonly id: string;
296
+ readonly name: string;
297
+ readonly description?: string;
298
+ readonly enabled: boolean;
299
+ readonly version: number;
300
+ readonly effect: PolicyEffect;
301
+ readonly subjects: readonly PolicySubject[];
302
+ readonly resources: readonly PolicyResource[];
303
+ readonly actions: readonly string[];
304
+ readonly conditions?: PolicyConditions;
305
+ readonly priority: number;
306
+ readonly createdAt: Date;
307
+ readonly updatedAt: Date;
308
+ readonly createdBy: string;
309
+ }
310
+ /** Policy effect */
311
+ export type PolicyEffect = 'allow' | 'deny';
312
+ /** Policy subject */
313
+ export interface PolicySubject {
314
+ readonly type: SubjectType;
315
+ readonly id: string;
316
+ readonly name?: string;
317
+ }
318
+ /** Subject type */
319
+ export type SubjectType = 'user' | 'group' | 'role' | 'service' | 'any';
320
+ /** Policy resource */
321
+ export interface PolicyResource {
322
+ readonly type: string;
323
+ readonly id?: string;
324
+ readonly pattern?: string;
325
+ readonly tags?: Record<string, string>;
326
+ }
327
+ /** Policy conditions */
328
+ export interface PolicyConditions {
329
+ readonly ipAddress?: IpCondition;
330
+ readonly time?: TimeCondition;
331
+ readonly mfa?: MfaCondition;
332
+ readonly context?: Record<string, ContextCondition>;
333
+ }
334
+ /** IP condition */
335
+ export interface IpCondition {
336
+ readonly operator: 'in' | 'not_in';
337
+ readonly values: readonly string[];
338
+ }
339
+ /** Time condition */
340
+ export interface TimeCondition {
341
+ readonly days?: readonly number[];
342
+ readonly hours?: TimeRange;
343
+ readonly timezone?: string;
344
+ readonly dateRange?: DateRange;
345
+ }
346
+ /** Time range */
347
+ export interface TimeRange {
348
+ readonly start: string;
349
+ readonly end: string;
350
+ }
351
+ /** Date range */
352
+ export interface DateRange {
353
+ readonly start: Date;
354
+ readonly end: Date;
355
+ }
356
+ /** MFA condition */
357
+ export interface MfaCondition {
358
+ readonly required: boolean;
359
+ readonly methods?: readonly MfaMethod[];
360
+ readonly maxAge?: number;
361
+ }
362
+ /** Context condition */
363
+ export interface ContextCondition {
364
+ readonly operator: ConditionOperator;
365
+ readonly value: unknown;
366
+ }
367
+ /** Condition operator */
368
+ export type ConditionOperator = 'equals' | 'not_equals' | 'greater_than' | 'less_than' | 'contains' | 'not_contains' | 'exists';
369
+ /** Access review campaign */
370
+ export interface AccessReviewCampaign {
371
+ readonly id: string;
372
+ readonly name: string;
373
+ readonly description?: string;
374
+ readonly type: ReviewType;
375
+ readonly status: ReviewCampaignStatus;
376
+ readonly scope: ReviewScope;
377
+ readonly schedule: ReviewSchedule;
378
+ readonly reviewers: readonly Reviewer[];
379
+ readonly settings: ReviewSettings;
380
+ readonly statistics: ReviewStatistics;
381
+ readonly createdAt: Date;
382
+ readonly startedAt?: Date;
383
+ readonly endedAt?: Date;
384
+ readonly createdBy: string;
385
+ }
386
+ /** Review type */
387
+ export type ReviewType = 'user_access' | 'group_membership' | 'role_assignment' | 'permission' | 'privileged_access';
388
+ /** Review campaign status */
389
+ export type ReviewCampaignStatus = 'draft' | 'scheduled' | 'in_progress' | 'completed' | 'cancelled';
390
+ /** Review scope */
391
+ export interface ReviewScope {
392
+ readonly users?: readonly string[];
393
+ readonly groups?: readonly string[];
394
+ readonly roles?: readonly string[];
395
+ readonly resources?: readonly string[];
396
+ readonly applications?: readonly string[];
397
+ }
398
+ /** Review schedule */
399
+ export interface ReviewSchedule {
400
+ readonly startDate: Date;
401
+ readonly endDate: Date;
402
+ readonly recurrence?: ReviewRecurrence;
403
+ readonly reminderDays: readonly number[];
404
+ }
405
+ /** Review recurrence */
406
+ export interface ReviewRecurrence {
407
+ readonly frequency: 'monthly' | 'quarterly' | 'semi-annual' | 'annual';
408
+ readonly dayOfMonth?: number;
409
+ readonly monthOfYear?: number;
410
+ }
411
+ /** Reviewer */
412
+ export interface Reviewer {
413
+ readonly id: string;
414
+ readonly type: ReviewerType;
415
+ readonly userId?: string;
416
+ readonly groupId?: string;
417
+ }
418
+ /** Reviewer type */
419
+ export type ReviewerType = 'manager' | 'resource_owner' | 'user' | 'group' | 'self';
420
+ /** Review settings */
421
+ export interface ReviewSettings {
422
+ readonly allowSelfReview: boolean;
423
+ readonly requireJustification: boolean;
424
+ readonly autoRemediateOnExpiry: boolean;
425
+ readonly defaultDecisionOnExpiry: AccessDecision;
426
+ readonly notifyOnDecision: boolean;
427
+ readonly escalationEnabled: boolean;
428
+ readonly escalationDays?: number;
429
+ }
430
+ /** Access decision */
431
+ export type AccessDecision = 'approve' | 'revoke' | 'pending';
432
+ /** Review statistics */
433
+ export interface ReviewStatistics {
434
+ readonly totalItems: number;
435
+ readonly reviewed: number;
436
+ readonly approved: number;
437
+ readonly revoked: number;
438
+ readonly pending: number;
439
+ readonly completionPercent: number;
440
+ }
441
+ /** Access review item */
442
+ export interface AccessReviewItem {
443
+ readonly id: string;
444
+ readonly campaignId: string;
445
+ readonly subject: ReviewSubjectInfo;
446
+ readonly access: ReviewAccessInfo;
447
+ readonly reviewer: ReviewerInfo;
448
+ readonly decision?: AccessDecision;
449
+ readonly justification?: string;
450
+ readonly decidedAt?: Date;
451
+ readonly remediatedAt?: Date;
452
+ }
453
+ /** Review subject info */
454
+ export interface ReviewSubjectInfo {
455
+ readonly type: 'user' | 'service';
456
+ readonly id: string;
457
+ readonly name: string;
458
+ readonly email?: string;
459
+ }
460
+ /** Review access info */
461
+ export interface ReviewAccessInfo {
462
+ readonly type: 'role' | 'group' | 'permission' | 'resource';
463
+ readonly id: string;
464
+ readonly name: string;
465
+ readonly grantedAt: Date;
466
+ readonly grantedBy?: string;
467
+ readonly lastUsed?: Date;
468
+ readonly risk?: RiskLevel;
469
+ }
470
+ /** Risk level */
471
+ export type RiskLevel = 'critical' | 'high' | 'medium' | 'low' | 'none';
472
+ /** Reviewer info */
473
+ export interface ReviewerInfo {
474
+ readonly id: string;
475
+ readonly name: string;
476
+ readonly email?: string;
477
+ }
478
+ /** Entitlement report */
479
+ export interface EntitlementReport {
480
+ readonly id: string;
481
+ readonly name: string;
482
+ readonly type: EntitlementReportType;
483
+ readonly generatedAt: Date;
484
+ readonly parameters: ReportParameters;
485
+ readonly data: readonly EntitlementEntry[];
486
+ readonly summary: EntitlementSummary;
487
+ }
488
+ /** Entitlement report type */
489
+ export type EntitlementReportType = 'user_entitlements' | 'resource_access' | 'role_membership' | 'orphaned_accounts' | 'excessive_permissions' | 'sod_violations';
490
+ /** Report parameters */
491
+ export interface ReportParameters {
492
+ readonly users?: readonly string[];
493
+ readonly groups?: readonly string[];
494
+ readonly roles?: readonly string[];
495
+ readonly resources?: readonly string[];
496
+ readonly asOfDate?: Date;
497
+ }
498
+ /** Entitlement entry */
499
+ export interface EntitlementEntry {
500
+ readonly subject: EntitlementSubject;
501
+ readonly entitlements: readonly Entitlement[];
502
+ }
503
+ /** Entitlement subject */
504
+ export interface EntitlementSubject {
505
+ readonly type: 'user' | 'service';
506
+ readonly id: string;
507
+ readonly name: string;
508
+ readonly email?: string;
509
+ readonly department?: string;
510
+ readonly manager?: string;
511
+ }
512
+ /** Entitlement */
513
+ export interface Entitlement {
514
+ readonly type: 'role' | 'group' | 'permission' | 'resource';
515
+ readonly id: string;
516
+ readonly name: string;
517
+ readonly source: EntitlementSource;
518
+ readonly grantedAt: Date;
519
+ readonly expiresAt?: Date;
520
+ readonly lastUsed?: Date;
521
+ readonly risk: RiskLevel;
522
+ }
523
+ /** Entitlement source */
524
+ export type EntitlementSource = 'direct' | 'group' | 'role' | 'policy' | 'inherited';
525
+ /** Entitlement summary */
526
+ export interface EntitlementSummary {
527
+ readonly totalSubjects: number;
528
+ readonly totalEntitlements: number;
529
+ readonly byType: Record<string, number>;
530
+ readonly byRisk: Record<RiskLevel, number>;
531
+ readonly orphanedCount: number;
532
+ readonly excessiveCount: number;
533
+ }
534
+ /** JIT access request */
535
+ export interface JitAccessRequest {
536
+ readonly id: string;
537
+ readonly requesterId: string;
538
+ readonly requesterName: string;
539
+ readonly accessType: JitAccessType;
540
+ readonly resource: JitResource;
541
+ readonly justification: string;
542
+ readonly duration: number;
543
+ readonly requestedAt: Date;
544
+ readonly status: JitRequestStatus;
545
+ readonly approvers: readonly JitApprover[];
546
+ readonly grantedAt?: Date;
547
+ readonly expiresAt?: Date;
548
+ readonly revokedAt?: Date;
549
+ readonly revokedBy?: string;
550
+ readonly metadata?: Record<string, unknown>;
551
+ }
552
+ /** JIT access type */
553
+ export type JitAccessType = 'role_elevation' | 'resource_access' | 'privileged_session' | 'break_glass';
554
+ /** JIT resource */
555
+ export interface JitResource {
556
+ readonly type: string;
557
+ readonly id: string;
558
+ readonly name: string;
559
+ readonly permissions: readonly string[];
560
+ }
561
+ /** JIT request status */
562
+ export type JitRequestStatus = 'pending' | 'approved' | 'denied' | 'active' | 'expired' | 'revoked' | 'cancelled';
563
+ /** JIT approver */
564
+ export interface JitApprover {
565
+ readonly userId: string;
566
+ readonly name: string;
567
+ readonly decision?: 'approved' | 'denied';
568
+ readonly decidedAt?: Date;
569
+ readonly comment?: string;
570
+ }
571
+ /** JIT policy */
572
+ export interface JitPolicy {
573
+ readonly id: string;
574
+ readonly name: string;
575
+ readonly enabled: boolean;
576
+ readonly resources: readonly JitResourcePolicy[];
577
+ readonly maxDuration: number;
578
+ readonly requireJustification: boolean;
579
+ readonly minApprovers: number;
580
+ readonly autoApprove: boolean;
581
+ readonly autoApproveConditions?: PolicyConditions;
582
+ readonly notifyOnRequest: boolean;
583
+ readonly notifyOnApproval: boolean;
584
+ readonly notifyOnExpiry: boolean;
585
+ }
586
+ /** JIT resource policy */
587
+ export interface JitResourcePolicy {
588
+ readonly resourceType: string;
589
+ readonly resourcePattern?: string;
590
+ readonly allowedRoles: readonly string[];
591
+ readonly allowedPermissions: readonly string[];
592
+ readonly approverGroups: readonly string[];
593
+ }
594
+ /** MFA config */
595
+ export interface MfaConfig {
596
+ readonly enabled: boolean;
597
+ readonly required: boolean;
598
+ readonly methods: readonly MfaMethodConfig[];
599
+ readonly gracePeriodDays: number;
600
+ readonly rememberDeviceDays: number;
601
+ readonly enforcementPolicy: MfaEnforcementPolicy;
602
+ }
603
+ /** MFA method config */
604
+ export interface MfaMethodConfig {
605
+ readonly method: MfaMethod;
606
+ readonly enabled: boolean;
607
+ readonly config: Record<string, unknown>;
608
+ }
609
+ /** MFA enforcement policy */
610
+ export interface MfaEnforcementPolicy {
611
+ readonly scope: 'all' | 'roles' | 'groups' | 'conditions';
612
+ readonly roles?: readonly string[];
613
+ readonly groups?: readonly string[];
614
+ readonly conditions?: MfaConditionConfig;
615
+ }
616
+ /** MFA condition config */
617
+ export interface MfaConditionConfig {
618
+ readonly newDevice: boolean;
619
+ readonly newLocation: boolean;
620
+ readonly sensitiveAction: boolean;
621
+ readonly riskScore?: number;
622
+ }
623
+ /** User MFA status */
624
+ export interface UserMfaStatus {
625
+ readonly userId: string;
626
+ readonly enabled: boolean;
627
+ readonly enforced: boolean;
628
+ readonly methods: readonly UserMfaMethod[];
629
+ readonly backupCodesRemaining: number;
630
+ readonly lastVerification?: Date;
631
+ }
632
+ /** User MFA method */
633
+ export interface UserMfaMethod {
634
+ readonly method: MfaMethod;
635
+ readonly enrolledAt: Date;
636
+ readonly lastUsed?: Date;
637
+ readonly phoneNumber?: string;
638
+ readonly email?: string;
639
+ readonly deviceName?: string;
640
+ }
641
+ /** SSO config */
642
+ export interface SsoConfig {
643
+ readonly id: string;
644
+ readonly name: string;
645
+ readonly enabled: boolean;
646
+ readonly type: SsoType;
647
+ readonly config: SamlConfig | OidcConfig;
648
+ readonly userProvisioning: UserProvisioningConfig;
649
+ readonly sessionConfig: SsoSessionConfig;
650
+ readonly createdAt: Date;
651
+ readonly updatedAt: Date;
652
+ }
653
+ /** SSO type */
654
+ export type SsoType = 'saml' | 'oidc';
655
+ /** User provisioning config */
656
+ export interface UserProvisioningConfig {
657
+ readonly enabled: boolean;
658
+ readonly autoCreate: boolean;
659
+ readonly autoUpdate: boolean;
660
+ readonly deactivateOnRemoval: boolean;
661
+ readonly defaultRoles: readonly string[];
662
+ readonly defaultGroups: readonly string[];
663
+ }
664
+ /** SSO session config */
665
+ export interface SsoSessionConfig {
666
+ readonly maxSessionDuration: number;
667
+ readonly idleTimeout: number;
668
+ readonly singleLogoutEnabled: boolean;
669
+ readonly forceReauthentication: boolean;
670
+ }
671
+ /** User session */
672
+ export interface UserSession {
673
+ readonly id: string;
674
+ readonly userId: string;
675
+ readonly username: string;
676
+ readonly createdAt: Date;
677
+ readonly lastActivityAt: Date;
678
+ readonly expiresAt: Date;
679
+ readonly ipAddress: string;
680
+ readonly userAgent: string;
681
+ readonly device: DeviceInfo;
682
+ readonly location?: GeoLocation;
683
+ readonly authMethod: string;
684
+ readonly mfaUsed: boolean;
685
+ readonly current: boolean;
686
+ readonly trusted: boolean;
687
+ }
688
+ /** Device info */
689
+ export interface DeviceInfo {
690
+ readonly type: 'desktop' | 'mobile' | 'tablet' | 'unknown';
691
+ readonly os: string;
692
+ readonly osVersion?: string;
693
+ readonly browser: string;
694
+ readonly browserVersion?: string;
695
+ readonly deviceId?: string;
696
+ readonly trusted: boolean;
697
+ }
698
+ /** Geo location */
699
+ export interface GeoLocation {
700
+ readonly country: string;
701
+ readonly region?: string;
702
+ readonly city?: string;
703
+ readonly latitude?: number;
704
+ readonly longitude?: number;
705
+ }
706
+ /** Session policy */
707
+ export interface SessionPolicy {
708
+ readonly maxConcurrentSessions: number;
709
+ readonly absoluteTimeout: number;
710
+ readonly idleTimeout: number;
711
+ readonly renewalThreshold: number;
712
+ readonly bindToIp: boolean;
713
+ readonly bindToDevice: boolean;
714
+ readonly allowRememberMe: boolean;
715
+ readonly rememberMeDuration: number;
716
+ }
717
+ /** Session action */
718
+ export interface SessionAction {
719
+ readonly type: SessionActionType;
720
+ readonly sessionId?: string;
721
+ readonly userId?: string;
722
+ readonly reason?: string;
723
+ }
724
+ /** Session action type */
725
+ export type SessionActionType = 'revoke' | 'revoke_all' | 'revoke_all_except_current' | 'extend' | 'trust_device' | 'untrust_device';
726
+ //# sourceMappingURL=access-control.d.ts.map