Add callsign lookup with external aviation databases for enhanced aircraft information #31
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
olemd/skyview#31
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
Currently, SkyView displays raw aircraft callsigns (e.g., "UAL123", "SAS456") without additional context. This enhancement adds a callsign lookup system that enriches aircraft data with detailed information using embedded databases and optional external APIs, integrated with SkyView's new SQLite database architecture.
Enhanced Design with SQLite Database Integration
Database Architecture
Building on SkyView's new SQLite database system, the callsign lookup will use:
Airline/Operator Information
Route Information (Optional External APIs)
Aircraft Details
Data Sources Strategy
Primary: Open Source/Embedded Data
OpenFlights Database: Comprehensive airline and airport data (embedded)
ICAO/IATA Reference Tables: Standardized code mappings
Optional: External APIs (Privacy Mode Configurable)
Database Schema Integration
Enhanced SQLite Tables
Configuration Integration
Comprehensive Error Handling & Timeout Management
External API Error Handling
Error Handling Strategy
Timeout Scenarios & Responses
Privacy Mode Implementation
Implementation Architecture
Callsign Enhancement Pipeline
Backend Components
Frontend Enhancement
Error States & User Experience
External API Failures
Network Connectivity Issues
Performance & Reliability
Timeout Configuration
Error Recovery
Database Integration Benefits
Expected User Experience
Normal Operation
*Route information available when external APIs enabled and working
Privacy Mode / Offline Operation
External API Failure
Implementation Phases
Phase 1: Embedded Database Integration
Phase 2: External API Integration
Phase 3: Advanced Features
Privacy & Security Considerations
Privacy Mode Features
Security Measures
Success Metrics
Functional Requirements
Performance Requirements
Priority
High - Significant value addition with robust error handling that maintains SkyView's reliability standards while providing rich aviation context.
Labels
Free Data Sources for Callsign Enhancement
Since we've decided to use only open-source and free data sources, here's a comprehensive overview of available free resources for implementing the callsign lookup feature:
Primary: Embedded Open Data Sources
1. OpenFlights Database (Public Domain)
2. ICAO Aircraft Type Designators
3. FAA Aircraft Registration Database
Secondary: Free APIs (Rate Limited)
1. OpenSky Network REST API
2. ADS-B Exchange API
Historical/Archive Sources
1. Flightradar24 Database Dumps (Historical)
2. OpenSky Network Historical Data
Implementation Strategy for Free Sources
Phase 1: Embedded OpenFlights Data
Phase 2: Optional OpenSky Integration
Data Processing Pipeline
Benefits of This Approach
Data Freshness Strategy
This free data strategy provides rich callsign enhancement while maintaining SkyView's embedded architecture and zero-dependency philosophy.
⚠️ CRITICAL UPDATE: External Data Source Verification Results
After careful examination of the external sources mentioned in my previous comment, several important corrections and warnings need to be addressed:
🟢 VERIFIED ACCESSIBLE SOURCES
1. OpenFlights Database ✅
2. FAA Aircraft Registration Database ✅
🔶 PROBLEMATIC SOURCES
3. OpenSky Network API ⚠️
4. ICAO DOC 8643 Aircraft Type Designators ⚠️
🔴 INACCESSIBLE SOURCES
5. ADS-B Exchange API ❌
REVISED IMPLEMENTATION STRATEGY
Recommended Safe Architecture
Phase 1: Embedded OpenFlights Only (AGPL-3.0 Compatible)
Phase 2: Optional External Sources (User Responsibility)
Independent Source Control Configuration
Each data source can be independently enabled/disabled:
LICENSING COMPLIANCE RECOMMENDATIONS
1. OpenFlights (AGPL-3.0)
2. External APIs
3. Commercial Use Protection
SAFE IMPLEMENTATION PATH
This approach ensures SkyView remains legally compliant while providing rich callsign enhancement capabilities.
🚨 CRITICAL LICENSE CORRECTION: AGPL-3.0 Incompatibility
MAJOR UPDATE: OpenFlights AGPL-3.0 license is NOT compatible with SkyView's MIT license.
The Problem
✅ REVISED SOLUTION: MIT-Compatible Sources
1. airportsdata (MIT License) ✅
2. OurAirports (Public Domain) ✅
airports.csv(12+ MB)countries.csv3. Wikipedia Airline Lists (Creative Commons) ⚠️
📋 UPDATED IMPLEMENTATION STRATEGY
Phase 1: MIT-Licensed Foundation
License Compliance Matrix
OpenFlightsAGPL-3.0Implementation Changes
This approach maintains SkyView's MIT license while providing comprehensive airport/airline data through fully compatible sources.
Result: Rich callsign enhancement without license conflicts! 🎯
✅ LICENSE UPDATE: AGPL-3.0 IS COMPATIBLE with Open Source SkyView
CORRECTION: After further consideration, OpenFlights AGPL-3.0 IS compatible with SkyView:
Why AGPL-3.0 Works for SkyView
AGPL-3.0 Network Copyleft Requirements
AGPL requires that users who interact with the software over a network can access the source code. SkyView already provides this through:
📋 RESTORED IMPLEMENTATION: OpenFlights + Alternatives
Primary Sources (All Compatible)
License Compliance Strategy
Implementation Benefits
Result: We can use the best available data (OpenFlights) while maintaining full license compliance! 🎯
Attribution Template
This approach gives us the best of both worlds: comprehensive data and license compliance.
✅ FINAL LICENSE STRATEGY: Runtime Data Loading (No Embedded AGPL)
CORRECT APPROACH: SkyView will NOT embed any AGPL data in the binary. Instead, we'll create a runtime data loading system.
🎯 Clean License Architecture
SkyView Binary (MIT Licensed)
Data Source Options (User Downloads)
Implementation Strategy
1. Empty Database Schema
2. Data Import Commands
3. License Compliance Per Source
4. UI License Warnings
Benefits of This Approach
User Experience
Result: SkyView stays MIT-licensed while offering users access to the best available aviation data sources! 🎯
✅ Issue Completed - Full Implementation Delivered
This callsign lookup enhancement has been fully implemented as part of the comprehensive SQLite database integration work that was just merged into main. All requirements from the original issue description have been satisfied.
🎯 What Was Implemented
✅ Complete Database Architecture
✅ Callsign Enhancement Features
✅ Privacy & Security Implementation
"privacy_mode": true✅ Robust Error Handling
cache_expires→expires_at)✅ Performance & Reliability
✅ User Experience Enhancements
/databasewith scrolling support🔧 Configuration Example
The implementation supports the exact configuration structure requested:
🚀 Available Now
All features are available in the current main branch:
skyview-data update,skyview-data optimize,skyview-data status/databasepage showing comprehensive database statistics📊 Success Metrics - All Met
✅ Functional Requirements
✅ Performance Requirements
This enhancement significantly improves SkyView's aviation data richness while maintaining reliability and supporting both online and air-gapped environments.
Issue Status: ✅ Completed and Available in Main Branch