@nextage/era-lib 1.0.193 → 1.0.195

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.
@@ -1,4 +1,5 @@
1
1
  export * from './created-event';
2
2
  export * from './updated-event';
3
3
  export * from './removed-event';
4
+ export * from './restored-event';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/events/organization/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/events/organization/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./created-event"), exports);
18
18
  __exportStar(require("./updated-event"), exports);
19
19
  __exportStar(require("./removed-event"), exports);
20
+ __exportStar(require("./restored-event"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/events/organization/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,kDAAgC;AAChC,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/events/organization/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,kDAAgC;AAChC,kDAAgC;AAChC,mDAAiC"}
@@ -0,0 +1,20 @@
1
+ import { Subjects } from '../types/enums';
2
+ import { BaseRemovedEventData } from '../types/events.interfaces';
3
+ /**
4
+ * An archived organization has been brought back (**T42**).
5
+ *
6
+ * The counterpart of `OrganizationRemoved`, and the reason it exists: the
7
+ * deletion cascade spans two services, so the restore has to span them too.
8
+ * auth-srv restores the identity documents it owns and announces it here;
9
+ * app-srv restores the tenant data it owns on the same tenant id.
10
+ *
11
+ * The payload is deliberately the SAME shape as the removal (`BaseRemovedEventData`):
12
+ * the consumer needs nothing but the organization id to find its own entries in
13
+ * the archive, and carrying more would be a second copy of the registry to keep
14
+ * in sync.
15
+ */
16
+ export interface OrganizationRestoredEvent {
17
+ subject: Subjects.OrganizationRestored;
18
+ data: BaseRemovedEventData;
19
+ }
20
+ //# sourceMappingURL=restored-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restored-event.d.ts","sourceRoot":"","sources":["../../../src/events/organization/restored-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAkB,gBAAgB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IAExC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC;IACvC,IAAI,EAAK,oBAAoB,CAAC;CAC/B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=restored-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restored-event.js","sourceRoot":"","sources":["../../../src/events/organization/restored-event.ts"],"names":[],"mappings":""}
@@ -44,6 +44,7 @@ export declare enum Subjects {
44
44
  OrganizationCreated = "organization.created",
45
45
  OrganizationUpdated = "organization.updated",
46
46
  OrganizationRemoved = "organization.removed",
47
+ OrganizationRestored = "organization.restored",
47
48
  /*****************
48
49
  * COMPANY-MNG *
49
50
  *****************/
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/events/types/enums.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAElB;;sBAEkB;IAGlB,mBAAmB,yBAA8B;IACjD,mBAAmB,yBAA8B;IACjD,mBAAmB,yBAA8B;IAGjD,eAAe,qBAA8B;IAC7C,eAAe,qBAA8B;IAC7C,eAAe,qBAA8B;IAG7C,oBAAoB,0BAA8B;IAClD,oBAAoB,0BAA8B;IAClD,oBAAoB,0BAA8B;IAGlD,kBAAkB,wBAA8B;IAChD,kBAAkB,wBAA8B;IAChD,kBAAkB,wBAA8B;IAGhD,uBAAuB,6BAA8B;IACrD,uBAAuB,6BAA8B;IACrD,uBAAuB,6BAA8B;IAGrD,gBAAgB,sBAA8B;IAC9C,gBAAgB,sBAA8B;IAC9C,gBAAgB,sBAA8B;IAE9C;;sBAEkB;IAGlB,iBAAiB,uBAA2B;IAC5C,iBAAiB,uBAA2B;IAC5C,iBAAiB,uBAA2B;IAG5C,cAAc,oBAA2B;IACzC,cAAc,oBAA2B;IACzC,cAAc,oBAA2B;IAGzC,aAAa,mBAA2B;IACxC,aAAa,mBAA2B;IACxC,aAAa,mBAA2B;IAGxC,oBAAoB,iBAAkB;IACtC,oBAAoB,iBAAkB;IACtC,oBAAoB,iBAAkB;IAEtC;;uBAEmB;IAGnB,WAAW,iBAAyB;IACpC,WAAW,iBAAyB;IACpC,WAAW,iBAAyB;IAGpC,mBAAmB,yBAAyB;IAC5C,mBAAmB,yBAAyB;IAC5C,mBAAmB,yBAAyB;IAE5C;;uBAEmB;IAGnB,cAAc,oBAA4B;IAC1C,cAAc,oBAA4B;IAC1C,cAAc,oBAA4B;IAG1C,mBAAmB,0BAA6B;IAChD,mBAAmB,0BAA6B;IAChD,mBAAmB,0BAA6B;IAGhD,qBAAqB,4BAA6B;IAClD,qBAAqB,4BAA6B;IAClD,qBAAqB,4BAA6B;IAGlD,oBAAoB,2BAA6B;IACjD,oBAAoB,2BAA6B;IACjD,oBAAoB,2BAA6B;IAGjD,sBAAsB,6BAA6B;IACnD,sBAAsB,6BAA6B;IACnD,sBAAsB,6BAA6B;IAGnD,kBAAkB,yBAA6B;IAC/C,kBAAkB,yBAA6B;IAC/C,kBAAkB,yBAA6B;IAG/C,sBAAsB,6BAA6B;IACnD,sBAAsB,6BAA6B;IACnD,sBAAsB,6BAA6B;IAGnD,qBAAqB,4BAA6B;IAClD,qBAAqB,4BAA6B;IAClD,qBAAqB,4BAA6B;IAElD;;sBAEkB;IAGlB,mBAAmB,0BAA0B;IAC7C,mBAAmB,0BAA0B;IAC7C,mBAAmB,0BAA0B;IAG7C,gBAAgB,uBAA0B;IAC1C,gBAAgB,uBAA0B;IAC1C,gBAAgB,uBAA0B;IAE1C;;sBAEkB;IAOlB;;sBAEkB;IAKlB,aAAa,mBAAyB;CACvC;AAED,oBAAY,cAAc;IACxB,MAAM,iBAAiB;IACvB,MAAM,iBAAiB;IACvB,MAAM,iBAAiB;CACxB"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/events/types/enums.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAElB;;sBAEkB;IAGlB,mBAAmB,yBAA8B;IACjD,mBAAmB,yBAA8B;IACjD,mBAAmB,yBAA8B;IAGjD,eAAe,qBAA8B;IAC7C,eAAe,qBAA8B;IAC7C,eAAe,qBAA8B;IAG7C,oBAAoB,0BAA8B;IAClD,oBAAoB,0BAA8B;IAClD,oBAAoB,0BAA8B;IAGlD,kBAAkB,wBAA8B;IAChD,kBAAkB,wBAA8B;IAChD,kBAAkB,wBAA8B;IAGhD,uBAAuB,6BAA8B;IACrD,uBAAuB,6BAA8B;IACrD,uBAAuB,6BAA8B;IAGrD,gBAAgB,sBAA8B;IAC9C,gBAAgB,sBAA8B;IAC9C,gBAAgB,sBAA8B;IAE9C;;sBAEkB;IAGlB,iBAAiB,uBAA2B;IAC5C,iBAAiB,uBAA2B;IAC5C,iBAAiB,uBAA2B;IAG5C,cAAc,oBAA2B;IACzC,cAAc,oBAA2B;IACzC,cAAc,oBAA2B;IAGzC,aAAa,mBAA2B;IACxC,aAAa,mBAA2B;IACxC,aAAa,mBAA2B;IAGxC,oBAAoB,iBAAkB;IACtC,oBAAoB,iBAAkB;IACtC,oBAAoB,iBAAkB;IAEtC;;uBAEmB;IAGnB,WAAW,iBAAyB;IACpC,WAAW,iBAAyB;IACpC,WAAW,iBAAyB;IAGpC,mBAAmB,yBAAyB;IAC5C,mBAAmB,yBAAyB;IAC5C,mBAAmB,yBAAyB;IAG5C,oBAAoB,0BAA0B;IAE9C;;uBAEmB;IAGnB,cAAc,oBAA4B;IAC1C,cAAc,oBAA4B;IAC1C,cAAc,oBAA4B;IAG1C,mBAAmB,0BAA6B;IAChD,mBAAmB,0BAA6B;IAChD,mBAAmB,0BAA6B;IAGhD,qBAAqB,4BAA6B;IAClD,qBAAqB,4BAA6B;IAClD,qBAAqB,4BAA6B;IAGlD,oBAAoB,2BAA6B;IACjD,oBAAoB,2BAA6B;IACjD,oBAAoB,2BAA6B;IAGjD,sBAAsB,6BAA6B;IACnD,sBAAsB,6BAA6B;IACnD,sBAAsB,6BAA6B;IAGnD,kBAAkB,yBAA6B;IAC/C,kBAAkB,yBAA6B;IAC/C,kBAAkB,yBAA6B;IAG/C,sBAAsB,6BAA6B;IACnD,sBAAsB,6BAA6B;IACnD,sBAAsB,6BAA6B;IAGnD,qBAAqB,4BAA6B;IAClD,qBAAqB,4BAA6B;IAClD,qBAAqB,4BAA6B;IAElD;;sBAEkB;IAGlB,mBAAmB,0BAA0B;IAC7C,mBAAmB,0BAA0B;IAC7C,mBAAmB,0BAA0B;IAG7C,gBAAgB,uBAA0B;IAC1C,gBAAgB,uBAA0B;IAC1C,gBAAgB,uBAA0B;IAE1C;;sBAEkB;IAOlB;;sBAEkB;IAKlB,aAAa,mBAAyB;CACvC;AAED,oBAAY,cAAc;IACxB,MAAM,iBAAiB;IACvB,MAAM,iBAAiB;IACvB,MAAM,iBAAiB;CACxB"}
@@ -60,6 +60,9 @@ var Subjects;
60
60
  Subjects["OrganizationCreated"] = "organization.created";
61
61
  Subjects["OrganizationUpdated"] = "organization.updated";
62
62
  Subjects["OrganizationRemoved"] = "organization.removed";
63
+ // Archived tenant brought back (T42) - the restore counterpart of the removal,
64
+ // which spans both services exactly like the deletion cascade does.
65
+ Subjects["OrganizationRestored"] = "organization.restored";
63
66
  /*****************
64
67
  * COMPANY-MNG *
65
68
  *****************/
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/events/types/enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAqJX;AArJD,WAAY,QAAQ;IAElB;;sBAEkB;IAElB,gBAAgB;IAChB,wDAAiD,CAAA;IACjD,wDAAiD,CAAA;IACjD,wDAAiD,CAAA;IAEjD,WAAW;IACX,gDAA6C,CAAA;IAC7C,gDAA6C,CAAA;IAC7C,gDAA6C,CAAA;IAE7C,gBAAgB;IAChB,0DAAkD,CAAA;IAClD,0DAAkD,CAAA;IAClD,0DAAkD,CAAA;IAElD,cAAc;IACd,sDAAgD,CAAA;IAChD,sDAAgD,CAAA;IAChD,sDAAgD,CAAA;IAEhD,mBAAmB;IACnB,gEAAqD,CAAA;IACrD,gEAAqD,CAAA;IACrD,gEAAqD,CAAA;IAErD,YAAY;IACZ,kDAA8C,CAAA;IAC9C,kDAA8C,CAAA;IAC9C,kDAA8C,CAAA;IAE9C;;sBAEkB;IAElB,cAAc;IACd,oDAA4C,CAAA;IAC5C,oDAA4C,CAAA;IAC5C,oDAA4C,CAAA;IAE5C,UAAU;IACV,8CAAyC,CAAA;IACzC,8CAAyC,CAAA;IACzC,8CAAyC,CAAA;IAEzC,SAAS;IACT,4CAAwC,CAAA;IACxC,4CAAwC,CAAA;IACxC,4CAAwC,CAAA;IAExC,gBAAgB;IAChB,iDAAsC,CAAA;IACtC,iDAAsC,CAAA;IACtC,iDAAsC,CAAA;IAEtC;;uBAEmB;IAEnB,OAAO;IACP,wCAAoC,CAAA;IACpC,wCAAoC,CAAA;IACpC,wCAAoC,CAAA;IAEpC,eAAe;IACf,wDAA4C,CAAA;IAC5C,wDAA4C,CAAA;IAC5C,wDAA4C,CAAA;IAE5C;;uBAEmB;IAEnB,UAAU;IACV,8CAA0C,CAAA;IAC1C,8CAA0C,CAAA;IAC1C,8CAA0C,CAAA;IAE1C,kBAAkB;IAClB,yDAAgD,CAAA;IAChD,yDAAgD,CAAA;IAChD,yDAAgD,CAAA;IAEhD,iBAAiB;IACjB,6DAAkD,CAAA;IAClD,6DAAkD,CAAA;IAClD,6DAAkD,CAAA;IAElD,kBAAkB;IAClB,2DAAiD,CAAA;IACjD,2DAAiD,CAAA;IACjD,2DAAiD,CAAA;IAEjD,WAAW;IACX,+DAAmD,CAAA;IACnD,+DAAmD,CAAA;IACnD,+DAAmD,CAAA;IAEnD,eAAe;IACf,uDAA+C,CAAA;IAC/C,uDAA+C,CAAA;IAC/C,uDAA+C,CAAA;IAE/C,WAAW;IACX,+DAAmD,CAAA;IACnD,+DAAmD,CAAA;IACnD,+DAAmD,CAAA;IAEnD,UAAU;IACV,6DAAkD,CAAA;IAClD,6DAAkD,CAAA;IAClD,6DAAkD,CAAA;IAElD;;sBAEkB;IAElB,gBAAgB;IAChB,yDAA6C,CAAA;IAC7C,yDAA6C,CAAA;IAC7C,yDAA6C,CAAA;IAE7C,aAAa;IACb,mDAA0C,CAAA;IAC1C,mDAA0C,CAAA;IAC1C,mDAA0C,CAAA;IAE1C;;sBAEkB;IAElB,mBAAmB;IACnB,2CAA2C;IAC3C,2CAA2C;IAC3C,2CAA2C;IAE3C;;sBAEkB;IAElB,0EAA0E;IAC1E,uEAAuE;IACvE,yDAAyD;IACzD,4CAAsC,CAAA;AACxC,CAAC,EArJW,QAAQ,wBAAR,QAAQ,QAqJnB;AAED,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,yCAAuB,CAAA;IACvB,yCAAuB,CAAA;AACzB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/events/types/enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAwJX;AAxJD,WAAY,QAAQ;IAElB;;sBAEkB;IAElB,gBAAgB;IAChB,wDAAiD,CAAA;IACjD,wDAAiD,CAAA;IACjD,wDAAiD,CAAA;IAEjD,WAAW;IACX,gDAA6C,CAAA;IAC7C,gDAA6C,CAAA;IAC7C,gDAA6C,CAAA;IAE7C,gBAAgB;IAChB,0DAAkD,CAAA;IAClD,0DAAkD,CAAA;IAClD,0DAAkD,CAAA;IAElD,cAAc;IACd,sDAAgD,CAAA;IAChD,sDAAgD,CAAA;IAChD,sDAAgD,CAAA;IAEhD,mBAAmB;IACnB,gEAAqD,CAAA;IACrD,gEAAqD,CAAA;IACrD,gEAAqD,CAAA;IAErD,YAAY;IACZ,kDAA8C,CAAA;IAC9C,kDAA8C,CAAA;IAC9C,kDAA8C,CAAA;IAE9C;;sBAEkB;IAElB,cAAc;IACd,oDAA4C,CAAA;IAC5C,oDAA4C,CAAA;IAC5C,oDAA4C,CAAA;IAE5C,UAAU;IACV,8CAAyC,CAAA;IACzC,8CAAyC,CAAA;IACzC,8CAAyC,CAAA;IAEzC,SAAS;IACT,4CAAwC,CAAA;IACxC,4CAAwC,CAAA;IACxC,4CAAwC,CAAA;IAExC,gBAAgB;IAChB,iDAAsC,CAAA;IACtC,iDAAsC,CAAA;IACtC,iDAAsC,CAAA;IAEtC;;uBAEmB;IAEnB,OAAO;IACP,wCAAoC,CAAA;IACpC,wCAAoC,CAAA;IACpC,wCAAoC,CAAA;IAEpC,eAAe;IACf,wDAA4C,CAAA;IAC5C,wDAA4C,CAAA;IAC5C,wDAA4C,CAAA;IAC5C,+EAA+E;IAC/E,oEAAoE;IACpE,0DAA8C,CAAA;IAE9C;;uBAEmB;IAEnB,UAAU;IACV,8CAA0C,CAAA;IAC1C,8CAA0C,CAAA;IAC1C,8CAA0C,CAAA;IAE1C,kBAAkB;IAClB,yDAAgD,CAAA;IAChD,yDAAgD,CAAA;IAChD,yDAAgD,CAAA;IAEhD,iBAAiB;IACjB,6DAAkD,CAAA;IAClD,6DAAkD,CAAA;IAClD,6DAAkD,CAAA;IAElD,kBAAkB;IAClB,2DAAiD,CAAA;IACjD,2DAAiD,CAAA;IACjD,2DAAiD,CAAA;IAEjD,WAAW;IACX,+DAAmD,CAAA;IACnD,+DAAmD,CAAA;IACnD,+DAAmD,CAAA;IAEnD,eAAe;IACf,uDAA+C,CAAA;IAC/C,uDAA+C,CAAA;IAC/C,uDAA+C,CAAA;IAE/C,WAAW;IACX,+DAAmD,CAAA;IACnD,+DAAmD,CAAA;IACnD,+DAAmD,CAAA;IAEnD,UAAU;IACV,6DAAkD,CAAA;IAClD,6DAAkD,CAAA;IAClD,6DAAkD,CAAA;IAElD;;sBAEkB;IAElB,gBAAgB;IAChB,yDAA6C,CAAA;IAC7C,yDAA6C,CAAA;IAC7C,yDAA6C,CAAA;IAE7C,aAAa;IACb,mDAA0C,CAAA;IAC1C,mDAA0C,CAAA;IAC1C,mDAA0C,CAAA;IAE1C;;sBAEkB;IAElB,mBAAmB;IACnB,2CAA2C;IAC3C,2CAA2C;IAC3C,2CAA2C;IAE3C;;sBAEkB;IAElB,0EAA0E;IAC1E,uEAAuE;IACvE,yDAAyD;IACzD,4CAAsC,CAAA;AACxC,CAAC,EAxJW,QAAQ,wBAAR,QAAQ,QAwJnB;AAED,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,yCAAuB,CAAA;IACvB,yCAAuB,CAAA;AACzB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB"}
@@ -109,4 +109,56 @@ export interface NxUserContext {
109
109
  userAgent?: string;
110
110
  remoteAddress?: string;
111
111
  }
112
+ /**
113
+ * One archived document of a deleted tenant (**T42**).
114
+ *
115
+ * Deleting an organization used to leave its application data behind forever:
116
+ * `OrganizationRemoved` had publishers but no consumer, so the tenant documents
117
+ * of app-srv stayed in place, unreachable and ownerless - personal data kept
118
+ * beyond its purpose. The opposite extreme, deleting everything outright, makes
119
+ * a mistaken deletion unrecoverable. The archive is the middle ground: the
120
+ * documents LEAVE their collection at once (so they disappear from every list
121
+ * with no filter to add anywhere, and no query can reach them) and are swept
122
+ * later by a TTL index on {@link purgeAt}.
123
+ *
124
+ * ### One entry per DOCUMENT, not per tenant
125
+ *
126
+ * A single document holding a whole tenant would hit the 16MB BSON ceiling on
127
+ * the very tenants that most need recovering.
128
+ *
129
+ * ### The original `_id` is kept
130
+ *
131
+ * {@link doc} is the untouched document, `_id` included: relations across
132
+ * collections are by `_id` (`riskAsset.assetId` -> `companyAsset._id`,
133
+ * `companyAsset.assetOwner.id` -> `companyEmployee._id`), so regenerating them on
134
+ * restore would bring the tenant back with its relations broken.
135
+ *
136
+ * ### `sourceCollection` says who owns the entry
137
+ *
138
+ * Both services archive into the same collection - the database is shared, as it
139
+ * already is for `event`, `organization` and `users` - and each restores ONLY the
140
+ * collections it owns. The two sets are disjoint by construction (auth-srv holds
141
+ * the identity ones, app-srv the tenant data ones), so no entry is ever claimed
142
+ * by both.
143
+ *
144
+ * ⚠️ The field is NOT called `collection`: that is a reserved schema pathname in
145
+ * mongoose (it shadows `Document.prototype.collection`, the collection handle),
146
+ * accepted only with a warning and "at your own risk".
147
+ */
148
+ export interface TenantArchiveItem {
149
+ /** Organization the archived document belonged to. */
150
+ tenantId: string;
151
+ /** Collection it came from, and the only marker of which service owns it. */
152
+ sourceCollection: string;
153
+ /** The original document, verbatim, `_id` included. */
154
+ doc: Record<string, unknown>;
155
+ /** When it was archived. */
156
+ archivedAt: Date;
157
+ /**
158
+ * When it becomes disposable: a TTL index with `expireAfterSeconds: 0` treats
159
+ * this very value as the deadline, so the window is per-document and changing
160
+ * `TENANT_PURGE_VALIDITY` does not rebuild the index.
161
+ */
162
+ purgeAt: Date;
163
+ }
112
164
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAc,SAAS,CAAC;AAEjF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;AAEhE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAI,MAAM,CAAC;IACjB,MAAM,EAAI,MAAM,CAAC;IACjB,MAAM,EAAI,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAI,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB,OAAO,EAAM,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,IAAI,CAAC,EAAK,MAAM,CAAC;IACjB,IAAI,CAAC,EAAK,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAI,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,IAAI,CAAC,EAAS,MAAM,CAAC;IACrB,IAAI,CAAC,EAAS,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5C,WAAW,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5C,OAAO,CAAC,EAAM,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAM,MAAM,CAAC;IACnB,IAAI,EAAQ,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAK,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAW,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAa,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,OAAO,CAAC,EAAS,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAG,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAW,QAAQ,CAAC;IACzB,OAAO,CAAC,EAAQ,GAAG,CAAC;IACpB,OAAO,CAAC,EAAQ,kBAAkB,GAAG,iBAAiB,CAAC;IACvD,SAAS,CAAC,EAAM,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,22 @@ export interface AppDlqConfig {
56
56
  export interface AppDebugConfig {
57
57
  printGraphqlSchema: boolean;
58
58
  }
59
+ /**
60
+ * Tenant lifecycle settings (T42).
61
+ *
62
+ * `purgeValidity` is how long a deleted organization stays RECOVERABLE: its
63
+ * documents are moved to the archive and swept by a TTL index once the window
64
+ * closes. Expressed as a duration string (`'30d'`), like `JWT_VALIDITY` and
65
+ * `INVITATION_VALIDITY`, and turned into milliseconds by `parseDurationMs` at
66
+ * the point of use.
67
+ *
68
+ * ⚠️ It must hold the SAME value in every service: each one archives its own
69
+ * collections, so a shorter window on one side would purge its share first and
70
+ * a later restore would come back incomplete.
71
+ */
72
+ export interface AppTenantConfig {
73
+ purgeValidity: string;
74
+ }
59
75
  declare module '@nextage/nx-frame-be' {
60
76
  interface AppCustomConfig {
61
77
  i18n: AppI18nConfig;
@@ -66,6 +82,7 @@ declare module '@nextage/nx-frame-be' {
66
82
  relay: AppRelayConfig;
67
83
  dlq: AppDlqConfig;
68
84
  debug: AppDebugConfig;
85
+ tenant: AppTenantConfig;
69
86
  }
70
87
  }
71
88
  //# sourceMappingURL=app-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../../src/types/app-config.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;GAeG;AAEH,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAG,MAAM,CAAC;CACjB;AAED,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAS,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAI,MAAM,CAAC;CACnB;AAED,kCAAkC;AAClC,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAS,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAO,MAAM,CAAC;IACvB,YAAY,CAAC,EAAG,MAAM,CAAC;IACvB,WAAW,CAAC,EAAI,MAAM,CAAC;IACvB,aAAa,EAAG,MAAM,CAAC;CACxB;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAK,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,OAAO,QAAQ,sBAAsB,CAAC;IAEpC,UAAU,eAAe;QACvB,IAAI,EAAG,aAAa,CAAC;QACrB,IAAI,EAAG,aAAa,CAAC;QACrB,KAAK,EAAE,cAAc,CAAC;QACtB,GAAG,EAAI,iBAAiB,CAAC;QACzB,IAAI,EAAG,aAAa,CAAC;QACrB,KAAK,EAAE,cAAc,CAAC;QACtB,GAAG,EAAI,YAAY,CAAC;QACpB,KAAK,EAAE,cAAc,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../../src/types/app-config.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;GAeG;AAEH,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAG,MAAM,CAAC;CACjB;AAED,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAS,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAI,MAAM,CAAC;CACnB;AAED,kCAAkC;AAClC,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAS,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAO,MAAM,CAAC;IACvB,YAAY,CAAC,EAAG,MAAM,CAAC;IACvB,WAAW,CAAC,EAAI,MAAM,CAAC;IACvB,aAAa,EAAG,MAAM,CAAC;CACxB;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAK,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,OAAO,QAAQ,sBAAsB,CAAC;IAEpC,UAAU,eAAe;QACvB,IAAI,EAAI,aAAa,CAAC;QACtB,IAAI,EAAI,aAAa,CAAC;QACtB,KAAK,EAAG,cAAc,CAAC;QACvB,GAAG,EAAK,iBAAiB,CAAC;QAC1B,IAAI,EAAI,aAAa,CAAC;QACtB,KAAK,EAAG,cAAc,CAAC;QACvB,GAAG,EAAK,YAAY,CAAC;QACrB,KAAK,EAAG,cAAc,CAAC;QACvB,MAAM,EAAE,eAAe,CAAC;KACzB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"env.constants.d.ts","sourceRoot":"","sources":["../../src/utils/env.constants.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2B/C,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,WAAW,UAAqC,CAAC;AAE9D,uFAAuF;AACvF,eAAO,MAAM,QAAQ,UAA+B,CAAC"}
1
+ {"version":3,"file":"env.constants.d.ts","sourceRoot":"","sources":["../../src/utils/env.constants.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4B/C,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,WAAW,UAAqC,CAAC;AAE9D,uFAAuF;AACvF,eAAO,MAAM,QAAQ,UAA+B,CAAC"}
@@ -36,6 +36,7 @@ exports.ENV_DEFAULTS = {
36
36
  PWD_VALIDITY_MONTHS: '6',
37
37
  TOKEN_VALIDITY_DAYS: '6',
38
38
  INVITATION_VALIDITY: '1d',
39
+ TENANT_PURGE_VALIDITY: '30d', // how long an archived tenant stays recoverable (T42)
39
40
  MSG_URL: '',
40
41
  MSG_CLUSTER_ID: '',
41
42
  MSG_CLIENT_ID: '',
@@ -1 +1 @@
1
- {"version":3,"file":"env.constants.js","sourceRoot":"","sources":["../../src/utils/env.constants.ts"],"names":[],"mappings":";;;AAAA,mDAAyI;AAEzI;;;;;;GAMG;AAEH;;;;;;;GAOG;AACU,QAAA,YAAY,GAA2B;IAClD,QAAQ,EAAa,OAAO;IAC5B,WAAW,EAAU,MAAM;IAC3B,OAAO,EAAc,QAAQ;IAC7B,aAAa,EAAQ,EAAE;IACvB,aAAa,EAAQ,wCAAwB;IAC7C,YAAY,EAAS,uCAAuB,EAAI,gEAAgE;IAChH,iBAAiB,EAAI,yCAAyB,EAAE,gEAAgE;IAChH,gBAAgB,EAAK,wCAAwB,EAAG,KAAK;IACrD,UAAU,EAAW,WAAW;IAChC,UAAU,EAAW,IAAI,EAAuB,sDAAsD;IACtG,UAAU,EAAW,IAAI;IACzB,SAAS,EAAY,EAAE;IACvB,aAAa,EAAQ,EAAE;IACvB,aAAa,EAAQ,EAAE;IACvB,QAAQ,EAAa,uBAAuB;IAC5C,mBAAmB,EAAE,GAAG;IACxB,mBAAmB,EAAE,GAAG;IACxB,mBAAmB,EAAE,IAAI;IACzB,OAAO,EAAc,EAAE;IACvB,cAAc,EAAO,EAAE;IACvB,aAAa,EAAQ,EAAE;IACvB,aAAa,EAAQ,WAAW;IAChC,gBAAgB,EAAK,cAAc;IACnC,iBAAiB,EAAI,eAAe,EAAY,mCAAmC;IACnF,mBAAmB,EAAE,gBAAgB;IACrC,eAAe,EAAM,MAAM;CAC5B,CAAC;AAEF,mFAAmF;AACtE,QAAA,WAAW,GAAG,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAE9D,uFAAuF;AAC1E,QAAA,QAAQ,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"env.constants.js","sourceRoot":"","sources":["../../src/utils/env.constants.ts"],"names":[],"mappings":";;;AAAA,mDAAyI;AAEzI;;;;;;GAMG;AAEH;;;;;;;GAOG;AACU,QAAA,YAAY,GAA2B;IAClD,QAAQ,EAAa,OAAO;IAC5B,WAAW,EAAU,MAAM;IAC3B,OAAO,EAAc,QAAQ;IAC7B,aAAa,EAAQ,EAAE;IACvB,aAAa,EAAQ,wCAAwB;IAC7C,YAAY,EAAS,uCAAuB,EAAI,gEAAgE;IAChH,iBAAiB,EAAI,yCAAyB,EAAE,gEAAgE;IAChH,gBAAgB,EAAK,wCAAwB,EAAG,KAAK;IACrD,UAAU,EAAW,WAAW;IAChC,UAAU,EAAW,IAAI,EAAuB,sDAAsD;IACtG,UAAU,EAAW,IAAI;IACzB,SAAS,EAAY,EAAE;IACvB,aAAa,EAAQ,EAAE;IACvB,aAAa,EAAQ,EAAE;IACvB,QAAQ,EAAa,uBAAuB;IAC5C,mBAAmB,EAAE,GAAG;IACxB,mBAAmB,EAAE,GAAG;IACxB,mBAAmB,EAAE,IAAI;IACzB,qBAAqB,EAAE,KAAK,EAAoB,sDAAsD;IACtG,OAAO,EAAc,EAAE;IACvB,cAAc,EAAO,EAAE;IACvB,aAAa,EAAQ,EAAE;IACvB,aAAa,EAAQ,WAAW;IAChC,gBAAgB,EAAK,cAAc;IACnC,iBAAiB,EAAI,eAAe,EAAY,mCAAmC;IACnF,mBAAmB,EAAE,gBAAgB;IACrC,eAAe,EAAM,MAAM;CAC5B,CAAC;AAEF,mFAAmF;AACtE,QAAA,WAAW,GAAG,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAE9D,uFAAuF;AAC1E,QAAA,QAAQ,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC"}
@@ -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,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"}
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,CA2H9D;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"}
@@ -163,6 +163,9 @@ async function initConfig(dir) {
163
163
  },
164
164
  debug: {
165
165
  printGraphqlSchema: process.env.PRINT_GRAPHQL_SCHEMA === '1'
166
+ },
167
+ tenant: {
168
+ purgeValidity: process.env.TENANT_PURGE_VALIDITY
166
169
  }
167
170
  };
168
171
  // Messages queue configuration (es. NATS, Kafka, RabbitMQ..)
@@ -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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"}
@@ -9,7 +9,7 @@
9
9
  * *
10
10
  *********************************************************************************************/
11
11
  import { BaseUser, NxContext, NxObject } from '@nextage/nx-frame-be';
12
- import { ScopedReadModel } from './tenant.interfaces';
12
+ import { ExistenceCheckModel, ScopedReadModel } from './tenant.interfaces';
13
13
  /**
14
14
  * Resolves the organization a request operates on - ALWAYS exactly one.
15
15
  *
@@ -95,4 +95,73 @@ export declare function getTenant(user?: BaseUser): string;
95
95
  * @throws `AppError('messages.notFound')` when the document is out of scope
96
96
  */
97
97
  export declare function assertTenantScope(model: ScopedReadModel, id: string, context?: NxContext): Promise<string>;
98
+ /**
99
+ * Answers whether the organization NAMED by a request actually exists (T49).
100
+ *
101
+ * {@link resolveTenant} answers one question - "may this user REACH the
102
+ * selection" - and for a cross-tenant role the answer is "any of them", so it
103
+ * hands the value back untouched. EXISTENCE was nobody's job: an `orgId` naming
104
+ * no organization, never created or since deleted, travelled through unchecked.
105
+ *
106
+ * On reads that costs nothing: the filter matches no document and the caller gets
107
+ * an empty list. It bites on WRITES, because {@link setTenant} also runs inside
108
+ * `beforeCreate`: the document is stored with a `tenantId` pointing nowhere,
109
+ * unreachable by every later query and invisible to any tenant-wide cascade,
110
+ * which keys off an `OrganizationRemoved` event that will never arrive for an
111
+ * organization that never existed.
112
+ *
113
+ * ### Where to call it
114
+ *
115
+ * In the REQUEST CONTEXT of the service - the one place `orgId` enters, crossed
116
+ * ONCE per request - and NOT inside `resolveTenant`. That helper is synchronous
117
+ * and `setTenant` calls it from `beforeCreate`/`beforeGet`/`updateFilters`, hooks
118
+ * that run on every single query: making it asynchronous would cost a database
119
+ * round trip per query, and a signature change rippling through every caller, to
120
+ * answer a question that only changes when the request does.
121
+ *
122
+ * ⚠️ A service whose `orgId` reaches it only through checked paths does NOT need
123
+ * this: auth-srv, for one, takes the organization from mutation ARGUMENTS and
124
+ * passes it to `assertOrgScope`, which re-reads the document and fails when it is
125
+ * missing - the check there would be dead code. Wire it where the selection
126
+ * enters raw, from a header or from connection params.
127
+ *
128
+ * ### Fail-closed, and mute
129
+ *
130
+ * A non-existent selection is refused with the very same `messages.forbidden` as
131
+ * an out-of-reach one: telling them apart would answer a question the caller is
132
+ * not entitled to ask - whether someone else's organization exists, or has been
133
+ * deleted.
134
+ *
135
+ * A malformed value is refused likewise and deliberately BEFORE the query: the
136
+ * selection is client-supplied, and handing an arbitrary string to mongoose would
137
+ * raise a CastError - a 500 where a denial belongs. Note that `toObjectId` does
138
+ * NOT throw on a bad value, it returns the string unchanged, so the guard cannot
139
+ * be left to it.
140
+ *
141
+ * NO selection means "the caller's own organization" (rule 1) and there is
142
+ * nothing to verify: the check is a no-op, so requests that simply do not select
143
+ * are unaffected.
144
+ *
145
+ * @param model the organization model, or any local projection standing in for it
146
+ * @param orgId the organization named by the request, when any
147
+ * @returns `true` when the selection is usable, `false` when it names nothing
148
+ */
149
+ export declare function selectedOrgExists(model: ExistenceCheckModel, orgId?: string): Promise<boolean>;
150
+ /**
151
+ * {@link selectedOrgExists} in throwing form, for GraphQL context builders.
152
+ *
153
+ * A rejected context aborts the whole operation, which is exactly what a refusal
154
+ * means here.
155
+ *
156
+ * ⚠️ An Express middleware may NOT be able to use this shape: if the service
157
+ * registers its error handler BEFORE the routes, the error never reaches it, and
158
+ * `AppError` carries its code in `extensions.code` rather than in `.status`, so
159
+ * the handler would answer 500 on an already-written response. There, call
160
+ * {@link selectedOrgExists} and write the refusal directly.
161
+ *
162
+ * @param model the organization model, or any local projection standing in for it
163
+ * @param orgId the organization named by the request, when any
164
+ * @throws `AppError('messages.forbidden')` when the selection names no organization
165
+ */
166
+ export declare function assertSelectedOrgExists(model: ExistenceCheckModel, orgId?: string): Promise<void>;
98
167
  //# sourceMappingURL=tenant.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.d.ts","sourceRoot":"","sources":["../../src/utils/tenant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;+FAS+F;AAE/F,OAAO,EAAY,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAA8B,qBAAqB,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAerE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,SAAc,GAAG,IAAI,CAGvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAMjD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,SAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAMpH"}
1
+ {"version":3,"file":"tenant.d.ts","sourceRoot":"","sources":["../../src/utils/tenant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;+FAS+F;AAE/F,OAAO,EAAY,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAI/E,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAS,qBAAqB,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAerE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,SAAc,GAAG,IAAI,CAGvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAMjD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,SAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAMpH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASpG;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvG"}
@@ -16,4 +16,19 @@ import { NxContext } from '@nextage/nx-frame-be';
16
16
  export interface ScopedReadModel {
17
17
  get(id: string, context: NxContext): Promise<unknown>;
18
18
  }
19
+ /**
20
+ * A model of which only "does a document with this `_id` exist" is needed.
21
+ *
22
+ * Structural for the same reason as {@link ScopedReadModel}, and deliberately
23
+ * built on `mgModel.exists` rather than on `get`: the question is whether the
24
+ * document EXISTS AT ALL, so it must NOT go through `beforeGet` and the tenant
25
+ * scoping it applies - a scoped read would answer "no" for an organization that
26
+ * exists but the caller cannot reach, which is a different question with a
27
+ * different answer.
28
+ */
29
+ export interface ExistenceCheckModel {
30
+ mgModel: {
31
+ exists(filter: Record<string, unknown>): Promise<unknown>;
32
+ };
33
+ }
19
34
  //# sourceMappingURL=tenant.interfaces.d.ts.map
@@ -1 +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"}
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;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE;QACP,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KAC3D,CAAC;CACH"}
@@ -14,7 +14,10 @@ exports.resolveTenant = resolveTenant;
14
14
  exports.setTenant = setTenant;
15
15
  exports.getTenant = getTenant;
16
16
  exports.assertTenantScope = assertTenantScope;
17
+ exports.selectedOrgExists = selectedOrgExists;
18
+ exports.assertSelectedOrgExists = assertSelectedOrgExists;
17
19
  const nx_frame_be_1 = require("@nextage/nx-frame-be");
20
+ const mongo_utils_1 = require("@nextage/nx-frame-be/build/common/base/mongo-utils");
18
21
  const scope_1 = require("./scope");
19
22
  /**
20
23
  * Resolves the organization a request operates on - ALWAYS exactly one.
@@ -121,4 +124,82 @@ async function assertTenantScope(model, id, context = {}) {
121
124
  throw new nx_frame_be_1.AppError('messages.notFound');
122
125
  return id;
123
126
  }
127
+ /**
128
+ * Answers whether the organization NAMED by a request actually exists (T49).
129
+ *
130
+ * {@link resolveTenant} answers one question - "may this user REACH the
131
+ * selection" - and for a cross-tenant role the answer is "any of them", so it
132
+ * hands the value back untouched. EXISTENCE was nobody's job: an `orgId` naming
133
+ * no organization, never created or since deleted, travelled through unchecked.
134
+ *
135
+ * On reads that costs nothing: the filter matches no document and the caller gets
136
+ * an empty list. It bites on WRITES, because {@link setTenant} also runs inside
137
+ * `beforeCreate`: the document is stored with a `tenantId` pointing nowhere,
138
+ * unreachable by every later query and invisible to any tenant-wide cascade,
139
+ * which keys off an `OrganizationRemoved` event that will never arrive for an
140
+ * organization that never existed.
141
+ *
142
+ * ### Where to call it
143
+ *
144
+ * In the REQUEST CONTEXT of the service - the one place `orgId` enters, crossed
145
+ * ONCE per request - and NOT inside `resolveTenant`. That helper is synchronous
146
+ * and `setTenant` calls it from `beforeCreate`/`beforeGet`/`updateFilters`, hooks
147
+ * that run on every single query: making it asynchronous would cost a database
148
+ * round trip per query, and a signature change rippling through every caller, to
149
+ * answer a question that only changes when the request does.
150
+ *
151
+ * ⚠️ A service whose `orgId` reaches it only through checked paths does NOT need
152
+ * this: auth-srv, for one, takes the organization from mutation ARGUMENTS and
153
+ * passes it to `assertOrgScope`, which re-reads the document and fails when it is
154
+ * missing - the check there would be dead code. Wire it where the selection
155
+ * enters raw, from a header or from connection params.
156
+ *
157
+ * ### Fail-closed, and mute
158
+ *
159
+ * A non-existent selection is refused with the very same `messages.forbidden` as
160
+ * an out-of-reach one: telling them apart would answer a question the caller is
161
+ * not entitled to ask - whether someone else's organization exists, or has been
162
+ * deleted.
163
+ *
164
+ * A malformed value is refused likewise and deliberately BEFORE the query: the
165
+ * selection is client-supplied, and handing an arbitrary string to mongoose would
166
+ * raise a CastError - a 500 where a denial belongs. Note that `toObjectId` does
167
+ * NOT throw on a bad value, it returns the string unchanged, so the guard cannot
168
+ * be left to it.
169
+ *
170
+ * NO selection means "the caller's own organization" (rule 1) and there is
171
+ * nothing to verify: the check is a no-op, so requests that simply do not select
172
+ * are unaffected.
173
+ *
174
+ * @param model the organization model, or any local projection standing in for it
175
+ * @param orgId the organization named by the request, when any
176
+ * @returns `true` when the selection is usable, `false` when it names nothing
177
+ */
178
+ async function selectedOrgExists(model, orgId) {
179
+ if (!orgId)
180
+ return true;
181
+ if (!(0, mongo_utils_1.isValidObjectId)(orgId))
182
+ return false;
183
+ return !!await model.mgModel.exists({ _id: (0, mongo_utils_1.toObjectId)(orgId) });
184
+ }
185
+ /**
186
+ * {@link selectedOrgExists} in throwing form, for GraphQL context builders.
187
+ *
188
+ * A rejected context aborts the whole operation, which is exactly what a refusal
189
+ * means here.
190
+ *
191
+ * ⚠️ An Express middleware may NOT be able to use this shape: if the service
192
+ * registers its error handler BEFORE the routes, the error never reaches it, and
193
+ * `AppError` carries its code in `extensions.code` rather than in `.status`, so
194
+ * the handler would answer 500 on an already-written response. There, call
195
+ * {@link selectedOrgExists} and write the refusal directly.
196
+ *
197
+ * @param model the organization model, or any local projection standing in for it
198
+ * @param orgId the organization named by the request, when any
199
+ * @throws `AppError('messages.forbidden')` when the selection names no organization
200
+ */
201
+ async function assertSelectedOrgExists(model, orgId) {
202
+ if (!await selectedOrgExists(model, orgId))
203
+ throw new nx_frame_be_1.AppError('messages.forbidden');
204
+ }
124
205
  //# sourceMappingURL=tenant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.js","sourceRoot":"","sources":["../../src/utils/tenant.ts"],"names":[],"mappings":";AAAA;;;;;;;;;+FAS+F;;AAyC/F,sCAeC;AAcD,8BAGC;AAaD,8BAMC;AA0BD,8CAMC;AA1HD,sDAA+E;AAE/E,mCAAkE;AAGlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAAgB,aAAa,CAAC,IAAe,EAAE,KAAc;IAE3D,IAAI,CAAC,KAAK;QACR,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,SAAS,GAAG,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC;IAExC,sEAAsE;IACtE,IAAI,CAAC,SAAS;QACZ,OAAO,KAAK,CAAC;IAEf,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC5B,MAAM,IAAI,sBAAQ,CAAC,oBAAoB,CAAC,CAAC;IAE3C,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,SAAS,CAAC,IAAc,EAAE,UAAqB,EAAE;IAE/D,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,SAAS,CAAC,IAAe;IAEvC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM;QAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;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"}
1
+ {"version":3,"file":"tenant.js","sourceRoot":"","sources":["../../src/utils/tenant.ts"],"names":[],"mappings":";AAAA;;;;;;;;;+FAS+F;;AA0C/F,sCAeC;AAcD,8BAGC;AAaD,8BAMC;AA0BD,8CAMC;AAqDD,8CASC;AAkBD,0DAIC;AA/MD,sDAA+E;AAC/E,oFAA6G;AAE7G,mCAAkE;AAGlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAAgB,aAAa,CAAC,IAAe,EAAE,KAAc;IAE3D,IAAI,CAAC,KAAK;QACR,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,SAAS,GAAG,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC;IAExC,sEAAsE;IACtE,IAAI,CAAC,SAAS;QACZ,OAAO,KAAK,CAAC;IAEf,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC5B,MAAM,IAAI,sBAAQ,CAAC,oBAAoB,CAAC,CAAC;IAE3C,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,SAAS,CAAC,IAAc,EAAE,UAAqB,EAAE;IAE/D,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,SAAS,CAAC,IAAe;IAEvC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM;QAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;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;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACI,KAAK,UAAU,iBAAiB,CAAC,KAA0B,EAAE,KAAc;IAEhF,IAAI,CAAC,KAAK;QACR,OAAO,IAAI,CAAC;IAEd,IAAI,CAAC,IAAA,6BAAe,EAAC,KAAK,CAAC;QACzB,OAAO,KAAK,CAAC;IAEf,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAA,wBAAU,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,uBAAuB,CAAC,KAA0B,EAAE,KAAc;IAEtF,IAAI,CAAC,MAAM,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC;QACxC,MAAM,IAAI,sBAAQ,CAAC,oBAAoB,CAAC,CAAC;AAC7C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nextage/era-lib",
3
- "version": "1.0.193",
3
+ "version": "1.0.195",
4
4
  "main": "./build/index.js",
5
5
  "types": "./build/index.d.ts",
6
6
  "files": [