Zum Inhalt

Öffentliches AIT-Embed

Der AIT-Bereich stellt zwei öffentliche Seiten bereit, die eine Gemeinde per iframe auf ihrer eigenen Website einbindet, für ihre Einwohner, ohne die bat-id-App: eine interaktive Karte im Lesemodus und die Liste der öffentlichen Auflagen. Von jeder AIT-Sitzung entkoppelt.

Lesezugriff, keine privaten Daten

Öffentliche Routen: keine Authentifizierung, keine AIT-Sitzung, keine Policy. Keine Alarmzone, keine bat-id-Kennung, keine privaten Daten. Kein Schreibzugriff möglich.

Endpunkte

Methode Route Inhalt
GET /ait/embed/{municipality} Interaktive Karte (geometrische Formen der Gemeinde)
GET /ait/embed-alerts/{municipality} Liste der öffentlichen Auflagen (BO-Mitteilungen)

{municipality} = Kennung der Gemeinde (Route-Model-Binding). Optionale Sprache auf der Karte:

GET /ait/embed/{municipality}?lang=fr   (oder lang=de ; Standard = Anwendungs-Locale, Fallback fr)

Interaktive Karte — /ait/embed/{municipality}

Gibt die von der Gemeinde veröffentlichten geometrischen Formen wieder.

  • Payload pro Form: Titel, Information, Farbe, Zielgruppen, Piktogramme, Gültigkeitsgrenzen (valid_from, valid_until).
  • Zeitabschnitt (past / present / future) serverseitig berechnet; Filter nach Zeitraum clientseitig angewendet.
  • Client-Filter auf die tatsächlich vorhandenen Zielgruppen und Piktogramme.
  • Geometrien als GeoJSON ausgeliefert (FeatureCollection).

Nur gültige Formen

Der Server stellt ausschliesslich Formen für die öffentliche Verbreitung bereit. Keine Alarmzone und keine personenbezogenen Daten im Payload.

Liste der Auflagen — /ait/embed-alerts/{municipality}

Mitteilungen aus dem amtlichen Bulletin der Gemeinde (bis zu 300, die neuesten zuerst), ohne Karte. Pro Eintrag: Datum, Alter in Tagen, betroffene Parzellen, Rubrik, Titel, Quelle, Link zum PDF. Dezenter Hinweis auf bat-id, der zur Geolokalisierung anregt. Standardmässig aktiv für alle Gemeinden.

iframe-Integration

Header, die ausschliesslich für diese beiden Routen konfiguriert sind:

  • Content-Security-Policy: frame-ancestors * — erlaubt die Einbindung durch jede beliebige Drittwebsite einer Gemeinde.
  • X-Frame-Options entfernt — neutralisiert für den Fall, dass ein Reverse-Proxy ein DENY/SAMEORIGIN hinzufügt. In modernen Browsern hat frame-ancestors Vorrang; beide Fälle sind abgedeckt.

Geltungsbereich der Header

Beschränkt auf die beiden Embed-Routen. Keine globale Header-Middleware wird berührt.

Responsives Beispiel

<div style="position:relative; width:100%; padding-top:62.5%;">
  <iframe
    src="https://demo.bat-id.ch/ait/embed/{ID_COMMUNE}?lang=fr"
    title="Carte des mises à l'enquête"
    loading="lazy"
    style="position:absolute; inset:0; width:100%; height:100%; border:0;"
    referrerpolicy="no-referrer">
  </iframe>
</div>

Für die Liste der Auflagen den Pfad durch /ait/embed-alerts/{ID_COMMUNE} ersetzen.

Bewährte Praktiken

loading="lazy" + Container mit festem Seitenverhältnis, um Layout-Verschiebungen zu vermeiden. Die Domain hängt von der Umgebung ab (Demo / Produktion) — die genaue URL im AIT-Bereich überprüfen.