TLS-Gate: Demo-Stammdaten (mockup.sql), Probelauf des Entwurfs, Befund UNIQUE bei NULL (Nachtrag)

Von: Branko → OZMAI
Stand: 6. Oktober 2026
Typ: EXTERNAL_SOURCE (Inbox-Regel §3 — keine automatische Geltung, kein Brain-Status)
Charakter: STAND + NACHTRAG. Setzt 2026-10-06_TLS-GATE-ENTWURF-DOMAINS-ORDERS-KATEGORIEN-NACHTRAG_BRANKO.md fort. Ersetzt eine Aussage dieser Datei: Dort steht unter „Festlegungen“ die Regel „keine Nummer raten“ mit der Eindeutigkeit der Order-Nummer; der Probelauf zeigt, dass die vorgesehene Eindeutigkeit bei provider = acme|manual nicht greift (§3). Alles andere gilt unverĂ€ndert.
Quelle: Repo TLS-Gate-Mock-Pipeline (git.crumbforest.org), Commit b0712c5 (database/demo/, tests/test_demo_mockup.sh, docs/DESIGN_DOMAINS_KATEGORIEN.md §6a). Tag-Stand unverÀndert v3.7.0.
Belege: tests/test_demo_mockup.sh (21); VM-Suiten run 52, p3 48, p4 54, p5 31, p6 22 grĂŒn nach Neubau.

Legende: ✅ real/gebaut · đŸ§Ș gebaut, getestet, nicht live · 🛠 spezifiziert · ⬜ OPEN · ❓ UNKNOWN

Keine Zugangsdaten, keine Kunden-Domains, keine Reseller-IDs (Demo-Daten: *.invalid, example.org).


1. Was gebaut ist

  • đŸ§Ș database/demo/mockup.sql: Demo-Stammdaten fĂŒr das aktuelle Schema, gleiche Anweisungen fĂŒr SQLite und MariaDB. Vier Gruppen (demo-crew, demo-trial, demo-admin, demo-kunde), vier Konten (ungĂŒltiger Hash, nicht anmeldbar), sechs Produkte, sechs Freigaben, zwei Verbrauchszeilen. Kommentare nennen je Tabelle Pflicht- und optionale Felder. Alle Slugs beginnen mit demo-, Mehrfachladen bricht an UNIQUE ab.
  • ✅ Bewusst nicht enthalten: soap_credentials (ein verschlĂŒsselter Blob wird nicht gefĂ€lscht), Kategorien/Domains/Orders (nicht im Schema).
  • đŸ§Ș database/demo/mockup_entwurf.sql: der Entwurf als SQLite-DDL plus Beispieldaten. Kein Schema, nirgends geladen außer im Test.
  • ✅ In der Klicktest-Instanz ozm03 (MariaDB) geladen; nicht auf ozm01/ozm02.

2. Was die Auswertung zeigt (Chain::status, fester Zeitpunkt, SQLite und MariaDB identisch)

Gruppe login crew schluessel ca hosting ssl
demo-crew ok ok missing open ok missing
demo-trial ok ok missing open missing missing
demo-admin ok ok missing open ok missing
demo-kunde missing ok missing open missing ok
  • demo-trial: Freigabe mit Start in der Zukunft gilt als nicht verfĂŒgbar (30-Minuten-Regel), die deaktivierte zĂ€hlt nicht.
  • Beobachtung: Ohne SOAP-Zugang (schluessel) ist hosting fĂŒr alle Gruppen gesperrt, ssl bei demo-kunde zusĂ€tzlich wegen fehlender Anmeldung (vorgaenger_fehlt). Das ist die Kette wie in v3.6.0 festgelegt, bestĂ€tigt aber die offene Frage, ob SSL/Hosting an einen SOAP-Zugang hĂ€ngen sollen. ⬜ Entscheidung offen.
  • ❓ Kein Dashboard getestet: Es gibt noch keine Dashboard-Seite (index.php ist die SSL-Konsole, Chain in keiner Seite verdrahtet). Getestet ist nur die Auswertung der Stammdaten.

3. Befund: Eindeutigkeit der Order-Nummer greift bei NULL nicht (ersetzt Aussage der VorgÀngerdatei)

Der Entwurf sah UNIQUE (credential_id, order_number) vor. Der Probelauf in SQLite zeigt: Ist credential_id NULL (provider = acme|manual), lĂ€sst sich dieselbe Nummer doppelt einfĂŒgen. Die Invariante „zwei Zeilen mit gleicher Nummer sind unmöglich“ gilt damit nur fĂŒr provider = soap.

  • đŸ§Ș Der Test hĂ€lt den Befund fest und schlĂ€gt an, sobald eine Dublette abgewiesen wird (dann Entwurf nachziehen).
  • ⬜ Abhilfen im Entwurf genannt, nicht entschieden: zusĂ€tzliche Eindeutigkeit ĂŒber (provider, order_number), oder Platzhalterzeile fĂŒr Nicht-SOAP. Die erste wĂŒrde zulassen, dass zwei SOAP-ZugĂ€nge dieselbe Nummer fĂŒhren, obwohl Nummern je Registrar-Zugang gelten.
  • ❓ MariaDB-Verhalten nicht geprĂŒft (nur SQLite); der Standard erlaubt mehrere NULL in UNIQUE, gleiches Verhalten ist wahrscheinlich, nicht belegt.

4. Bezug zum PrĂŒffall (Branko, nicht OZMAI-Geltung)

Der Probelauf hat eine Aussage des Entwurfs widerlegt, bevor sie Schema wurde. Das entspricht der Regel „Wiederholung ≠ BestĂ€tigung“: Dass der Entwurf plausibel klingt, galt nicht als Beleg; erst der Ein-Zeichen-Test (hier: Dublette einfĂŒgen) hat ihn geprĂŒft.

5. Offene Punkte

  • ⬜ Antworten der Crew auf die sieben Fragen im Entwurf; Schema erst danach.
  • ⬜ Dashboard-Seite (Kacheln aus Freigaben) existiert nicht.
  • ⬜ Entscheidung, ob schluessel fĂŒr hosting Voraussetzung sein soll.
  • ❓ Order-ID-Frage aus v3.6.1 bleibt offen, bis ein echter sslReplace das Rohlog fĂŒllt.