{"schema_version":1,"updated_at":"2026-10-25","count":46,"documentation":"docs/DATENQUELLEN_INVENTUR.md","filters":{"allowed_statuses":["active","optional","import_only","planned"],"allowed_access_modes":["manual_import","on_demand","polling","scheduled_import","startup_fetch","user_input"]},"links":{"orthophoto_runtime_sources":"/api/orthophoto/sources?scope=runtime","runtime_sources":"/api/data-sources/runtime","runtime_status":"/api/status"},"sources":[{"id":"bvv_terrain","name":"BVV DGM5 / Höhendienst DGM1","category":"base_geodata","kind":"terrain-elevation","status":"optional","access_modes":["manual_import","on_demand"],"license":"CC-BY-4.0","license_status":"verified","attribution":"Geobasisdaten: Bayerische Vermessungsverwaltung – www.geodaten.bayern.de (Daten verändert), Lizenz: CC BY 4.0","origin_url":"https://geodaten.bayern.de/opengeodata/OpenDataDetail.html?pn=dgm5","license_url":"https://creativecommons.org/licenses/by/4.0/","terms_url":"https://www.geodaten.bayern.de/odd/m/3/html/nutzungsbedingungen.html","update_cadence":"explicit bounded local import; preserve source generation/date or explicit unknown date","retention":"bounded local snapshot; no automatic bulk refresh","redistribution":"CC BY 4.0; preserve provider, product source, license link, generation, date/status and change notice","source_systems":["bvv_dgm5_local","bvv_dgm1"],"commands":["make ogd-dgm5"],"configuration":["OGD_DGM5_DIR"],"outputs":["/api/elevation"],"ingest_mode":"bounded-local-snapshot","offline_eligible":true,"rag_eligible":false,"store_derived_content":false,"priority":7,"notes":"DGM5 local-first, lazy bounded tile LRU; DGM1 fills only missing requested samples through a shared seven-day cache. Offline profiles retain provenance; no terrain-based clearance or accessibility assurance.","detailed_inventory_path":"docs/OGD_REGION_KONTEXT.md"},{"id":"bvv_official_features","name":"BVV regionale öffentliche Fachdaten","category":"base_geodata","kind":"administration-ways-buildings-landscape-landuse","status":"import_only","access_modes":["manual_import","on_demand"],"license":"CC-BY-4.0","license_status":"verified","attribution":"Geobasisdaten: Bayerische Vermessungsverwaltung – www.geodaten.bayern.de (Daten verändert), Lizenz: CC BY 4.0","origin_url":"https://geodaten.bayern.de/opengeodata/","license_url":"https://creativecommons.org/licenses/by/4.0/","terms_url":"https://www.geodaten.bayern.de/odd/m/3/html/nutzungsbedingungen.html","update_cadence":"explicit bounded local import; preserve source generation/date or explicit unknown date","retention":"bounded local snapshot; no automatic bulk refresh","redistribution":"CC BY 4.0; preserve provider, product source, license link, generation, date/status and change notice","source_systems":["bvv_verwaltungsgebiete","bvv_basis_dlm_plus","bvv_basis_dlm","bvv_atkis_kommunalesgebiet","bvv_hausumringe","bvv_lod2","bvv_atkis_landscape","bvv_atkis_paths","bvv_atkis_landuse","bvv_alkis_tn","bvv_landnutzung"],"commands":["make ogd-features"],"configuration":["OGD_OFFICIAL_FEATURES"],"outputs":["/api/officialgeo/status","/api/officialgeo/features","/api/officialgeo/at"],"ingest_mode":"bounded-local-snapshot","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":7,"notes":"Only validated public attributes. Regional NAS/GeoJSON/LoD2 imports; no runtime provider calls, owner records, inferred access, automatic offline map packages or routing costs. TN/LN need an explicit small local extract, never a statewide automatic download.","detailed_inventory_path":"docs/OGD_REGION_KONTEXT.md"},{"id":"bvv_official_raster","name":"BVV DTK25 / Höhenlinien / Relief","category":"base_geodata","kind":"optional-online-raster","status":"optional","access_modes":["on_demand"],"license":"CC-BY-4.0","license_status":"verified","attribution":"Geobasisdaten: Bayerische Vermessungsverwaltung – www.geodaten.bayern.de (Daten verändert), Lizenz: CC BY 4.0","origin_url":"https://geodaten.bayern.de/opengeodata/","license_url":"https://creativecommons.org/licenses/by/4.0/","terms_url":"https://www.geodaten.bayern.de/odd/m/3/html/nutzungsbedingungen.html","update_cadence":"visible opt-in tiles only, one provider start per second, two transfers, 16 queued; conditional HTTP and shared provider backoff","retention":"at most 30 days, shortened by provider HTTP directives; no-store/private refused; RAM 16 MiB, disk 128 MiB","redistribution":"CC BY 4.0; preserve provider, product source, license link, generation, date/status and change notice","source_systems":["bvv_topo","bvv_contours","bvv_relief"],"outputs":["/api/officialmap/*"],"ingest_mode":"fixed-wms-tile-cache","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":7,"notes":"Bavaria bounds and zoom 9–16; no bulk/offline downloader; local-only and external-data disable gates remain effective.","detailed_inventory_path":"docs/OGD_REGION_KONTEXT.md"},{"id":"bvv_dtk500","name":"BVV regionale DTK500-Offlineübersicht","category":"base_geodata","kind":"regional-overview","status":"import_only","access_modes":["manual_import","on_demand"],"license":"CC-BY-4.0","license_status":"verified","attribution":"Geobasisdaten: Bayerische Vermessungsverwaltung – www.geodaten.bayern.de (Daten verändert), Lizenz: CC BY 4.0","origin_url":"https://geodaten.bayern.de/opengeodata/OpenDataDetail.html?pn=dtkvektor","license_url":"https://creativecommons.org/licenses/by/4.0/","terms_url":"https://www.geodaten.bayern.de/odd/m/3/html/nutzungsbedingungen.html","update_cadence":"explicit bounded local import; preserve source generation/date or explicit unknown date","retention":"one explicit client region, at most 4 MiB; native shared offline budget and browser quota/headroom","redistribution":"CC BY 4.0; preserve provider, product source, license link, generation, date/status and change notice","source_systems":["bvv_dtk500"],"commands":["go run ./cmd/ogd-context"],"configuration":["OGD_REGIONAL_CONTEXT"],"outputs":["/api/officialgeo/overview"],"ingest_mode":"bounded-local-snapshot","offline_eligible":true,"rag_eligible":false,"store_derived_content":false,"priority":7,"notes":"Only needed GeoPackage classes in an explicitly selected bbox; simplified lines and own styling, zoom below 12. No QGIS fonts/styles copied and no navigation or live-conditions claims.","detailed_inventory_path":"docs/OGD_REGION_KONTEXT.md"},{"id":"bvv_historic_tk25","name":"BVV historische TK25-Blätter","category":"base_geodata","kind":"historic-sheet-index","status":"import_only","access_modes":["manual_import","on_demand"],"license":"CC-BY-4.0","license_status":"verified","attribution":"Geobasisdaten: Bayerische Vermessungsverwaltung – www.geodaten.bayern.de (Daten verändert), Lizenz: CC BY 4.0","origin_url":"https://geodaten.bayern.de/odd/m/3/daten/historischekarten/tk25/kml/hist_tk25.kml","license_url":"https://creativecommons.org/licenses/by/4.0/","terms_url":"https://www.geodaten.bayern.de/odd/m/3/html/nutzungsbedingungen.html","update_cadence":"explicit bounded local import; preserve source generation/date or explicit unknown date","retention":"regional plain-text index only, 50 matching editions per request; no document copies","redistribution":"CC BY 4.0 for public BVV product; retain index provenance and credit; original PDF opened by explicit user choice","source_systems":["bvv_historic_tk25"],"commands":["go run ./cmd/ogd-context"],"configuration":["OGD_REGIONAL_CONTEXT"],"outputs":["/api/officialgeo/history"],"ingest_mode":"bounded-local-snapshot","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":7,"notes":"Strict first-party HTTPS PDF links; no arbitrary proxy, image/PDF prefetch, document scraping or automatic historic overlay. Index date remains unknown; historic edition is not current terrain.","detailed_inventory_path":"docs/OGD_REGION_KONTEXT.md"},{"id":"consumer_warning_feed","name":"LGL / lebensmittelwarnung.de Empfehlungsfilter","category":"public_warnings","kind":"business-address-warning-match","status":"optional","access_modes":["polling"],"license":"source-specific public notices; no blanket reuse license asserted","license_status":"review_required","origin_url":"https://www.lgl.bayern.de/lebensmittel/ueberwachung/informationen_40_1a/verstoss.php","terms_url":"https://www.lebensmittelwarnung.de/","update_cadence":"explicit activation and review of both sources; at least 24 hours","retention":"shared bounded RAM snapshot, no public warning archive","redistribution":"no notice-content export; internal exact business/address recommendation filter only","configuration":["CONSUMER_WARNING_ENABLED","CONSUMER_WARNING_REVIEWED_SOURCES","DISABLE_CONSUMER_WARNING_FEED","DISABLE_EXTERNAL_DATA","LOCAL_ONLY_DEMO"],"outputs":["recommendation filter"],"ingest_mode":"bounded-first-party-html-rss","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":0,"notes":"Disabled by default; public availability and statutory publication do not establish every downstream right. No POI removal from maps/routing.","compliance_action":"Document reuse and current publication/withdrawal conditions for both lgl and lebensmittelwarnung before activation; no-store/private responses are refused.","detailed_inventory_path":"docs/DATENQUELLEN_AUDIT_2026-10-25.md"},{"id":"dbip_lite","name":"DB-IP Lite Country / ASN","category":"operations","kind":"local-ip-network-metadata","status":"import_only","access_modes":["manual_import"],"license":"CC-BY-4.0","license_status":"verified","attribution":"IP Geolocation by DB-IP · https://db-ip.com","origin_url":"https://db-ip.com/db/lite.php","license_url":"https://creativecommons.org/licenses/by/4.0/","terms_url":"https://db-ip.com/db/lite.php","update_cadence":"explicit monthly release download","retention":"local MMDB; no individual client IP sent upstream","redistribution":"retain attribution and license; admin pages using results link to DB-IP","commands":["bash scripts/fetch_traffic_geoip.sh"],"ingest_mode":"operator-mmdb-download","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":0,"notes":"Operational statistics, not exact user location. Separate privacy/retention review for the IP processing itself.","detailed_inventory_path":"docs/DATENQUELLEN_AUDIT_2026-10-25.md"},{"id":"ipdeny_networks","name":"IPdeny country network blocks","category":"operations","kind":"embedded-network-prefixes","status":"import_only","access_modes":["manual_import"],"license":"IPdeny copyright and fair usage terms","license_status":"verified","attribution":"IPdeny.com; original Copyrights.txt retained","origin_url":"https://www.ipdeny.com/ipblocks/","license_url":"https://www.ipdeny.com/copyright.php","terms_url":"https://www.ipdeny.com/usagelimits.php","update_cadence":"reviewed build snapshot; no runtime requests","retention":"embedded build snapshot, finite freshness assessment","redistribution":"preserve unmodified upstream Copyrights.txt with zone data; no advertising use","ingest_mode":"build-pinned-cidr-snapshot","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":0,"notes":"Technical network policy only; original copyright notice is embedded with the prefix list. Network allocation country is not verified current user location.","detailed_inventory_path":"docs/DATENQUELLEN_AUDIT_2026-10-25.md"},{"id":"copernicus_reference","name":"Copernicus Sentinel-2 via Element 84","category":"imagery","kind":"operator-research-reference","status":"import_only","access_modes":["manual_import"],"license":"Copernicus Sentinel Data Legal Notice","license_status":"verified","attribution":"Contains modified Copernicus Sentinel data (2023–2025); accessed via Element 84 Earth Search / AWS Open Data","origin_url":"https://earth-search.aws.element84.com/v1","license_url":"https://sentinels.copernicus.eu/documents/247904/690755/Sentinel_Data_Legal_Notice","update_cadence":"explicit bounded local research job; cached catalog and resumable assets","retention":"local research cache until explicitly removed; no automatic publication","redistribution":"carry source year, modification notice, manifest and asset provenance; not a license for EOX processed products","commands":["python3 scripts/fetch_sentinel_reference.py"],"ingest_mode":"bounded-stac-reference-job","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":0,"notes":"No runtime consumer or default map layer; existing research-job budgets apply.","detailed_inventory_path":"docs/SENTINEL_REFERENZDATEN.md"},{"id":"bvv_transit_overlay","name":"BVV Webkarte Vektor / BKG / DELFI Haltestellen","category":"mobility","kind":"third-party-live-stop-tiles","status":"optional","access_modes":["on_demand"],"license":"CC BY 4.0 plus BKG DL-DE-BY-2.0 and DELFI credit","license_status":"per_record","attribution":"BVV, Daten verändert; © GeoBasis-DE / BKG 2022, dl-de/by-2-0; zentrales Haltestellenverzeichnis des DELFI e.V.","origin_url":"https://vtod1.bayernwolke.de/tiles/web_vektor_by/web_vektor_by.json","license_url":"https://creativecommons.org/licenses/by/4.0/","update_cadence":"only explicitly enabled visible Web map; no startup TileJSON when disabled","retention":"normal provider/browser tile caching only","redistribution":"no backend copy or offline packages; preserve all three provider notices","outputs":["optional Web map stop overlay"],"ingest_mode":"direct-live-vector-tiles","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":0,"notes":"Provider receives client IP and requested viewport tiles. This is separate from VAG departure queries and supplies no realtime departures.","compliance_action":"Recheck concrete Webkarte tile metadata and third-party notices when the product generation changes.","detailed_inventory_path":"docs/DATENQUELLEN_AUDIT_2026-10-25.md"},{"id":"dwd_mosmix_l","name":"DWD MOSMIX-L Punktprognosen","category":"environmental_data","kind":"station-point-forecast","status":"optional","access_modes":["polling"],"license":"CC-BY-4.0","license_status":"verified","attribution":"Deutscher Wetterdienst (DWD), CC BY 4.0; Punktvorhersagen räumlich zugeordnet und Einheiten umgerechnet.","origin_url":"https://www.dwd.de/DE/leistungen/met_verfahren_mosmix/met_verfahren_mosmix.html","license_url":"https://creativecommons.org/licenses/by/4.0/","terms_url":"https://www.naturgefahrenportal.de/de/copyright","update_cadence":"eight fixed stations; at most one request per station every six hours, sequential pacing, conditional HTTP and failure backoff","retention":"bounded immutable RAM snapshots, issue age at most 12 hours, query horizon 48 hours, nearest station at most 75 km","redistribution":"preserve DWD attribution, CC BY 4.0, issue/validity times, station distance and transformation notice; no offline or bulk forecast export","source_systems":["dwd_mosmix_l"],"configuration":["DWD_FORECAST_ENABLED","DISABLE_EXTERNAL_DATA","LOCAL_ONLY_DEMO"],"outputs":["/api/weather/forecast","/api/weather/forecast/status","/api/route"],"ingest_mode":"bounded-single-station-kmz","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":7,"notes":"Optional, disabled by default. Display-only forecasts sampled at estimated passage times; no new routing costs, road-water measurements or speed advice. No user coordinates upstream.","detailed_inventory_path":"docs/FREIE_DATENANBINDUNGEN.md"},{"id":"amberg_parking","name":"Stadt Amberg Parkleitsystem","category":"mobility","kind":"parking-occupancy","status":"optional","access_modes":["polling"],"license":"CC-BY-3.0-DE","license_status":"verified","attribution":"Stadt Amberg, Parkleitsystem; CC BY 3.0 DE. Daten validiert und gegebenenfalls gefiltert.","origin_url":"https://www.govdata.de/ckan/dataset/parkleitsystem-stadt-amberg.ttl","license_url":"https://creativecommons.org/licenses/by/3.0/de/","terms_url":"https://www.govdata.de/ckan/dataset/parkleitsystem-stadt-amberg.ttl","update_cadence":"shared two-minute polling; conditional requests and bounded failure backoff","retention":"one bounded RAM snapshot, stale after five minutes, unusable after 30 minutes; source timezone remains unverified","redistribution":"retain city, original source time, time-basis limitation, attribution and license; no offline/export pipeline","source_systems":["amberg_parking"],"configuration":["AMBERG_PARKING_ENABLED","DISABLE_EXTERNAL_DATA","LOCAL_ONLY_DEMO"],"outputs":["/api/parking/status"],"ingest_mode":"bounded-xml-snapshot","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":5,"notes":"Optional, disabled by default. Fixed Amberg facility list, no provider coordinates or nearby claim; no parking guarantee.","detailed_inventory_path":"docs/FREIE_DATENANBINDUNGEN.md"},{"id":"ocpdb_charging_status","name":"MobiData BW öffentliche OCPDB","category":"mobility","kind":"public-charging-status","status":"optional","access_modes":["on_demand"],"license":"DL-DE-BY-2.0","license_status":"verified","attribution":"MobiData BW / NVBW, gebündelte E-Ladesäulendaten; ursprüngliche Datengeber je Standort. Räumlich gefiltert und Status normalisiert.","origin_url":"https://mobidata-bw.de/dataset/e-ladesaulen","license_url":"https://www.govdata.de/dl-de/by-2-0","terms_url":"https://api.mobidata-bw.de/ocpdb/documentation/public.html","update_cadence":"explicit demand, coarse shared region cache, global pacing, conditional requests and failure backoff; no full-feed pagination","retention":"bounded RAM region cache, source status age distinct from HTTP freshness; only fresh dynamic EVSEs count as available","redistribution":"preserve source/provider IDs, update times, attribution and license; no offline or bulk export ingestion","source_systems":["ocpdb_charging_status"],"configuration":["OCPDB_CHARGING_ENABLED","DISABLE_EXTERNAL_DATA","LOCAL_ONLY_DEMO"],"outputs":["/api/charging-status/nearby"],"ingest_mode":"bounded-public-ocpdb-region","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":6,"notes":"Optional, disabled by default. Up to 10 km and 50 locations; Bayern coverage is partial. STATIC/UNKNOWN/stale never mean available. No reservation guarantee.","detailed_inventory_path":"docs/FREIE_DATENANBINDUNGEN.md"},{"id":"vag_departures","name":"VAG Nürnberg PULS","category":"mobility","kind":"regional-transit-departures","status":"optional","access_modes":["on_demand"],"license":"CC-BY-4.0","license_status":"verified","attribution":"VAG Verkehrs-Aktiengesellschaft Nürnberg, CC BY 4.0; gefiltert und Zeitangaben normalisiert.","origin_url":"https://opendata.vag.de/dataset/api-echtzeitauskunft","license_url":"https://creativecommons.org/licenses/by/4.0/","terms_url":"https://start.vag.de/dm/","update_cadence":"explicit stop selection; shared cache, global pacing and bounded failure backoff; no automatic UI polling","retention":"bounded RAM cache; departure predictions and planned times kept separate; no offline timetable export","redistribution":"preserve VAG attribution, license, stop IDs and source time; no RAG or offline ingestion","source_systems":["vag_departures"],"configuration":["VAG_DEPARTURES_ENABLED","DISABLE_EXTERNAL_DATA","LOCAL_ONLY_DEMO"],"outputs":["/api/transit/stops/nearby","/api/transit/departures"],"ingest_mode":"bounded-regional-puls-json","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":5,"notes":"Optional, disabled by default. Regional VAG/VGN information, no Bayern-wide itinerary or accessibility guarantee.","detailed_inventory_path":"docs/FREIE_DATENANBINDUNGEN.md"},{"id":"pegelonline","name":"PEGELONLINE (WSV) – raw water levels","category":"environmental_data","kind":"water-level-observations","status":"optional","access_modes":["on_demand"],"license":"DL-DE-Zero-2.0","license_status":"verified","attribution":"PEGELONLINE – Wasserstraßen- und Schifffahrtsverwaltung des Bundes (WSV); ungeprüfte Rohdaten","origin_url":"https://pegelonline.wsv.de/","license_url":"https://www.govdata.de/dl-de/zero-2-0","terms_url":"https://pegelonline.wsv.de/webservice/guideRestapi","update_cadence":"on demand, one global snapshot; conditional HTTP; upstream freshness capped at 60s, fallback 30s; failure backoff 30s–15m, bounded Retry-After","retention":"memory only; at most 2000 stations / 4 MiB response; snapshot unusable after 15m without validation and discarded on next query; measurement age independent of cache age","redistribution":"DL-DE-Zero-2.0; pilot has no offline, bulk-export or RAG ingestion path; retain UUID, unit, measurement time, data age and provenance in each consumer","source_systems":["pegelonline"],"configuration":["PEGELONLINE_ENABLED","DISABLE_EXTERNAL_DATA","LOCAL_ONLY_DEMO"],"outputs":["/api/pegelonline/nearby"],"ingest_mode":"conditional-http-snapshot","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":5,"notes":"Implemented pilot with opt-in map display, disabled by default. Local radius filter; user coordinates never sent upstream. Unlocated stations are counted and excluded from spatial results. W observations only, no forecasts, danger interpretation, flood warning or road-access assessment. No ANNA tools or operational integration.","compliance_action":"Separate operational review before enabling PEGELONLINE_ENABLED; verify field presentation, availability, age and source links. No production activation in this change.","detailed_inventory_path":"docs/PEGELONLINE_PILOT.md"},{"id":"dwd_cap","name":"DWD Wetterwarnungen","category":"public_warnings","kind":"official-weather-warning-polygons","status":"optional","access_modes":["on_demand"],"license":"CC-BY-4.0","license_status":"verified","attribution":"Datenbasis: Deutscher Wetterdienst (DWD), CC BY 4.0; Warnungen gefiltert und in GeoJSON umgewandelt.","origin_url":"https://opendata.dwd.de/weather/alerts/cap/","license_url":"https://creativecommons.org/licenses/by/4.0/","terms_url":"https://www.naturgefahrenportal.de/de/copyright","update_cadence":"conditional status snapshot, at most every 2 minutes; upstream freshness rules take precedence","retention":"one bounded RAM snapshot; no stale use beyond 15 minutes","redistribution":"retain DWD attribution, license and change notice; no routing or safety inference","source_systems":["dwd_cap"],"configuration":["DWD_WARNINGS_ENABLED","DISABLE_EXTERNAL_DATA","LOCAL_ONLY_DEMO"],"outputs":["/api/dwd/warnings"],"ingest_mode":"conditional-cap-zip","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":8,"notes":"Implemented optional map layer, disabled by default; expiry/cancel and unlocated warnings explicit; no offline or RAG ingestion.","detailed_inventory_path":"docs/DWD_WARNUNGEN.md"},{"id":"dwd_radolan_ry","name":"DWD RADOLAN RY – routing precipitation observations","category":"environmental_data","kind":"radar-precipitation-routing-observations","status":"optional","access_modes":["polling"],"license":"CC-BY-4.0","license_status":"verified","attribution":"Datenbasis: Deutscher Wetterdienst (DWD), CC BY 4.0; räumlich ausgewertet und zu einer eigenen Fahrzeitschätzung verarbeitet.","origin_url":"https://opendata.dwd.de/weather/radar/radolan/ry/","license_url":"https://creativecommons.org/licenses/by/4.0/","terms_url":"https://www.naturgefahrenportal.de/de/copyright","update_cadence":"shared conditional background GET no more than every 5 minutes, including failures; slower failure backoff and longer provider retry/cache intervals; requests never fetch upstream","retention":"one bounded immutable RAM snapshot, no weather archive; source observation age must not exceed 15 minutes for new routing costs","redistribution":"retain DWD attribution, CC BY 4.0 link and own travel-time-processing notice; no implemented offline or bulk radar export","source_systems":["dwd_radolan_ry"],"configuration":["WEATHER_ROUTING_ENABLED","DISABLE_EXTERNAL_DATA","LOCAL_ONLY_DEMO"],"outputs":["/api/weather/routing/status","/api/route","/api/routes/traffic-check"],"ingest_mode":"bounded-odim-hdf5-snapshot","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":8,"notes":"Implemented optional weather routing, disabled by default; localOnly demo mode and external-data disable gates take precedence. Verified DE1200/WGS84 RY RATE observations only; no water-film measurement, safe-speed advice or future passage forecast. Routing weather metadata and local status only, no user coordinates upstream. Missing, stale and uncovered data remain unknown; separate from dwd_cap and its map visibility.","detailed_inventory_path":"docs/WETTER_ROUTING_KONZEPT.md"},{"id":"uba_airquality","name":"UBA Luftqualität","category":"environmental_data","kind":"station-air-quality-observations","status":"optional","access_modes":["on_demand"],"license":"DL-DE-BY-2.0","license_status":"verified","attribution":"Umweltbundesamt mit Daten der Messnetze der Länder und des Bundes (Daten verändert: gefiltert, Zeitangaben normalisiert und räumlich sortiert)","origin_url":"https://luftdaten.umweltbundesamt.de/","license_url":"https://www.govdata.de/dl-de/by-2-0","terms_url":"https://luftdaten.umweltbundesamt.de/modules/custom/w21_uba_air_data_api_v4/assets/uba_api_v4.yml","update_cadence":"shared hourly snapshot, conditional HTTP, bounded failure backoff","retention":"one RAM snapshot, at most 6 hours without validation; measurement time independent","redistribution":"retain UBA attribution, changes, units, explicit JSON time basis and observation time","source_systems":["uba_airquality"],"configuration":["UBA_AIRQUALITY_ENABLED","DISABLE_EXTERNAL_DATA","LOCAL_ONLY_DEMO"],"outputs":["/api/airquality/nearby"],"ingest_mode":"conditional-http-snapshot","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":6,"notes":"Implemented optional map layer, disabled by default. No interpolation, street-level exposure estimate, health advice, offline or RAG ingestion.","detailed_inventory_path":"docs/LUFTQUALITAET.md"},{"id":"bnetza_charging_register","name":"Bundesnetzagentur Ladesäulenregister","category":"official_poi","kind":"registered-charging-infrastructure","status":"import_only","access_modes":["manual_import","on_demand"],"license":"CC-BY-4.0","license_status":"verified","attribution":"Bundesnetzagentur.de (Daten normalisiert und räumlich gefiltert), CC BY 4.0","origin_url":"https://www.bundesnetzagentur.de/DE/Fachthemen/ElektrizitaetundGas/E-Mobilitaet/Ladesaeulenkarte/start.html","license_url":"https://creativecommons.org/licenses/by/4.0/","update_cadence":"explicit generation import from official CSV; no provider fetch during spatial requests","retention":"local operator-supplied snapshot with generation, raw SHA-256 and register date","redistribution":"CC BY 4.0 with exact provider attribution and changes; independent layer, no unreviewed OSM merge","source_systems":["bnetza_charging_register"],"commands":["go run ./cmd/import-charging-register"],"configuration":["CHARGING_REGISTER_FILE"],"outputs":["/api/charging-register/nearby","/api/charging-register/bbox"],"ingest_mode":"bounded-csv-snapshot","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":7,"notes":"Implemented local import, spatial index and opt-in map layer. Register equipment is neither live availability nor current price.","detailed_inventory_path":"docs/LADESAEULENREGISTER.md"},{"id":"lhp_flood_situation","name":"LHP Hochwasserlage Bayern","category":"environmental_data","kind":"official-flood-classifications","status":"optional","access_modes":["on_demand"],"license":"CC-BY-4.0","license_status":"verified","attribution":"Länderübergreifendes Hochwasserportal (LHP), www.hochwasserzentralen.de; CC BY 4.0; nach Kartenausschnitt gefiltert","origin_url":"https://www.hochwasserzentralen.de/","license_url":"https://creativecommons.org/licenses/by/4.0/","terms_url":"https://www.hochwasserzentralen.de/impressum","update_cadence":"on demand; national Bavaria snapshot fresh for 60 seconds","retention":"bounded in-memory snapshot; outage cache at most 10 minutes","redistribution":"CC BY 4.0 with original classifications, source time and attribution","source_systems":["lhp_flood_situation"],"configuration":["LHP_FLOOD_SITUATION_ENABLED","DISABLE_EXTERNAL_DATA","LOCAL_ONLY_DEMO"],"outputs":["/api/flood/situation"],"ingest_mode":"conditional-http-snapshot","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":6,"notes":"Disabled by default. Original official classes/colors only, not raw water levels. -1 means no data. Local filtering; no user coordinates upstream, safety inference, routing impact, offline export or RAG.","detailed_inventory_path":"internal/floodsituation/README.md"},{"id":"bbk_public_warnings","name":"Public warnings via BBK (MoWaS/KATWARN)","category":"public_warnings","kind":"official-warning-polygons","status":"optional","access_modes":["polling"],"license":"Official warning terms; third-party rights require source-specific review","license_status":"review_required","attribution":"Original issuing authority; distribution via BBK / warnung.bund.de; retain feed provenance","origin_url":"https://warnung.bund.de/","terms_url":"https://www.bbk.bund.de/DE/Warnung-Vorsorge/Warn-App-NINA/NINA-Rechtliches/nina-rechtliches.html","update_cadence":"index 60s plus jitter; changed details immediately; unchanged details 15m; Retry-After and exponential backoff","retention":"memory only, no archive; remove expired/withdrawn warnings; discard unvalidated records after 24h","redistribution":"disabled until reviewed per selected feed; preserve official text and attribution; no blanket license for KATWARN content","source_systems":["mowas","katwarn"],"configuration":["PUBLIC_WARNINGS_ENABLED","PUBLIC_WARNINGS_REVIEWED_SOURCES","PUBLIC_WARNINGS_INTERVAL","DISABLE_EXTERNAL_DATA"],"outputs":["/api/warnings"],"ingest_mode":"conditional-http-poll","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":5,"notes":"Optional bounded cache for the map layer and read-only ANNA/MCP tool; no warning push, routing impact or complete DACH coverage. Geometry bounds are viewport candidates, not safety assessments.","compliance_action":"Record retrieval, caching and redistribution rights for each selected feed before setting PUBLIC_WARNINGS_REVIEWED_SOURCES.","detailed_inventory_path":"docs/PUBLIC_WARNINGS.md"},{"id":"osm_pbf","name":"OpenStreetMap via Geofabrik PBF","category":"base_geodata","kind":"map-poi-routing-addresses","status":"active","access_modes":["scheduled_import","manual_import"],"license":"ODbL 1.0","license_status":"verified","attribution":"© OpenStreetMap contributors","origin_url":"https://download.geofabrik.de/","license_url":"https://opendatacommons.org/licenses/odbl/1-0/","terms_url":"https://www.openstreetmap.org/copyright","update_cadence":"upstream daily; operational target weekly","retention":"persistent local snapshots and derived databases","redistribution":"allowed under ODbL attribution/share-alike conditions","source_systems":["osm_pbf","osm","routing_search_index"],"commands":["make fetch-osm","make refresh","make update","make import"],"configuration":["REGION","PBF"],"outputs":["data/*.osm.pbf","data/bayern.mbtiles","data/routing/*.rg","POI staging/master records"],"ingest_mode":"bulk-dump","offline_eligible":true,"rag_eligible":true,"store_derived_content":true,"priority":10,"notes":"Primary geometry, routing, address, search and POI source. Keep tiles and routing artifacts on the same PBF generation.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#osm-pbf"},{"id":"osm_overpass_boundaries","name":"OpenStreetMap administrative boundaries via Overpass","category":"boundaries","kind":"administrative-boundary","status":"optional","access_modes":["manual_import"],"license":"ODbL 1.0","license_status":"verified","attribution":"© OpenStreetMap contributors","origin_url":"https://overpass-api.de/","license_url":"https://opendatacommons.org/licenses/odbl/1-0/","terms_url":"https://www.openstreetmap.org/copyright","update_cadence":"operator-triggered; existing files are retained","retention":"persistent local GeoJSON","redistribution":"allowed under ODbL attribution/share-alike conditions","source_systems":["osm_boundary"],"commands":["make fetch-boundaries"],"outputs":["data/boundaries/*.geojson"],"ingest_mode":"overpass-snapshot","offline_eligible":true,"rag_eligible":false,"store_derived_content":true,"priority":8,"notes":"Used for administrative pages and imagery dispatch boundaries; not a continuous runtime request.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#osm-overpass-grenzen"},{"id":"geodaten_bayern_freizeit","name":"Geodaten Bayern Freizeitthemen","category":"official_poi","kind":"official-leisure-poi","status":"active","access_modes":["scheduled_import","manual_import"],"license":"CC BY 4.0","license_status":"verified","attribution":"Geobasisdaten: Bayerische Vermessungsverwaltung – www.geodaten.bayern.de (Daten verändert), Lizenz: CC BY 4.0","origin_url":"https://geodaten.bayern.de/opengeodata/OpenDataDetail.html?pn=bvv_freizeit","license_url":"https://creativecommons.org/licenses/by/4.0/","update_cadence":"upstream monthly; fetched by refresh/update","retention":"persistent GeoJSON/KML snapshot","redistribution":"allowed with attribution and modification notice","source_systems":["kml_bayernatlas","bavarian_open_data"],"commands":["make fetch-geodaten","make fetch-kml","make refresh","make update"],"configuration":["GEODATEN_WFS_URL","KML_OFFICIAL_DIR"],"outputs":["data/geodaten-bvv-freizeit.geojson","bayernatlas/official/*.kml","POI index records"],"ingest_mode":"wfs-snapshot","offline_eligible":true,"rag_eligible":true,"store_derived_content":true,"priority":9,"notes":"Only files from the verified official directory receive the fixed CC BY provenance contract.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#geodaten-bayern-freizeitthemen"},{"id":"orthophoto_runtime","name":"Official orthophoto runtime catalog","category":"imagery","kind":"official-raster-imagery","status":"optional","access_modes":["on_demand","manual_import"],"license":"per provider contract","license_status":"per_record","attribution":"per tile/source; see /api/orthophoto/sources?scope=runtime","origin_url":"/api/orthophoto/sources?scope=runtime","license_url":"/api/orthophoto/sources?scope=runtime","update_cadence":"on-demand cache; archives operator-triggered","retention":"source-separated cache or provenance-bearing KBRA archive","redistribution":"per provider; only catalog-approved sources","source_systems":["orthophoto_runtime"],"commands":["make orthophoto-sources","make orthophoto-archive"],"configuration":["SAT_CACHE","ORTHOPHOTO_ARCHIVE_DIR","DISABLE_EXTERNAL_DATA"],"outputs":["data/sat-cache/","data/orthophotos/*.kbra"],"ingest_mode":"runtime-dispatch-and-archive","offline_eligible":true,"rag_eligible":false,"store_derived_content":true,"priority":9,"notes":"The dedicated orthophoto endpoint is authoritative for provider-specific attribution, license URLs and activation status.","detailed_inventory_path":"docs/ORTHOPHOTO_SOURCES.md"},{"id":"mobilithek","name":"Mobilithek DATEX II traffic feeds","category":"traffic","kind":"traffic-events-and-routing-impacts","status":"optional","access_modes":["polling"],"license":"per data offering/data provider","license_status":"per_record","attribution":"Mobilithek / respective data provider","origin_url":"https://mobilithek.info/","terms_url":"https://mobilithek.info/terms-and-conditions","update_cadence":"default every 6h; configurable","retention":"latest XML snapshot plus active roadblock records","redistribution":"must be decided for the configured offering before export","source_systems":["mobilithek"],"configuration":["MOBILITHEK_SUBSCRIPTION_ID","MOBILITHEK_URL","MOBILITHEK_INTERVAL","DISABLE_MOBILITHEK"],"outputs":["data/mobilithek/datex2.xml","data/roadblock.db"],"ingest_mode":"polling-api","offline_eligible":false,"rag_eligible":false,"store_derived_content":true,"priority":9,"notes":"The portal is a broker; a portal-wide license must never be inferred for an individual feed.","compliance_action":"Record offering ID, data provider, license/terms URL and redistribution decision before activation.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#mobilithek-datex-ii"},{"id":"google_maps_platform","name":"Google Maps Platform Geocoding and Places","category":"proprietary_enrichment","kind":"geocoding-places-details","status":"optional","access_modes":["on_demand","polling"],"license":"Google Maps Platform contractual terms","license_status":"review_required","attribution":"Google attribution and source separation required","origin_url":"https://maps.googleapis.com/","terms_url":"https://cloud.google.com/terms/maps-platform/eea/maps-service-terms","update_cadence":"on demand and background enrichment","retention":"enrichment default/max 30 days; field-level permitted use and deletion require review","redistribution":"restricted; no bulk export/rehosting","source_systems":["google_places","google_geocode"],"configuration":["GOOGLE_MAPS_API_KEY","DISABLE_GOOGLE_APIS","GOOGLE_CONTENT_TTL_DAYS","GEOCACHE_CONTENT_TTL_DAYS"],"outputs":["geocode cache","optional POI enrichment fields"],"ingest_mode":"runtime-api","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":3,"notes":"Optional fallback only; core map/search/routing work without it.","compliance_action":"Keep disabled until EEA permitted-use, non-Google-map display, attribution, export and field-level retention are reviewed. A 30-day TTL alone does not authorize storage or map display of other fields; verify deletion of legacy cached content.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#google-maps-platform"},{"id":"wikidata","name":"Wikidata","category":"knowledge","kind":"structured-knowledge-graph","status":"optional","access_modes":["on_demand","scheduled_import"],"license":"CC0 1.0","license_status":"verified","attribution":"Wikidata contributors (recommended provenance)","origin_url":"https://www.wikidata.org/","license_url":"https://creativecommons.org/publicdomain/zero/1.0/","terms_url":"https://www.wikidata.org/wiki/Wikidata:Licensing","update_cadence":"on demand or ETL run","retention":"persistent structured facts with source IDs","redistribution":"allowed; preserve provenance","source_systems":["wikidata"],"commands":["make poi-enrich-by-wikidata","make etl-enrich"],"configuration":["WIKIDATA_HTTP_TIMEOUT_MS","WIKIDATA_RATE_MS"],"outputs":["POI QIDs and structured attributes"],"ingest_mode":"sparql-and-action-api","offline_eligible":true,"rag_eligible":true,"store_derived_content":true,"priority":8,"notes":"Structured data is CC0; linked media/text retain their own licenses.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#wikidata"},{"id":"wikipedia","name":"Wikipedia","category":"knowledge","kind":"article-link-and-lead-image-fallback","status":"optional","access_modes":["on_demand"],"license":"CC BY-SA 4.0; legacy GFDL may also apply","license_status":"verified","attribution":"article authors, project, license and revision link for reused text","origin_url":"https://www.wikipedia.org/","license_url":"https://creativecommons.org/licenses/by-sa/4.0/","terms_url":"https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use","update_cadence":"on demand","retention":"links/cache only unless revision-aware attribution is stored","redistribution":"share-alike and attribution conditions apply to copied text","source_systems":["wikipedia"],"configuration":["DISABLE_WIKIMEDIA_APIS"],"outputs":["article links","lead-image references"],"ingest_mode":"mediawiki-api","offline_eligible":false,"rag_eligible":true,"store_derived_content":false,"priority":6,"notes":"The production path is server-side; the browser uses same-origin endpoints.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#wikipedia"},{"id":"wikimedia_commons","name":"Wikimedia Commons","category":"media","kind":"poi-media-and-air-panoramas","status":"optional","access_modes":["on_demand","scheduled_import"],"license":"per-file free license","license_status":"per_record","attribution":"title, author, source/file page and license (TASL) per file","origin_url":"https://commons.wikimedia.org/","terms_url":"https://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia","update_cadence":"on demand; panorama catalog weekly when scheduled","retention":"metadata/cache per file","redistribution":"per-file license; fail closed on incomplete attribution","source_systems":["wikimedia_commons"],"commands":["make fetch-air-panoramas"],"configuration":["DISABLE_WIKIMEDIA_APIS","WIKIMEDIA_API_URL"],"outputs":["same-origin media cache","web-app/static/data/air-panoramas.json"],"ingest_mode":"mediawiki-api","offline_eligible":true,"rag_eligible":false,"store_derived_content":true,"priority":7,"notes":"Media are only embedded when complete attribution metadata and an allowed Commons file page are present.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#wikimedia-commons"},{"id":"website_crawl","name":"Public POI websites","category":"web_knowledge","kind":"website-facts-and-rag","status":"optional","access_modes":["on_demand","polling"],"license":"site-specific; no blanket reuse license","license_status":"per_record","attribution":"canonical source URL and retrieval timestamp","update_cadence":"manual/on demand; optional crawler interval; default recrawl after one year","retention":"facts, text chunks, hash, fetch metadata and optional embeddings","redistribution":"unknown unless the individual site grants it","source_systems":["website_crawl"],"configuration":["POI_RAG_CRAWL_INTERVAL","POI_RAG_CRAWL_BATCH"],"outputs":["POI RAG document/chunk stores"],"ingest_mode":"ssrf-protected-crawl","offline_eligible":true,"rag_eligible":true,"store_derived_content":false,"priority":6,"notes":"robots/terms/copyright remain source-specific; extracted facts do not create a blanket right to redistribute copied text.","compliance_action":"Store source URL, fetched_at, content hash and the applicable reuse decision per document.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#poi-websites"},{"id":"manual_roadblock","name":"Manual traffic and roadblock records","category":"first_party","kind":"traffic-events-and-routing-impacts","status":"active","access_modes":["user_input"],"license":"operator authority and submitted-source rights","license_status":"contractual","attribution":"recorded authority/operator when published","update_cadence":"on administrative edit","retention":"roadblock store until expiry, replacement or deletion","redistribution":"not open data by default; depends on the recorded originating authority","source_systems":["manual","roadblock_manual"],"outputs":["data/roadblock.db","traffic API records","routing edge impacts"],"ingest_mode":"authenticated-admin-input","offline_eligible":false,"rag_eligible":false,"store_derived_content":true,"priority":9,"notes":"Manual blocks share the production roadblock/routing interface with Mobilithek but must retain their distinct origin and rights basis.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#eigen--und-partnerdaten"},{"id":"regional_editor_content","name":"Municipal and regional editor content","category":"first_party","kind":"regional-poi-tourism-and-public-content","status":"active","access_modes":["user_input"],"license":"municipal/partner agreement and author authorization","license_status":"contractual","attribution":"municipality, regional partner or author as recorded","update_cadence":"on authenticated edit and publication review","retention":"persistent regional content with audit history","redistribution":"only within account scope and recorded publication rights","source_systems":["regional_editor","regional_tourism"],"outputs":["regional editor store","published regional pages and POI projections"],"ingest_mode":"authenticated-editor-input","offline_eligible":true,"rag_eligible":true,"store_derived_content":true,"priority":8,"notes":"Account scope, administrative-unit binding, moderation state and audit log are part of the provenance contract.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#eigen--und-partnerdaten"},{"id":"vertical_business_content","name":"Restaurant, event and ticket partner content","category":"first_party","kind":"restaurant-menu-event-ticket-content","status":"active","access_modes":["user_input"],"license":"merchant/organizer agreement and content rights","license_status":"contractual","attribution":"merchant, organizer or media author per record","update_cadence":"on partner edit/import and moderation","retention":"persistent product records; personal/payment data governed separately","redistribution":"not open data by default; media and offers retain per-record rights","source_systems":["speise","eintritt","event","merchant"],"outputs":["restaurant/menu records","event/ticket records","public vertical APIs"],"ingest_mode":"authenticated-partner-input","offline_eligible":false,"rag_eligible":false,"store_derived_content":true,"priority":7,"notes":"Operational prices, inventory, tickets and customer/payment data must not be conflated with redistributable map data.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#eigen--und-partnerdaten"},{"id":"kml_manual","name":"Manual or unclassified KML","category":"local_import","kind":"hand-curated-poi","status":"import_only","access_modes":["manual_import"],"license":"unknown until declared per file","license_status":"unknown","update_cadence":"on file change/server restart","retention":"persistent local KML and indexed records","redistribution":"blocked until rights are verified","source_systems":["kml_manual","kml_unverified","kml"],"configuration":["KML_MANUAL_DIR"],"outputs":["POI index records"],"ingest_mode":"local-kml","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":4,"notes":"Directory names never imply a license. APIs must keep license_status=unknown and omit invented attribution.","compliance_action":"Add a per-file provenance/rights manifest before public use or export.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#manuelle-kml"},{"id":"extended_import","name":"Extended POI CSV/JSONL import","category":"local_import","kind":"extended-poi-records","status":"import_only","access_modes":["manual_import"],"license":"per input dataset","license_status":"per_record","attribution":"per imported dataset/record","update_cadence":"operator-triggered","retention":"persistent SQLite or MariaDB records","redistribution":"per input dataset; unknown is not exportable","source_systems":["extended_import","import_csv","csv","jsonl"],"commands":["make import-extended","make import-extended-mariadb"],"outputs":["data/poi-extended.db","unified_pois"],"ingest_mode":"local-csv-jsonl","offline_eligible":true,"rag_eligible":true,"store_derived_content":true,"priority":5,"notes":"The generic importer validates structure, not legal provenance.","compliance_action":"Require source ID, source URL, license status and attribution in the import manifest before publication.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#extended-poi-import"},{"id":"merchant_submission","name":"Merchant self-submission","category":"first_party","kind":"merchant-poi-and-inventory","status":"active","access_modes":["user_input"],"license":"operator terms and submitter authorization","license_status":"contractual","attribution":"merchant/operator as recorded","update_cadence":"on submission and moderation","retention":"persistent business records","redistribution":"according to submission terms and privacy policy","source_systems":["merchant_form","merchant"],"outputs":["merchant store","moderated POI records"],"ingest_mode":"moderated-user-input","offline_eligible":true,"rag_eligible":false,"store_derived_content":true,"priority":7,"notes":"Moderation is required before publication; contact and account data are not open data.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#eigen--und-partnerdaten"},{"id":"partner_directory_import","name":"Authorized partner merchant directory","category":"partner_import","kind":"merchant-directory","status":"import_only","access_modes":["manual_import"],"license":"provider authorization/contract","license_status":"contractual","attribution":"provider name and canonical source URL","update_cadence":"operator-triggered","retention":"pending moderation then persistent records","redistribution":"only within provider authorization","source_systems":["partner_directory"],"commands":["make import-merchants-dry-run","make import-merchants"],"outputs":["merchant moderation queue"],"ingest_mode":"authorized-csv","offline_eligible":false,"rag_eligible":false,"store_derived_content":true,"priority":7,"notes":"The command requires an explicit rights confirmation and never publishes records directly.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#eigen--und-partnerdaten"},{"id":"tourism_profile_import","name":"Reviewed tourism profile import","category":"partner_import","kind":"tourism-profile-and-live-status","status":"import_only","access_modes":["manual_import"],"license":"provider authorization plus per-record source contract","license_status":"contractual","attribution":"stored source reference/public URL","update_cadence":"operator-triggered","retention":"persistent canonical entity profiles","redistribution":"only as authorized and reviewed","source_systems":["tourism_profile_import"],"commands":["make import-tourism-profiles-dry-run","make import-tourism-profiles"],"outputs":["canonical POI tourism profiles"],"ingest_mode":"reviewed-jsonl","offline_eligible":true,"rag_eligible":true,"store_derived_content":true,"priority":7,"notes":"The importer fetches no remote content and requires rights confirmation; publishing needs a separate explicit flag.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#eigen--und-partnerdaten"},{"id":"hotelstars_classification_import","name":"Hotelstars official hotel classification (authorization required)","category":"partner_import","kind":"official-hotel-classification","status":"import_only","access_modes":["manual_import"],"license":"written Hotelstars data, display and trademark agreement required","license_status":"review_required","attribution":"only as specified in the written agreement","origin_url":"https://www.hotelstars.eu/germany/de/kontakt","terms_url":"https://www.hotelstars.eu/germany/de/impressum","update_cadence":"no active feed; interval must be agreed in writing","retention":"not active; future retention only as agreed","redistribution":"blocked until written feed, display, cache and brand rights are verified","source_systems":["hotelstars"],"commands":["make import-hotel-classifications-dry-run","make import-hotel-classifications"],"outputs":["canonical POI hotel_classification attribute"],"ingest_mode":"contract-gated-reviewed-jsonl","offline_eligible":false,"rag_eligible":false,"store_derived_content":true,"priority":7,"notes":"No Hotelstars website, portal, widget or PDF is fetched or scraped. The importer accepts only an authorised local snapshot with an exact existing canonical POI link.","compliance_action":"Obtain written data, public-display, attribution, cache/retention, update/revocation and trademark permissions before importing or publishing.","detailed_inventory_path":"docs/HOTELSTARS_INTEGRATION.md"},{"id":"all_the_places","name":"All the Places snapshots","category":"third_party_poi","kind":"business-location-crawl-output","status":"import_only","access_modes":["manual_import"],"license":"CC0 for official generated output; verify each snapshot","license_status":"review_required","attribution":"snapshot URL and generation date (provenance)","origin_url":"https://www.alltheplaces.xyz/","license_url":"https://creativecommons.org/publicdomain/zero/1.0/","update_cadence":"no fetcher; accepted by generic ETL when supplied","retention":"persistent staging/master records","redistribution":"only after snapshot origin/license verification","source_systems":["all_the_places"],"commands":["make etl-ingest-jsonl","make etl-run"],"outputs":["ETL staging and canonical POI records"],"ingest_mode":"local-snapshot","offline_eligible":true,"rag_eligible":false,"store_derived_content":true,"priority":4,"notes":"Source recognition exists in ETL, but Karte.Bayern has no automatic All the Places downloader.","compliance_action":"Pin snapshot URL, checksum, generated_at and license evidence in the import manifest.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#all-the-places"},{"id":"wortort_bundle","name":"Wortort eu1 bundle","category":"address_codec","kind":"word-address-lexicon-and-grid","status":"optional","access_modes":["startup_fetch","manual_import"],"license":"current eu1 is demo/preview; stable word list license not asserted","license_status":"review_required","attribution":"Wortort / bundle publisher","origin_url":"https://wortort.eu/eu1.bundle.json","terms_url":"https://wortort.eu/dokumentation.html","update_cadence":"loaded once on first use; operator-controlled bundle version","retention":"local bundle for offline use","redistribution":"not asserted by the bundle itself","source_systems":["wortort"],"configuration":["WORTORT_BUNDLE"],"outputs":["in-memory codec","offline bundle delivery"],"ingest_mode":"local-or-http-bundle","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":6,"notes":"Publisher marks current eu1 as demo/preview, unsuitable for production or permanent word addresses. A local bundle sends no user query upstream; API registration remains independent of data readiness.","compliance_action":"Use a proven stable production bundle with license, publisher, source URL and checksum before permanent/offline redistribution; current demo preview is not a production release.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#wortort-bundle"},{"id":"bayerncloud_tourismus","name":"BayernCloud Tourismus","category":"tourism","kind":"tourism-knowledge-graph","status":"planned","access_modes":["scheduled_import"],"license":"per record/content license","license_status":"per_record","attribution":"per-record provider attribution","origin_url":"https://bayerncloud.digital/daten-nutzen/api","terms_url":"https://bayerncloud.digital/","update_cadence":"planned daily/weekly","retention":"not active","redistribution":"only for records with compatible license metadata","source_systems":["bayerncloud_tourismus"],"ingest_mode":"planned-api","offline_eligible":true,"rag_eligible":true,"store_derived_content":true,"priority":8,"notes":"Catalog policy only; no production fetcher is present. The API documentation license does not license every content record.","detailed_inventory_path":"docs/DATENQUELLEN_INVENTUR.md#geplante-quellen"},{"id":"wikivoyage","name":"Wikivoyage","category":"knowledge","kind":"revision-bound-travel-excerpt","status":"optional","access_modes":["on_demand"],"license":"CC-BY-SA-4.0","license_status":"verified","attribution":"article authors, project, license, exact revision and history links; excerpt changes","origin_url":"https://de.wikivoyage.org/","license_url":"https://creativecommons.org/licenses/by-sa/4.0/","terms_url":"https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use","update_cadence":"explicit request; bounded per-reference cache","retention":"in-memory excerpt cache only, maximum 128 entries","redistribution":"attribution and share-alike; excerpt remains separate from POI facts","source_systems":["wikivoyage"],"configuration":["WIKIVOYAGE_ENABLED","DISABLE_EXTERNAL_DATA","LOCAL_ONLY_DEMO"],"outputs":["/api/open-content/wikivoyage"],"ingest_mode":"exact-reference-revision-api","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":7,"notes":"Disabled by default. Known German article references only; exact revision, current rights metadata and author history required. No guessed article, bulk importer, offline pack or RAG pipeline.","detailed_inventory_path":"docs/FREIE_REISEINHALTE.md"},{"id":"panoramax","name":"Panoramax","category":"street_imagery","kind":"street-level-imagery-provenance","status":"optional","access_modes":["on_demand"],"license":"CC-BY-SA-4.0 or etalab-2.0 per record","license_status":"per_record","attribution":"per-image author, source and license","origin_url":"https://panoramax.fr/","terms_url":"https://panoramax.fr/foire-aux-questions/juridique","update_cadence":"explicit request; bounded per-ID cache","retention":"bounded in-memory metadata only; no images","redistribution":"per image/instance; metadata does not grant blanket imagery rights","source_systems":["panoramax"],"configuration":["PANORAMAX_ENABLED","DISABLE_EXTERNAL_DATA","LOCAL_ONLY_DEMO"],"outputs":["/api/open-content/panoramax"],"ingest_mode":"exact-reference-metadata-api","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":5,"notes":"Disabled by default. Exact public ready image UUID required; author and supported license must be present. No image downloads, coordinate search, safety assessment, RAG or offline image export.","detailed_inventory_path":"docs/FREIE_REISEINHALTE.md"},{"id":"mapillary","name":"Mapillary","category":"street_imagery","kind":"street-level-imagery-link","status":"optional","access_modes":["on_demand"],"license":"platform terms","license_status":"contractual","attribution":"original viewer provides platform/image attribution","origin_url":"https://www.mapillary.com/","update_cadence":"user-initiated original link only","retention":"no copied content","redistribution":"not claimed","source_systems":["mapillary"],"ingest_mode":"exact-osm-reference-linkout","offline_eligible":false,"rag_eligible":false,"store_derived_content":false,"priority":4,"notes":"Known numeric OSM image IDs link to the original viewer. No SDK, automatic third-party requests, image copying, API token or bulk ingestion.","detailed_inventory_path":"docs/QUELLEN_ZUGAENGE_2026-10-16.md"}]}
