Files
Laufzettel/docs/issues/021-stabiler-schluessel-vorlagen.md
T
Florian Wilde 7eb81bd191
Prüfung / pruefung (push) Canceled after 0s
Prüfung / pruefung (pull_request) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s
Prüfung / e2e (pull_request) Canceled after 0s
feat(seed): mitgelieferte Vorlagen am Schluessel erkennen
Der Seed erkannte seine sieben Vorlagen am Namen. Wer eine umbenannte, bekam
beim naechsten Lauf eine zweite -- und der Schnellstart stand auf der
Geraeteseite doppelt.

Vorlage.seedSchluessel traegt die Kennung, eindeutig wo gesetzt (partieller
Index, weil eigene Vorlagen keinen tragen). Das Austauschformat kennt das Feld
als seedSchluessel; nicht als schluessel, wie das Issue plante, denn so heisst
dort schon das Feld einer Variablen.

Der Rueckfall auf den Namen bleibt, sonst bekaeme eine Installation von vor
diesem Feld beim ersten Lauf danach genau die Dubletten, die es verhindern
soll. Wird sie so gefunden, traegt der Seed den Schluessel nach -- an der
Entwicklungsdatenbank gefahren: sieben nachgetragen, nichts neu angelegt.

Der Import setzt den Schluessel nicht, auch nicht wenn das Dokument ihn
mitbringt, und der Export schreibt ihn nicht: eine eingespielte Kopie soll
nicht den Platz des Originals einnehmen.

Gegenprobe gefahren: ohne die Suche am Schluessel werden vier Tests rot.

Closes #32
2026-10-04 16:48:30 +02:00

1.8 KiB

#021 Stabiler Schlüssel für Seed-Vorlagen

Status: erledigt Im Tracker: #32 — die Zählung dort schließt Pull Requests ein und läuft deshalb auseinander Meilenstein: v0.2.0 Labels: phase-2, backend

Geschätzt: 2 h Tatsächlich: 55 min

Ziel

Der Seed erkennt seine sieben Vorlagen am Namen. Wird eine umbenannt, legt der nächste Lauf sie erneut an — und GeraetetypVorlage bekommt eine zweite Zeile, der Schnellstart steht auf der Geräteseite doppelt. Aufgefallen im Review zu #017.

Aufgaben

  • Ein optionales Feld seedSchluessel im Austauschformat — nicht schluessel wie hier geplant: so heißt im Format schon das Feld einer Variablen, und zwei Dinge gleichen Namens in derselben Datei wären eine Lesefalle — gedacht für mitgelieferte Vorlagen, nicht für die Oberfläche; beim Import nicht übernommen, damit eine eingespielte Kopie nicht den Platz des Originals einnimmt
  • Vorlage.seedSchluessel mit partiellem eindeutigen Index (nur wo gesetzt)
  • Der Seed sucht über den Schlüssel und fällt auf den Namen zurück, solange noch keiner gesetzt ist — eine bestehende Installation darf beim ersten Lauf danach keine Dubletten bekommen
  • Dokumentieren, was der Schlüssel nicht tut: er macht eine Vorlage nicht unveränderlich und erlaubt dem Seed nicht, eine bearbeitete Vorlage zu überschreiben

Akzeptanzkriterien

  • Test: umbenannte Seed-Vorlage, zweiter Seed-Lauf legt keine zweite an
  • Test: zweiter Lauf erzeugt keine zweite GeraetetypVorlage-Zeile
  • Test: eine über den Import eingespielte Kopie bekommt keinen Schlüssel