BEV-DXF — Produktionsnachweis

Stand: 26. August 2026

Produktiv aktiviert und rücklesbar. Der letzte Consumer aus Issue #412 wurde auf dem geprüften Merge-Commit ausgerollt. Dunkelzustand, Positiv- und Negativpfade, Parser-Kompatibilität, Rollback und anschließende Wiederaktivierung sind tatsächlich ausgeführt. Der aktuelle Produktionszustand ist DXF_EXPORT_ENABLED=true.

Geprüfte Ausgangsbasis

  • Source bev-parzellen, Distribution bev-dkm-gpkg-pilot-snapshot, Zweck und Kanal export;
  • Pilot bev-gaenserndorf-pilot-v1, BBox [16.64,48.28,16.8,48.4];
  • aktiver Export-Release 7ae1d4da-e5d5-5c09-ae1f-15997506d4f7, Pointer-Version 1, mit 28.535 vollständig umschlossenen, unveränderten Originalpolygonen, 1.211 ausgeschlossenen Public-Geometrien und 15 Quarantänefällen;
  • unveränderter öffentlicher Release 655a7dc3-1f7a-5bdc-a329-d73f1c458320, Pointer-Version 2, mit 29.746 veröffentlichten Originalpolygonen;
  • Rechtebedingungen attribution, sourceLink, licenseLink, changeNotice, nonEndorsement, valueAddedReport, notStandaloneBevProduct, pilotCoverageOnly und noOwnerData;
  • parcel_dxf ist im Consumer-Inventar release_bound und bleibt aus der Public-Display-/Standort-Check-Matrix ausgeschlossen.

Der produktive Export-Pointer ist zusätzlich durch den Infrastruktur-Readback vom 25. August belegt. Dieser ältere Nachweis bleibt historische Vorabevidenz und wird nicht rückwirkend als DXF-Live-Nachweis umgedeutet.

Code-, CI- und Deployment-Evidenz

  • Implementierungs-PR: #528, gemergt am 2026-08-26T05:53:58Z;
  • geprüfter Implementierungscommit: 3f8dd542213d42072e9836e66789d524d97e4c43;
  • produktiver Merge-Commit: 8b276764f8d5803e8dc6ecdbe54323d8b38445c1;
  • erfolgreicher GitHub-Actions-Lauf: 32935219822, Start 2026-08-26T05:44:21Z, Abschluss 2026-08-26T05:53:49Z;
  • alle CI-Stufen einschließlich des echten PostGIS-Publish-/Pilot-/Boundary-/ Kanal-Rollback-Harness waren grün;
  • letzter automatischer Dunkel-Deploy: dpl_8ux54iM3C71qap6NPmQBS9zrnfjy, erstellt 2026-08-26T05:54:02.934Z;
  • Dunkel-Readback auf diesem Deploy: GET und OPTIONS jeweils 404 private, no-store; OpenAPI 200, Cache-Control: no-store, X-Vercel-Cache: MISS und kein DXF-Path-Item;
  • erster kontrolliert aktivierter Deploy: dpl_GmoBsGpFbdF6s8dyDcg6ms6q9wKd, erstellt 2026-08-26T05:56:20.608Z; der Response-Readback bestätigte exakt den Merge-Commit 8b276764f8d5803e8dc6ecdbe54323d8b38445c1, bevor Positiv- und Negativfälle ausgeführt wurden;
  • GitHub-Deployment 6098011444 referenzierte exakt den Merge-Commit und meldete erfolgreich Produktion;
  • finaler aktiver Vercel-Deploy: dpl_CaUMXVpyerL5iV6BzraupmboMgtr, erstellt 2026-08-26T06:04:28.376Z, Status READY, Alias https://www.landnutzen.at;
  • der Response-Readback bestätigte auch beim finalen Deployment exakt x-deploy-commit: 8b276764f8d5803e8dc6ecdbe54323d8b38445c1.

Vor dem Merge bestanden lokal 260 Testdateien bei sechs übersprungenen sowie 3.388 Tests bei 39 übersprungenen Tests. Typecheck, ESLint, Build, Content-/SEO- Prüfung, drei Browser-Dokumentationstests und das echte PostGIS-Harness waren grün.

Verbindlicher Ausgabe- und Gate-Vertrag

Der Endpunkt liest ausschließlich einen bereits gespeicherten wertschöpfenden Report und dessen identischen Public-/Exportstand. Mindestens eine Nicht-BEV- Quelle muss den Mehrwertkontext belegen. Ausgegeben werden nur vollständige, unveränderte ST_CoveredBy-Originalpolygone in voller Stützpunktdichte; kein Clipping, keine Vereinfachung, kein Mittelpunktgate und kein Legacy-/WMS- Fallback. Pflicht sind die sichtbare Namensnennung

Datenquelle: BEV – Bundesamt für Eich- und Vermessungswesen (data.bev.gv.at), CC BY 4.0

sowie Quellen-/Lizenzlink, Bearbeitungshinweis, Nicht-Unterstützung und die Grenze „kein rechtsverbindlicher Vermessungsplan“. Eigentümerdaten, ein eigenständiges BEV-Produkt, allgemeiner Katasterdownload und nationale Abdeckung bleiben ausgeschlossen.

Das OpenAPI-Path-Item existiert nur bei beiden Gates:

  1. parcel_dxf ist release_bound;
  2. DXF_EXPORT_ENABLED ist exakt true.

Das Flag ersetzt keinen Release-, Report-, Rechte-, Coverage-, Freshness-, Quality-, Quarantäne- oder Boundary-Nachweis. false bleibt der unmittelbar getestete Rollbackzustand: GET und OPTIONS liefern dann 404 private, no-store, und der ungecachete OpenAPI-Vertrag enthält keinen DXF-Pfad.

Nicht personenbezogener Live-Report

Für den positiven Innenfall wurde genau ein anonymer Report für den öffentlich bekannten Standort „Volksschule Gänserndorf-Süd, Schulgasse 2“ erstellt:

  • Report-ID gekürzt mPVM…p0Cy, weil Report-IDs als öffentliche Zugriffscapabilities behandelt werden;
  • Koordinate 48.3058992, 16.6848337;
  • Tier free, keine Kontozuordnung;
  • erstellt 2026-08-26T05:59:53.330Z, Ablauf nach exakt 90 Tagen am 2026-11-24T05:59:53.330Z;
  • gespeicherter Public-Release 655a7dc3-1f7a-5bdc-a329-d73f1c458320 und weitere Nicht-BEV-Quellen.

Der öffentliche anonyme POST-Bucket der gemeinsam genutzten Produktions-IP war zu diesem Zeitpunkt bereits ausgeschöpft. Daher lief diese eine autorisierte, nicht personenbezogene QA-Schreiboperation über denselben internen Anwendungspfad buildReportresolveBevExportReportContextsaveReport. Es wurden keine personenbezogenen Produktionsdaten und kein Konto angelegt.

Positiv- und Parser-Readback

Der aktive Endpunkt GET /api/v1/report/{qa-report-id}/dxf lieferte:

  • HTTP 200, Content-Type: image/vnd.dxf; charset=utf-8, Content-Disposition: attachment, Cache-Control: private, no-store;
  • X-LandNutzen-Source: bev-parzellen und einen Provenienz-Link;
  • 3.516 Bytes ASCII-DXF mit gültigem EOF;
  • SHA-256 3abc295d3535b33ea14ea1d423b7ce6ba5bb373bddfa6d655f118b3c96244a65;
  • genau eine Zielparzelle, keine LN_NACHBARN im Free-Tier;
  • sichtbare Metadaten für Grenzkataster, EPSG:31287, DKM-Stand 2026-04-01, BEV/CC-BY-4.0, Quellen- und Lizenzlink, Bearbeitungshinweis, Nicht-Unterstützung, Vermessungsgrenze sowie beide Release-IDs.

Ein gepinntes GDAL 3.13.3 (ghcr.io/osgeo/gdal@sha256:58e21a794e3e49c2882a078cf39625aa8d1f86188e0273f74156e9f3f3cd0253) erkannte den Treiber DXF, den Layer entities, 14 Features und die Extent (648387.296000, 494851.410000) – (648633.224000, 495089.707000). Die GeoJSON-Konvertierung enthielt eine Parzellen-LineString mit 23 Koordinaten und 13 Textpunkten. Der direkte atomare Adapter lieferte für denselben Standort eine MultiPolygon-Zielgeometrie mit einem Ring und ebenfalls 23 Stützpunkten; damit ist die vollständige Stützpunktdichte vom Adapter bis zum Fremdparser belegt.

Der gespeicherte Report blieb auch in den anderen Oberflächen konsistent:

  • GeoJSON: 200, 14 Features, genau ein Treffer, identische Public-/Export- Release-IDs;
  • PDF: 200 application/pdf, private, no-store, 13 A4-Seiten, PDF 1.7; der Text-Readback enthielt Grenzkataster, BEV, DKM und den Stand 2026-04-01;
  • OpenAPI: 200, Cache-Control: no-store, X-Vercel-Cache: MISS, DXF-Pfad vorhanden.

Negative Gates

  • formal ungültige Report-ID: 400 bad_id;
  • syntaktisch gültige, unbekannte Report-ID: 404 report_not_found;
  • vorhandener Rathaus-Report innerhalb der Quarantänehülle: 503 source_not_released, ohne internen Adapterzustand;
  • aktives OPTIONS: 204;
  • alle Fehlerantworten: private, no-store und redigierter Vertrag.

Damit sind Eingabe-, Reportvorhandenseins- und Quarantänegate live belegt; der qualifizierte Innenfall belegt zusätzlich die exakte Public-/Export-Pointer- Bindung. Außen-Coverage, Boundary-Mehrdeutigkeit und abweichender Reportkontext sind durch Route-, Contract- und echte PostGIS-Tests belegt, wurden aber nicht als zusätzliche Live-Fälle ausgegeben. Der Rathausfall ist zugleich der Gegenbeweis, dass ein vorhandener Report und ein aktives Flag allein keine Geometrie freigeben.

Ausgeführter Rollback und finale Wiederaktivierung

Das Flag wurde nach dem positiven Readback auf DXF_EXPORT_ENABLED=false gesetzt und derselbe geprüfte Commit erneut ausgerollt:

  • Rollback-Deploy dpl_7qM4jzTSZNkGULwDniYJDA1WkgnF, erstellt 2026-08-26T06:02:22.796Z;
  • GET und OPTIONS 404 private, no-store;
  • ungecachetes OpenAPI 200 no-store, X-Vercel-Cache: MISS, DXF-Pfad abwesend;
  • Public-Pointer Version 2 und Export-Pointer Version 1 einschließlich ihrer Release-IDs unverändert.

Anschließend wurde DXF_EXPORT_ENABLED=true wiederhergestellt und der finale Deploy dpl_CaUMXVpyerL5iV6BzraupmboMgtr erzeugt. Der DXF-Readback lieferte erneut bytegleich denselben SHA-256, OPTIONS wieder 204, OpenAPI den DXF-Pfad und GDAL erneut 14 parsbare Features. Der letzte Pointer-Readback um 2026-08-26T06:07:02.270Z bestätigte weiterhin dieselben Public-/Export- Releases.

Ergebnis und Betrieb

Issue #412 ist technisch, produktiv und dokumentarisch erfüllt. Der aktuelle Produktionszustand ist DXF_EXPORT_ENABLED=true; false ist der nachgewiesene Sofort-Rollback. Die distributionsgenaue NÖGIS-Rechteklärung bleibt getrennt in #413 offen.

Alle temporären lokalen Live-Artefakte und die nur für den Readback angelegte temporäre Produktions-Umgebungsdatei wurden nach der Prüfung gelöscht. Die persistierte anonyme QA-Reportzeile folgt ihrer dokumentierten 90-Tage- Retention.