Skip to content

Add Qubitro integration for seamless device and data synchronization #657

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

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

berayb
Copy link

@berayb berayb commented Apr 23, 2025

Add Qubitro Integration

Description

This PR adds native Qubitro integration to ChirpStack to create a true no-code experience for users connecting ChirpStack to Qubitro Cloud. While Qubitro already provides a UI-based configuration using ChirpStack's HTTP integration, this native integration eliminates all manual configuration steps and provides a seamless bridge between ChirpStack and Qubitro Cloud.

Why This Integration?

The goal is to provide the best possible no-code experience for users of both platforms:

  • For ChirpStack Users: Easy access to Qubitro's cloud-based data visualization and analytics
  • For Qubitro Users: Zero-configuration device synchronization from ChirpStack
  • For Everyone: Simplified IoT data management without writing any code

Instead of manually configuring HTTP webhooks, headers, and authentication, users can now:

  1. Click "Add Integration"
  2. Enter their Qubitro Project ID and Webhook Signing Key
  3. Start seeing their data in Qubitro Cloud immediately

Features

  • One-click setup with Project ID and Webhook Signing Key
  • Automatic synchronization of:
    • Device data (uplink)
    • Join events
    • Acknowledgments
    • Device status
    • Location data
    • System logs
  • Secure webhook authentication
  • Built-in error handling and logging

Implementation Details

  • Wraps ChirpStack's HTTP integration with a dedicated Qubitro configuration UI
  • Follows ChirpStack's integration patterns for consistency
  • Implements all necessary endpoints in Protocol Buffers
  • Provides Rust backend for secure webhook communication
  • Includes React components for seamless UI integration

Technical Benefits

  • Simplified configuration within ChirpStack
  • Automatic header management
  • Proper error handling and validation
  • Better user experience without leaving ChirpStack's interface

Development Notes

We've implemented this integration following ChirpStack's best practices. While we encountered some challenges with the local development environment, we're committed to:

  • Providing any necessary adjustments
  • Adding additional features if required
  • Working with the ChirpStack team to ensure the integration meets all standards
  • Helping with testing and validation

Checklist

  • Implementation follows ChirpStack patterns
  • Error handling and logging implemented
  • Test coverage included
  • Documentation complete
  • Local testing (pending environment setup)

Documentation

For more details about Qubitro's ChirpStack integration and cloud capabilities, please visit our documentation.

@brocaar
Copy link
Contributor

brocaar commented Apr 24, 2025

The application api methods are still missing:

error[E0046]: not all trait items implemented, missing: `create_qubitro_integration`, `get_qubitro_integration`, `update_qubitro_integration`, `delete_qubitro_integration`
  --> chirpstack/src/api/application.rs:26:1
   |
26 | impl ApplicationService for Application {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `create_qubitro_integration`, `get_qubitro_integration`, `update_qubitro_integration`, `delete_qubitro_integration` in implementation

@berayb
Copy link
Author

berayb commented Apr 24, 2025

The application api methods are still missing:

error[E0046]: not all trait items implemented, missing: `create_qubitro_integration`, `get_qubitro_integration`, `update_qubitro_integration`, `delete_qubitro_integration`
  --> chirpstack/src/api/application.rs:26:1
   |
26 | impl ApplicationService for Application {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `create_qubitro_integration`, `get_qubitro_integration`, `update_qubitro_integration`, `delete_qubitro_integration` in implementation

Thank you for the feedback. We’ve pushed one more update.

@brocaar
Copy link
Contributor

brocaar commented May 2, 2025

The tests are failing because of formatting errors. Could you please check? (cargo fmt should fix these). I'm looking forward to review this pull-request, but could you please first complete the local testing to perform an end-to-end integration?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants