Ö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:
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-Optionsentfernt — neutralisiert für den Fall, dass ein Reverse-Proxy einDENY/SAMEORIGINhinzufügt. In modernen Browsern hatframe-ancestorsVorrang; 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.