feat: Phase 3 – Modul-System (Manifest, ZIP-Installation, Lifecycle, Prozess-Manager)

This commit is contained in:
MPM Dev
2026-10-07 15:37:09 +02:00
parent e87dc1f836
commit 4bbca21fd6
31 changed files with 2055 additions and 19 deletions

View File

@@ -1,4 +1,5 @@
import { z } from 'zod';
import path from 'node:path';
/**
* Zentrale, typsichere Konfiguration der Management-Plattform.
@@ -28,12 +29,18 @@ export interface AdminSeedConfig {
readonly password: string;
}
export interface RuntimeConfig {
readonly modulesDir: string;
readonly logsDir: string;
}
export interface AppConfig {
readonly nodeEnv: NodeEnvironment;
readonly port: number;
readonly database: DatabaseConfig;
readonly security: SecurityConfig;
readonly adminSeed: AdminSeedConfig;
readonly runtime: RuntimeConfig;
}
const booleanFromString = z
@@ -55,6 +62,8 @@ const environmentSchema = z.object({
ADMIN_USERNAME: z.string().trim().min(3).max(100),
ADMIN_EMAIL: z.string().trim().email(),
ADMIN_PASSWORD: z.string().min(10, 'ADMIN_PASSWORD muss mindestens 10 Zeichen lang sein').max(200),
MODULES_DIR: z.string().min(1).default('./data/modules'),
LOGS_DIR: z.string().min(1).default('./data/logs'),
});
/** Lädt und validiert die Konfiguration aus den Umgebungsvariablen. */
@@ -79,5 +88,9 @@ export function loadConfiguration(): AppConfig {
email: environment.ADMIN_EMAIL,
password: environment.ADMIN_PASSWORD,
},
runtime: {
modulesDir: path.resolve(environment.MODULES_DIR),
logsDir: path.resolve(environment.LOGS_DIR),
},
};
}