All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
- add MOQO providers flinkster_carsharing, oberschwabenmobil, gmuend_bewegt
- VRS parking providers obtain new Mobilithek subscription ids
gtfs-api
: Expose GTFS import date+time (SELECT gtfs_data_imported_at()
) as a Prometheus metric under/gtfs/rpc/gtfs_data_imported_at_metric
.
- new namespace for GBFS feed voi_de to avoid conflict with voi_ch
- ParkAPI 0.16.1 with
- Better logging and exception handling at converters
- Moving access to static data to the night
- Extended data at Kienzler source (GeoJSON PATCH system)
- Better validation and therefore more valid parking sites at OpenData Swiss
- Fix datetime format of Karlsruhe because they changed it
- Code cleanup and other smaller improvements
- ParkAPI 0.16.2 with a fix for static data imports via celery heartbeat
- add Cantamen provider gruene-flotte_freiburg
- add GBFS feed voi_de
- deactivate GBFS feed voi_karlsruhe
ingesss
: upgradedtraefik
tov3.2
- fix
natural order without a primary key
exception for layer transit_stations_with_served_routes lamassu
container now depends onx2gbfs
container startup, so feeds read from file system can be created before lamassu starts. To make sure all feeds have been created, setX2GBFS_HEALTHCHECK_START_INTERVAL
to e.g.60s
. For production use- Several ParkAPI Fixes
- updated
mdbw_sharing_stations_default
style asfeed_id
s of static carsharing feeds changed
- deactivate Cantamen provider
my-e-car
⚠️ gtfs-importer
: upgradedpostgis-gtfs-importer
tov4-2024-10-24T17.43.02-76b148e
– This is a breaking change because it switches the GTFS import back (from keeping all of them) to retaining only 2 databases, similar to the old (2024-09-17) behaviour of keeping only the most recent ones.gtfs-importer
: work around possible GTFS download bug inpostgis-gtfs-importer
by using plaincurl
- GeoServer: rollback from version
2.26.0
to2.25.3
- ParkAPI 0.15.1 with minor fixes and plugin maintenance
- x2gbfs: updated to 2024-10-28T06-10
-
GeoServer: added descriptions to
parking_sites
attributes; updatedMobiData-BW:mdbw_sharing_stations_default
for current and upcoming static GBFS feeds -
ParkAPI 0.15.0 with new Kienzler VVS Converter
-
GeoServer: updated GeoServer from 2.25.3 to 2.26.0; renamed
parking_sites
toparking_sites_car
-
ParkAPI 0.15.0 with several converter enhancements and fixes
-
x2gbfs: updated to 2024-10-17T09-25
- ParkAPI: added 26 units for provider kienzler_bike_and_ride
lamassu
: upgradedlamassu
to 2024-09-27T11-21. This i.e. includes thestationEntityCacheMinimumTtl
andstationEntityCacheMaximumTtl
configuration options.- ParkAPI 0.14.3 with a fix at BFRK converter
gtfs-importer
: upgradedpostgis-gtfs-importer
tov4-2024-10-03T22.54.08-d81cfdd
- GeoServer: added
MobiData-BW:parking_sites_item
as a new layer - GeoServer:
purpose
attribute added toMobiData-BW:parking_sites_bicycle
gtfs-importer
: upgradedpostgis-gtfs-importer
tov4-2024-09-24T15.06.43-9a66d7d
gtfs-importer
: changed it not to remove redundant stops (i.e. with all fields being equal) before importinggtfs-importer
: changed it to download GTFS datasets asIPL (MobiData-BW)
(previously justMobiData-BW
)- GeoServer: updated style
mdbw_sharing_stations_default
- GeoServer: updated
purpose
attribute inMobiData-BW:parking_sites
dagster-pipeline
/dagster-daemon
/dagster-dagit
: upgrade to2024-10-01T12-53
- ParkAPI 0.14.1 with multiple smaller fixes
- ParkAPI 0.14.2 with multiple smaller fixes
- ipl-proxy: updated to 2024-09-17T05-58
- x2gbfs: updated to 2024-09-23T09-55
- GBFS Feed nextbike_ae for Nextbike Strasbourg
- ParkAPI 0.14.0 with (Herrenberg Bike Converter)[https://github.com/ParkenDD/park-api-v3/blob/c196845d5de7419ce3753a498e9c5e943935427f/CHANGELOG.md#0140]
- ParkAPI 0.14.0 with (Fixes at Documentation)[https://github.com/ParkenDD/park-api-v3/blob/c196845d5de7419ce3753a498e9c5e943935427f/CHANGELOG.md#0140]
- ParkAPI 0.14.0 with (Park and Ride at BFRK)[https://github.com/ParkenDD/park-api-v3/blob/c196845d5de7419ce3753a498e9c5e943935427f/CHANGELOG.md#0140]
- lamassu: updated to 2024-09-16T06-09. This i.e. includes the following changes:
- entur/lamassu#518: Add subscription update interceptor to add systemId to update logs
- entur/lamassu#530: Improve: allow configurable minimum max-age for cache-control directive
- entur/lamassu#527: Add bounding box search functionality to vehicles and stations queries
- entur/lamassu#516: Improve id validation (now conformant to GBFS spec)
- entur/lamassu#512: Map current_range_meters as provided instead of setting a missing value to 0.0
- GBFS Feed for new carsharing provided flinkster added (via x2gbs version 2024-09-05T12-13)
- ParkAPI 0.13.0 with new Hüfner Push Converter
- GeoServer: Added
station_id
toMobiData-BW:sharing_vehicles
and removed sharing stations wherestation_id
is null - GeoServer: Added the new category "Keine Echtzeitdaten" (no realtime data) to the
mdbw_sharing_stations_default
style - GeoServer: Added an INSPIRE plugin
- ParkApi 0.13.0 with BFRK: Make URL configurable
- ParkApi 0.13.0 with Karlsruhe Bike: Ignore missing capacities
- ParkApi 0.13.0 with APCOA: Ignore missing coordinates
- ParkApi 0.13.0 with APCOA: Fix OSM Opening Times
- ParkApi 0.13.1 with has_fee True at all Heidelberg parking sites
- ipl-proxy: updated to 2024-09-09T13-44
- x2gbfs: updated to 2024-09-10T05-57
⚠️ ParkAPI 0.12.0 with using BFRK API. If you used thebfrk
converters before, please make sure that you update your config.- ParkAPI 0.12.0 with max_with support.
- ParkAPI 0.12.0 with dynamic Realtime Setting at Karlsruhe
- ParkAPI 0.12.0 fixing VRS UID mapping
- ipl-proxy: updated to 2024-09-03T06-27
- x2gbfs: updated to :2024-09-03T06-22
- ParkAPI 0.10.0 with Parking Site Groups
⚠️ ParkAPI 0.10.0 with Kienzler SplitUp. If you used thekienzler
converter before, please make sure that you update your config.- ParkAPI 0.11.0 with new converters for Konstanz, Bondorf, Kirchheim, Neustadt and Vaihingen
- ParkAPI 0.10.0 with Karlsruhe Converter Fix
- ParkAPI 0.10.0 with SQL Query optimizations for faster responses
- ParkAPI 0.11.0 with a fix for Kienzler split-up introduced in 0.10.0
- ParkAPI 0.9.0 with Swiss OpenData
gtfs-api
: Upgrade PostgREST from 12.2.2 to 12.2.3- ParkAPI 0.9.0 with Fixes for Ellwangen, Karlsruhe, Goldbeck, Ulm, Herrenberg, BFRK:
- Geoserver: Upgrade from 2.25.2 to 2.25.3 (see geoserver/releases)
- ParkAPI 0.8.0 with better logging , Goldbeck converter and fixes in Karlsruhe converter
- Reactivation of GBFS feed: stadtmobil_rhein-neckar
- ipl-dagster-pipeline is updated to v2024-07-05t15-39, this includes the following changes:
- reduce CPU shares of GTFS import to 512 (mobidata-bw/ipl-dagster-pipeline#140)
- bump dagster to v1.7.12 and dagster-docker to v0.23.12 (mobidata-bw/ipl-dagster-pipeline#155)
- Add vector tiles support for layer
MobiData-BW:roadworks
.
- WFS:
sharing_station.capacity
is changed to an integer field,vehicle.max_range_meters
andvehicle.current_range_meters
, according to the GBFS spec, to float. - WFS:
sharing_station_status
now reports vehicle availability for the feed's predominantform_factor
, even for station, which don't havevehicle_types_available
explicitly stated.
- Following docker image updates:
- Lamassu: Upgrade from v2024-06-19T21-49 to v2024-07-08T06-22
ipl-db
: Upgrade PostGIS from15-3.3-alpine
to15-3.4-alpine
- GBFS Feed changes:
- With Lamassu v2024-06-17T13-28, we now support GBFS 3.0. To request feeds in the new GBFS 3.0 version, instead of
sharing/gbfs
usesharing/gbfs/v3/manifest.json
. ⚠️ With Lamassu v2024-06-17T13-28, accessing feeds which are not yet retreived from upstream will return an http status 502 (BAD GATEWAY) instead of 404 (NOT FOUND).- my-e-car : added pricing plans for my-e-car (see x2gbfs v2024-07-03)
- With Lamassu v2024-06-17T13-28, we now support GBFS 3.0. To request feeds in the new GBFS 3.0 version, instead of
⚠️ In the GTFS API (/gtfs
), allgeography
-based columns have been changed from a hex encoding of the PostGIS-specific binary representation to GeoJSON. If you depend on the current format ofshape_pt_loc
in/gtfs/shapes
orstop_loc
in/gtfs/stops
, you will have to adapt your code. For example, thestop_loc
format of stopde:08231:50_Parent
(Pforzheim Hauptbahnhof) changes from"0101000020E6100000D28BDAFD2A68214003098A1F63724840"
to{"type":"Point","coordinates":[8.703453,48.89365]}
.
- ParkAPI: Disable the Loki integration.
- Set
LOKI_ENABLED
tofalse
. This can be overridden with a$LOKI_ENABLED
environment variable. - Remove the default value for the
LOKI_URL
config, as it is only required if the Loki integration is enabled. The value was specific to MobiData BW's IPL deployment anyways, so we moved its definition into another (private) repo.
- Set
- ipl-proxy: updated to 2024-07-10T14-11
- x2gbfs: updated to 2024-07-15T12-14
- Map URLs in
etc/index-page/index.html
updated
- GBFS Feeds:
- Lime: for feeds of provider
Lime
,station_status
andstation_information
feeds are from gbfs.json, asLime
associates all free floating bikes to a single station, which is semantically wrong (see ipl-proxy v2024-06-19. - my-e-car, stadtmobil, lastenvelo_fr, voi_raumobil, deer: the vehicle_type.return_constraint was mis-spelled and is now fixed. (mobidata-bw/x2gbfs#129)
- nextbike: missing
max_range_meters
andcurrent_range_meters
are provided forpropulsion_type
!=human
. - bird: empty feeds
station_information
,station_status
andfree_bike_status
, some of which have invalid lastUpdated values, have been removed.
- Lime: for feeds of provider
- ParkAPI: Fixes an issue with missing ParkAPI realtime data (see ParkAPI's v0.6.3 changelog).
- Addition of GBFS feed: stadtmobil_rhein-neckar
- Addition of
capacity
attribute to sharing stations layers asjava.lang.Integer
in Geoserver - Addition of
photo_url
attribute toparking_sites
andparking_sites_bicycle
- Removed GBFS feeds: bird-bulle, bird-uster, bird-winterthur, tier_rotkreuz
- Several docker image updates:
- Lamassu: Upgrade from v2024-04-29T06-37 to v2024-06-19T21-49
- Geoserver: Upgrade from 2.24.3 to 2.25.2 (see geoserver/releases)
- ParkAPI: Upgrade from 0.6.2 to 0.6.3 (see the v0.6.3 changelog)
- Caddy: Upgrade from
2.8.1-alpine
to2.8.4-alpine
- RabbitMQ: Upgrade from v3.12 to v3.13
- Redis: Upgrade from
6-alpine
to7-alpine
- Traefik: Upgrade from v2.11 to v3.1
- Pipeline: Pin images versions to current version v2024-05-17t14-01
⚠️ Theipl-db
PostgreSQL database (server) doesn't bind on the host port$IPL_POSTGRES_PORT
(default5432
) anymore. – This change is intended to make it harder for adversaries to access the DB, particularly if IPL is deployed on a NAT-/firewall-less machine. You can still access the DB using the container port, whose IP address can be obtained usingdocker inspect --format json "$(docker compose --env-file .env --env-file .env.local ps ipl-db --format '{{print .ID}}')" | jq -r '.[0].NetworkSettings.Networks | .[keys_unsorted[0]].IPAddress'
.⚠️ Thepgbouncer
service doesn't bind on the host port$PGBOUNCER_POSTGRES_PORT
(default6432
) anymore. – Refer to theipl-db
change above for more details.- Upgrade x2gbfs to version
2024-06-10T16-07
. Its changelog documents the following changes:- add discovery uris for
stadtwerk_tauberfranken
(https://github.com/mobidata-bw/x2gbfs/commit/8f1f026e7f2132fae30de2c450965df0746bbbdd) - add additional pricing plans for cantamen-based providers (#117)
- fix: deer vehicles with missing extended properties are supported now, vehicles that can't be parsed from source will be ignored and a warning reported (#116)
- add deeplinks for MOQO-based providers, i.e.
stadtwerk_tauberfranken
- fix: remove plus and minus (
-
/+
) chars from cantamen vehicle type ids to workaround lamassu id restriction
- add discovery uris for
- ParkAPI: Fixes calculating geo-distance at matching service
- ParkAPI: Multiple fixes at ParkAPI Sources 0.5.0
- ParkAPI: Deletes ParkingSites if they don't exist in the latest pull / push
- ParkAPI: Several Improvements for Duplicate Matching Service:
- Don't offer ParkingSites with different purposes as duplicates
- Don't offer ParkingSites from the same source as duplicates as this is an data source issue
- Add several fields at the duplicate JSON / CSV output
- Add header line to duplicate CSVs
- Give the ability to set the radius from client side
- Improved output mechanisms
- New GBFS feed zeo_bruchsal (#162)
- ParkAPI: Fixes at Bahn and Karlsruhe Converter
- ParkAPI: Add missing fields to OpenAPI documentation
- Fixes ParkAPI issues at duplicate generation and downgrade migration
- Fixes ParkAPI lat/lon issue at XLSX uploads
- New ParkAPI sources
- New experimental ParkAPI source RadVIS
- Experimental ParkAPI duplicate matching, additional information at README
- ParkAPI data model extension at
ParkingSite.type
(new enum values),ParkingSite.tags
(generic tag system) andParkingSite.photo_url
(photos - Addition of new bicycle parking style
mdbw_parking_sites_bicycle_types
in GeoServer based ontype
attribute after new bicycle parking layerMobiData-BW:parking_sites_bicycle
was added - Addition of
max_height
attribute to parking_sites layer
- bolt_winterthur GBFS feed
- Optional cursor pagination at ParkAPI
- Added bike parking support in ParkAPI: ParkenDD/park-api-v3#106 . Includes database migration and more fields in public API: https://api.mobidata-bw.de/park-api/documentation/public.html#/paths/v3-parking-sites/get
- Normalizes radius search at ParkAPI
- Added new ParkAPI sources:
- Barrierefreie Reisekette Baden-Württemberg: PKW-Parkplätze an Bahnhöfen
- Barrierefreie Reisekette Baden-Württemberg: PKW-Parkplätze an Bushaltestellen
- Barrierefreie Reisekette Baden-Württemberg: Fahrrad-Parkplätze an Bahnhöfen
- Barrierefreie Reisekette Baden-Württemberg: Fahrrad-Parkplätze an Bushaltestellen
- Stadt Neckarsulm: Fahrrad-Abstellanlagen
- Kienzler
- Stadt Mannheim
- Stadt Buchen
- Stadt Reutlingen: Fahrrad-Abstellanlagen
- Baden-Württemberg: Parken und Mitfahren
- Geoserver: Added
parking_sites_bicycle
WMS/WFS layer
- Fixed ParkAPI v1 endpoint to match old API specs: ParkenDD/park-api-v3#127
- Changed to ParkAPI module approach: ParkenDD/park-api-v3#106 . Published at https://pypi.org/project/parkapi-sources/
- Changed config file layout at ParkAPI, now all sources are defined in the same place. Example config: https://github.com/ParkenDD/park-api-v3/blob/75a87ffe6edd3eece57a4b73692f01b6695c74e0/config_dist_dev.yaml
- Fixes OpenAPI response schema at generic parking site endpoints
- Upgrade Lamassu to version 2024-04-29T06-37. This i.e. solves feed subscription issues on startup (entur/lamassu#442) and a metrics issue (see entur/lamassu#439).
⚠️ Note: some metrics changed with this release, so monitoring/alerting configs might need to be updated. - Upgrade x2gbfs to version 2024-05-02t15-46. This i.e. solves lamassu's feed ingestion issues for
stadtmobil_karlsruhe
by removing currently unsupported characters from cantamen's vehicle type ids (see mobidata-bw/x2gbfs#99 and mobidata-bw/x2gbfs#103). - Upgrade Geoserver to version 2.24.3 (includes 2.24.2 changes).
- Geoserver layer and style changes (#146):
- set defaultLocale to
de
- mapped SQL View bases feature's fid to primary key and made some geom types more specific
- set defaultLocale to
- Add a CHANGELOG to document changes
- Add new GBFS feeds stadtmobil_karlsruhe (#139) and nextbike_kk (#140) (includes x2gbfs upgrade to 2024-04-30t05-08)
- Changed gbfs feed update interval from 30s to 60s (60000ms) for prod, 6h for other machines. This can be configured via the new LAMASSU_FEED_UPATE_INTERVAL_IN_MS parameter, which defaults to 6h.
- Fix: For provider deer, inactive bookings are now ignored when calculating
is_reserved
status (mobidata-bw/x2gbfs#95) - Minor WMS styling changes (#135)