import { Request, Response } from 'express'; export interface DyNTS_GlobalLog_Settings { /** * this setting will set which logs will be shown */ highDetailedLogs?: boolean; deep?: boolean; /** * this setting will enable debug logs for setting up the application */ setup?: boolean; /** * this setting will enable debug logs for setting up the database */ dbSetup?: boolean; /** * this is an application wide default setting for route debug logs */ request?: boolean; /** * this is an application wide default setting for route debug logs */ requestsParams?: boolean; /** * this is an application wide default setting for route debug logs */ requestsContent?: boolean; /** * this is an application wide default setting for route debug logs */ responseContent?: boolean; /** * this is an application wide default setting for route debug logs */ requestStackLocation?: boolean; /** * this is an application wide default setting for socket debug logs */ socket_allEvents?: boolean; /** * this is an application wide default setting for socket debug logs */ socket_mainEvents?: boolean; /** * this is an application wide default setting for socket debug logs */ socket_eventContent?: boolean; /** * this is an application wide default setting for api debug logs */ api_events?: boolean; /** * this is an application wide default setting for api debug logs */ api_requestContents?: boolean; /** * this is an application wide default setting for api debug logs */ api_requestSettings?: boolean; /** * this is an application wide default setting for api debug logs */ api_responseContents?: boolean; /** * this is an application wide default setting for api debug logs */ api_errors?: boolean; /** * this is an application wide default setting for detailed error logs */ detailedErrors?: boolean; server_debug?: boolean; functions?: boolean; /** * Logs endpoint konfiguracio. * Ha enabled: true, a DyNTS_getLogsRoutingModule() hozzaadja a /logs endpoint-ot. * A log buffer in-memory ring buffer-kent mukodik (maxEntries sor). */ logs_endpoint?: { /** Engedelyezve van-e a /logs endpoint. Default: false. */ enabled: boolean; /** Max sorok szama a bufferben. Default: 2000. */ maxEntries?: number; /** * Engedelyezi-e a szerver-bootstrap automatikus, env-tudatos /logs * mount-jat. Default: true. * * - TEST env: a `DYNTS_ADMIN_API_KEY` env var-os admin-key auth-tal mount-ol * (ha a kulcs nincs beallitva → skip + warn). * - PROD env: csak akkor mount-ol, ha a `prodAuthPreProcess` (FDP RBAC) be * van allitva (kulonben skip + warn — SOHA nem mount-ol vedetlenul prod-on). * * Ha false → a bootstrap nem mount-ol semmit (az app sajat kezuleg * regisztralhatja a DyNTS_getLogsRoutingModule()-t). * * Megj.: a tenyleges auto-mount WIRING a logs-endpoint-auto-mount feature-ben * landol; ez itt a TIPUS-deklaracio (additive), hogy a consumer-ek (FDP * Templates NTS logs-RBAC) tudjak allitani a `prodAuthPreProcess`-t. */ autoMount?: boolean; /** * PROD env-en hasznalt auth pre-process (FDP RBAC). A bootstrap auto-mount * EZT hasznalja prod-on; ha nincs beallitva, prod-on NEM mount-ol. * * Tipusa megegyezik a DyNTS_getLogsRoutingModule({ authPreProcess }) * altal varttal (DyNTS_LogsController_Config.authPreProcess). */ prodAuthPreProcess?: (req: Request, res: Response) => Promise; }; /** * File-based log kiiras konfiguracio (DyNTS_FileLog_Service). * * Az in-memory ring buffer (DyNTS_Logs_Service) mellett mukodik — NEM * helyette. A szerver stdout/stderr kimeneteket egy per-session log * fajlba duplikalja (`{logDir}/{filenamePrefix}YYYY-MM-DD_HH-MM-SS.log`). * * Rotation: ha az aktiv fajl meghaladja a `maxFileSizeMb`-t, uj fajl jon * letre. Retention: az `install()` + minden rotation utan a * `maxFiles`-nel regebbi vagy a `retentionDays`-nel idosebb fajlok * torlodnek (ami elobb teljesul). * * Hasznalat: * DyNTS_FileLog_Service.getInstance().install(); // szerver startup */ file_log?: { /** Engedelyezve van-e a file-based logolás. Default: false. */ enabled: boolean; /** Log mappa abszolut vagy relativ path-ja. Default: './logs/server'. */ logDir?: string; /** Per-session fajlnev prefix. Default: 'server-'. */ filenamePrefix?: string; /** Rotation trigger MB-ban. Default: 50. */ maxFileSizeMb?: number; /** Retention by count — max ennyi log fajl marad meg. Default: 10. */ maxFiles?: number; /** Retention by age — ennyi napnal regebbi fajl torlodik. Default: 30. */ retentionDays?: number; /** ANSI escape kodok strippelese a fajl-irasnal. Default: true. */ stripAnsi?: boolean; /** stdout interceptalasa. Default: true. */ includeStdout?: boolean; /** stderr interceptalasa. Default: true. */ includeStderr?: boolean; }; }