@futdevpro/nts-dynamo 1.15.195 → 1.15.197
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/build/_collections/safe-remote-fetch.util.d.ts +101 -0
- package/build/_collections/safe-remote-fetch.util.d.ts.map +1 -0
- package/build/_collections/safe-remote-fetch.util.js +250 -0
- package/build/_collections/safe-remote-fetch.util.js.map +1 -0
- package/build/_models/control-models/endpoint-params.control-model.d.ts +53 -0
- package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/endpoint-params.control-model.js +109 -0
- package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/build/_models/interfaces/admission-shed.interface.d.ts +20 -0
- package/build/_models/interfaces/admission-shed.interface.d.ts.map +1 -0
- package/build/_models/interfaces/admission-shed.interface.js +3 -0
- package/build/_models/interfaces/admission-shed.interface.js.map +1 -0
- package/build/index.d.ts +4 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +4 -0
- package/build/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { URL } from 'url';
|
|
2
|
+
/**
|
|
3
|
+
* BFR-FSMED-013 — SSRF-safe, KORLÁTOS remote-metadata kliens.
|
|
4
|
+
*
|
|
5
|
+
* Egy nyilvános felületről érkező URL letöltése a klasszikus SSRF-felület: a szerver a saját
|
|
6
|
+
* hálózati pozíciójából kér le tetszőleges címet. A védelemnek ezért **minden DNS-válaszra és
|
|
7
|
+
* minden redirect-hopra** érvényesnek kell lennie, nem csak az első URL-re — különben egy
|
|
8
|
+
* **DNS-rebinding** vagy egy belső címre mutató redirect átviszi a kérést a privát hálózatba.
|
|
9
|
+
*
|
|
10
|
+
* Amit kikényszerít:
|
|
11
|
+
* - URL-normalizálás, credential-es URL (`user:pass@`) TILTVA;
|
|
12
|
+
* - protokoll-policy (alapból csak `https:`);
|
|
13
|
+
* - **minden** feloldott IP ellenőrzése (privát / loopback / link-local / reserved / CGNAT),
|
|
14
|
+
* IPv4-in-IPv6 és vegyes jelölés kezelésével;
|
|
15
|
+
* - redirect-limit, és **hopokként újra-ellenőrzött** cél;
|
|
16
|
+
* - timeout, maximális válasz-méret (bounded stream — a body sosem olvasható korlátlanul),
|
|
17
|
+
* engedélyezett content-type lista;
|
|
18
|
+
* - stabil `reason` kódok és REDAKTÁLT diagnosztika (a hibába nem kerül credential).
|
|
19
|
+
*/
|
|
20
|
+
/** Stabil, gépileg feldolgozható elutasítási okok. */
|
|
21
|
+
export declare enum DyNTS_SafeFetchReason_Type {
|
|
22
|
+
invalidUrl = "invalid-url",
|
|
23
|
+
credentialsInUrl = "credentials-in-url",
|
|
24
|
+
protocolNotAllowed = "protocol-not-allowed",
|
|
25
|
+
hostNotResolvable = "host-not-resolvable",
|
|
26
|
+
blockedAddress = "blocked-address",
|
|
27
|
+
tooManyRedirects = "too-many-redirects",
|
|
28
|
+
contentTypeNotAllowed = "content-type-not-allowed",
|
|
29
|
+
responseTooLarge = "response-too-large",
|
|
30
|
+
timeout = "timeout",
|
|
31
|
+
requestFailed = "request-failed"
|
|
32
|
+
}
|
|
33
|
+
/** A kliens beállításai — minden korlát explicit, alapértelmezés a szigorúbb. */
|
|
34
|
+
export interface DyNTS_SafeFetch_Options_Interface {
|
|
35
|
+
allowedProtocols?: string[];
|
|
36
|
+
maxRedirects?: number;
|
|
37
|
+
timeoutMs?: number;
|
|
38
|
+
maxResponseBytes?: number;
|
|
39
|
+
allowedContentTypes?: string[];
|
|
40
|
+
/** Injektálható DNS-feloldó — teszthez és a rebinding-mátrixhoz. */
|
|
41
|
+
resolve?: (hostname: string) => Promise<string[]>;
|
|
42
|
+
/** Injektálható transport — teszthez, illetve saját HTTP-réteghez (proxy, mTLS). */
|
|
43
|
+
transport?: DyNTS_SafeFetch_Transport;
|
|
44
|
+
}
|
|
45
|
+
/** Egyetlen HTTP-hop kimenete — a body itt MÁR korlátos. */
|
|
46
|
+
export interface DyNTS_SafeFetch_TransportResult_Interface {
|
|
47
|
+
status: number;
|
|
48
|
+
headers: Record<string, string | string[] | undefined>;
|
|
49
|
+
body: string;
|
|
50
|
+
bytes: number;
|
|
51
|
+
truncated: boolean;
|
|
52
|
+
}
|
|
53
|
+
/** Injektálható transport-szignatúra. */
|
|
54
|
+
export type DyNTS_SafeFetch_Transport = (url: URL, options: DyNTS_SafeFetch_Options_Interface) => Promise<DyNTS_SafeFetch_TransportResult_Interface>;
|
|
55
|
+
/** Sikeres letöltés eredménye — a body KORLÁTOS. */
|
|
56
|
+
export interface DyNTS_SafeFetch_Result_Interface {
|
|
57
|
+
finalUrl: string;
|
|
58
|
+
/** A bejárt hopok, az eredeti URL-lel kezdve — auditálható redirect-lánc. */
|
|
59
|
+
redirectChain: string[];
|
|
60
|
+
status: number;
|
|
61
|
+
contentType: string;
|
|
62
|
+
bytes: number;
|
|
63
|
+
body: string;
|
|
64
|
+
truncated: boolean;
|
|
65
|
+
}
|
|
66
|
+
/** Elutasítás — stabil kóddal és redaktált diagnosztikával. */
|
|
67
|
+
export declare class DyNTS_SafeFetch_Error extends Error {
|
|
68
|
+
readonly reason: DyNTS_SafeFetchReason_Type;
|
|
69
|
+
readonly diagnostic?: Record<string, unknown>;
|
|
70
|
+
constructor(reason: DyNTS_SafeFetchReason_Type, message: string, diagnostic?: Record<string, unknown>);
|
|
71
|
+
}
|
|
72
|
+
export declare class DyNTS_SafeRemoteFetch_Util {
|
|
73
|
+
private static readonly defaults;
|
|
74
|
+
/**
|
|
75
|
+
* IP-cím blokkolandó-e. IPv4 és IPv6 (a **IPv4-in-IPv6** alakkal együtt: `::ffff:10.0.0.1`).
|
|
76
|
+
*
|
|
77
|
+
* ⚠️ Ez a döntő pont: a hostnév ártalmatlan lehet, miközben egy KÜLSŐ DNS-szerver privát címre
|
|
78
|
+
* oldja fel (DNS-rebinding). Ezért a szűrés a FELOLDOTT CÍMEN történik, nem a néven.
|
|
79
|
+
*/
|
|
80
|
+
static isBlockedAddress(address: string): boolean;
|
|
81
|
+
/** Privát / loopback / link-local / reserved / CGNAT IPv4. */
|
|
82
|
+
private static isBlockedIpv4;
|
|
83
|
+
/** Loopback / link-local / unique-local / unspecified IPv6. */
|
|
84
|
+
private static isBlockedIpv6;
|
|
85
|
+
/** URL-normalizálás + protokoll- és credential-ellenőrzés. */
|
|
86
|
+
static assertUrlIsAllowed(rawUrl: string, options?: DyNTS_SafeFetch_Options_Interface): URL;
|
|
87
|
+
/** A host MINDEN feloldott címét ellenőrzi — egyetlen blokkolt cím is elutasít. */
|
|
88
|
+
static assertHostResolvesToPublicAddress(hostname: string, options?: DyNTS_SafeFetch_Options_Interface): Promise<string[]>;
|
|
89
|
+
/** Content-type engedélyezett-e (a paramétereket levágva). */
|
|
90
|
+
static isContentTypeAllowed(contentType: string, options?: DyNTS_SafeFetch_Options_Interface): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* KORLÁTOS letöltés: minden hopon újra-ellenőrzött cél, bounded body, timeout.
|
|
93
|
+
*
|
|
94
|
+
* A body-t soha nem olvassuk korlátlanul: a `maxResponseBytes` fölött a kapcsolatot elvágjuk
|
|
95
|
+
* (a `Content-Length` HIÁNYA nem mentesít — a stream-limit a valódi védelem).
|
|
96
|
+
*/
|
|
97
|
+
static fetchMetadata(rawUrl: string, options?: DyNTS_SafeFetch_Options_Interface): Promise<DyNTS_SafeFetch_Result_Interface>;
|
|
98
|
+
/** Egyetlen HTTP-hívás bounded stream-olvasással és timeouttal (az alapértelmezett transport). */
|
|
99
|
+
static request(url: URL, options?: DyNTS_SafeFetch_Options_Interface): Promise<DyNTS_SafeFetch_TransportResult_Interface>;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=safe-remote-fetch.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-remote-fetch.util.d.ts","sourceRoot":"","sources":["../../src/_collections/safe-remote-fetch.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_SafeRemoteFetch_Util = exports.DyNTS_SafeFetch_Error = exports.DyNTS_SafeFetchReason_Type = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const dns = tslib_1.__importStar(require("dns"));
|
|
6
|
+
const http = tslib_1.__importStar(require("http"));
|
|
7
|
+
const https = tslib_1.__importStar(require("https"));
|
|
8
|
+
const url_1 = require("url");
|
|
9
|
+
/**
|
|
10
|
+
* BFR-FSMED-013 — SSRF-safe, KORLÁTOS remote-metadata kliens.
|
|
11
|
+
*
|
|
12
|
+
* Egy nyilvános felületről érkező URL letöltése a klasszikus SSRF-felület: a szerver a saját
|
|
13
|
+
* hálózati pozíciójából kér le tetszőleges címet. A védelemnek ezért **minden DNS-válaszra és
|
|
14
|
+
* minden redirect-hopra** érvényesnek kell lennie, nem csak az első URL-re — különben egy
|
|
15
|
+
* **DNS-rebinding** vagy egy belső címre mutató redirect átviszi a kérést a privát hálózatba.
|
|
16
|
+
*
|
|
17
|
+
* Amit kikényszerít:
|
|
18
|
+
* - URL-normalizálás, credential-es URL (`user:pass@`) TILTVA;
|
|
19
|
+
* - protokoll-policy (alapból csak `https:`);
|
|
20
|
+
* - **minden** feloldott IP ellenőrzése (privát / loopback / link-local / reserved / CGNAT),
|
|
21
|
+
* IPv4-in-IPv6 és vegyes jelölés kezelésével;
|
|
22
|
+
* - redirect-limit, és **hopokként újra-ellenőrzött** cél;
|
|
23
|
+
* - timeout, maximális válasz-méret (bounded stream — a body sosem olvasható korlátlanul),
|
|
24
|
+
* engedélyezett content-type lista;
|
|
25
|
+
* - stabil `reason` kódok és REDAKTÁLT diagnosztika (a hibába nem kerül credential).
|
|
26
|
+
*/
|
|
27
|
+
/** Stabil, gépileg feldolgozható elutasítási okok. */
|
|
28
|
+
var DyNTS_SafeFetchReason_Type;
|
|
29
|
+
(function (DyNTS_SafeFetchReason_Type) {
|
|
30
|
+
DyNTS_SafeFetchReason_Type["invalidUrl"] = "invalid-url";
|
|
31
|
+
DyNTS_SafeFetchReason_Type["credentialsInUrl"] = "credentials-in-url";
|
|
32
|
+
DyNTS_SafeFetchReason_Type["protocolNotAllowed"] = "protocol-not-allowed";
|
|
33
|
+
DyNTS_SafeFetchReason_Type["hostNotResolvable"] = "host-not-resolvable";
|
|
34
|
+
DyNTS_SafeFetchReason_Type["blockedAddress"] = "blocked-address";
|
|
35
|
+
DyNTS_SafeFetchReason_Type["tooManyRedirects"] = "too-many-redirects";
|
|
36
|
+
DyNTS_SafeFetchReason_Type["contentTypeNotAllowed"] = "content-type-not-allowed";
|
|
37
|
+
DyNTS_SafeFetchReason_Type["responseTooLarge"] = "response-too-large";
|
|
38
|
+
DyNTS_SafeFetchReason_Type["timeout"] = "timeout";
|
|
39
|
+
DyNTS_SafeFetchReason_Type["requestFailed"] = "request-failed";
|
|
40
|
+
})(DyNTS_SafeFetchReason_Type || (exports.DyNTS_SafeFetchReason_Type = DyNTS_SafeFetchReason_Type = {}));
|
|
41
|
+
/** Elutasítás — stabil kóddal és redaktált diagnosztikával. */
|
|
42
|
+
class DyNTS_SafeFetch_Error extends Error {
|
|
43
|
+
reason;
|
|
44
|
+
diagnostic;
|
|
45
|
+
constructor(reason, message, diagnostic) {
|
|
46
|
+
super(message);
|
|
47
|
+
this.reason = reason;
|
|
48
|
+
this.diagnostic = diagnostic;
|
|
49
|
+
this.name = 'DyNTS_SafeFetch_Error';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.DyNTS_SafeFetch_Error = DyNTS_SafeFetch_Error;
|
|
53
|
+
class DyNTS_SafeRemoteFetch_Util {
|
|
54
|
+
static defaults = {
|
|
55
|
+
allowedProtocols: ['https:'],
|
|
56
|
+
maxRedirects: 3,
|
|
57
|
+
timeoutMs: 5_000,
|
|
58
|
+
maxResponseBytes: 256 * 1024,
|
|
59
|
+
allowedContentTypes: ['text/html', 'application/json', 'text/plain', 'application/xml', 'text/xml'],
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* IP-cím blokkolandó-e. IPv4 és IPv6 (a **IPv4-in-IPv6** alakkal együtt: `::ffff:10.0.0.1`).
|
|
63
|
+
*
|
|
64
|
+
* ⚠️ Ez a döntő pont: a hostnév ártalmatlan lehet, miközben egy KÜLSŐ DNS-szerver privát címre
|
|
65
|
+
* oldja fel (DNS-rebinding). Ezért a szűrés a FELOLDOTT CÍMEN történik, nem a néven.
|
|
66
|
+
*/
|
|
67
|
+
static isBlockedAddress(address) {
|
|
68
|
+
const value = `${address ?? ''}`.trim().toLowerCase().replace(/^\[|\]$/g, '');
|
|
69
|
+
if (!value.length) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
// IPv4-in-IPv6 (`::ffff:10.0.0.1`) és a `::ffff:0a00:0001` hexa-alak → az IPv4-re vezetjük vissza
|
|
73
|
+
const mappedIpv4 = value.match(/^::ffff:(\d{1,3}(?:\.\d{1,3}){3})$/);
|
|
74
|
+
if (mappedIpv4) {
|
|
75
|
+
return DyNTS_SafeRemoteFetch_Util.isBlockedIpv4(mappedIpv4[1]);
|
|
76
|
+
}
|
|
77
|
+
if (value.includes(':')) {
|
|
78
|
+
return DyNTS_SafeRemoteFetch_Util.isBlockedIpv6(value);
|
|
79
|
+
}
|
|
80
|
+
return DyNTS_SafeRemoteFetch_Util.isBlockedIpv4(value);
|
|
81
|
+
}
|
|
82
|
+
/** Privát / loopback / link-local / reserved / CGNAT IPv4. */
|
|
83
|
+
static isBlockedIpv4(address) {
|
|
84
|
+
const parts = address.split('.').map((p) => Number(p));
|
|
85
|
+
if (parts.length !== 4 || parts.some((n) => !Number.isInteger(n) || n < 0 || n > 255)) {
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
const [a, b] = parts;
|
|
89
|
+
return a === 0 // "this network"
|
|
90
|
+
|| a === 10 // privát
|
|
91
|
+
|| a === 127 // loopback
|
|
92
|
+
|| (a === 169 && b === 254) // link-local
|
|
93
|
+
|| (a === 172 && b >= 16 && b <= 31) // privát
|
|
94
|
+
|| (a === 192 && b === 168) // privát
|
|
95
|
+
|| (a === 100 && b >= 64 && b <= 127) // CGNAT
|
|
96
|
+
|| (a === 192 && b === 0) // IETF protocol assignments / TEST-NET-1
|
|
97
|
+
|| a === 198 && (b === 18 || b === 19) // benchmark
|
|
98
|
+
|| a >= 224; // multicast + reserved
|
|
99
|
+
}
|
|
100
|
+
/** Loopback / link-local / unique-local / unspecified IPv6. */
|
|
101
|
+
static isBlockedIpv6(address) {
|
|
102
|
+
if (address === '::' || address === '::1') {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return /^fe[89ab]/.test(address) // link-local
|
|
106
|
+
|| /^f[cd]/.test(address) // unique-local
|
|
107
|
+
|| /^ff/.test(address); // multicast
|
|
108
|
+
}
|
|
109
|
+
/** URL-normalizálás + protokoll- és credential-ellenőrzés. */
|
|
110
|
+
static assertUrlIsAllowed(rawUrl, options) {
|
|
111
|
+
let url;
|
|
112
|
+
try {
|
|
113
|
+
url = new url_1.URL(`${rawUrl}`);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.invalidUrl, 'The URL could not be parsed.');
|
|
117
|
+
}
|
|
118
|
+
// A credential a REDIRECT-en is átöröklődhetne, és a naplóba is beszivárogna — tiltva.
|
|
119
|
+
if (url.username.length || url.password.length) {
|
|
120
|
+
throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.credentialsInUrl, 'A URL carrying credentials is not allowed.', { host: url.hostname });
|
|
121
|
+
}
|
|
122
|
+
const allowed = options?.allowedProtocols ?? DyNTS_SafeRemoteFetch_Util.defaults.allowedProtocols;
|
|
123
|
+
if (!allowed.includes(url.protocol)) {
|
|
124
|
+
throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.protocolNotAllowed, `The '${url.protocol}' protocol is not allowed.`, { protocol: url.protocol, allowed: allowed });
|
|
125
|
+
}
|
|
126
|
+
return url;
|
|
127
|
+
}
|
|
128
|
+
/** A host MINDEN feloldott címét ellenőrzi — egyetlen blokkolt cím is elutasít. */
|
|
129
|
+
static async assertHostResolvesToPublicAddress(hostname, options) {
|
|
130
|
+
const resolver = options?.resolve
|
|
131
|
+
?? (async (host) => {
|
|
132
|
+
const records = await dns.promises.lookup(host, { all: true });
|
|
133
|
+
return records.map((r) => r.address);
|
|
134
|
+
});
|
|
135
|
+
let addresses;
|
|
136
|
+
try {
|
|
137
|
+
addresses = await resolver(hostname);
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.hostNotResolvable, 'The host could not be resolved.', { host: hostname });
|
|
141
|
+
}
|
|
142
|
+
if (!addresses?.length) {
|
|
143
|
+
throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.hostNotResolvable, 'The host resolved to no address.', { host: hostname });
|
|
144
|
+
}
|
|
145
|
+
const blocked = addresses.filter((address) => DyNTS_SafeRemoteFetch_Util.isBlockedAddress(address));
|
|
146
|
+
if (blocked.length) {
|
|
147
|
+
throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.blockedAddress, 'The host resolves to a non-public address.', { host: hostname, blockedCount: blocked.length });
|
|
148
|
+
}
|
|
149
|
+
return addresses;
|
|
150
|
+
}
|
|
151
|
+
/** Content-type engedélyezett-e (a paramétereket levágva). */
|
|
152
|
+
static isContentTypeAllowed(contentType, options) {
|
|
153
|
+
const allowed = options?.allowedContentTypes
|
|
154
|
+
?? DyNTS_SafeRemoteFetch_Util.defaults.allowedContentTypes;
|
|
155
|
+
const value = `${contentType ?? ''}`.split(';')[0].trim().toLowerCase();
|
|
156
|
+
return allowed.includes(value);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* KORLÁTOS letöltés: minden hopon újra-ellenőrzött cél, bounded body, timeout.
|
|
160
|
+
*
|
|
161
|
+
* A body-t soha nem olvassuk korlátlanul: a `maxResponseBytes` fölött a kapcsolatot elvágjuk
|
|
162
|
+
* (a `Content-Length` HIÁNYA nem mentesít — a stream-limit a valódi védelem).
|
|
163
|
+
*/
|
|
164
|
+
static async fetchMetadata(rawUrl, options) {
|
|
165
|
+
const maxRedirects = options?.maxRedirects ?? DyNTS_SafeRemoteFetch_Util.defaults.maxRedirects;
|
|
166
|
+
const transport = options?.transport ?? DyNTS_SafeRemoteFetch_Util.request;
|
|
167
|
+
const redirectChain = [];
|
|
168
|
+
let currentUrl = rawUrl;
|
|
169
|
+
for (let hop = 0; hop <= maxRedirects; hop++) {
|
|
170
|
+
const url = DyNTS_SafeRemoteFetch_Util.assertUrlIsAllowed(currentUrl, options);
|
|
171
|
+
await DyNTS_SafeRemoteFetch_Util.assertHostResolvesToPublicAddress(url.hostname, options);
|
|
172
|
+
redirectChain.push(url.toString());
|
|
173
|
+
const response = await transport(url, options ?? {});
|
|
174
|
+
const location = `${response.headers.location ?? ''}` || undefined;
|
|
175
|
+
if (response.status >= 300 && response.status < 400 && location) {
|
|
176
|
+
// A redirect celja UJRA vegigmegy a teljes ellenorzesen: URL-policy, credential-tiltas ES
|
|
177
|
+
// DNS-feloldas. Ez zarja a "publikus elso hop, privat masodik hop" utat.
|
|
178
|
+
currentUrl = new url_1.URL(location, url).toString();
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
const contentType = `${response.headers['content-type'] ?? ''}`;
|
|
182
|
+
if (!DyNTS_SafeRemoteFetch_Util.isContentTypeAllowed(contentType, options)) {
|
|
183
|
+
throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.contentTypeNotAllowed, 'The response content-type is not allowed.', { contentType: contentType.split(';')[0], finalUrl: url.toString() });
|
|
184
|
+
}
|
|
185
|
+
return {
|
|
186
|
+
finalUrl: url.toString(),
|
|
187
|
+
redirectChain: redirectChain,
|
|
188
|
+
status: response.status,
|
|
189
|
+
contentType: contentType,
|
|
190
|
+
bytes: response.bytes,
|
|
191
|
+
body: response.body,
|
|
192
|
+
truncated: response.truncated,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
throw new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.tooManyRedirects, 'The redirect limit was exceeded.', { maxRedirects: maxRedirects, hops: redirectChain.length });
|
|
196
|
+
}
|
|
197
|
+
/** Egyetlen HTTP-hívás bounded stream-olvasással és timeouttal (az alapértelmezett transport). */
|
|
198
|
+
static request(url, options) {
|
|
199
|
+
const timeoutMs = options?.timeoutMs ?? DyNTS_SafeRemoteFetch_Util.defaults.timeoutMs;
|
|
200
|
+
const maxBytes = options?.maxResponseBytes ?? DyNTS_SafeRemoteFetch_Util.defaults.maxResponseBytes;
|
|
201
|
+
const lib = url.protocol === 'http:' ? http : https;
|
|
202
|
+
return new Promise((resolve, reject) => {
|
|
203
|
+
const request = lib.request(url, { method: 'GET', timeout: timeoutMs }, (response) => {
|
|
204
|
+
let size = 0;
|
|
205
|
+
let truncated = false;
|
|
206
|
+
const chunks = [];
|
|
207
|
+
response.on('data', (chunk) => {
|
|
208
|
+
size += chunk.length;
|
|
209
|
+
if (size > maxBytes) {
|
|
210
|
+
truncated = true;
|
|
211
|
+
response.destroy();
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
chunks.push(chunk);
|
|
215
|
+
});
|
|
216
|
+
response.on('end', () => {
|
|
217
|
+
resolve({
|
|
218
|
+
status: response.statusCode ?? 0,
|
|
219
|
+
headers: response.headers,
|
|
220
|
+
body: Buffer.concat(chunks).toString('utf8'),
|
|
221
|
+
bytes: size,
|
|
222
|
+
truncated: truncated,
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
response.on('close', () => {
|
|
226
|
+
if (truncated) {
|
|
227
|
+
resolve({
|
|
228
|
+
status: response.statusCode ?? 0,
|
|
229
|
+
headers: response.headers,
|
|
230
|
+
body: Buffer.concat(chunks).toString('utf8'),
|
|
231
|
+
bytes: size,
|
|
232
|
+
truncated: true,
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
request.on('timeout', () => {
|
|
238
|
+
request.destroy();
|
|
239
|
+
reject(new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.timeout, 'The request timed out.'));
|
|
240
|
+
});
|
|
241
|
+
request.on('error', (error) => {
|
|
242
|
+
// A hibaüzenet a HOSTOT tartalmazhatja, credentialt nem (azt már fentebb kizártuk).
|
|
243
|
+
reject(new DyNTS_SafeFetch_Error(DyNTS_SafeFetchReason_Type.requestFailed, 'The request failed.', { host: url.hostname, cause: error.name }));
|
|
244
|
+
});
|
|
245
|
+
request.end();
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
exports.DyNTS_SafeRemoteFetch_Util = DyNTS_SafeRemoteFetch_Util;
|
|
250
|
+
//# sourceMappingURL=safe-remote-fetch.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-remote-fetch.util.js","sourceRoot":"","sources":["../../src/_collections/safe-remote-fetch.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Request, Response } from 'express';
|
|
2
2
|
import { DyFM_Endpoint_SettingsBase, DyFM_HttpCallType } from '@futdevpro/fsm-dynamo';
|
|
3
3
|
import { DyNTS_RouteSecurity } from '../../_enums/route-security.enum';
|
|
4
|
+
import { DyNTS_AdmissionShed_Interface } from '../interfaces/admission-shed.interface';
|
|
4
5
|
/**
|
|
5
6
|
* High level endpoint for API
|
|
6
7
|
* used for specific events such as saving or getting data,
|
|
@@ -40,6 +41,28 @@ export declare class DyNTS_Endpoint_Params<T_Result = unknown, I_Inputs extends
|
|
|
40
41
|
private readonly logResponseContent;
|
|
41
42
|
readonly stackLocation: string;
|
|
42
43
|
private readonly autoResolveCirculation;
|
|
44
|
+
/**
|
|
45
|
+
* BFR-OVERSEER-014 — végpontonkénti **beengedési plafon** (admission control). `undefined` = nincs
|
|
46
|
+
* korlát, tehát a viselkedés visszafelé teljesen kompatibilis.
|
|
47
|
+
*/
|
|
48
|
+
private readonly maxConcurrent;
|
|
49
|
+
/** BFR-OVERSEER-014 — opcionális ledobás-callback (saját metrika/log). */
|
|
50
|
+
private readonly onShed;
|
|
51
|
+
/**
|
|
52
|
+
* BFR-OVERSEER-014 — az ÉPPEN futó kérések száma EZEN a végponton.
|
|
53
|
+
*
|
|
54
|
+
* ⚠️ Szándékosan példány-szintű számláló, **nem** a `DyNTS_RequestHunter` in-flight listájának
|
|
55
|
+
* végpont-címkére szűrése. A szűrés O(n) minden egyes kérésnél, és pont a védendő állapotban a
|
|
56
|
+
* legdrágább: a mért incidensben ~52 000 egyidejű kérés volt, ott a szűrő maga válna a szűk
|
|
57
|
+
* keresztmetszetté. Ez a számláló O(1).
|
|
58
|
+
*/
|
|
59
|
+
private activeCount;
|
|
60
|
+
/** BFR-OVERSEER-014 — a ledobás-log ritkítása: mikor logoltunk utoljára (ms). */
|
|
61
|
+
private lastShedLogAtMs;
|
|
62
|
+
/** BFR-OVERSEER-014 — az adott végponton eddig ledobott kérések száma (diagnosztika). */
|
|
63
|
+
private shedCount;
|
|
64
|
+
/** BFR-OVERSEER-014 — a ledobás-log ritkítási ablaka. */
|
|
65
|
+
private static readonly shedLogIntervalMs;
|
|
43
66
|
constructor(set: {
|
|
44
67
|
/**
|
|
45
68
|
* naming the endpoint will help to follow events on service
|
|
@@ -92,6 +115,19 @@ export declare class DyNTS_Endpoint_Params<T_Result = unknown, I_Inputs extends
|
|
|
92
115
|
* auto resolve circulation errors
|
|
93
116
|
*/
|
|
94
117
|
autoResolveCirculation?: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* BFR-OVERSEER-014 — **beengedési plafon**: hány kérés futhat EGYIDEJŰLEG ezen a végponton.
|
|
120
|
+
* A plafon fölött a keretrendszer a handler ELŐTT elutasít: **503**, `handled: true`
|
|
121
|
+
* (retryable, a hiba-tárba nem íródik).
|
|
122
|
+
*
|
|
123
|
+
* Elhagyva nincs korlát — a meglévő végpontok viselkedése változatlan.
|
|
124
|
+
*/
|
|
125
|
+
maxConcurrent?: number;
|
|
126
|
+
/**
|
|
127
|
+
* BFR-OVERSEER-014 — ledobáskor hívott callback (saját metrika/log). Hibája nem befolyásolja
|
|
128
|
+
* a választ: a ledobás akkor is megtörténik, ha a callback dob.
|
|
129
|
+
*/
|
|
130
|
+
onShed?: (info: DyNTS_AdmissionShed_Interface) => void;
|
|
95
131
|
});
|
|
96
132
|
/**
|
|
97
133
|
*
|
|
@@ -103,6 +139,23 @@ export declare class DyNTS_Endpoint_Params<T_Result = unknown, I_Inputs extends
|
|
|
103
139
|
* @returns
|
|
104
140
|
*/
|
|
105
141
|
getFullExecution(): (req: Request, res: Response) => Promise<void>;
|
|
142
|
+
/** BFR-OVERSEER-014 — a végpont ÉPPEN futó kéréseinek száma (diagnosztika/teszt). */
|
|
143
|
+
getActiveCount(): number;
|
|
144
|
+
/** BFR-OVERSEER-014 — az eddig ledobott kérések száma ezen a végponton (diagnosztika/teszt). */
|
|
145
|
+
getShedCount(): number;
|
|
146
|
+
/** BFR-OVERSEER-014 — el kell-e dobni ezt a kérést? Korlát nélkül SOHA. */
|
|
147
|
+
private shouldShed;
|
|
148
|
+
/**
|
|
149
|
+
* BFR-OVERSEER-014 — ledobás: **503** + `handled: true`, ritkított log, opcionális callback.
|
|
150
|
+
*
|
|
151
|
+
* ⚠️ **`handled: true` KÖTELEZŐ**: a hiba-tárba írás ugyanabba a torlódásba indítana még egy lassú
|
|
152
|
+
* DB-lekérdezést — tehát a védelem maga terhelné tovább a védendő rendszert.
|
|
153
|
+
*
|
|
154
|
+
* ⚠️ A log **ritkított**: korlátlanul logolva maga a ledobás lenne a log-áradat (a mért incidensben
|
|
155
|
+
* ez percenként több tízezer sort jelentene). Az elnyomott darabok száma a következő sorban látszik,
|
|
156
|
+
* így a ritkítás nem rejti el a nagyságrendet.
|
|
157
|
+
*/
|
|
158
|
+
private reportShed;
|
|
106
159
|
/**
|
|
107
160
|
* BFR-OVERSEER-010: csonkolt, safe response-preview a logResponseContent-hez —
|
|
108
161
|
* nem-parseolható/circular body-ra nem dob, hosszú body-t levág (log-flood ellen).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-params.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/endpoint-params.control-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EACsB,0BAA0B,EACrD,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"endpoint-params.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/endpoint-params.control-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,6 +52,28 @@ class DyNTS_Endpoint_Params extends fsm_dynamo_1.DyFM_Endpoint_SettingsBase {
|
|
|
52
52
|
logResponseContent;
|
|
53
53
|
stackLocation;
|
|
54
54
|
autoResolveCirculation;
|
|
55
|
+
/**
|
|
56
|
+
* BFR-OVERSEER-014 — végpontonkénti **beengedési plafon** (admission control). `undefined` = nincs
|
|
57
|
+
* korlát, tehát a viselkedés visszafelé teljesen kompatibilis.
|
|
58
|
+
*/
|
|
59
|
+
maxConcurrent;
|
|
60
|
+
/** BFR-OVERSEER-014 — opcionális ledobás-callback (saját metrika/log). */
|
|
61
|
+
onShed;
|
|
62
|
+
/**
|
|
63
|
+
* BFR-OVERSEER-014 — az ÉPPEN futó kérések száma EZEN a végponton.
|
|
64
|
+
*
|
|
65
|
+
* ⚠️ Szándékosan példány-szintű számláló, **nem** a `DyNTS_RequestHunter` in-flight listájának
|
|
66
|
+
* végpont-címkére szűrése. A szűrés O(n) minden egyes kérésnél, és pont a védendő állapotban a
|
|
67
|
+
* legdrágább: a mért incidensben ~52 000 egyidejű kérés volt, ott a szűrő maga válna a szűk
|
|
68
|
+
* keresztmetszetté. Ez a számláló O(1).
|
|
69
|
+
*/
|
|
70
|
+
activeCount = 0;
|
|
71
|
+
/** BFR-OVERSEER-014 — a ledobás-log ritkítása: mikor logoltunk utoljára (ms). */
|
|
72
|
+
lastShedLogAtMs = 0;
|
|
73
|
+
/** BFR-OVERSEER-014 — az adott végponton eddig ledobott kérések száma (diagnosztika). */
|
|
74
|
+
shedCount = 0;
|
|
75
|
+
/** BFR-OVERSEER-014 — a ledobás-log ritkítási ablaka. */
|
|
76
|
+
static shedLogIntervalMs = 5000;
|
|
55
77
|
constructor(set) {
|
|
56
78
|
try {
|
|
57
79
|
super(set);
|
|
@@ -68,6 +90,18 @@ class DyNTS_Endpoint_Params extends fsm_dynamo_1.DyFM_Endpoint_SettingsBase {
|
|
|
68
90
|
global_settings_const_1.DyNTS_global_settings.log_settings.responseContent;
|
|
69
91
|
this.autoResolveCirculation = set.autoResolveCirculation ??
|
|
70
92
|
global_settings_const_1.DyNTS_global_settings.autoResolveEndpointCirculationErrors;
|
|
93
|
+
// BFR-OVERSEER-014: csak POZITIV, veges plafon ervenyes. A 0 / negativ / NaN ertek nem
|
|
94
|
+
// "mindent tilts" — az egy elgepeles, ami az egesz vegpontot lekapcsolna; ilyenkor a
|
|
95
|
+
// biztonsagos ertelmezes a "nincs korlat" (a korabbi viselkedes), hangos figyelmeztetessel.
|
|
96
|
+
if (set.maxConcurrent !== undefined && !(Number.isFinite(set.maxConcurrent) && set.maxConcurrent > 0)) {
|
|
97
|
+
fsm_dynamo_1.DyFM_Log.warn(`Endpoint "${set.name ?? set.endpoint}": maxConcurrent must be a positive finite `
|
|
98
|
+
+ `number — received ${set.maxConcurrent}; admission control is DISABLED for this endpoint.`);
|
|
99
|
+
this.maxConcurrent = undefined;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
this.maxConcurrent = set.maxConcurrent;
|
|
103
|
+
}
|
|
104
|
+
this.onShed = set.onShed;
|
|
71
105
|
if (!this.endpoint) {
|
|
72
106
|
throw new fsm_dynamo_1.DyFM_Error({
|
|
73
107
|
status: 406,
|
|
@@ -129,6 +163,15 @@ class DyNTS_Endpoint_Params extends fsm_dynamo_1.DyFM_Endpoint_SettingsBase {
|
|
|
129
163
|
getFullExecution() {
|
|
130
164
|
let issuer;
|
|
131
165
|
return async (req, res) => {
|
|
166
|
+
// BFR-OVERSEER-014 — BEENGEDES-KORLAT. Ez a legelso dontes: a plafon folott sem a hunter-
|
|
167
|
+
// regisztracio, sem az issuer-feloldas, sem a preProcess-ek nem futnak le. A mert incidensben
|
|
168
|
+
// (~52 000 egyideju keres) pont az volt a baj, hogy a beengedett keresek MUNKAT foglaltak,
|
|
169
|
+
// miközben a kliens idotullepes utan ujrakuldott — a sor gyorsabban nott, mint urult.
|
|
170
|
+
if (this.shouldShed()) {
|
|
171
|
+
this.reportShed(req, res);
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
this.activeCount++;
|
|
132
175
|
// ISSUE-HUNTER (2026-08-05) — keres-szintu attribucio. Ez a KOZPONTI vegrehajtasi pont,
|
|
133
176
|
// minden endpoint ezen megy at, ezert itt (es CSAK itt) merunk. Koltseg: egy Map-beszuras
|
|
134
177
|
// + Date.now(). A `finally` garantalja, hogy hiba/early-return eseten se szivarogjon be-
|
|
@@ -200,9 +243,75 @@ class DyNTS_Endpoint_Params extends fsm_dynamo_1.DyFM_Endpoint_SettingsBase {
|
|
|
200
243
|
}
|
|
201
244
|
finally {
|
|
202
245
|
request_hunter_service_1.DyNTS_RequestHunter.getInstance().end(hunterId);
|
|
246
|
+
// BFR-OVERSEER-014: a `finally` garantalja, hogy hiba / early-return eseten se szivarogjon
|
|
247
|
+
// a szamlalo. Enelkul egy dobo endpoint par ora alatt "beragadna" a sajat plafonjaba, es a
|
|
248
|
+
// vedelem maga valna kiesses okava.
|
|
249
|
+
this.activeCount--;
|
|
203
250
|
}
|
|
204
251
|
};
|
|
205
252
|
}
|
|
253
|
+
/** BFR-OVERSEER-014 — a végpont ÉPPEN futó kéréseinek száma (diagnosztika/teszt). */
|
|
254
|
+
getActiveCount() {
|
|
255
|
+
return this.activeCount;
|
|
256
|
+
}
|
|
257
|
+
/** BFR-OVERSEER-014 — az eddig ledobott kérések száma ezen a végponton (diagnosztika/teszt). */
|
|
258
|
+
getShedCount() {
|
|
259
|
+
return this.shedCount;
|
|
260
|
+
}
|
|
261
|
+
/** BFR-OVERSEER-014 — el kell-e dobni ezt a kérést? Korlát nélkül SOHA. */
|
|
262
|
+
shouldShed() {
|
|
263
|
+
return this.maxConcurrent !== undefined && this.activeCount >= this.maxConcurrent;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* BFR-OVERSEER-014 — ledobás: **503** + `handled: true`, ritkított log, opcionális callback.
|
|
267
|
+
*
|
|
268
|
+
* ⚠️ **`handled: true` KÖTELEZŐ**: a hiba-tárba írás ugyanabba a torlódásba indítana még egy lassú
|
|
269
|
+
* DB-lekérdezést — tehát a védelem maga terhelné tovább a védendő rendszert.
|
|
270
|
+
*
|
|
271
|
+
* ⚠️ A log **ritkított**: korlátlanul logolva maga a ledobás lenne a log-áradat (a mért incidensben
|
|
272
|
+
* ez percenként több tízezer sort jelentene). Az elnyomott darabok száma a következő sorban látszik,
|
|
273
|
+
* így a ritkítás nem rejti el a nagyságrendet.
|
|
274
|
+
*/
|
|
275
|
+
reportShed(req, res) {
|
|
276
|
+
this.shedCount++;
|
|
277
|
+
const info = {
|
|
278
|
+
endpointName: this.name,
|
|
279
|
+
endpoint: this.endpoint,
|
|
280
|
+
maxConcurrent: this.maxConcurrent,
|
|
281
|
+
activeCount: this.activeCount,
|
|
282
|
+
shedCount: this.shedCount,
|
|
283
|
+
};
|
|
284
|
+
const nowMs = Date.now();
|
|
285
|
+
if (nowMs - this.lastShedLogAtMs >= DyNTS_Endpoint_Params.shedLogIntervalMs) {
|
|
286
|
+
this.lastShedLogAtMs = nowMs;
|
|
287
|
+
fsm_dynamo_1.DyFM_Log.warn(`Admission control SHED "${this.name}": ${this.activeCount} in flight `
|
|
288
|
+
+ `>= maxConcurrent ${this.maxConcurrent} — responding 503 (retryable). `
|
|
289
|
+
+ `Total shed on this endpoint: ${this.shedCount}.`);
|
|
290
|
+
}
|
|
291
|
+
if (this.onShed) {
|
|
292
|
+
try {
|
|
293
|
+
this.onShed(info);
|
|
294
|
+
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
// A ledobas NEM bukhat el azon, hogy a fogyaszto metrika-callbackje dob.
|
|
297
|
+
safe_diagnostic_control_service_1.DyNTS_SafeDiagnostic_ControlService.report({
|
|
298
|
+
code: 'DYNTS|ENDPOINT|ADMISSION_ON_SHED_FAILURE',
|
|
299
|
+
stage: safe_diagnostic_stage_type_enum_1.DyNTS_SafeDiagnosticStage_Type.endpoint,
|
|
300
|
+
error: error,
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
if (res.headersSent) {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
res.status(503).send({
|
|
308
|
+
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-EP-ADM0`,
|
|
309
|
+
userMessage: 'The server is at capacity for this operation, please retry shortly.',
|
|
310
|
+
handled: true,
|
|
311
|
+
retryable: true,
|
|
312
|
+
endpointName: this.name,
|
|
313
|
+
});
|
|
314
|
+
}
|
|
206
315
|
/**
|
|
207
316
|
* BFR-OVERSEER-010: csonkolt, safe response-preview a logResponseContent-hez —
|
|
208
317
|
* nem-parseolható/circular body-ra nem dob, hosszú body-t levág (log-flood ellen).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-params.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/endpoint-params.control-model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"endpoint-params.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/endpoint-params.control-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BFR-OVERSEER-014 — egy beengedés-korlát miatti ledobás leírója.
|
|
3
|
+
*
|
|
4
|
+
* ⚠️ Szándékosan **tartalom-mentes**: sem a kérés body-ja, sem a fejlécei, sem az issuer nem kerül
|
|
5
|
+
* bele. A ledobás pont torlódás alatt történik, tömegesen — ott a tartalom-hordozó diagnosztika
|
|
6
|
+
* egyszerre lenne szivárgási felület és log-áradat.
|
|
7
|
+
*/
|
|
8
|
+
export interface DyNTS_AdmissionShed_Interface {
|
|
9
|
+
/** A végpont neve (`DyNTS_Endpoint_Params.name`). */
|
|
10
|
+
endpointName: string;
|
|
11
|
+
/** A route-minta (pl. `/:accountId/report`). */
|
|
12
|
+
endpoint: string;
|
|
13
|
+
/** Az érvényes plafon. */
|
|
14
|
+
maxConcurrent: number | undefined;
|
|
15
|
+
/** Hány kérés futott a ledobás pillanatában. */
|
|
16
|
+
activeCount: number;
|
|
17
|
+
/** Hányadik ledobás ez ezen a végponton (a folyamat indulása óta). */
|
|
18
|
+
shedCount: number;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=admission-shed.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admission-shed.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/admission-shed.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,6BAA6B;IAC5C,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admission-shed.interface.js","sourceRoot":"","sources":["../../../src/_models/interfaces/admission-shed.interface.ts"],"names":[],"mappings":""}
|
package/build/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export * from './_models/interfaces/app-version-header-settings.interface';
|
|
|
24
24
|
export * from './_models/interfaces/request-telemetry-settings.interface';
|
|
25
25
|
export * from './_models/interfaces/request-telemetry-snapshot.interface';
|
|
26
26
|
export * from './_models/interfaces/db-query-options.interface';
|
|
27
|
+
export * from './_models/interfaces/admission-shed.interface';
|
|
27
28
|
export * from './_models/interfaces/migration-entry.interface';
|
|
28
29
|
export * from './_models/interfaces/mongo-transaction-settings.interface';
|
|
29
30
|
export * from './_collections/security-headers.util';
|
|
@@ -32,6 +33,9 @@ export * from './_collections/signed-url.util';
|
|
|
32
33
|
export * from './_collections/client-safe-error.util';
|
|
33
34
|
export * from './_collections/client-safe-error-response.interface';
|
|
34
35
|
export * from './_collections/load-shed.util';
|
|
36
|
+
export * from './_collections/secret-redaction.util';
|
|
37
|
+
export * from './_collections/dependency-host-guard.util';
|
|
38
|
+
export * from './_collections/safe-remote-fetch.util';
|
|
35
39
|
export * from './_services/core/event-loop-diag.service';
|
|
36
40
|
export * from './_services/core/request-hunter.service';
|
|
37
41
|
export * from './_services/core/db-stats.service';
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2BA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AAIrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAK7C,mEAAmE;AACnE,cAAc,uDAAuD,CAAC;AACtE,cAAc,qDAAqD,CAAC;AACpE,cAAc,wDAAwD,CAAC;AACvE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wDAAwD,CAAC;AACvE,cAAc,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0DAA0D,CAAC;AACzE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,iDAAiD,CAAC;AAChE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2DAA2D,CAAC;AAC1E,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qDAAqD,CAAC;AACpE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AAGrD,cAAc,wDAAwD,CAAC;AACvE,cAAc,gEAAgE,CAAA;AAC9E,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,wDAAwD,CAAC;AACvE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AAGtE,cAAc,gCAAgC,CAAC;AAG/C,cAAc,mDAAmD,CAAC;AAKlE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oDAAoD,CAAC;AACnE,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oDAAoD,CAAC;AAEnE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oDAAoD,CAAC;AAGnE,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,+BAA+B,CAAC;AAG9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2BA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AAIrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAK7C,mEAAmE;AACnE,cAAc,uDAAuD,CAAC;AACtE,cAAc,qDAAqD,CAAC;AACpE,cAAc,wDAAwD,CAAC;AACvE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wDAAwD,CAAC;AACvE,cAAc,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0DAA0D,CAAC;AACzE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,iDAAiD,CAAC;AAChE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2DAA2D,CAAC;AAC1E,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qDAAqD,CAAC;AACpE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AAGrD,cAAc,wDAAwD,CAAC;AACvE,cAAc,gEAAgE,CAAA;AAC9E,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,wDAAwD,CAAC;AACvE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AAGtE,cAAc,gCAAgC,CAAC;AAG/C,cAAc,mDAAmD,CAAC;AAKlE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oDAAoD,CAAC;AACnE,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oDAAoD,CAAC;AAEnE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oDAAoD,CAAC;AAGnE,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,+BAA+B,CAAC;AAG9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,mCAAmC,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -53,6 +53,7 @@ tslib_1.__exportStar(require("./_models/interfaces/app-version-header-settings.i
|
|
|
53
53
|
tslib_1.__exportStar(require("./_models/interfaces/request-telemetry-settings.interface"), exports);
|
|
54
54
|
tslib_1.__exportStar(require("./_models/interfaces/request-telemetry-snapshot.interface"), exports);
|
|
55
55
|
tslib_1.__exportStar(require("./_models/interfaces/db-query-options.interface"), exports);
|
|
56
|
+
tslib_1.__exportStar(require("./_models/interfaces/admission-shed.interface"), exports);
|
|
56
57
|
tslib_1.__exportStar(require("./_models/interfaces/migration-entry.interface"), exports);
|
|
57
58
|
tslib_1.__exportStar(require("./_models/interfaces/mongo-transaction-settings.interface"), exports);
|
|
58
59
|
tslib_1.__exportStar(require("./_collections/security-headers.util"), exports);
|
|
@@ -61,6 +62,9 @@ tslib_1.__exportStar(require("./_collections/signed-url.util"), exports);
|
|
|
61
62
|
tslib_1.__exportStar(require("./_collections/client-safe-error.util"), exports);
|
|
62
63
|
tslib_1.__exportStar(require("./_collections/client-safe-error-response.interface"), exports);
|
|
63
64
|
tslib_1.__exportStar(require("./_collections/load-shed.util"), exports);
|
|
65
|
+
tslib_1.__exportStar(require("./_collections/secret-redaction.util"), exports);
|
|
66
|
+
tslib_1.__exportStar(require("./_collections/dependency-host-guard.util"), exports);
|
|
67
|
+
tslib_1.__exportStar(require("./_collections/safe-remote-fetch.util"), exports);
|
|
64
68
|
tslib_1.__exportStar(require("./_services/core/event-loop-diag.service"), exports);
|
|
65
69
|
tslib_1.__exportStar(require("./_services/core/request-hunter.service"), exports);
|
|
66
70
|
tslib_1.__exportStar(require("./_services/core/db-stats.service"), exports);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;IAsBI;;;AAEJ,cAAc;AACd,sEAA4C;AAC5C,8EAAoD;AACpD,wFAA8D;AAC9D,8FAAoE;AACpE,sFAA4D;AAC5D,mFAAyD;AACzD,uFAA6D;AAC7D,+EAAqD;AAGrD,QAAQ;AACR,wEAA8C;AAC9C,8EAAoD;AACpD,8EAAoD;AACpD,uEAA6C;AAG7C,6CAA6C;AAE7C,mEAAmE;AACnE,gGAAsE;AACtE,8FAAoE;AACpE,iGAAuE;AACvE,yFAA+D;AAC/D,iGAAuE;AACvE,kGAAwE;AACxE,gGAAsE;AACtE,uFAA6D;AAC7D,mGAAyE;AACzE,qGAA2E;AAC3E,oGAA0E;AAC1E,oGAA0E;AAC1E,0FAAgE;AAChE,yFAA+D;AAC/D,oGAA0E;AAC1E,+EAAqD;AACrD,iFAAuD;AACvD,yEAA+C;AAC/C,gFAAsD;AACtD,8FAAoE;AACpE,wEAA8C;AAC9C,mFAAyD;AACzD,kFAAwD;AACxD,4EAAkD;AAClD,+EAAqD;AAErD,wBAAwB;AACxB,iGAAuE;AACvE,yGAA8E;AAC9E,4FAAkE;AAClE,qGAA2E;AAC3E,iGAAuE;AACvE,+FAAqE;AACrE,gGAAsE;AAEtE,eAAe;AACf,yEAA+C;AAE/C,qBAAqB;AACrB,4FAAkE;AAGlE,WAAW;AACX,gBAAgB;AAChB,uEAA6C;AAC7C,wEAA8C;AAE9C,yEAA+C;AAC/C,6FAAmE;AACnE,0EAAgD;AAChD,gFAAsD;AACtD,6FAAmE;AAEnE,sFAA4D;AAC5D,oFAA0D;AAC1D,6FAAmE;AAEnE,gBAAgB;AAChB,4EAAkD;AAClD,gFAAsD;AACtD,wEAA8C;AAC9C,sEAA4C;AAC5C,kFAAwD;AACxD,6EAAmD;AAEnD,kBAAkB;AAClB,wEAA8C;AAE9C,iBAAiB;AACjB,+EAAqD;AACrD,mFAAyD;AAEzD,kBAAkB;AAClB,4EAAkD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;IAsBI;;;AAEJ,cAAc;AACd,sEAA4C;AAC5C,8EAAoD;AACpD,wFAA8D;AAC9D,8FAAoE;AACpE,sFAA4D;AAC5D,mFAAyD;AACzD,uFAA6D;AAC7D,+EAAqD;AAGrD,QAAQ;AACR,wEAA8C;AAC9C,8EAAoD;AACpD,8EAAoD;AACpD,uEAA6C;AAG7C,6CAA6C;AAE7C,mEAAmE;AACnE,gGAAsE;AACtE,8FAAoE;AACpE,iGAAuE;AACvE,yFAA+D;AAC/D,iGAAuE;AACvE,kGAAwE;AACxE,gGAAsE;AACtE,uFAA6D;AAC7D,mGAAyE;AACzE,qGAA2E;AAC3E,oGAA0E;AAC1E,oGAA0E;AAC1E,0FAAgE;AAChE,wFAA8D;AAC9D,yFAA+D;AAC/D,oGAA0E;AAC1E,+EAAqD;AACrD,iFAAuD;AACvD,yEAA+C;AAC/C,gFAAsD;AACtD,8FAAoE;AACpE,wEAA8C;AAC9C,+EAAqD;AACrD,oFAA0D;AAC1D,gFAAsD;AACtD,mFAAyD;AACzD,kFAAwD;AACxD,4EAAkD;AAClD,+EAAqD;AAErD,wBAAwB;AACxB,iGAAuE;AACvE,yGAA8E;AAC9E,4FAAkE;AAClE,qGAA2E;AAC3E,iGAAuE;AACvE,+FAAqE;AACrE,gGAAsE;AAEtE,eAAe;AACf,yEAA+C;AAE/C,qBAAqB;AACrB,4FAAkE;AAGlE,WAAW;AACX,gBAAgB;AAChB,uEAA6C;AAC7C,wEAA8C;AAE9C,yEAA+C;AAC/C,6FAAmE;AACnE,0EAAgD;AAChD,gFAAsD;AACtD,6FAAmE;AAEnE,sFAA4D;AAC5D,oFAA0D;AAC1D,6FAAmE;AAEnE,gBAAgB;AAChB,4EAAkD;AAClD,gFAAsD;AACtD,wEAA8C;AAC9C,sEAA4C;AAC5C,kFAAwD;AACxD,6EAAmD;AAEnD,kBAAkB;AAClB,wEAA8C;AAE9C,iBAAiB;AACjB,+EAAqD;AACrD,mFAAyD;AAEzD,kBAAkB;AAClB,4EAAkD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/nts-dynamo",
|
|
3
|
-
"version": "01.15.
|
|
3
|
+
"version": "01.15.197",
|
|
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",
|