diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f8e6a8..243c309 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,37 @@ Wiederherstellung*. _Noch nichts._ +## [1.0.1] – 2026-08-22 + +### Behoben + +- **Betriebsskripte fehlten im Docker-Abbild.** Das Verzeichnis `scripts/` + wurde beim Bauen nie in die Laufzeitstufe übernommen. `docker compose + exec app node scripts/totp-geheimnis.mjs …` endete deshalb mit + `Cannot find module`. Betroffen waren alle Skripte, die im laufenden + Behälter gedacht sind — auch `wartungsschluessel.mjs` und + `schluessel-erzeugen.mjs`. + + Nach dem Update funktioniert der Befehl wie dokumentiert. Wer nicht + gleich aktualisieren will, kommt einmalig auch so an das Skript: + + ```bash + docker compose cp scripts/totp-geheimnis.mjs app:/app/totp-geheimnis.mjs + docker compose exec app node totp-geheimnis.mjs deine@adresse.de + ``` + +### Hinzugefügt + +- **`scripts/totp-geheimnis.mjs`** — liest das TOTP-Geheimnis eines Zugangs + aus, um denselben Zugang auf einem zweiten Gerät einzurichten (Handy und + Tablet, oder ein Ersatzgerät). Die Anwendung zeigt das Geheimnis sonst + nur einmal an, beim Einrichten; bisher blieb nur, den zweiten Faktor + zurückzusetzen und alle Wiederherstellungscodes neu zu erzeugen. + + Das Skript läuft nur auf dem Server und nur mit Zugriff auf die Datenbank + **und** auf `ENC_KEY_V1`. Wer beides hat, kann ohnehin alles lesen — es + ist also keine Hintertür, sondern erspart eine unnötige Neueinrichtung. + ## [1.0.0] – 2026-08-22 Erste vollständige Fassung. Alle acht Etappen umgesetzt, alle @@ -188,5 +219,6 @@ Was davon wann angegangen wird, steht in [`docs/ROADMAP.md`](docs/ROADMAP.md). --- -[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.0.0...HEAD +[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.0.1...HEAD +[1.0.1]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.0.0...v1.0.1 [1.0.0]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/releases/tag/v1.0.0 diff --git a/Dockerfile b/Dockerfile index 0cf5ab2..d5b08ae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -95,6 +95,17 @@ COPY --from=bau --chown=cockpit:cockpit /app/node_modules/.prisma ./node_modules COPY --from=bau --chown=cockpit:cockpit /app/node_modules/@prisma ./node_modules/@prisma COPY --from=bau --chown=cockpit:cockpit /app/node_modules/prisma ./node_modules/prisma +# Betriebsskripte, die im laufenden Behaelter gebraucht werden: +# totp-geheimnis.mjs zweites Geraet fuer den Zweitfaktor einrichten +# wartungsschluessel.mjs Schluessel fuer /api/wartung ausrechnen +# schluessel-erzeugen.mjs neue Schluessel fuer die Rotation +# +# Das ganze Verzeichnis, nicht einzelne Dateien: sonst faellt beim +# naechsten Betriebsskript wieder auf, dass es fehlt - und zwar erst dann, +# wenn man es braucht. Die Entwicklungsskripte darin laufen hier mangels +# Werkzeugen nicht, kosten aber auch nur ein paar Kilobyte. +COPY --from=bau --chown=cockpit:cockpit /app/scripts ./scripts + # Ablage fuer den Dateitreiber, falls kein Objektspeicher benutzt wird. RUN mkdir -p /app/daten/dokumente && chown -R cockpit:cockpit /app/daten diff --git a/docs/ANLEITUNG.md b/docs/ANLEITUNG.md index 82e61dc..f2310a5 100644 --- a/docs/ANLEITUNG.md +++ b/docs/ANLEITUNG.md @@ -356,6 +356,14 @@ liest es auf dem Server aus: docker compose exec app node scripts/totp-geheimnis.mjs deine@adresse.de ``` +Läuft der Behälter noch mit einer Fassung vor 1.0.1, fehlt das Skript im +Abbild (`Cannot find module`). Dann entweder aktualisieren, oder einmalig: + +```bash +docker compose cp scripts/totp-geheimnis.mjs app:/app/totp-geheimnis.mjs +docker compose exec app node totp-geheimnis.mjs deine@adresse.de +``` + Das ist keine Hintertür: Es läuft nur mit Zugriff auf die Datenbank **und** auf `ENC_KEY_V1`. Wer beides hat, kommt ohnehin an alles. Die Ausgabe gehört trotzdem in kein Protokoll und in keine E-Mail. diff --git a/package.json b/package.json index d5cd39b..c70d50f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "betreuungs-cockpit", - "version": "1.0.0", + "version": "1.0.1", "private": true, "description": "Arbeits- und Dokumentationswerkzeug fuer die ehrenamtliche rechtliche Betreuung", "engines": { diff --git a/src/lib/version.ts b/src/lib/version.ts index bd5021c..c6dd525 100644 --- a/src/lib/version.ts +++ b/src/lib/version.ts @@ -17,7 +17,7 @@ */ /** Muss zur "version" in der package.json passen. */ -export const VERSION = '1.0.0' +export const VERSION = '1.0.1' /** * Kurzer Git-Stand, beim Bauen hineingereicht: