@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.
- package/__documentations/2026-05-17-static-client-serving-howto.md +144 -0
- package/_specifications/BACKLOG.md +6 -6
- package/build/_modules/logs/_models/file-log-entry.interface.d.ts +14 -0
- package/build/_modules/logs/_models/file-log-entry.interface.d.ts.map +1 -0
- package/build/_modules/logs/_models/file-log-entry.interface.js +3 -0
- package/build/_modules/logs/_models/file-log-entry.interface.js.map +1 -0
- package/build/_modules/logs/_models/file-log-read-result.interface.d.ts +36 -0
- package/build/_modules/logs/_models/file-log-read-result.interface.d.ts.map +1 -0
- package/build/_modules/logs/_models/file-log-read-result.interface.js +3 -0
- package/build/_modules/logs/_models/file-log-read-result.interface.js.map +1 -0
- package/build/_modules/logs/file-log.service.d.ts +46 -0
- package/build/_modules/logs/file-log.service.d.ts.map +1 -1
- package/build/_modules/logs/file-log.service.js +178 -0
- package/build/_modules/logs/file-log.service.js.map +1 -1
- package/build/_modules/logs/file-logs.controller.d.ts +41 -0
- package/build/_modules/logs/file-logs.controller.d.ts.map +1 -0
- package/build/_modules/logs/file-logs.controller.js +139 -0
- package/build/_modules/logs/file-logs.controller.js.map +1 -0
- package/build/_modules/logs/get-file-logs-routing-module.util.d.ts +32 -0
- package/build/_modules/logs/get-file-logs-routing-module.util.d.ts.map +1 -0
- package/build/_modules/logs/get-file-logs-routing-module.util.js +38 -0
- package/build/_modules/logs/get-file-logs-routing-module.util.js.map +1 -0
- package/build/_modules/logs/index.d.ts +4 -0
- package/build/_modules/logs/index.d.ts.map +1 -1
- package/build/_modules/logs/index.js +5 -1
- package/build/_modules/logs/index.js.map +1 -1
- package/build/_modules/server/errors/errors.controller.d.ts +64 -0
- package/build/_modules/server/errors/errors.controller.d.ts.map +1 -1
- package/build/_modules/server/errors/errors.controller.js +66 -0
- package/build/_modules/server/errors/errors.controller.js.map +1 -1
- package/package.json +1 -1
- package/src/_modules/logs/_models/file-log-entry.interface.ts +13 -0
- package/src/_modules/logs/_models/file-log-read-result.interface.ts +37 -0
- package/src/_modules/logs/file-log.service.spec.ts +139 -0
- package/src/_modules/logs/file-log.service.ts +183 -0
- package/src/_modules/logs/file-logs.controller.spec.ts +245 -0
- package/src/_modules/logs/file-logs.controller.ts +165 -0
- package/src/_modules/logs/get-file-logs-routing-module.util.ts +51 -0
- package/src/_modules/logs/index.ts +7 -0
- package/src/_modules/server/errors/errors.controller.spec.ts +70 -0
- 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":"
|
|
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":";;;AAGA,sDAAkH;AAClH,oFAA+E;AAC/E,iHAAsG;AAEtG,uFAAoF;
|
|
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
|
@@ -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
|
+
}
|