@fiado/type-kit 3.37.0 → 3.39.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 (193) hide show
  1. package/_test_/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.test.ts +77 -0
  2. package/_test_/unit/cognitoBackofficeConnector/validators/NoTenantIdInCustomAttrs.test.ts +43 -0
  3. package/bin/benefitCenter/dtos/BackofficeInputLabelsUpdateRequest.d.ts +12 -0
  4. package/bin/benefitCenter/dtos/BackofficeInputLabelsUpdateRequest.js +29 -0
  5. package/bin/benefitCenter/dtos/BackofficeLeafHelpImageUpdateRequest.d.ts +9 -0
  6. package/bin/benefitCenter/dtos/BackofficeLeafHelpImageUpdateRequest.js +26 -0
  7. package/bin/benefitCenter/dtos/BackofficeProductEnabledUpdateRequest.d.ts +9 -0
  8. package/bin/benefitCenter/dtos/BackofficeProductEnabledUpdateRequest.js +26 -0
  9. package/bin/benefitCenter/dtos/BackofficeProductHelpImageUpdateRequest.d.ts +9 -0
  10. package/bin/benefitCenter/dtos/BackofficeProductHelpImageUpdateRequest.js +26 -0
  11. package/bin/benefitCenter/dtos/BackofficeSubcategoryLogoUpdateRequest.d.ts +10 -0
  12. package/bin/benefitCenter/dtos/BackofficeSubcategoryLogoUpdateRequest.js +27 -0
  13. package/bin/benefitCenter/dtos/LeafAssetUploadUrlRequest.d.ts +14 -0
  14. package/bin/benefitCenter/dtos/LeafAssetUploadUrlRequest.js +36 -0
  15. package/bin/benefitCenter/dtos/LeafAssetUploadUrlResponse.d.ts +13 -0
  16. package/bin/benefitCenter/dtos/LeafAssetUploadUrlResponse.js +12 -0
  17. package/bin/benefitCenter/dtos/ProductItem.d.ts +12 -0
  18. package/bin/benefitCenter/enums/LeafAssetKindEnum.d.ts +12 -0
  19. package/bin/benefitCenter/enums/LeafAssetKindEnum.js +16 -0
  20. package/bin/benefitCenter/index.d.ts +8 -0
  21. package/bin/benefitCenter/index.js +9 -0
  22. package/bin/cognitoBackofficeConnector/dtos/AppClientConfig.d.ts +19 -0
  23. package/bin/cognitoBackofficeConnector/dtos/AppClientConfig.js +74 -0
  24. package/bin/cognitoBackofficeConnector/dtos/AuthEventResponse.d.ts +8 -0
  25. package/bin/cognitoBackofficeConnector/dtos/AuthEventResponse.js +6 -0
  26. package/bin/cognitoBackofficeConnector/dtos/AuthEventsRequest.d.ts +5 -0
  27. package/bin/cognitoBackofficeConnector/dtos/AuthEventsRequest.js +37 -0
  28. package/bin/cognitoBackofficeConnector/dtos/AuthTokensResponse.d.ts +12 -0
  29. package/bin/cognitoBackofficeConnector/dtos/AuthTokensResponse.js +11 -0
  30. package/bin/cognitoBackofficeConnector/dtos/ChangePasswordRequest.d.ts +6 -0
  31. package/bin/cognitoBackofficeConnector/dtos/ChangePasswordRequest.js +41 -0
  32. package/bin/cognitoBackofficeConnector/dtos/ConfirmForgotPasswordRequest.d.ts +8 -0
  33. package/bin/cognitoBackofficeConnector/dtos/ConfirmForgotPasswordRequest.js +53 -0
  34. package/bin/cognitoBackofficeConnector/dtos/CreatePoolRequest.d.ts +19 -0
  35. package/bin/cognitoBackofficeConnector/dtos/CreatePoolRequest.js +63 -0
  36. package/bin/cognitoBackofficeConnector/dtos/CreatePoolResponse.d.ts +13 -0
  37. package/bin/cognitoBackofficeConnector/dtos/CreatePoolResponse.js +13 -0
  38. package/bin/cognitoBackofficeConnector/dtos/CreateUserRequest.d.ts +9 -0
  39. package/bin/cognitoBackofficeConnector/dtos/CreateUserRequest.js +57 -0
  40. package/bin/cognitoBackofficeConnector/dtos/CreateUserResponse.d.ts +10 -0
  41. package/bin/cognitoBackofficeConnector/dtos/CreateUserResponse.js +6 -0
  42. package/bin/cognitoBackofficeConnector/dtos/CustomAttributeSpec.d.ts +9 -0
  43. package/bin/cognitoBackofficeConnector/dtos/CustomAttributeSpec.js +38 -0
  44. package/bin/cognitoBackofficeConnector/dtos/DeletePoolRequest.d.ts +13 -0
  45. package/bin/cognitoBackofficeConnector/dtos/DeletePoolRequest.js +36 -0
  46. package/bin/cognitoBackofficeConnector/dtos/DeleteUserRequest.d.ts +4 -0
  47. package/bin/cognitoBackofficeConnector/dtos/DeleteUserRequest.js +29 -0
  48. package/bin/cognitoBackofficeConnector/dtos/ForgotPasswordRequest.d.ts +6 -0
  49. package/bin/cognitoBackofficeConnector/dtos/ForgotPasswordRequest.js +41 -0
  50. package/bin/cognitoBackofficeConnector/dtos/HealthcheckResponse.d.ts +12 -0
  51. package/bin/cognitoBackofficeConnector/dtos/HealthcheckResponse.js +13 -0
  52. package/bin/cognitoBackofficeConnector/dtos/InitiateAuthRequest.d.ts +8 -0
  53. package/bin/cognitoBackofficeConnector/dtos/InitiateAuthRequest.js +53 -0
  54. package/bin/cognitoBackofficeConnector/dtos/InitiateAuthResponse.d.ts +16 -0
  55. package/bin/cognitoBackofficeConnector/dtos/InitiateAuthResponse.js +14 -0
  56. package/bin/cognitoBackofficeConnector/dtos/MfaPoolConfig.d.ts +7 -0
  57. package/bin/cognitoBackofficeConnector/dtos/MfaPoolConfig.js +31 -0
  58. package/bin/cognitoBackofficeConnector/dtos/MfaResetRequest.d.ts +4 -0
  59. package/bin/cognitoBackofficeConnector/dtos/MfaResetRequest.js +29 -0
  60. package/bin/cognitoBackofficeConnector/dtos/MfaVerifyResponse.d.ts +8 -0
  61. package/bin/cognitoBackofficeConnector/dtos/MfaVerifyResponse.js +11 -0
  62. package/bin/cognitoBackofficeConnector/dtos/PasswordPolicyConfig.d.ts +8 -0
  63. package/bin/cognitoBackofficeConnector/dtos/PasswordPolicyConfig.js +51 -0
  64. package/bin/cognitoBackofficeConnector/dtos/PoolConfigResponse.d.ts +20 -0
  65. package/bin/cognitoBackofficeConnector/dtos/PoolConfigResponse.js +11 -0
  66. package/bin/cognitoBackofficeConnector/dtos/PoolsListResponse.d.ts +4 -0
  67. package/bin/cognitoBackofficeConnector/dtos/PoolsListResponse.js +6 -0
  68. package/bin/cognitoBackofficeConnector/dtos/RefreshTokensRequest.d.ts +6 -0
  69. package/bin/cognitoBackofficeConnector/dtos/RefreshTokensRequest.js +41 -0
  70. package/bin/cognitoBackofficeConnector/dtos/RefreshTokensResponse.d.ts +4 -0
  71. package/bin/cognitoBackofficeConnector/dtos/RefreshTokensResponse.js +6 -0
  72. package/bin/cognitoBackofficeConnector/dtos/ResendConfirmationRequest.d.ts +6 -0
  73. package/bin/cognitoBackofficeConnector/dtos/ResendConfirmationRequest.js +41 -0
  74. package/bin/cognitoBackofficeConnector/dtos/ResendInvitationRequest.d.ts +4 -0
  75. package/bin/cognitoBackofficeConnector/dtos/ResendInvitationRequest.js +29 -0
  76. package/bin/cognitoBackofficeConnector/dtos/RespondToChallengeRequest.d.ts +9 -0
  77. package/bin/cognitoBackofficeConnector/dtos/RespondToChallengeRequest.js +52 -0
  78. package/bin/cognitoBackofficeConnector/dtos/RespondToChallengeResponse.d.ts +13 -0
  79. package/bin/cognitoBackofficeConnector/dtos/RespondToChallengeResponse.js +11 -0
  80. package/bin/cognitoBackofficeConnector/dtos/SetMfaPreferenceRequest.d.ts +8 -0
  81. package/bin/cognitoBackofficeConnector/dtos/SetMfaPreferenceRequest.js +51 -0
  82. package/bin/cognitoBackofficeConnector/dtos/TotpBeginRequest.d.ts +5 -0
  83. package/bin/cognitoBackofficeConnector/dtos/TotpBeginRequest.js +35 -0
  84. package/bin/cognitoBackofficeConnector/dtos/TotpBeginResponse.d.ts +4 -0
  85. package/bin/cognitoBackofficeConnector/dtos/TotpBeginResponse.js +6 -0
  86. package/bin/cognitoBackofficeConnector/dtos/TotpVerifyRequest.d.ts +6 -0
  87. package/bin/cognitoBackofficeConnector/dtos/TotpVerifyRequest.js +41 -0
  88. package/bin/cognitoBackofficeConnector/dtos/UpdateEmailRequest.d.ts +5 -0
  89. package/bin/cognitoBackofficeConnector/dtos/UpdateEmailRequest.js +34 -0
  90. package/bin/cognitoBackofficeConnector/dtos/UpdateProfileRequest.d.ts +12 -0
  91. package/bin/cognitoBackofficeConnector/dtos/UpdateProfileRequest.js +47 -0
  92. package/bin/cognitoBackofficeConnector/dtos/UpdateUserAttributesRequest.d.ts +7 -0
  93. package/bin/cognitoBackofficeConnector/dtos/UpdateUserAttributesRequest.js +49 -0
  94. package/bin/cognitoBackofficeConnector/dtos/UserActionRequest.d.ts +9 -0
  95. package/bin/cognitoBackofficeConnector/dtos/UserActionRequest.js +34 -0
  96. package/bin/cognitoBackofficeConnector/dtos/UserDetailResponse.d.ts +13 -0
  97. package/bin/cognitoBackofficeConnector/dtos/UserDetailResponse.js +6 -0
  98. package/bin/cognitoBackofficeConnector/dtos/VerifyEmailRequest.d.ts +5 -0
  99. package/bin/cognitoBackofficeConnector/dtos/VerifyEmailRequest.js +35 -0
  100. package/bin/cognitoBackofficeConnector/enums/CognitoChallengeType.d.ts +26 -0
  101. package/bin/cognitoBackofficeConnector/enums/CognitoChallengeType.js +30 -0
  102. package/bin/cognitoBackofficeConnector/enums/CognitoUserStatus.d.ts +29 -0
  103. package/bin/cognitoBackofficeConnector/enums/CognitoUserStatus.js +33 -0
  104. package/bin/cognitoBackofficeConnector/index.d.ts +50 -0
  105. package/bin/cognitoBackofficeConnector/index.js +66 -0
  106. package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.d.ts +17 -0
  107. package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.js +39 -0
  108. package/bin/cognitoBackofficeConnector/validators/NoTenantIdInCustomAttrs.d.ts +27 -0
  109. package/bin/cognitoBackofficeConnector/validators/NoTenantIdInCustomAttrs.js +48 -0
  110. package/bin/index.d.ts +3 -0
  111. package/bin/index.js +9 -1
  112. package/bin/platformRbac/dtos/AuthContext.d.ts +21 -0
  113. package/bin/platformRbac/dtos/AuthContext.js +2 -0
  114. package/bin/platformRbac/dtos/PermissionMeta.d.ts +19 -0
  115. package/bin/platformRbac/dtos/PermissionMeta.js +2 -0
  116. package/bin/platformRbac/dtos/RoleAssignmentInfo.d.ts +11 -0
  117. package/bin/platformRbac/dtos/RoleAssignmentInfo.js +2 -0
  118. package/bin/platformRbac/enums/Permission.d.ts +93 -0
  119. package/bin/platformRbac/enums/Permission.js +118 -0
  120. package/bin/platformRbac/enums/PermissionCategory.d.ts +14 -0
  121. package/bin/platformRbac/enums/PermissionCategory.js +18 -0
  122. package/bin/platformRbac/enums/PermissionScope.d.ts +10 -0
  123. package/bin/platformRbac/enums/PermissionScope.js +14 -0
  124. package/bin/platformRbac/index.d.ts +6 -0
  125. package/bin/platformRbac/index.js +18 -0
  126. package/bin/rbac/enums/PoolKind.d.ts +16 -0
  127. package/bin/rbac/enums/PoolKind.js +20 -0
  128. package/bin/rbac/index.d.ts +1 -0
  129. package/bin/rbac/index.js +17 -0
  130. package/jest.config.js +8 -0
  131. package/package.json +5 -1
  132. package/src/benefitCenter/dtos/BackofficeInputLabelsUpdateRequest.ts +16 -0
  133. package/src/benefitCenter/dtos/BackofficeLeafHelpImageUpdateRequest.ts +13 -0
  134. package/src/benefitCenter/dtos/BackofficeProductEnabledUpdateRequest.ts +12 -0
  135. package/src/benefitCenter/dtos/BackofficeProductHelpImageUpdateRequest.ts +13 -0
  136. package/src/benefitCenter/dtos/BackofficeSubcategoryLogoUpdateRequest.ts +14 -0
  137. package/src/benefitCenter/dtos/LeafAssetUploadUrlRequest.ts +23 -0
  138. package/src/benefitCenter/dtos/LeafAssetUploadUrlResponse.ts +13 -0
  139. package/src/benefitCenter/dtos/ProductItem.ts +14 -0
  140. package/src/benefitCenter/enums/LeafAssetKindEnum.ts +12 -0
  141. package/src/benefitCenter/index.ts +9 -0
  142. package/src/cognitoBackofficeConnector/dtos/AppClientConfig.ts +22 -0
  143. package/src/cognitoBackofficeConnector/dtos/AuthEventResponse.ts +8 -0
  144. package/src/cognitoBackofficeConnector/dtos/AuthEventsRequest.ts +8 -0
  145. package/src/cognitoBackofficeConnector/dtos/AuthTokensResponse.ts +12 -0
  146. package/src/cognitoBackofficeConnector/dtos/ChangePasswordRequest.ts +9 -0
  147. package/src/cognitoBackofficeConnector/dtos/ConfirmForgotPasswordRequest.ts +11 -0
  148. package/src/cognitoBackofficeConnector/dtos/CreatePoolRequest.ts +30 -0
  149. package/src/cognitoBackofficeConnector/dtos/CreatePoolResponse.ts +13 -0
  150. package/src/cognitoBackofficeConnector/dtos/CreateUserRequest.ts +12 -0
  151. package/src/cognitoBackofficeConnector/dtos/CreateUserResponse.ts +11 -0
  152. package/src/cognitoBackofficeConnector/dtos/CustomAttributeSpec.ts +12 -0
  153. package/src/cognitoBackofficeConnector/dtos/DeletePoolRequest.ts +16 -0
  154. package/src/cognitoBackofficeConnector/dtos/DeleteUserRequest.ts +7 -0
  155. package/src/cognitoBackofficeConnector/dtos/ForgotPasswordRequest.ts +9 -0
  156. package/src/cognitoBackofficeConnector/dtos/HealthcheckResponse.ts +12 -0
  157. package/src/cognitoBackofficeConnector/dtos/InitiateAuthRequest.ts +11 -0
  158. package/src/cognitoBackofficeConnector/dtos/InitiateAuthResponse.ts +17 -0
  159. package/src/cognitoBackofficeConnector/dtos/MfaPoolConfig.ts +16 -0
  160. package/src/cognitoBackofficeConnector/dtos/MfaResetRequest.ts +7 -0
  161. package/src/cognitoBackofficeConnector/dtos/MfaVerifyResponse.ts +8 -0
  162. package/src/cognitoBackofficeConnector/dtos/PasswordPolicyConfig.ts +11 -0
  163. package/src/cognitoBackofficeConnector/dtos/RefreshTokensRequest.ts +9 -0
  164. package/src/cognitoBackofficeConnector/dtos/RefreshTokensResponse.ts +5 -0
  165. package/src/cognitoBackofficeConnector/dtos/ResendConfirmationRequest.ts +9 -0
  166. package/src/cognitoBackofficeConnector/dtos/ResendInvitationRequest.ts +7 -0
  167. package/src/cognitoBackofficeConnector/dtos/RespondToChallengeRequest.ts +12 -0
  168. package/src/cognitoBackofficeConnector/dtos/RespondToChallengeResponse.ts +14 -0
  169. package/src/cognitoBackofficeConnector/dtos/SetMfaPreferenceRequest.ts +12 -0
  170. package/src/cognitoBackofficeConnector/dtos/TotpBeginRequest.ts +8 -0
  171. package/src/cognitoBackofficeConnector/dtos/TotpBeginResponse.ts +4 -0
  172. package/src/cognitoBackofficeConnector/dtos/TotpVerifyRequest.ts +9 -0
  173. package/src/cognitoBackofficeConnector/dtos/UpdateEmailRequest.ts +8 -0
  174. package/src/cognitoBackofficeConnector/dtos/UpdateProfileRequest.ts +15 -0
  175. package/src/cognitoBackofficeConnector/dtos/UpdateUserAttributesRequest.ts +12 -0
  176. package/src/cognitoBackofficeConnector/dtos/UserActionRequest.ts +12 -0
  177. package/src/cognitoBackofficeConnector/dtos/UserDetailResponse.ts +14 -0
  178. package/src/cognitoBackofficeConnector/dtos/VerifyEmailRequest.ts +8 -0
  179. package/src/cognitoBackofficeConnector/enums/CognitoChallengeType.ts +26 -0
  180. package/src/cognitoBackofficeConnector/enums/CognitoUserStatus.ts +29 -0
  181. package/src/cognitoBackofficeConnector/index.ts +50 -0
  182. package/src/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.ts +29 -0
  183. package/src/cognitoBackofficeConnector/validators/NoTenantIdInCustomAttrs.ts +36 -0
  184. package/src/index.ts +8 -0
  185. package/src/platformRbac/dtos/AuthContext.ts +22 -0
  186. package/src/platformRbac/dtos/PermissionMeta.ts +20 -0
  187. package/src/platformRbac/dtos/RoleAssignmentInfo.ts +12 -0
  188. package/src/platformRbac/enums/Permission.ts +120 -0
  189. package/src/platformRbac/enums/PermissionCategory.ts +14 -0
  190. package/src/platformRbac/enums/PermissionScope.ts +10 -0
  191. package/src/platformRbac/index.ts +17 -0
  192. package/src/rbac/enums/PoolKind.ts +16 -0
  193. package/src/rbac/index.ts +1 -0
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Estados posibles de un usuario en un Cognito User Pool, según el tipo
3
+ * `UserStatusType` del SDK `@aws-sdk/client-cognito-identity-provider`.
4
+ *
5
+ * El SDK no expone enum value `DISABLED` — el equivalente operativo en Cognito
6
+ * es el flag boolean `enabled` del usuario (ver `CreateUserResponse.enabled`
7
+ * y `UserDetailResponse.enabled`), que es independiente del `status`.
8
+ *
9
+ * `EXTERNAL_PROVIDER` (federación SAML / OIDC) no se incluye porque el
10
+ * proyecto NO usa federación — el backoffice solo administra usuarios nativos
11
+ * del pool.
12
+ *
13
+ * - `UNCONFIRMED` — el usuario fue creado pero no completó la verificación de email.
14
+ * - `CONFIRMED` — usuario verificado, puede operar (sujeto a MFA si aplica).
15
+ * - `ARCHIVED` — usuario archivado por Cognito (no puede operar, no se borra).
16
+ * - `COMPROMISED` — flag de Cognito Advanced Security: credencial comprometida.
17
+ * - `UNKNOWN` — Cognito no determinó el estado (raro).
18
+ * - `RESET_REQUIRED` — el usuario debe resetear password antes del próximo login.
19
+ * - `FORCE_CHANGE_PASSWORD` — temp password vigente, requiere `NEW_PASSWORD_REQUIRED`.
20
+ */
21
+ export enum CognitoUserStatus {
22
+ UNCONFIRMED = 'UNCONFIRMED',
23
+ CONFIRMED = 'CONFIRMED',
24
+ ARCHIVED = 'ARCHIVED',
25
+ COMPROMISED = 'COMPROMISED',
26
+ UNKNOWN = 'UNKNOWN',
27
+ RESET_REQUIRED = 'RESET_REQUIRED',
28
+ FORCE_CHANGE_PASSWORD = 'FORCE_CHANGE_PASSWORD',
29
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Módulo `cognitoBackofficeConnector` — DTOs, enums y validators para el Lambda
3
+ * `cognito-backoffice-connector` (backoffice multi-tenant Fiado).
4
+ *
5
+ * Es un módulo NUEVO y SEPARADO del módulo `cognitoConnector/` legacy que pertenece
6
+ * a otro Lambda Cognito Fiado (mantenido por yhonhansen). No reusar tipos del
7
+ * legacy aquí ni viceversa — los dominios divergieron y mezclarlos arrastraría
8
+ * acoplamiento histórico.
9
+ */
10
+ export * from './enums/CognitoChallengeType';
11
+ export * from './enums/CognitoUserStatus';
12
+ export * from './validators/NoTenantIdInCustomAttrs';
13
+ export * from './validators/MfaTypesRequiresOne';
14
+ export * from './dtos/CreateUserRequest';
15
+ export * from './dtos/CreateUserResponse';
16
+ export * from './dtos/UpdateUserAttributesRequest';
17
+ export * from './dtos/UserActionRequest';
18
+ export * from './dtos/DeleteUserRequest';
19
+ export * from './dtos/ResendInvitationRequest';
20
+ export * from './dtos/UserDetailResponse';
21
+ export * from './dtos/AuthEventsRequest';
22
+ export * from './dtos/AuthEventResponse';
23
+ export * from './dtos/AuthTokensResponse';
24
+ export * from './dtos/InitiateAuthRequest';
25
+ export * from './dtos/InitiateAuthResponse';
26
+ export * from './dtos/RespondToChallengeRequest';
27
+ export * from './dtos/RespondToChallengeResponse';
28
+ export * from './dtos/RefreshTokensRequest';
29
+ export * from './dtos/RefreshTokensResponse';
30
+ export * from './dtos/ForgotPasswordRequest';
31
+ export * from './dtos/ConfirmForgotPasswordRequest';
32
+ export * from './dtos/ResendConfirmationRequest';
33
+ export * from './dtos/ChangePasswordRequest';
34
+ export * from './dtos/TotpBeginRequest';
35
+ export * from './dtos/TotpBeginResponse';
36
+ export * from './dtos/TotpVerifyRequest';
37
+ export * from './dtos/MfaVerifyResponse';
38
+ export * from './dtos/SetMfaPreferenceRequest';
39
+ export * from './dtos/MfaResetRequest';
40
+ export * from './dtos/UpdateEmailRequest';
41
+ export * from './dtos/VerifyEmailRequest';
42
+ export * from './dtos/UpdateProfileRequest';
43
+ export * from './dtos/HealthcheckResponse';
44
+ export * from './dtos/MfaPoolConfig';
45
+ export * from './dtos/PasswordPolicyConfig';
46
+ export * from './dtos/CustomAttributeSpec';
47
+ export * from './dtos/AppClientConfig';
48
+ export * from './dtos/CreatePoolRequest';
49
+ export * from './dtos/CreatePoolResponse';
50
+ export * from './dtos/DeletePoolRequest';
@@ -0,0 +1,29 @@
1
+ import { ValidatorConstraint, ValidatorConstraintInterface, ValidationArguments } from 'class-validator';
2
+
3
+ /**
4
+ * Cross-field validator: si `requireMfa: true`, entonces `mfaTypes` debe tener
5
+ * al menos 1 elemento. Si `requireMfa: false`, `mfaTypes` puede ser vacío.
6
+ *
7
+ * Razón: cuando el pool nace con MFA habilitado, el connector llama
8
+ * `SetUserPoolMfaConfigCommand` con la lista de tipos del DTO. Si el array
9
+ * llega vacío con `requireMfa: true`, el SDK rechaza con InvalidParameterException
10
+ * y el pool queda en estado inconsistente (MfaConfiguration:'ON' sin tipos).
11
+ * Mejor rechazar en validación del DTO antes de tocar AWS.
12
+ *
13
+ * Ver pivote v1.4.1 TD-017 cerrado + spec doc §1 R3.
14
+ */
15
+ @ValidatorConstraint({ name: 'MfaTypesRequiresOneWhenMfaRequired', async: false })
16
+ export class MfaTypesRequiresOne implements ValidatorConstraintInterface {
17
+ validate(mfaTypes: unknown, args: ValidationArguments): boolean {
18
+ const obj = args.object as { requireMfa?: boolean };
19
+ if (obj.requireMfa === true) {
20
+ return Array.isArray(mfaTypes) && mfaTypes.length >= 1;
21
+ }
22
+ // requireMfa: false → cualquier mfaTypes pasa.
23
+ return true;
24
+ }
25
+
26
+ defaultMessage(): string {
27
+ return 'mfaTypes requiere al menos un tipo cuando requireMfa=true';
28
+ }
29
+ }
@@ -0,0 +1,36 @@
1
+ import { ValidatorConstraint, ValidatorConstraintInterface, ValidationArguments } from 'class-validator';
2
+
3
+ /**
4
+ * Bloquea que el cliente del backoffice envíe `tenantId` dentro del map
5
+ * `customAttributes` al actualizar atributos de un usuario Cognito (decisión D3
6
+ * del spec del proyecto `cognito-backoffice-connector`).
7
+ *
8
+ * Razón: el `tenantId` se determina por el pool donde vive el usuario y por
9
+ * el rol del caller — permitir overridearlo desde `customAttributes` habilitaría
10
+ * "tenant reassignment" por la puerta de atrás (escalación de privilegios
11
+ * cross-tenant).
12
+ *
13
+ * Acepta:
14
+ * - `undefined` / `null` (el campo es opcional).
15
+ * - Objeto vacío `{}`.
16
+ * - Cualquier objeto que NO contenga la key `tenantId`.
17
+ *
18
+ * Rechaza:
19
+ * - Objetos con la key `tenantId` presente (con cualquier valor).
20
+ * - Valores que no son objeto (string, number, array, etc.).
21
+ *
22
+ * Uso en DTOs: `@Validate(NoTenantIdInCustomAttrs)` sobre el campo
23
+ * `customAttributes`.
24
+ */
25
+ @ValidatorConstraint({ name: 'NoTenantIdInCustomAttrs', async: false })
26
+ export class NoTenantIdInCustomAttrs implements ValidatorConstraintInterface {
27
+ validate(value: unknown, _args: ValidationArguments): boolean {
28
+ if (value === undefined || value === null) return true;
29
+ if (typeof value !== 'object' || Array.isArray(value)) return false;
30
+ return !Object.prototype.hasOwnProperty.call(value, 'tenantId');
31
+ }
32
+
33
+ defaultMessage(args: ValidationArguments): string {
34
+ return `${args.property} must not contain a 'tenantId' key — tenant reassignment via customAttributes is forbidden`;
35
+ }
36
+ }
package/src/index.ts CHANGED
@@ -73,5 +73,13 @@ export * as CirculoCredito from './circuloCredito';
73
73
  export * as MilestoneBusiness from './milestone-business';
74
74
  export * as Mdm from './mdm';
75
75
  export * as MessagesConnector from './messagesConnector';
76
+ export * as CognitoBackofficeConnector from './cognitoBackofficeConnector';
77
+ export * as Rbac from './rbac';
78
+ // PlatformRbac: módulo del lambda platform-rbac-business (Fase 0 SureKeep).
79
+ // Contiene Permission enum + AuthContext + RoleAssignmentInfo + PermissionScope +
80
+ // PermissionCategory + PermissionMeta + (futuro Fase 1.B) DTOs propios del rbac-business.
81
+ // Coexiste con `Rbac` oficial cuando yhonhansen publique componente 01.
82
+ // Cleanup del `Rbac` viejo planeado en bloque 13 post-gate (TD-RBAC en platform-rbac-business).
83
+ export * as PlatformRbac from './platformRbac';
76
84
  export * as Remittance from './remittance';
77
85
  export * from './messaging';
@@ -0,0 +1,22 @@
1
+ import type { Permission } from '../enums/Permission';
2
+ import type { RoleAssignmentInfo } from './RoleAssignmentInfo';
3
+
4
+ /**
5
+ * Shape DESERIALIZADO del authorizer context.
6
+ * El authorizer Lambda (componente 07) lo construye + serializa; el helper
7
+ * `extractTenantContext` lo deserializa para los handlers business.
8
+ *
9
+ * En API Gateway authorizer.context todos los valores son strings:
10
+ * - `permissions` viaja como CSV (`"a.b.c,d.e.f,..."`).
11
+ * - `roleAssignments` viaja como JSON string.
12
+ * Este interface es la forma ya parseada.
13
+ */
14
+ export interface AuthContext {
15
+ cognitoSub: string;
16
+ tenantId: string;
17
+ email: string;
18
+ roleAssignments: RoleAssignmentInfo[];
19
+ permissions: Permission[];
20
+ resolvedAt: string;
21
+ issuer?: string;
22
+ }
@@ -0,0 +1,20 @@
1
+ import type { Permission } from '../enums/Permission';
2
+ import type { PermissionScope } from '../enums/PermissionScope';
3
+ import type { PermissionCategory } from '../enums/PermissionCategory';
4
+
5
+ /**
6
+ * Metadata enriquecida de una permission del catálogo.
7
+ * Usado para:
8
+ * - Sync del enum a DDB `PlatformPermission_GT` al deploy.
9
+ * - UI del módulo rbac-admin: selector de permissions agrupado.
10
+ * - Reporting / docs.
11
+ */
12
+ export interface PermissionMeta {
13
+ permissionKey: Permission;
14
+ displayName: string;
15
+ description: string;
16
+ category: PermissionCategory;
17
+ scope: PermissionScope;
18
+ platforms: string[];
19
+ isDeprecated?: boolean;
20
+ }
@@ -0,0 +1,12 @@
1
+ import type { PermissionScope } from '../enums/PermissionScope';
2
+
3
+ /**
4
+ * Una asignación de role a un user con scope específico.
5
+ * Shape que el authorizer Lambda (componente 07) serializa como JSON string
6
+ * dentro del API Gateway authorizer context.
7
+ */
8
+ export interface RoleAssignmentInfo {
9
+ roleId: string;
10
+ scope: PermissionScope;
11
+ scopeRef: string;
12
+ }
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Catálogo universal de permisos del sistema RBAC Fiado.
3
+ *
4
+ * Origen: componente 01 de Fase 0 SureKeep (spec maestro):
5
+ * surekeep/docs/5_fases/00_fase0_cognito_rbac_users_mfa/componentes/01_typekit-rbac-additions.md
6
+ *
7
+ * Copy-paste literal de los 78 valores del spec (DEC-003).
8
+ * Convención: `<category>.<resource>.<action>` (snake_case en action si multi-palabra).
9
+ * Cualquier cambio aquí requiere PR + bump minor + redeploy de consumers.
10
+ *
11
+ * Coexiste con módulo `rbac/` oficial cuando yhonhansen publique componente 01 — TD-RBAC-002.
12
+ */
13
+ export enum Permission {
14
+ // ====================================================
15
+ // RBAC — gestión genérica del propio sistema RBAC
16
+ // ====================================================
17
+ RBAC_CATALOG_MANAGE = 'rbac.catalog.manage',
18
+
19
+ // ====================================================
20
+ // PLATFORM — operaciones a nivel meta-plataforma (Fiado equipo)
21
+ // ====================================================
22
+ PLATFORM_TENANT_CREATE = 'platform.tenant.create',
23
+ PLATFORM_TENANT_LIST = 'platform.tenant.list',
24
+ PLATFORM_TENANT_VIEW = 'platform.tenant.view',
25
+ PLATFORM_TENANT_UPDATE = 'platform.tenant.update',
26
+ PLATFORM_TENANT_SUSPEND = 'platform.tenant.suspend',
27
+ PLATFORM_TENANT_ACTIVATE = 'platform.tenant.activate',
28
+ PLATFORM_TENANT_ADMIN_REPLACE = 'platform.tenant.admin.replace',
29
+ PLATFORM_COGNITO_POOL_MANAGE = 'platform.cognito.pool.manage',
30
+ PLATFORM_COGNITO_POOL_LIST = 'platform.cognito.pool.list',
31
+ PLATFORM_USER_CREATE = 'platform.user.create',
32
+ PLATFORM_USER_LIST = 'platform.user.list',
33
+ PLATFORM_USER_VIEW = 'platform.user.view',
34
+ PLATFORM_USER_UPDATE = 'platform.user.update',
35
+ PLATFORM_USER_DISABLE = 'platform.user.disable',
36
+ PLATFORM_USER_ENABLE = 'platform.user.enable',
37
+ PLATFORM_USER_DELETE = 'platform.user.delete',
38
+ PLATFORM_ROLE_CREATE = 'platform.role.create',
39
+ PLATFORM_ROLE_LIST = 'platform.role.list',
40
+ PLATFORM_ROLE_UPDATE = 'platform.role.update',
41
+ PLATFORM_ROLE_DELETE = 'platform.role.delete',
42
+ PLATFORM_AUDIT_VIEW = 'platform.audit.view',
43
+
44
+ // ====================================================
45
+ // TENANT — operaciones dentro del silo de un tenant
46
+ // ====================================================
47
+ TENANT_USER_CREATE = 'tenant.user.create',
48
+ TENANT_USER_LIST = 'tenant.user.list',
49
+ TENANT_USER_VIEW = 'tenant.user.view',
50
+ TENANT_USER_UPDATE = 'tenant.user.update',
51
+ TENANT_USER_DISABLE = 'tenant.user.disable',
52
+ TENANT_USER_ENABLE = 'tenant.user.enable',
53
+ TENANT_USER_DELETE = 'tenant.user.delete',
54
+ TENANT_USER_MFA_RESET = 'tenant.user.mfa.reset',
55
+ TENANT_USER_PASSWORD_RESET = 'tenant.user.password.reset',
56
+ TENANT_ROLE_CREATE = 'tenant.role.create',
57
+ TENANT_ROLE_LIST = 'tenant.role.list',
58
+ TENANT_ROLE_UPDATE = 'tenant.role.update',
59
+ TENANT_ROLE_DELETE = 'tenant.role.delete',
60
+ TENANT_ROLE_VIEW = 'tenant.role.view',
61
+ TENANT_ROLE_ASSIGN = 'tenant.role.assign',
62
+ TENANT_ROLE_REVOKE = 'tenant.role.revoke',
63
+ TENANT_SECURITY_POLICY_VIEW = 'tenant.security.policy.view',
64
+ TENANT_SECURITY_POLICY_MANAGE = 'tenant.security.policy.manage',
65
+ TENANT_BRANDING_MANAGE = 'tenant.branding.manage',
66
+ TENANT_AUDIT_VIEW = 'tenant.audit.view',
67
+
68
+ // ====================================================
69
+ // RETAIL — catálogo + inventario + ventas
70
+ // ====================================================
71
+ RETAIL_PRODUCT_CREATE = 'retail.product.create',
72
+ RETAIL_PRODUCT_LIST = 'retail.product.list',
73
+ RETAIL_PRODUCT_VIEW = 'retail.product.view',
74
+ RETAIL_PRODUCT_UPDATE = 'retail.product.update',
75
+ RETAIL_PRODUCT_DELETE = 'retail.product.delete',
76
+ RETAIL_PRODUCT_MDM_CONFIG = 'retail.product.mdm_config',
77
+ RETAIL_INVENTORY_LIST = 'retail.inventory.list',
78
+ RETAIL_INVENTORY_VIEW = 'retail.inventory.view',
79
+ RETAIL_INVENTORY_UPDATE = 'retail.inventory.update',
80
+ RETAIL_SALE_CREATE = 'retail.sale.create',
81
+ RETAIL_SALE_LIST = 'retail.sale.list',
82
+ RETAIL_SALE_CANCEL = 'retail.sale.cancel',
83
+ RETAIL_STORE_MANAGE = 'retail.store.manage',
84
+ RETAIL_RETAILER_MANAGE = 'retail.retailer.manage',
85
+
86
+ // ====================================================
87
+ // LEND — créditos + cobranza
88
+ // ====================================================
89
+ LEND_CREDIT_CREATE = 'lend.credit.create',
90
+ LEND_CREDIT_LIST = 'lend.credit.list',
91
+ LEND_CREDIT_VIEW = 'lend.credit.view',
92
+ LEND_CREDIT_UPDATE = 'lend.credit.update',
93
+ LEND_CREDIT_LIQUIDATE = 'lend.credit.liquidate',
94
+ LEND_CREDIT_RESTRUCTURE = 'lend.credit.restructure',
95
+ LEND_PAYMENT_APPLY = 'lend.payment.apply',
96
+ LEND_PAYMENT_LIST = 'lend.payment.list',
97
+ LEND_PAYMENT_REVERSE = 'lend.payment.reverse',
98
+ LEND_INSTALLMENT_VIEW = 'lend.installment.view',
99
+
100
+ // ====================================================
101
+ // MDM — device management (subset especializado de LEND)
102
+ // ====================================================
103
+ MDM_DEVICE_ENROLL = 'mdm.device.enroll',
104
+ MDM_DEVICE_RELEASE = 'mdm.device.release',
105
+ MDM_DEVICE_ARCHIVE = 'mdm.device.archive',
106
+ MDM_DEVICE_DEACTIVATE = 'mdm.device.deactivate',
107
+ MDM_DEVICE_LOCK_MANUAL = 'mdm.device.lock.manual',
108
+ MDM_DEVICE_UNLOCK_MANUAL = 'mdm.device.unlock.manual',
109
+ MDM_DEVICE_PIN_UNLOCK = 'mdm.device.pin_unlock',
110
+ MDM_DEVICE_EXTEND_VALIDITY = 'mdm.device.extend_validity',
111
+ MDM_DEVICE_NOTIFY = 'mdm.device.notify',
112
+ MDM_DEVICE_STATUS_VIEW = 'mdm.device.status.view',
113
+ MDM_OPERATION_LOG_VIEW = 'mdm.operation_log.view',
114
+ MDM_TEST = 'mdm.test',
115
+
116
+ // ====================================================
117
+ // PAY — futuro FiadoPay (placeholder, no usado en MVP)
118
+ // ====================================================
119
+ PAY_TRANSACTION_VIEW = 'pay.transaction.view',
120
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Categorías del catálogo de permissions (componente 01).
3
+ * TD-RBAC-005: `AUDIT` category sin permissions `audit.*` asociadas — drift consciente.
4
+ */
5
+ export enum PermissionCategory {
6
+ RBAC = 'rbac',
7
+ PLATFORM = 'platform',
8
+ TENANT = 'tenant',
9
+ RETAIL = 'retail',
10
+ LEND = 'lend',
11
+ MDM = 'mdm',
12
+ AUDIT = 'audit',
13
+ PAY = 'pay',
14
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Jerarquía: PLATFORM > TENANT > RETAILER > STORE.
3
+ * Componente 01 spec — copia exacta.
4
+ */
5
+ export enum PermissionScope {
6
+ PLATFORM = 'PLATFORM',
7
+ TENANT = 'TENANT',
8
+ RETAILER = 'RETAILER',
9
+ STORE = 'STORE',
10
+ }
@@ -0,0 +1,17 @@
1
+ // platformRbac — módulo del lambda platform-rbac-business (Fase 0 SureKeep).
2
+ //
3
+ // Coexiste con `Rbac` oficial cuando yhonhansen publique componente 01 — TD-RBAC-002
4
+ // del platform-rbac-business documenta la migración futura de los 4 símbolos cross-cutting
5
+ // (Permission, PermissionScope, AuthContext, RoleAssignmentInfo) de aquí a `rbac/`.
6
+ //
7
+ // En Fase 1.A los DTOs propios del rbac-business (CreateTenantRequest, AssignRoleRequest,
8
+ // EffectivePermissionsResponse, etc.) NO viven en este módulo todavía — se agregan en
9
+ // Fase 1.B cuando los managers que los consumen se implementen.
10
+
11
+ export { Permission } from './enums/Permission';
12
+ export { PermissionScope } from './enums/PermissionScope';
13
+ export { PermissionCategory } from './enums/PermissionCategory';
14
+
15
+ export type { AuthContext } from './dtos/AuthContext';
16
+ export type { RoleAssignmentInfo } from './dtos/RoleAssignmentInfo';
17
+ export type { PermissionMeta } from './dtos/PermissionMeta';
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Tipo de User Pool de Cognito desde la perspectiva del modelo RBAC Fiado.
3
+ *
4
+ * Origen: spec del proyecto `cognito-backoffice-connector` (Fase 0, componente 01
5
+ * documento `docs/superpowers/specs/2026-05-26-cognito-connector-decisiones-pendientes-design.md`).
6
+ *
7
+ * Decisión (TD-003): el proyecto converge en estos 2 valores. El documento componente 03
8
+ * lista 3 valores (incluyendo una variante adicional) pero queda como outlier — la
9
+ * decisión vigente en los 6 docs restantes y en el plan de implementación es 2 valores:
10
+ * - BACKOFFICE_PLATFORM — pool del backoffice de plataforma (cross-tenant)
11
+ * - BACKOFFICE_TENANT — pool por tenant (multi-tenant isolation)
12
+ */
13
+ export enum PoolKind {
14
+ BACKOFFICE_PLATFORM = 'BACKOFFICE_PLATFORM',
15
+ BACKOFFICE_TENANT = 'BACKOFFICE_TENANT',
16
+ }
@@ -0,0 +1 @@
1
+ export * from './enums/PoolKind';