Operators can fetch Global Airports apt.dat locally (-download) and convert
to TWRTrainer-style .apt files. openfsd does not ship Laminar data; bulk
outputs and apt.dat caches stay gitignored. See docs/xplane-airport-data.md.
Speed up dense position fan-out with atomic live snapshots for N≤2048,
equirectangular DistanceSq filtering, and SendPosition latest-wins
drops so slow peers cannot stall broadcasters. Ignore SQLite WAL/SHM
sidecars so local operator DBs are not staged by accident.
Advertise only implemented server flags (no SECPOS), document the full
capability inventory from vatSys research, and cover the path with unit
and e2e tests.
1. Database Enhancements (db/repositories.go):
- Added ConfigRepository interface and implementations for PostgreSQL and SQLite
- Updated Repositories struct to include ConfigRepository
- Modified NewRepositories to initialize both UserRepo and ConfigRepo
2. FSD Server Improvements:
- Removed hardcoded jwtSecret, now retrieved from ConfigRepository (fsd/conn.go, web/auth.go)
- Added dynamic welcome message retrieval from ConfigRepository (fsd/conn.go)
- Optimized METAR buffer size from 4096 to 512 bytes (fsd/metar.go)
- Reduced minimum fields for DeleteATC and DeletePilot packets (fsd/packet.go)
- Improved Haversine distance calculation with constants (fsd/postoffice.go)
- Added thread-safety documentation for sendError (fsd/client.go)
3. Server Configuration (fsd/server.go):
- Added NewDefaultServer to initialize server with environment-based config
- Implemented automatic database migration and default admin user creation
- Added configurable METAR worker count
- Improved logging with slog and environment-based debug level
4. Web Interface Enhancements:
- Added user and config editor frontend routes (web/frontend.go, web/routes.go)
- Improved JWT handling by retrieving secret from ConfigRepository (web/auth.go)
- Enhanced user management API endpoints (web/user.go)
- Updated dashboard to display CID and conditional admin links (web/templates/dashboard.html)
- Embedded templates using go:embed (web/templates.go)
5. Frontend JavaScript Improvements:
- Added networkRatingFromInt helper for readable ratings (web/static/js/openfsd/dashboard.js)
- Improved API request handling with auth/no-auth variants (web/static/js/openfsd/api.js)
6. Miscellaneous:
- Added sethvargo/go-envconfig dependency for environment variable parsing
- Fixed parseVisRange to use 64-bit float parsing (fsd/util.go)
- Added strPtr utility function (fsd/util.go, web/main.go)
- Improved SVG logo rendering in layout (web/templates/layout.html)