@futdevpro/nts-dynamo 1.15.75 → 1.15.78

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,7 +1,7 @@
1
1
  {
2
- "pid": 265,
3
- "startedAt": "2026-06-22T22:03:05.681Z",
4
- "startedAtMs": 1782165785681,
2
+ "pid": 1948,
3
+ "startedAt": "2026-06-23T13:42:52.590Z",
4
+ "startedAtMs": 1782222172590,
5
5
  "phase": "npm-publish",
6
6
  "pipelineComplete": false,
7
7
  "serverRunning": false,
@@ -10,83 +10,83 @@
10
10
  "steps": {
11
11
  "validate-secrets": {
12
12
  "status": "ok",
13
- "startedAt": "2026-06-22T22:03:05.691Z",
13
+ "startedAt": "2026-06-23T13:42:52.604Z",
14
14
  "logLineStart": 2,
15
15
  "logLineEnd": 7,
16
16
  "durationSec": 0.2
17
17
  },
18
18
  "discord-start": {
19
19
  "status": "ok",
20
- "startedAt": "2026-06-22T22:03:06.948Z",
20
+ "startedAt": "2026-06-23T13:42:53.826Z",
21
21
  "logLineStart": 8,
22
22
  "logLineEnd": 13,
23
- "durationSec": 2.7
23
+ "durationSec": 3
24
24
  },
25
25
  "pre-flight": {
26
26
  "status": "ok",
27
- "startedAt": "2026-06-22T22:03:10.681Z",
27
+ "startedAt": "2026-06-23T13:42:57.846Z",
28
28
  "logLineStart": 14,
29
29
  "logLineEnd": 16,
30
30
  "durationSec": 0.2
31
31
  },
32
32
  "install": {
33
33
  "status": "ok",
34
- "startedAt": "2026-06-22T22:03:11.907Z",
34
+ "startedAt": "2026-06-23T13:42:59.030Z",
35
35
  "logLineStart": 17,
36
- "logLineEnd": 116,
37
- "durationSec": 72.9
36
+ "logLineEnd": 98,
37
+ "durationSec": 19.1
38
38
  },
39
39
  "check-dev-leftovers": {
40
40
  "status": "ok",
41
- "startedAt": "2026-06-22T22:04:25.817Z",
42
- "logLineStart": 117,
43
- "logLineEnd": 124,
44
- "durationSec": 37
41
+ "startedAt": "2026-06-23T13:43:19.139Z",
42
+ "logLineStart": 99,
43
+ "logLineEnd": 106,
44
+ "durationSec": 4.5
45
45
  },
46
46
  "build": {
47
47
  "status": "ok",
48
- "startedAt": "2026-06-22T22:05:03.817Z",
49
- "logLineStart": 125,
50
- "logLineEnd": 126,
51
- "durationSec": 46.5
48
+ "startedAt": "2026-06-23T13:43:24.637Z",
49
+ "logLineStart": 107,
50
+ "logLineEnd": 108,
51
+ "durationSec": 27.4
52
52
  },
53
53
  "test": {
54
54
  "status": "ok",
55
- "startedAt": "2026-06-22T22:05:51.306Z",
56
- "logLineStart": 127,
57
- "logLineEnd": 2792,
58
- "durationSec": 93.7,
55
+ "startedAt": "2026-06-23T13:43:53.050Z",
56
+ "logLineStart": 109,
57
+ "logLineEnd": 2777,
58
+ "durationSec": 42.3,
59
59
  "testSummary": {
60
- "totalSpecs": 1435,
60
+ "totalSpecs": 1442,
61
61
  "failures": 0,
62
- "passed": 1435,
63
- "testDurationSec": 10.584
62
+ "passed": 1442,
63
+ "testDurationSec": 11.924
64
64
  },
65
65
  "errors": [
66
66
  {
67
- "line": 1477,
68
- "text": ".**************************......................................................āŒ getDataByDependencyId failed, dependencyKey is missing from service! (test_data)",
69
- "details": ".error found, not saving (\"known\" error), but increased count,\ncount: 2\nErrorMsg: Old recurrence\nšŸ“ /tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/build/_services/base/data.service.spec.js:182:87",
70
- "detailLineEnd": 1478
67
+ "line": 1973,
68
+ "text": "āŒāŒ Error handleMessage: Error: Test error",
69
+ "details": "at UserContext.<anonymous> (/tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/build/_modules/assistant/_services/ass-io.control-service.spec.js:92:136)\nat QueueRunner.attempt (/tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8414:40)\nat QueueRunner.run (/tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8452:27)\nat runNext (/tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8241:9\nat processTicksAndRejections (node:internal/process/task_queues:95:5)",
70
+ "detailLineEnd": 1980
71
71
  },
72
72
  {
73
- "line": 2057,
73
+ "line": 1987,
74
74
  "text": "āŒāŒ Error handleMessage: Error: Test error",
75
- "details": "at UserContext.<anonymous> (/tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/build/_modules/assistant/_services/ass-io.control-service.spec.js:68:136)\nat QueueRunner.attempt (/tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8414:40)\nat QueueRunner.run (/tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8452:27)\nat runNext (/tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8241:9",
76
- "detailLineEnd": 2063
75
+ "details": "at UserContext.<anonymous> (/tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/build/_modules/assistant/_services/ass-io.control-service.spec.js:68:136)\nat QueueRunner.attempt (/tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8414:40)\nat QueueRunner.run (/tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8452:27)\nat runNext (/tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8241:9\nat processTicksAndRejections (node:internal/process/task_queues:95:5)",
76
+ "detailLineEnd": 1994
77
77
  },
78
78
  {
79
- "line": 2070,
80
- "text": "āŒāŒ Error handleMessage: Error: Test error",
81
- "details": "at UserContext.<anonymous> (/tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/build/_modules/assistant/_services/ass-io.control-service.spec.js:92:136)\nat QueueRunner.attempt (/tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8414:40)\nat QueueRunner.run (/tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8452:27)\nat runNext (/tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/c0a8d834-a377-432d-b47b-fd9610774e4c/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8241:9",
82
- "detailLineEnd": 2076
79
+ "line": 2090,
80
+ "text": ".....................āŒ getDataByDependencyId failed, dependencyKey is missing from service! (test_data)",
81
+ "details": "Emitting event 'test-event' on socket(unknown)-(1) failed!(1)\n.Emitting event 'test-event' on socket(unknown)-(0) failed!(1)\nEmitting event 'test-event' on socket(unknown)-(1) failed!(1)\nšŸ“ /tmp/pipeline-runs/f81a1847-0c02-4d3c-a2d4-d9fbd41ea017/build/_services/base/data.service.spec.js:182:87",
82
+ "detailLineEnd": 2091
83
83
  }
84
84
  ]
85
85
  },
86
86
  "npm-publish": {
87
87
  "status": "running",
88
- "startedAt": "2026-06-22T22:07:26.042Z",
89
- "logLineStart": 2793,
88
+ "startedAt": "2026-06-23T13:44:36.401Z",
89
+ "logLineStart": 2778,
90
90
  "logLineEnd": null,
91
91
  "durationSec": null
92
92
  }
@@ -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":"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"}
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":"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"}
1
+ {"version":3,"file":"app.server.d.ts","sourceRoot":"","sources":["../../../src/_services/server/app.server.ts"],"names":[],"mappings":"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"}
@@ -22,179 +22,6 @@ const http_settings_control_model_1 = require("../../_models/control-models/http
22
22
  const singleton_service_1 = require("../base/singleton.service");
23
23
  const global_service_1 = require("../core/global.service");
24
24
  const memory_guard_service_1 = require("../core/memory-guard.service");
25
- /**
26
- *
27
- * function MyDecorator(config: any) {
28
- return function (target: Function) {
29
- // attach metadata or modify target
30
- target.prototype.myMeta = config;
31
- };
32
- }
33
-
34
- @MyDecorator({ role: 'admin' })
35
- class User {
36
- printRole() {
37
- console.log((this as any).myMeta.role); // → "admin"
38
- }
39
- }
40
-
41
- */
42
- /**
43
- * This will be the MAIN service of our server project,
44
- * follow the types and type instructions while setting up your project
45
- *
46
- * In this service, there are abstract functions that you will need to implement,
47
- * where you need to set up the main params for your application.
48
- *
49
- * (after the example, you can find the list of services you can/should setup)
50
- *
51
- * @example
52
- * export class App extends DyNTS_AppExtended {
53
- *
54
- * ...
55
- *
56
- * // Setting up App params, and preparing project global settings
57
- * setupAppParams(): void {
58
- * this.params = new DyNTS_AppParams({
59
- * name: 'Warbots Server',
60
- * title: warbotsTitleLog,
61
- * version: version,
62
- * dbName: 'warbots',
63
- * });
64
- *
65
- * // dynamoNTS_GlobalSettings.logRequestsContent = false;
66
- * }
67
- *
68
- * ...
69
- *
70
- * // Setting up DBServices
71
- * setGlobalServiceCollection(): void {
72
- * DyNTS_GlobalService.setServices({
73
- * authService: AuthService.getInstance(),
74
- * emailServiceCollection: EmailServiceCollectionService.getInstance(),
75
- * dbModels: [
76
- * userModelParams,
77
- * userDataModelParams,
78
- * userOptionsModelParams,
79
- * userStatisticsModelParams,
80
- * userAchievementsModelParams,
81
- * userNotificationsModelParams,
82
- *
83
- * matchStatisticsModelParams,
84
- * matchDataModelParams,
85
-
86
- * DyFM_usageSession_dataParams,
87
- * DyFM_customData_dataParams,
88
- * ]
89
- * });
90
- * }
91
- *
92
- * ...
93
- *
94
- * // Setting up Routes
95
- * setupRoutingModules(): void {
96
- * this.httpPort = env.port;
97
-
98
- * this.routingModules = [
99
- * new DyNTS_RoutingModule({
100
- * route: '/user',
101
- * controllers: [
102
- * UserController.getInstance(),
103
- * UserDataController.getInstance(),
104
- * UserOptionsController.getInstance(),
105
- * UserStatisticsController.getInstance(),
106
- * UserAchievementsController.getInstance(),
107
- * UserNotificationsController.getInstance()
108
- * ]
109
- * }),
110
- * new DyNTS_RoutingModule({
111
- * route: '/match',
112
- * controllers: [
113
- * MatchController.getInstance(),
114
- * MatchDistributionController.getInstance(),
115
- * MatchStatisticsController.getInstance(),
116
- * ]
117
- * }),
118
- * new DyNTS_RoutingModule({
119
- * route: '/server',
120
- * controllers: [
121
- * ServerController.getInstance(),
122
- * ]
123
- * }),
124
-
125
- * getTestRoutingModule(),
126
- * getUsageRoutingModule()
127
- * ];
128
- * }
129
- * }
130
- *
131
- * //
132
- * // The Services available
133
- * //
134
- * // Authentication Service
135
- * // A commonly used basic service,
136
- * // which is necessary fur certain functions (such as registering call issuers)
137
- * //
138
- * // This will handle Authentication Token checking/refreshing,
139
- * // checking issuer's identifier and routeParams,
140
- * // handling JWT Token, or maybe with OAuth2 or other commonly used security procedures
141
- * //
142
- * // You can create one with this Dynamo Object:
143
- * //
144
- *
145
- * @example
146
- * // follow the instructions on the abstract class (DyNTS_AuthService)
147
- * export class AuthService extends DyNTS_AuthService {}
148
- *
149
- *
150
- *
151
- * //
152
- */
153
- /**
154
- * This will be the MAIN service of our server project,
155
- * follow the types and type instructions while setting up your project
156
- *
157
- * In this service, there are abstract functions that you will need to implement,
158
- * where you need to set up the main params for your application.
159
- *
160
- * (after the example, you can find the list of services you can/should setup)
161
- *
162
- * You need to setup the following functions:
163
- * ```ts
164
- * // this is where you set up the main params for your application
165
- * getAppParams(): DyNTS_AppParams
166
- *
167
- * // this is where you connect your main services
168
- * getGlobalServiceSettings(): DyNTS_GlobalService_Settings
169
- *
170
- * // this is where you set up your ports
171
- * getPorts(): DyNTS_PortSettings
172
- *
173
- * // this is where you set up your routes
174
- * getRoutingModules(): DyNTS_RoutingModule[]
175
- *
176
- *
177
- *
178
- * ```
179
- * optionally you can setup the following functions:
180
- * ```ts
181
- * // this is where you set up your certifications
182
- * getCertificationSettings(): DyNTS_CertificationSettings
183
- *
184
- * // this is where you set up additional root services
185
- * getRootServices(): DyNTS_SingletonService[]
186
- *
187
- * // this is where you set up your initial db entries
188
- * createEntries(): void
189
- *
190
- * // this is where you can define post setup processes
191
- * postProcess(): void
192
- *
193
- *
194
- *
195
- * ```
196
- *
197
- */
198
25
  class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
199
26
  systemControls = new app_system_controls_control_model_1.DyNTS_AppSystemControls();
200
27
  get started() {
@@ -717,6 +544,10 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
717
544
  this.systemControls.mongoose.started = true;
718
545
  fsm_dynamo_1.DyFM_Log.success(`\nConnected to MongoDB (${this._params.dbUri})\n`);
719
546
  resolve();
547
+ // FR-258 / SR-2 — install declared-retention TTL indexes. Fire-and-forget +
548
+ // fully non-fatal: an index build on a large collection must NOT block startup,
549
+ // and any failure here is logged but never crashes the app.
550
+ void this.installRetentionTtlIndexes();
720
551
  })
721
552
  .on('error', (error) => {
722
553
  if (!this.systemControls.mongoose.started) {
@@ -796,6 +627,87 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
796
627
  fsm_dynamo_1.DyFM_Log.warn(`[mongo-reconnect-guard] failed to start (non-fatal): ${guardErr instanceof Error ? guardErr.message : String(guardErr)}`);
797
628
  }
798
629
  }
630
+ /**
631
+ * FR-258 / SR-2 — install MongoDB TTL indexes for every data-model that declared `retention`.
632
+ *
633
+ * Runs ONCE right after the DB connection opens. For each registered DB service (including the
634
+ * auto-created `_archived` siblings, which inherit the parent model's `retention`), it ensures a
635
+ * TTL index on the `__created` Date field with the resolved `expireAfterSeconds` — so MongoDB
636
+ * NATIVELY auto-deletes documents older than the configured age. This is the fleet-wide defense
637
+ * against the unbounded-collection-growth → in-memory-load → GC-thrash/OOM class.
638
+ *
639
+ * Guarantees:
640
+ * - **Non-fatal** — any error is logged but NEVER blocks startup (called fire-and-forget).
641
+ * - **Idempotent** — an existing index with the same TTL is a no-op; a CHANGED retention (different
642
+ * `expireAfterSeconds`, or an existing non-TTL `__created` index) is reconciled by drop+recreate
643
+ * (the field index is restored immediately, so query coverage is preserved).
644
+ */
645
+ async installRetentionTtlIndexes() {
646
+ try {
647
+ const services = global_service_1.DyNTS_GlobalService.getAllDBServices();
648
+ let ensured = 0;
649
+ for (const service of services) {
650
+ const ttlSeconds = (0, fsm_dynamo_1.DyFM_resolveRetentionTtlSeconds)(service?.dataParams?.retention);
651
+ if (!ttlSeconds) {
652
+ continue;
653
+ }
654
+ const dataName = service.dataParams.dataName;
655
+ // The mongoose Model exposes the native driver collection (.indexes / .createIndex / .dropIndex).
656
+ const collection = service?.dataModel?.collection;
657
+ if (!collection || typeof collection.createIndex !== 'function') {
658
+ continue;
659
+ }
660
+ try {
661
+ const action = await DyNTS_App.ensureRetentionTtlIndex(collection, ttlSeconds);
662
+ if (action === 'created' || action === 'updated') {
663
+ ensured++;
664
+ if (this.logSetup) {
665
+ fsm_dynamo_1.DyFM_Log.success(`[FR-258 retention] TTL index ${action} on "${dataName}" — ` +
666
+ `${Math.round(ttlSeconds / 86400)}d (${ttlSeconds}s)`);
667
+ }
668
+ }
669
+ }
670
+ catch (idxErr) {
671
+ fsm_dynamo_1.DyFM_Log.warn(`[FR-258 retention] TTL index on "${dataName}" failed (non-fatal): ` +
672
+ `${idxErr instanceof Error ? idxErr.message : String(idxErr)}`);
673
+ }
674
+ }
675
+ if (ensured > 0) {
676
+ fsm_dynamo_1.DyFM_Log.success(`[FR-258 retention] ${ensured} TTL index(es) ensured (auto-retention active).`);
677
+ }
678
+ }
679
+ catch (err) {
680
+ fsm_dynamo_1.DyFM_Log.warn(`[FR-258 retention] TTL-installer failed (non-fatal): ` +
681
+ `${err instanceof Error ? err.message : String(err)}`);
682
+ }
683
+ }
684
+ /**
685
+ * FR-258 / SR-2 — ensure a single `{ __created: 1 }` TTL index with the given `expireAfterSeconds`.
686
+ * Extracted as a pure-ish static so it is unit-testable with a mock collection. Idempotent:
687
+ * - no existing `__created` index → create it → `'created'`
688
+ * - existing with the SAME TTL → no-op → `'noop'`
689
+ * - existing with a DIFFERENT TTL / non-TTL → drop + recreate → `'updated'`
690
+ * Drop+recreate preserves query coverage (the `{__created:1}` index is restored immediately).
691
+ */
692
+ static async ensureRetentionTtlIndex(collection, ttlSeconds) {
693
+ const existingList = typeof collection.indexes === 'function'
694
+ ? await collection.indexes().catch(() => [])
695
+ : [];
696
+ const existing = existingList.find((ix) => !!ix?.key && ix.key.__created === 1);
697
+ if (!existing) {
698
+ await collection.createIndex({ __created: 1 }, { expireAfterSeconds: ttlSeconds });
699
+ return 'created';
700
+ }
701
+ if (existing.expireAfterSeconds === ttlSeconds) {
702
+ return 'noop';
703
+ }
704
+ // Retention changed, or an existing non-TTL `__created` index → reconcile by drop+recreate.
705
+ if (existing.name && typeof collection.dropIndex === 'function') {
706
+ await collection.dropIndex(existing.name).catch(() => undefined);
707
+ }
708
+ await collection.createIndex({ __created: 1 }, { expireAfterSeconds: ttlSeconds });
709
+ return 'updated';
710
+ }
799
711
  /**
800
712
  *
801
713
  */