@futdevpro/nts-dynamo 1.15.279 → 1.15.285
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/endpoint-bridge.util.d.ts +40 -0
- package/build/_collections/endpoint-bridge.util.d.ts.map +1 -0
- package/build/_collections/endpoint-bridge.util.js +128 -0
- package/build/_collections/endpoint-bridge.util.js.map +1 -0
- package/build/_collections/operation-rest.util.d.ts +53 -0
- package/build/_collections/operation-rest.util.d.ts.map +1 -0
- package/build/_collections/operation-rest.util.js +143 -0
- package/build/_collections/operation-rest.util.js.map +1 -0
- package/build/_models/control-models/endpoint-params.control-model.d.ts +21 -2
- package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/endpoint-params.control-model.js +51 -3
- package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/build/_models/interfaces/bridgeable-endpoint.interface.d.ts +15 -0
- package/build/_models/interfaces/bridgeable-endpoint.interface.d.ts.map +1 -0
- package/build/_models/interfaces/bridgeable-endpoint.interface.js +3 -0
- package/build/_models/interfaces/bridgeable-endpoint.interface.js.map +1 -0
- package/build/_models/interfaces/endpoint-bridge-call.interface.d.ts +16 -0
- package/build/_models/interfaces/endpoint-bridge-call.interface.d.ts.map +1 -0
- package/build/_models/interfaces/endpoint-bridge-call.interface.js +3 -0
- package/build/_models/interfaces/endpoint-bridge-call.interface.js.map +1 -0
- package/build/_models/interfaces/endpoint-bridge-result.interface.d.ts +17 -0
- package/build/_models/interfaces/endpoint-bridge-result.interface.d.ts.map +1 -0
- package/build/_models/interfaces/endpoint-bridge-result.interface.js +3 -0
- package/build/_models/interfaces/endpoint-bridge-result.interface.js.map +1 -0
- package/build/_models/interfaces/global-settings.interface.d.ts +5 -0
- package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
- package/build/_models/interfaces/operation-identity.interface.d.ts +20 -0
- package/build/_models/interfaces/operation-identity.interface.d.ts.map +1 -0
- package/build/_models/interfaces/operation-identity.interface.js +3 -0
- package/build/_models/interfaces/operation-identity.interface.js.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts +4 -0
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts.map +1 -1
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js +4 -0
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js.map +1 -1
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts +36 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts.map +1 -1
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.js +109 -17
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.js.map +1 -1
- package/build/_services/core/auth.service.d.ts +13 -0
- package/build/_services/core/auth.service.d.ts.map +1 -1
- package/build/_services/core/auth.service.js +23 -0
- package/build/_services/core/auth.service.js.map +1 -1
- package/build/_services/core/collection-growth-monitor.service.d.ts +15 -0
- package/build/_services/core/collection-growth-monitor.service.d.ts.map +1 -1
- package/build/_services/core/collection-growth-monitor.service.js +12 -1
- package/build/_services/core/collection-growth-monitor.service.js.map +1 -1
- package/build/index.d.ts +6 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +6 -0
- package/build/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridgeable-endpoint.interface.js","sourceRoot":"","sources":["../../../src/_models/interfaces/bridgeable-endpoint.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One programmatic call of an endpoint through `DyNTS_EndpointBridge_Util` (HP-DOPL MP-2.3).
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* const call: DyNTS_EndpointBridge_Call = { params: { taskId: 't-1' }, headers: { authorization: 'Bearer …' } };
|
|
7
|
+
* ```
|
|
8
|
+
*/
|
|
9
|
+
export interface DyNTS_EndpointBridge_Call {
|
|
10
|
+
params?: Record<string, string>;
|
|
11
|
+
query?: Record<string, unknown>;
|
|
12
|
+
body?: unknown;
|
|
13
|
+
/** Header names are matched case-insensitively (stored lowercase, like Express). */
|
|
14
|
+
headers?: Record<string, string>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=endpoint-bridge-call.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-bridge-call.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/endpoint-bridge-call.interface.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-bridge-call.interface.js","sourceRoot":"","sources":["../../../src/_models/interfaces/endpoint-bridge-call.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The captured response of a bridged endpoint call (HP-DOPL MP-2.3).
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* const result: DyNTS_EndpointBridge_Result = await DyNTS_EndpointBridge_Util.invoke(endpoint, call);
|
|
7
|
+
* if (result.status >= 400) { … }
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export interface DyNTS_EndpointBridge_Result {
|
|
11
|
+
/** HTTP-equivalent status (200 when the endpoint sent without setting one). */
|
|
12
|
+
status: number;
|
|
13
|
+
body: unknown;
|
|
14
|
+
/** Response headers, lowercase names. */
|
|
15
|
+
headers: Record<string, string>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=endpoint-bridge-result.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-bridge-result.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/endpoint-bridge-result.interface.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,WAAW,2BAA2B;IAC1C,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-bridge-result.interface.js","sourceRoot":"","sources":["../../../src/_models/interfaces/endpoint-bridge-result.interface.ts"],"names":[],"mappings":""}
|
|
@@ -298,6 +298,11 @@ export interface DyNTS_Global_Settings {
|
|
|
298
298
|
sizeThresholdDocCount?: number;
|
|
299
299
|
/** Warning, ha egy collection az előző poll óta ennél többel nőtt (%). Default: 50. */
|
|
300
300
|
growthRateThresholdPct?: number;
|
|
301
|
+
/**
|
|
302
|
+
* BFR-AM-017 — collection-enkénti méret-küszöb (`dataName` → doc-szám). A nem felsorolt collection a
|
|
303
|
+
* `sizeThresholdDocCount`-ot kapja. Érvénytelen (≤0 / nem véges) érték figyelmen kívül marad.
|
|
304
|
+
*/
|
|
305
|
+
sizeThresholdByCollection?: Record<string, number>;
|
|
301
306
|
/** Re-alert cooldown collection-önként + alert-típusonként, ms (anti-flood). Default: 3600000 (1 h). */
|
|
302
307
|
reAlertCooldownMs?: number;
|
|
303
308
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-settings.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/global-settings.interface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"global-settings.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/global-settings.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DyFM_OperationAuth_Type } from '@futdevpro/fsm-dynamo';
|
|
2
|
+
/**
|
|
3
|
+
* The caller identity of one request, as the auth layer resolves it for an operation call (HP-DOPL MP-2.2).
|
|
4
|
+
*
|
|
5
|
+
* 🔴 `issuer` is ALWAYS the accountId (`fdp-issuer-is-account-id`) — also for API key calls, where the key's
|
|
6
|
+
* user record must be resolved to its account. `clientUserId` is the service's own user id (ownership).
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const identity: DyNTS_Operation_Identity = { authKind: DyFM_OperationAuth_Type.token, issuer: accountId };
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export interface DyNTS_Operation_Identity {
|
|
14
|
+
authKind: DyFM_OperationAuth_Type;
|
|
15
|
+
issuer?: string;
|
|
16
|
+
clientUserId?: string;
|
|
17
|
+
/** Scopes of the API key; `undefined` = legacy key without scopes (D-6). */
|
|
18
|
+
apiKeyScopes?: string[];
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=operation-identity.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-identity.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/operation-identity.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-identity.interface.js","sourceRoot":"","sources":["../../../src/_models/interfaces/operation-identity.interface.ts"],"names":[],"mappings":""}
|
package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts
CHANGED
|
@@ -48,6 +48,10 @@ export declare class DyNTS_LVS_PersistentVectorPool_ControlService {
|
|
|
48
48
|
removeVector(vectorId: string): Promise<void>;
|
|
49
49
|
/** Keresés a memória-pool-on (a wrapped pool `search`-jét delegálja — VÁLTOZATLAN engine). */
|
|
50
50
|
search(query: number[], k: number, mode: LVS_Search_Mode): LVS_SearchResult[];
|
|
51
|
+
/** Nem-blokkoló keresés a memória-pool-on (BFR-AM-018) — a wrapped pool `searchAsync`-jét delegálja. */
|
|
52
|
+
searchAsync(query: number[], k: number, mode: LVS_Search_Mode, options?: {
|
|
53
|
+
yieldEvery?: number;
|
|
54
|
+
}): Promise<LVS_SearchResult[]>;
|
|
51
55
|
/**
|
|
52
56
|
* BOOT-HIDRATÁLÁS (FAM-minta, BFR-AM-001): a `collectionKey` ÖSSZES perzistált vektorát betölti a
|
|
53
57
|
* MEMÓRIA-pool-ba (`pool.addVector`), így a szerver-restart utáni in-memory index újraépül. A pool-t
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lvs-persistent-vector-pool.control-service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAE/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAElF;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,6CAA6C;IAExD,+FAA+F;IAC/F,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAErD,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,GAAG,EAAE;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,6BAA6B,CAAC;KACtC;IAOD,oFAAoF;IACpF,OAAO,IAAI,6BAA6B;IAIxC;;;;OAIG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtF;;;OAGG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzF,mGAAmG;IAC7F,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,8FAA8F;IAC9F,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,gBAAgB,EAAE;IAI7E;;;;;OAKG;IACG,gBAAgB,CAAC,GAAG,CAAC,EAAE;QAC3B,oFAAoF;QACpF,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kGAAkG;QAClG,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC;IAyDnB;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,uBAAuB,EAAE,GAAG,MAAM;IAenD;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAG1B"}
|
|
1
|
+
{"version":3,"file":"lvs-persistent-vector-pool.control-service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAE/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAElF;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,6CAA6C;IAExD,+FAA+F;IAC/F,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAErD,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,GAAG,EAAE;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,6BAA6B,CAAC;KACtC;IAOD,oFAAoF;IACpF,OAAO,IAAI,6BAA6B;IAIxC;;;;OAIG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtF;;;OAGG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzF,mGAAmG;IAC7F,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,8FAA8F;IAC9F,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,gBAAgB,EAAE;IAI7E,wGAAwG;IACxG,WAAW,CACT,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACnF,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI9B;;;;;OAKG;IACG,gBAAgB,CAAC,GAAG,CAAC,EAAE;QAC3B,oFAAoF;QACpF,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kGAAkG;QAClG,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC;IAyDnB;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,uBAAuB,EAAE,GAAG,MAAM;IAenD;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAG1B"}
|
package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js
CHANGED
|
@@ -74,6 +74,10 @@ class DyNTS_LVS_PersistentVectorPool_ControlService {
|
|
|
74
74
|
search(query, k, mode) {
|
|
75
75
|
return this.pool.search(query, k, mode);
|
|
76
76
|
}
|
|
77
|
+
/** Nem-blokkoló keresés a memória-pool-on (BFR-AM-018) — a wrapped pool `searchAsync`-jét delegálja. */
|
|
78
|
+
searchAsync(query, k, mode, options) {
|
|
79
|
+
return this.pool.searchAsync(query, k, mode, undefined, options);
|
|
80
|
+
}
|
|
77
81
|
/**
|
|
78
82
|
* BOOT-HIDRATÁLÁS (FAM-minta, BFR-AM-001): a `collectionKey` ÖSSZES perzistált vektorát betölti a
|
|
79
83
|
* MEMÓRIA-pool-ba (`pool.addVector`), így a szerver-restart utáni in-memory index újraépül. A pool-t
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lvs-persistent-vector-pool.control-service.js","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lvs-persistent-vector-pool.control-service.js","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,5 +96,41 @@ export declare class LVS_VectorPool_ControlService {
|
|
|
96
96
|
* @returns A top-K találatok ID-val és score-rel, megfelelő sorrendben
|
|
97
97
|
*/
|
|
98
98
|
search(query: number[], k: number, mode: LVS_Search_Mode, candidateIds?: Set<string>): LVS_SearchResult[];
|
|
99
|
+
/**
|
|
100
|
+
* A `search` / `searchAsync` KÖZÖS bemenet-validációja (BFR-AM-018 refaktor — a két út PONTOSAN ugyanazokat a
|
|
101
|
+
* hibákat dobja és ugyanott ad üres eredményt).
|
|
102
|
+
*
|
|
103
|
+
* @returns `true`, ha a keresés eredménye triviálisan ÜRES (üres jelölt-halmaz / üres pool) — a hívó `[]`-t ad.
|
|
104
|
+
* @throws Érvénytelen query / k / mód / dimenzió esetén (változatlan üzenetekkel).
|
|
105
|
+
*/
|
|
106
|
+
private validateSearchInput;
|
|
107
|
+
/**
|
|
108
|
+
* **Nem-blokkoló** vektor-keresés (BFR-AM-018) — eredménye BÁJTRA AZONOS a `search`-ével (ugyanaz a
|
|
109
|
+
* dot-product / l2, ugyanaz a NaN-kizárás és rendezés), de a pool-bejárást **`yieldEvery` vektoronként**
|
|
110
|
+
* megszakítja, és `setImmediate`-tel **átadja a vezérlést az event-loopnak**.
|
|
111
|
+
*
|
|
112
|
+
* **Miért kell (MÉRVE, 2026-09-17, a FAM-on):** a szinkron `search` egy 318 000 × 2560-as táron **≈1,6 s**
|
|
113
|
+
* megszakítatlan CPU (a 9 perces CPU-profil aktív idejének ~⅓-a ez az egy függvény volt). Ennyi ideig a
|
|
114
|
+
* process **semmire nem válaszol**: a naplóban 11,5 s-os event-loop megállás (láncolt keresések), egy 135 s-os
|
|
115
|
+
* kérés, és egy **Mongo-újrakapcsolódás** (a heartbeat nem futhatott).
|
|
116
|
+
* ⚠️ A benchmark szerint az idő ~95 %-a maga a szorzás — a rendezés/allokáció NEM számít, ezért a javítás a
|
|
117
|
+
* **megszakíthatóság**, nem egy top-K szelekció.
|
|
118
|
+
*
|
|
119
|
+
* ⚠️ Egy puszta `await` NEM lenne elég: az microtask, közben az I/O-callbackek nem futnak. A `setImmediate`
|
|
120
|
+
* a check-fázisba tol, így a függő I/O (HTTP, DB-heartbeat) két darab között lefut.
|
|
121
|
+
*
|
|
122
|
+
* **Konkurens módosítás:** a keresés közben a pool változhat (`addVector`/`removeVector` egy másik kérésből).
|
|
123
|
+
* A `Map`-iteráció ezt definiáltan kezeli: a közben törölt elem kimarad, a közben hozzáadott bekerülhet — a
|
|
124
|
+
* rangsor mindig VALÓS, létező vektorokból áll.
|
|
125
|
+
*
|
|
126
|
+
* @param yieldEvery Ennyi vektor után ad át (default 4000 — 2560 dimenzión ≈ 20 ms egy darab).
|
|
127
|
+
*/
|
|
128
|
+
searchAsync(query: number[], k: number, mode: LVS_Search_Mode, candidateIds?: Set<string>, options?: {
|
|
129
|
+
yieldEvery?: number;
|
|
130
|
+
}): Promise<LVS_SearchResult[]>;
|
|
131
|
+
/** A `searchAsync` alapértelmezett darabmérete (vektor) — 2560 dimenzión ≈ 20 ms CPU egy darab. */
|
|
132
|
+
static readonly DEFAULT_YIELD_EVERY: number;
|
|
133
|
+
/** Makrotask-szintű átadás az event-loopnak (`setImmediate`) — a függő I/O két darab között lefut. */
|
|
134
|
+
static yieldToEventLoop(): Promise<void>;
|
|
99
135
|
}
|
|
100
136
|
//# sourceMappingURL=lvs-vector-pool.control-service.d.ts.map
|
package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lvs-vector-pool.control-service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E;;;;GAIG;AACH,qBAAa,6BAA6B;IACxC;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU,CAA8D;IAEhF;;;OAGG;IACH,OAAO,CAAC,oBAAoB,CAA8D;IAE1F;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;gBAE/B,GAAG,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE;IAI9C;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IA0B7C;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAShD;;;OAGG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,SAAS,IAAI,IAAI;IAKjB;;;OAGG;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAW/B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAqBjC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAa1B;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAuBzD;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM;IAmBrE;;;;;;;;;;;;OAYG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EAAE,EACf,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,eAAe,EACrB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,gBAAgB,EAAE;
|
|
1
|
+
{"version":3,"file":"lvs-vector-pool.control-service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E;;;;GAIG;AACH,qBAAa,6BAA6B;IACxC;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU,CAA8D;IAEhF;;;OAGG;IACH,OAAO,CAAC,oBAAoB,CAA8D;IAE1F;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;gBAE/B,GAAG,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE;IAI9C;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IA0B7C;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAShD;;;OAGG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,SAAS,IAAI,IAAI;IAKjB;;;OAGG;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAW/B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAqBjC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAa1B;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAuBzD;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM;IAmBrE;;;;;;;;;;;;OAYG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EAAE,EACf,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,eAAe,EACrB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,gBAAgB,EAAE;IA8DrB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAsD3B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EAAE,EACf,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,eAAe,EACrB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC1B,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAChC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAmD9B,mGAAmG;IACnG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAQ;IAEnD,sGAAsG;IACtG,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAKzC"}
|
|
@@ -187,9 +187,72 @@ class LVS_VectorPool_ControlService {
|
|
|
187
187
|
* @returns A top-K találatok ID-val és score-rel, megfelelő sorrendben
|
|
188
188
|
*/
|
|
189
189
|
search(query, k, mode, candidateIds) {
|
|
190
|
+
// A bemenet-validáció KÖZÖS a `searchAsync`-kel (azonos hibák, azonos üres-eredmény szabályok).
|
|
191
|
+
if (this.validateSearchInput(query, k, mode, candidateIds)) {
|
|
192
|
+
return [];
|
|
193
|
+
}
|
|
194
|
+
// Számoljuk ki a hasonlóságot/távolságot minden vektorra
|
|
195
|
+
const results = [];
|
|
196
|
+
if (mode === lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity) {
|
|
197
|
+
// PERF (BFR-AM-013): a query-t EGYSZER normalizáljuk, majd dot-product a MÁR ELŐRE eltárolt
|
|
198
|
+
// `normalizedVectorPool` (l2-normalizált) vektorok ellen. Eredmény AZONOS a régi
|
|
199
|
+
// `cosineSimilarity(query, vector)`-ral (= dot(norm(q), norm(v))), de:
|
|
200
|
+
// (1) NEM normalizáljuk újra MINDEN vektort MINDEN keresésnél (a normalizálás a `addVector`-ban
|
|
201
|
+
// egyszer megtörtént) → ~3× kevesebb FLOP;
|
|
202
|
+
// (2) a per-összehasonlítás dot-product ALLOKÁCIÓ-MENTES (a régi `l2Normalize` hívásonként KÉT új
|
|
203
|
+
// tömböt allokált → egy 24k-vektoros keresés ~48k tömb-allokáció + GC-spike-ot okozott).
|
|
204
|
+
// A drágán eltárolt `normalizedVectorPool` korábban SOHA nem volt használva a keresésben.
|
|
205
|
+
const queryNormalized = LVS_VectorPool_ControlService.l2NormalizeFloat32(query);
|
|
206
|
+
// BFR-AM-013 (NaN-guard, defensive): ha egy tárolt vektor mégis NaN-score-t adna (elvileg az
|
|
207
|
+
// addVector-guard kizárja), a találat KIESIK — nem mérgezi a rangsort — és warn-t adunk (nem néma).
|
|
208
|
+
let nanScoreCount = 0;
|
|
209
|
+
for (const [id, normalizedVector] of this.normalizedVectorPool.entries()) {
|
|
210
|
+
if (candidateIds && !candidateIds.has(id)) {
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
let dotProduct = 0;
|
|
214
|
+
for (let i = 0; i < queryNormalized.length; i++) {
|
|
215
|
+
dotProduct += queryNormalized[i] * normalizedVector[i];
|
|
216
|
+
}
|
|
217
|
+
if (!Number.isFinite(dotProduct)) {
|
|
218
|
+
nanScoreCount++;
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
results.push({ id, score: dotProduct });
|
|
222
|
+
}
|
|
223
|
+
if (nanScoreCount) {
|
|
224
|
+
fsm_dynamo_1.DyFM_Log.warn(`[LVS search] ${nanScoreCount} vector(s) produced non-finite scores and were skipped.`);
|
|
225
|
+
}
|
|
226
|
+
// Cosine similarity: csökkenő sorrend (legnagyobb hasonlóság először)
|
|
227
|
+
results.sort((a, b) => b.score - a.score);
|
|
228
|
+
}
|
|
229
|
+
else if (mode === lvs_search_mode_enum_1.LVS_Search_Mode.l2Distance) {
|
|
230
|
+
for (const [id, vector] of this.vectorPool.entries()) {
|
|
231
|
+
if (candidateIds && !candidateIds.has(id)) {
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
results.push({ id, score: LVS_VectorPool_ControlService.l2Distance(query, vector) });
|
|
235
|
+
}
|
|
236
|
+
// L2 distance: növekvő sorrend (legkisebb távolság először)
|
|
237
|
+
results.sort((a, b) => a.score - b.score);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
throw new Error(`Unknown search mode: ${mode}`);
|
|
241
|
+
}
|
|
242
|
+
// Visszaadjuk a top-K találatot
|
|
243
|
+
return results.slice(0, k);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* A `search` / `searchAsync` KÖZÖS bemenet-validációja (BFR-AM-018 refaktor — a két út PONTOSAN ugyanazokat a
|
|
247
|
+
* hibákat dobja és ugyanott ad üres eredményt).
|
|
248
|
+
*
|
|
249
|
+
* @returns `true`, ha a keresés eredménye triviálisan ÜRES (üres jelölt-halmaz / üres pool) — a hívó `[]`-t ad.
|
|
250
|
+
* @throws Érvénytelen query / k / mód / dimenzió esetén (változatlan üzenetekkel).
|
|
251
|
+
*/
|
|
252
|
+
validateSearchInput(query, k, mode, candidateIds) {
|
|
190
253
|
// Üres jelölt-halmaz → nincs mit keresni (a `undefined` viszont „nincs szűrés" = teljes pool).
|
|
191
254
|
if (candidateIds && candidateIds.size === 0) {
|
|
192
|
-
return
|
|
255
|
+
return true;
|
|
193
256
|
}
|
|
194
257
|
if (!Array.isArray(query) || query.length === 0) {
|
|
195
258
|
throw new Error('Query vector must be a non-empty array');
|
|
@@ -211,7 +274,7 @@ class LVS_VectorPool_ControlService {
|
|
|
211
274
|
// Üres pool → üres eredmény. A `normalizedVectorPool` a forrás (mindkét módban populált; a nyers
|
|
212
275
|
// `vectorPool` `normalizedOnly`-ban üres, ezért NEM azon ellenőrzünk).
|
|
213
276
|
if (this.normalizedVectorPool.size === 0) {
|
|
214
|
-
return
|
|
277
|
+
return true;
|
|
215
278
|
}
|
|
216
279
|
// Validáljuk, hogy minden vektor ugyanolyan dimenziójú-e. A referencia-pool mód-függő: l2 a nyers,
|
|
217
280
|
// cosine a normalizált (azonos dimenzió, de `normalizedOnly`-ban a nyers pool üres).
|
|
@@ -221,22 +284,43 @@ class LVS_VectorPool_ControlService {
|
|
|
221
284
|
throw new Error(`Query vector dimension (${query.length}) does not match pool vector ` +
|
|
222
285
|
`dimension (${firstVector.length})`);
|
|
223
286
|
}
|
|
224
|
-
|
|
287
|
+
return false;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* **Nem-blokkoló** vektor-keresés (BFR-AM-018) — eredménye BÁJTRA AZONOS a `search`-ével (ugyanaz a
|
|
291
|
+
* dot-product / l2, ugyanaz a NaN-kizárás és rendezés), de a pool-bejárást **`yieldEvery` vektoronként**
|
|
292
|
+
* megszakítja, és `setImmediate`-tel **átadja a vezérlést az event-loopnak**.
|
|
293
|
+
*
|
|
294
|
+
* **Miért kell (MÉRVE, 2026-09-17, a FAM-on):** a szinkron `search` egy 318 000 × 2560-as táron **≈1,6 s**
|
|
295
|
+
* megszakítatlan CPU (a 9 perces CPU-profil aktív idejének ~⅓-a ez az egy függvény volt). Ennyi ideig a
|
|
296
|
+
* process **semmire nem válaszol**: a naplóban 11,5 s-os event-loop megállás (láncolt keresések), egy 135 s-os
|
|
297
|
+
* kérés, és egy **Mongo-újrakapcsolódás** (a heartbeat nem futhatott).
|
|
298
|
+
* ⚠️ A benchmark szerint az idő ~95 %-a maga a szorzás — a rendezés/allokáció NEM számít, ezért a javítás a
|
|
299
|
+
* **megszakíthatóság**, nem egy top-K szelekció.
|
|
300
|
+
*
|
|
301
|
+
* ⚠️ Egy puszta `await` NEM lenne elég: az microtask, közben az I/O-callbackek nem futnak. A `setImmediate`
|
|
302
|
+
* a check-fázisba tol, így a függő I/O (HTTP, DB-heartbeat) két darab között lefut.
|
|
303
|
+
*
|
|
304
|
+
* **Konkurens módosítás:** a keresés közben a pool változhat (`addVector`/`removeVector` egy másik kérésből).
|
|
305
|
+
* A `Map`-iteráció ezt definiáltan kezeli: a közben törölt elem kimarad, a közben hozzáadott bekerülhet — a
|
|
306
|
+
* rangsor mindig VALÓS, létező vektorokból áll.
|
|
307
|
+
*
|
|
308
|
+
* @param yieldEvery Ennyi vektor után ad át (default 4000 — 2560 dimenzión ≈ 20 ms egy darab).
|
|
309
|
+
*/
|
|
310
|
+
async searchAsync(query, k, mode, candidateIds, options) {
|
|
311
|
+
if (this.validateSearchInput(query, k, mode, candidateIds)) {
|
|
312
|
+
return [];
|
|
313
|
+
}
|
|
314
|
+
const yieldEvery = Math.max(1, Math.floor(options?.yieldEvery ?? LVS_VectorPool_ControlService.DEFAULT_YIELD_EVERY));
|
|
225
315
|
const results = [];
|
|
316
|
+
let processed = 0;
|
|
226
317
|
if (mode === lvs_search_mode_enum_1.LVS_Search_Mode.cosineSimilarity) {
|
|
227
|
-
// PERF (BFR-AM-013): a query-t EGYSZER normalizáljuk, majd dot-product a MÁR ELŐRE eltárolt
|
|
228
|
-
// `normalizedVectorPool` (l2-normalizált) vektorok ellen. Eredmény AZONOS a régi
|
|
229
|
-
// `cosineSimilarity(query, vector)`-ral (= dot(norm(q), norm(v))), de:
|
|
230
|
-
// (1) NEM normalizáljuk újra MINDEN vektort MINDEN keresésnél (a normalizálás a `addVector`-ban
|
|
231
|
-
// egyszer megtörtént) → ~3× kevesebb FLOP;
|
|
232
|
-
// (2) a per-összehasonlítás dot-product ALLOKÁCIÓ-MENTES (a régi `l2Normalize` hívásonként KÉT új
|
|
233
|
-
// tömböt allokált → egy 24k-vektoros keresés ~48k tömb-allokáció + GC-spike-ot okozott).
|
|
234
|
-
// A drágán eltárolt `normalizedVectorPool` korábban SOHA nem volt használva a keresésben.
|
|
235
318
|
const queryNormalized = LVS_VectorPool_ControlService.l2NormalizeFloat32(query);
|
|
236
|
-
// BFR-AM-013 (NaN-guard, defensive): ha egy tárolt vektor mégis NaN-score-t adna (elvileg az
|
|
237
|
-
// addVector-guard kizárja), a találat KIESIK — nem mérgezi a rangsort — és warn-t adunk (nem néma).
|
|
238
319
|
let nanScoreCount = 0;
|
|
239
320
|
for (const [id, normalizedVector] of this.normalizedVectorPool.entries()) {
|
|
321
|
+
if (++processed % yieldEvery === 0) {
|
|
322
|
+
await LVS_VectorPool_ControlService.yieldToEventLoop();
|
|
323
|
+
}
|
|
240
324
|
if (candidateIds && !candidateIds.has(id)) {
|
|
241
325
|
continue;
|
|
242
326
|
}
|
|
@@ -251,27 +335,35 @@ class LVS_VectorPool_ControlService {
|
|
|
251
335
|
results.push({ id, score: dotProduct });
|
|
252
336
|
}
|
|
253
337
|
if (nanScoreCount) {
|
|
254
|
-
fsm_dynamo_1.DyFM_Log.warn(`[LVS
|
|
338
|
+
fsm_dynamo_1.DyFM_Log.warn(`[LVS searchAsync] ${nanScoreCount} vector(s) produced non-finite scores and were skipped.`);
|
|
255
339
|
}
|
|
256
|
-
// Cosine similarity: csökkenő sorrend (legnagyobb hasonlóság először)
|
|
257
340
|
results.sort((a, b) => b.score - a.score);
|
|
258
341
|
}
|
|
259
342
|
else if (mode === lvs_search_mode_enum_1.LVS_Search_Mode.l2Distance) {
|
|
260
343
|
for (const [id, vector] of this.vectorPool.entries()) {
|
|
344
|
+
if (++processed % yieldEvery === 0) {
|
|
345
|
+
await LVS_VectorPool_ControlService.yieldToEventLoop();
|
|
346
|
+
}
|
|
261
347
|
if (candidateIds && !candidateIds.has(id)) {
|
|
262
348
|
continue;
|
|
263
349
|
}
|
|
264
350
|
results.push({ id, score: LVS_VectorPool_ControlService.l2Distance(query, vector) });
|
|
265
351
|
}
|
|
266
|
-
// L2 distance: növekvő sorrend (legkisebb távolság először)
|
|
267
352
|
results.sort((a, b) => a.score - b.score);
|
|
268
353
|
}
|
|
269
354
|
else {
|
|
270
355
|
throw new Error(`Unknown search mode: ${mode}`);
|
|
271
356
|
}
|
|
272
|
-
// Visszaadjuk a top-K találatot
|
|
273
357
|
return results.slice(0, k);
|
|
274
358
|
}
|
|
359
|
+
/** A `searchAsync` alapértelmezett darabmérete (vektor) — 2560 dimenzión ≈ 20 ms CPU egy darab. */
|
|
360
|
+
static DEFAULT_YIELD_EVERY = 4000;
|
|
361
|
+
/** Makrotask-szintű átadás az event-loopnak (`setImmediate`) — a függő I/O két darab között lefut. */
|
|
362
|
+
static yieldToEventLoop() {
|
|
363
|
+
return new Promise((resolveYield) => {
|
|
364
|
+
setImmediate(resolveYield);
|
|
365
|
+
});
|
|
366
|
+
}
|
|
275
367
|
}
|
|
276
368
|
exports.LVS_VectorPool_ControlService = LVS_VectorPool_ControlService;
|
|
277
369
|
//# sourceMappingURL=lvs-vector-pool.control-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lvs-vector-pool.control-service.js","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lvs-vector-pool.control-service.js","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AAEjD,yEAAiE;AAGjE;;;;GAIG;AACH,MAAa,6BAA6B;IACxC;;;;;;;;OAQG;IACK,UAAU,GAA8B,IAAI,GAAG,EAAwB,CAAC;IAEhF;;;OAGG;IACK,oBAAoB,GAA8B,IAAI,GAAG,EAAwB,CAAC;IAE1F;;;;;OAKG;IACc,gBAAgB,CAAU;IAE3C,YAAY,GAAkC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,cAAc,IAAI,KAAK,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,EAAU,EAAE,MAAgB;QACpC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,0CAA0C;QAC1C,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAED,0GAA0G;QAC1G,oEAAoE;QACpE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,yEAAyE;QACzE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,6BAA6B,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,EAAU;QACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,EAAU,EAAE,MAAgB;QACvC,yGAAyG;QACzG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,mFAAmF;QACnF,MAAM,MAAM,GAA0B,IAAI,GAAG,EAAoB,CAAC;QAElE,KAAK,MAAM,CAAE,EAAE,EAAE,MAAM,CAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,kBAAkB,CAAC,MAAyB;QACzD,IAAI,UAAU,GAAW,CAAC,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,SAAS,GAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhD,MAAM,UAAU,GAAiB,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACxC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,WAAW,CAAC,MAAgB;QACzC,MAAM,SAAS,GAAW,IAAI,CAAC,IAAI,CACjC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CACtE,CAAC;QAEF,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,yDAAyD;YACzD,OAAO,IAAI,KAAK,CAAS,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,CAAW,EAAE,CAAW;QAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,6CAA6C,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,MAAM,EAAE,CACxE,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,MAAM,WAAW,GAAa,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,WAAW,GAAa,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAElD,wBAAwB;QACxB,IAAI,UAAU,GAAW,CAAC,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,UAAU,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,wDAAwD;QACxD,qEAAqE;QACrE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAoB,EAAE,CAAoB;QAC1D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,6CAA6C,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,MAAM,EAAE,CACxE,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,IAAI,cAAc,GAAW,CAAC,CAAC;QAE/B,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjC,cAAc,IAAI,IAAI,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CACJ,KAAe,EACf,CAAS,EACT,IAAqB,EACrB,YAA0B;QAE1B,gGAAgG;QAChG,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,yDAAyD;QACzD,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,IAAI,IAAI,KAAK,sCAAe,CAAC,gBAAgB,EAAE,CAAC;YAC9C,4FAA4F;YAC5F,iFAAiF;YACjF,uEAAuE;YACvE,iGAAiG;YACjG,gDAAgD;YAChD,mGAAmG;YACnG,8FAA8F;YAC9F,0FAA0F;YAC1F,MAAM,eAAe,GAAiB,6BAA6B,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC9F,6FAA6F;YAC7F,oGAAoG;YACpG,IAAI,aAAa,GAAW,CAAC,CAAC;YAE9B,KAAK,MAAM,CAAE,EAAE,EAAE,gBAAgB,CAAE,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3E,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,IAAI,UAAU,GAAW,CAAC,CAAC;gBAE3B,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxD,UAAU,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACzD,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACjC,aAAa,EAAE,CAAC;oBAChB,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,aAAa,EAAE,CAAC;gBAClB,qBAAQ,CAAC,IAAI,CAAC,gBAAgB,aAAa,yDAAyD,CAAC,CAAC;YACxG,CAAC;YACD,sEAAsE;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,IAAI,KAAK,sCAAe,CAAC,UAAU,EAAE,CAAC;YAC/C,KAAK,MAAM,CAAE,EAAE,EAAE,MAAM,CAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBACvD,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACvF,CAAC;YACD,4DAA4D;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,gCAAgC;QAChC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACK,mBAAmB,CACzB,KAAe,EACf,CAAS,EACT,IAAqB,EACrB,YAA0B;QAE1B,+FAA+F;QAC/F,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,qFAAqF;QACrF,0FAA0F;QAC1F,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,GAAG,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,sFAAsF;QACtF,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,KAAK,sCAAe,CAAC,UAAU,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;QAC5G,CAAC;QAED,iGAAiG;QACjG,uEAAuE;QACvE,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mGAAmG;QACnG,qFAAqF;QACrF,MAAM,aAAa,GACjB,IAAI,KAAK,sCAAe,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACpF,MAAM,WAAW,GAA6B,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAElF,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CACb,2BAA2B,KAAK,CAAC,MAAM,+BAA+B;gBACtE,cAAc,WAAW,CAAC,MAAM,GAAG,CACpC,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,WAAW,CACf,KAAe,EACf,CAAS,EACT,IAAqB,EACrB,YAA0B,EAC1B,OAAiC;QAEjC,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,UAAU,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,6BAA6B,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7H,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,IAAI,SAAS,GAAW,CAAC,CAAC;QAE1B,IAAI,IAAI,KAAK,sCAAe,CAAC,gBAAgB,EAAE,CAAC;YAC9C,MAAM,eAAe,GAAiB,6BAA6B,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC9F,IAAI,aAAa,GAAW,CAAC,CAAC;YAE9B,KAAK,MAAM,CAAE,EAAE,EAAE,gBAAgB,CAAE,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3E,IAAI,EAAE,SAAS,GAAG,UAAU,KAAK,CAAC,EAAE,CAAC;oBACnC,MAAM,6BAA6B,CAAC,gBAAgB,EAAE,CAAC;gBACzD,CAAC;gBACD,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,IAAI,UAAU,GAAW,CAAC,CAAC;gBAC3B,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxD,UAAU,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACzD,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACjC,aAAa,EAAE,CAAC;oBAChB,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,aAAa,EAAE,CAAC;gBAClB,qBAAQ,CAAC,IAAI,CAAC,qBAAqB,aAAa,yDAAyD,CAAC,CAAC;YAC7G,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAU,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACxF,CAAC;aAAM,IAAI,IAAI,KAAK,sCAAe,CAAC,UAAU,EAAE,CAAC;YAC/C,KAAK,MAAM,CAAE,EAAE,EAAE,MAAM,CAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBACvD,IAAI,EAAE,SAAS,GAAG,UAAU,KAAK,CAAC,EAAE,CAAC;oBACnC,MAAM,6BAA6B,CAAC,gBAAgB,EAAE,CAAC;gBACzD,CAAC;gBACD,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACvF,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAU,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,mGAAmG;IACnG,MAAM,CAAU,mBAAmB,GAAW,IAAI,CAAC;IAEnD,sGAAsG;IACtG,MAAM,CAAC,gBAAgB;QACrB,OAAO,IAAI,OAAO,CAAO,CAAC,YAAwB,EAAQ,EAAE;YAC1D,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;;AAlbH,sEAmbC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Request, Response } from 'express';
|
|
2
2
|
import { DyNTS_SingletonService } from '../base/singleton.service';
|
|
3
|
+
import { DyNTS_Operation_Identity } from '../../_models/interfaces/operation-identity.interface';
|
|
3
4
|
/**
|
|
4
5
|
* Extend this class as an Auth Service implementation
|
|
5
6
|
*
|
|
@@ -141,6 +142,18 @@ export declare abstract class DyNTS_AuthService extends DyNTS_SingletonService {
|
|
|
141
142
|
* @throws {DyFM_Error} `DyNTS-AS0-GI0` — ha a keresbol nem alllapithato meg az issuer.
|
|
142
143
|
*/
|
|
143
144
|
requireIssuerFromRequest(req: Request): string;
|
|
145
|
+
/**
|
|
146
|
+
* HP-DOPL MP-2.2 — the caller identity of an operation call.
|
|
147
|
+
*
|
|
148
|
+
* Default (non-breaking for existing subclasses): an authenticated `token` call when `getIssuerFromRequest`
|
|
149
|
+
* resolves an issuer, otherwise an anonymous call. It never throws — a failing lookup counts as anonymous,
|
|
150
|
+
* and the operation's authorization then decides (401 for protected operations).
|
|
151
|
+
*
|
|
152
|
+
* ⚠️ Override it where the auth layer knows more: API key calls (`authKind: api-key`, the key's account as
|
|
153
|
+
* issuer, its scopes) and the service's own `clientUserId` — e.g. in `nts-fdp-templates` (HP-DOPL MP-5.2).
|
|
154
|
+
* @param req - the incoming request
|
|
155
|
+
*/
|
|
156
|
+
getOperationIdentityFromRequest(req: Request): DyNTS_Operation_Identity;
|
|
144
157
|
/**
|
|
145
158
|
* Basic Module: UsageModule uses this function
|
|
146
159
|
* @param req
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/auth.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/auth.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AAEjG;;;;;;;;;;;;GAYG;AACH,8BAAsB,iBAAkB,SAAQ,sBAAsB;IAEpE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAiB;IAE7C,SAAkB,mBAAmB,SAEkB;IAEvD;;;;;;OAMG;IACH,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IAgCzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA4BK;IACL,QAAQ,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,QAAQ,CAAC,sBAAsB,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhF;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,mCAAmC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7F;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAEhE;;;;;;;;;;;;;;;;;;OAkBG;IACH,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IAiB9C;;;;;;;;;;OAUG;IACH,+BAA+B,CAAC,GAAG,EAAE,OAAO,GAAG,wBAAwB;IAcvE;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;CACtD"}
|
|
@@ -89,6 +89,29 @@ class DyNTS_AuthService extends singleton_service_1.DyNTS_SingletonService {
|
|
|
89
89
|
}
|
|
90
90
|
return issuer;
|
|
91
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* HP-DOPL MP-2.2 — the caller identity of an operation call.
|
|
94
|
+
*
|
|
95
|
+
* Default (non-breaking for existing subclasses): an authenticated `token` call when `getIssuerFromRequest`
|
|
96
|
+
* resolves an issuer, otherwise an anonymous call. It never throws — a failing lookup counts as anonymous,
|
|
97
|
+
* and the operation's authorization then decides (401 for protected operations).
|
|
98
|
+
*
|
|
99
|
+
* ⚠️ Override it where the auth layer knows more: API key calls (`authKind: api-key`, the key's account as
|
|
100
|
+
* issuer, its scopes) and the service's own `clientUserId` — e.g. in `nts-fdp-templates` (HP-DOPL MP-5.2).
|
|
101
|
+
* @param req - the incoming request
|
|
102
|
+
*/
|
|
103
|
+
getOperationIdentityFromRequest(req) {
|
|
104
|
+
let issuer;
|
|
105
|
+
try {
|
|
106
|
+
issuer = this.getIssuerFromRequest(req);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
issuer = undefined;
|
|
110
|
+
}
|
|
111
|
+
return issuer ?
|
|
112
|
+
{ authKind: fsm_dynamo_1.DyFM_OperationAuth_Type.token, issuer: issuer } :
|
|
113
|
+
{ authKind: fsm_dynamo_1.DyFM_OperationAuth_Type.none };
|
|
114
|
+
}
|
|
92
115
|
}
|
|
93
116
|
exports.DyNTS_AuthService = DyNTS_AuthService;
|
|
94
117
|
//# sourceMappingURL=auth.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/_services/core/auth.service.ts"],"names":[],"mappings":";;;AAGA,
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/_services/core/auth.service.ts"],"names":[],"mappings":";;;AAGA,sDAA4E;AAE5E,iEAAmE;AACnE,oFAAiF;AAGjF;;;;;;;;;;;;GAYG;AACH,MAAsB,iBAAkB,SAAQ,0CAAsB;IAE3D,WAAW,GAAW,aAAa,CAAC;IAE3B,mBAAmB,GACnC,0CAA0C;QAC1C,oDAAoD,CAAC;IAEvD;;;;;;OAMG;IACH,mBAAmB,CAAC,GAAY;QAC9B,MAAM,UAAU,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,CAAC;QAEnD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,uBAAU,CAAC;gBACnB,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gBACvE,cAAc,EAAE,IAAI;gBACpB,OAAO,EAAE,qBAAqB;gBAC9B,WAAW,EAAE,IAAI,CAAC,mBAAmB;gBACrC,aAAa,EAAE,IAAI,CAAC,WAAW;gBAC/B,mBAAmB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,uBAAU,CAAC;gBACnB,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gBACvE,cAAc,EAAE,IAAI;gBACpB,OAAO,EAAE,gBAAgB;gBACzB,WAAW,EAAE,IAAI,CAAC,mBAAmB;gBACrC,aAAa,EAAE,IAAI,CAAC,WAAW;gBAC/B,mBAAmB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAuGD;;;;;;;;;;;;;;;;;;OAkBG;IACH,wBAAwB,CAAC,GAAY;QACnC,MAAM,MAAM,GAAuB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAElE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,uBAAU,CAAC;gBACnB,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gBACvE,cAAc,EAAE,IAAI;gBACpB,OAAO,EAAE,gDAAgD;gBACzD,WAAW,EAAE,IAAI,CAAC,mBAAmB;gBACrC,aAAa,EAAE,IAAI,CAAC,WAAW;gBAC/B,mBAAmB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE;aACzF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IACD;;;;;;;;;;OAUG;IACH,+BAA+B,CAAC,GAAY;QAC1C,IAAI,MAA0B,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,MAAM,CAAC,CAAC;YACb,EAAE,QAAQ,EAAE,oCAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,EAAE,QAAQ,EAAE,oCAAuB,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;CAOF;AAtND,8CAsNC"}
|
|
@@ -24,6 +24,14 @@ export interface DyNTS_CollectionGrowthMonitor_Config {
|
|
|
24
24
|
sizeThresholdDocCount?: number;
|
|
25
25
|
/** Warn when a collection grew by more than this percent since the previous poll. Default: 50. */
|
|
26
26
|
growthRateThresholdPct?: number;
|
|
27
|
+
/**
|
|
28
|
+
* BFR-AM-017 — PER-COLLECTION size threshold override, keyed by `dataName`. Collections not listed use
|
|
29
|
+
* `sizeThresholdDocCount`. Why: a single global number cannot serve both an intentionally huge collection
|
|
30
|
+
* (FAM `fam_codebases`: 317 890 docs of real source code → a permanent false alarm) and a small one whose
|
|
31
|
+
* runaway growth MUST alert (FAM `fam_ingest_runs` reached 367 000 from a real leak — raising the global
|
|
32
|
+
* threshold to 400 000 would have hidden exactly that). Non-positive / non-finite values are ignored.
|
|
33
|
+
*/
|
|
34
|
+
sizeThresholdByCollection?: Record<string, number>;
|
|
27
35
|
/** Re-alert cooldown per collection per alert-kind, in ms (anti-flood). Default: 3600000 (1 h). */
|
|
28
36
|
reAlertCooldownMs?: number;
|
|
29
37
|
}
|
|
@@ -45,6 +53,7 @@ export declare class DyNTS_CollectionGrowthMonitor extends DyNTS_SingletonServic
|
|
|
45
53
|
private pollIntervalMs;
|
|
46
54
|
private sizeThresholdDocCount;
|
|
47
55
|
private growthRateThresholdPct;
|
|
56
|
+
private sizeThresholdByCollection;
|
|
48
57
|
private reAlertCooldownMs;
|
|
49
58
|
private readonly lastSnapshotByCollection;
|
|
50
59
|
/** Last time we alerted, keyed by `${dataName}:${kind}` — for the anti-flood cooldown. */
|
|
@@ -62,6 +71,12 @@ export declare class DyNTS_CollectionGrowthMonitor extends DyNTS_SingletonServic
|
|
|
62
71
|
* fires when the collection grew by more than `growthRatePct` since the last snapshot (needs a
|
|
63
72
|
* non-zero previous count).
|
|
64
73
|
*/
|
|
74
|
+
/**
|
|
75
|
+
* PURE (BFR-AM-017) — the effective size threshold for one collection: the per-collection override if it is a
|
|
76
|
+
* positive finite number, otherwise the global threshold. A bad override (0, negative, NaN) must never silence
|
|
77
|
+
* the monitor, so it falls back to the global value instead of being applied.
|
|
78
|
+
*/
|
|
79
|
+
static resolveSizeThreshold(dataName: string, globalThreshold: number, byCollection?: Record<string, number>): number;
|
|
65
80
|
static evaluateGrowth(dataName: string, count: number, last: CollectionSnapshot | undefined, sizeThreshold: number, growthRatePct: number, retentionTtlSec?: number): DyNTS_CollectionGrowthAlert[];
|
|
66
81
|
/**
|
|
67
82
|
* One poll cycle: sample every registered collection's `estimatedDocumentCount()` (scan-free) and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-growth-monitor.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/collection-growth-monitor.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAG5E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,oCAAoC;IACnD,8FAA8F;IAC9F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sGAAsG;IACtG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mGAAmG;IACnG,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wDAAwD;AACxD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,6BAA8B,SAAQ,0BAA0B;IAE3E,MAAM,CAAC,WAAW,IAAI,6BAA6B;IAInD,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,oBAAoB,CAAkB;IAG9C,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,sBAAsB,CAAc;IAC5C,OAAO,CAAC,iBAAiB,CAAmB;IAE5C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA8C;IACvF,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IAEnE,SAAS;IAIT;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,oCAAoC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"collection-growth-monitor.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/collection-growth-monitor.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAG5E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,oCAAoC;IACnD,8FAA8F;IAC9F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sGAAsG;IACtG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;;OAMG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,mGAAmG;IACnG,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wDAAwD;AACxD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,6BAA8B,SAAQ,0BAA0B;IAE3E,MAAM,CAAC,WAAW,IAAI,6BAA6B;IAInD,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,oBAAoB,CAAkB;IAG9C,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,sBAAsB,CAAc;IAC5C,OAAO,CAAC,yBAAyB,CAA8B;IAC/D,OAAO,CAAC,iBAAiB,CAAmB;IAE5C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA8C;IACvF,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IAEnE,SAAS;IAIT;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,oCAAoC,GAAG,IAAI;IAqC5D;;;;;OAKG;IACH;;;;OAIG;IACH,MAAM,CAAC,oBAAoB,CACzB,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/E,MAAM;IAKT,MAAM,CAAC,cAAc,CACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,kBAAkB,GAAG,SAAS,EACpC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,GACvB,2BAA2B,EAAE;IA+ChC;;;OAGG;YACW,IAAI;IA+ClB,yGAAyG;IACzG,OAAO,CAAC,SAAS;IAoBjB,yFAAyF;IACzF,mBAAmB,IAAI,IAAI;CAQ5B"}
|