Gespeicherte Kombinationen aus Distribution, Ressourcen und Profilen. Im Assistenten mit einem Klick vorbelegt oder dort gespeichert; die API nimmt „vorlage“ entgegen (Grundlage für --preset der CLI). Eine Vorlage liegt unter der Anfrage – was die Anfrage selbst sagt, gewinnt. Beim ersten Start wird das Beispiel „Docker-Host klein“ aus der Vorgabe angelegt, einmalig. Closes #012 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
25 lines
1.1 KiB
TypeScript
25 lines
1.1 KiB
TypeScript
/**
|
||
* Läuft einmal beim Start des Next-Servers. Prüft die Konfiguration früh und legt den ersten
|
||
* Administrator an, gleicht den Katalog ab – statt beim ersten Seitenaufruf mit einer unklaren Meldung zu scheitern.
|
||
*/
|
||
export async function register(): Promise<void> {
|
||
if (process.env["NEXT_RUNTIME"] !== "nodejs") return;
|
||
const { schluesselPruefen } = await import("@/lib/geheimnisse");
|
||
const { ersterAdminFallsLeer } = await import("@/server/services/anmeldung");
|
||
const { logger } = await import("@/lib/logger");
|
||
const { katalogSynchronisieren } = await import("@/server/services/katalog");
|
||
const { beispielVorlageAnlegen } = await import("@/server/services/vorlagen");
|
||
try {
|
||
schluesselPruefen();
|
||
await ersterAdminFallsLeer();
|
||
const sync = await katalogSynchronisieren();
|
||
await beispielVorlageAnlegen();
|
||
logger.info(
|
||
{ distributionen: sync.distributionen, profile: sync.profile, fehler: sync.fehler.length },
|
||
"Katalog abgeglichen",
|
||
);
|
||
} catch (fehler) {
|
||
logger.error({ err: fehler }, "Start-Prüfung fehlgeschlagen");
|
||
}
|
||
}
|