Releases: johanohly/AirTrail
Release list
v3.11.1
What's Changed
Important
This patch fixes a production issue in v3.11.0 where oversized SvelteKit
preload Link headers could cause 502 Bad Gateway responses behind nginx.
🌟 Enhancements
- feat: add system theme option by @johanohly in #627
- feat: add flight backup API endpoint by @johanohly in #628
🐛 Bug fixes
- fix: drop excessive link headers by @johanohly in #626
Full Changelog: v3.11.0...v3.11.1
v3.11.0
What's Changed
Warning
v3.11.0 can produce oversized preload Link headers on some routes, which may
cause 502 Bad Gateway behind nginx. Upgrade to v3.11.1.
This release adds the option to show the map in a globe view, rather than a flat map.
Additionally, you can now enable a time of day layer, to show where it is currently day and night on the map, and a rain layer to show where it is currently raining.
It is also now possible to attach a flight track to a flight, meaning instead of the map showing the flight path as a uniform arc, it will show the actual path the flight took, including taxiing if the data contains it. Tracks can be uploaded as GPX, KML, FR24 CSV, or FlightAware CSV files.
This release also includes two small security hardening fixes.
AirTrail no longer exposes user password hashes in page data or user API responses. These were Argon2id hashes, not plaintext passwords, and are only useful if someone can also guess the original password. For context, this mainly matters for weak or reused passwords; a random 12-character mixed letter/number password would be far out of reach, taking roughly a billion years to brute-force at 100,000 guesses per second. Advisory: GHSA-vwj8-562r-m3qw
OAuth account linking has also been tightened. AirTrail now validates OAuth state/PKCE data and requires the local AirTrail user password before linking an OAuth login to an existing account. The account takeover scenario required a very unusual setup: an open or compromised identity provider able to claim another user’s username. Advisory: GHSA-w7fj-fm46-r3fc
🚀 Features
- feat: globe view by @johanohly in #589
- feat: flight tracks by @johanohly in #592
🔒 Security
- fix: harden OAuth account linking by @johanohly in #616
- fix: stop exposing user password hashes by @johanohly in #617
🌟 Enhancements
- feat: improve flight filters by @johanohly in #607
- feat: time of day layer by @johanohly in #595
- feat: rain layer by @johanohly in #596
- feat: add OpenFlights importer by @johanohly in #599
- feat: add JetLovers importer by @johanohly in #612
- feat: add uniform airport circle size by @johanohly in #598
- feat: add statistics API endpoint by @mhlas7 in #606
- feat: improve statistics drilldowns by @johanohly in #621
🐛 Bug fixes
- fix: allow scheduled-only future flights by @johanohly in #620
- fix: add fallback for Carto map style fetch failures by @johanohly in #587
- fix: improve import validation error handling by @johanohly in #597
- fix: align username validation by @johanohly in #618
- fix: AirTrail importer backwards-compatibility by @johanohly in #619
New Contributors
Full Changelog: v3.10.0...v3.11.0
v3.10.0
What's Changed
This release makes the map much more interactive. Selecting an airport or route now opens a details pane with airport activity, related flights, local time, and METAR weather, while the selected airport or route is highlighted directly on the map. Map appearance also gets a satellite basemap, more airport detail controls, and frequency-based route coloring so heavily flown routes stand out more clearly.
AirTrail now also has a dedicated Preferences settings page for units and date/time display, including distance, wind speed, temperature, pressure, time format, date format, week start, and whether flight times are shown in airport local time, UTC, or your system timezone. Existing unit settings are migrated automatically.
🚀 Features
- feat: map panes by @johanohly in #578
🌟 Enhancements
- fix: reduce airport import memory usage by @johanohly in #562
- feat: add frequency-based route color visualization by @Gaudv in #571
🐛 Bug fixes
- fix: constrain deduplicate table height to viewport by @timmaurice in #572
📚 Documentation
- docs: document outbound proxy configuration by @johanohly in #579
New Contributors
- @hwcltjn made their first contribution in #566
- @timmaurice made their first contribution in #572
Full Changelog: v3.9.0...v3.10.0
v3.9.0
What's Changed
This release brings a variety of new map customization options to AirTrail.
The default map style has been enhanced to show more airport details when zoomed in (like taxiways, gates etc.).
You can now change the size of/hide the airport circles on the map, change the width of the route arcs to either be uniform or proportional to the frequency of the route, and you can now optionally enable the overlay of aviation charts on the map (requires configuration of the openAIP integration).

🚀 Features
- feat: map customizability by @johanohly in #557
- feat: create flights with just a year by @johanohly in #558
🌟 Enhancements
- feat: allow admins to list all instance flights through flight list API endpoint by @johanohly in #559
🐛 Bug fixes
- fix: hide tail numbers on shared links by @johanohly in #555
- fix: make usernames case-insensitive by @johanohly in #560
Full Changelog: v3.8.1...v3.9.0
v3.8.1
What's Changed
🌟 Enhancements
- feat: add history for back navigation to statistics modal by @EthanShoe in #543
🐛 Bug fixes
- fix: improve rate limiting for aircraft search by @EthanShoe in #542
- fix: remove 'Click to view all' message in non-clickable popups by @EthanShoe in #541
- fix: clear deleted time inputs by @johanohly in #548
- fix: fall back to scheduled times in flight list by @johanohly in #549
- fix: show passengers instead of flight number in mobile flight list by @johanohly in #550
- fix: hide toolbar when nested modals are open by @johanohly in #551
New Contributors
- @EthanShoe made their first contribution in #542
Full Changelog: v3.8.0...v3.8.1
v3.8.0
What's Changed
🚀 Features
- feat: allow admins to view all users' flights by @johanohly in #528
🐛 Bug fixes
- fix: increase mobile flight list bottom spacer by @johanohly in #529
Full Changelog: v3.7.5...v3.8.0
v3.7.5
What's Changed
🌟 Enhancements
- feat: add airtrail-admin CLI for instance management by @johanohly in #523
- feat: extract airport codes from OurAirports keywords and protect referenced airports from deletion by @johanohly in #521
- feat: animate settings height changes by @johanohly in #522
🐛 Bug fixes
- fix: prevent statistics filters from overflowing on mobile by @johanohly in #519
Full Changelog: v3.7.4...v3.7.5
v3.7.4
What's Changed
🌟 Enhancements
- feat: redesign flight list with floating toolbar by @johanohly in #510
- feat: show filters on statistics page and add year filter by @Gaudv in #504
🐛 Bug fixes
- fix: don't import flights with unknown airports before user maps them by @johanohly in #499
- fix: hide create airline/airport/aircraft UI from non-admin users by @johanohly in #500
- fix: prevent deck.gl overlay from rendering above map controls by @johanohly in #511
Full Changelog: v3.7.3...v3.7.4
v3.7.3
What's Changed
🐛 Bug fixes
- fix: allow importing large flight files and fix dateline-crossing flights by @johanohly in #495
- fix: open scheduled timetable tab for scheduled-only lookups by @johanohly in #496
Full Changelog: v3.7.2...v3.7.3
v3.7.2
What's Changed
🐛 Bug fixes
- fix: validate flight date order across all time field pairs by @RubenSG00 in #490
- fix: correct weekday tooltip mismatch for non-Sunday-start locales by @johanohly in #491
New Contributors
- @RubenSG00 made their first contribution in #490
- @Jaime216 made their first contribution in #489
Full Changelog: v3.7.1...v3.7.2