Altlasten: Inhaltsreview und Wiederherstellung am 5. September 2026

Issue #556, Ausgangscode 084d30fd08f88a20a62835154c65010d27618100.

Ausgangszustand und Entscheidung

Am 5. September 2026 war Release 8ed8d136-f3f8-5a78-946b-4b419a050269, Pointer 1, aktiv, aber seit 2026-08-28T03:16:54.083Z stale. Neue Reports lehnten Altlastenaussagen korrekt ab. Die täglichen Renewal-Läufe qualifizierten geänderte Kandidaten, aktivierten sie jedoch nicht. Diese Sperre war richtig.

Read-only-Datenbankvergleich am 5. September, 10:14 und 10:17 UTC: neuester qualifizierter Kandidat 094c9db7-f432-531d-9cb7-e31884d01cd8, Abruf 2026-09-05T03:43:51.480Z, gültig bis 2026-09-07T03:43:51.480Z. Ein eigener Drei-Pass-Abruf um 10:17:42.371Z bestätigt exakt dessen Inhalt.

NachweisAlter ReleaseGeprüfter Kandidat
Quellzeilen1.7941.814
Published / Excluded / außerhalb Scope372 / 19 / 1.403372 / 19 / 1.423
Composite-SHA-25605026d1639b247240303fa9fa5e703df447e57e05867e80e0f2a7d143ebb7fdb430d9fa81df4a8d2d75b7a193ca0969ea02de89c5340ecd009789c83ed1db812
Source-SHA-256fb0cf929c3f1f4b54e791caf6da42dea1d3e7019b2831ce7b0517afa54c4ee503e3ad412e203f82aae204b127d5d08dfa821f8ab18fec3957144110c5b9c59d1
Published-SHA-256515e51e5bb1dcc55ea055433cd3b280d5cb95c192cd3347688d4d5792efaa6053fe3fea7176efa6b8aaddd9532ace1bee6080a2e10848cbdfcc2207c9286d2ab
Scope-SHA-256bf94beba8963123b7a7dd4801e76aafb4040faa79074fcadb0fe57f966628af648f4441a95d6e665b66596332af4086d77be4c9c7d344037bf32a10cdf2ee48f
Excluded-SHA-256d8e20b751b274d55a5ab5d9c6144bada7eddc1580a0607ab96a56f27a2a78e9bidentisch

372 identische veröffentlichte UBAID, keine Hinzufügung oder Löschung. Genau eine Attributänderung: UBAID 72173, N27 Parkplatz Brevillier Urban, SAN_ART: Dekontamination → Sicherung. Status gesichert, Sanierungsstatus in Durchführung und sämtliche anderen Attribute bleiben identisch. Zeilenhash 306c4900754d37c9d57390148232fc09b7aa3bdd0850da3c887b9fc506287b3ca7f5c32adf832550f65739041b85be9b9fd56f482ad0351f860564fe3d047950. Alle 372 Geometriehashes sind gleich; PostGIS bestätigt zusätzlich 372/372 ST_Equals und binär identische EWKB. Alle 19 ausgeschlossenen Zeilen inklusive Geometriehash sind identisch. Published-BBox bleibt [122948.66,290958.08,669870.15,553253.14] in EPSG:31287.

Altablagerungen steigen aggregiert von 726 auf 732, Altstandorte von 677 auf 691. Historische Einzelzeilen außerhalb des Altlast-Scopes wurden nicht gespeichert. Deren Identitäts-, Attribut- und Geometriedelta ist aus dem Gesamthash nicht rekonstruierbar. Deshalb weder „nur 20 hinzugefügt“ noch vollständige Gesamtquellengleichheit. Künftige private geometriefreie Inventare schließen diese Nachweislücke für neue Abrufe; sie ersetzen keine rückwirkend fehlenden Daten.

Die PM-Prüfung hat den gespeicherten Zeilenvergleich und den Consumer unabhängig bestätigt. lib/geo/altlasten.ts verwendet Geometrie und UBAID, nicht SAN_ART. Die Korrektur verändert daher keine Hit-/No-Hit-/Distanzentscheidung. Das ist eine konkrete Einzelfallentscheidung innerhalb des bestehenden Reportscopes, keine allgemeine automatische Freigabe von Attributänderungen. Die Aktivierung war an frischen Kandidaten, Gesamtmanifest, Pointer-CAS und finale PM-Abnahme gebunden; diese Voraussetzungen wurden unmittelbar vor dem unten dokumentierten Wechsel erneut geprüft.

Rechte und Betriebsgrenzen

Bestehende Entscheidung UBA-WEITERNUTZUNG-2026-08-11, public_display/report_lookup, altlast-enacted-v1, EPSG:31287 und neun Pflichtchecks bleiben unverändert. Registry und Kandidat bestätigen die Rechtebindung und aktuelle Frische. Die amtliche GIS-Seite nennt am 5. September zusätzlich CC BY 4.0 und den Zitierhinweis „Quelle: Umweltbundesamt GmbH“. Das erweitert in #556 keine Produktfreigabe: maßgeblich bleibt die engere dokumentierte UBA-Entscheidung mit Attribution, Quelllink, Screening-Hinweis und ohne Rohgeometrieexport. Rechte-Review spätestens 11. Februar 2027; keine neuen Capabilities oder kommerzielle Pauschalfreigabe.

Der alte Release ist stale und kein verwendbares Rollbackziel. Rückweg und fail-closed Wiederanlauf stehen im Runbook. Der bestehende Resend-Alarm scheitert an unverifizierter Domain; GitHub-Actions ist der live geprüfte Reviewkanal; Adminlogik und Daten wurden geprüft, die authentifizierte Adminansicht war in den vorhandenen Sitzungen nicht zugänglich. Mailzustellung bleibt offen. Keine Testmail, DNS-Änderung oder künstlich ausgelöster Produktionsausfall.

Implementierung und Abnahme

Der reproduzierende Renewal-Test scheiterte vor dem Fix an fehlender activeSnapshot-Evidence (1 fehlgeschlagen, 7 bestanden). Derselbe Test ist nach Ergänzung der aktiven Frist/Pointer-/Gate-Evidence grün. Zusätzliche Tests prüfen Attributänderung, Identitätstausch bei gleicher Anzahl, Geometriedelta, fehlende historische Inventare und Adminwarnung. Unveränderte Source-/Rechte-/Freshness- und Qualitygates bleiben Pflicht.

Lokaler Prüfstand: Typecheck, ESLint und vollständige Vitest-Suite grün (3.607 bestanden, 43 bewusst übersprungen). Content-Audit, SEO-Audit und Österreich-Adapterprüfung bestanden. Der echte PostGIS-E2E lief im isolierten CI-Image: Migration idempotent, Hit/Rand/Nähe/No-Hit, Pointer 1→2→3, Recovery/Abandon, Rechte- und Fristensperren sowie unveränderte Legacydaten. Die lokale PostgreSQL-17-Installation ohne PostGIS wurde dafür nicht verändert.

Kontrollierter Warnlauf und Aktivierung

PR #559, Code-Stand f2bf008c8a82afab2af0f43fe8522e93a8d970e5, vollständige CI 33960423710 erfolgreich: Verify, PDF-Poppler und PDF-UA-Feasibility. Der gebaute Preview dpl_8h9iNpZuLkcrLXYMFbgEZTY2M3W8 war READY und an diesen SHA gebunden. Die letzten Dokumentationskorrekturen und der anschließende Main-Rollout werden mit ihrem exakten finalen SHA in #556/#559 belegt; die folgenden Liveprüfungen betreffen die Quellenaktivierung auf dem unveränderten damaligen Produktionscode.

Der kontrollierte Renewal-Warnlauf 33960421624 auf demselben Code scheiterte erwartungsgemäß mit source_content_changed, aktivierte nichts und erzeugte Kandidat 84667e56-73ac-5ea4-a345-6a96acd2a9f2. Er enthält exakt das oben geprüfte Manifest, technisch abgerufen 2026-09-05T10:22:17.037Z, frisch bis 2026-09-07T10:22:17.037Z. Die echte GitHub-Fehlerannotation „Altlasten: Inhaltsreview erforderlich“ nennt explizit die aktive alte Frist 2026-08-28T03:16:54.083Z und den nicht aktivierten Kandidaten. Artefakt altlasten-renewal-review-33960421624 (ID 9967762864, 145.988 Bytes, Ablauf 4. Dezember 2026) wurde heruntergeladen: Ergebnis trennt aktive und Kandidatenfrist; Inventar enthält 1.814 Zeilen mit nur UBAID, Scopeklassifikation und Hashes, keine Rohgeometrien. PM prüfte dies unabhängig.

PM bestätigte den finalen Kandidaten nach eigenem Drei-Pass-Review um 10:25:38 UTC und neun bestandenen Pflichtchecks. Die bekannte optionale Warnung zur fehlenden WFS-Transaktionssicherheit bleibt sichtbar; drei identische Komplettabrufe kompensieren sie im bestehenden Vertrag. Nach ausdrücklicher Einzelfallfreigabe bestätigte ein weiterer vollständiger Review um 10:26:55.470Z Manifest, Rechte und Pointer 1. Der bestehende Publisher aktivierte um 2026-09-05T10:26:55.681Z:

  • Release 84667e56-73ac-5ea4-a345-6a96acd2a9f2, Pointer 1 → 2, Event 747.
  • Rechte unverändert UBA-WEITERNUTZUNG-2026-08-11, neun Pflichtchecks bestanden.
  • Öffentliche Provenance durch Umsetzung und PM unabhängig als fresh rückgelesen.
  • Kein direktes SQL-Update, keine Fristverlängerung, kein Gate-Bypass.

Produktive API-, Web- und PDF-Abnahme

Genau zwei neue anonyme Prüfberichte auf Produktionscode 084d30fd08f88a20a62835154c65010d27618100, Deployment dpl_DG1YnkTeWc5DH6vDAxE9wGR3ibMi. Damit ist Quellenaktivierung von späterer Auslieferung der neuen Warnlogik getrennt belegt. Beide API-Antworten waren 200, private, no-store, ohne alsag_altlasten in den degradierten Layern.

Öffentlicher PrüffallAPI-Zeit UTCErgebnisWeb / PDFPDF-SHA-256
Tanklager Lobau, 1220 Wien10:27:18.705kein Punkttreffer; Nähe 703 m, UBAID 72113200 / 200, 9 Seiten61f52878a268f924ff4f3bae92e84083b0c92c4cc324e421ae252b3fb48e3bad
Schulgasse 2, 2230 Gänserndorf10:28:17.102kein Treffer innerhalb 1 km; UBAID und Nähe null200 / 200, 13 Seiten27e71fc7736bf6d729d07b8b1b7b6c68e5e5561a341d67ec5fdd92b6b604b799

Beide zeigen Release 84667e56-73ac-5ea4-a345-6a96acd2a9f2, technischen Abruf 2026-09-05T10:22:17.037Z, source_vintage=null, UBA-Attribution und Screeninggrenze. Webansichten nach Bestätigung des unverbindlichen Hinweises tatsächlich sichtbar geprüft. PDF-Risiko-, Hinweis- und Quellenseiten mit Poppler gerendert und visuell geprüft. Beim negativen PDF steht der Hinweis auf der Folgeseite; die bestehende Pagination ist damit nicht als verbessert oder vollständig abgenommen behauptet. Private Screenshots, PDF-Dateien und API-Belege liegen beim Review vor; keine Report-Capabilities oder Rohdateien werden im Repository veröffentlicht.

Der bereits vorliegende alte Prüfbericht bleibt unverändert: Erzeugungszeit 2026-09-05T09:17:09.267Z, Altlasten null, source_not_released weiterhin als degradierter Layer. Keine Änderung bestehender Reports.

Die bestehende Admin-Sitzung leitete /admin/data-sources mit 307 nach /login. Die neue Adminwarnung ist durch Logiktests und Read-only-Datenvergleich geprüft, nicht durch eine authentifizierte visuelle UI-Abnahme. Keine neue Anmeldung, Loginmail oder Änderung von Zugriffskontrollen. Mailzustellung bleibt ebenfalls offen. Ein kontrollierter normaler Main-Renewal und der exakte Main-CI-/Deploymentabschluss werden abschließend in #556 belegt; ein Skip bei ausreichender Frischereserve ist korrekt und kein Nachweis eines späteren planmäßigen Laufs.

#557/#558 und PDF/UA-Produktgates aus #333 sind nicht Teil dieser Abnahme.