@nextage/era-lib 1.0.194 → 1.0.196
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.
- package/build/events/organization/index.d.ts +1 -0
- package/build/events/organization/index.d.ts.map +1 -1
- package/build/events/organization/index.js +1 -0
- package/build/events/organization/index.js.map +1 -1
- package/build/events/organization/restored-event.d.ts +20 -0
- package/build/events/organization/restored-event.d.ts.map +1 -0
- package/build/events/organization/restored-event.js +3 -0
- package/build/events/organization/restored-event.js.map +1 -0
- package/build/events/types/enums.d.ts +1 -0
- package/build/events/types/enums.d.ts.map +1 -1
- package/build/events/types/enums.js +3 -0
- package/build/events/types/enums.js.map +1 -1
- package/build/interfaces.d.ts +52 -0
- package/build/interfaces.d.ts.map +1 -1
- package/build/services/index.d.ts +2 -0
- package/build/services/index.d.ts.map +1 -1
- package/build/services/index.js +2 -0
- package/build/services/index.js.map +1 -1
- package/build/services/tenant-archive.d.ts +90 -0
- package/build/services/tenant-archive.d.ts.map +1 -0
- package/build/services/tenant-archive.interfaces.d.ts +54 -0
- package/build/services/tenant-archive.interfaces.d.ts.map +1 -0
- package/build/services/tenant-archive.interfaces.js +3 -0
- package/build/services/tenant-archive.interfaces.js.map +1 -0
- package/build/services/tenant-archive.js +120 -0
- package/build/services/tenant-archive.js.map +1 -0
- package/build/types/app-config.d.ts +17 -0
- package/build/types/app-config.d.ts.map +1 -1
- package/build/utils/env.constants.d.ts.map +1 -1
- package/build/utils/env.constants.js +1 -0
- package/build/utils/env.constants.js.map +1 -1
- package/build/utils/functs.d.ts.map +1 -1
- package/build/utils/functs.js +3 -0
- package/build/utils/functs.js.map +1 -1
- package/package.json +1 -1
|
@@ -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 @@
|
|
|
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,
|
|
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,iBAA0B;IACrC,WAAW,iBAA0B;IACrC,WAAW,iBAA0B;IAGrC,mBAAmB,yBAA0B;IAC7C,mBAAmB,yBAA0B;IAC7C,mBAAmB,yBAA0B;IAG7C,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,
|
|
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,wCAAqC,CAAA;IACrC,wCAAqC,CAAA;IACrC,wCAAqC,CAAA;IAErC,eAAe;IACf,wDAA6C,CAAA;IAC7C,wDAA6C,CAAA;IAC7C,wDAA6C,CAAA;IAC7C,+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"}
|
package/build/interfaces.d.ts
CHANGED
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC"}
|
package/build/services/index.js
CHANGED
|
@@ -15,4 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./password"), exports);
|
|
18
|
+
__exportStar(require("./tenant-archive"), exports);
|
|
19
|
+
__exportStar(require("./tenant-archive.interfaces"), exports);
|
|
18
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,mDAAiC;AACjC,8DAA4C"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/*********************************************************************************************
|
|
2
|
+
* *
|
|
3
|
+
* Tenant archive - how a deleted organization's documents are set aside, and put back. *
|
|
4
|
+
* *
|
|
5
|
+
* Deleting an organization spans two services and eleven-plus collections, and no user *
|
|
6
|
+
* confirmation makes an irreversible cascade of that size safe. So nothing is deleted *
|
|
7
|
+
* outright: documents are MOVED to `tenantArchive`, where a TTL index disposes of them once *
|
|
8
|
+
* the recovery window closes. "Retained no longer than necessary" is satisfied by the *
|
|
9
|
+
* deadline, not by the immediacy of the deletion. *
|
|
10
|
+
* *
|
|
11
|
+
* This module owns the MECHANIC only. WHICH collections belong to a tenant is a question *
|
|
12
|
+
* each service answers for itself - auth-srv its identity documents, app-srv its tenant *
|
|
13
|
+
* data - which is also why the model types here are structural (T42). *
|
|
14
|
+
* *
|
|
15
|
+
*********************************************************************************************/
|
|
16
|
+
import { ArchivableModel } from './tenant-archive.interfaces';
|
|
17
|
+
import { ArchiveOutcome } from './tenant-archive.interfaces';
|
|
18
|
+
import { TenantArchiveStore } from './tenant-archive.interfaces';
|
|
19
|
+
/**
|
|
20
|
+
* Computes the instant an archived tenant stops being recoverable.
|
|
21
|
+
*
|
|
22
|
+
* Exported because the caller must compute it ONCE for a whole cascade and pass the
|
|
23
|
+
* same value to every collection: a per-collection deadline would let the TTL index
|
|
24
|
+
* expire half a tenant while the rest is still restorable, and a restore would then
|
|
25
|
+
* bring back an organization whose users have already been swept.
|
|
26
|
+
*
|
|
27
|
+
* @param purgeValidity the configured window (`APP.config.app.tenant.purgeValidity`,
|
|
28
|
+
* e.g. `'30d'`); anything unparseable falls back to 30 days
|
|
29
|
+
* @param from the instant the window starts (defaults to now)
|
|
30
|
+
*/
|
|
31
|
+
export declare function purgeDeadline(purgeValidity?: string | number, from?: Date): Date;
|
|
32
|
+
/**
|
|
33
|
+
* Files documents the caller ALREADY holds, without touching any source collection.
|
|
34
|
+
*
|
|
35
|
+
* The primitive {@link archiveDocuments} is built on, and useful on its own whenever
|
|
36
|
+
* the removal is not ours to perform: the organization record itself is deleted by
|
|
37
|
+
* the framework's `remove` - which is also what publishes `organization.removed` and
|
|
38
|
+
* writes the outbox row - so it can only be archived from the document in hand,
|
|
39
|
+
* before or after that call, never by reading it back.
|
|
40
|
+
*
|
|
41
|
+
* @param archive the shared `tenantArchive` store
|
|
42
|
+
* @param sourceCollection where the documents came from, and where a restore puts them
|
|
43
|
+
* @param documents the documents themselves, archived verbatim
|
|
44
|
+
* @param tenantId the organization being deleted
|
|
45
|
+
* @param purgeAt the shared deadline for the whole cascade
|
|
46
|
+
* @returns how many entries were written
|
|
47
|
+
*/
|
|
48
|
+
export declare function archiveEntries(archive: TenantArchiveStore, sourceCollection: string, documents: Record<string, unknown>[], tenantId: string, purgeAt: Date): Promise<ArchiveOutcome>;
|
|
49
|
+
/**
|
|
50
|
+
* Moves every document matching `filter` out of `source` and into the archive.
|
|
51
|
+
*
|
|
52
|
+
* The order is the whole point: the entries are written FIRST and the originals
|
|
53
|
+
* removed only once that succeeded. The reverse would turn a failed write into data
|
|
54
|
+
* loss, which is exactly what the archive exists to prevent - the same reasoning
|
|
55
|
+
* that puts the organization first in the auth-srv cascade (T29).
|
|
56
|
+
*
|
|
57
|
+
* ⚠️ Not a transaction. A crash between the two steps leaves the documents in BOTH
|
|
58
|
+
* places, which the restore tolerates (it puts back what is already there, by `_id`)
|
|
59
|
+
* whereas the opposite ordering would leave them in NEITHER.
|
|
60
|
+
*
|
|
61
|
+
* The document is archived VERBATIM, `_id` included: relations across collections are
|
|
62
|
+
* by `_id`, so regenerating one would restore a tenant whose relations no longer match.
|
|
63
|
+
*
|
|
64
|
+
* @param source the collection being emptied
|
|
65
|
+
* @param archive the shared `tenantArchive` store
|
|
66
|
+
* @param filter which documents belong to the tenant, as only the caller knows
|
|
67
|
+
* @param tenantId the organization being deleted
|
|
68
|
+
* @param purgeAt the shared deadline for the whole cascade - see {@link purgeDeadline}
|
|
69
|
+
* @returns how many documents were moved
|
|
70
|
+
*/
|
|
71
|
+
export declare function archiveDocuments(source: ArchivableModel, archive: TenantArchiveStore, filter: Record<string, unknown>, tenantId: string, purgeAt: Date): Promise<ArchiveOutcome>;
|
|
72
|
+
/**
|
|
73
|
+
* Puts a tenant's documents back into `source`, and drops their archive entries.
|
|
74
|
+
*
|
|
75
|
+
* Mirrors {@link archiveDocuments}, including the ordering rule: the documents are
|
|
76
|
+
* reinserted FIRST and the archive entries dropped only afterwards, so a failure
|
|
77
|
+
* leaves them recoverable rather than gone.
|
|
78
|
+
*
|
|
79
|
+
* ⚠️ Restores ONLY what this service owns: the caller passes its own model, and the
|
|
80
|
+
* source collection name it carries is what selects the entries. The shared archive
|
|
81
|
+
* is therefore safe to read from both services - each sees only its own rows, and
|
|
82
|
+
* the two sets are disjoint by construction.
|
|
83
|
+
*
|
|
84
|
+
* @param source the collection being refilled
|
|
85
|
+
* @param archive the shared `tenantArchive` store
|
|
86
|
+
* @param tenantId the organization being restored
|
|
87
|
+
* @returns how many documents were put back
|
|
88
|
+
*/
|
|
89
|
+
export declare function restoreDocuments(source: ArchivableModel, archive: TenantArchiveStore, tenantId: string): Promise<ArchiveOutcome>;
|
|
90
|
+
//# sourceMappingURL=tenant-archive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-archive.d.ts","sourceRoot":"","sources":["../../src/services/tenant-archive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;+FAc+F;AAI/F,OAAO,EAAE,eAAe,EAAE,MAAS,6BAA6B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAU,6BAA6B,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKjE;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,GAAE,IAAiB,GAAG,IAAI,CAG5F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAW,kBAAkB,EACpC,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3C,QAAQ,EAAU,MAAM,EACxB,OAAO,EAAW,IAAI,GACrB,OAAO,CAAC,cAAc,CAAC,CAWzB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAI,eAAe,EACzB,OAAO,EAAG,kBAAkB,EAC5B,MAAM,EAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAG,IAAI,GACb,OAAO,CAAC,cAAc,CAAC,CAWzB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAI,eAAe,EACzB,OAAO,EAAG,kBAAkB,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CAYzB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { TenantArchiveItem } from '../interfaces';
|
|
2
|
+
/**
|
|
3
|
+
* A collection the archive can empty and refill.
|
|
4
|
+
*
|
|
5
|
+
* Structural, like {@link ExistenceCheckModel} and for the same reason: the archive
|
|
6
|
+
* is a MECHANIC, not a rule about a specific entity. auth-srv hands it `users` and
|
|
7
|
+
* `mixin`, app-srv the eleven tenant collections, and a future service whatever it
|
|
8
|
+
* owns - none of which this library knows, nor should.
|
|
9
|
+
*
|
|
10
|
+
* `listNative` is deliberate over `list`: the scoped read applies `beforeGet`, which
|
|
11
|
+
* resolves the caller's tenant, and the documents being archived belong to an
|
|
12
|
+
* organization the caller is precisely in the act of deleting. The same holds for
|
|
13
|
+
* `removeNative` over `remove`.
|
|
14
|
+
*/
|
|
15
|
+
export interface ArchivableModel {
|
|
16
|
+
mgModel: {
|
|
17
|
+
collection: {
|
|
18
|
+
collectionName: string;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
listNative(filter: Record<string, unknown>): {
|
|
22
|
+
toArray(): Promise<Record<string, unknown>[]>;
|
|
23
|
+
};
|
|
24
|
+
removeNative(filter: Record<string, unknown>): Promise<{
|
|
25
|
+
deletedCount?: number;
|
|
26
|
+
}>;
|
|
27
|
+
insertManyNative(items: any[], options: any): Promise<unknown>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The archive itself, seen by the mechanic that fills and drains it.
|
|
31
|
+
*
|
|
32
|
+
* Kept separate from {@link ArchivableModel} even though the shapes overlap: the
|
|
33
|
+
* archive is never a SOURCE, and typing it as one would make
|
|
34
|
+
* `archiveDocuments(archive, archive, ...)` a legal call.
|
|
35
|
+
*/
|
|
36
|
+
export interface TenantArchiveStore {
|
|
37
|
+
listNative(filter: Record<string, unknown>): {
|
|
38
|
+
toArray(): Promise<Record<string, unknown>[]>;
|
|
39
|
+
};
|
|
40
|
+
removeNative(filter: Record<string, unknown>): Promise<{
|
|
41
|
+
deletedCount?: number;
|
|
42
|
+
}>;
|
|
43
|
+
insertManyNative(items: any[], options: any): Promise<unknown>;
|
|
44
|
+
}
|
|
45
|
+
/** What a single archive or restore actually moved. */
|
|
46
|
+
export interface ArchiveOutcome {
|
|
47
|
+
/** Documents moved out of (or back into) the source collection. */
|
|
48
|
+
moved: number;
|
|
49
|
+
/** The source collection, echoed back so a caller can log the cascade. */
|
|
50
|
+
sourceCollection: string;
|
|
51
|
+
}
|
|
52
|
+
/** An archived entry as it comes back from the store, `_id` of the archive row aside. */
|
|
53
|
+
export type ArchivedEntry = TenantArchiveItem & Record<string, unknown>;
|
|
54
|
+
//# sourceMappingURL=tenant-archive.interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-archive.interfaces.d.ts","sourceRoot":"","sources":["../../src/services/tenant-archive.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAE9B,OAAO,EAAE;QACP,UAAU,EAAE;YAAE,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;KACxC,CAAC;IAEF,UAAU,CAAG,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;KAAE,CAAC;IACjG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIlF,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAChE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IAEjC,UAAU,CAAO,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;KAAE,CAAC;IACrG,YAAY,CAAK,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtF,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAChE;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAE7B,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IAEd,0EAA0E;IAC1E,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,yFAAyF;AACzF,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-archive.interfaces.js","sourceRoot":"","sources":["../../src/services/tenant-archive.interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*********************************************************************************************
|
|
3
|
+
* *
|
|
4
|
+
* Tenant archive - how a deleted organization's documents are set aside, and put back. *
|
|
5
|
+
* *
|
|
6
|
+
* Deleting an organization spans two services and eleven-plus collections, and no user *
|
|
7
|
+
* confirmation makes an irreversible cascade of that size safe. So nothing is deleted *
|
|
8
|
+
* outright: documents are MOVED to `tenantArchive`, where a TTL index disposes of them once *
|
|
9
|
+
* the recovery window closes. "Retained no longer than necessary" is satisfied by the *
|
|
10
|
+
* deadline, not by the immediacy of the deletion. *
|
|
11
|
+
* *
|
|
12
|
+
* This module owns the MECHANIC only. WHICH collections belong to a tenant is a question *
|
|
13
|
+
* each service answers for itself - auth-srv its identity documents, app-srv its tenant *
|
|
14
|
+
* data - which is also why the model types here are structural (T42). *
|
|
15
|
+
* *
|
|
16
|
+
*********************************************************************************************/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.purgeDeadline = purgeDeadline;
|
|
19
|
+
exports.archiveEntries = archiveEntries;
|
|
20
|
+
exports.archiveDocuments = archiveDocuments;
|
|
21
|
+
exports.restoreDocuments = restoreDocuments;
|
|
22
|
+
const functs_1 = require("../utils/functs");
|
|
23
|
+
/** Fallback window, used when the configured validity is absent or unparseable. */
|
|
24
|
+
const DEFAULT_PURGE_MS = 30 * 86400000;
|
|
25
|
+
/**
|
|
26
|
+
* Computes the instant an archived tenant stops being recoverable.
|
|
27
|
+
*
|
|
28
|
+
* Exported because the caller must compute it ONCE for a whole cascade and pass the
|
|
29
|
+
* same value to every collection: a per-collection deadline would let the TTL index
|
|
30
|
+
* expire half a tenant while the rest is still restorable, and a restore would then
|
|
31
|
+
* bring back an organization whose users have already been swept.
|
|
32
|
+
*
|
|
33
|
+
* @param purgeValidity the configured window (`APP.config.app.tenant.purgeValidity`,
|
|
34
|
+
* e.g. `'30d'`); anything unparseable falls back to 30 days
|
|
35
|
+
* @param from the instant the window starts (defaults to now)
|
|
36
|
+
*/
|
|
37
|
+
function purgeDeadline(purgeValidity, from = new Date()) {
|
|
38
|
+
return new Date(from.getTime() + ((0, functs_1.parseDurationMs)(purgeValidity) ?? DEFAULT_PURGE_MS));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Files documents the caller ALREADY holds, without touching any source collection.
|
|
42
|
+
*
|
|
43
|
+
* The primitive {@link archiveDocuments} is built on, and useful on its own whenever
|
|
44
|
+
* the removal is not ours to perform: the organization record itself is deleted by
|
|
45
|
+
* the framework's `remove` - which is also what publishes `organization.removed` and
|
|
46
|
+
* writes the outbox row - so it can only be archived from the document in hand,
|
|
47
|
+
* before or after that call, never by reading it back.
|
|
48
|
+
*
|
|
49
|
+
* @param archive the shared `tenantArchive` store
|
|
50
|
+
* @param sourceCollection where the documents came from, and where a restore puts them
|
|
51
|
+
* @param documents the documents themselves, archived verbatim
|
|
52
|
+
* @param tenantId the organization being deleted
|
|
53
|
+
* @param purgeAt the shared deadline for the whole cascade
|
|
54
|
+
* @returns how many entries were written
|
|
55
|
+
*/
|
|
56
|
+
async function archiveEntries(archive, sourceCollection, documents, tenantId, purgeAt) {
|
|
57
|
+
if (!documents.length)
|
|
58
|
+
return { moved: 0, sourceCollection };
|
|
59
|
+
const archivedAt = new Date();
|
|
60
|
+
const entries = documents.map((doc) => ({ tenantId, sourceCollection, doc, archivedAt, purgeAt }));
|
|
61
|
+
await archive.insertManyNative(entries, {});
|
|
62
|
+
return { moved: documents.length, sourceCollection };
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Moves every document matching `filter` out of `source` and into the archive.
|
|
66
|
+
*
|
|
67
|
+
* The order is the whole point: the entries are written FIRST and the originals
|
|
68
|
+
* removed only once that succeeded. The reverse would turn a failed write into data
|
|
69
|
+
* loss, which is exactly what the archive exists to prevent - the same reasoning
|
|
70
|
+
* that puts the organization first in the auth-srv cascade (T29).
|
|
71
|
+
*
|
|
72
|
+
* ⚠️ Not a transaction. A crash between the two steps leaves the documents in BOTH
|
|
73
|
+
* places, which the restore tolerates (it puts back what is already there, by `_id`)
|
|
74
|
+
* whereas the opposite ordering would leave them in NEITHER.
|
|
75
|
+
*
|
|
76
|
+
* The document is archived VERBATIM, `_id` included: relations across collections are
|
|
77
|
+
* by `_id`, so regenerating one would restore a tenant whose relations no longer match.
|
|
78
|
+
*
|
|
79
|
+
* @param source the collection being emptied
|
|
80
|
+
* @param archive the shared `tenantArchive` store
|
|
81
|
+
* @param filter which documents belong to the tenant, as only the caller knows
|
|
82
|
+
* @param tenantId the organization being deleted
|
|
83
|
+
* @param purgeAt the shared deadline for the whole cascade - see {@link purgeDeadline}
|
|
84
|
+
* @returns how many documents were moved
|
|
85
|
+
*/
|
|
86
|
+
async function archiveDocuments(source, archive, filter, tenantId, purgeAt) {
|
|
87
|
+
const sourceCollection = source.mgModel.collection.collectionName;
|
|
88
|
+
const documents = await source.listNative(filter).toArray();
|
|
89
|
+
const outcome = await archiveEntries(archive, sourceCollection, documents, tenantId, purgeAt);
|
|
90
|
+
if (outcome.moved)
|
|
91
|
+
await source.removeNative(filter);
|
|
92
|
+
return outcome;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Puts a tenant's documents back into `source`, and drops their archive entries.
|
|
96
|
+
*
|
|
97
|
+
* Mirrors {@link archiveDocuments}, including the ordering rule: the documents are
|
|
98
|
+
* reinserted FIRST and the archive entries dropped only afterwards, so a failure
|
|
99
|
+
* leaves them recoverable rather than gone.
|
|
100
|
+
*
|
|
101
|
+
* ⚠️ Restores ONLY what this service owns: the caller passes its own model, and the
|
|
102
|
+
* source collection name it carries is what selects the entries. The shared archive
|
|
103
|
+
* is therefore safe to read from both services - each sees only its own rows, and
|
|
104
|
+
* the two sets are disjoint by construction.
|
|
105
|
+
*
|
|
106
|
+
* @param source the collection being refilled
|
|
107
|
+
* @param archive the shared `tenantArchive` store
|
|
108
|
+
* @param tenantId the organization being restored
|
|
109
|
+
* @returns how many documents were put back
|
|
110
|
+
*/
|
|
111
|
+
async function restoreDocuments(source, archive, tenantId) {
|
|
112
|
+
const sourceCollection = source.mgModel.collection.collectionName;
|
|
113
|
+
const entries = await archive.listNative({ tenantId, sourceCollection }).toArray();
|
|
114
|
+
if (!entries.length)
|
|
115
|
+
return { moved: 0, sourceCollection };
|
|
116
|
+
await source.insertManyNative(entries.map(entry => entry.doc), {});
|
|
117
|
+
await archive.removeNative({ tenantId, sourceCollection });
|
|
118
|
+
return { moved: entries.length, sourceCollection };
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=tenant-archive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-archive.js","sourceRoot":"","sources":["../../src/services/tenant-archive.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;+FAc+F;;AAwB/F,sCAGC;AAkBD,wCAiBC;AAwBD,4CAiBC;AAmBD,4CAgBC;AAxID,4CAAqD;AAOrD,mFAAmF;AACnF,MAAM,gBAAgB,GAAG,EAAE,GAAG,QAAU,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,SAAgB,aAAa,CAAC,aAA+B,EAAE,OAAa,IAAI,IAAI,EAAE;IAEpF,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAA,wBAAe,EAAC,aAAa,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC;AACzF,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,cAAc,CAClC,OAAoC,EACpC,gBAAwB,EACxB,SAA2C,EAC3C,QAAwB,EACxB,OAAsB;IAGtB,IAAI,CAAC,SAAS,CAAC,MAAM;QACnB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAExC,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAM,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAqB,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAEzH,MAAM,OAAO,CAAC,gBAAgB,CAAC,OAA+C,EAAE,EAAE,CAAC,CAAC;IAEpF,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,KAAK,UAAU,gBAAgB,CACpC,MAAyB,EACzB,OAA4B,EAC5B,MAAiC,EACjC,QAAgB,EAChB,OAAc;IAGd,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;IAClE,MAAM,SAAS,GAAU,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;IAEnE,MAAM,OAAO,GAAY,MAAM,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEvG,IAAI,OAAO,CAAC,KAAK;QACf,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,KAAK,UAAU,gBAAgB,CACpC,MAAyB,EACzB,OAA4B,EAC5B,QAAgB;IAGhB,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;IAClE,MAAM,OAAO,GAAY,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAqB,CAAC;IAE/G,IAAI,CAAC,OAAO,CAAC,MAAM;QACjB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAExC,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAA8B,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9F,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAE3D,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -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,
|
|
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,
|
|
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"}
|
|
@@ -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,
|
|
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,EAAe,OAAO;IAC9B,WAAW,EAAY,MAAM;IAC7B,OAAO,EAAgB,QAAQ;IAC/B,aAAa,EAAU,EAAE;IACzB,aAAa,EAAU,wCAAwB;IAC/C,YAAY,EAAW,uCAAuB,EAAI,gEAAgE;IAClH,iBAAiB,EAAM,yCAAyB,EAAE,gEAAgE;IAClH,gBAAgB,EAAO,wCAAwB,EAAG,KAAK;IACvD,UAAU,EAAa,WAAW;IAClC,UAAU,EAAa,IAAI,EAAuB,sDAAsD;IACxG,UAAU,EAAa,IAAI;IAC3B,SAAS,EAAc,EAAE;IACzB,aAAa,EAAU,EAAE;IACzB,aAAa,EAAU,EAAE;IACzB,QAAQ,EAAe,uBAAuB;IAC9C,mBAAmB,EAAI,GAAG;IAC1B,mBAAmB,EAAI,GAAG;IAC1B,mBAAmB,EAAI,IAAI;IAC3B,qBAAqB,EAAE,KAAK,EAAoB,sDAAsD;IACtG,OAAO,EAAgB,EAAE;IACzB,cAAc,EAAS,EAAE;IACzB,aAAa,EAAU,EAAE;IACzB,aAAa,EAAU,WAAW;IAClC,gBAAgB,EAAO,cAAc;IACrC,iBAAiB,EAAM,eAAe,EAAY,mCAAmC;IACrF,mBAAmB,EAAI,gBAAgB;IACvC,eAAe,EAAQ,MAAM;CAC9B,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,
|
|
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"}
|
package/build/utils/functs.js
CHANGED
|
@@ -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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"}
|