chore: centralize configuration management using a new Config class

- Replaced all direct `process.env` references with `Config` class constants.
- Added `dotenv` package to manage environment variables.
- Updated affected files, including schema loader, Zabbix API, resolvers, logging system, and integration points.
- Improved maintainability and consistency in environment variable handling.
This commit is contained in:
Andreas Hilbig 2026-01-27 17:28:22 +01:00
parent 6312c3a2f7
commit 2a8ff989f3
10 changed files with 95 additions and 72 deletions

View file

@ -1,8 +1,17 @@
export function sleep(ms: number): { promise: Promise<void>, cancel: () => void } {
let timeoutId: NodeJS.Timeout;
const promise = new Promise<void>((resolve) => {
timeoutId = setTimeout(resolve, ms);
});
const cancel = () => clearTimeout(timeoutId);
return { promise, cancel };
import {configDotenv} from "dotenv";
configDotenv();
export class Config {
static readonly ZABBIX_BASE_URL = process.env.ZABBIX_BASE_URL || ""
static readonly DRY_RUN = process.env.DRY_RUN
static readonly API_VERSION = process.env.API_VERSION
static readonly SCHEMA_PATH = process.env.SCHEMA_PATH || './schema/'
static readonly ADDITIONAL_SCHEMAS = process.env.ADDITIONAL_SCHEMAS
static readonly ADDITIONAL_RESOLVERS = process.env.ADDITIONAL_RESOLVERS
static readonly ZABBIX_AUTH_TOKEN_FOR_REQUESTS = process.env.ZABBIX_AUTH_TOKEN_FOR_REQUESTS
static readonly ZABBIX_AUTH_TOKEN = process.env.ZABBIX_AUTH_TOKEN
static readonly ZABBIX_EDGE_DEVICE_BASE_GROUP = process.env.ZABBIX_EDGE_DEVICE_BASE_GROUP
static readonly ZABBIX_ROADWORK_BASE_GROUP = process.env.ZABBIX_ROADWORK_BASE_GROUP
static readonly ZABBIX_PERMISSION_TEMPLATE_GROUP_NAME_PREFIX = process.env.ZABBIX_PERMISSION_TEMPLATE_GROUP_NAME_PREFIX || "Permissions"
static readonly LOG_LEVELS = process.env.LOG_LEVELS
}