The Stratos Core API is a phpVMS 7 module that exposes the endpoints the Stratos desktop client needs: pilot authentication, reference data, and the flight lifecycle (start → update → complete → cancel). It’s required by every Stratos integration — everything else (Logbook, screenshots, future modules) builds on top of it.Documentation Index
Fetch the complete documentation index at: https://docs.skyvexsoftware.com/llms.txt
Use this file to discover all available pages before exploring further.
- Repository: github.com/SkyvexSoftware/stratos-core-api
- Latest release: GitHub Releases
- License: MIT
What it adds
The module mounts these endpoints under/api/stratos on your phpVMS install. All require a Bearer token (the pilot’s users.api_key) except the handshake and the credentials login.
users, flights in flights and acars, PIREPs in pireps, custom metadata in pirep_field_values. The module owns zero tables of its own — uninstalling it leaves your phpVMS database exactly as it was.
Install
You’ll need a working phpVMS 7 install with admin access.Download the module
Grab the latest
module.zip from the releases page.Upload via the admin UI
In your phpVMS admin, navigate to Admin → Modules → Add New Module. Upload the
module.zip you just downloaded. phpVMS will extract it into your modules/StratosCore/ directory automatically.Clear caches
From a shell on your phpVMS server:This flushes phpVMS’s module manifest cache so the new module’s routes become available immediately rather than after the cache’s 6-hour TTL expires.
Configure Skyvex to use it
On your Skyvex airline page, under Crew System Integration:- Stratos VA API base URL — set this to your phpVMS URL plus
/api/stratos. e.g.https://crew.youva.com/api/stratos. - Auth method — choose Credentials if pilots will sign in with their phpVMS username + password, or OAuth if you’ve set up OAuth on your phpVMS install.
Pilot authentication
Pilots authenticate to the Core API with their phpVMS-issuedapi_key. The flow is:
- Pilot signs into your phpVMS site, generates an API key on their profile page (or your VA does it for them on first onboarding).
- The Stratos desktop client either prompts the pilot for that key directly (credentials mode), or completes an OAuth flow that returns it (OAuth mode — recommended, see OAuth Setup).
- Every subsequent Stratos API call sends the key as
Authorization: Bearer <api_key>.
StratosAuth middleware resolves the key against the users.api_key column and attaches the user to the request. Downstream Stratos modules (Logbook, etc.) reuse the same middleware — pilots authenticate once.
Troubleshooting
Class "Modules\\StratosCore\\Providers\\..." not found after install
phpVMS caches the module manifest in bootstrap/cache/stratos_core_module.php and in Laravel’s main cache under the phpvms-modules key. If you installed the module but those caches are stale, phpVMS will try to instantiate provider classes from a path that doesn’t yet exist on disk.
Fix:
bootstrap/cache/stratos_core_module.php manually and re-run the command.
Endpoints return 404 but the module shows as enabled
The route cache hasn’t picked up the new module. Run:Pilots get 401 with a valid API key
Confirm:- The
Authorizationheader is exactlyBearer <key>(case-sensitive scheme, single space, no quotes around the key) - The key matches the value in
users.api_keyfor the pilot - The pilot’s account is active (
users.state = 1)
storage/logs/laravel.log for the auth attempt — StratosAuth logs failures with the offending header for diagnosis.
Updating
Releases go out via the GitHub release feed. To update an existing install:- Download the new
module.zip. - Admin → Modules → Add New Module — upload it. phpVMS will overwrite the existing files in place; your
modules.enabledrow is preserved. - Run
php artisan optimize:clear.
Contributing
The repo accepts PRs. Bug reports go in Issues — please include the phpVMS version, PHP version, and a relevant snippet fromstorage/logs/laravel.log.