Dokumentation: Seiten auswählen

ADR-0067: Echte Parzellenreferenz im internen PDF/UA-QA-Pfad (Slice I)

  • Status: Vertrag vor Implementierung festgelegt, 5. September 2026
  • Issue: #553; Parent #333 bleibt offen

Zugriff und fest ausgewählter Referenzfall

Ein ausschließlich lokaler/serverseitiger QA-Einstieg ohne HTTP-Route liest nur den bereits vorhandenen anonymen QA-Report der Volksschule Gänserndorf-Süd, Schulgasse 2, 2230 Gänserndorf. Er nimmt weder Report-ID noch Adresse, Koordinate oder Geometrie als Argument entgegen. Der SQL-Selektor verwendet den dokumentierten Erstellungszeitpunkt als Millisekundenfenster 2026-08-26T05:59:53.330Z bis exklusiv .331Z und das bereits dokumentierte ID-Präfix/-Suffix. PostgreSQL speichert feinere Zeitauflösung als JavaScript. Genau ein Treffer ist erforderlich. Die vollständige ID bleibt im Speicher.

Vor und unmittelbar nach der Geometrieauflösung müssen Ablauf am 24. November 2026, aktuelle Retention, fehlende Kontozuordnung sowie fehlender IP-/Cookiebezug, Label und Notiz bestätigt werden. getReport lädt den echten persistenznormalisierten Report. Adresse, Koordinate, Tier, Erstellungszeit und Reporthash werden unverändert geprüft; kein Umschreiben in die synthetische Identität. Fehlender, beanspruchter, veränderter oder abgelaufener Referenzfall bricht mit parameterlosem Fehler ab. Keine Ersatzanlage und keine Suche in anderen Reports. Keine Speicherung vollständiger Reports oder Capabilities in Artefakten, Logs, Repository oder öffentlichen Nachweisen.

Geometrie, Herkunft und Auswahl

resolveReleasedPdfUaParcel bleibt der serverseitige Adapter für pdf_parcel_outline. Alle bestehenden atomaren Report-/Public-/Export-, Rechte-, Freshness-, Coverage-, Quality- und Quarantänegates laufen vor einer Auswahl. Ein neues explizites internes Auswahlprofil matched-parcel übernimmt nur den eindeutig passenden Treffer aus der freigegebenen Collection. Es verändert keine Koordinate. Das bisherige Profil mit Nachbarn bleibt Standard. Mehrdeutige Treffer bleiben gesperrt; ungültige Treffergeometrie wird niemals repariert oder durch eine Skizze ersetzt.

Begründung: Der aktuelle Kartenexport ist freigegeben, enthält aber Nachbarn mit Innenringen; Slice H lehnt diese zu Recht ab. Der beauftragte Free-QA-Fall ist die Zielparzelle. Nachbarn sind kein Teil seiner Figure. Innenringunterstützung und globale Guard-Aufweichungen sind nicht Bestandteil dieses Slices.

Der Nachweis trennt unveränderte Originalgeometrie im freigegebenen Exportstand, die bestehende Kartenadapter-Transformation (Topologie-erhaltende Vereinfachung und sechs Dezimalstellen), die ausgewählte Treffergeometrie und die proportionale metrische Projektion. SHA-256, Stützpunktzahl, Ringe, Ausdehnung, Herkunft, Datenstand und Releasebindung werden für jede relevante Stufe festgehalten. Rohgeometrie wird nicht als öffentliches eigenständiges Datenprodukt veröffentlicht.

Eigener QA-Mapper und Darstellung

Der synthetische Stored-Mapper und der öffentliche React-PDF-Pfad bleiben unverändert. Ein eigener interner Mapper verbindet das echte, opaque und maximal 60 Sekunden gültige Parcel-Token mit einer getrennten synthetischen QA-Vorlage. Der Originalreport bleibt Basis der Tokenbindung, wird nicht zur Fixture umetikettiert. Nur Parzellen-Figure, amtlicher Datenstand, Herkunft, reale Ortsangabe und im Report gespeicherte Fläche sind real. Diese Fläche wird als gespeicherter DKM-Reportwert bezeichnet, nicht als aus dem PDF-Pfad berechnete Vermessungsfläche. Alle übrigen Abschnitte, Risiken, Szenarien und Kosten bleiben ausdrücklich synthetische Prüfinhalte ohne Aussage über den realen Standort. Auch die Steckbriefzeilen zur Parzelle und die Dokumentmetadaten dürfen keine reale Geometrie als synthetisch oder synthetische Fläche als real darstellen.

Eine fehlende oder abgelehnte Figure ist ein fehlgeschlagener Realnachweis. Der QA-Einstieg erzeugt dann keine positive Ersatz-PDF. Der bisherige synthetische Preview und dessen Abwesenheitsfälle bleiben erhalten.

Abnahmetests vor Implementierung

  1. Inhaltlicher Rotlauf: vorhandener realidentischer Prüfdatensatz scheitert am unveränderten synthetischen Mapper; neuer eigener QA-Mapper erzeugt anschließend echte Parzellenangaben und weiterhin explizit synthetische übrige Inhalte.
  2. Feste Auswahl liest nur die dokumentierte Millisekunde, verlangt genau einen anonymen, unveränderten, nicht abgelaufenen Treffer und lädt über getReport. Kein Treffer, zwei Treffer, falscher Ort/Tier/Zeitpunkt, Kontobindung und Änderung während Auflösung schlagen geschlossen fehl.
  3. matched-parcel übernimmt exakt einen Treffer ohne Geometrieänderung; Nachbar mit Innenring beeinflusst dieses ausdrücklich begrenzte Profil nicht. Standard- profil lehnt dieselbe Collection weiterhin ab. Zwei Treffer, ungültiger Treffer, falsche Report-/Releasebindung, fehlende Rechte/Freshness/Quality/Coverage und Quarantäne bleiben gesperrt. Tokens bleiben prozesslokal und zeitgebunden.
  4. Finale PDF: acht Seiten; eigenes explizites I-Profil mit 20 Überschriften, sieben Tabellen, sechs Listen, drei Figures und vier Links. Alt-Text, Attribution, Lesereihenfolge, Fläche und Lage prüfen. Das H-Profil 20/7/6/3/2 bleibt exakt.
  5. Original-/Adapter-/Auswahl-/Projektionshash und tatsächliche finale PDF prüfen; veraPDF, beide Poppler-Renderer, Apple PDFKit/Quartz sowie echter Chrome-Viewer. Chrome-Darstellung ist getrennt vom weiterhin offenen Semantikgate zu berichten.

Typecheck vor PR, relevante Tests/Lint/Build, gebaute Preview, vollständige CI, Main-CI, READY-Deployment auf exaktem Merge-SHA und schreibfreier Live-Readback sind Releasebedingungen. Keine neuen Nutzerreports, Provider, Importe, Kosten, Credentials-/Sicherheitskontrolländerungen oder öffentlichen PDF/UA-Rollout.

Beobachtete Viewergrenze

Die finale Datei besitzt exakt vier strukturgebundene Linkannotationen. Chrome/PDFium erkennt zusätzlich die zwei sichtbaren Quellen-/Lizenz-URLs auf Seite 6 heuristisch als Links. Sein I-Darstellungsprofil prüft deshalb exakt sechs sichtbare Links in der beobachteten Reihenfolge (zwei URL-Autolinks, anschließend vier benannte Annotationen). Das getrennte semantische Soll bleibt vier Links und 20/7/6/3/4; weder die zusätzlichen heuristischen Links noch fehlende Tabellen-/Listen-/Bildrollen gelten als semantische Abnahme.

Nachtrag 30. September 2026: Neubindung nach der BEV-Erneuerung

Seit der Erneuerung am 29. September 2026 ist der Public-Release 5e5329cf-630f-5df1-a8b7-47bafa401856 (Pointer-Version 3) aktiv, der Export-Release 74be37a0-6aaf-5888-bb03-7a6a2ab4f30d (Pointer-Version 2) ist an ihn gebunden. Der bisherige Referenzreport vom 26. August 2026 bleibt an 655a7dc3… gebunden. Weil Exporte releasegebunden sind, liefert der Adapter für ihn keine Geometrie mehr. „Keine Ersatzanlage“ gilt weiter für den Laufzeitpfad: Der Check sucht und erzeugt nie selbst einen Ersatz. Die Neubindung ist eine dokumentierte Codeänderung.

  • Neuer Referenzfall: anonymer Free-Report derselben Adresse, am 30. September 2026 über den regulären anonymen Report-Endpoint angelegt. Selektor: Millisekundenfenster 2026-09-30T12:00:07.827Z bis exklusiv .828Z plus das nur im Code hinterlegte ID-Präfix/-Suffix, Ablauf 2026-12-29T12:00:07.827Z. Die vollständige ID bleibt wie bisher ausschließlich im Prozessspeicher. Adresse, Koordinate, Tier, Parzelle AT:06006:1517/7 und Fläche (26.483 m²) sind unverändert. Seite 6 prüft das Speicherdatum 2026-09-30.
  • Offener Vertragspunkt IP-Bezug: Der reguläre anonyme Endpoint speichert das Pseudonym reports.ip_hash. Der Vertrag „fehlender IP-/Cookiebezug“ bleibt unverändert. Der Check schlägt deshalb geschlossen fehl, bis entweder ip_hash dieses einen Referenzreports geleert ist (einzeiliger Produktionsschreibzugriff, ausdrückliches Ja erforderlich) oder dieser Vertragspunkt per weiterem Nachtrag geändert wird. Kein Anwendungspfad liest reports.ip_hash; nur der QA-Selektor prüft die Spalte. Erledigt am 30. September 2026: ip_hash wurde nach ausdrücklicher Freigabe für genau diesen Report geleert; der Vertrag bleibt unverändert. Der anschließende, rein lesende Produktionslauf bestand vollständig.
  • Beleg: Auf einem Neon-Wegwerfbranch von main bestand am 30. September 2026 der unveränderte Check mit geleertem ip_hash vollständig: veraPDF konform, beide Poppler-Renderer, Apple PDFKit 8/8, Chrome 8/8. Die Chrome-Tag-Semantik bleibt wie dokumentiert offen. Mit gesetztem ip_hash schlug derselbe Lauf geschlossen fehl. Der Branch wurde danach gelöscht.
  • Gültigkeit: Anonyme Reports laufen nach 90 Tagen ab. Vor dem 29. Dezember 2026 und nach jeder Neuqualifizierung des BEV-Public- oder -Exportkanals ist neu zu binden (Runbook (nicht im öffentlichen Doku-Portal verfügbar)).