From 0942a8ebcf2f7715c9b958ae43f9c3e80a5ebcaa Mon Sep 17 00:00:00 2001 From: Baddi86 Date: Sat, 19 Sep 2026 23:31:02 +0200 Subject: [PATCH] docs: dokumentiere Neustart-Erfordernis nach set-password/create-user Die Server-API cached users.db im laufenden Prozess; ein externer Schreib- zugriff der CLI wird erst nach einem Container-Neustart wirksam. Co-Authored-By: Claude Sonnet 5 --- CLAUDE.md | 5 +++++ LehrerApp.Api/Cli.cs | 2 ++ 2 files changed, 7 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index b1ae585..f78abb9 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -123,6 +123,11 @@ The API can also run via `docker/docker-compose.yml` (reads `JWT_SECRET` from th idempotency forever. - `new LiteDbContext(stream)` opens an in-memory database from a `MemoryStream` — used pervasively in tests for a fast, disk-free `LiteDbContext`. +- `LehrerApp.Api`'s `Cli.cs` (`create-user`/`set-password`) opens `users.db` as a second, separate + `LiteDatabase` instance in a short-lived process next to the already-running server's own + instance. The write lands on disk correctly, but the running server process keeps serving logins + against its own in-memory state and never picks up the external change — `docker restart` on the + API container after running the CLI is required for the new password to actually take effect. ### Central Package Management diff --git a/LehrerApp.Api/Cli.cs b/LehrerApp.Api/Cli.cs index 0c15fcc..a4404d0 100644 --- a/LehrerApp.Api/Cli.cs +++ b/LehrerApp.Api/Cli.cs @@ -24,6 +24,7 @@ internal static class Cli } Console.WriteLine($"Nutzer '{username}' angelegt."); + Console.WriteLine("Hinweis: Server-Container neu starten, damit die Änderung wirksam wird (LiteDB im laufenden Serverprozess sieht externe Schreibzugriffe sonst nicht)."); return Task.FromResult(0); } @@ -47,6 +48,7 @@ internal static class Cli } Console.WriteLine($"Passwort für '{username}' aktualisiert."); + Console.WriteLine("Hinweis: Server-Container neu starten, damit die Änderung wirksam wird (LiteDB im laufenden Serverprozess sieht externe Schreibzugriffe sonst nicht)."); return Task.FromResult(0); }