permissions-contractx 1.0.2 → 1.2.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 (87) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +53 -1346
  3. package/dist/constants/contractx-permissions.constants.d.ts +84 -92
  4. package/dist/constants/contractx-permissions.constants.d.ts.map +1 -1
  5. package/dist/constants/contractx-permissions.constants.js +2 -2
  6. package/dist/constants/contractx-roles.constants.d.ts +150 -254
  7. package/dist/constants/contractx-roles.constants.d.ts.map +1 -1
  8. package/dist/constants/contractx-roles.constants.js +2 -2
  9. package/dist/constants/index.d.ts +1 -0
  10. package/dist/constants/index.d.ts.map +1 -1
  11. package/dist/constants/index.js +1 -0
  12. package/dist/constants/permission-names.constants.d.ts +432 -0
  13. package/dist/constants/permission-names.constants.d.ts.map +1 -0
  14. package/dist/constants/permission-names.constants.js +304 -0
  15. package/dist/constants/security.constants.d.ts +49 -49
  16. package/dist/constants/security.constants.d.ts.map +1 -1
  17. package/dist/constants/security.constants.js +2 -2
  18. package/dist/decorators/current-user.decorator.d.ts +5 -53
  19. package/dist/decorators/current-user.decorator.d.ts.map +1 -1
  20. package/dist/decorators/current-user.decorator.js +4 -51
  21. package/dist/decorators/index.d.ts +1 -0
  22. package/dist/decorators/index.d.ts.map +1 -1
  23. package/dist/decorators/index.js +1 -0
  24. package/dist/decorators/permission-writes.decorator.d.ts +14 -0
  25. package/dist/decorators/permission-writes.decorator.d.ts.map +1 -0
  26. package/dist/decorators/permission-writes.decorator.js +18 -0
  27. package/dist/decorators/permissions.decorator.d.ts +0 -58
  28. package/dist/decorators/permissions.decorator.d.ts.map +1 -1
  29. package/dist/decorators/permissions.decorator.js +0 -58
  30. package/dist/decorators/public.decorator.d.ts +0 -0
  31. package/dist/decorators/public.decorator.d.ts.map +0 -0
  32. package/dist/decorators/public.decorator.js +0 -0
  33. package/dist/decorators/roles.decorator.d.ts +4 -57
  34. package/dist/decorators/roles.decorator.d.ts.map +1 -1
  35. package/dist/decorators/roles.decorator.js +6 -57
  36. package/dist/guards/authorization.guard.d.ts +37 -0
  37. package/dist/guards/authorization.guard.d.ts.map +1 -0
  38. package/dist/guards/authorization.guard.js +150 -0
  39. package/dist/guards/index.d.ts +1 -0
  40. package/dist/guards/index.d.ts.map +1 -1
  41. package/dist/guards/index.js +1 -0
  42. package/dist/guards/jwt-auth.guard.d.ts +0 -0
  43. package/dist/guards/jwt-auth.guard.d.ts.map +1 -1
  44. package/dist/guards/jwt-auth.guard.js +0 -0
  45. package/dist/guards/permissions.guard.d.ts +0 -0
  46. package/dist/guards/permissions.guard.d.ts.map +1 -1
  47. package/dist/guards/permissions.guard.js +8 -2
  48. package/dist/guards/roles.guard.d.ts +0 -0
  49. package/dist/guards/roles.guard.d.ts.map +1 -1
  50. package/dist/guards/roles.guard.js +1 -1
  51. package/dist/index.d.ts +0 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +0 -6
  54. package/dist/interfaces/index.d.ts +1 -0
  55. package/dist/interfaces/index.d.ts.map +1 -1
  56. package/dist/interfaces/index.js +1 -0
  57. package/dist/interfaces/jwt-payload.interface.d.ts +46 -9
  58. package/dist/interfaces/jwt-payload.interface.d.ts.map +1 -1
  59. package/dist/interfaces/jwt-payload.interface.js +19 -0
  60. package/dist/interfaces/permission-mode.enum.d.ts +22 -0
  61. package/dist/interfaces/permission-mode.enum.d.ts.map +1 -0
  62. package/dist/interfaces/permission-mode.enum.js +25 -0
  63. package/dist/modules/index.d.ts +0 -0
  64. package/dist/modules/index.d.ts.map +0 -0
  65. package/dist/modules/index.js +0 -0
  66. package/dist/modules/permissions-contractx.module.d.ts +0 -0
  67. package/dist/modules/permissions-contractx.module.d.ts.map +1 -1
  68. package/dist/modules/permissions-contractx.module.js +4 -2
  69. package/dist/services/contractx-authorization.service.d.ts +198 -27
  70. package/dist/services/contractx-authorization.service.d.ts.map +1 -1
  71. package/dist/services/contractx-authorization.service.js +2 -0
  72. package/dist/services/contractx-validation.service.d.ts +93 -12
  73. package/dist/services/contractx-validation.service.d.ts.map +1 -1
  74. package/dist/services/contractx-validation.service.js +1 -0
  75. package/dist/services/index.d.ts +0 -2
  76. package/dist/services/index.d.ts.map +1 -1
  77. package/dist/services/index.js +2 -0
  78. package/dist/services/user-context.service.d.ts +29 -34
  79. package/dist/services/user-context.service.d.ts.map +1 -1
  80. package/dist/services/user-context.service.js +65 -44
  81. package/package.json +5 -24
  82. package/dist/services/contractx-document-compliance.service.d.ts +0 -85
  83. package/dist/services/contractx-document-compliance.service.d.ts.map +0 -1
  84. package/dist/services/contractx-document-compliance.service.js +0 -536
  85. package/dist/test-document-compliance.d.ts +0 -7
  86. package/dist/test-document-compliance.d.ts.map +0 -1
  87. package/dist/test-document-compliance.js +0 -118
@@ -41,7 +41,7 @@ let RolesGuard = RolesGuard_1 = class RolesGuard {
41
41
  const userRoles = user.role || [];
42
42
  const hasRole = requiredRoles.some((role) => userRoles.includes(role));
43
43
  if (!hasRole) {
44
- const missingRoles = requiredRoles.filter(role => !userRoles.includes(role));
44
+ const missingRoles = requiredRoles.filter((role) => !userRoles.includes(role));
45
45
  this.logger.warn(`Access denied: User ${user.sub} (${user.fullName}) missing required roles. ` +
46
46
  `Required: [${requiredRoles.join(', ')}], ` +
47
47
  `User has: [${userRoles.join(', ')}], ` +
package/dist/index.d.ts CHANGED
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,cAAc,CAAC;AAG7B,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,aAAa,CAAC;AAG5B,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -14,15 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- // Main module
18
17
  __exportStar(require("./modules"), exports);
19
- // Guards
20
18
  __exportStar(require("./guards"), exports);
21
- // Decorators
22
19
  __exportStar(require("./decorators"), exports);
23
- // Services
24
20
  __exportStar(require("./services"), exports);
25
- // Interfaces
26
21
  __exportStar(require("./interfaces"), exports);
27
- // Constants
28
22
  __exportStar(require("./constants"), exports);
@@ -1,2 +1,3 @@
1
1
  export * from './jwt-payload.interface';
2
+ export * from './permission-mode.enum';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./jwt-payload.interface"), exports);
18
+ __exportStar(require("./permission-mode.enum"), exports);
@@ -1,5 +1,24 @@
1
1
  /**
2
- * JWT Payload interface for ContractX authentication system
2
+ * jwt-payload.interface.ts
3
+ * ------------------------------------------------------------------------
4
+ * Interfaces de autenticación del paquete permissions-contractx.
5
+ *
6
+ * [ADR-004 Fase 2 — Porte] JwtPayload portado IDÉNTICO al de Auth
7
+ * (Contractos-Autenticacion/src/common/interfaces/jwt-payload.interface.ts),
8
+ * para que el paquete refleje la verdad del token que emite Auth. Cambios
9
+ * frente a la versión 1.0.x del paquete:
10
+ * - AÑADIDO permissionsView?: string[] (modo-ver 👁, solo lectura)
11
+ * - AÑADIDO providerId?, tenantContext?, key_client?
12
+ * - CAMBIO clientId: string -> string[] (el token real trae array;
13
+ * los consumidores ya lo manejan defensivamente)
14
+ * - CAMBIO index signature: [key: string]: any -> unknown
15
+ *
16
+ * Las otras 3 interfaces (AuthenticatedRequest, JwtAuthConfig,
17
+ * PermissionsModuleOptions) se conservan SIN cambios respecto a 1.0.x.
18
+ * ------------------------------------------------------------------------
19
+ */
20
+ /**
21
+ * JWT Payload de ContractX. Refleja exactamente el token emitido por Auth.
3
22
  */
4
23
  export interface JwtPayload {
5
24
  /** User ID */
@@ -8,14 +27,29 @@ export interface JwtPayload {
8
27
  id?: string;
9
28
  /** User roles array */
10
29
  role: string[];
11
- /** User permissions array */
30
+ /** Permisos con acceso pleno (escritura + lectura) */
12
31
  permissions: string[];
32
+ /**
33
+ * [ADR-004 Fase 2 / Bloque 1] Códigos en modo-ver (👁): solo lectura. Aditivo y
34
+ * backward-compatible — consumidores que solo leen `permissions` (acceso pleno)
35
+ * no se afectan. El AuthorizationGuard usa este conjunto para bloquear escrituras.
36
+ */
37
+ permissionsView?: string[];
13
38
  /** User's full name */
14
39
  fullName: string;
15
40
  /** User's email */
16
41
  email?: string;
17
- /** Client organization ID */
18
- clientId?: string;
42
+ /**
43
+ * IDs de cliente/tenant del usuario. ARRAY (el token real puede traer varios).
44
+ * Cambió de `string` a `string[]` en el porte ADR-004 para reflejar el token.
45
+ */
46
+ clientId?: string[];
47
+ /** ID de proveedor (lado proveedor) */
48
+ providerId?: string;
49
+ /** Contexto de tenant resuelto */
50
+ tenantContext?: 'client' | 'provider' | 'system';
51
+ /** Identificador primario de tenant para selección de schema */
52
+ key_client?: string[];
19
53
  /** Session ID for tracking */
20
54
  sessionId?: string;
21
55
  /** Token issued at timestamp */
@@ -26,17 +60,19 @@ export interface JwtPayload {
26
60
  iss?: string;
27
61
  /** Token audience */
28
62
  aud?: string;
29
- /** Additional custom properties */
30
- [key: string]: any;
63
+ /** Propiedades adicionales (tipadas como unknown: exigen comprobación antes de usar) */
64
+ [key: string]: unknown;
31
65
  }
32
66
  /**
33
- * Extended request interface with authenticated user
67
+ * Extended request interface with authenticated user.
68
+ * (Conservada sin cambios respecto a 1.0.x.)
34
69
  */
35
70
  export interface AuthenticatedRequest extends Request {
36
71
  user: JwtPayload;
37
72
  }
38
73
  /**
39
- * Configuration options for JWT authentication
74
+ * Configuration options for JWT authentication.
75
+ * (Conservada sin cambios respecto a 1.0.x.)
40
76
  */
41
77
  export interface JwtAuthConfig {
42
78
  /** JWT secret key */
@@ -57,7 +93,8 @@ export interface JwtAuthConfig {
57
93
  ignoreExpiration?: boolean;
58
94
  }
59
95
  /**
60
- * Module configuration options
96
+ * Module configuration options.
97
+ * (Conservada sin cambios respecto a 1.0.x.)
61
98
  */
62
99
  export interface PermissionsModuleOptions {
63
100
  /** JWT configuration */
@@ -1 +1 @@
1
- {"version":3,"file":"jwt-payload.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/jwt-payload.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,cAAc;IACd,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAErB,gCAAgC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,uBAAuB;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf,6BAA6B;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IAEjB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,mCAAmC;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IAEf,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,wBAAwB;IACxB,GAAG,EAAE,aAAa,CAAC;IAEnB,kCAAkC;IAClC,MAAM,CAAC,EAAE;QACP,0CAA0C;QAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAE3B,iCAAiC;QACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAE5B,uCAAuC;QACvC,uBAAuB,CAAC,EAAE,OAAO,CAAC;KACnC,CAAC;IAEF,6BAA6B;IAC7B,QAAQ,CAAC,EAAE;QACT,6BAA6B;QAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB,2BAA2B;QAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;QAE1B,wCAAwC;QACxC,eAAe,CAAC,EAAE,MAAM,CAAC;QAEzB,kCAAkC;QAClC,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IAEF,gCAAgC;IAChC,WAAW,CAAC,EAAE;QACZ,4CAA4C;QAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;QAEtB,gCAAgC;QAChC,QAAQ,CAAC,EAAE,UAAU,CAAC;KACvB,CAAC;CACH"}
1
+ {"version":3,"file":"jwt-payload.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/jwt-payload.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,cAAc;IACd,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,gCAAgC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uBAAuB;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,sDAAsD;IACtD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,aAAa,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACjD,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,wBAAwB;IACxB,GAAG,EAAE,aAAa,CAAC;IACnB,kCAAkC;IAClC,MAAM,CAAC,EAAE;QACP,0CAA0C;QAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,iCAAiC;QACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,uCAAuC;QACvC,uBAAuB,CAAC,EAAE,OAAO,CAAC;KACnC,CAAC;IACF,6BAA6B;IAC7B,QAAQ,CAAC,EAAE;QACT,6BAA6B;QAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,2BAA2B;QAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,wCAAwC;QACxC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,kCAAkC;QAClC,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,gCAAgC;IAChC,WAAW,CAAC,EAAE;QACZ,4CAA4C;QAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,gCAAgC;QAChC,QAAQ,CAAC,EAAE,UAAU,CAAC;KACvB,CAAC;CACH"}
@@ -1,2 +1,21 @@
1
1
  "use strict";
2
+ /**
3
+ * jwt-payload.interface.ts
4
+ * ------------------------------------------------------------------------
5
+ * Interfaces de autenticación del paquete permissions-contractx.
6
+ *
7
+ * [ADR-004 Fase 2 — Porte] JwtPayload portado IDÉNTICO al de Auth
8
+ * (Contractos-Autenticacion/src/common/interfaces/jwt-payload.interface.ts),
9
+ * para que el paquete refleje la verdad del token que emite Auth. Cambios
10
+ * frente a la versión 1.0.x del paquete:
11
+ * - AÑADIDO permissionsView?: string[] (modo-ver 👁, solo lectura)
12
+ * - AÑADIDO providerId?, tenantContext?, key_client?
13
+ * - CAMBIO clientId: string -> string[] (el token real trae array;
14
+ * los consumidores ya lo manejan defensivamente)
15
+ * - CAMBIO index signature: [key: string]: any -> unknown
16
+ *
17
+ * Las otras 3 interfaces (AuthenticatedRequest, JwtAuthConfig,
18
+ * PermissionsModuleOptions) se conservan SIN cambios respecto a 1.0.x.
19
+ * ------------------------------------------------------------------------
20
+ */
2
21
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,22 @@
1
+ /**
2
+ * permission-mode.enum.ts
3
+ * ------------------------------------------------------------------------
4
+ * [ADR-004 Fase 2 — Porte] Espejo IDÉNTICO del enum definido en Auth
5
+ * (Contractos-Autenticacion/src/modules/roles-permissions/domain/constants/
6
+ * permissions.constants.ts).
7
+ *
8
+ * Modo de una asignación rol→permiso:
9
+ * - WRITE: acceso pleno (lectura + escritura).
10
+ * - READ: modo-ver (👁) — solo lecturas; el AuthorizationGuard bloquea escrituras.
11
+ *
12
+ * Default WRITE ⇒ las asignaciones existentes no cambian de comportamiento.
13
+ *
14
+ * Fuente única: a futuro Auth debería importar este enum del paquete en lugar de
15
+ * mantener su propia copia, para no divergir. (No se toca Auth en este porte.)
16
+ * ------------------------------------------------------------------------
17
+ */
18
+ export declare enum PermissionMode {
19
+ WRITE = "write",
20
+ READ = "read"
21
+ }
22
+ //# sourceMappingURL=permission-mode.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-mode.enum.d.ts","sourceRoot":"","sources":["../../src/interfaces/permission-mode.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,IAAI,SAAS;CACd"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PermissionMode = void 0;
4
+ /**
5
+ * permission-mode.enum.ts
6
+ * ------------------------------------------------------------------------
7
+ * [ADR-004 Fase 2 — Porte] Espejo IDÉNTICO del enum definido en Auth
8
+ * (Contractos-Autenticacion/src/modules/roles-permissions/domain/constants/
9
+ * permissions.constants.ts).
10
+ *
11
+ * Modo de una asignación rol→permiso:
12
+ * - WRITE: acceso pleno (lectura + escritura).
13
+ * - READ: modo-ver (👁) — solo lecturas; el AuthorizationGuard bloquea escrituras.
14
+ *
15
+ * Default WRITE ⇒ las asignaciones existentes no cambian de comportamiento.
16
+ *
17
+ * Fuente única: a futuro Auth debería importar este enum del paquete en lugar de
18
+ * mantener su propia copia, para no divergir. (No se toca Auth en este porte.)
19
+ * ------------------------------------------------------------------------
20
+ */
21
+ var PermissionMode;
22
+ (function (PermissionMode) {
23
+ PermissionMode["WRITE"] = "write";
24
+ PermissionMode["READ"] = "read";
25
+ })(PermissionMode || (exports.PermissionMode = PermissionMode = {}));
File without changes
File without changes
File without changes
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"permissions-contractx.module.d.ts","sourceRoot":"","sources":["../../src/modules/permissions-contractx.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAK/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AASzD;;;GAGG;AACH,qBAKa,0BAA0B;IACrC;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,GAAG,aAAa;IAsEjE;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE;QAC5B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC7F,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB,GAAG,aAAa;IAgEjB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,OAAO,IAAI,aAAa;CA2BhC"}
1
+ {"version":3,"file":"permissions-contractx.module.d.ts","sourceRoot":"","sources":["../../src/modules/permissions-contractx.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAO/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD;;;GAGG;AACH,qBAKa,0BAA0B;IACrC;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,GAAG,aAAa;IAwEjE;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE;QAC5B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC7F,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB,GAAG,aAAa;IAgEjB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,OAAO,IAAI,aAAa;CA2BhC"}
@@ -34,7 +34,9 @@ let PermissionsContractXModule = PermissionsContractXModule_1 = class Permission
34
34
  jwt_1.JwtModule.register({
35
35
  secret: options.jwt.secret,
36
36
  signOptions: {
37
- expiresIn: options.jwt.expiresIn || '15m',
37
+ // [PASO 3] cast: @nestjs/jwt v11 tipa expiresIn como number|StringValue (más estricto
38
+ // que la versión original). El paquete nuevo fijará la versión; cast para verificación.
39
+ expiresIn: (options.jwt.expiresIn || '15m'),
38
40
  issuer: options.jwt.issuer,
39
41
  audience: options.jwt.audience,
40
42
  },
@@ -113,7 +115,7 @@ let PermissionsContractXModule = PermissionsContractXModule_1 = class Permission
113
115
  return {
114
116
  secret: moduleOptions.jwt.secret,
115
117
  signOptions: {
116
- expiresIn: moduleOptions.jwt.expiresIn || '15m',
118
+ expiresIn: (moduleOptions.jwt.expiresIn || '15m'),
117
119
  issuer: moduleOptions.jwt.issuer,
118
120
  audience: moduleOptions.jwt.audience,
119
121
  },
@@ -1,4 +1,4 @@
1
- import { ContractXValidationService, ValidationResult } from './contractx-validation.service';
1
+ import { ContractXValidationService } from './contractx-validation.service';
2
2
  export interface AuthorizationContext {
3
3
  userRoles: string[];
4
4
  userPermissions: string[];
@@ -29,79 +29,250 @@ export declare class ContractXAuthorizationService {
29
29
  /**
30
30
  * Authorize a user for a specific action on a resource
31
31
  */
32
- authorize(context: AuthorizationContext): AuthorizationResult;
32
+ authorize(context: any): {
33
+ granted: boolean;
34
+ reason: string;
35
+ level: string;
36
+ metadata: {
37
+ requiredPermission: string;
38
+ wildcardPermission?: undefined;
39
+ };
40
+ } | {
41
+ granted: boolean;
42
+ reason: string;
43
+ level: string;
44
+ metadata: {
45
+ wildcardPermission: string;
46
+ requiredPermission?: undefined;
47
+ };
48
+ } | {
49
+ granted: boolean;
50
+ reason: string;
51
+ level: string;
52
+ metadata?: undefined;
53
+ } | {
54
+ granted: boolean;
55
+ reason: string;
56
+ level: string;
57
+ metadata: {
58
+ roleValidation: {
59
+ roleInfos: any[];
60
+ tenantCount: number;
61
+ };
62
+ permissionValidation: {
63
+ moduleCount: number;
64
+ actionCount: number;
65
+ modules: any[];
66
+ actions: any[];
67
+ };
68
+ };
69
+ } | {
70
+ granted: boolean;
71
+ reason: string;
72
+ level: string;
73
+ metadata: {
74
+ systemRole: boolean;
75
+ hasModuleAccess?: undefined;
76
+ };
77
+ } | {
78
+ granted: boolean;
79
+ reason: string;
80
+ level: string;
81
+ metadata: {
82
+ hasModuleAccess: boolean;
83
+ systemRole?: undefined;
84
+ };
85
+ };
33
86
  /**
34
87
  * Check if user has system-level access
35
88
  */
36
- private hasSystemLevelAccess;
89
+ hasSystemLevelAccess(userRoles: any): any;
37
90
  /**
38
91
  * Check role-based access for a resource and action
39
92
  */
40
- private checkRoleBasedAccess;
93
+ checkRoleBasedAccess(userRoles: any, resource: any, action: any): {
94
+ granted: boolean;
95
+ reason: string;
96
+ level: string;
97
+ metadata: {
98
+ requiredPermission: string;
99
+ effectivePermissions: number;
100
+ wildcardPermission?: undefined;
101
+ };
102
+ } | {
103
+ granted: boolean;
104
+ reason: string;
105
+ level: string;
106
+ metadata: {
107
+ wildcardPermission: string;
108
+ requiredPermission?: undefined;
109
+ effectivePermissions?: undefined;
110
+ };
111
+ } | {
112
+ granted: boolean;
113
+ reason: string;
114
+ level: string;
115
+ metadata?: undefined;
116
+ };
41
117
  /**
42
118
  * Check permission-based access for a resource and action
43
119
  */
44
- private checkPermissionBasedAccess;
120
+ checkPermissionBasedAccess(userPermissions: any, resource: any, action: any): {
121
+ granted: boolean;
122
+ reason: string;
123
+ level: string;
124
+ metadata: {
125
+ requiredPermission: string;
126
+ wildcardPermission?: undefined;
127
+ };
128
+ } | {
129
+ granted: boolean;
130
+ reason: string;
131
+ level: string;
132
+ metadata: {
133
+ wildcardPermission: string;
134
+ requiredPermission?: undefined;
135
+ };
136
+ } | {
137
+ granted: boolean;
138
+ reason: string;
139
+ level: string;
140
+ metadata?: undefined;
141
+ };
45
142
  /**
46
143
  * Check if user has any access to a module
47
144
  */
48
- private checkModuleAccess;
145
+ checkModuleAccess(userPermissions: any, module: any): any;
49
146
  /**
50
147
  * Generate an access matrix for the user
51
148
  */
52
- generateAccessMatrix(context: AuthorizationContext): AccessMatrix;
149
+ generateAccessMatrix(context: any): {
150
+ hasSystemAccess: any;
151
+ hasClientAccess: any;
152
+ hasProviderAccess: any;
153
+ hasAdminAccess: any;
154
+ accessibleModules: unknown[];
155
+ highestRoleLevel: number;
156
+ effectivePermissions: any[];
157
+ };
53
158
  /**
54
159
  * Check if user can access a specific tenant
55
160
  */
56
- canAccessTenant(userRoles: string[], tenantType: 'client' | 'provider'): boolean;
161
+ canAccessTenant(userRoles: any, tenantType: any): any;
57
162
  /**
58
163
  * Get user's accessible tenant types
59
164
  */
60
- getAccessibleTenants(userRoles: string[]): ('client' | 'provider' | 'system')[];
165
+ getAccessibleTenants(userRoles: any): unknown[];
61
166
  /**
62
167
  * Filter resources based on user permissions
63
168
  */
64
- filterAccessibleResources(userPermissions: string[], resources: string[], requiredAction?: string): string[];
169
+ filterAccessibleResources(userPermissions: any, resources: any, requiredAction?: string): any;
65
170
  /**
66
171
  * Get user's permissions for a specific module
67
172
  */
68
- getModulePermissions(userPermissions: string[], module: string): string[];
173
+ getModulePermissions(userPermissions: any, module: any): any;
69
174
  /**
70
175
  * Check if user has administrative access to a resource
71
176
  */
72
- hasAdministrativeAccess(userRoles: string[], _resource?: string): boolean;
177
+ hasAdministrativeAccess(userRoles: any, _resource: any): any;
73
178
  /**
74
179
  * Validate user context for multi-tenant environment
75
180
  */
76
- validateMultiTenantAccess(context: AuthorizationContext): ValidationResult;
181
+ validateMultiTenantAccess(context: any): {
182
+ isValid: boolean;
183
+ errors: any[];
184
+ warnings: any[];
185
+ };
77
186
  /**
78
187
  * Get permission summary for logging/audit purposes
79
188
  */
80
- getPermissionSummary(context: AuthorizationContext): Record<string, any>;
189
+ getPermissionSummary(context: any): {
190
+ userId: any;
191
+ roles: any;
192
+ permissionCount: any;
193
+ effectivePermissionCount: number;
194
+ accessLevel: number;
195
+ tenants: unknown[];
196
+ modules: unknown[];
197
+ hasSystemAccess: any;
198
+ hasAdminAccess: any;
199
+ };
81
200
  /**
82
201
  * Check if authorization is required for a resource
83
202
  */
84
- isAuthorizationRequired(resource: string, action: string): boolean;
203
+ isAuthorizationRequired(resource: any, action: any): boolean;
85
204
  /**
86
205
  * Get minimum required role for a resource/action combination
87
206
  */
88
- getMinimumRequiredRole(resource: string, action: string): string[];
207
+ getMinimumRequiredRole(resource: any, action: any): any;
89
208
  /**
90
209
  * Check permission for a user (simpler interface for admin service)
91
210
  */
92
- checkPermission(user: {
93
- role: string[];
94
- permissions: string[];
95
- }, permission: string, context?: {
96
- tenantId?: string;
97
- resourceId?: string;
98
- }): AuthorizationResult;
211
+ checkPermission(user: any, permission: any, context: any): {
212
+ granted: boolean;
213
+ reason: string;
214
+ level: string;
215
+ metadata: {
216
+ requiredPermission: string;
217
+ wildcardPermission?: undefined;
218
+ };
219
+ } | {
220
+ granted: boolean;
221
+ reason: string;
222
+ level: string;
223
+ metadata: {
224
+ wildcardPermission: string;
225
+ requiredPermission?: undefined;
226
+ };
227
+ } | {
228
+ granted: boolean;
229
+ reason: string;
230
+ level: string;
231
+ metadata?: undefined;
232
+ } | {
233
+ granted: boolean;
234
+ reason: string;
235
+ level: string;
236
+ metadata: {
237
+ roleValidation: {
238
+ roleInfos: any[];
239
+ tenantCount: number;
240
+ };
241
+ permissionValidation: {
242
+ moduleCount: number;
243
+ actionCount: number;
244
+ modules: any[];
245
+ actions: any[];
246
+ };
247
+ };
248
+ } | {
249
+ granted: boolean;
250
+ reason: string;
251
+ level: string;
252
+ metadata: {
253
+ systemRole: boolean;
254
+ hasModuleAccess?: undefined;
255
+ };
256
+ } | {
257
+ granted: boolean;
258
+ reason: string;
259
+ level: string;
260
+ metadata: {
261
+ hasModuleAccess: boolean;
262
+ systemRole?: undefined;
263
+ };
264
+ };
99
265
  /**
100
266
  * Generate access matrix for a user object (simpler interface)
101
267
  */
102
- generateAccessMatrixForUser(user: {
103
- role: string[];
104
- permissions: string[];
105
- }): AccessMatrix;
268
+ generateAccessMatrixForUser(user: any): {
269
+ hasSystemAccess: any;
270
+ hasClientAccess: any;
271
+ hasProviderAccess: any;
272
+ hasAdminAccess: any;
273
+ accessibleModules: unknown[];
274
+ highestRoleLevel: number;
275
+ effectivePermissions: any[];
276
+ };
106
277
  }
107
278
  //# sourceMappingURL=contractx-authorization.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contractx-authorization.service.d.ts","sourceRoot":"","sources":["../../src/services/contractx-authorization.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contractx-authorization.service.d.ts","sourceRoot":"","sources":["../../src/services/contractx-authorization.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAM5E,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AACD,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,qBACa,6BAA6B;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,0BAA0B;IAG1E;;OAEG;IACH,SAAS,CAAC,OAAO,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+DjB;;OAEG;IACH,oBAAoB,CAAC,SAAS,KAAA;IAK9B;;OAEG;IACH,oBAAoB,CAAC,SAAS,KAAA,EAAE,QAAQ,KAAA,EAAE,MAAM,KAAA;;;;;;;;;;;;;;;;;;;;;;;;IA6BhD;;OAEG;IACH,0BAA0B,CAAC,eAAe,KAAA,EAAE,QAAQ,KAAA,EAAE,MAAM,KAAA;;;;;;;;;;;;;;;;;;;;;;IA0B5D;;OAEG;IACH,iBAAiB,CAAC,eAAe,KAAA,EAAE,MAAM,KAAA;IAGzC;;OAEG;IACH,oBAAoB,CAAC,OAAO,KAAA;;;;;;;;;IA0B5B;;OAEG;IACH,eAAe,CAAC,SAAS,KAAA,EAAE,UAAU,KAAA;IAarC;;OAEG;IACH,oBAAoB,CAAC,SAAS,KAAA;IAiB9B;;OAEG;IACH,yBAAyB,CAAC,eAAe,KAAA,EAAE,SAAS,KAAA,EAAE,cAAc,SAAS;IAI7E;;OAEG;IACH,oBAAoB,CAAC,eAAe,KAAA,EAAE,MAAM,KAAA;IAS5C;;OAEG;IACH,uBAAuB,CAAC,SAAS,KAAA,EAAE,SAAS,KAAA;IAY5C;;OAEG;IACH,yBAAyB,CAAC,OAAO,KAAA;;;;;IAwBjC;;OAEG;IACH,oBAAoB,CAAC,OAAO,KAAA;;;;;;;;;;;IAe5B;;OAEG;IACH,uBAAuB,CAAC,QAAQ,KAAA,EAAE,MAAM,KAAA;IASxC;;OAEG;IACH,sBAAsB,CAAC,QAAQ,KAAA,EAAE,MAAM,KAAA;IAkBvC;;OAEG;IACH,eAAe,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA,EAAE,OAAO,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYzC;;OAEG;IACH,2BAA2B,CAAC,IAAI,KAAA;;;;;;;;;CAOnC"}
@@ -17,6 +17,7 @@ const contractx_permissions_constants_1 = require("../constants/contractx-permis
17
17
  let ContractXAuthorizationService = class ContractXAuthorizationService {
18
18
  constructor(validationService) {
19
19
  this.validationService = validationService;
20
+ this.validationService = validationService;
20
21
  }
21
22
  /**
22
23
  * Authorize a user for a specific action on a resource
@@ -367,3 +368,4 @@ exports.ContractXAuthorizationService = ContractXAuthorizationService = __decora
367
368
  (0, common_1.Injectable)(),
368
369
  __metadata("design:paramtypes", [contractx_validation_service_1.ContractXValidationService])
369
370
  ], ContractXAuthorizationService);
371
+ ;