Die harte Regel der Anwendung: eine veröffentlichte Version ist für immer unveränderlich, damit ein Archiv-Lauf für immer nachvollziehbar bleibt. Diese Regel sitzt in der Service-Schicht, nicht in der Oberfläche.
Aufgaben
Services für Vorlage, VorlagenVersion, VorlagenAbschnitt, VorlagenSchritt, VorlagenVariable
vorlageVeroeffentlichenService: setzt status = VEROEFFENTLICHT, veroeffentlichtAm, veroeffentlichtVonId, Änderungsnotiz, Protokoll-Eintrag
vorlageBearbeitenService: tiefe Kopie der letzten veröffentlichten Version als neuer Entwurf mit fortlaufender version; kopiert Variablen, Abschnitte und Schritte samt konfig
Höchstens ein Entwurf je Vorlage — zweiter Versuch wirft VorlagenFehler mit Verweis auf den bestehenden Entwurf
Jede Schreiboperation auf einer veröffentlichten Version wirft; zentral in versionMussEntwurfSein()
Läufe verweisen ausschließlich auf veröffentlichte Versionen — beim Anlegen geprüft
vorlageDuplizierenService: neue Vorlage mit Entwurf als Kopie
JSON-Export und -Import mit Zod-Schema, Format in docs/vorlagen-format.md dokumentiert (Version des Formats, Abschnitte, Schritte, Variablen, konfig)
Rechte: REDAKTEUR und ADMIN dürfen anlegen, bearbeiten, veröffentlichen; TECHNIKER und LESER nicht
Akzeptanzkriterien
Test: nach dem Veröffentlichen schlägt jede Änderung an Version, Abschnitten, Schritten und Variablen fehl
Test: „Bearbeiten" erzeugt eine tiefe Kopie — Änderungen am Entwurf lassen die veröffentlichte Version unberührt, auch in verschachtelten konfig-Feldern
Test: ein zweiter Entwurf wird abgelehnt
Test: ein Lauf auf Version 1 bleibt nach Veröffentlichen von Version 2 unverändert und zeigt weiter die Schritte aus Version 1
Test: Export und anschließender Import ergeben eine inhaltsgleiche Vorlage
Test: TECHNIKER darf nicht veröffentlichen
Test: Veröffentlichen schreibt einen Protokoll-Eintrag
Quelle: docs/issues/009-vorlagen-versionierung.md — dort gepflegt, hierher gespiegelt.
**Status:** offen
**Meilenstein:** v0.1.0
**Labels:** phase-1, backend
**Geschätzt:** 6 h **Tatsächlich:** –
## Ziel
Die harte Regel der Anwendung: eine veröffentlichte Version ist für immer unveränderlich, damit ein Archiv-Lauf für immer nachvollziehbar bleibt. Diese Regel sitzt in der Service-Schicht, nicht in der Oberfläche.
## Aufgaben
- [ ] Services für `Vorlage`, `VorlagenVersion`, `VorlagenAbschnitt`, `VorlagenSchritt`, `VorlagenVariable`
- [ ] `vorlageVeroeffentlichenService`: setzt `status = VEROEFFENTLICHT`, `veroeffentlichtAm`, `veroeffentlichtVonId`, Änderungsnotiz, `Protokoll`-Eintrag
- [ ] `vorlageBearbeitenService`: tiefe Kopie der letzten veröffentlichten Version als neuer Entwurf mit fortlaufender `version`; kopiert Variablen, Abschnitte und Schritte samt `konfig`
- [ ] Höchstens ein Entwurf je Vorlage — zweiter Versuch wirft `VorlagenFehler` mit Verweis auf den bestehenden Entwurf
- [ ] Jede Schreiboperation auf einer veröffentlichten Version wirft; zentral in `versionMussEntwurfSein()`
- [ ] Läufe verweisen ausschließlich auf veröffentlichte Versionen — beim Anlegen geprüft
- [ ] `vorlageDuplizierenService`: neue Vorlage mit Entwurf als Kopie
- [ ] JSON-Export und -Import mit Zod-Schema, Format in `docs/vorlagen-format.md` dokumentiert (Version des Formats, Abschnitte, Schritte, Variablen, `konfig`)
- [ ] Rechte: `REDAKTEUR` und `ADMIN` dürfen anlegen, bearbeiten, veröffentlichen; `TECHNIKER` und `LESER` nicht
## Akzeptanzkriterien
- [ ] Test: nach dem Veröffentlichen schlägt jede Änderung an Version, Abschnitten, Schritten und Variablen fehl
- [ ] Test: „Bearbeiten" erzeugt eine tiefe Kopie — Änderungen am Entwurf lassen die veröffentlichte Version unberührt, auch in verschachtelten `konfig`-Feldern
- [ ] Test: ein zweiter Entwurf wird abgelehnt
- [ ] Test: ein Lauf auf Version 1 bleibt nach Veröffentlichen von Version 2 unverändert und zeigt weiter die Schritte aus Version 1
- [ ] Test: Export und anschließender Import ergeben eine inhaltsgleiche Vorlage
- [ ] Test: `TECHNIKER` darf nicht veröffentlichen
- [ ] Test: Veröffentlichen schreibt einen `Protokoll`-Eintrag
---
Quelle: `docs/issues/009-vorlagen-versionierung.md` — dort gepflegt, hierher gespiegelt.
florian.wilde
added this to the v0.1.0 milestone 2026-09-24 20:44:40 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Status: offen
Meilenstein: v0.1.0
Labels: phase-1, backend
Geschätzt: 6 h Tatsächlich: –
Ziel
Die harte Regel der Anwendung: eine veröffentlichte Version ist für immer unveränderlich, damit ein Archiv-Lauf für immer nachvollziehbar bleibt. Diese Regel sitzt in der Service-Schicht, nicht in der Oberfläche.
Aufgaben
Vorlage,VorlagenVersion,VorlagenAbschnitt,VorlagenSchritt,VorlagenVariablevorlageVeroeffentlichenService: setztstatus = VEROEFFENTLICHT,veroeffentlichtAm,veroeffentlichtVonId, Änderungsnotiz,Protokoll-EintragvorlageBearbeitenService: tiefe Kopie der letzten veröffentlichten Version als neuer Entwurf mit fortlaufenderversion; kopiert Variablen, Abschnitte und Schritte samtkonfigVorlagenFehlermit Verweis auf den bestehenden EntwurfversionMussEntwurfSein()vorlageDuplizierenService: neue Vorlage mit Entwurf als Kopiedocs/vorlagen-format.mddokumentiert (Version des Formats, Abschnitte, Schritte, Variablen,konfig)REDAKTEURundADMINdürfen anlegen, bearbeiten, veröffentlichen;TECHNIKERundLESERnichtAkzeptanzkriterien
konfig-FeldernTECHNIKERdarf nicht veröffentlichenProtokoll-EintragQuelle:
docs/issues/009-vorlagen-versionierung.md— dort gepflegt, hierher gespiegelt.