@futdevpro/nts-dynamo 1.15.20 → 1.15.23

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.
Files changed (41) hide show
  1. package/__documentations/2026-05-17-static-client-serving-howto.md +144 -0
  2. package/_specifications/BACKLOG.md +6 -6
  3. package/build/_modules/logs/_models/file-log-entry.interface.d.ts +14 -0
  4. package/build/_modules/logs/_models/file-log-entry.interface.d.ts.map +1 -0
  5. package/build/_modules/logs/_models/file-log-entry.interface.js +3 -0
  6. package/build/_modules/logs/_models/file-log-entry.interface.js.map +1 -0
  7. package/build/_modules/logs/_models/file-log-read-result.interface.d.ts +36 -0
  8. package/build/_modules/logs/_models/file-log-read-result.interface.d.ts.map +1 -0
  9. package/build/_modules/logs/_models/file-log-read-result.interface.js +3 -0
  10. package/build/_modules/logs/_models/file-log-read-result.interface.js.map +1 -0
  11. package/build/_modules/logs/file-log.service.d.ts +46 -0
  12. package/build/_modules/logs/file-log.service.d.ts.map +1 -1
  13. package/build/_modules/logs/file-log.service.js +178 -0
  14. package/build/_modules/logs/file-log.service.js.map +1 -1
  15. package/build/_modules/logs/file-logs.controller.d.ts +41 -0
  16. package/build/_modules/logs/file-logs.controller.d.ts.map +1 -0
  17. package/build/_modules/logs/file-logs.controller.js +139 -0
  18. package/build/_modules/logs/file-logs.controller.js.map +1 -0
  19. package/build/_modules/logs/get-file-logs-routing-module.util.d.ts +32 -0
  20. package/build/_modules/logs/get-file-logs-routing-module.util.d.ts.map +1 -0
  21. package/build/_modules/logs/get-file-logs-routing-module.util.js +38 -0
  22. package/build/_modules/logs/get-file-logs-routing-module.util.js.map +1 -0
  23. package/build/_modules/logs/index.d.ts +4 -0
  24. package/build/_modules/logs/index.d.ts.map +1 -1
  25. package/build/_modules/logs/index.js +5 -1
  26. package/build/_modules/logs/index.js.map +1 -1
  27. package/build/_modules/server/errors/errors.controller.d.ts +64 -0
  28. package/build/_modules/server/errors/errors.controller.d.ts.map +1 -1
  29. package/build/_modules/server/errors/errors.controller.js +66 -0
  30. package/build/_modules/server/errors/errors.controller.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/_modules/logs/_models/file-log-entry.interface.ts +13 -0
  33. package/src/_modules/logs/_models/file-log-read-result.interface.ts +37 -0
  34. package/src/_modules/logs/file-log.service.spec.ts +139 -0
  35. package/src/_modules/logs/file-log.service.ts +183 -0
  36. package/src/_modules/logs/file-logs.controller.spec.ts +245 -0
  37. package/src/_modules/logs/file-logs.controller.ts +165 -0
  38. package/src/_modules/logs/get-file-logs-routing-module.util.ts +51 -0
  39. package/src/_modules/logs/index.ts +7 -0
  40. package/src/_modules/server/errors/errors.controller.spec.ts +70 -0
  41. package/src/_modules/server/errors/errors.controller.ts +102 -0
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_FileLogs_Controller = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ const controller_service_1 = require("../../_services/route/controller.service");
6
+ const endpoint_params_control_model_1 = require("../../_models/control-models/endpoint-params.control-model");
7
+ const file_log_service_1 = require("./file-log.service");
8
+ /**
9
+ * NTS File Logs Controller — endpointok a `DyNTS_FileLog_Service` altal irt
10
+ * log fajl-ok lekeresehez.
11
+ *
12
+ * **Endpoint-ok:**
13
+ * GET /list — log fajlok listazasa (basename, sizeBytes, mtimeMs, isCurrent)
14
+ * GET /file/:filename — egy fajl olvasasa, line-based: ?tail=N | ?head=N | ?rangeStart=A&rangeEnd=B
15
+ *
16
+ * **Mount-olas (host app):**
17
+ * app.use(DyNTS_getFileLogsRoutingModule({
18
+ * authPreProcess: adminAuth.verify, // opcionalis
19
+ * route: '/admin/file-logs', // default '/file-logs'
20
+ * }));
21
+ *
22
+ * **Status code-ok:**
23
+ * 200 — sikeres response (lehet ures lista is)
24
+ * 400 — invalid query parameter (tail/head/range)
25
+ * 401 — auth pre-process throw-ol DyFM_Error(401)
26
+ * 404 — fajl nem letezik vagy nem megfelelo nev (whitelist failure / path traversal kiserlet)
27
+ * 503 — a DyNTS_FileLog_Service nincs install-olva (vagy file_log.enabled=false)
28
+ */
29
+ class DyNTS_FileLogs_Controller extends controller_service_1.DyNTS_Controller {
30
+ static config = {};
31
+ static configure(config) {
32
+ DyNTS_FileLogs_Controller.config = config;
33
+ }
34
+ static getInstance() {
35
+ return DyNTS_FileLogs_Controller.getSingletonInstance();
36
+ }
37
+ fileLogService = file_log_service_1.DyNTS_FileLog_Service.getInstance();
38
+ setupEndpoints() {
39
+ const preProcesses = [];
40
+ if (DyNTS_FileLogs_Controller.config.authPreProcess) {
41
+ preProcesses.push(DyNTS_FileLogs_Controller.config.authPreProcess);
42
+ }
43
+ this.endpoints = [
44
+ // GET /list — fajllista
45
+ new endpoint_params_control_model_1.DyNTS_Endpoint_Params({
46
+ name: 'listFileLogs',
47
+ type: fsm_dynamo_1.DyFM_HttpCallType.get,
48
+ endpoint: '/list',
49
+ preProcesses: preProcesses,
50
+ logRequest: false,
51
+ tasks: [
52
+ async (req, res) => {
53
+ if (!this.fileLogService.isInstalled()) {
54
+ res.status(503).send({
55
+ error: 'FileLog service is not installed.',
56
+ hint: 'Set DyNTS_global_settings.log_settings.file_log.enabled = true and call DyNTS_FileLog_Service.getInstance().install() at server startup.',
57
+ });
58
+ return;
59
+ }
60
+ const files = this.fileLogService.listLogFiles();
61
+ const totalSizeBytes = files.reduce((acc, f) => acc + f.sizeBytes, 0);
62
+ res.send({
63
+ count: files.length,
64
+ totalSizeBytes: totalSizeBytes,
65
+ files: files,
66
+ });
67
+ },
68
+ ],
69
+ }),
70
+ // GET /file/:filename — egy fajl olvasasa tail / head / range modban
71
+ new endpoint_params_control_model_1.DyNTS_Endpoint_Params({
72
+ name: 'readFileLog',
73
+ type: fsm_dynamo_1.DyFM_HttpCallType.get,
74
+ endpoint: '/file/:filename',
75
+ preProcesses: preProcesses,
76
+ logRequest: false,
77
+ tasks: [
78
+ async (req, res) => {
79
+ if (!this.fileLogService.isInstalled()) {
80
+ res.status(503).send({
81
+ error: 'FileLog service is not installed.',
82
+ });
83
+ return;
84
+ }
85
+ const filename = req.params.filename;
86
+ const options = {};
87
+ // Mod prioritas: range > head > tail. Csak a megadott mezo aktivalja az adott modot.
88
+ if (req.query.rangeStart !== undefined && req.query.rangeEnd !== undefined) {
89
+ const start = parseInt(req.query.rangeStart, 10);
90
+ const end = parseInt(req.query.rangeEnd, 10);
91
+ if (!Number.isFinite(start) || !Number.isFinite(end) || start < 1 || end < start) {
92
+ res.status(400).send({ error: 'Invalid rangeStart/rangeEnd query parameters' });
93
+ return;
94
+ }
95
+ options.rangeStart = start;
96
+ options.rangeEnd = end;
97
+ }
98
+ else if (req.query.head !== undefined) {
99
+ const head = parseInt(req.query.head, 10);
100
+ if (!Number.isFinite(head) || head < 1) {
101
+ res.status(400).send({ error: 'Invalid head query parameter' });
102
+ return;
103
+ }
104
+ options.head = head;
105
+ }
106
+ else if (req.query.tail !== undefined) {
107
+ const tail = parseInt(req.query.tail, 10);
108
+ if (!Number.isFinite(tail) || tail < 1) {
109
+ res.status(400).send({ error: 'Invalid tail query parameter' });
110
+ return;
111
+ }
112
+ options.tail = tail;
113
+ }
114
+ // egyik query mezo sincs → service alapertelmezett tail (200)
115
+ try {
116
+ const result = this.fileLogService.readLogFile(filename, options);
117
+ res.send(result);
118
+ }
119
+ catch (err) {
120
+ const msg = err instanceof Error ? err.message : String(err);
121
+ if (msg === 'FileLog service not installed') {
122
+ res.status(503).send({ error: msg });
123
+ return;
124
+ }
125
+ if (msg === 'invalid filename' || msg === 'file not found') {
126
+ res.status(404).send({ error: msg, filename: filename });
127
+ return;
128
+ }
129
+ // Egyeb hibak (pl. FS read failure) — 500
130
+ res.status(500).send({ error: msg });
131
+ }
132
+ },
133
+ ],
134
+ }),
135
+ ];
136
+ }
137
+ }
138
+ exports.DyNTS_FileLogs_Controller = DyNTS_FileLogs_Controller;
139
+ //# sourceMappingURL=file-logs.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-logs.controller.js","sourceRoot":"","sources":["../../../src/_modules/logs/file-logs.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { DyNTS_RoutingModule } from '../../_services/route/routing-module.service';
2
+ import { DyNTS_FileLogsController_Config } from './file-logs.controller';
3
+ /**
4
+ * Config a `DyNTS_getFileLogsRoutingModule()`-hoz.
5
+ */
6
+ export interface DyNTS_FileLogsRoutingModule_Config extends DyNTS_FileLogsController_Config {
7
+ /** Route prefix. Default: `/file-logs`. */
8
+ route?: string;
9
+ }
10
+ /**
11
+ * Letrehoz egy routing module-t a `DyNTS_FileLogs_Controller`-rel.
12
+ *
13
+ * **Hasznalat (auth nelkul, fejlesztoi env):**
14
+ * ```ts
15
+ * app.use(DyNTS_getFileLogsRoutingModule());
16
+ * ```
17
+ *
18
+ * **Hasznalat (admin API key auth-tal — javasolt produkcios env-re):**
19
+ * ```ts
20
+ * const adminAuth = DyNTS_AdminApiKey_AuthService.getInstance();
21
+ * app.use(DyNTS_getFileLogsRoutingModule({
22
+ * authPreProcess: adminAuth.verify,
23
+ * route: '/admin/file-logs', // opcionalis override
24
+ * }));
25
+ * ```
26
+ *
27
+ * **Elofeltetel:** `DyNTS_FileLog_Service.getInstance().install()` lefutott
28
+ * a szerver startup-on (es a `log_settings.file_log.enabled = true`).
29
+ * Egyebkent a controller endpointjai 503-at adnak.
30
+ */
31
+ export declare function DyNTS_getFileLogsRoutingModule(config?: DyNTS_FileLogsRoutingModule_Config): DyNTS_RoutingModule;
32
+ //# sourceMappingURL=get-file-logs-routing-module.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-file-logs-routing-module.util.d.ts","sourceRoot":"","sources":["../../../src/_modules/logs/get-file-logs-routing-module.util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,OAAO,EAA6B,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAGpG;;GAEG;AACH,MAAM,WAAW,kCAAmC,SAAQ,+BAA+B;IACzF,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,CAAC,EAAE,kCAAkC,GAC1C,mBAAmB,CAYrB"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_getFileLogsRoutingModule = DyNTS_getFileLogsRoutingModule;
4
+ const routing_module_service_1 = require("../../_services/route/routing-module.service");
5
+ const file_logs_controller_1 = require("./file-logs.controller");
6
+ /**
7
+ * Letrehoz egy routing module-t a `DyNTS_FileLogs_Controller`-rel.
8
+ *
9
+ * **Hasznalat (auth nelkul, fejlesztoi env):**
10
+ * ```ts
11
+ * app.use(DyNTS_getFileLogsRoutingModule());
12
+ * ```
13
+ *
14
+ * **Hasznalat (admin API key auth-tal — javasolt produkcios env-re):**
15
+ * ```ts
16
+ * const adminAuth = DyNTS_AdminApiKey_AuthService.getInstance();
17
+ * app.use(DyNTS_getFileLogsRoutingModule({
18
+ * authPreProcess: adminAuth.verify,
19
+ * route: '/admin/file-logs', // opcionalis override
20
+ * }));
21
+ * ```
22
+ *
23
+ * **Elofeltetel:** `DyNTS_FileLog_Service.getInstance().install()` lefutott
24
+ * a szerver startup-on (es a `log_settings.file_log.enabled = true`).
25
+ * Egyebkent a controller endpointjai 503-at adnak.
26
+ */
27
+ function DyNTS_getFileLogsRoutingModule(config) {
28
+ // Controller config atadasa (static — getInstance() elott)
29
+ if (config) {
30
+ file_logs_controller_1.DyNTS_FileLogs_Controller.configure({ authPreProcess: config.authPreProcess });
31
+ }
32
+ const settings = {
33
+ route: config?.route ?? '/file-logs',
34
+ controllers: [file_logs_controller_1.DyNTS_FileLogs_Controller.getInstance()],
35
+ };
36
+ return new routing_module_service_1.DyNTS_RoutingModule(settings);
37
+ }
38
+ //# sourceMappingURL=get-file-logs-routing-module.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-file-logs-routing-module.util.js","sourceRoot":"","sources":["../../../src/_modules/logs/get-file-logs-routing-module.util.ts"],"names":[],"mappings":";;AAoCA,wEAcC;AAjDD,yFAAmF;AAEnF,iEAAoG;AAYpG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,8BAA8B,CAC5C,MAA2C;IAE3C,2DAA2D;IAC3D,IAAI,MAAM,EAAE,CAAC;QACX,gDAAyB,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,QAAQ,GAAiC;QAC7C,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,YAAY;QACpC,WAAW,EAAE,CAAC,gDAAyB,CAAC,WAAW,EAAE,CAAC;KACvD,CAAC;IAEF,OAAO,IAAI,4CAAmB,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC"}
@@ -2,4 +2,8 @@ export { DyNTS_Logs_Service } from './logs.service';
2
2
  export { DyNTS_Logs_Controller, DyNTS_LogsController_Config } from './logs.controller';
3
3
  export { DyNTS_getLogsRoutingModule } from './get-logs-routing-module.util';
4
4
  export { DyNTS_FileLog_Service } from './file-log.service';
5
+ export { DyNTS_FileLogs_Controller, DyNTS_FileLogsController_Config } from './file-logs.controller';
6
+ export { DyNTS_getFileLogsRoutingModule, DyNTS_FileLogsRoutingModule_Config, } from './get-file-logs-routing-module.util';
7
+ export { DyNTS_FileLog_Entry } from './_models/file-log-entry.interface';
8
+ export { DyNTS_FileLog_ReadResult, DyNTS_FileLog_ReadOptions } from './_models/file-log-read-result.interface';
5
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/logs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/logs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,GACnC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DyNTS_FileLog_Service = exports.DyNTS_getLogsRoutingModule = exports.DyNTS_Logs_Controller = exports.DyNTS_Logs_Service = void 0;
3
+ exports.DyNTS_getFileLogsRoutingModule = exports.DyNTS_FileLogs_Controller = exports.DyNTS_FileLog_Service = exports.DyNTS_getLogsRoutingModule = exports.DyNTS_Logs_Controller = exports.DyNTS_Logs_Service = void 0;
4
4
  var logs_service_1 = require("./logs.service");
5
5
  Object.defineProperty(exports, "DyNTS_Logs_Service", { enumerable: true, get: function () { return logs_service_1.DyNTS_Logs_Service; } });
6
6
  var logs_controller_1 = require("./logs.controller");
@@ -9,4 +9,8 @@ var get_logs_routing_module_util_1 = require("./get-logs-routing-module.util");
9
9
  Object.defineProperty(exports, "DyNTS_getLogsRoutingModule", { enumerable: true, get: function () { return get_logs_routing_module_util_1.DyNTS_getLogsRoutingModule; } });
10
10
  var file_log_service_1 = require("./file-log.service");
11
11
  Object.defineProperty(exports, "DyNTS_FileLog_Service", { enumerable: true, get: function () { return file_log_service_1.DyNTS_FileLog_Service; } });
12
+ var file_logs_controller_1 = require("./file-logs.controller");
13
+ Object.defineProperty(exports, "DyNTS_FileLogs_Controller", { enumerable: true, get: function () { return file_logs_controller_1.DyNTS_FileLogs_Controller; } });
14
+ var get_file_logs_routing_module_util_1 = require("./get-file-logs-routing-module.util");
15
+ Object.defineProperty(exports, "DyNTS_getFileLogsRoutingModule", { enumerable: true, get: function () { return get_file_logs_routing_module_util_1.DyNTS_getFileLogsRoutingModule; } });
12
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/logs/index.ts"],"names":[],"mappings":";;;AAAA,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAC3B,qDAAuF;AAA9E,wHAAA,qBAAqB,OAAA;AAC9B,+EAA4E;AAAnE,0IAAA,0BAA0B,OAAA;AACnC,uDAA2D;AAAlD,yHAAA,qBAAqB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/logs/index.ts"],"names":[],"mappings":";;;AAAA,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAC3B,qDAAuF;AAA9E,wHAAA,qBAAqB,OAAA;AAC9B,+EAA4E;AAAnE,0IAAA,0BAA0B,OAAA;AACnC,uDAA2D;AAAlD,yHAAA,qBAAqB,OAAA;AAC9B,+DAAoG;AAA3F,iIAAA,yBAAyB,OAAA;AAClC,yFAG6C;AAF3C,mJAAA,8BAA8B,OAAA"}
@@ -1,7 +1,36 @@
1
+ import { Request, Response } from 'express';
1
2
  import { DyFM_Error, DyFM_Errors } from '@futdevpro/fsm-dynamo';
2
3
  import { DyNTS_Controller } from '../../../_services/route/controller.service';
3
4
  import { DyNTS_Endpoint_Params } from '../../../_models/control-models/endpoint-params.control-model';
4
5
  import { DyNTS_Errors_ControlService } from './errors.control-service';
6
+ /**
7
+ * Auth retrofit config a `DyNTS_Errors_Controller`-hez. Opt-in — ha az
8
+ * `authPreProcess` nincs megadva, a controller a regi (auth nelkuli)
9
+ * viselkedest tartja.
10
+ *
11
+ * **Subclass-szintu konfiguracio:** az `authConfig` static, igy az abstract
12
+ * osztaly minden subclass-a kozott OSZTOTT. Ha tobb subclass-od van kulonbozo
13
+ * policy-val, hivd a `configure()`-t a megfelelo subclasson — TypeScript a
14
+ * static field-eket per-class hatarozza meg.
15
+ */
16
+ export interface DyNTS_ErrorsController_AuthConfig {
17
+ /**
18
+ * Pre-process fuggveny ami minden vedett endpoint elott fut. Tipikusan:
19
+ * `DyNTS_AdminApiKey_AuthService.getInstance().verify`.
20
+ *
21
+ * Ha hianyzik vagy `undefined`, a controller NEM ad hozza auth-ot semelyik
22
+ * endpoint-hoz (regi viselkedes, opt-in safety).
23
+ */
24
+ authPreProcess?: (req: Request, res: Response) => Promise<void>;
25
+ /**
26
+ * Vedett endpoint nevek listaja. Ha hianyzik, az osszes 8 endpoint vedett
27
+ * (`authPreProcess` jelenleteben).
28
+ *
29
+ * Endpoint nevek: 'logError', 'newError', 'markErrorDone', 'markAllErrorDone',
30
+ * 'getErrors', 'getErrorsPaged', 'getLastErrors', 'searchErrors'.
31
+ */
32
+ protectedEndpoints?: string[];
33
+ }
5
34
  /**
6
35
  * Endpoints:
7
36
  *
@@ -31,6 +60,41 @@ export declare abstract class DyNTS_Errors_Controller<T_Error extends DyFM_Error
31
60
  issuer: string;
32
61
  }): T_Error_ControlService;
33
62
  protected readonly additionalEndpoints: DyNTS_Endpoint_Params[];
63
+ /**
64
+ * Static auth config — opt-in retrofit. Default ures objektum → NO auth
65
+ * (a meglevo integraciok valtoznatlan viselkedessel folytatodnak).
66
+ */
67
+ protected static authConfig: DyNTS_ErrorsController_AuthConfig;
68
+ /**
69
+ * Static config setter. Hivhato barmikor a szerver startup-jan az endpoint
70
+ * registration ELOTT.
71
+ *
72
+ * Use case (host app):
73
+ * ```ts
74
+ * const adminAuth = DyNTS_AdminApiKey_AuthService.getInstance();
75
+ * DyNTS_Errors_Controller.configure({ authPreProcess: adminAuth.verify });
76
+ * // vagy fine-grained:
77
+ * DyNTS_Errors_Controller.configure({
78
+ * authPreProcess: adminAuth.verify,
79
+ * protectedEndpoints: ['markAllErrorDone', 'logError'],
80
+ * });
81
+ * ```
82
+ */
83
+ static configure(config: DyNTS_ErrorsController_AuthConfig): void;
84
+ /**
85
+ * Aktualis auth config olvasasa (test/diagnosztika celokra).
86
+ */
87
+ static getAuthConfig(): DyNTS_ErrorsController_AuthConfig;
88
+ /**
89
+ * Test-only: visszaallitja az auth config-ot ures objektumra. Production code NE hivja.
90
+ */
91
+ static _resetAuthConfigForTesting(): void;
92
+ /**
93
+ * Vissza-adja az adott endpoint-hoz tartozo `preProcesses` array-t.
94
+ * Ha az auth NINCS configurolva (default) vagy az endpoint nincs a
95
+ * `protectedEndpoints` listan, ures array-t ad vissza.
96
+ */
97
+ protected getPreProcessesFor(endpointName: string): ((req: Request, res: Response) => Promise<void>)[];
34
98
  setupEndpoints(): void;
35
99
  }
36
100
  //# sourceMappingURL=errors.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.controller.d.ts","sourceRoot":"","sources":["../../../../src/_modules/server/errors/errors.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,UAAU,EAAqB,WAAW,EAAqB,MAAM,uBAAuB,CAAC;AAClH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+DAA+D,CAAC;AACtG,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAGvE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,8BAAsB,uBAAuB,CAC3C,OAAO,SAAS,UAAU,EAC1B,QAAQ,SAAS,WAAW,CAAC,OAAO,CAAC,EACrC,sBAAsB,SAAS,2BAA2B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAC7E,SAAQ,gBAAgB;IAOxB,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CACxC,GAAG,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACtC,sBAAsB;IACzB,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,CAAM;IAErE,cAAc,IAAI,IAAI;CAqNvB"}
1
+ {"version":3,"file":"errors.controller.d.ts","sourceRoot":"","sources":["../../../../src/_modules/server/errors/errors.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAc,UAAU,EAAqB,WAAW,EAAqB,MAAM,uBAAuB,CAAC;AAClH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+DAA+D,CAAC;AACtG,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAIvE;;;;;;;;;GASG;AACH,MAAM,WAAW,iCAAiC;IAChD;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAcD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,8BAAsB,uBAAuB,CAC3C,OAAO,SAAS,UAAU,EAC1B,QAAQ,SAAS,WAAW,CAAC,OAAO,CAAC,EACrC,sBAAsB,SAAS,2BAA2B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAC7E,SAAQ,gBAAgB;IAOxB,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CACxC,GAAG,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACtC,sBAAsB;IACzB,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,CAAM;IAErE;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,iCAAiC,CAAM;IAEpE;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,iCAAiC,GAAG,IAAI;IAIjE;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,iCAAiC;IAIzD;;OAEG;IACH,MAAM,CAAC,0BAA0B,IAAI,IAAI;IAIzC;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;IAOtG,cAAc,IAAI,IAAI;CA6NvB"}
@@ -5,6 +5,16 @@ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
5
  const controller_service_1 = require("../../../_services/route/controller.service");
6
6
  const endpoint_params_control_model_1 = require("../../../_models/control-models/endpoint-params.control-model");
7
7
  const global_settings_const_1 = require("../../../_collections/global-settings.const");
8
+ /**
9
+ * Az osszes built-in endpoint neve — a `configure({ protectedEndpoints })`
10
+ * default-jat es a config validacio-t segiti.
11
+ */
12
+ const ALL_ENDPOINT_NAMES = [
13
+ 'logError', 'newError',
14
+ 'markErrorDone', 'markAllErrorDone',
15
+ 'getErrors', 'getErrorsPaged', 'getLastErrors',
16
+ 'searchErrors',
17
+ ];
8
18
  /**
9
19
  * Endpoints:
10
20
  *
@@ -33,6 +43,54 @@ const global_settings_const_1 = require("../../../_collections/global-settings.c
33
43
  //
34
44
  class DyNTS_Errors_Controller extends controller_service_1.DyNTS_Controller {
35
45
  additionalEndpoints = [];
46
+ /**
47
+ * Static auth config — opt-in retrofit. Default ures objektum → NO auth
48
+ * (a meglevo integraciok valtoznatlan viselkedessel folytatodnak).
49
+ */
50
+ static authConfig = {};
51
+ /**
52
+ * Static config setter. Hivhato barmikor a szerver startup-jan az endpoint
53
+ * registration ELOTT.
54
+ *
55
+ * Use case (host app):
56
+ * ```ts
57
+ * const adminAuth = DyNTS_AdminApiKey_AuthService.getInstance();
58
+ * DyNTS_Errors_Controller.configure({ authPreProcess: adminAuth.verify });
59
+ * // vagy fine-grained:
60
+ * DyNTS_Errors_Controller.configure({
61
+ * authPreProcess: adminAuth.verify,
62
+ * protectedEndpoints: ['markAllErrorDone', 'logError'],
63
+ * });
64
+ * ```
65
+ */
66
+ static configure(config) {
67
+ DyNTS_Errors_Controller.authConfig = config;
68
+ }
69
+ /**
70
+ * Aktualis auth config olvasasa (test/diagnosztika celokra).
71
+ */
72
+ static getAuthConfig() {
73
+ return DyNTS_Errors_Controller.authConfig;
74
+ }
75
+ /**
76
+ * Test-only: visszaallitja az auth config-ot ures objektumra. Production code NE hivja.
77
+ */
78
+ static _resetAuthConfigForTesting() {
79
+ DyNTS_Errors_Controller.authConfig = {};
80
+ }
81
+ /**
82
+ * Vissza-adja az adott endpoint-hoz tartozo `preProcesses` array-t.
83
+ * Ha az auth NINCS configurolva (default) vagy az endpoint nincs a
84
+ * `protectedEndpoints` listan, ures array-t ad vissza.
85
+ */
86
+ getPreProcessesFor(endpointName) {
87
+ const cfg = DyNTS_Errors_Controller.authConfig;
88
+ if (!cfg.authPreProcess) {
89
+ return [];
90
+ }
91
+ const protectedNames = cfg.protectedEndpoints ?? ALL_ENDPOINT_NAMES;
92
+ return protectedNames.includes(endpointName) ? [cfg.authPreProcess] : [];
93
+ }
36
94
  setupEndpoints() {
37
95
  /* if (!this.getErrorDataService) {
38
96
  throw new DyFM_Error({
@@ -51,6 +109,7 @@ class DyNTS_Errors_Controller extends controller_service_1.DyNTS_Controller {
51
109
  name: 'logError',
52
110
  type: fsm_dynamo_1.DyFM_HttpCallType.post,
53
111
  endpoint: '/error/log',
112
+ preProcesses: this.getPreProcessesFor('logError'),
54
113
  tasks: [
55
114
  async (req, res, issuer = 'unknown-issuer') => {
56
115
  const error_CS = this.getError_ControlService({
@@ -67,6 +126,7 @@ class DyNTS_Errors_Controller extends controller_service_1.DyNTS_Controller {
67
126
  name: 'newError',
68
127
  type: fsm_dynamo_1.DyFM_HttpCallType.post,
69
128
  endpoint: '/error/new',
129
+ preProcesses: this.getPreProcessesFor('newError'),
70
130
  tasks: [
71
131
  async (req, res, issuer = 'unknown-issuer') => {
72
132
  const error_CS = this.getError_ControlService({
@@ -83,6 +143,7 @@ class DyNTS_Errors_Controller extends controller_service_1.DyNTS_Controller {
83
143
  name: 'markErrorDone',
84
144
  type: fsm_dynamo_1.DyFM_HttpCallType.get,
85
145
  endpoint: '/error/mark-done/:errorId',
146
+ preProcesses: this.getPreProcessesFor('markErrorDone'),
86
147
  tasks: [
87
148
  async (req, res, issuer = 'unknown-issuer') => {
88
149
  const error_CS = this.getError_ControlService({
@@ -99,6 +160,7 @@ class DyNTS_Errors_Controller extends controller_service_1.DyNTS_Controller {
99
160
  name: 'markAllErrorDone',
100
161
  type: fsm_dynamo_1.DyFM_HttpCallType.get,
101
162
  endpoint: '/error/mark-all-done',
163
+ preProcesses: this.getPreProcessesFor('markAllErrorDone'),
102
164
  tasks: [
103
165
  async (req, res, issuer = 'unknown-issuer') => {
104
166
  const error_CS = this.getError_ControlService({
@@ -134,6 +196,7 @@ class DyNTS_Errors_Controller extends controller_service_1.DyNTS_Controller {
134
196
  name: 'getErrors',
135
197
  type: fsm_dynamo_1.DyFM_HttpCallType.get,
136
198
  endpoint: '/error/get-range/:range',
199
+ preProcesses: this.getPreProcessesFor('getErrors'),
137
200
  tasks: [
138
201
  async (req, res, issuer = 'unknown-issuer') => {
139
202
  const error_CS = this.getError_ControlService({
@@ -147,6 +210,7 @@ class DyNTS_Errors_Controller extends controller_service_1.DyNTS_Controller {
147
210
  name: 'getErrorsPaged',
148
211
  type: fsm_dynamo_1.DyFM_HttpCallType.get,
149
212
  endpoint: '/error/get-paged/:range/:pageSize/:pageIndex',
213
+ preProcesses: this.getPreProcessesFor('getErrorsPaged'),
150
214
  tasks: [
151
215
  async (req, res, issuer = 'unknown-issuer') => {
152
216
  const error_CS = this.getError_ControlService({
@@ -167,6 +231,7 @@ class DyNTS_Errors_Controller extends controller_service_1.DyNTS_Controller {
167
231
  name: 'getLastErrors',
168
232
  type: fsm_dynamo_1.DyFM_HttpCallType.get,
169
233
  endpoint: '/error/get-last-paged/:range/:pageSize/:pageIndex',
234
+ preProcesses: this.getPreProcessesFor('getLastErrors'),
170
235
  tasks: [
171
236
  async (req, res, issuer = 'unknown-issuer') => {
172
237
  const error_CS = this.getError_ControlService({
@@ -187,6 +252,7 @@ class DyNTS_Errors_Controller extends controller_service_1.DyNTS_Controller {
187
252
  name: 'searchErrors',
188
253
  type: fsm_dynamo_1.DyFM_HttpCallType.get,
189
254
  endpoint: '/error/search',
255
+ preProcesses: this.getPreProcessesFor('searchErrors'),
190
256
  tasks: [
191
257
  async (req, res, issuer = 'unknown-issuer') => {
192
258
  const error_CS = this.getError_ControlService({
@@ -1 +1 @@
1
- {"version":3,"file":"errors.controller.js","sourceRoot":"","sources":["../../../../src/_modules/server/errors/errors.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.controller.js","sourceRoot":"","sources":["../../../../src/_modules/server/errors/errors.controller.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/nts-dynamo",
3
- "version": "01.15.20",
3
+ "version": "01.15.23",
4
4
  "description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "server-package",
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Egy log fajl meta-adata a listazasban.
3
+ */
4
+ export interface DyNTS_FileLog_Entry {
5
+ /** Fajlnev (csak basename — NEM teljes path). */
6
+ name: string;
7
+ /** Fajlmeret byte-ban. */
8
+ sizeBytes: number;
9
+ /** Modositasi ido ms-ban (mtimeMs). */
10
+ mtimeMs: number;
11
+ /** Igaz, ha ez az aktualis aktiv session fajlja. */
12
+ isCurrent: boolean;
13
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * `readLogFile()` valaszobjektum.
3
+ */
4
+ export interface DyNTS_FileLog_ReadResult {
5
+ /** Fajlnev (csak basename). */
6
+ name: string;
7
+ /** Teljes fajlmeret byte-ban. */
8
+ sizeBytes: number;
9
+ /** A fajlban talalhato osszes sor szama. */
10
+ totalLines: number;
11
+ /** A visszaadott sorok. */
12
+ lines: string[];
13
+ /** Mod amiben olvastunk: 'tail' | 'head' | 'range'. */
14
+ mode: 'tail' | 'head' | 'range';
15
+ /** Visszaadott tartomany 1-based start (range/tail/head normalizalva). */
16
+ rangeStart: number;
17
+ /** Visszaadott tartomany 1-based end (inclusive). */
18
+ rangeEnd: number;
19
+ }
20
+
21
+
22
+ /**
23
+ * `readLogFile(name, options)` opciok.
24
+ *
25
+ * Egyetlen mod aktiv egyszerre. Prioritas: range > head > tail.
26
+ * Egyik sem megadott → default `tail: 200`.
27
+ */
28
+ export interface DyNTS_FileLog_ReadOptions {
29
+ /** Utolso N sor (default mod ha semmi mas nincs). */
30
+ tail?: number;
31
+ /** Elso N sor. */
32
+ head?: number;
33
+ /** 1-based line range start (inclusive). `rangeEnd` is kell. */
34
+ rangeStart?: number;
35
+ /** 1-based line range end (inclusive). */
36
+ rangeEnd?: number;
37
+ }