@nextage/era-lib 1.0.190 → 1.0.191

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.
@@ -13,6 +13,23 @@ export declare const SYSTEM_ROLES: BaseRoles[];
13
13
  export declare const TENANT_ADMIN_ROLES: BaseRoles[];
14
14
  export declare const TENANT_MANAGE_ROLES: BaseRoles[];
15
15
  export declare const TENANT_EDIT_ROLES: BaseRoles[];
16
+ /**
17
+ * Gruppi costruiti sulle **capability** della matrice ADR-0005 §4, non per accumulo di livelli.
18
+ *
19
+ * Servono ai **dati applicativi dei tenant** (asset, controlli, analisi di rischio), dove i
20
+ * gruppi cumulativi qui sopra sono tutti inadatti: includono `APP_CONFIG`, che configura
21
+ * l'applicativo e **non** ha alcuna capability sui dati dei clienti.
22
+ *
23
+ * - `CROSS_TENANT_ROLES` — chi opera su **qualunque** tenant senza vincolo di organizzazione.
24
+ * - `TENANT_DATA_READ_ROLES` — chi legge i dati di un tenant (`ORG_MEMBER` incluso).
25
+ * - `TENANT_DATA_WRITE_ROLES` — chi li modifica: `ORG_MEMBER` è in **sola lettura**.
26
+ *
27
+ * ⚠️ Come i gruppi cumulativi, **non bastano**: dicono *quale ruolo*, non *quale organizzazione*.
28
+ * Lo scoping del tenant resta a carico di `setTenant` e dei filtri del modello.
29
+ */
30
+ export declare const CROSS_TENANT_ROLES: BaseRoles[];
31
+ export declare const TENANT_DATA_WRITE_ROLES: BaseRoles[];
32
+ export declare const TENANT_DATA_READ_ROLES: BaseRoles[];
16
33
  /** Ruoli di livello organizzazione: gli unici delegabili per invito o concessione (T16). */
17
34
  export declare const ORG_MEMBER_ROLES: BaseRoles[];
18
35
  /** Ruoli di livello provider: trasversali ai tenant, assegnabili solo dal livello sistema. */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAa,SAAS,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,aAAuD,CAAC;AAChF,eAAO,MAAM,YAAY,aAA2D,CAAC;AACrF,eAAO,MAAM,kBAAkB,aAAyD,CAAC;AACzF,eAAO,MAAM,mBAAmB,aAAqD,CAAC;AACtF,eAAO,MAAM,iBAAiB,aAAsD,CAAC;AAErF,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB,aAA6E,CAAC;AAE3G,8FAA8F;AAC9F,eAAO,MAAM,SAAS,aAAkE,CAAC;AAEzF;;;;GAIG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAapB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;CAmBzB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAmB3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAiB3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAiB3B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CAezB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAa,SAAS,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,aAAuD,CAAC;AAChF,eAAO,MAAM,YAAY,aAA2D,CAAC;AACrF,eAAO,MAAM,kBAAkB,aAAyD,CAAC;AACzF,eAAO,MAAM,mBAAmB,aAAqD,CAAC;AACtF,eAAO,MAAM,iBAAiB,aAAsD,CAAC;AAErF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,aAA+D,CAAC;AAC/F,eAAO,MAAM,uBAAuB,aAA6E,CAAC;AAClH,eAAO,MAAM,sBAAsB,aAAuD,CAAC;AAE3F,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB,aAA6E,CAAC;AAE3G,8FAA8F;AAC9F,eAAO,MAAM,SAAS,aAAkE,CAAC;AAEzF;;;;GAIG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAapB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;CAmBzB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAmB3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAiB3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAiB3B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CAezB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GDPR_DEFAULTS = exports.N22301_DEFAULTS = exports.N20000_DEFAULTS = exports.N27001_DEFAULTS = exports.FNSC_DEFAULTS = exports.RES_CODE = exports.APP_ROLES = exports.ORG_MEMBER_ROLES = exports.TENANT_EDIT_ROLES = exports.TENANT_MANAGE_ROLES = exports.TENANT_ADMIN_ROLES = exports.SYSTEM_ROLES = exports.ADMIN_ROLES = exports.LICENSE_DATE_FORMAT = void 0;
3
+ exports.GDPR_DEFAULTS = exports.N22301_DEFAULTS = exports.N20000_DEFAULTS = exports.N27001_DEFAULTS = exports.FNSC_DEFAULTS = exports.RES_CODE = exports.APP_ROLES = exports.ORG_MEMBER_ROLES = exports.TENANT_DATA_READ_ROLES = exports.TENANT_DATA_WRITE_ROLES = exports.CROSS_TENANT_ROLES = exports.TENANT_EDIT_ROLES = exports.TENANT_MANAGE_ROLES = exports.TENANT_ADMIN_ROLES = exports.SYSTEM_ROLES = exports.ADMIN_ROLES = exports.LICENSE_DATE_FORMAT = void 0;
4
4
  const enums_1 = require("./enums");
5
5
  const threat_enums_1 = require("./events/types/threat.enums");
6
6
  exports.LICENSE_DATE_FORMAT = 'YYYY-MM-DD';
@@ -16,6 +16,23 @@ exports.SYSTEM_ROLES = [...exports.ADMIN_ROLES, enums_1.BaseRoles.APP_CONFIG];
16
16
  exports.TENANT_ADMIN_ROLES = [...exports.SYSTEM_ROLES, enums_1.BaseRoles.APP_TENANT_MNG];
17
17
  exports.TENANT_MANAGE_ROLES = [...exports.TENANT_ADMIN_ROLES, enums_1.BaseRoles.ORG_MANAGER];
18
18
  exports.TENANT_EDIT_ROLES = [...exports.TENANT_MANAGE_ROLES, enums_1.BaseRoles.ORG_EDITOR];
19
+ /**
20
+ * Gruppi costruiti sulle **capability** della matrice ADR-0005 §4, non per accumulo di livelli.
21
+ *
22
+ * Servono ai **dati applicativi dei tenant** (asset, controlli, analisi di rischio), dove i
23
+ * gruppi cumulativi qui sopra sono tutti inadatti: includono `APP_CONFIG`, che configura
24
+ * l'applicativo e **non** ha alcuna capability sui dati dei clienti.
25
+ *
26
+ * - `CROSS_TENANT_ROLES` — chi opera su **qualunque** tenant senza vincolo di organizzazione.
27
+ * - `TENANT_DATA_READ_ROLES` — chi legge i dati di un tenant (`ORG_MEMBER` incluso).
28
+ * - `TENANT_DATA_WRITE_ROLES` — chi li modifica: `ORG_MEMBER` è in **sola lettura**.
29
+ *
30
+ * ⚠️ Come i gruppi cumulativi, **non bastano**: dicono *quale ruolo*, non *quale organizzazione*.
31
+ * Lo scoping del tenant resta a carico di `setTenant` e dei filtri del modello.
32
+ */
33
+ exports.CROSS_TENANT_ROLES = [...exports.ADMIN_ROLES, enums_1.BaseRoles.APP_TENANT_MNG];
34
+ exports.TENANT_DATA_WRITE_ROLES = [...exports.CROSS_TENANT_ROLES, enums_1.BaseRoles.ORG_MANAGER, enums_1.BaseRoles.ORG_EDITOR];
35
+ exports.TENANT_DATA_READ_ROLES = [...exports.TENANT_DATA_WRITE_ROLES, enums_1.BaseRoles.ORG_MEMBER];
19
36
  /** Ruoli di livello organizzazione: gli unici delegabili per invito o concessione (T16). */
20
37
  exports.ORG_MEMBER_ROLES = [enums_1.BaseRoles.ORG_MANAGER, enums_1.BaseRoles.ORG_EDITOR, enums_1.BaseRoles.ORG_MEMBER];
21
38
  /** Ruoli di livello provider: trasversali ai tenant, assegnabili solo dal livello sistema. */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { AppData, AppMongoDB } from '@nextage/nx-frame-be';
2
- import { BaseUser, NxObject, NxTypeObject } from '@nextage/nx-frame-be';
2
+ import { NxObject, NxTypeObject } from '@nextage/nx-frame-be';
3
3
  import { BaseMongoDoc } from '@nextage/nx-frame-be/build/common/base/base.interfaces';
4
4
  import { BaseI18nEntity } from '../interfaces';
5
5
  /**
@@ -119,33 +119,6 @@ export declare function getEntityI18nString(input: NxTypeObject<string> | string
119
119
  * @returns the i18n map `{ [lang]: value }`
120
120
  */
121
121
  export declare function setEntityI18nString(input: NxTypeObject<string> | string, lang: string): NxTypeObject<string>;
122
- /**
123
- * Sets the tenantId on the given payload based on the user's role and organizations.
124
- * - Normal users: tenantId is always set to their first organization
125
- * - System/provider users (SYSTEM_ROLES):
126
- * - If applyDefaultForAdmin = false → can access all tenants
127
- * - If applyDefaultForAdmin = true and tenantId not provided → tenantId set to first org (subset view)
128
- */
129
- export declare function setTenant(item: NxObject, user?: BaseUser, applyDefaultForAdmin?: boolean): void;
130
- /**
131
- * Scopes a query filter to the user's tenant (multi-tenancy guard).
132
- *
133
- * System/provider roles (`SYSTEM_ROLES`) are left unscoped so they can query across
134
- * tenants; every other user gets `tenantId` forced to their first organization.
135
- * Throws when a non-admin user has no organization.
136
- *
137
- * @param item the query filter object, mutated in place
138
- * @param user the authenticated user (roles + organizations)
139
- */
140
- export declare function setTenantFilter(item: any, user?: BaseUser): void;
141
- /**
142
- * Returns the user's tenant id (their first organization).
143
- *
144
- * @param user the authenticated user
145
- * @returns the tenant id
146
- * @throws if the user has no organization
147
- */
148
- export declare function getTenant(user?: BaseUser): string | undefined;
149
122
  /**
150
123
  * Validates and normalises an absolute http(s) URL (SSRF guard).
151
124
  *
@@ -1 +1 @@
1
- {"version":3,"file":"functs.d.ts","sourceRoot":"","sources":["../../src/utils/functs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAe,UAAU,EAAE,MAAqB,sBAAsB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAiB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAyC,wDAAwD,CAAC;AAEzH,OAAO,EAAE,cAAc,EAAE,MAAuC,eAAe,CAAC;AAIhF;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAwH9D;AAiCD;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CA0B9D;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAgBzC;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,OAAc,GAAG,QAAQ,GAAG,IAAI,CASvF;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAYpE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAmB3E;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,GAAE,MAAiB,EAAE,KAAK,GAAE,MAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3G;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,2BAA2B,CAAC,GAAG,GAAE,MAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCvF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBvE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAOvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAMvF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAS9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAS5G;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,oBAAoB,UAAQ,GAAG,IAAI,CAc7F;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAShE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAM7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBjD"}
1
+ {"version":3,"file":"functs.d.ts","sourceRoot":"","sources":["../../src/utils/functs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAe,UAAU,EAAE,MAAqB,sBAAsB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAiB,YAAY,EAAE,MAAgB,sBAAsB,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAyC,wDAAwD,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,MAAuC,eAAe,CAAC;AAIhF;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAwH9D;AAiCD;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CA0B9D;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAgBzC;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,OAAc,GAAG,QAAQ,GAAG,IAAI,CASvF;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAYpE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAmB3E;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,GAAE,MAAiB,EAAE,KAAK,GAAE,MAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3G;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,2BAA2B,CAAC,GAAG,GAAE,MAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCvF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBvE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAOvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAMvF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAS9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAS5G;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBjD"}
@@ -49,16 +49,12 @@ exports.getI18nEntityStrings = getI18nEntityStrings;
49
49
  exports.setI18nEntityStrings = setI18nEntityStrings;
50
50
  exports.getEntityI18nString = getEntityI18nString;
51
51
  exports.setEntityI18nString = setEntityI18nString;
52
- exports.setTenant = setTenant;
53
- exports.setTenantFilter = setTenantFilter;
54
- exports.getTenant = getTenant;
55
52
  exports.validateUrl = validateUrl;
56
53
  const fs_1 = __importDefault(require("fs"));
57
54
  const path_1 = __importDefault(require("path"));
58
55
  const validator_1 = __importDefault(require("validator"));
59
56
  const dotenv_1 = require("dotenv");
60
57
  const nx_frame_be_1 = require("@nextage/nx-frame-be");
61
- const constants_1 = require("../constants");
62
58
  const env_constants_1 = require("./env.constants");
63
59
  const jwt_1 = require("./jwt");
64
60
  /**
@@ -503,53 +499,6 @@ function setEntityI18nString(input, lang) {
503
499
  res[lang] = input;
504
500
  return res;
505
501
  }
506
- /**
507
- * Sets the tenantId on the given payload based on the user's role and organizations.
508
- * - Normal users: tenantId is always set to their first organization
509
- * - System/provider users (SYSTEM_ROLES):
510
- * - If applyDefaultForAdmin = false → can access all tenants
511
- * - If applyDefaultForAdmin = true and tenantId not provided → tenantId set to first org (subset view)
512
- */
513
- function setTenant(item, user, applyDefaultForAdmin = false) {
514
- const isAdmin = user?.hasRole(constants_1.SYSTEM_ROLES);
515
- // Admins who can see all tenants or already have tenantId specified → exit
516
- if (isAdmin && (!applyDefaultForAdmin || item.tenantId))
517
- return;
518
- if (!user?.organizations?.length)
519
- throw new Error('Cannot proceed: organization not set');
520
- // Admin with applyDefaultForAdmin=true and tenantId absent
521
- // OR normal user → force tenantId
522
- item.tenantId = user.organizations[0].id;
523
- }
524
- /**
525
- * Scopes a query filter to the user's tenant (multi-tenancy guard).
526
- *
527
- * System/provider roles (`SYSTEM_ROLES`) are left unscoped so they can query across
528
- * tenants; every other user gets `tenantId` forced to their first organization.
529
- * Throws when a non-admin user has no organization.
530
- *
531
- * @param item the query filter object, mutated in place
532
- * @param user the authenticated user (roles + organizations)
533
- */
534
- function setTenantFilter(item, user) {
535
- if (user?.hasRole(constants_1.SYSTEM_ROLES))
536
- return;
537
- if (!user?.organizations?.length)
538
- throw new Error('Cannot proceed: organization not set');
539
- item.tenantId = user.organizations[0].id;
540
- }
541
- /**
542
- * Returns the user's tenant id (their first organization).
543
- *
544
- * @param user the authenticated user
545
- * @returns the tenant id
546
- * @throws if the user has no organization
547
- */
548
- function getTenant(user) {
549
- if (!user?.organizations?.length)
550
- throw new Error('Cannot proceed: organization not set');
551
- return user.organizations[0].id;
552
- }
553
502
  /**
554
503
  * Validates and normalises an absolute http(s) URL (SSRF guard).
555
504
  *
@@ -1 +1 @@
1
- {"version":3,"file":"functs.js","sourceRoot":"","sources":["../../src/utils/functs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functs.js","sourceRoot":"","sources":["../../src/utils/functs.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,7 @@ export * from './jwt';
4
4
  export * from './jwt.constants';
5
5
  export * from './jwt.interfaces';
6
6
  export * from './start-service';
7
+ export * from './tenant';
8
+ export * from './tenant.interfaces';
7
9
  export * from './start-service.constants';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC"}
@@ -20,5 +20,7 @@ __exportStar(require("./jwt"), exports);
20
20
  __exportStar(require("./jwt.constants"), exports);
21
21
  __exportStar(require("./jwt.interfaces"), exports);
22
22
  __exportStar(require("./start-service"), exports);
23
+ __exportStar(require("./tenant"), exports);
24
+ __exportStar(require("./tenant.interfaces"), exports);
23
25
  __exportStar(require("./start-service.constants"), exports);
24
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,2CAAyB;AACzB,wCAAsB;AACtB,kDAAgC;AAChC,mDAAiC;AACjC,kDAAgC;AAChC,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,2CAAyB;AACzB,wCAAsB;AACtB,kDAAgC;AAChC,mDAAiC;AACjC,kDAAgC;AAChC,2CAAyB;AACzB,sDAAoC;AACpC,4DAA0C"}
@@ -0,0 +1,65 @@
1
+ /*********************************************************************************************
2
+ * *
3
+ * Multi-tenancy helpers — single source of truth for how a request is scoped to a tenant. *
4
+ * *
5
+ * Every rule about "which organisation is this operation allowed to touch" lives here and *
6
+ * nowhere else: the services (app-srv, auth-srv, …) import these helpers, they never *
7
+ * re-implement the scoping. See ADR-0005 §4 (capability matrix) and §5 (tenant resolution). *
8
+ * *
9
+ *********************************************************************************************/
10
+ import { BaseUser, NxContext, NxObject } from '@nextage/nx-frame-be';
11
+ import { ScopedReadModel } from './tenant.interfaces';
12
+ /**
13
+ * Sets the tenantId on the given payload based on the user's role and organizations.
14
+ * - Normal users: tenantId is always set to their first organization
15
+ * - System/provider users (SYSTEM_ROLES):
16
+ * - If applyDefaultForAdmin = false → can access all tenants
17
+ * - If applyDefaultForAdmin = true and tenantId not provided → tenantId set to first org (subset view)
18
+ */
19
+ export declare function setTenant(item: NxObject, user?: BaseUser, applyDefaultForAdmin?: boolean): void;
20
+ /**
21
+ * Scopes a query filter to the user's tenant (multi-tenancy guard).
22
+ *
23
+ * System/provider roles (`SYSTEM_ROLES`) are left unscoped so they can query across
24
+ * tenants; every other user gets `tenantId` forced to their first organization.
25
+ * Throws when a non-admin user has no organization.
26
+ *
27
+ * @param item the query filter object, mutated in place
28
+ * @param user the authenticated user (roles + organizations)
29
+ */
30
+ export declare function setTenantFilter(item: any, user?: BaseUser): void;
31
+ /**
32
+ * Returns the user's tenant id (their first organization).
33
+ *
34
+ * @param user the authenticated user
35
+ * @returns the tenant id
36
+ * @throws if the user has no organization
37
+ */
38
+ export declare function getTenant(user?: BaseUser): string | undefined;
39
+ /**
40
+ * Verifica che `id` sia raggiungibile dall'utente del contesto, prima di una
41
+ * scrittura distruttiva.
42
+ *
43
+ * Serve a colmare **T37**: `BaseModel.remove(id)` chiama `beforeRemove` e poi
44
+ * `findByIdAndDelete(id)`, senza applicare né `updateFilters` né alcun vincolo di
45
+ * `tenantId` — e `bulkRemove(ids)` non è che `ids.map(remove)`. Senza questo
46
+ * controllo un utente qualsiasi cancella documenti di **altre organizzazioni**
47
+ * conoscendone l'`_id`.
48
+ *
49
+ * Il controllo riusa `model.get`, che passa da `beforeGet` e quindi applica già lo
50
+ * scoping del tenant: un solo punto di verità, nessuna regola di tenancy duplicata
51
+ * qui. Ne consegue che i ruoli cross-tenant, per i quali `setTenant` non aggiunge
52
+ * il filtro, continuano a cancellare ovunque — come previsto dalla matrice
53
+ * ADR-0005 §4.
54
+ *
55
+ * **Fail-closed**: un `id` inesistente o fuori scope solleva un errore, senza
56
+ * distinguere i due casi (non si conferma l'esistenza di un documento altrui).
57
+ *
58
+ * @param model il modello su cui avviene la rimozione (`this` nell'hook)
59
+ * @param id identificativo del documento
60
+ * @param context contesto di richiesta, con l'utente autenticato
61
+ * @returns lo stesso `id`, così da poter essere usato direttamente in `beforeRemove`
62
+ * @throws `AppError('messages.notFound')` se il documento non è nello scope
63
+ */
64
+ export declare function assertTenantScope(model: ScopedReadModel, id: string, context?: NxContext): Promise<string>;
65
+ //# sourceMappingURL=tenant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.d.ts","sourceRoot":"","sources":["../../src/utils/tenant.ts"],"names":[],"mappings":"AAAA;;;;;;;;+FAQ+F;AAE/F,OAAO,EAAY,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAA8B,qBAAqB,CAAC;AAE9E;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,oBAAoB,UAAQ,GAAG,IAAI,CAc7F;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAShE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAM7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,SAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAMpH"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Tenancy types & interfaces.
3
+ *
4
+ * Kept separate from the tenancy logic in `tenant.ts` (house-style: types live in
5
+ * a dedicated `*.interfaces.ts`, never mixed with the logic that consumes them).
6
+ */
7
+ import { NxContext } from '@nextage/nx-frame-be';
8
+ /**
9
+ * Modello di cui serve la sola lettura per `_id`, già scopata sul tenant dal
10
+ * proprio `beforeGet`.
11
+ *
12
+ * Volutamente **strutturale** e non `BaseModel<Attrs, Doc, Model>`: la libreria non
13
+ * deve dipendere dai tipi concreti dei modelli di un singolo servizio, e qualunque
14
+ * modello che sappia leggere per `_id` soddisfa il contratto.
15
+ */
16
+ export interface ScopedReadModel {
17
+ get(id: string, context: NxContext): Promise<unknown>;
18
+ }
19
+ //# sourceMappingURL=tenant.interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.interfaces.d.ts","sourceRoot":"","sources":["../../src/utils/tenant.interfaces.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvD"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * Tenancy types & interfaces.
4
+ *
5
+ * Kept separate from the tenancy logic in `tenant.ts` (house-style: types live in
6
+ * a dedicated `*.interfaces.ts`, never mixed with the logic that consumes them).
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=tenant.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.interfaces.js","sourceRoot":"","sources":["../../src/utils/tenant.interfaces.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ /*********************************************************************************************
3
+ * *
4
+ * Multi-tenancy helpers — single source of truth for how a request is scoped to a tenant. *
5
+ * *
6
+ * Every rule about "which organisation is this operation allowed to touch" lives here and *
7
+ * nowhere else: the services (app-srv, auth-srv, …) import these helpers, they never *
8
+ * re-implement the scoping. See ADR-0005 §4 (capability matrix) and §5 (tenant resolution). *
9
+ * *
10
+ *********************************************************************************************/
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.setTenant = setTenant;
13
+ exports.setTenantFilter = setTenantFilter;
14
+ exports.getTenant = getTenant;
15
+ exports.assertTenantScope = assertTenantScope;
16
+ const nx_frame_be_1 = require("@nextage/nx-frame-be");
17
+ const constants_1 = require("../constants");
18
+ /**
19
+ * Sets the tenantId on the given payload based on the user's role and organizations.
20
+ * - Normal users: tenantId is always set to their first organization
21
+ * - System/provider users (SYSTEM_ROLES):
22
+ * - If applyDefaultForAdmin = false → can access all tenants
23
+ * - If applyDefaultForAdmin = true and tenantId not provided → tenantId set to first org (subset view)
24
+ */
25
+ function setTenant(item, user, applyDefaultForAdmin = false) {
26
+ const isAdmin = user?.hasRole(constants_1.SYSTEM_ROLES);
27
+ // Admins who can see all tenants or already have tenantId specified → exit
28
+ if (isAdmin && (!applyDefaultForAdmin || item.tenantId))
29
+ return;
30
+ if (!user?.organizations?.length)
31
+ throw new Error('Cannot proceed: organization not set');
32
+ // Admin with applyDefaultForAdmin=true and tenantId absent
33
+ // OR normal user → force tenantId
34
+ item.tenantId = user.organizations[0].id;
35
+ }
36
+ /**
37
+ * Scopes a query filter to the user's tenant (multi-tenancy guard).
38
+ *
39
+ * System/provider roles (`SYSTEM_ROLES`) are left unscoped so they can query across
40
+ * tenants; every other user gets `tenantId` forced to their first organization.
41
+ * Throws when a non-admin user has no organization.
42
+ *
43
+ * @param item the query filter object, mutated in place
44
+ * @param user the authenticated user (roles + organizations)
45
+ */
46
+ function setTenantFilter(item, user) {
47
+ if (user?.hasRole(constants_1.SYSTEM_ROLES))
48
+ return;
49
+ if (!user?.organizations?.length)
50
+ throw new Error('Cannot proceed: organization not set');
51
+ item.tenantId = user.organizations[0].id;
52
+ }
53
+ /**
54
+ * Returns the user's tenant id (their first organization).
55
+ *
56
+ * @param user the authenticated user
57
+ * @returns the tenant id
58
+ * @throws if the user has no organization
59
+ */
60
+ function getTenant(user) {
61
+ if (!user?.organizations?.length)
62
+ throw new Error('Cannot proceed: organization not set');
63
+ return user.organizations[0].id;
64
+ }
65
+ /**
66
+ * Verifica che `id` sia raggiungibile dall'utente del contesto, prima di una
67
+ * scrittura distruttiva.
68
+ *
69
+ * Serve a colmare **T37**: `BaseModel.remove(id)` chiama `beforeRemove` e poi
70
+ * `findByIdAndDelete(id)`, senza applicare né `updateFilters` né alcun vincolo di
71
+ * `tenantId` — e `bulkRemove(ids)` non è che `ids.map(remove)`. Senza questo
72
+ * controllo un utente qualsiasi cancella documenti di **altre organizzazioni**
73
+ * conoscendone l'`_id`.
74
+ *
75
+ * Il controllo riusa `model.get`, che passa da `beforeGet` e quindi applica già lo
76
+ * scoping del tenant: un solo punto di verità, nessuna regola di tenancy duplicata
77
+ * qui. Ne consegue che i ruoli cross-tenant, per i quali `setTenant` non aggiunge
78
+ * il filtro, continuano a cancellare ovunque — come previsto dalla matrice
79
+ * ADR-0005 §4.
80
+ *
81
+ * **Fail-closed**: un `id` inesistente o fuori scope solleva un errore, senza
82
+ * distinguere i due casi (non si conferma l'esistenza di un documento altrui).
83
+ *
84
+ * @param model il modello su cui avviene la rimozione (`this` nell'hook)
85
+ * @param id identificativo del documento
86
+ * @param context contesto di richiesta, con l'utente autenticato
87
+ * @returns lo stesso `id`, così da poter essere usato direttamente in `beforeRemove`
88
+ * @throws `AppError('messages.notFound')` se il documento non è nello scope
89
+ */
90
+ async function assertTenantScope(model, id, context = {}) {
91
+ if (!await model.get(id, context))
92
+ throw new nx_frame_be_1.AppError('messages.notFound');
93
+ return id;
94
+ }
95
+ //# sourceMappingURL=tenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.js","sourceRoot":"","sources":["../../src/utils/tenant.ts"],"names":[],"mappings":";AAAA;;;;;;;;+FAQ+F;;AAc/F,8BAcC;AAYD,0CASC;AASD,8BAMC;AA2BD,8CAMC;AA/FD,sDAA+E;AAE/E,4CAAuE;AAGvE;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,IAAc,EAAE,IAAe,EAAE,oBAAoB,GAAG,KAAK;IAErF,MAAM,OAAO,GAAI,IAAI,EAAE,OAAO,CAAC,wBAAY,CAAC,CAAC;IAE7C,2EAA2E;IAC3E,IAAI,OAAO,IAAI,CAAC,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC;QACrD,OAAO;IAET,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM;QAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE1D,2DAA2D;IAC3D,kCAAkC;IAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,eAAe,CAAC,IAAS,EAAE,IAAe;IAExD,IAAI,IAAI,EAAE,OAAO,CAAC,wBAAY,CAAC;QAC7B,OAAO;IAET,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM;QAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,IAAe;IAEvC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM;QAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE1D,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACI,KAAK,UAAU,iBAAiB,CAAC,KAAsB,EAAE,EAAU,EAAE,UAAqB,EAAE;IAEjG,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC;QAC/B,MAAM,IAAI,sBAAQ,CAAC,mBAAmB,CAAC,CAAC;IAE1C,OAAO,EAAE,CAAC;AACZ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nextage/era-lib",
3
- "version": "1.0.190",
3
+ "version": "1.0.191",
4
4
  "main": "./build/index.js",
5
5
  "types": "./build/index.d.ts",
6
6
  "files": [