@acorex-platform/module-security-management-client 0.0.59 → 0.0.60

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 (63) hide show
  1. package/fesm2022/{acorex-platform-module-security-management-client-acorex-platform-module-security-management-client-CNHPwr3d.mjs → acorex-platform-module-security-management-client-acorex-platform-module-security-management-client-B61j_cJF.mjs} +206 -15
  2. package/fesm2022/acorex-platform-module-security-management-client-acorex-platform-module-security-management-client-B61j_cJF.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-security-management-client-approve-join-request.command-BSvK59LV.mjs +322 -0
  4. package/fesm2022/acorex-platform-module-security-management-client-approve-join-request.command-BSvK59LV.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-security-management-client-contracts-entities-device-sessions.mjs +21 -2
  6. package/fesm2022/acorex-platform-module-security-management-client-contracts-entities-device-sessions.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-module-security-management-client-contracts-entities-users.mjs +170 -39
  8. package/fesm2022/acorex-platform-module-security-management-client-contracts-entities-users.mjs.map +1 -1
  9. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-acorex-platform-module-security-management-client-contracts-entity-catalog-DAZZcjkf.mjs → acorex-platform-module-security-management-client-contracts-entity-catalog-acorex-platform-module-security-management-client-contracts-entity-catalog-JP3zTrun.mjs} +10 -10
  10. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-acorex-platform-module-security-management-client-contracts-entity-catalog-DAZZcjkf.mjs.map → acorex-platform-module-security-management-client-contracts-entity-catalog-acorex-platform-module-security-management-client-contracts-entity-catalog-JP3zTrun.mjs.map} +1 -1
  11. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-device-sessions.entity-DXhQ1_3K.mjs → acorex-platform-module-security-management-client-contracts-entity-catalog-device-sessions.entity-lwQtCJoy.mjs} +23 -4
  12. package/fesm2022/acorex-platform-module-security-management-client-contracts-entity-catalog-device-sessions.entity-lwQtCJoy.mjs.map +1 -0
  13. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-identity-provider.entity-D6g5wMQu.mjs → acorex-platform-module-security-management-client-contracts-entity-catalog-identity-provider.entity-DZfizo-n.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-identity-provider.entity-D6g5wMQu.mjs.map → acorex-platform-module-security-management-client-contracts-entity-catalog-identity-provider.entity-DZfizo-n.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-policy.entity-DI30j3q8.mjs → acorex-platform-module-security-management-client-contracts-entity-catalog-policy.entity-Dkl_6Iio.mjs} +2 -2
  16. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-policy.entity-DI30j3q8.mjs.map → acorex-platform-module-security-management-client-contracts-entity-catalog-policy.entity-Dkl_6Iio.mjs.map} +1 -1
  17. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-profile.entity-zl0xsn2K.mjs → acorex-platform-module-security-management-client-contracts-entity-catalog-profile.entity-Ddbd-rAG.mjs} +2 -2
  18. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-profile.entity-zl0xsn2K.mjs.map → acorex-platform-module-security-management-client-contracts-entity-catalog-profile.entity-Ddbd-rAG.mjs.map} +1 -1
  19. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-role-permission.entity-Dv93TmJN.mjs → acorex-platform-module-security-management-client-contracts-entity-catalog-role-permission.entity-WCgik8MV.mjs} +2 -2
  20. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-role-permission.entity-Dv93TmJN.mjs.map → acorex-platform-module-security-management-client-contracts-entity-catalog-role-permission.entity-WCgik8MV.mjs.map} +1 -1
  21. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-roles.entity-H53Y7i9P.mjs → acorex-platform-module-security-management-client-contracts-entity-catalog-roles.entity-CRZftClq.mjs} +2 -2
  22. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-roles.entity-H53Y7i9P.mjs.map → acorex-platform-module-security-management-client-contracts-entity-catalog-roles.entity-CRZftClq.mjs.map} +1 -1
  23. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-user-role.entity-i8zSXdbv.mjs → acorex-platform-module-security-management-client-contracts-entity-catalog-user-role.entity-9QpoRCOF.mjs} +2 -2
  24. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-user-role.entity-i8zSXdbv.mjs.map → acorex-platform-module-security-management-client-contracts-entity-catalog-user-role.entity-9QpoRCOF.mjs.map} +1 -1
  25. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-user-two-factor.entity-Bt710bWo.mjs → acorex-platform-module-security-management-client-contracts-entity-catalog-user-two-factor.entity-C34VzcYk.mjs} +2 -2
  26. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-user-two-factor.entity-Bt710bWo.mjs.map → acorex-platform-module-security-management-client-contracts-entity-catalog-user-two-factor.entity-C34VzcYk.mjs.map} +1 -1
  27. package/fesm2022/{acorex-platform-module-security-management-client-contracts-entity-catalog-users.entity-LSatoTXa.mjs → acorex-platform-module-security-management-client-contracts-entity-catalog-users.entity-DuC5cfIb.mjs} +172 -41
  28. package/fesm2022/acorex-platform-module-security-management-client-contracts-entity-catalog-users.entity-DuC5cfIb.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-module-security-management-client-contracts-entity-catalog.mjs +1 -1
  30. package/fesm2022/acorex-platform-module-security-management-client-contracts.mjs +339 -3
  31. package/fesm2022/acorex-platform-module-security-management-client-contracts.mjs.map +1 -1
  32. package/fesm2022/acorex-platform-module-security-management-client-create-user-in-tenant.command-BFnZRmh9.mjs +376 -0
  33. package/fesm2022/acorex-platform-module-security-management-client-create-user-in-tenant.command-BFnZRmh9.mjs.map +1 -0
  34. package/fesm2022/{acorex-platform-module-security-management-client-index-DpAVeAIc.mjs → acorex-platform-module-security-management-client-index-B6qo6qLT.mjs} +5 -156
  35. package/fesm2022/acorex-platform-module-security-management-client-index-B6qo6qLT.mjs.map +1 -0
  36. package/fesm2022/acorex-platform-module-security-management-client-invite-user.command-ClQ6WxxN.mjs +370 -0
  37. package/fesm2022/acorex-platform-module-security-management-client-invite-user.command-ClQ6WxxN.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-module-security-management-client-reject-join-request.command-B3kiok6b.mjs +76 -0
  39. package/fesm2022/acorex-platform-module-security-management-client-reject-join-request.command-B3kiok6b.mjs.map +1 -0
  40. package/fesm2022/{acorex-platform-module-security-management-client-reset-two-factor.command-psTDKoNf.mjs → acorex-platform-module-security-management-client-reset-two-factor.command-C27mUZ1-.mjs} +7 -2
  41. package/fesm2022/acorex-platform-module-security-management-client-reset-two-factor.command-C27mUZ1-.mjs.map +1 -0
  42. package/fesm2022/{acorex-platform-module-security-management-client-send-password-reset-email.command-CoQgWdya.mjs → acorex-platform-module-security-management-client-send-password-reset-email.command-DFxm2T_x.mjs} +7 -2
  43. package/fesm2022/acorex-platform-module-security-management-client-send-password-reset-email.command-DFxm2T_x.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-module-security-management-client-settings.provider-CwDiU-C8.mjs +54 -0
  45. package/fesm2022/acorex-platform-module-security-management-client-settings.provider-CwDiU-C8.mjs.map +1 -0
  46. package/fesm2022/acorex-platform-module-security-management-client-user-role-grant.service-6U17jzjq.mjs +231 -0
  47. package/fesm2022/acorex-platform-module-security-management-client-user-role-grant.service-6U17jzjq.mjs.map +1 -0
  48. package/fesm2022/acorex-platform-module-security-management-client.mjs +1 -1
  49. package/i18n/en-AU/security-management.json +91 -4
  50. package/i18n/en-US/security-management.json +91 -4
  51. package/i18n/fa-IR/security-management.json +91 -4
  52. package/package.json +1 -1
  53. package/types/acorex-platform-module-security-management-client-contracts.d.ts +274 -7
  54. package/fesm2022/acorex-platform-module-security-management-client-acorex-platform-module-security-management-client-CNHPwr3d.mjs.map +0 -1
  55. package/fesm2022/acorex-platform-module-security-management-client-contracts-entity-catalog-device-sessions.entity-DXhQ1_3K.mjs.map +0 -1
  56. package/fesm2022/acorex-platform-module-security-management-client-contracts-entity-catalog-users.entity-LSatoTXa.mjs.map +0 -1
  57. package/fesm2022/acorex-platform-module-security-management-client-create-user-in-tenant.command-CDtT9Ux_.mjs +0 -142
  58. package/fesm2022/acorex-platform-module-security-management-client-create-user-in-tenant.command-CDtT9Ux_.mjs.map +0 -1
  59. package/fesm2022/acorex-platform-module-security-management-client-index-DpAVeAIc.mjs.map +0 -1
  60. package/fesm2022/acorex-platform-module-security-management-client-invite-user.command-kFXjLdxy.mjs +0 -143
  61. package/fesm2022/acorex-platform-module-security-management-client-invite-user.command-kFXjLdxy.mjs.map +0 -1
  62. package/fesm2022/acorex-platform-module-security-management-client-reset-two-factor.command-psTDKoNf.mjs.map +0 -1
  63. package/fesm2022/acorex-platform-module-security-management-client-send-password-reset-email.command-CoQgWdya.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { AXPContextDefinition, AXPModuleManifest, AXPExpression } from '@acorex-platform/framework-shared/core';
2
- import { AXPEntityModel, AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+ import { AXPEntityModel, AXPEntity, AXPEntityAction } from '@acorex-platform/framework-shared/entity';
3
3
 
4
4
  declare const AXM_SECURITY_CONTEXT_DEFINITIONS: AXPContextDefinition[];
5
5
 
@@ -236,13 +236,29 @@ interface AXMUserInvitationInfo {
236
236
  sentAt: string;
237
237
  invitedByUserId: string;
238
238
  applicationIds?: string[];
239
- /** Always `invite` for rows created/updated by Invite (not create-in-tenant). */
240
- source: 'invite';
239
+ /** Role ids selected at invite time (flat union; mirrored onto scoped UserRole). */
240
+ roleIds?: string[];
241
+ /** TM Tenant Users: roles grouped by application (optional audit / accept helper). */
242
+ applicationRoleAssignments?: Array<{
243
+ applicationId: string;
244
+ roleIds: string[];
245
+ }>;
246
+ /**
247
+ * `invite` = admin sent; `join-request` = user requested membership from waiting room;
248
+ * `tenant-request` = user requested creation of a new tenant (public form).
249
+ */
250
+ source: AXMMembershipInvitationSource;
241
251
  /** Set when the invitee accepts; distinguishes accepted invite from create-in-tenant. */
242
252
  acceptedAt?: string;
243
253
  }
254
+ type AXMMembershipInvitationSource = 'invite' | 'join-request' | 'tenant-request';
255
+ declare const AXM_MEMBERSHIP_INVITATION_SOURCE: {
256
+ readonly Invite: "invite";
257
+ readonly JoinRequest: "join-request";
258
+ readonly TenantRequest: "tenant-request";
259
+ };
244
260
  /** How a User identity row was created (directory provenance). */
245
- type AXMUserCreatedVia = 'invite' | 'create-in-tenant' | 'register' | 'seed' | 'idp';
261
+ type AXMUserCreatedVia = 'invite' | 'create-in-tenant' | 'register' | 'seed' | 'idp' | 'tenant-request';
246
262
  /**
247
263
  * In-app inbox definition for membership invites to users who already have a tenant.
248
264
  * Inbox row action opens the auth waiting room (Approve/Decline live there).
@@ -251,17 +267,96 @@ declare const AXM_MEMBERSHIP_INVITATION_NOTIFICATION_DEFINITION_KEY: "security-m
251
267
  /** Query `source` value when opening waiting room from a membership-invite notification. */
252
268
  declare const AXM_MEMBERSHIP_INVITE_WAITING_ROOM_SOURCE: "membership-invite";
253
269
 
270
+ /** Invite surface that decides which Role catalog rows are selectable. */
271
+ type AXMInviteRoleAssignmentMode = 'application' | 'tenant';
272
+ interface AXMInviteRoleScopeContext {
273
+ tenantId: string;
274
+ /** Required for application-mode filtering. */
275
+ applicationId?: string;
276
+ }
277
+ interface AXMInviteRoleScopeInfo {
278
+ tenantId?: string;
279
+ applicationId?: string;
280
+ }
281
+ declare function readInviteRoleScopeInfo(role: {
282
+ scopeInfo?: unknown;
283
+ } | null | undefined): AXMInviteRoleScopeInfo;
284
+ /**
285
+ * Whether a Role catalog row may appear in the invite roles multi-select.
286
+ *
287
+ * UI-only selection filter (does not change Role / RLS):
288
+ * - Application invite / per-app repeater row → current-tenant + that application overlays only
289
+ * - Tenant invite → current-tenant-wide rows only (no applicationId, no other-app overlays)
290
+ */
291
+ declare function isRoleAssignableForInvite(role: {
292
+ scopeInfo?: unknown;
293
+ stateInfo?: unknown;
294
+ } | null | undefined, mode: AXMInviteRoleAssignmentMode, context: AXMInviteRoleScopeContext): boolean;
295
+ /**
296
+ * TM Tenant Users invite repeater only: overlay for current tenant + the
297
+ * application chosen on that row. Independent of {@link isRoleAssignableForInvite}
298
+ * so Security → Users invite can change without affecting this picker.
299
+ */
300
+ declare function isRoleAssignableForTenantUserInviteRow(role: {
301
+ scopeInfo?: unknown;
302
+ stateInfo?: unknown;
303
+ } | null | undefined, context: AXMInviteRoleScopeContext): boolean;
304
+
305
+ /** One TM invite repeater row: application + multi-select roles for that app. */
306
+ interface AXMInviteApplicationRoleAssignment {
307
+ applicationId: string;
308
+ roleIds: string[];
309
+ }
310
+ /**
311
+ * Submit-time merge for the TM invite repeater.
312
+ * Duplicate applications (same app on two rows, different role picks) become one assignment
313
+ * with the union of role ids. Empty application rows are dropped. Do not unique the dropdown
314
+ * instead — the UI may repeat an application.
315
+ */
316
+ declare function normalizeInviteApplicationRoleAssignments(rows: unknown): AXMInviteApplicationRoleAssignment[];
317
+ declare function flattenInviteApplicationRoleAssignments(assignments: readonly AXMInviteApplicationRoleAssignment[]): {
318
+ applicationIds: string[];
319
+ roleIds: string[];
320
+ };
321
+
322
+ /** One TM create-in-tenant repeater row: application + multi-select roles for that app. */
323
+ interface AXMCreateApplicationRoleAssignment {
324
+ applicationId: string;
325
+ roleIds: string[];
326
+ }
327
+ /**
328
+ * Submit-time merge for the TM create-in-tenant repeater.
329
+ * Duplicate applications (same app on two rows, different role picks) become one assignment
330
+ * with the union of role ids. Empty application rows are dropped.
331
+ */
332
+ declare function normalizeCreateApplicationRoleAssignments(rows: unknown): AXMCreateApplicationRoleAssignment[];
333
+ declare function flattenCreateApplicationRoleAssignments(assignments: readonly AXMCreateApplicationRoleAssignment[]): {
334
+ applicationIds: string[];
335
+ roleIds: string[];
336
+ };
337
+
254
338
  declare const AXMSecurityManagementServerCommands: {
255
339
  readonly SendPasswordResetEmail: "SecurityManagement:Server:SendPasswordResetEmail";
256
340
  readonly CompletePasswordReset: "SecurityManagement:Server:CompletePasswordReset";
257
341
  readonly ChangeOwnPassword: "SecurityManagement:Server:ChangeOwnPassword";
342
+ readonly GetOwnPasswordStatus: "SecurityManagement:Server:GetOwnPasswordStatus";
258
343
  readonly InviteUser: "SecurityManagement:Server:InviteUser";
344
+ /** Tenant-subscribed applications for TM invite picker (ADR-TEN-001 D-05). */
345
+ readonly ListTenantEntitledApplications: "SecurityManagement:Server:ListTenantEntitledApplications";
346
+ /** Per-app Role overlays for TM invite repeater (bypasses app-catalog list isolation). */
347
+ readonly ListInviteAssignableRoles: "SecurityManagement:Server:ListInviteAssignableRoles";
259
348
  readonly ResendInvitation: "SecurityManagement:Server:ResendInvitation";
260
349
  readonly CancelInvitation: "SecurityManagement:Server:CancelInvitation";
261
350
  readonly AcceptInvitation: "SecurityManagement:Server:AcceptInvitation";
262
351
  readonly ListMyPendingInvitations: "SecurityManagement:Server:ListMyPendingInvitations";
263
352
  readonly DeclineInvitation: "SecurityManagement:Server:DeclineInvitation";
264
353
  readonly AcceptMyInvitation: "SecurityManagement:Server:AcceptMyInvitation";
354
+ readonly LookupTenantByUniqueName: "SecurityManagement:Server:LookupTenantByUniqueName";
355
+ readonly RequestTenantMembership: "SecurityManagement:Server:RequestTenantMembership";
356
+ readonly ListMyJoinRequests: "SecurityManagement:Server:ListMyJoinRequests";
357
+ readonly CancelMyJoinRequest: "SecurityManagement:Server:CancelMyJoinRequest";
358
+ readonly ApproveJoinRequest: "SecurityManagement:Server:ApproveJoinRequest";
359
+ readonly RejectJoinRequest: "SecurityManagement:Server:RejectJoinRequest";
265
360
  readonly CreateUserInTenant: "SecurityManagement:Server:CreateUserInTenant";
266
361
  readonly StartTwoFactorEnrollment: "SecurityManagement:Server:StartTwoFactorEnrollment";
267
362
  readonly ConfirmTwoFactorEnrollment: "SecurityManagement:Server:ConfirmTwoFactorEnrollment";
@@ -287,6 +382,8 @@ declare const AXM_USER_RESET_TWO_FACTOR_COMMAND = "SecurityManagement:User:Reset
287
382
  declare const AXM_USER_INVITE_COMMAND = "SecurityManagement:User:Invite";
288
383
  declare const AXM_USER_RESEND_INVITATION_COMMAND = "SecurityManagement:User:ResendInvitation";
289
384
  declare const AXM_USER_CANCEL_INVITATION_COMMAND = "SecurityManagement:User:CancelInvitation";
385
+ declare const AXM_USER_APPROVE_JOIN_REQUEST_COMMAND = "SecurityManagement:User:ApproveJoinRequest";
386
+ declare const AXM_USER_REJECT_JOIN_REQUEST_COMMAND = "SecurityManagement:User:RejectJoinRequest";
290
387
  declare const AXM_USER_CREATE_IN_TENANT_COMMAND = "SecurityManagement:User:CreateInTenant";
291
388
  interface AXMSendPasswordResetEmailInput {
292
389
  /** Admin path: target user id. */
@@ -301,20 +398,66 @@ interface AXMCompletePasswordResetInput {
301
398
  newPassword: string;
302
399
  }
303
400
  interface AXMChangeOwnPasswordInput {
304
- currentPassword: string;
401
+ /** Required when the account already has a password; omit/empty when setting the first password. */
402
+ currentPassword?: string;
305
403
  newPassword: string;
306
404
  }
307
405
  interface AXMChangeOwnPasswordResult {
308
406
  passwordChangedAt: string;
309
407
  }
408
+ interface AXMGetOwnPasswordStatusResult {
409
+ /** True when the signed-in user has a non-empty stored password credential. */
410
+ hasPassword: boolean;
411
+ }
310
412
  interface AXMInviteUserInput {
311
413
  email: string;
312
414
  displayName?: string;
313
415
  applicationIds?: string[];
416
+ /**
417
+ * Role ids to assign on invite (scoped UserRole grant).
418
+ * Application invite → app-scoped grant; tenant invite without per-app rows → tenant-wide grant.
419
+ */
420
+ roleIds?: string[];
421
+ /**
422
+ * TM Tenant Users repeater: roles per selected application.
423
+ * When present, server upserts a UserRole grant per application (not one tenant-wide grant).
424
+ */
425
+ applicationRoleAssignments?: Array<{
426
+ applicationId: string;
427
+ roleIds: string[];
428
+ }>;
429
+ /**
430
+ * True when invite is from Tenant Users (tenant-membership) with multi-app UI.
431
+ * Server SoT with session edition feature — not Application.code === 'TM'.
432
+ */
433
+ tenantMembershipInvite?: boolean;
314
434
  /** Client sets true after warning that the identity already exists. */
315
435
  confirmExisting?: boolean;
316
436
  webOrigin?: string;
317
437
  }
438
+ /** One selectable application for TM invite (tenant subscription entitlement). */
439
+ interface AXMTenantEntitledApplicationItem {
440
+ id: string;
441
+ /** Raw MLS / string title — client resolves for display. */
442
+ title: unknown;
443
+ }
444
+ interface AXMListTenantEntitledApplicationsResult {
445
+ items: AXMTenantEntitledApplicationItem[];
446
+ }
447
+ /** One Role overlay selectable on a TM invite repeater row. */
448
+ interface AXMInviteAssignableRoleItem {
449
+ id: string;
450
+ title: unknown;
451
+ name?: string;
452
+ applicationId: string;
453
+ }
454
+ interface AXMListInviteAssignableRolesInput {
455
+ /** When set, only overlays for this application (current tenant). */
456
+ applicationId?: string;
457
+ }
458
+ interface AXMListInviteAssignableRolesResult {
459
+ items: AXMInviteAssignableRoleItem[];
460
+ }
318
461
  interface AXMInviteUserResult {
319
462
  userId: string;
320
463
  tenantUserId: string;
@@ -351,6 +494,8 @@ interface AXMPendingInvitationItem {
351
494
  tenantUserId: string;
352
495
  tenantId: string;
353
496
  tenantTitle?: string;
497
+ /** Tenant branding logo URL / storage id when available. */
498
+ tenantLogo?: string;
354
499
  invitedByUserId?: string;
355
500
  expiresAt?: string;
356
501
  sentAt?: string;
@@ -366,12 +511,93 @@ interface AXMAcceptMyInvitationInput {
366
511
  interface AXMDeclineInvitationInput {
367
512
  tenantUserId: string;
368
513
  }
514
+ /** Stable codes for waiting-room join-by-unique-name (client maps to i18n). */
515
+ declare const AXM_JOIN_REQUEST_ERROR_CODES: {
516
+ readonly NotSignedIn: "JOIN_REQUEST_NOT_SIGNED_IN";
517
+ readonly InvalidInput: "JOIN_REQUEST_INVALID_INPUT";
518
+ readonly TenantNotFound: "JOIN_REQUEST_TENANT_NOT_FOUND";
519
+ readonly AlreadyMember: "JOIN_REQUEST_ALREADY_MEMBER";
520
+ readonly InvitePending: "JOIN_REQUEST_INVITE_PENDING";
521
+ readonly RequestNotFound: "JOIN_REQUEST_NOT_FOUND";
522
+ readonly NotPending: "JOIN_REQUEST_NOT_PENDING";
523
+ };
524
+ interface AXMLookupTenantByUniqueNameInput {
525
+ /** Tenant unique `name` or display `title` (any locale). Case-insensitive exact match. */
526
+ uniqueName: string;
527
+ }
528
+ interface AXMLookupTenantByUniqueNameItem {
529
+ id: string;
530
+ /** Stored unique name with original casing. */
531
+ name: string;
532
+ }
533
+ interface AXMLookupTenantByUniqueNameResult {
534
+ /** Present only when the name/title matches exactly one active tenant. */
535
+ item?: AXMLookupTenantByUniqueNameItem | null;
536
+ }
537
+ interface AXMRequestTenantMembershipInput {
538
+ /** Tenant unique `name` or display `title` (any locale). Case-insensitive exact match. */
539
+ uniqueName: string;
540
+ }
541
+ interface AXMRequestTenantMembershipResult {
542
+ tenantUserId: string;
543
+ tenantId: string;
544
+ tenantName: string;
545
+ }
546
+ interface AXMJoinRequestItem {
547
+ tenantUserId: string;
548
+ tenantId: string;
549
+ tenantName?: string;
550
+ tenantTitle?: string;
551
+ /** Tenant branding logo URL / storage id when available. */
552
+ tenantLogo?: string;
553
+ sentAt?: string;
554
+ expiresAt?: string;
555
+ }
556
+ interface AXMListMyJoinRequestsResult {
557
+ items: AXMJoinRequestItem[];
558
+ }
559
+ interface AXMCancelMyJoinRequestInput {
560
+ tenantUserId: string;
561
+ }
562
+ interface AXMApproveJoinRequestInput {
563
+ tenantUserId?: string;
564
+ userId?: string;
565
+ /** Product / app-scoped approve: roles for the current session application. */
566
+ roleIds?: string[];
567
+ applicationIds?: string[];
568
+ /** TM Tenant Users: per-application role rows (same shape as invite). */
569
+ applicationRoleAssignments?: Array<{
570
+ applicationId: string;
571
+ roleIds: string[];
572
+ }>;
573
+ /**
574
+ * When true, allow multi-application assignment (TM Tenant Users + edition feature).
575
+ * Mirrors invite `tenantMembershipInvite`.
576
+ */
577
+ tenantMembershipApprove?: boolean;
578
+ }
579
+ interface AXMRejectJoinRequestInput {
580
+ tenantUserId?: string;
581
+ userId?: string;
582
+ }
369
583
  interface AXMCreateUserInTenantInput {
370
584
  email?: string;
371
585
  username?: string;
372
586
  displayName?: string;
373
587
  password?: string;
374
588
  applicationIds?: string[];
589
+ /** Product Users create: roles for the current session application. */
590
+ roleIds?: string[];
591
+ /** TM Tenant Users create: per-application role rows (merged client-side before submit). */
592
+ applicationRoleAssignments?: Array<{
593
+ applicationId: string;
594
+ roleIds: string[];
595
+ }>;
596
+ /**
597
+ * When true, allow multi-application assignment (TM Tenant Users + edition feature).
598
+ * Parallel to invite `tenantMembershipInvite`; Create path only.
599
+ */
600
+ tenantMembershipCreate?: boolean;
375
601
  }
376
602
  interface AXMCreateUserInTenantResult {
377
603
  userId: string;
@@ -450,6 +676,39 @@ interface AXMVerifyTwoFactorLoginInput {
450
676
  rememberMe?: boolean;
451
677
  }
452
678
 
679
+ /** Platform settings owned by Security Management. */
680
+ declare const AXMSecurityManagementSettings: {
681
+ /**
682
+ * Which Users-list add actions are available.
683
+ * `create` and `invite` are primary. `both` shows them as secondary actions.
684
+ */
685
+ readonly UserProvisioningMode: "SecurityManagement:Setting:User.ProvisioningMode";
686
+ };
687
+ declare const AXMUserProvisioningMode: {
688
+ readonly Create: "create";
689
+ readonly Invite: "invite";
690
+ readonly Both: "both";
691
+ };
692
+ type AXMUserProvisioningMode = (typeof AXMUserProvisioningMode)[keyof typeof AXMUserProvisioningMode];
693
+ /** Used when the platform setting has not been saved yet. */
694
+ declare const AXM_USER_PROVISIONING_MODE_DEFAULT: "both";
695
+
696
+ /**
697
+
698
+ * Explicit DeviceSessions admin operation scope (ADR-TEN-001 D-07).
699
+
700
+ * Selected by the calling surface (menu/view), not by Application.code / TM ids.
701
+
702
+ */
703
+ type AXPDeviceSessionAdminScope = 'tenant' | 'application';
704
+ /** Query `params` key and HTTP header value for admin scope. */
705
+ declare const AXP_DEVICE_SESSION_ADMIN_SCOPE_PARAM = "deviceSessionAdminScope";
706
+ /** HTTP header (lowercase) carrying the same scope for getOne/update/delete. */
707
+ declare const AXP_DEVICE_SESSION_ADMIN_SCOPE_HEADER = "x-axp-device-session-admin-scope";
708
+ /** Entity list view name for TM → Tenant Sessions. */
709
+ declare const AXP_DEVICE_SESSION_TENANT_SESSIONS_VIEW = "tenant-sessions";
710
+ declare function normalizeDeviceSessionAdminScope(value: unknown): AXPDeviceSessionAdminScope;
711
+
453
712
  declare enum AXMSessionStatusTypes {
454
713
  revoked = "revoked",
455
714
  expired = "expired",
@@ -681,5 +940,13 @@ interface AXMSecurityManagementUsersEntityModel extends AXPEntityModel<string> {
681
940
  passwordReset?: AXMUserPasswordResetInfo | null;
682
941
  }
683
942
 
684
- export { AXMSecurityManagementServerCommands, AXMSessionStatusTypes, AXMUserAccessState, AXMUserEffectiveState, AXM_ACCEPT_INVITATION_ERROR_CODES, AXM_CHANGE_OWN_PASSWORD_ERROR_CODES, AXM_IDENTITY_PROVIDER_PROTOCOL, AXM_MEMBERSHIP_INVITATION_NOTIFICATION_DEFINITION_KEY, AXM_MEMBERSHIP_INVITE_WAITING_ROOM_SOURCE, AXM_SECURITY_CONTEXT_DEFINITIONS, AXM_TWO_FACTOR_ERROR_CODES, AXM_USER_ACCESS_STATE_DEFINITION_KEY, AXM_USER_CANCEL_INVITATION_COMMAND, AXM_USER_CREATE_IN_TENANT_COMMAND, AXM_USER_EFFECTIVE_STATE_DEFINITION_KEY, AXM_USER_INVITE_COMMAND, AXM_USER_RESEND_INVITATION_COMMAND, AXM_USER_RESET_TWO_FACTOR_COMMAND, AXM_USER_SEND_PASSWORD_RESET_COMMAND, AXPAdministrationPermissionKeys, AXPSecurityManagementFeatureKeys, AXPSecurityManagementMenuKeys, AXPSecurityManagementPermissionKeys, ROLE_PERMISSIONS_PAGE_COMPONENT_KEY, RootConfig, SecurityManagementManifest, USER_ROLES_PAGE_COMPONENT_KEY, resolveAXMUserEffectiveState, userTwoFactorFactory };
685
- export type { AXMAcceptInvitationInput, AXMAcceptInvitationPreviewResult, AXMAcceptInvitationReason, AXMAcceptMyInvitationInput, AXMAdminResetTwoFactorInput, AXMAdminResetTwoFactorResult, AXMCancelInvitationInput, AXMChangeOwnPasswordInput, AXMChangeOwnPasswordResult, AXMCompletePasswordResetInput, AXMConfirmTwoFactorEnrollmentInput, AXMConfirmTwoFactorEnrollmentResult, AXMCreateUserInTenantInput, AXMCreateUserInTenantResult, AXMDeclineInvitationInput, AXMDisableTwoFactorInput, AXMDisableTwoFactorResult, AXMGenerateTwoFactorRecoveryCodesInput, AXMGenerateTwoFactorRecoveryCodesResult, AXMGetTwoFactorStatusResult, AXMIdentityProviderEntityModel, AXMIdentityProviderProtocol, AXMInviteUserInput, AXMInviteUserResult, AXMListMyPendingInvitationsResult, AXMPendingInvitationItem, AXMPolicyEffect, AXMPolicyEffectRule, AXMPolicyScope, AXMResendInvitationInput, AXMSecurityManagementDeviceSessionsEntityModel, AXMSecurityManagementPolicyEntityModel, AXMSecurityManagementProfileEntityModel, AXMSecurityManagementRolePermissionEntityModel, AXMSecurityManagementRolesEntityModel, AXMSecurityManagementUserRoleEntityModel, AXMSecurityManagementUserTwoFactorEntityModel, AXMSecurityManagementUsersEntityModel, AXMSendPasswordResetEmailInput, AXMStartTwoFactorEnrollmentInput, AXMStartTwoFactorEnrollmentResult, AXMUserCreatedVia, AXMUserInvitationInfo, AXMUserPasswordResetInfo, AXMUserTwoFactorMethod, AXMUserTwoFactorRecoveryCode, AXMVerifyTwoFactorLoginInput };
943
+ /** Type-level Invite / Create actions, including the legacy Create dropdown. */
944
+ declare function isUserProvisioningListAction(action: AXPEntityAction): boolean;
945
+ /**
946
+ * Users list add actions driven by the platform provisioning setting.
947
+ * Create-only and invite-only stay primary. Both are secondary menu items.
948
+ */
949
+ declare function userProvisioningListActions(): AXPEntityAction[];
950
+
951
+ export { AXMSecurityManagementServerCommands, AXMSecurityManagementSettings, AXMSessionStatusTypes, AXMUserAccessState, AXMUserEffectiveState, AXMUserProvisioningMode, AXM_ACCEPT_INVITATION_ERROR_CODES, AXM_CHANGE_OWN_PASSWORD_ERROR_CODES, AXM_IDENTITY_PROVIDER_PROTOCOL, AXM_JOIN_REQUEST_ERROR_CODES, AXM_MEMBERSHIP_INVITATION_NOTIFICATION_DEFINITION_KEY, AXM_MEMBERSHIP_INVITATION_SOURCE, AXM_MEMBERSHIP_INVITE_WAITING_ROOM_SOURCE, AXM_SECURITY_CONTEXT_DEFINITIONS, AXM_TWO_FACTOR_ERROR_CODES, AXM_USER_ACCESS_STATE_DEFINITION_KEY, AXM_USER_APPROVE_JOIN_REQUEST_COMMAND, AXM_USER_CANCEL_INVITATION_COMMAND, AXM_USER_CREATE_IN_TENANT_COMMAND, AXM_USER_EFFECTIVE_STATE_DEFINITION_KEY, AXM_USER_INVITE_COMMAND, AXM_USER_PROVISIONING_MODE_DEFAULT, AXM_USER_REJECT_JOIN_REQUEST_COMMAND, AXM_USER_RESEND_INVITATION_COMMAND, AXM_USER_RESET_TWO_FACTOR_COMMAND, AXM_USER_SEND_PASSWORD_RESET_COMMAND, AXPAdministrationPermissionKeys, AXPSecurityManagementFeatureKeys, AXPSecurityManagementMenuKeys, AXPSecurityManagementPermissionKeys, AXP_DEVICE_SESSION_ADMIN_SCOPE_HEADER, AXP_DEVICE_SESSION_ADMIN_SCOPE_PARAM, AXP_DEVICE_SESSION_TENANT_SESSIONS_VIEW, ROLE_PERMISSIONS_PAGE_COMPONENT_KEY, RootConfig, SecurityManagementManifest, USER_ROLES_PAGE_COMPONENT_KEY, flattenCreateApplicationRoleAssignments, flattenInviteApplicationRoleAssignments, isRoleAssignableForInvite, isRoleAssignableForTenantUserInviteRow, isUserProvisioningListAction, normalizeCreateApplicationRoleAssignments, normalizeDeviceSessionAdminScope, normalizeInviteApplicationRoleAssignments, readInviteRoleScopeInfo, resolveAXMUserEffectiveState, userProvisioningListActions, userTwoFactorFactory };
952
+ export type { AXMAcceptInvitationInput, AXMAcceptInvitationPreviewResult, AXMAcceptInvitationReason, AXMAcceptMyInvitationInput, AXMAdminResetTwoFactorInput, AXMAdminResetTwoFactorResult, AXMApproveJoinRequestInput, AXMCancelInvitationInput, AXMCancelMyJoinRequestInput, AXMChangeOwnPasswordInput, AXMChangeOwnPasswordResult, AXMCompletePasswordResetInput, AXMConfirmTwoFactorEnrollmentInput, AXMConfirmTwoFactorEnrollmentResult, AXMCreateApplicationRoleAssignment, AXMCreateUserInTenantInput, AXMCreateUserInTenantResult, AXMDeclineInvitationInput, AXMDisableTwoFactorInput, AXMDisableTwoFactorResult, AXMGenerateTwoFactorRecoveryCodesInput, AXMGenerateTwoFactorRecoveryCodesResult, AXMGetOwnPasswordStatusResult, AXMGetTwoFactorStatusResult, AXMIdentityProviderEntityModel, AXMIdentityProviderProtocol, AXMInviteApplicationRoleAssignment, AXMInviteAssignableRoleItem, AXMInviteRoleAssignmentMode, AXMInviteRoleScopeContext, AXMInviteRoleScopeInfo, AXMInviteUserInput, AXMInviteUserResult, AXMJoinRequestItem, AXMListInviteAssignableRolesInput, AXMListInviteAssignableRolesResult, AXMListMyJoinRequestsResult, AXMListMyPendingInvitationsResult, AXMListTenantEntitledApplicationsResult, AXMLookupTenantByUniqueNameInput, AXMLookupTenantByUniqueNameItem, AXMLookupTenantByUniqueNameResult, AXMMembershipInvitationSource, AXMPendingInvitationItem, AXMPolicyEffect, AXMPolicyEffectRule, AXMPolicyScope, AXMRejectJoinRequestInput, AXMRequestTenantMembershipInput, AXMRequestTenantMembershipResult, AXMResendInvitationInput, AXMSecurityManagementDeviceSessionsEntityModel, AXMSecurityManagementPolicyEntityModel, AXMSecurityManagementProfileEntityModel, AXMSecurityManagementRolePermissionEntityModel, AXMSecurityManagementRolesEntityModel, AXMSecurityManagementUserRoleEntityModel, AXMSecurityManagementUserTwoFactorEntityModel, AXMSecurityManagementUsersEntityModel, AXMSendPasswordResetEmailInput, AXMStartTwoFactorEnrollmentInput, AXMStartTwoFactorEnrollmentResult, AXMTenantEntitledApplicationItem, AXMUserCreatedVia, AXMUserInvitationInfo, AXMUserPasswordResetInfo, AXMUserTwoFactorMethod, AXMUserTwoFactorRecoveryCode, AXMVerifyTwoFactorLoginInput, AXPDeviceSessionAdminScope };