Sync Product co2api-revised-roadmap from project files
172
Product co2api-revised-roadmap.-.md
Normal file
172
Product co2api-revised-roadmap.-.md
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
<!-- codex-wiki-sync:7c33553b4615eb0220627f3b -->
|
||||||
|
|
||||||
|
> Mirrored from `/mnt/DATA/Nextcloud/ADD ideas UG/Products/co2api/revised_roadmap.txt`.
|
||||||
|
> Origin: `product:co2api`.
|
||||||
|
> Active tasks and changing state belong in Gitea issues; this wiki page is durable project context.
|
||||||
|
|
||||||
|
---
|
||||||
|
✅ UNIFIED ROADMAP — calco2la.to
|
||||||
|
===============================
|
||||||
|
|
||||||
|
1. ✅ CORE DATA MODELS
|
||||||
|
----------------------
|
||||||
|
- ✅ User model
|
||||||
|
- UUID primary key, password hashing
|
||||||
|
- is_confirmed, is_active_now, permission helpers
|
||||||
|
- ✅ Role model
|
||||||
|
- Global roles with is_global
|
||||||
|
- ✅ Organization model
|
||||||
|
- Recursive org trees supported
|
||||||
|
- ✅ OrganizationMembership model
|
||||||
|
- Users ↔ Orgs with scoped roles
|
||||||
|
- ✅ Permissions
|
||||||
|
- Scopes like user:create, org:update
|
||||||
|
- RolePermission & MembershipPermission
|
||||||
|
- ✅ APIKey model
|
||||||
|
- Secure tokens, expiration, revocation
|
||||||
|
- Tracks usage_count and last_used_at
|
||||||
|
- ✅ Airport model
|
||||||
|
- IATA, ICAO, city, geodata, valid_from/to
|
||||||
|
- ✅ BillingInfo (org-level)
|
||||||
|
- ✅ Factor model (stub; extendable)
|
||||||
|
|
||||||
|
2. ✅ PERMISSIONS & ROLES
|
||||||
|
-------------------------
|
||||||
|
- Role templates (admin, org_admin, etc.)
|
||||||
|
- Wildcard permission support
|
||||||
|
- Scoped inheritance based on org hierarchy
|
||||||
|
- Decorators + Jinja2 helpers
|
||||||
|
|
||||||
|
3. ✅ AUTHENTICATION & ACCESS CONTROL
|
||||||
|
-------------------------------------
|
||||||
|
- Flask-Login session handling
|
||||||
|
- Login, logout, registration
|
||||||
|
- Email confirmation with token
|
||||||
|
- Profile edit modal
|
||||||
|
- ☐ Resend confirmation
|
||||||
|
- ☐ Session expiration handling
|
||||||
|
|
||||||
|
4. ✅ INTERNATIONALIZATION (i18n)
|
||||||
|
---------------------------------
|
||||||
|
- Flask-Babel + URL switching via /lang/<code>
|
||||||
|
- _() support in templates
|
||||||
|
- ☐ Admin-set default locale
|
||||||
|
|
||||||
|
5. ✅ UI & TEMPLATES
|
||||||
|
--------------------
|
||||||
|
- Unified base template w/ header/footer
|
||||||
|
- Login/register/profile/admin views styled
|
||||||
|
- Icons for login/logout/user
|
||||||
|
- ☐ Improve flash/toastr messages
|
||||||
|
- ☐ Better JS UX (modals/forms)
|
||||||
|
|
||||||
|
6. ✅ FLASK-ADMIN REMOVED
|
||||||
|
--------------------------
|
||||||
|
- Replaced with scoped custom admin UI
|
||||||
|
|
||||||
|
7. ✅ EMAIL SERVICES
|
||||||
|
--------------------
|
||||||
|
- Register confirmation
|
||||||
|
- Token-based reset
|
||||||
|
- ☐ Resend unverified email
|
||||||
|
- ☐ Admin address update
|
||||||
|
- ☐ SMTP from env + admin config
|
||||||
|
|
||||||
|
8. ✅ API KEY MANAGEMENT
|
||||||
|
------------------------
|
||||||
|
- secrets.token_urlsafe generation
|
||||||
|
- Scoped access, limits
|
||||||
|
- last_used and usage_count tracked
|
||||||
|
- Create/revoke UI modals
|
||||||
|
- ☐ Rotate on expiration
|
||||||
|
- ☐ Global usage stats
|
||||||
|
|
||||||
|
9. ✅ AIRPORT & FACTOR MANAGEMENT
|
||||||
|
---------------------------------
|
||||||
|
- Airport seed (~200)
|
||||||
|
- Fuzzy matching helpers
|
||||||
|
- Factor model scaffolded
|
||||||
|
- ☐ Pagination/search
|
||||||
|
- ☐ Versioned factor editing
|
||||||
|
- ☐ Permissions for data_modeler
|
||||||
|
|
||||||
|
10. ✅ ORGANIZATION & MEMBERSHIP
|
||||||
|
-------------------------------
|
||||||
|
- Recursive org creation
|
||||||
|
- Scoped memberships
|
||||||
|
- ☐ Invite by email
|
||||||
|
- ☐ Handle orphaned orgs
|
||||||
|
|
||||||
|
11. 🔥 API ENDPOINTS
|
||||||
|
---------------------
|
||||||
|
- ✅ /api/airports
|
||||||
|
- Filtering, pagination, sort
|
||||||
|
- API key auth & usage count
|
||||||
|
- OpenAPI spec
|
||||||
|
- ✅ /api/flight
|
||||||
|
- Via support, segment calc (mock)
|
||||||
|
- Full segment unpacking + per-leg stats
|
||||||
|
- OpenAPI schema
|
||||||
|
- ☐ /api/factors
|
||||||
|
- ☐ Real emission logic (for /flight)
|
||||||
|
- ☐ Rate limiting (APIKey)
|
||||||
|
- ☐ API versioning (v1, test, latest)
|
||||||
|
- ☐ Serve openapi.json
|
||||||
|
- ☐ API response caching
|
||||||
|
|
||||||
|
12. ✅ TESTING
|
||||||
|
--------------
|
||||||
|
- ✅ Unit tests (models, utils)
|
||||||
|
- ☐ Integration: login, session
|
||||||
|
- ☐ API auth + input tests
|
||||||
|
- ☐ CLI test runner
|
||||||
|
- ☐ Mock email/token flow
|
||||||
|
|
||||||
|
13. ✅ OPTIONAL ENHANCEMENTS
|
||||||
|
----------------------------
|
||||||
|
- ☐ MFA support
|
||||||
|
- ☐ Audit log: role/key changes
|
||||||
|
- ☐ Admin impersonation
|
||||||
|
- ☐ OIDC integration (future)
|
||||||
|
- ☐ Profile pictures
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
🔥 CRITICAL PATH TO WORKING API
|
||||||
|
===============================
|
||||||
|
1. ✅ Roles & permission system
|
||||||
|
2. ✅ Org + role hierarchy
|
||||||
|
3. ✅ Finalize API key model & checks
|
||||||
|
4. ✅ Normalize airport data
|
||||||
|
5. ✅ Finalize factor access model
|
||||||
|
6. ☐ Integrate real CO₂ calc logic
|
||||||
|
7. ☐ Finalize flight endpoint (with segments)
|
||||||
|
8. ☐ Docs: Swagger UI + openapi.json
|
||||||
|
9. ☐ Version support + test endpoint
|
||||||
|
10. ☐ Rate limiting by API key
|
||||||
|
11. ☐ Deploy with monitoring
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
📌 IMMEDIATE TODOs
|
||||||
|
==================
|
||||||
|
- [Swagger 3.0] Fix Swagger / OpenAPI integration
|
||||||
|
* Flasgger fails loading YAML specs
|
||||||
|
* Validate OpenAPI 3.0.2 compatibility
|
||||||
|
* Enable correct UI rendering
|
||||||
|
- Finalize YAML specs for all endpoints
|
||||||
|
* Fix `@swag_from` paths
|
||||||
|
* Define common schemas + responses
|
||||||
|
- Real CO₂/fuel/distance calcs (mock → realistic)
|
||||||
|
- Rate limit per API key
|
||||||
|
- Test endpoint to remain mock-only
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
📊 FUTURE: ADMIN FEATURES
|
||||||
|
=========================
|
||||||
|
- Live usage dashboard (admin)
|
||||||
|
- APIKeyUsage model (optional logging)
|
||||||
|
- Alerts on usage limits
|
||||||
|
- Client SDK generator
|
||||||
|
- GraphQL/visual query interface
|
||||||
Reference in New Issue
Block a user