All checks were successful
Server Tests / Mocha – Unit & Utility Tests (push) Successful in 42s
+ Added public data export API enhancements, tests, and customer documentation + Extended /api/v1 data export endpoints with richer session, records, area, and async export output + Added confirmed/fallback report values, client metadata, mapped area, over-spray, volume/apprate (string) units, and weather blocks + Normalized flowController to "No FC" and align record field names with playback output + Converted record wind speed output to knots, add Fligh Mater only record/export fields behind fm=true, and persist fm on export jobs + Added export status/area constants, HTTP 202 support, route-level API docs, and per-account export rate limiting support + Added comprehensive endpoint, format, and verification test coverage plus test-suite README + Added customer-facing data export design, integration, rate-limit, and documentation index guides + Updated README/DLQ docs and related documentation links to current HTTPS dashboard paths
9.9 KiB
9.9 KiB
AgMission Data Export API — Documentation Index
Complete reference documentation for the Data Export API, including customer integration, implementation details, and operational guides.
📖 For Different Audiences
👥 Customer Technical Teams & Integrators
Start here: DATA_EXPORT_CUSTOMER_INTEGRATION_GUIDE.md
- Quick start with authentication
- All 6 API endpoints with examples
- Use cases (Power BI, ArcGIS, data warehousing)
- Error handling best practices
- Code examples (cURL, Python, JavaScript)
For rate limiting questions: DATA_EXPORT_API_RATE_LIMITING.md
- How per-account rate limiting works
- Request deduplication explained
- File lifecycle and TTL
- 10+ detailed scenarios with code
- Batch workflow optimization
🔨 Internal Engineering & DevOps
API Implementation: docs/API_SPECIFICATION.md
- Data contracts
- Database schema
- Error codes and status mappings
Configuration Reference: docs/APPLICATION_DETAIL_SCHEMA_CHANGES.md
- Environment variables (EXPORT_TTL_HOURS, EXPORT_RATE_LIMIT_MAX, etc.)
- Database migrations
- Field mappings
Operational Monitoring: docs/MONITORING_GUIDE.md
- Health checks
- Performance metrics
- Alert thresholds
- Debug configuration
Architecture & Design:
- ARCHITECTURE_SUMMARY.md — System design overview
- DATABASE_DESIGN.md — MongoDB schema, indexes, TTL
- PARTNER_INTEGRATION_ARCHITECTURE.md — Partner API integration
📊 Sales & Account Managers
For rate limit discussions with customers:
- Use DATA_EXPORT_API_RATE_LIMITING.md scenarios to explain limits
- Default: 20 exports/60 minutes (1 export every 3 minutes)
- Deduplication means identical requests don't consume quota
- TTL = 24 hours (configurable per enterprise agreement)
For SLA / support discussions:
- See DATA_EXPORT_CUSTOMER_INTEGRATION_GUIDE.md
- 99.5% monthly uptime SLA
- 4-hour email support response, 1-hour phone support
- Data accuracy: ±0.5% for area/volume
📚 Complete Documentation Map
1. API Documentation
| Document | Purpose | Audience |
|---|---|---|
| DATA_EXPORT_CUSTOMER_INTEGRATION_GUIDE.md | Full API reference with examples | Customers, integrators |
| DATA_EXPORT_API_RATE_LIMITING.md | Rate limiting deep dive + scenarios | Everyone (10+ examples) |
| API_SPECIFICATION.md | Data contracts, error codes | Engineering, integrators |
| EXPORT_USAGE_DETAIL.md | CSV/GeoJSON field reference | Data analysts |
| CURSOR_PAGINATION_GUIDE.md | Records pagination details | Power BI, data warehouse engineers |
2. Implementation Details
| Document | Purpose | Audience |
|---|---|---|
| APPLICATION_DETAIL_SCHEMA_CHANGES.md | Data model & env config | Engineering |
| DATABASE_DESIGN.md | MongoDB schema, indexes, TTL | DBA, backend engineers |
| IMPLEMENTATION_GUIDE.md | Feature implementation checklist | Engineering leads |
3. Architecture & Design
| Document | Purpose | Audience |
|---|---|---|
| ARCHITECTURE_SUMMARY.md | System design overview | Architects, senior engineers |
| PARTNER_INTEGRATION_ARCHITECTURE.md | Partner API integration | Integration engineers |
| DLQ_ARCHITECTURE_DIAGRAMS.md | Error handling flow (Mermaid diagrams) | Troubleshooting, monitoring |
4. Operational Guides
| Document | Purpose | Audience |
|---|---|---|
| MONITORING_GUIDE.md | Health checks, metrics, alerts | DevOps, SRE |
| DEBUG_CONFIGURATION_GUIDE.md | Debug logging setup | Engineering |
| PINO_MODULE_FILTERING_GUIDE.md | Logger module filtering | Debugging, troubleshooting |
| FATAL_ERROR_HANDLING.md | Crash handling, error reporting | DevOps, on-call engineers |
5. Data Format Reference
| Document | Purpose | Audience |
|---|---|---|
| DATA_FORMAT_NOTES.md | Field types, units, nullable fields | Data analysts, integrators |
| EXPORT_USAGE_DETAIL.md | CSV/GeoJSON column reference | BI engineers, data warehouse |
| LOGFileFormat_Air_3_77_COMPLETE.md | Aircraft log file parsing | Log processing engineers |
🎯 Quick Navigation by Task
"I'm integrating with AgMission API for the first time"
- Read: DATA_EXPORT_CUSTOMER_INTEGRATION_GUIDE.md — Authentication, quick start, all endpoints
- Copy: Code examples from Appendix (cURL, Python, JavaScript)
- Reference: DATA_EXPORT_API_RATE_LIMITING.md for rate limit handling
"I need to set up Power BI incremental refresh"
- Use: CURSOR_PAGINATION_GUIDE.md for cursor-based polling
- Copy: Use Case #1 from DATA_EXPORT_CUSTOMER_INTEGRATION_GUIDE.md
- Handle: 429 responses per DATA_EXPORT_API_RATE_LIMITING.md
"I need to export data to ArcGIS"
- Use: DATA_EXPORT_CUSTOMER_INTEGRATION_GUIDE.md
/api/v1/jobs/:jobId/areasendpoint - Copy: Use Case #2 code sample
- Reference: EXPORT_USAGE_DETAIL.md for GeoJSON field meanings
"I need to do a nightly bulk load to our data warehouse"
- Plan: DATA_EXPORT_API_RATE_LIMITING.md (batch workflow optimization)
- Implement: Use Case #3 shell script for nightly batch export
- Handle: Deduplication + rate limits per DATA_EXPORT_API_RATE_LIMITING.md
"I'm experiencing rate limit 429 errors"
- Understand: DATA_EXPORT_API_RATE_LIMITING.md
- Check: Are you deduplicated? Look for
"reused": truein response - Optimize: See Best Practices section
- Request upgrade: Contact sales for higher rate limit tier
"I'm debugging an export job failure"
- Check: API_SPECIFICATION.md error codes
- Verify: Environment config in APPLICATION_DETAIL_SCHEMA_CHANGES.md
- Log: Enable debug via DEBUG_CONFIGURATION_GUIDE.md
- Monitor: MONITORING_GUIDE.md for health checks
"I need to understand the data model"
- Start: DATABASE_DESIGN.md for MongoDB schema
- Understand: DATA_FORMAT_NOTES.md for field types/units
- Reference: APPLICATION_DETAIL_SCHEMA_CHANGES.md for field mappings
🔑 Key Concepts
Authentication
- API key format:
ak_test_xxx(test) orak_live_xxx(production) - Header:
X-API-Key: <key>(NOTAuthorization: Bearer) - Manage at: https://agmission.agnav.com/api-keys
Rate Limiting
- Per-account (not IP-based)
- Default: 20 exports per 60 minutes (1 export every 3 minutes)
- Deduplication: Identical requests within 5 mins reuse existing export (no quota consumed)
- Response headers:
RateLimit-Limit,RateLimit-Remaining,RateLimit-Reset,Retry-After
File Lifecycle
- TTL: 24 hours (configurable via
EXPORT_TTL_HOURS) - Persistence: File kept on disk until TTL expires
- Auto-cleanup: Expired files deleted automatically
- Download: Can be downloaded multiple times before expiry
Deduplication
- Identical requests within 5 mins (configurable) reuse existing export
- No rate limit consumed on reused exports
- Response includes
"reused": trueflag - Includes: same job, format, units, interval, owner account
Data Units
- Metric (default):
lit/ha,m/s,°C,kg - US:
gal/ac,mph,°F,lbs - Field examples:
appRateUnit: "lit/ha",volumeUnit: "lit",windSpeed_kt
📞 Support & Escalation
Documentation Issues
- Found a mistake or gap? File issue in GitHub repo
- Improvements welcome: Pull requests to
docs/folder
API Usage Questions
- Email:
technical-support@agnav.com - Response: 4 hours (business hours)
- Slack: Dedicated channel (enterprise customers)
Rate Limit Exceptions
- Contact: Your account manager or
sales@agnav.com - Options: Increase rate limit tier, extend TTL, adjust dedup window
Bug Reports / Incidents
- Severity 1 (outage): Phone 1-800-AGNAV-11
- Severity 2 (major issue): Email + phone escalation
- Severity 3 (minor): Email support
📋 Version History
| Version | Date | Changes |
|---|---|---|
| 1.0 | April 2026 | Initial release: Sessions, Records, Areas, Export endpoints; per-account rate limiting; request deduplication; file TTL |
🚀 Getting Started Checklist
- Read DATA_EXPORT_CUSTOMER_INTEGRATION_GUIDE.md (15 min)
- Get API key from https://agmission.agnav.com/api-keys
- Test
/api/v1/jobs/:jobId/sessionsendpoint with cURL - Review DATA_EXPORT_API_RATE_LIMITING.md for your use case (5 min)
- Implement retry + backoff for 429 responses
- Design your polling/export workflow
- Load test against rate limits
- Enable monitoring/alerting for 429s
- Go live!
Last Updated: April 22, 2026
Maintained By: AgMission Technical Team
Contact: technical-support@agnav.com