@futdevpro/nts-dynamo 1.15.75 → 1.15.80
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/.dynamo/logs/cicd-pipeline/output.log +1952 -1883
- package/.dynamo/logs/cicd-pipeline/status.json +38 -38
- package/build/_collections/global-settings.const.d.ts.map +1 -1
- package/build/_collections/global-settings.const.js +11 -0
- package/build/_collections/global-settings.const.js.map +1 -1
- package/build/_models/interfaces/global-settings.interface.d.ts +18 -0
- package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
- package/build/_services/base/data.service.d.ts +8 -0
- package/build/_services/base/data.service.d.ts.map +1 -1
- package/build/_services/base/data.service.js +17 -0
- package/build/_services/base/data.service.js.map +1 -1
- package/build/_services/core/collection-growth-monitor.service.d.ts +77 -0
- package/build/_services/core/collection-growth-monitor.service.d.ts.map +1 -0
- package/build/_services/core/collection-growth-monitor.service.js +147 -0
- package/build/_services/core/collection-growth-monitor.service.js.map +1 -0
- package/build/_services/core/global.service.d.ts +7 -0
- package/build/_services/core/global.service.d.ts.map +1 -1
- package/build/_services/core/global.service.js +10 -0
- package/build/_services/core/global.service.js.map +1 -1
- package/build/_services/server/app.server.d.ts +45 -0
- package/build/_services/server/app.server.d.ts.map +1 -1
- package/build/_services/server/app.server.js +97 -173
- package/build/_services/server/app.server.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/package.json +2 -2
- package/src/_collections/global-settings.const.ts +12 -0
- package/src/_models/interfaces/global-settings.interface.ts +19 -0
- package/src/_services/base/data.service.spec.ts +56 -1
- package/src/_services/base/data.service.ts +23 -2
- package/src/_services/core/collection-growth-monitor.service.spec.ts +67 -0
- package/src/_services/core/collection-growth-monitor.service.ts +211 -0
- package/src/_services/core/global.service.ts +14 -2
- package/src/_services/server/app.server-retention.spec.ts +106 -0
- package/src/_services/server/app.server.ts +137 -3
- package/src/index.ts +1 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { DyNTS_SingletonServiceBase } from '../base/singleton.service-base';
|
|
2
|
+
/**
|
|
3
|
+
* FR-258 / SR-4 — Collection Growth Monitor (proactive companion to DyNTS_MemoryGuard).
|
|
4
|
+
*
|
|
5
|
+
* The MemoryGuard is REACTIVE: it fires when the heap is already near OOM. This monitor is
|
|
6
|
+
* PROACTIVE: it periodically samples each registered collection's document count (via the cheap,
|
|
7
|
+
* scan-free `estimatedDocumentCount()`) and raises a warning into the Errors-sink BEFORE a bloated
|
|
8
|
+
* collection can be loaded into heap and GC-thrash the process (the 2026-06-23 overseer incident:
|
|
9
|
+
* `cdp_report_details_archiveds` reached 3 GB / `pipeline_jobs` 2 GB, unbounded).
|
|
10
|
+
*
|
|
11
|
+
* It pairs with SR-1/SR-2 (declarative retention TTL): TTL keeps collections bounded; this monitor
|
|
12
|
+
* surfaces the ones that AREN'T (no retention declared, or growing faster than retention prunes) so
|
|
13
|
+
* an operator can add `retention` before it becomes an OOM. Pure observation — never deletes.
|
|
14
|
+
*
|
|
15
|
+
* Like the MemoryGuard it is a singleton, idempotent, fully non-fatal (a monitoring layer must never
|
|
16
|
+
* crash a server), and its timer is `unref()`-ed so it can't keep the process alive on its own.
|
|
17
|
+
*/
|
|
18
|
+
export interface DyNTS_CollectionGrowthMonitor_Config {
|
|
19
|
+
/** Master switch. Default: `DyNTS_global_settings.collectionGrowthMonitor.enabled` (true). */
|
|
20
|
+
enabled?: boolean;
|
|
21
|
+
/** Poll cadence in ms. Default: 300000 (5 min) — collection growth is slow, no need to poll often. */
|
|
22
|
+
pollIntervalMs?: number;
|
|
23
|
+
/** Warn when a collection's document count exceeds this. Default: 250000. */
|
|
24
|
+
sizeThresholdDocCount?: number;
|
|
25
|
+
/** Warn when a collection grew by more than this percent since the previous poll. Default: 50. */
|
|
26
|
+
growthRateThresholdPct?: number;
|
|
27
|
+
/** Re-alert cooldown per collection per alert-kind, in ms (anti-flood). Default: 3600000 (1 h). */
|
|
28
|
+
reAlertCooldownMs?: number;
|
|
29
|
+
}
|
|
30
|
+
/** One growth finding to surface to the Errors-sink. */
|
|
31
|
+
export interface DyNTS_CollectionGrowthAlert {
|
|
32
|
+
kind: 'size' | 'growth';
|
|
33
|
+
dataName: string;
|
|
34
|
+
message: string;
|
|
35
|
+
detail: Record<string, unknown>;
|
|
36
|
+
}
|
|
37
|
+
interface CollectionSnapshot {
|
|
38
|
+
docCount: number;
|
|
39
|
+
atMs: number;
|
|
40
|
+
}
|
|
41
|
+
export declare class DyNTS_CollectionGrowthMonitor extends DyNTS_SingletonServiceBase {
|
|
42
|
+
static getInstance(): DyNTS_CollectionGrowthMonitor;
|
|
43
|
+
private timer;
|
|
44
|
+
private installed;
|
|
45
|
+
private pollIntervalMs;
|
|
46
|
+
private sizeThresholdDocCount;
|
|
47
|
+
private growthRateThresholdPct;
|
|
48
|
+
private reAlertCooldownMs;
|
|
49
|
+
private readonly lastSnapshotByCollection;
|
|
50
|
+
/** Last time we alerted, keyed by `${dataName}:${kind}` — for the anti-flood cooldown. */
|
|
51
|
+
private readonly lastAlertAtByKey;
|
|
52
|
+
protected constructor();
|
|
53
|
+
/**
|
|
54
|
+
* Start the monitor. Idempotent (a second call is a no-op). `config` overrides
|
|
55
|
+
* `DyNTS_global_settings.collectionGrowthMonitor`, which overrides the built-in defaults. NEVER
|
|
56
|
+
* throws — every error is try/catch-ed and descriptively logged.
|
|
57
|
+
*/
|
|
58
|
+
install(config?: DyNTS_CollectionGrowthMonitor_Config): void;
|
|
59
|
+
/**
|
|
60
|
+
* Pure decision core (unit-tested): given a fresh count + the previous snapshot, return the alerts
|
|
61
|
+
* to raise. NEVER does I/O. A `size` alert fires when `count > sizeThreshold`; a `growth` alert
|
|
62
|
+
* fires when the collection grew by more than `growthRatePct` since the last snapshot (needs a
|
|
63
|
+
* non-zero previous count).
|
|
64
|
+
*/
|
|
65
|
+
static evaluateGrowth(dataName: string, count: number, last: CollectionSnapshot | undefined, sizeThreshold: number, growthRatePct: number): DyNTS_CollectionGrowthAlert[];
|
|
66
|
+
/**
|
|
67
|
+
* One poll cycle: sample every registered collection's `estimatedDocumentCount()` (scan-free) and
|
|
68
|
+
* raise cooldown-gated warnings. Fully non-fatal — a failure on one collection never aborts the rest.
|
|
69
|
+
*/
|
|
70
|
+
private poll;
|
|
71
|
+
/** Raise one alert to the Errors-sink, gated by the per-(collection,kind) cooldown to avoid flooding. */
|
|
72
|
+
private emitAlert;
|
|
73
|
+
/** Test-only teardown: stop the timer + clear state so specs don't leak between runs. */
|
|
74
|
+
_teardownForTesting(): void;
|
|
75
|
+
}
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=collection-growth-monitor.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-growth-monitor.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/collection-growth-monitor.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAG5E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,oCAAoC;IACnD,8FAA8F;IAC9F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sGAAsG;IACtG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mGAAmG;IACnG,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wDAAwD;AACxD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,6BAA8B,SAAQ,0BAA0B;IAE3E,MAAM,CAAC,WAAW,IAAI,6BAA6B;IAInD,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,SAAS,CAAkB;IAGnC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,sBAAsB,CAAc;IAC5C,OAAO,CAAC,iBAAiB,CAAmB;IAE5C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA8C;IACvF,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IAEnE,SAAS;IAIT;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,oCAAoC,GAAG,IAAI;IA2B5D;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,kBAAkB,GAAG,SAAS,EACpC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACpB,2BAA2B,EAAE;IA+BhC;;;OAGG;YACW,IAAI;IAmClB,yGAAyG;IACzG,OAAO,CAAC,SAAS;IAiBjB,yFAAyF;IACzF,mBAAmB,IAAI,IAAI;CAM5B"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_CollectionGrowthMonitor = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
const global_settings_const_1 = require("../../_collections/global-settings.const");
|
|
6
|
+
const singleton_service_base_1 = require("../base/singleton.service-base");
|
|
7
|
+
const global_service_1 = require("./global.service");
|
|
8
|
+
class DyNTS_CollectionGrowthMonitor extends singleton_service_base_1.DyNTS_SingletonServiceBase {
|
|
9
|
+
static getInstance() {
|
|
10
|
+
return DyNTS_CollectionGrowthMonitor.getSingletonInstance();
|
|
11
|
+
}
|
|
12
|
+
timer = null;
|
|
13
|
+
installed = false;
|
|
14
|
+
// Resolved (effective) config — filled at install().
|
|
15
|
+
pollIntervalMs = 300000;
|
|
16
|
+
sizeThresholdDocCount = 250000;
|
|
17
|
+
growthRateThresholdPct = 50;
|
|
18
|
+
reAlertCooldownMs = 3600000;
|
|
19
|
+
lastSnapshotByCollection = new Map();
|
|
20
|
+
/** Last time we alerted, keyed by `${dataName}:${kind}` — for the anti-flood cooldown. */
|
|
21
|
+
lastAlertAtByKey = new Map();
|
|
22
|
+
constructor() {
|
|
23
|
+
super();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Start the monitor. Idempotent (a second call is a no-op). `config` overrides
|
|
27
|
+
* `DyNTS_global_settings.collectionGrowthMonitor`, which overrides the built-in defaults. NEVER
|
|
28
|
+
* throws — every error is try/catch-ed and descriptively logged.
|
|
29
|
+
*/
|
|
30
|
+
install(config) {
|
|
31
|
+
if (this.installed) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const g = global_settings_const_1.DyNTS_global_settings.collectionGrowthMonitor ?? { enabled: true };
|
|
36
|
+
if (!(config?.enabled ?? g.enabled ?? true)) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
this.pollIntervalMs = config?.pollIntervalMs ?? g.pollIntervalMs ?? 300000;
|
|
40
|
+
this.sizeThresholdDocCount = config?.sizeThresholdDocCount ?? g.sizeThresholdDocCount ?? 250000;
|
|
41
|
+
this.growthRateThresholdPct = config?.growthRateThresholdPct ?? g.growthRateThresholdPct ?? 50;
|
|
42
|
+
this.reAlertCooldownMs = config?.reAlertCooldownMs ?? g.reAlertCooldownMs ?? 3600000;
|
|
43
|
+
this.installed = true;
|
|
44
|
+
this.timer = setInterval(() => { void this.poll(); }, this.pollIntervalMs);
|
|
45
|
+
if (typeof this.timer.unref === 'function') {
|
|
46
|
+
this.timer.unref();
|
|
47
|
+
}
|
|
48
|
+
fsm_dynamo_1.DyFM_Log.info(`[DyNTS_CollectionGrowthMonitor] installed — poll ${Math.round(this.pollIntervalMs / 1000)}s, ` +
|
|
49
|
+
`size-threshold ${this.sizeThresholdDocCount} docs, growth-rate ${this.growthRateThresholdPct}%/poll`);
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
fsm_dynamo_1.DyFM_Log.warn('[DyNTS_CollectionGrowthMonitor] install failed (non-fatal):', err);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Pure decision core (unit-tested): given a fresh count + the previous snapshot, return the alerts
|
|
57
|
+
* to raise. NEVER does I/O. A `size` alert fires when `count > sizeThreshold`; a `growth` alert
|
|
58
|
+
* fires when the collection grew by more than `growthRatePct` since the last snapshot (needs a
|
|
59
|
+
* non-zero previous count).
|
|
60
|
+
*/
|
|
61
|
+
static evaluateGrowth(dataName, count, last, sizeThreshold, growthRatePct) {
|
|
62
|
+
const alerts = [];
|
|
63
|
+
if (count > sizeThreshold) {
|
|
64
|
+
alerts.push({
|
|
65
|
+
kind: 'size',
|
|
66
|
+
dataName: dataName,
|
|
67
|
+
message: `Collection "${dataName}" has ${count} documents (> ${sizeThreshold} threshold) — ` +
|
|
68
|
+
`unbounded-growth risk. Consider declaring \`retention\` on this model (FR-258 / SR-1).`,
|
|
69
|
+
detail: { collection: dataName, docCount: count, threshold: sizeThreshold },
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (last && last.docCount > 0) {
|
|
73
|
+
const growthPct = ((count - last.docCount) / last.docCount) * 100;
|
|
74
|
+
if (growthPct > growthRatePct) {
|
|
75
|
+
alerts.push({
|
|
76
|
+
kind: 'growth',
|
|
77
|
+
dataName: dataName,
|
|
78
|
+
message: `Collection "${dataName}" grew ${Math.round(growthPct)}% since the last poll ` +
|
|
79
|
+
`(${last.docCount} → ${count} docs) — fast unbounded growth.`,
|
|
80
|
+
detail: { collection: dataName, oldCount: last.docCount, newCount: count, growthPct: Math.round(growthPct) },
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return alerts;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* One poll cycle: sample every registered collection's `estimatedDocumentCount()` (scan-free) and
|
|
88
|
+
* raise cooldown-gated warnings. Fully non-fatal — a failure on one collection never aborts the rest.
|
|
89
|
+
*/
|
|
90
|
+
async poll() {
|
|
91
|
+
try {
|
|
92
|
+
const services = global_service_1.DyNTS_GlobalService.getAllDBServices();
|
|
93
|
+
const nowMs = Date.now();
|
|
94
|
+
for (const service of services) {
|
|
95
|
+
const dataName = service?.dataParams?.dataName;
|
|
96
|
+
const model = service?.dataModel;
|
|
97
|
+
if (!dataName || !model || typeof model.estimatedDocumentCount !== 'function') {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const count = await model.estimatedDocumentCount();
|
|
102
|
+
const last = this.lastSnapshotByCollection.get(dataName);
|
|
103
|
+
const alerts = DyNTS_CollectionGrowthMonitor.evaluateGrowth(dataName, count, last, this.sizeThresholdDocCount, this.growthRateThresholdPct);
|
|
104
|
+
for (const alert of alerts) {
|
|
105
|
+
this.emitAlert(alert, nowMs);
|
|
106
|
+
}
|
|
107
|
+
this.lastSnapshotByCollection.set(dataName, { docCount: count, atMs: nowMs });
|
|
108
|
+
}
|
|
109
|
+
catch (collErr) {
|
|
110
|
+
fsm_dynamo_1.DyFM_Log.warn(`[DyNTS_CollectionGrowthMonitor] poll for "${dataName}" failed (non-fatal): ` +
|
|
111
|
+
`${collErr instanceof Error ? collErr.message : String(collErr)}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
fsm_dynamo_1.DyFM_Log.warn('[DyNTS_CollectionGrowthMonitor] poll failed (non-fatal):', err);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/** Raise one alert to the Errors-sink, gated by the per-(collection,kind) cooldown to avoid flooding. */
|
|
120
|
+
emitAlert(alert, nowMs) {
|
|
121
|
+
const key = `${alert.dataName}:${alert.kind}`;
|
|
122
|
+
const lastAt = this.lastAlertAtByKey.get(key);
|
|
123
|
+
if (lastAt !== undefined && nowMs - lastAt < this.reAlertCooldownMs) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
this.lastAlertAtByKey.set(key, nowMs);
|
|
127
|
+
fsm_dynamo_1.DyFM_Log.warn(`[DyNTS_CollectionGrowthMonitor] ${alert.message}`);
|
|
128
|
+
global_service_1.DyNTS_GlobalService.globalErrorHandler?.(new fsm_dynamo_1.DyFM_Error({
|
|
129
|
+
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName ?? 'DyNTS'}|DyNTS-CGM-${alert.kind === 'size' ? 'SIZE' : 'GROWTH'}`,
|
|
130
|
+
message: alert.message,
|
|
131
|
+
level: fsm_dynamo_1.DyFM_ErrorLevel.warning,
|
|
132
|
+
additionalContent: alert.detail,
|
|
133
|
+
}));
|
|
134
|
+
}
|
|
135
|
+
/** Test-only teardown: stop the timer + clear state so specs don't leak between runs. */
|
|
136
|
+
_teardownForTesting() {
|
|
137
|
+
if (this.timer) {
|
|
138
|
+
clearInterval(this.timer);
|
|
139
|
+
this.timer = null;
|
|
140
|
+
}
|
|
141
|
+
this.installed = false;
|
|
142
|
+
this.lastSnapshotByCollection.clear();
|
|
143
|
+
this.lastAlertAtByKey.clear();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.DyNTS_CollectionGrowthMonitor = DyNTS_CollectionGrowthMonitor;
|
|
147
|
+
//# sourceMappingURL=collection-growth-monitor.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-growth-monitor.service.js","sourceRoot":"","sources":["../../../src/_services/core/collection-growth-monitor.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,13 @@ export declare class DyNTS_GlobalService extends DyNTS_SingletonService {
|
|
|
18
18
|
private static readonly _upSince;
|
|
19
19
|
static get upSince(): Date;
|
|
20
20
|
static get upTime(): number;
|
|
21
|
+
/**
|
|
22
|
+
* FR-258 / SR-2 — enumerate every registered DB service (one per data-model, including the
|
|
23
|
+
* auto-created `_archived` siblings). Used by the DyNTS_App startup TTL-installer to find the
|
|
24
|
+
* models that declared `retention` and create their MongoDB TTL index. Returns an empty array
|
|
25
|
+
* if services aren't set up yet (safe to call early).
|
|
26
|
+
*/
|
|
27
|
+
static getAllDBServices(): DyNTS_DBService<any>[];
|
|
21
28
|
authService: DyNTS_AuthService;
|
|
22
29
|
dbServiceCollection: DyNTS_Service_Collection<DyNTS_DBService<any>>;
|
|
23
30
|
emailServiceCollection: DyNTS_Service_Collection<DyNTS_EmailService>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/global.service.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAEb,qBAAqB,EAErB,mBAAmB,EAGnB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uDAAuD,CAAC;AAEzF,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,4DAA4D,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAInE;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,sBAAsB;IAE7D,MAAM,CAAC,WAAW,IAAI,mBAAmB;IAIzC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAmB;IACzC,MAAM,KAAK,MAAM,IAAI,gBAAgB,CAEpC;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IACpD,MAAM,KAAK,OAAO,IAAI,IAAI,CAEzB;IACD,MAAM,KAAK,MAAM,IAAI,MAAM,CAE1B;IAED,WAAW,EAAE,iBAAiB,CAAC;IAC/B,mBAAmB,EAAE,wBAAwB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAEpE,sBAAsB,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;IAErE,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAEY;IAEvD,MAAM,CAAC,kBAAkB,EAAE,0BAA0B,CAGlD;IAEH;;OAEG;WACU,WAAW,CAAC,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;mBAoBrD,aAAa;IAqDlC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAAG,IAAI;IAkDjE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAAG,IAAI;mBAgB7C,cAAc;mBAmBd,gBAAgB;mBAuBhB,eAAe;IA0CpC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAIhD;;;OAGG;IACH,MAAM,CAAC,cAAc,IAAI,iBAAiB;IAyB1C;;;OAGG;IACH,MAAM,CAAC,sBAAsB,IAAI,wBAAwB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAe/E;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,aAAa,EACzC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC,GACnC,eAAe,CAAC,CAAC,CAAC;IAIrB;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;IAiBlF;;;OAGG;IACH,MAAM,CAAC,yBAAyB,IAAI,wBAAwB,CAAC,kBAAkB,CAAC;IAiBhF;;;OAGG;IAaH;;;;OAIG;IAiCH,SAAS,CAAC,MAAM,CAAC,uBAAuB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,MAAM;IACd,mGAAmG;IACnG,uBAAuB,GAAE,OAAc,GACtC,mBAAmB;CAcvB"}
|
|
1
|
+
{"version":3,"file":"global.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/global.service.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAEb,qBAAqB,EAErB,mBAAmB,EAGnB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uDAAuD,CAAC;AAEzF,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,4DAA4D,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAInE;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,sBAAsB;IAE7D,MAAM,CAAC,WAAW,IAAI,mBAAmB;IAIzC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAmB;IACzC,MAAM,KAAK,MAAM,IAAI,gBAAgB,CAEpC;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IACpD,MAAM,KAAK,OAAO,IAAI,IAAI,CAEzB;IACD,MAAM,KAAK,MAAM,IAAI,MAAM,CAE1B;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;IAMjD,WAAW,EAAE,iBAAiB,CAAC;IAC/B,mBAAmB,EAAE,wBAAwB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAEpE,sBAAsB,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;IAErE,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAEY;IAEvD,MAAM,CAAC,kBAAkB,EAAE,0BAA0B,CAGlD;IAEH;;OAEG;WACU,WAAW,CAAC,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;mBAoBrD,aAAa;IAqDlC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAAG,IAAI;IAkDjE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAAG,IAAI;mBAgB7C,cAAc;mBAmBd,gBAAgB;mBAuBhB,eAAe;IA0CpC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAIhD;;;OAGG;IACH,MAAM,CAAC,cAAc,IAAI,iBAAiB;IAyB1C;;;OAGG;IACH,MAAM,CAAC,sBAAsB,IAAI,wBAAwB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAe/E;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,aAAa,EACzC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC,GACnC,eAAe,CAAC,CAAC,CAAC;IAIrB;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;IAiBlF;;;OAGG;IACH,MAAM,CAAC,yBAAyB,IAAI,wBAAwB,CAAC,kBAAkB,CAAC;IAiBhF;;;OAGG;IAaH;;;;OAIG;IAiCH,SAAS,CAAC,MAAM,CAAC,uBAAuB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,MAAM;IACd,mGAAmG;IACnG,uBAAuB,GAAE,OAAc,GACtC,mBAAmB;CAcvB"}
|
|
@@ -29,6 +29,16 @@ class DyNTS_GlobalService extends singleton_service_1.DyNTS_SingletonService {
|
|
|
29
29
|
static get upTime() {
|
|
30
30
|
return +new Date() - +this._upSince;
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* FR-258 / SR-2 — enumerate every registered DB service (one per data-model, including the
|
|
34
|
+
* auto-created `_archived` siblings). Used by the DyNTS_App startup TTL-installer to find the
|
|
35
|
+
* models that declared `retention` and create their MongoDB TTL index. Returns an empty array
|
|
36
|
+
* if services aren't set up yet (safe to call early).
|
|
37
|
+
*/
|
|
38
|
+
static getAllDBServices() {
|
|
39
|
+
const collection = this.instance?.dbServiceCollection;
|
|
40
|
+
return collection ? Object.values(collection) : [];
|
|
41
|
+
}
|
|
32
42
|
authService;
|
|
33
43
|
dbServiceCollection;
|
|
34
44
|
/* dataServiceCollection: DyNTS_Service_Collection<any>; */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.service.js","sourceRoot":"","sources":["../../../src/_services/core/global.service.ts"],"names":[],"mappings":";;;AAGA,sDAS+B;AAS/B,kFAAkF;AAClF,mDAAqD;AAGrD,wFAAwF;AACxF,oFAAiF;AACjF,iEAAmE;AACnE,gFAAgF;AAChF,kEAA0E;AAE1E;;;;GAIG;AACH,MAAa,mBAAoB,SAAQ,0CAAsB;IAE7D,MAAM,CAAC,WAAW;QAChB,OAAO,mBAAmB,CAAC,oBAAoB,EAAE,CAAC;IACpD,CAAC;IAEO,MAAM,CAAC,OAAO,CAAmB;IACzC,MAAM,KAAK,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,MAAM,CAAU,QAAQ,GAAS,IAAI,IAAI,EAAE,CAAC;IACpD,MAAM,KAAK,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,MAAM,KAAK,MAAM;QACf,OAAO,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,WAAW,CAAoB;IAC/B,mBAAmB,CAAiD;IACpE,2DAA2D;IAC3D,sBAAsB,CAA+C;IAErE,MAAM,CAAU,mBAAmB,GACjC,qDAAqD;QACrD,oDAAoD,CAAC;IAEvD,MAAM,CAAC,kBAAkB,GACvB,KAAK,EAAE,KAAoB,EAAiB,EAAE;QAC5C,qBAAQ,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC,CAAA;IAEH;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAiC;QACxD,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAExC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAE5C,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;YAEzD,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,KAAK,EAAE,qBAAqB,CAAC;gBAE5E,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;aACxE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,QAAuC;QACxE,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAEvC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAmC,EAAQ,EAAE;gBAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,uBAAU,CAAC;wBACnB,GAAG,IAAI,CAAC,uBAAuB,CAC7B,eAAe,EACf,IAAI,KAAK,CAAC,yBAAyB,CAAC,EACpC,qBAAqB,CACtB;wBAED,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,kBAAkB;wBACzE,iBAAiB,EAAE;4BACjB,QAAQ,EAAE,QAAQ;4BAClB,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAmC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;yBACtF;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBACvB,MAAM,YAAY,GAA+B,IAAI,kCAAqB,CAAM;wBAC9E,GAAG,OAAO;wBACV,QAAQ,EAAE,IAAA,sCAAuB,EAAC,OAAO,CAAC,QAAQ,CAAC;wBACnD,UAAU,EAAE;4BACV,GAAG,OAAO,CAAC,UAAU;yBACtB;qBACF,CAAC,CAAC;oBAEH,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAmC,EAAQ,EAAE;gBAC9D,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YAEH,IAAI,iCAAoB,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC9C,qBAAQ,CAAC,IAAI,CACX,wCAAwC,EACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACrE,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,KAAK,EAAE,qBAAqB,CAAC;gBAE9E,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,kBAAkB;aAC1E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAmC;QACxD,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzB,MAAM,IAAI,uBAAU,CAAC;oBACnB,GAAG,IAAI,CAAC,uBAAuB,CAC7B,eAAe,EACf,IAAI,KAAK,CACP,IAAI,OAAO,CAAC,QAAQ,+BAA+B;wBACnD,+DAA+D,CAChE,EACD,qBAAqB,CACtB;oBAED,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,kBAAkB;oBACzE,iBAAiB,EAAE;wBACjB,OAAO,EAAE,OAAO;qBACjB;iBACF,CAAC,CAAC;YACL,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,4BAAe,CAAC,OAAO,CAAC,CAAC;YACrF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,uBAAU,IAAI,CAAC,iCAAoB,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;oBACvF,KAAK,CAAC,SAAS,CAAC,qCAAqC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACN,qBAAQ,CAAC,KAAK,CAAC,qCAAqC,OAAO,CAAC,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC;gBACnF,CAAC;gBAED,MAAM,IAAI,uBAAU,CAAC;oBACnB,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,KAAK,EAAE,qBAAqB,CAAC;oBAE9E,iBAAiB,EAAE;wBACjB,OAAO,EAAE,OAAO;qBACjB;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,EAAE,KAAK,EAAE,qBAAqB,CAAC;gBAEhF,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,kBAAkB;aAC1E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,OAAmC;QACzD,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzD,OAAO;YACT,CAAC;YAED,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,EAAE,KAAK,EAAE,qBAAqB,CAAC;gBAEjF,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,kBAAkB;aAC1E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,WAA+B;QACjE,IAAI,CAAC;YACH,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,kFAAkF;gBAClF,IAAI,CAAC,6CAAqB,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC;oBACnD,qBAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,KAAK,EAAE,qBAAqB,CAAC;gBAE/E,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;aACzE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CACnC,sBAAqE;QAErE,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,sBAAsB,GAAG,sBAAsB,IAAI,EAAE,CAAC;YAEpE,MAAM,uBAAU,CAAC,YAAY,CAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EACjD,KAAK,EAAE,GAAW,EAAiB,EAAE;gBACnC,MACE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,GAAG,CACzC,CAAC,kBAAkB,EAAE,CAAC;YACzB,CAAC,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,EAAE,KAAK,EAAE,qBAAqB,CAAC;gBAEjF,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;aACxE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,YAAyC;QAC5E,IAAI,CAAC;YACH,mBAAmB,CAAC,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAU,EAAiB,EAAE;gBAC5E,IAAI,CAAC;oBACH,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;wBAE1B,OAAO;oBACT,CAAC;oBAED,qBAAQ,CAAC,IAAI,CACX,qEAAqE,EACrE,4BAA4B,EAC5B,wCAAwC;wBACtC,+DAA+D,CAClE,CAAC;oBAEF,uBAAU,CAAC,SAAS,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;gBACrE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,uBAAU,EAAE,CAAC;wBAChC,KAAK,CAAC,SAAS,CACb,+BAA+B;4BAC/B,iDAAiD,CAClD,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,qBAAQ,CAAC,KAAK,CACZ,+BAA+B;4BAC/B,iDAAiD,EAChD,KAAoB,EAAE,kBAAkB,EAAE,EAAE,IAAI,KAAK,CACvD,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,EAAE,KAAK,EAAE,qBAAqB,CAAC;gBAEhF,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;aACzE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAAwB;QACvC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;YAChC,6DAA6D;YAC7D,2EAA2E;YAC3E,uEAAuE;YACvE,8DAA8D;YAC9D,8EAA8E;YAC9E,IAAI,6CAAqB,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC;gBAClD,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,IAAI,KAAK,CACb,4CAA4C;gBAC5C,mFAAmF;gBACnF,8DAA8D;gBAC9D,4CAA4C;gBAC1C,+DAA+D;gBACjE,6CAA6C;gBAC3C,sDAAsD,CACzD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,sBAAsB;QAC3B,IAAI,CAAE,IAAI,CAAC,QAAgC,EAAE,mBAAmB,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CACb,iDAAiD;gBACjD,qEAAqE;gBACnE,6BAA6B;gBAC/B,8DAA8D;gBAC9D,4CAA4C;gBAC1C,iEAAiE,CACpE,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CACjB,UAAoC;QAEpC,OAAO,IAAI,CAAC,iBAAiB,CAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAA0B,GAAW;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEjD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,UAAU,CAAC,GAAG,CAAuB,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,sDAAsD;gBACtD,oDAAoD,GAAG,IAAI;gBAC3D,4CAA4C;gBAC1C,+DAA+D;gBACjE,iDAAiD;gBACjD,aAAa,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,yBAAyB;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,8CAA8C;gBAC9C,kEAAkE;gBAChE,gCAAgC;gBAClC,4CAA4C;gBAC1C,+DAA+D;gBACjE,gEAAgE;gBAChE,4CAA4C;gBAC5C,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACtE,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH;;;;;;;;;;QAUI;IAEJ;;;;OAIG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8BI;IAEM,MAAM,CAAC,uBAAuB,CACtC,MAAc,EACd,KAAoB,EACpB,MAAc;IACd,mGAAmG;IACnG,0BAAmC,IAAI;QAEvC,OAAO;YACL,MAAM,EAAG,KAAoB,EAAE,SAAS,IAAI,GAAG;YAC/C,OAAO,EAAG,KAAe,EAAE,OAAO;gBAC/B,KAAoB,EAAE,QAAQ;gBAC/B,GAAG,MAAM,sBAAsB,6CAAqB,CAAC,mBAAmB,GAAG;YAC7E,cAAc,EAAE,CAAE,KAAoB,EAAE,aAAa;YACrD,WAAW,EAAG,KAAoB,EAAE,aAAa;gBAC/C,CAAC,uBAAuB,CAAC,CAAC,CAAE,KAAe,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAClF,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI;YACrC,KAAK,EAAE,KAAK;SACb,CAAC;IACJ,CAAC;;
|
|
1
|
+
{"version":3,"file":"global.service.js","sourceRoot":"","sources":["../../../src/_services/core/global.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -186,6 +186,26 @@ import { DyNTS_RoutingModule } from '../route/routing-module.service';
|
|
|
186
186
|
* ```
|
|
187
187
|
*
|
|
188
188
|
*/
|
|
189
|
+
/** FR-258 / SR-2 — one entry from `collection.indexes()` (only the fields the TTL-installer reads). */
|
|
190
|
+
export interface DyNTS_TtlIndexInfo {
|
|
191
|
+
name?: string;
|
|
192
|
+
key?: Record<string, number>;
|
|
193
|
+
expireAfterSeconds?: number;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* FR-258 / SR-2 — the minimal native-driver collection surface the TTL-installer needs. Declared
|
|
197
|
+
* structurally (not importing mongodb types) so it stays dependency-light and is trivially mockable
|
|
198
|
+
* in unit tests.
|
|
199
|
+
*/
|
|
200
|
+
export interface DyNTS_TtlIndexCollection {
|
|
201
|
+
indexes?: () => Promise<DyNTS_TtlIndexInfo[]>;
|
|
202
|
+
createIndex: (keys: Record<string, number>, options: {
|
|
203
|
+
expireAfterSeconds: number;
|
|
204
|
+
}) => Promise<unknown>;
|
|
205
|
+
dropIndex?: (name: string) => Promise<unknown>;
|
|
206
|
+
}
|
|
207
|
+
/** FR-258 / SR-2 — outcome of {@link DyNTS_App.ensureRetentionTtlIndex}. */
|
|
208
|
+
export type DyNTS_TtlIndexAction = 'created' | 'updated' | 'noop';
|
|
189
209
|
export declare abstract class DyNTS_App extends DyNTS_SingletonService {
|
|
190
210
|
protected systemControls: DyNTS_AppSystemControls;
|
|
191
211
|
get started(): boolean;
|
|
@@ -223,6 +243,31 @@ export declare abstract class DyNTS_App extends DyNTS_SingletonService {
|
|
|
223
243
|
*
|
|
224
244
|
*/
|
|
225
245
|
private startDB;
|
|
246
|
+
/**
|
|
247
|
+
* FR-258 / SR-2 — install MongoDB TTL indexes for every data-model that declared `retention`.
|
|
248
|
+
*
|
|
249
|
+
* Runs ONCE right after the DB connection opens. For each registered DB service (including the
|
|
250
|
+
* auto-created `_archived` siblings, which inherit the parent model's `retention`), it ensures a
|
|
251
|
+
* TTL index on the `__created` Date field with the resolved `expireAfterSeconds` — so MongoDB
|
|
252
|
+
* NATIVELY auto-deletes documents older than the configured age. This is the fleet-wide defense
|
|
253
|
+
* against the unbounded-collection-growth → in-memory-load → GC-thrash/OOM class.
|
|
254
|
+
*
|
|
255
|
+
* Guarantees:
|
|
256
|
+
* - **Non-fatal** — any error is logged but NEVER blocks startup (called fire-and-forget).
|
|
257
|
+
* - **Idempotent** — an existing index with the same TTL is a no-op; a CHANGED retention (different
|
|
258
|
+
* `expireAfterSeconds`, or an existing non-TTL `__created` index) is reconciled by drop+recreate
|
|
259
|
+
* (the field index is restored immediately, so query coverage is preserved).
|
|
260
|
+
*/
|
|
261
|
+
private installRetentionTtlIndexes;
|
|
262
|
+
/**
|
|
263
|
+
* FR-258 / SR-2 — ensure a single `{ __created: 1 }` TTL index with the given `expireAfterSeconds`.
|
|
264
|
+
* Extracted as a pure-ish static so it is unit-testable with a mock collection. Idempotent:
|
|
265
|
+
* - no existing `__created` index → create it → `'created'`
|
|
266
|
+
* - existing with the SAME TTL → no-op → `'noop'`
|
|
267
|
+
* - existing with a DIFFERENT TTL / non-TTL → drop + recreate → `'updated'`
|
|
268
|
+
* Drop+recreate preserves query coverage (the `{__created:1}` index is restored immediately).
|
|
269
|
+
*/
|
|
270
|
+
static ensureRetentionTtlIndex(collection: DyNTS_TtlIndexCollection, ttlSeconds: number): Promise<DyNTS_TtlIndexAction>;
|
|
226
271
|
/**
|
|
227
272
|
*
|
|
228
273
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.server.d.ts","sourceRoot":"","sources":["../../../src/_services/server/app.server.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,GAAG,QAAQ,UAAU,CAAC,CAAC;AACtC,OAAO,OAAO,GAAG,QAAQ,SAAS,CAAC,CAAC;AAMpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAIL,UAAU,
|
|
1
|
+
{"version":3,"file":"app.server.d.ts","sourceRoot":"","sources":["../../../src/_services/server/app.server.ts"],"names":[],"mappings":"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"}
|