-
Notifications
You must be signed in to change notification settings - Fork 29
Feature/ingestor management 481 #543
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Introduced new API for managing ingestors, including registration, updates, and deletions. - Added support for individual API keys for ingestors, allowing for more granular access control. - Implemented version tracking for ingestors in the request headers. - Created admin routes for listing, creating, updating, and deleting ingestors. - Enhanced authorization checks for admin and ingestor API keys. - Added masking functionality for API keys in responses for security. - Updated configuration to enable or disable ingestor management features. - Added comprehensive tests for ingestor management functionality.
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
- Add HTTP route tests for all admin endpoints - Add ingestor token authentication tests - Add Config tests for ingestor_management_enabled? and admin_token - Add edge case tests for nil/empty parameters - Add Python tests for X-Ingestor-Version header
- Replace info_log calls with warn_log (info_log doesn't exist) - Fix list_ingestors ordering test by using different timestamps
8521094 to
8bf1b04
Compare
|
I would prefer that we discuss significant changes like this before creating a PR. |
Of course — I agree, and I’m happy to discuss this first. I noticed this issue was already open: #481 I don’t have a strong opinion on the exact approach. My main goal is to enable onboarding as many ingestors as possible, with the aim of building a country-wide map view. P.S. I’m aware this is a significant change, which is why I opened the PR as a draft 🙂 |
This pull request introduces a new ingestor management system, allowing external contributors to register and manage their own API keys for data ingestion, rather than using a shared API token. It adds a dedicated database schema, admin API endpoints, and supporting backend logic for tracking, authenticating, and managing ingestors. Documentation and code changes ensure the feature is configurable and secure.
Based on : #481
Ingestor Management Feature
INGESTOR_MANAGEMENTandADMIN_TOKENenvironment variables, with documentation explaining how to enable ingestor management and use the new admin API endpoints. [1] [2]data/ingestors.sql) to store ingestor registrations, API keys, metadata, and activity tracking.App::Ingestorsmodule (web/lib/potato_mesh/application/ingestors.rb) providing methods for ingestor CRUD operations, API key management, and request tracking.Mesh Ingestor Client Improvements