@futdevpro/nts-dynamo 1.15.129 → 1.15.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dynamo/logs/cicd-pipeline/output.log +1559 -1551
- package/.dynamo/logs/cicd-pipeline/status.json +29 -29
- package/build/_modules/server/errors/errors.controller.d.ts +29 -0
- package/build/_modules/server/errors/errors.controller.d.ts.map +1 -1
- package/build/_modules/server/errors/errors.controller.js +27 -5
- package/build/_modules/server/errors/errors.controller.js.map +1 -1
- package/package.json +2 -2
- package/src/_modules/server/errors/errors.controller.spec.ts +73 -1
- package/src/_modules/server/errors/errors.controller.ts +48 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"pid":
|
|
3
|
-
"startedAt": "2026-08-
|
|
4
|
-
"startedAtMs":
|
|
2
|
+
"pid": 14071,
|
|
3
|
+
"startedAt": "2026-08-07T04:02:00.555Z",
|
|
4
|
+
"startedAtMs": 1786075320555,
|
|
5
5
|
"phase": "npm-publish",
|
|
6
6
|
"pipelineComplete": false,
|
|
7
7
|
"serverRunning": false,
|
|
@@ -10,63 +10,63 @@
|
|
|
10
10
|
"steps": {
|
|
11
11
|
"validate-secrets": {
|
|
12
12
|
"status": "ok",
|
|
13
|
-
"startedAt": "2026-08-
|
|
13
|
+
"startedAt": "2026-08-07T04:02:00.577Z",
|
|
14
14
|
"logLineStart": 2,
|
|
15
15
|
"logLineEnd": 8,
|
|
16
|
-
"durationSec": 0.
|
|
16
|
+
"durationSec": 0.2
|
|
17
17
|
},
|
|
18
18
|
"discord-start": {
|
|
19
19
|
"status": "ok",
|
|
20
|
-
"startedAt": "2026-08-
|
|
20
|
+
"startedAt": "2026-08-07T04:02:01.818Z",
|
|
21
21
|
"logLineStart": 9,
|
|
22
22
|
"logLineEnd": 14,
|
|
23
|
-
"durationSec":
|
|
23
|
+
"durationSec": 3.1
|
|
24
24
|
},
|
|
25
25
|
"pre-flight": {
|
|
26
26
|
"status": "ok",
|
|
27
|
-
"startedAt": "2026-08-
|
|
27
|
+
"startedAt": "2026-08-07T04:02:05.927Z",
|
|
28
28
|
"logLineStart": 15,
|
|
29
29
|
"logLineEnd": 17,
|
|
30
|
-
"durationSec": 0.
|
|
30
|
+
"durationSec": 0.9
|
|
31
31
|
},
|
|
32
32
|
"install": {
|
|
33
33
|
"status": "ok",
|
|
34
|
-
"startedAt": "2026-08-
|
|
34
|
+
"startedAt": "2026-08-07T04:02:08.178Z",
|
|
35
35
|
"logLineStart": 18,
|
|
36
|
-
"logLineEnd":
|
|
37
|
-
"durationSec":
|
|
36
|
+
"logLineEnd": 113,
|
|
37
|
+
"durationSec": 26
|
|
38
38
|
},
|
|
39
39
|
"check-dev-leftovers": {
|
|
40
40
|
"status": "ok",
|
|
41
|
-
"startedAt": "2026-08-
|
|
42
|
-
"logLineStart":
|
|
43
|
-
"logLineEnd":
|
|
44
|
-
"durationSec":
|
|
41
|
+
"startedAt": "2026-08-07T04:02:35.211Z",
|
|
42
|
+
"logLineStart": 114,
|
|
43
|
+
"logLineEnd": 121,
|
|
44
|
+
"durationSec": 5.2
|
|
45
45
|
},
|
|
46
46
|
"build": {
|
|
47
47
|
"status": "ok",
|
|
48
|
-
"startedAt": "2026-08-
|
|
49
|
-
"logLineStart":
|
|
50
|
-
"logLineEnd":
|
|
51
|
-
"durationSec":
|
|
48
|
+
"startedAt": "2026-08-07T04:02:41.448Z",
|
|
49
|
+
"logLineStart": 122,
|
|
50
|
+
"logLineEnd": 123,
|
|
51
|
+
"durationSec": 32.5
|
|
52
52
|
},
|
|
53
53
|
"test": {
|
|
54
54
|
"status": "ok",
|
|
55
|
-
"startedAt": "2026-08-
|
|
56
|
-
"logLineStart":
|
|
57
|
-
"logLineEnd":
|
|
58
|
-
"durationSec":
|
|
55
|
+
"startedAt": "2026-08-07T04:03:14.990Z",
|
|
56
|
+
"logLineStart": 124,
|
|
57
|
+
"logLineEnd": 2854,
|
|
58
|
+
"durationSec": 36.1,
|
|
59
59
|
"testSummary": {
|
|
60
|
-
"totalSpecs":
|
|
60
|
+
"totalSpecs": 1627,
|
|
61
61
|
"failures": 0,
|
|
62
|
-
"passed":
|
|
63
|
-
"testDurationSec":
|
|
62
|
+
"passed": 1627,
|
|
63
|
+
"testDurationSec": 7.071
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
66
|
"npm-publish": {
|
|
67
67
|
"status": "running",
|
|
68
|
-
"startedAt": "2026-08-
|
|
69
|
-
"logLineStart":
|
|
68
|
+
"startedAt": "2026-08-07T04:03:52.115Z",
|
|
69
|
+
"logLineStart": 2855,
|
|
70
70
|
"logLineEnd": null,
|
|
71
71
|
"durationSec": null
|
|
72
72
|
}
|
|
@@ -31,7 +31,36 @@ export interface DyNTS_ErrorsController_AuthConfig {
|
|
|
31
31
|
* getErrorsByCategoryPaged, getErrorsByStatusPaged, getLastErrors, searchErrors).
|
|
32
32
|
*/
|
|
33
33
|
protectedEndpoints?: string[];
|
|
34
|
+
/**
|
|
35
|
+
* OPCIONALIS gyengebb-credential kapu az OLVASO endpointokra
|
|
36
|
+
* (`DyNTS_ERRORS_READ_ENDPOINTS`).
|
|
37
|
+
*
|
|
38
|
+
* MIERT (2026-08-07): a `configure()` eddig EGYETLEN `authPreProcess`-t engedett az OSSZES
|
|
39
|
+
* vedett endpointra — olvasokra ES irokra egyarant. Emiatt a host-app nem tudott kulon,
|
|
40
|
+
* gyengebb (pl. read-scope-u) credentialt elfogadni a hibalista OLVASASAHOZ anelkul, hogy
|
|
41
|
+
* ugyanaz a credential a TORLO endpointokat (`markErrorDone` / `markAllErrorDone` /
|
|
42
|
+
* `resolveError`) is megnyitna => jogosultsag-eszkalacio.
|
|
43
|
+
*
|
|
44
|
+
* A korabbi kerulout az volt, hogy a host-app URL-UTVONALRA illesztve ujra-szarmaztatta,
|
|
45
|
+
* melyik endpoint olvas — ami DUPLIKALTA az itteni endpoint-listat es a read/ir szemantikat
|
|
46
|
+
* (SSOT-sertes: az endpointjait a controller ismeri, nem a hivo). Ezert a szetvalasztas
|
|
47
|
+
* ITT, a tulajdonosnal el.
|
|
48
|
+
*
|
|
49
|
+
* Ha meg van adva, az OLVASO endpointok EZT hasznaljak az `authPreProcess` helyett; minden
|
|
50
|
+
* mas vedett endpoint valtozatlanul az `authPreProcess`-t. Ha hianyzik, a viselkedes
|
|
51
|
+
* PONTOSAN a regi (minden vedett endpoint az `authPreProcess`-t kapja) — backward-compatible.
|
|
52
|
+
*/
|
|
53
|
+
readAuthPreProcess?: (req: Request, res: Response) => Promise<void>;
|
|
34
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* IRO (allapot-valtoztato) built-in endpointok.
|
|
57
|
+
*
|
|
58
|
+
* A read/ir szetvalasztas SSOT-ja: a controller sajat maga deklaralja az endpointjait, ezert
|
|
59
|
+
* o tudja, melyik melyik. A hivo host-app SOHA ne szarmaztassa ujra (pl. URL-mintabol).
|
|
60
|
+
*/
|
|
61
|
+
export declare const DyNTS_ERRORS_WRITE_ENDPOINTS: string[];
|
|
62
|
+
/** OLVASO (csak lekerdezo) built-in endpointok. Lasd `DyNTS_ERRORS_WRITE_ENDPOINTS`. */
|
|
63
|
+
export declare const DyNTS_ERRORS_READ_ENDPOINTS: string[];
|
|
35
64
|
/**
|
|
36
65
|
* Endpoints:
|
|
37
66
|
*
|
|
@@ -1 +1 @@
|
|
|
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;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
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;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE;AAGD;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,EAIhD,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,2BAA2B,EAAE,MAAM,EAG/C,CAAC;AAWF;;;;;;;;;;;;;;;;;;;;;;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;IAetG;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;IAYvG,cAAc,IAAI,IAAI;CAgVvB"}
|
|
@@ -1,21 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DyNTS_Errors_Controller = void 0;
|
|
3
|
+
exports.DyNTS_Errors_Controller = exports.DyNTS_ERRORS_READ_ENDPOINTS = exports.DyNTS_ERRORS_WRITE_ENDPOINTS = void 0;
|
|
4
4
|
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
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* IRO (allapot-valtoztato) built-in endpointok.
|
|
10
|
+
*
|
|
11
|
+
* A read/ir szetvalasztas SSOT-ja: a controller sajat maga deklaralja az endpointjait, ezert
|
|
12
|
+
* o tudja, melyik melyik. A hivo host-app SOHA ne szarmaztassa ujra (pl. URL-mintabol).
|
|
11
13
|
*/
|
|
12
|
-
|
|
14
|
+
exports.DyNTS_ERRORS_WRITE_ENDPOINTS = [
|
|
13
15
|
'logError', 'newError',
|
|
14
16
|
'markErrorDone', 'markAllErrorDone',
|
|
15
17
|
'recordFixAttempt', 'resolveError',
|
|
18
|
+
];
|
|
19
|
+
/** OLVASO (csak lekerdezo) built-in endpointok. Lasd `DyNTS_ERRORS_WRITE_ENDPOINTS`. */
|
|
20
|
+
exports.DyNTS_ERRORS_READ_ENDPOINTS = [
|
|
16
21
|
'getErrors', 'getErrorsPaged', 'getErrorsByCategoryPaged', 'getErrorsByStatusPaged', 'getLastErrors',
|
|
17
22
|
'searchErrors',
|
|
18
23
|
];
|
|
24
|
+
/**
|
|
25
|
+
* Az osszes built-in endpoint neve — a `configure({ protectedEndpoints })`
|
|
26
|
+
* default-jat es a config validacio-t segiti.
|
|
27
|
+
*
|
|
28
|
+
* SZARMAZTATOTT, NEM kezzel karbantartott: a ket fenti lista osszege. Igy egy uj endpoint
|
|
29
|
+
* felvetelekor nem lehet elfelejteni beirni ide (a ket lista az egyetlen igazsag-forras).
|
|
30
|
+
*/
|
|
31
|
+
const ALL_ENDPOINT_NAMES = [...exports.DyNTS_ERRORS_WRITE_ENDPOINTS, ...exports.DyNTS_ERRORS_READ_ENDPOINTS];
|
|
19
32
|
/**
|
|
20
33
|
* Endpoints:
|
|
21
34
|
*
|
|
@@ -90,7 +103,16 @@ class DyNTS_Errors_Controller extends controller_service_1.DyNTS_Controller {
|
|
|
90
103
|
return [];
|
|
91
104
|
}
|
|
92
105
|
const protectedNames = cfg.protectedEndpoints ?? ALL_ENDPOINT_NAMES;
|
|
93
|
-
|
|
106
|
+
if (!protectedNames.includes(endpointName)) {
|
|
107
|
+
return [];
|
|
108
|
+
}
|
|
109
|
+
// 2026-08-07 — opcionalis read/ir szetvalasztas. A dontes ENDPOINT-NEV alapjan tortenik (a
|
|
110
|
+
// controller sajat SSOT-ja), NEM URL-mintabol. Ha a host-app nem ad `readAuthPreProcess`-t,
|
|
111
|
+
// a viselkedes valtozatlan: minden vedett endpoint az `authPreProcess`-t kapja.
|
|
112
|
+
if (cfg.readAuthPreProcess && exports.DyNTS_ERRORS_READ_ENDPOINTS.includes(endpointName)) {
|
|
113
|
+
return [cfg.readAuthPreProcess];
|
|
114
|
+
}
|
|
115
|
+
return [cfg.authPreProcess];
|
|
94
116
|
}
|
|
95
117
|
/**
|
|
96
118
|
* FR-263 (2026-06-26) — LAZY, REQUEST-IDŐBEN kiértékelt guard-wrapper.
|
|
@@ -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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/nts-dynamo",
|
|
3
|
-
"version": "01.15.
|
|
3
|
+
"version": "01.15.130",
|
|
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",
|
|
@@ -412,7 +412,7 @@
|
|
|
412
412
|
}
|
|
413
413
|
},
|
|
414
414
|
"devDependencies": {
|
|
415
|
-
"@futdevpro/dynamo-eslint": "1.15.
|
|
415
|
+
"@futdevpro/dynamo-eslint": "1.15.22",
|
|
416
416
|
"@discordjs/opus": "^0.10.0",
|
|
417
417
|
"@discordjs/voice": "^0.18.0",
|
|
418
418
|
"@types/jasmine": "~4.3.5",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { DyNTS_Errors_Controller } from './errors.controller';
|
|
2
|
+
import { DyNTS_Errors_Controller, DyNTS_ERRORS_READ_ENDPOINTS, DyNTS_ERRORS_WRITE_ENDPOINTS } from './errors.controller';
|
|
3
3
|
import { DyFM_Error, DyFM_Errors, DyFM_HttpCallType, DyFM_RelativeDate } from '@futdevpro/fsm-dynamo';
|
|
4
4
|
import { DyNTS_Errors_ControlService } from './errors.control-service';
|
|
5
5
|
import { DyNTS_Endpoint_Params } from '../../../_models/control-models/endpoint-params.control-model';
|
|
@@ -264,5 +264,77 @@ describe('| DyNTS_Errors_Controller', () => {
|
|
|
264
264
|
expect(cfg.authPreProcess).toBeUndefined();
|
|
265
265
|
});
|
|
266
266
|
});
|
|
267
|
+
|
|
268
|
+
describe('| read/ir auth szetvalasztas (2026-08-07)', (): void => {
|
|
269
|
+
afterEach((): void => {
|
|
270
|
+
DyNTS_Errors_Controller._resetAuthConfigForTesting();
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
const lazyWrapperOf = (c: any, name: string): ((req: any, res: any) => Promise<void>) | undefined => {
|
|
274
|
+
const ep: any = c.endpoints.find((e: any) => e.name === name);
|
|
275
|
+
return ep?.preProcesses?.[0];
|
|
276
|
+
};
|
|
277
|
+
const mockReqRes = (): { req: any; res: any } => ({ req: {} as any, res: { headersSent: false } as any });
|
|
278
|
+
|
|
279
|
+
/** Egy kerest kuld MINDEN felsorolt endpointra, es visszaadja melyik kaput hivta meg hanyszor. */
|
|
280
|
+
const runAll = async (c: any, names: string[]): Promise<void> => {
|
|
281
|
+
for (const name of names) {
|
|
282
|
+
const w = lazyWrapperOf(c, name);
|
|
283
|
+
expect(w).withContext(`endpoint ${name} missing`).toBeDefined();
|
|
284
|
+
const { req, res } = mockReqRes();
|
|
285
|
+
await w!(req, res);
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
it('| readAuthPreProcess NELKUL a viselkedes VALTOZATLAN (backward-compatible)', async (): Promise<void> => {
|
|
290
|
+
let writeGate: number = 0;
|
|
291
|
+
DyNTS_Errors_Controller.configure({ authPreProcess: async (): Promise<void> => { writeGate++; } });
|
|
292
|
+
const c = new (TestErrorsController as any)();
|
|
293
|
+
c.setupEndpoints();
|
|
294
|
+
|
|
295
|
+
await runAll(c, [...DyNTS_ERRORS_WRITE_ENDPOINTS, ...DyNTS_ERRORS_READ_ENDPOINTS]);
|
|
296
|
+
|
|
297
|
+
// Minden vedett endpoint az egyetlen kaput hasznalja — pontosan a regi mukodes.
|
|
298
|
+
expect(writeGate).toBe(DyNTS_ERRORS_WRITE_ENDPOINTS.length + DyNTS_ERRORS_READ_ENDPOINTS.length);
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
it('| readAuthPreProcess-szel az OLVASOK azt kapjak, az IROK az authPreProcess-t', async (): Promise<void> => {
|
|
302
|
+
let writeGate: number = 0;
|
|
303
|
+
let readGate: number = 0;
|
|
304
|
+
DyNTS_Errors_Controller.configure({
|
|
305
|
+
authPreProcess: async (): Promise<void> => { writeGate++; },
|
|
306
|
+
readAuthPreProcess: async (): Promise<void> => { readGate++; },
|
|
307
|
+
});
|
|
308
|
+
const c = new (TestErrorsController as any)();
|
|
309
|
+
c.setupEndpoints();
|
|
310
|
+
|
|
311
|
+
await runAll(c, DyNTS_ERRORS_READ_ENDPOINTS);
|
|
312
|
+
expect(readGate).withContext('olvasok a read-kaput hivjak').toBe(DyNTS_ERRORS_READ_ENDPOINTS.length);
|
|
313
|
+
expect(writeGate).withContext('olvasok NEM hivjak az ir-kaput').toBe(0);
|
|
314
|
+
|
|
315
|
+
readGate = 0;
|
|
316
|
+
await runAll(c, DyNTS_ERRORS_WRITE_ENDPOINTS);
|
|
317
|
+
expect(writeGate).withContext('irok az ir-kaput hivjak').toBe(DyNTS_ERRORS_WRITE_ENDPOINTS.length);
|
|
318
|
+
expect(readGate).withContext('BIZTONSAG: az IROK SOHA nem kapjak a gyengebb read-kaput').toBe(0);
|
|
319
|
+
});
|
|
320
|
+
|
|
321
|
+
it('| a ket endpoint-lista diszjunkt es lefedi a teljes built-in halmazt', (): void => {
|
|
322
|
+
const overlap: string[] = DyNTS_ERRORS_READ_ENDPOINTS.filter(
|
|
323
|
+
(name: string): boolean => DyNTS_ERRORS_WRITE_ENDPOINTS.includes(name),
|
|
324
|
+
);
|
|
325
|
+
expect(overlap).withContext('egy endpoint nem lehet egyszerre olvaso ES iro').toEqual([]);
|
|
326
|
+
|
|
327
|
+
// A `protectedEndpoints` default-ja a ket lista osszege — ha egy uj endpoint egyikbe sem
|
|
328
|
+
// kerul be, ez a teszt NEM fogja elkapni, de a setupEndpoints-os tesztek igen (hianyzo guard).
|
|
329
|
+
const c = new (TestErrorsController as any)();
|
|
330
|
+
c.setupEndpoints();
|
|
331
|
+
const declared: string[] = c.endpoints.map((e: any): string => e.name);
|
|
332
|
+
const classified: string[] = [...DyNTS_ERRORS_WRITE_ENDPOINTS, ...DyNTS_ERRORS_READ_ENDPOINTS];
|
|
333
|
+
const unclassified: string[] = declared.filter(
|
|
334
|
+
(name: string): boolean => !classified.includes(name) && !name.startsWith('test'),
|
|
335
|
+
);
|
|
336
|
+
expect(unclassified).withContext('minden built-in endpoint besorolva').toEqual([]);
|
|
337
|
+
});
|
|
338
|
+
});
|
|
267
339
|
});
|
|
268
340
|
|
|
@@ -37,21 +37,57 @@ export interface DyNTS_ErrorsController_AuthConfig {
|
|
|
37
37
|
* getErrorsByCategoryPaged, getErrorsByStatusPaged, getLastErrors, searchErrors).
|
|
38
38
|
*/
|
|
39
39
|
protectedEndpoints?: string[];
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* OPCIONALIS gyengebb-credential kapu az OLVASO endpointokra
|
|
43
|
+
* (`DyNTS_ERRORS_READ_ENDPOINTS`).
|
|
44
|
+
*
|
|
45
|
+
* MIERT (2026-08-07): a `configure()` eddig EGYETLEN `authPreProcess`-t engedett az OSSZES
|
|
46
|
+
* vedett endpointra — olvasokra ES irokra egyarant. Emiatt a host-app nem tudott kulon,
|
|
47
|
+
* gyengebb (pl. read-scope-u) credentialt elfogadni a hibalista OLVASASAHOZ anelkul, hogy
|
|
48
|
+
* ugyanaz a credential a TORLO endpointokat (`markErrorDone` / `markAllErrorDone` /
|
|
49
|
+
* `resolveError`) is megnyitna => jogosultsag-eszkalacio.
|
|
50
|
+
*
|
|
51
|
+
* A korabbi kerulout az volt, hogy a host-app URL-UTVONALRA illesztve ujra-szarmaztatta,
|
|
52
|
+
* melyik endpoint olvas — ami DUPLIKALTA az itteni endpoint-listat es a read/ir szemantikat
|
|
53
|
+
* (SSOT-sertes: az endpointjait a controller ismeri, nem a hivo). Ezert a szetvalasztas
|
|
54
|
+
* ITT, a tulajdonosnal el.
|
|
55
|
+
*
|
|
56
|
+
* Ha meg van adva, az OLVASO endpointok EZT hasznaljak az `authPreProcess` helyett; minden
|
|
57
|
+
* mas vedett endpoint valtozatlanul az `authPreProcess`-t. Ha hianyzik, a viselkedes
|
|
58
|
+
* PONTOSAN a regi (minden vedett endpoint az `authPreProcess`-t kapja) — backward-compatible.
|
|
59
|
+
*/
|
|
60
|
+
readAuthPreProcess?: (req: Request, res: Response) => Promise<void>;
|
|
40
61
|
}
|
|
41
62
|
|
|
42
63
|
|
|
43
64
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
65
|
+
* IRO (allapot-valtoztato) built-in endpointok.
|
|
66
|
+
*
|
|
67
|
+
* A read/ir szetvalasztas SSOT-ja: a controller sajat maga deklaralja az endpointjait, ezert
|
|
68
|
+
* o tudja, melyik melyik. A hivo host-app SOHA ne szarmaztassa ujra (pl. URL-mintabol).
|
|
46
69
|
*/
|
|
47
|
-
const
|
|
70
|
+
export const DyNTS_ERRORS_WRITE_ENDPOINTS: string[] = [
|
|
48
71
|
'logError', 'newError',
|
|
49
72
|
'markErrorDone', 'markAllErrorDone',
|
|
50
73
|
'recordFixAttempt', 'resolveError',
|
|
74
|
+
];
|
|
75
|
+
|
|
76
|
+
/** OLVASO (csak lekerdezo) built-in endpointok. Lasd `DyNTS_ERRORS_WRITE_ENDPOINTS`. */
|
|
77
|
+
export const DyNTS_ERRORS_READ_ENDPOINTS: string[] = [
|
|
51
78
|
'getErrors', 'getErrorsPaged', 'getErrorsByCategoryPaged', 'getErrorsByStatusPaged', 'getLastErrors',
|
|
52
79
|
'searchErrors',
|
|
53
80
|
];
|
|
54
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Az osszes built-in endpoint neve — a `configure({ protectedEndpoints })`
|
|
84
|
+
* default-jat es a config validacio-t segiti.
|
|
85
|
+
*
|
|
86
|
+
* SZARMAZTATOTT, NEM kezzel karbantartott: a ket fenti lista osszege. Igy egy uj endpoint
|
|
87
|
+
* felvetelekor nem lehet elfelejteni beirni ide (a ket lista az egyetlen igazsag-forras).
|
|
88
|
+
*/
|
|
89
|
+
const ALL_ENDPOINT_NAMES: string[] = [...DyNTS_ERRORS_WRITE_ENDPOINTS, ...DyNTS_ERRORS_READ_ENDPOINTS];
|
|
90
|
+
|
|
55
91
|
/**
|
|
56
92
|
* Endpoints:
|
|
57
93
|
*
|
|
@@ -142,7 +178,15 @@ export abstract class DyNTS_Errors_Controller<
|
|
|
142
178
|
const cfg: DyNTS_ErrorsController_AuthConfig = DyNTS_Errors_Controller.authConfig;
|
|
143
179
|
if (!cfg.authPreProcess) { return []; }
|
|
144
180
|
const protectedNames: string[] = cfg.protectedEndpoints ?? ALL_ENDPOINT_NAMES;
|
|
145
|
-
|
|
181
|
+
if (!protectedNames.includes(endpointName)) { return []; }
|
|
182
|
+
|
|
183
|
+
// 2026-08-07 — opcionalis read/ir szetvalasztas. A dontes ENDPOINT-NEV alapjan tortenik (a
|
|
184
|
+
// controller sajat SSOT-ja), NEM URL-mintabol. Ha a host-app nem ad `readAuthPreProcess`-t,
|
|
185
|
+
// a viselkedes valtozatlan: minden vedett endpoint az `authPreProcess`-t kapja.
|
|
186
|
+
if (cfg.readAuthPreProcess && DyNTS_ERRORS_READ_ENDPOINTS.includes(endpointName)) {
|
|
187
|
+
return [cfg.readAuthPreProcess];
|
|
188
|
+
}
|
|
189
|
+
return [cfg.authPreProcess];
|
|
146
190
|
}
|
|
147
191
|
|
|
148
192
|
/**
|