Back to changelog

vAMSYS 5.4.0

Beta

These API changes are currently in beta. You can test against the beta environment at beta.vamsys.io. Additional changes may be added before the final release.

Beta Access:

oAuth PKCE (Pilot API) keys will be deleted on 5.4 launch - you will need to recreate them if you wish to use them once 5.4 launches - this is to ensure the 5.3 created keys have been attested and have proper scopes attached.

vAMSYS 5.4 is a major 5.0 release introducing the Pilot API, personal rosters, bonus points system changes, activity flight type exclusions, hot weather scoring exemptions, route tag review autoreject, and significant performance improvements across the platform.

What's new

Some items are Launch Only

Some changelog items, even if configured in Beta environment, will not take effect until 5.4 is out to public release - 16th March at the earliest. For example:

  • Generated Roster Leg tracking
  • Staff Bonus Points
  • New Scorers/Autorejects
  • Activity requirement changes
    will work only when 5.4 launches

Pilot API

A brand-new OAuth PKCE API for third-party pilot-facing applications. Developers can build apps that authenticate pilots and access their data within the context of a specific Virtual Airline. The Pilot API offers over 40 endpoints across 10 granular scopes, covering:

  • Profile & Identity — pilot profile, rank, statistics, statistics breakdown, badges, holidays, preferences, location, and hub.

  • Bookings & Dispatch — list, create, and cancel bookings; generate dispatch URLs; link SimBrief OFPs.

  • PIREPs — browse flight history, view position reports and flight profiles, read and post comments.

  • Manual PIREP Claims — submit, view, and delete manual flight claims.

  • Activities & Rosters — register for activities, track progress, manage personal rosters.

  • Favourites & NOTAMs — toggle favourite aircraft and airports, browse and acknowledge NOTAMs.

Full OpenAPI documentation is auto-generated and available via the Scalar documentation viewer. OAuth clients are created and managed in Orwell.

Personal Rosters & My Rosters

Pilots can now save generated rosters from the Flight Generator as personal rosters. Personal rosters require a minimum of two legs and appear on the new My Rosters page alongside any registered curated rosters. Each roster includes progress tracking with real-time updates, dispatch integration for booking individual legs, and an interactive map showing the full route.

Registering for a curated roster now also adds it to My Rosters, giving pilots a single unified view of all their active rosters. Pilots can unregister from curated rosters directly from this page.

Bonus Points

Three new bonus scoring tiers can be applied to PIREPs, each configurable as fixed points or a percentage of the base PIREP score:

  • Staff Bonus — bonus points awarded on every PIREP filed by a staff member. Configured in PIREP & Reward Settings.

  • Badge Bonus — per-badge bonus points awarded on PIREPs when the pilot holds that badge. Configured on each badge individually.

  • Airport Manager Bonus — the existing Airport Manager bonus now supports percentage mode alongside fixed points.

All bonus types support custom display names.

Activity Flight Type Exclusions

Staff can now exclude specific flight types from pilot activity requirement checks. Excluded flight types do not count towards or against activity thresholds for both initial and ongoing requirements. Configure this in Orwell under Settings > Activity Requirements.

Hot Weather Flap Exemption

Parking flap scoring rules (Flaps Retracted Before Parking / Flaps Not Retracted Before Parking) now support a hot weather exemption. When the arrival airport temperature exceeds a threshold (determined from METAR data within 6 hours of arrival), an alternative flap range can be accepted. This prevents pilots from being penalised for leaving flaps extended in hot weather conditions. Configurable per scoring rule with minimum/maximum flap positions and optional bonus points.

Phoenix Dashboard Hide/Show Toggle

Each Phoenix Dashboard component now has a hidden toggle. Hidden components preserve all their configuration (size, position, settings) and can be quickly toggled back without re-entering settings. This makes it easy to seasonally enable or disable dashboard sections.

Flight Time on Activity Cards

Activity cards in Phoenix now display estimated flight time information. Tours and rosters show the total flight time, while airport-based events show a time range. This helps pilots gauge the time commitment before joining an activity.

Operations API Enhancements

  • OAuth Scopes — five granular scopes for Client Credentials tokens, allowing read-only tokens safe for public use. Fully backwards-compatible — existing tokens continue to work without changes.

  • See the separate Operations API changelog entry for full technical details including breaking changes.

Route Tag Review Autoreject

A new autoreject rule lets staff configure specific route tags (such as Exam or Checkflight) that automatically trigger PIREP rejection when a pilot flies a tagged route. Tags are configured per rule in the AutoReject Rules settings.

What's improved

  • Curated Roster enhancements — curated rosters now support optional completion points (fixed or percentage), fleet-type-per-leg selection as an alternative to specifying individual aircraft, and points-as-percentage mode.

  • Roster name overrides — customise the "My Rosters" label, roster generator label, and roster type labels to match your Virtual Airline's terminology.

  • Orwell Profile link — staff can access Orwell pilot profiles directly from the Phoenix pilot profile page.

  • Dispatch information — callsign and flight number are now displayed in dispatch route information.

  • PIREP weight — all displayed flight counts throughout Phoenix now respect the pirep weight setting used during Transfer/Manual PIREP creation.

  • SimBrief OFP from booking detail — pilots can generate a SimBrief OFP directly from the booking detail page without returning to the dispatch screen.

What's fixed

  • Duplicate pilot accounts being created by repeated restore operations

  • ICAO/IATA airport lookup failing for lowercase input in route creation

  • Null flight distance on non-jumpseat routes — existing affected routes have been backfilled

  • Integer overflow when creating PIREPs through pilot invite with very large values

  • Leaderboard rank position mismatch in the My Position panel — deleted pilots and the system user are now excluded from ranking calculations

  • Route bulk actions could process an unlimited number of records — now capped at 500 and converted to batch SQL for reliability

  • Missing pirep_analytics_count column in Ranks pilot list

  • OpenAPI specification type mismatches causing documentation viewer errors

  • Hidden filter not working correctly in Fleet and Aircraft lists

  • API 500 errors caused by Spatie Data structure caching

  • Flight length arrival time calculation producing incorrect values

  • Various N+1 query issues: activity detail page reduced from 170+ to approximately 80 queries, with fixes also applied to the events listing and tour/roster tables

  • Hidden aircraft could be booked via pilot favourites, bypassing the visibility filter

  • Map sprite and glyph assets pointing to external URLs that intermittently failed — now self-hosted

Performance

  • Column selection added to all Operations API index endpoint eager loads, reducing data transfer and query times

  • Covering partial index added for pilot listing by airline

  • Middleware audit: hot paths cached, dead code removed, OAuth logging made asynchronous

  • Three duplicate queries per page load eliminated from middleware and layout

Don't miss the next one

Subscribe and we'll email you when we ship.

Unsubscribe anytime.