@futdevpro/nts-dynamo 1.15.73 → 1.15.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__documentations/plans/BEDROCK-HYPERPLAN.md +95 -95
- package/build/_collections/global-settings.const.d.ts.map +1 -1
- package/build/_collections/global-settings.const.js +1 -0
- package/build/_collections/global-settings.const.js.map +1 -1
- package/build/_models/interfaces/global-settings.interface.d.ts +7 -0
- package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
- package/build/_services/core/memory-guard.service.d.ts +5 -0
- package/build/_services/core/memory-guard.service.d.ts.map +1 -1
- package/build/_services/core/memory-guard.service.js +12 -3
- package/build/_services/core/memory-guard.service.js.map +1 -1
- package/package.json +1 -1
- package/src/_collections/global-settings.const.ts +1 -0
- package/src/_models/interfaces/global-settings.interface.ts +216 -209
- package/src/_services/core/memory-guard.service.spec.ts +245 -227
- package/src/_services/core/memory-guard.service.ts +481 -470
|
@@ -1,209 +1,216 @@
|
|
|
1
|
-
import { DyFM_EnvironmentFlag } from '@futdevpro/fsm-dynamo';
|
|
2
|
-
import { DyNTS_RouteSecurity } from '../../_enums/route-security.enum';
|
|
3
|
-
import { DyNTS_SocketSecurity } from '../../_modules/socket/_enums/socket-security.enum';
|
|
4
|
-
import { DyNTS_GlobalLog_Settings } from './global-log-settings.interface';
|
|
5
|
-
import { DyNTS_Environment_Settings } from './environment-settings.interface';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* @param logRequestsContent only will log if the specific logRequest is also true
|
|
11
|
-
*
|
|
12
|
-
* @param logEventContent only will log if the specific socket event is also set to log
|
|
13
|
-
*
|
|
14
|
-
*/
|
|
15
|
-
export interface DyNTS_Global_Settings {
|
|
16
|
-
|
|
17
|
-
env_settings: DyNTS_Environment_Settings;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* this will be used as the main baseUrl for the application,
|
|
21
|
-
* this is not required, but we suggest to use at least a '/api' as base route
|
|
22
|
-
*/
|
|
23
|
-
baseUrl: string;
|
|
24
|
-
/**
|
|
25
|
-
* this sets the default security for routes
|
|
26
|
-
*/
|
|
27
|
-
defaultRouteSecurity: DyNTS_RouteSecurity;
|
|
28
|
-
/**
|
|
29
|
-
* this sets the default security for sockets
|
|
30
|
-
*/
|
|
31
|
-
defaultSocketSecurity: DyNTS_SocketSecurity;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* this is the name of the system, this will be used for the server status
|
|
35
|
-
*/
|
|
36
|
-
systemName?: string;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* this is the short code name of the system, this will be used for the logs and errors
|
|
40
|
-
*/
|
|
41
|
-
systemShortCodeName?: string;
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* this is the version of the system, this will be used for the logs and errors
|
|
45
|
-
*/
|
|
46
|
-
systemVersion: string;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* this setting will set if the default route should be created
|
|
50
|
-
*/
|
|
51
|
-
dontCreateDefaultRoute?: boolean;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
*
|
|
55
|
-
*/
|
|
56
|
-
autoResolveEndpointCirculationErrors: boolean;
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* this setting will set the compact error response mode for the system
|
|
60
|
-
*/
|
|
61
|
-
compactErrorResponse: boolean;
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* this is the default page size for pagination
|
|
65
|
-
*/
|
|
66
|
-
defaultPageSize: number;
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* this is the number of items to archive in the list, this will be used to archive the list
|
|
70
|
-
*/
|
|
71
|
-
archiveListAfter: number;
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* this is the environment of the system
|
|
75
|
-
*/
|
|
76
|
-
/* environment: DyFM_EnvironmentFlag; */
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* this setting will set which logs will be shown
|
|
80
|
-
*/
|
|
81
|
-
log_settings: DyNTS_GlobalLog_Settings;
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* this setting will set the research issues mode for the system
|
|
85
|
-
*/
|
|
86
|
-
autoResearchIssues: boolean;
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* this setting will set the bot settings
|
|
90
|
-
* (this will be set in the {@link DyNTS_Bot_Main_ControlService} constructor)
|
|
91
|
-
*
|
|
92
|
-
* {@link DyNTS_GlobalBot_Settings}
|
|
93
|
-
* default settings: {@link DyNTS_Bot_Global_Settings}
|
|
94
|
-
*/
|
|
95
|
-
bot_settings: any;
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* this setting will set the openai settings
|
|
99
|
-
* (this will be set in the {@link DyNTS_OAI_LLMChat_ServiceBase} constructor)
|
|
100
|
-
*
|
|
101
|
-
* {@link DyNTS_OpenAI_Settings}
|
|
102
|
-
* default settings: {@link DyNTS_OAI_global_settings}
|
|
103
|
-
*/
|
|
104
|
-
openAi_settings: any;
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* this setting will set the dias settings
|
|
108
|
-
* (this will be set in the {@link DyNTS_OAI_LLM_ServiceBase} constructor, if not set already)
|
|
109
|
-
* ({@link DyNTS_OAI_VectorDataService} is not using this, but its own settings)
|
|
110
|
-
*
|
|
111
|
-
* {@link DyNTS_DiAs_Global_Settings}
|
|
112
|
-
* default settings: {@link DyNTS_DiAs_Global_Settings}
|
|
113
|
-
*/
|
|
114
|
-
dias_settings: any;
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* this setting will set the assistant settings
|
|
118
|
-
* (this will be set in the {@link DyNTS_Ass_ServiceBase} constructor)
|
|
119
|
-
*
|
|
120
|
-
* {@link DyNTS_Ass_Global_Settings}
|
|
121
|
-
* default settings: {@link DyNTS_Ass_global_settings}
|
|
122
|
-
*/
|
|
123
|
-
assistant_settings?: any;
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Auth-service beállítások.
|
|
127
|
-
*
|
|
128
|
-
* Ha `optional: true`, a framework NEM követeli meg az egyedi Auth Service-t:
|
|
129
|
-
* a {@link DyNTS_GlobalService.getAuthService} hiányzó service esetén `undefined`-ot
|
|
130
|
-
* ad vissza a `"Unique Authentication Service missing!"` hiba DOBÁSA HELYETT, és
|
|
131
|
-
* a startup-warn ('Authentication Service missing!') is elmarad. Public / no-auth
|
|
132
|
-
* szervereknek (pl. nyílt RAG/MCP backend), ahol nincs saját auth-réteg.
|
|
133
|
-
*
|
|
134
|
-
* Default: `{ optional: false }` — az auth-service kötelező (visszafelé kompatibilis,
|
|
135
|
-
* a régi viselkedés: hiányzó service → dobott hiba).
|
|
136
|
-
*/
|
|
137
|
-
auth_settings?: {
|
|
138
|
-
/**
|
|
139
|
-
* Ha `true`, az Auth Service opcionális: `getAuthService()` NEM dob hiányzó
|
|
140
|
-
* service esetén, hanem `undefined`-ot ad vissza (a hívók optional-chaining-gel
|
|
141
|
-
* kezelik), és a startup 'Authentication Service missing!' warn is elmarad.
|
|
142
|
-
* Default: `false`.
|
|
143
|
-
*/
|
|
144
|
-
optional?: boolean;
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* this setting will set the doc chunking settings
|
|
149
|
-
*/
|
|
150
|
-
docChunking: {
|
|
151
|
-
maxChunkSize: number;
|
|
152
|
-
maxChunkCount: number;
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* this setting will set the messaging settings
|
|
157
|
-
* (this will be set in the {@link DyNTS_Msg_Main_ControlService} constructor)
|
|
158
|
-
*
|
|
159
|
-
* {@link DyNTS_Msg_Global_Settings}
|
|
160
|
-
* default settings: {@link DyNTS_Msg_global_settings}
|
|
161
|
-
*/
|
|
162
|
-
messaging_settings?: any;
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* FR-193 — bedrock OOM korai-figyelmeztető heap-watchdog ({@link DyNTS_MemoryGuard}).
|
|
166
|
-
* Ha `enabled`, a base `App` startup automatikusan feltelepíti. Periodikusan figyeli a
|
|
167
|
-
* heap-kihasználtságot, és a `--max-old-space-size` plafonhoz közeledve TARTÓS rekordot
|
|
168
|
-
* hagy az error-sinkbe (Errors-rendszer + Discord) — mielőtt a fatal OOM megölné a
|
|
169
|
-
* process-t. Default: enabled, 10s poll, warn 85% / crit 95%.
|
|
170
|
-
*/
|
|
171
|
-
memoryGuard?: {
|
|
172
|
-
/** Bekapcsolja a heap-watchdogot (a base App startup feltelepíti). Default: true. */
|
|
173
|
-
enabled: boolean;
|
|
174
|
-
/** Poll-intervallum ms-ben. Default: 10000. */
|
|
175
|
-
pollIntervalMs?: number;
|
|
176
|
-
/** Warning küszöb a heap-plafon %-ában. Default: 85. */
|
|
177
|
-
heapWarningThreshold?: number;
|
|
178
|
-
/** Critical küszöb a heap-plafon %-ában. Default: 95. */
|
|
179
|
-
heapCriticalThreshold?: number;
|
|
180
|
-
/** A warning küszöb ALATTI margó %-ban a 'recovered'-hez (hiszterézis). Default: 10. */
|
|
181
|
-
recoveryMargin?: number;
|
|
182
|
-
/** Megőrzött események max száma (ring-buffer). Default: 100. */
|
|
183
|
-
maxHistoryCount?: number;
|
|
184
|
-
/**
|
|
185
|
-
* GC-hányad (GC-ben töltött idő / poll-ablak) küszöb a `warning`-hoz, a %-küszöb MELLETT. 0..1. Default: 0.40.
|
|
186
|
-
* A „Ineffective mark-compacts near heap limit" OOM gyakran a heap-% kritikus küszöb ALATT üt be (a GC thrash-el,
|
|
187
|
-
* `mutator utilization` lezuhan) — ezt a jelet a puszta % későn/sosem fogja. Ez a GC-jel a valódi OOM-precursor.
|
|
188
|
-
*/
|
|
189
|
-
gcWarningFraction?: number;
|
|
190
|
-
/** GC-hányad küszöb a `critical`-hoz (load-shed + graceful-exit zóna). 0..1. Default: 0.60. */
|
|
191
|
-
gcCriticalFraction?: number;
|
|
192
|
-
/**
|
|
193
|
-
* Process-szintű crash-handler (`uncaughtException`) telepítése — a crash ELŐTT TELJES-RÉSZLETŰ error-entry
|
|
194
|
-
* (message + stack + kód + issuer + memória-snapshot) az error-sinkbe, majd tiszta exit. Default: true.
|
|
195
|
-
* (Az `unhandledRejection`-t a base App már rögzíti; ez az eddig néma `uncaughtException`-t fedi le.)
|
|
196
|
-
*/
|
|
197
|
-
installCrashHandlers?: boolean;
|
|
198
|
-
/**
|
|
199
|
-
* Tartós `critical` (a megadott poll-számon át, GC-vel sem csökkenő) esetén TISZTA kilépés → a wrapper/
|
|
200
|
-
* restart-policy PREDIKTÍVEN újraindít, a kriptikus fatal OOM (exit 134) helyett. Default: false
|
|
201
|
-
* (konténer-restart-policy-ra bízva; standalone/`serve`-wrapper-es app opt-in-olja).
|
|
202
|
-
*/
|
|
203
|
-
exitOnSustainedCritical?: boolean;
|
|
204
|
-
/** Hány EGYMÁST KÖVETŐ `critical` poll után lépjen ki (`exitOnSustainedCritical`-hez). Default: 3. */
|
|
205
|
-
sustainedCriticalPolls?: number;
|
|
206
|
-
/** A graceful-exit kódja (a wrapper ezt látja restart-jelnek). Default: 137. */
|
|
207
|
-
exitCode?: number;
|
|
208
|
-
|
|
209
|
-
|
|
1
|
+
import { DyFM_EnvironmentFlag } from '@futdevpro/fsm-dynamo';
|
|
2
|
+
import { DyNTS_RouteSecurity } from '../../_enums/route-security.enum';
|
|
3
|
+
import { DyNTS_SocketSecurity } from '../../_modules/socket/_enums/socket-security.enum';
|
|
4
|
+
import { DyNTS_GlobalLog_Settings } from './global-log-settings.interface';
|
|
5
|
+
import { DyNTS_Environment_Settings } from './environment-settings.interface';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* @param logRequestsContent only will log if the specific logRequest is also true
|
|
11
|
+
*
|
|
12
|
+
* @param logEventContent only will log if the specific socket event is also set to log
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
export interface DyNTS_Global_Settings {
|
|
16
|
+
|
|
17
|
+
env_settings: DyNTS_Environment_Settings;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* this will be used as the main baseUrl for the application,
|
|
21
|
+
* this is not required, but we suggest to use at least a '/api' as base route
|
|
22
|
+
*/
|
|
23
|
+
baseUrl: string;
|
|
24
|
+
/**
|
|
25
|
+
* this sets the default security for routes
|
|
26
|
+
*/
|
|
27
|
+
defaultRouteSecurity: DyNTS_RouteSecurity;
|
|
28
|
+
/**
|
|
29
|
+
* this sets the default security for sockets
|
|
30
|
+
*/
|
|
31
|
+
defaultSocketSecurity: DyNTS_SocketSecurity;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* this is the name of the system, this will be used for the server status
|
|
35
|
+
*/
|
|
36
|
+
systemName?: string;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* this is the short code name of the system, this will be used for the logs and errors
|
|
40
|
+
*/
|
|
41
|
+
systemShortCodeName?: string;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* this is the version of the system, this will be used for the logs and errors
|
|
45
|
+
*/
|
|
46
|
+
systemVersion: string;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* this setting will set if the default route should be created
|
|
50
|
+
*/
|
|
51
|
+
dontCreateDefaultRoute?: boolean;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
*
|
|
55
|
+
*/
|
|
56
|
+
autoResolveEndpointCirculationErrors: boolean;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* this setting will set the compact error response mode for the system
|
|
60
|
+
*/
|
|
61
|
+
compactErrorResponse: boolean;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* this is the default page size for pagination
|
|
65
|
+
*/
|
|
66
|
+
defaultPageSize: number;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* this is the number of items to archive in the list, this will be used to archive the list
|
|
70
|
+
*/
|
|
71
|
+
archiveListAfter: number;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* this is the environment of the system
|
|
75
|
+
*/
|
|
76
|
+
/* environment: DyFM_EnvironmentFlag; */
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* this setting will set which logs will be shown
|
|
80
|
+
*/
|
|
81
|
+
log_settings: DyNTS_GlobalLog_Settings;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* this setting will set the research issues mode for the system
|
|
85
|
+
*/
|
|
86
|
+
autoResearchIssues: boolean;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* this setting will set the bot settings
|
|
90
|
+
* (this will be set in the {@link DyNTS_Bot_Main_ControlService} constructor)
|
|
91
|
+
*
|
|
92
|
+
* {@link DyNTS_GlobalBot_Settings}
|
|
93
|
+
* default settings: {@link DyNTS_Bot_Global_Settings}
|
|
94
|
+
*/
|
|
95
|
+
bot_settings: any;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* this setting will set the openai settings
|
|
99
|
+
* (this will be set in the {@link DyNTS_OAI_LLMChat_ServiceBase} constructor)
|
|
100
|
+
*
|
|
101
|
+
* {@link DyNTS_OpenAI_Settings}
|
|
102
|
+
* default settings: {@link DyNTS_OAI_global_settings}
|
|
103
|
+
*/
|
|
104
|
+
openAi_settings: any;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* this setting will set the dias settings
|
|
108
|
+
* (this will be set in the {@link DyNTS_OAI_LLM_ServiceBase} constructor, if not set already)
|
|
109
|
+
* ({@link DyNTS_OAI_VectorDataService} is not using this, but its own settings)
|
|
110
|
+
*
|
|
111
|
+
* {@link DyNTS_DiAs_Global_Settings}
|
|
112
|
+
* default settings: {@link DyNTS_DiAs_Global_Settings}
|
|
113
|
+
*/
|
|
114
|
+
dias_settings: any;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* this setting will set the assistant settings
|
|
118
|
+
* (this will be set in the {@link DyNTS_Ass_ServiceBase} constructor)
|
|
119
|
+
*
|
|
120
|
+
* {@link DyNTS_Ass_Global_Settings}
|
|
121
|
+
* default settings: {@link DyNTS_Ass_global_settings}
|
|
122
|
+
*/
|
|
123
|
+
assistant_settings?: any;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Auth-service beállítások.
|
|
127
|
+
*
|
|
128
|
+
* Ha `optional: true`, a framework NEM követeli meg az egyedi Auth Service-t:
|
|
129
|
+
* a {@link DyNTS_GlobalService.getAuthService} hiányzó service esetén `undefined`-ot
|
|
130
|
+
* ad vissza a `"Unique Authentication Service missing!"` hiba DOBÁSA HELYETT, és
|
|
131
|
+
* a startup-warn ('Authentication Service missing!') is elmarad. Public / no-auth
|
|
132
|
+
* szervereknek (pl. nyílt RAG/MCP backend), ahol nincs saját auth-réteg.
|
|
133
|
+
*
|
|
134
|
+
* Default: `{ optional: false }` — az auth-service kötelező (visszafelé kompatibilis,
|
|
135
|
+
* a régi viselkedés: hiányzó service → dobott hiba).
|
|
136
|
+
*/
|
|
137
|
+
auth_settings?: {
|
|
138
|
+
/**
|
|
139
|
+
* Ha `true`, az Auth Service opcionális: `getAuthService()` NEM dob hiányzó
|
|
140
|
+
* service esetén, hanem `undefined`-ot ad vissza (a hívók optional-chaining-gel
|
|
141
|
+
* kezelik), és a startup 'Authentication Service missing!' warn is elmarad.
|
|
142
|
+
* Default: `false`.
|
|
143
|
+
*/
|
|
144
|
+
optional?: boolean;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* this setting will set the doc chunking settings
|
|
149
|
+
*/
|
|
150
|
+
docChunking: {
|
|
151
|
+
maxChunkSize: number;
|
|
152
|
+
maxChunkCount: number;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* this setting will set the messaging settings
|
|
157
|
+
* (this will be set in the {@link DyNTS_Msg_Main_ControlService} constructor)
|
|
158
|
+
*
|
|
159
|
+
* {@link DyNTS_Msg_Global_Settings}
|
|
160
|
+
* default settings: {@link DyNTS_Msg_global_settings}
|
|
161
|
+
*/
|
|
162
|
+
messaging_settings?: any;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* FR-193 — bedrock OOM korai-figyelmeztető heap-watchdog ({@link DyNTS_MemoryGuard}).
|
|
166
|
+
* Ha `enabled`, a base `App` startup automatikusan feltelepíti. Periodikusan figyeli a
|
|
167
|
+
* heap-kihasználtságot, és a `--max-old-space-size` plafonhoz közeledve TARTÓS rekordot
|
|
168
|
+
* hagy az error-sinkbe (Errors-rendszer + Discord) — mielőtt a fatal OOM megölné a
|
|
169
|
+
* process-t. Default: enabled, 10s poll, warn 85% / crit 95%.
|
|
170
|
+
*/
|
|
171
|
+
memoryGuard?: {
|
|
172
|
+
/** Bekapcsolja a heap-watchdogot (a base App startup feltelepíti). Default: true. */
|
|
173
|
+
enabled: boolean;
|
|
174
|
+
/** Poll-intervallum ms-ben. Default: 10000. */
|
|
175
|
+
pollIntervalMs?: number;
|
|
176
|
+
/** Warning küszöb a heap-plafon %-ában. Default: 85. */
|
|
177
|
+
heapWarningThreshold?: number;
|
|
178
|
+
/** Critical küszöb a heap-plafon %-ában. Default: 95. */
|
|
179
|
+
heapCriticalThreshold?: number;
|
|
180
|
+
/** A warning küszöb ALATTI margó %-ban a 'recovered'-hez (hiszterézis). Default: 10. */
|
|
181
|
+
recoveryMargin?: number;
|
|
182
|
+
/** Megőrzött események max száma (ring-buffer). Default: 100. */
|
|
183
|
+
maxHistoryCount?: number;
|
|
184
|
+
/**
|
|
185
|
+
* GC-hányad (GC-ben töltött idő / poll-ablak) küszöb a `warning`-hoz, a %-küszöb MELLETT. 0..1. Default: 0.40.
|
|
186
|
+
* A „Ineffective mark-compacts near heap limit" OOM gyakran a heap-% kritikus küszöb ALATT üt be (a GC thrash-el,
|
|
187
|
+
* `mutator utilization` lezuhan) — ezt a jelet a puszta % későn/sosem fogja. Ez a GC-jel a valódi OOM-precursor.
|
|
188
|
+
*/
|
|
189
|
+
gcWarningFraction?: number;
|
|
190
|
+
/** GC-hányad küszöb a `critical`-hoz (load-shed + graceful-exit zóna). 0..1. Default: 0.60. */
|
|
191
|
+
gcCriticalFraction?: number;
|
|
192
|
+
/**
|
|
193
|
+
* Process-szintű crash-handler (`uncaughtException`) telepítése — a crash ELŐTT TELJES-RÉSZLETŰ error-entry
|
|
194
|
+
* (message + stack + kód + issuer + memória-snapshot) az error-sinkbe, majd tiszta exit. Default: true.
|
|
195
|
+
* (Az `unhandledRejection`-t a base App már rögzíti; ez az eddig néma `uncaughtException`-t fedi le.)
|
|
196
|
+
*/
|
|
197
|
+
installCrashHandlers?: boolean;
|
|
198
|
+
/**
|
|
199
|
+
* Tartós `critical` (a megadott poll-számon át, GC-vel sem csökkenő) esetén TISZTA kilépés → a wrapper/
|
|
200
|
+
* restart-policy PREDIKTÍVEN újraindít, a kriptikus fatal OOM (exit 134) helyett. Default: false
|
|
201
|
+
* (konténer-restart-policy-ra bízva; standalone/`serve`-wrapper-es app opt-in-olja).
|
|
202
|
+
*/
|
|
203
|
+
exitOnSustainedCritical?: boolean;
|
|
204
|
+
/** Hány EGYMÁST KÖVETŐ `critical` poll után lépjen ki (`exitOnSustainedCritical`-hez). Default: 3. */
|
|
205
|
+
sustainedCriticalPolls?: number;
|
|
206
|
+
/** A graceful-exit kódja (a wrapper ezt látja restart-jelnek). Default: 137. */
|
|
207
|
+
exitCode?: number;
|
|
208
|
+
/**
|
|
209
|
+
* **Boot-grace ms** az `exitOnSustainedCritical`-hez: a guard-install UTÁNI első ennyi ms-ben a sustained-critical
|
|
210
|
+
* NEM lép ki (csak logol + load-shed). A nehéz-boot appok (nagy in-memory pool-hidratálás) ELEVE GC-thrash-elnek a
|
|
211
|
+
* boot alatt → e nélkül a sustained-exit boot-loop-ot okozna. A grace UTÁN a tartós critical normálisan kilép (a
|
|
212
|
+
* VALÓDI futásidejű OOM-ot kezeli). Default: 60000 (60s). 0 → nincs grace (azonnal élesedik).
|
|
213
|
+
*/
|
|
214
|
+
bootGraceMs?: number;
|
|
215
|
+
};
|
|
216
|
+
}
|