* NOISSUE - Housekeeping Signed-off-by: dusan <borovcanindusan1@gmail.com> * NOISSUE - Add DeepWiki link Signed-off-by: dusan <borovcanindusan1@gmail.com> * NOISSUE - Update GH Actions for API docs Signed-off-by: dusan <borovcanindusan1@gmail.com> * NOISSUE - Update SMQ Signed-off-by: dusan <borovcanindusan1@gmail.com> * NOISSUE - Bump github.com/spf13/cobra from 1.10.1 to 1.10.2 (#362) Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.10.1 to 1.10.2. - [Release notes](https://github.com/spf13/cobra/releases) - [Commits](https://github.com/spf13/cobra/compare/v1.10.1...v1.10.2) --- updated-dependencies: - dependency-name: github.com/spf13/cobra dependency-version: 1.10.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * NOISSUE - Bump github.com/redis/go-redis/v9 from 9.17.1 to 9.17.2 (#361) Bumps [github.com/redis/go-redis/v9](https://github.com/redis/go-redis) from 9.17.1 to 9.17.2. - [Release notes](https://github.com/redis/go-redis/releases) - [Changelog](https://github.com/redis/go-redis/blob/v9.17.2/RELEASE-NOTES.md) - [Commits](https://github.com/redis/go-redis/compare/v9.17.1...v9.17.2) --- updated-dependencies: - dependency-name: github.com/redis/go-redis/v9 dependency-version: 9.17.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * NOISSUE - Update SMQ Signed-off-by: dusan <borovcanindusan1@gmail.com> * NOISSUE - Bump golang.org/x/sync from 0.18.0 to 0.19.0 (#365) Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.18.0 to 0.19.0. - [Commits](https://github.com/golang/sync/compare/v0.18.0...v0.19.0) --- updated-dependencies: - dependency-name: golang.org/x/sync dependency-version: 0.19.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update SMQ version Signed-off-by: dusan <borovcanindusan1@gmail.com> * NOISSUE - Bump go.opentelemetry.io/otel/trace from 1.38.0 to 1.39.0 (#364) Bumps [go.opentelemetry.io/otel/trace](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.39.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0) --- updated-dependencies: - dependency-name: go.opentelemetry.io/otel/trace dependency-version: 1.39.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * NOISSUE - Bump google.golang.org/protobuf from 1.36.10 to 1.36.11 (#363) Bumps google.golang.org/protobuf from 1.36.10 to 1.36.11. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-version: 1.36.11 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * NOISSUE - Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp (#366) Bumps [go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib) from 0.63.0 to 0.64.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.63.0...zpages/v0.64.0) --- updated-dependencies: - dependency-name: go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp dependency-version: 0.64.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * NOISSUE - Bump github.com/absmach/certs from 0.18.2 to 0.18.3 (#359) Bumps [github.com/absmach/certs](https://github.com/absmach/certs) from 0.18.2 to 0.18.3. - [Release notes](https://github.com/absmach/certs/releases) - [Commits](https://github.com/absmach/certs/compare/v0.18.2...v0.18.3) --- updated-dependencies: - dependency-name: github.com/absmach/certs dependency-version: 0.18.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * NOISSUE - Bump github.com/nats-io/nats.go from 1.47.0 to 1.48.0 (#368) Bumps [github.com/nats-io/nats.go](https://github.com/nats-io/nats.go) from 1.47.0 to 1.48.0. - [Release notes](https://github.com/nats-io/nats.go/releases) - [Commits](https://github.com/nats-io/nats.go/compare/v1.47.0...v1.48.0) --- updated-dependencies: - dependency-name: github.com/nats-io/nats.go dependency-version: 1.48.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * NOISSUE - Update SMQ version Signed-off-by: dusan <borovcanindusan1@gmail.com> * NOISSUE - Refactor `alarms`, `reports` and `rule engines` middlewares (#369) * refactor middleware Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * update go mod file Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * fix tests Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * fix rules tests Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * revert common code Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * update supermq version Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> --------- Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * NOISSUE - Sync with SMQ Signed-off-by: dusan <borovcanindusan1@gmail.com> * NOISSUE - Update MG and SMQ versions Signed-off-by: dusan <borovcanindusan1@gmail.com> * NOISSUE - Update MG and SMQ versions Signed-off-by: dusan <borovcanindusan1@gmail.com> * Revert "NOISSUE - Update MG and SMQ versions" This reverts commit 7faca6b73d6ac27ae4d28ee45f4860bbb7340ef4. * Revert SMQ version tag Use latest for development. Signed-off-by: dusan <borovcanindusan1@gmail.com> * Bump github.com/jackc/pgx/v5 from 5.7.6 to 5.8.0 Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.7.6 to 5.8.0. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.7.6...v5.8.0) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-version: 5.8.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --------- Signed-off-by: dusan <borovcanindusan1@gmail.com> Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> Co-authored-by: dusan <borovcanindusan1@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Steve Munene <stevenyaga2014@gmail.com>
Magistrala
A Modern IoT Platform Built on SuperMQ
Scalable • Secure • Open-Source
Guide | Contributing | Website | Chat
Made with ❤️ by Abstract Machines
Introduction 🌍
Magistrala is a cutting-edge, open-source IoT cloud platform built on top of SuperMQ. It serves as a robust middleware solution for building complex IoT applications. With Magistrala, you can connect and manage IoT devices seamlessly using multi-protocol support, all while ensuring security and scalability.
Key Benefits:
- Unified IoT Management: Connect sensors, actuators, and applications over various network protocols.
- Scalability and Performance: Designed to handle enterprise-grade IoT deployments.
- Secure by Design: Features such as mutual TLS authentication and fine-grained access control.
- Open-Source Freedom: Patent-free, community-driven, and designed for extensibility.
✨ Features
- 🏢 Multi-Tenancy: Support for managing multiple independent domains seamlessly.
- 👥 Multi-User Platform: Unlimited organizational hierarchies and user roles for streamlined collaboration.
- 🌐 Multi-Protocol Connectivity: HTTP, MQTT, WebSocket, CoAP, and more (see contrib repository for LoRa and OPC UA).
- 💻 Device Management and Provisioning: Including Zero-Touch provisioning for seamless device onboarding.
- 🛡️ Mutual TLS Authentication (mTLS): Secure communication using X.509 certificates.
- 📜 Fine-Grained Access Control: Support for ABAC and RBAC policies.
- 💾 Message Persistence: Timescale and PostgreSQL support (see contrib repository for Cassandra, InfluxDB, and MongoDB).
- 🔄 Rules Engine (RE): Automate processes with flexible rules for decision-making.
- 🚨 Alarms and Triggers: Immediate notifications for critical IoT events.
- 📅 Scheduled Actions: Plan and execute tasks at predefined times.
- 📝 Audit Logs: Maintain a detailed history of platform activities for compliance and debugging.
- 📊 Platform Logging and Instrumentation: Integrated with Prometheus and OpenTelemetry.
- ⚡ Event Sourcing: Streamlined architecture for real-time IoT event processing.
- 🐳 Container-Based Deployment: Fully compatible with Docker and Kubernetes.
- 🌍 Edge and IoT Ready: Agent and Export services for managing remote IoT gateways.
- 🛠️ Developer Tools: Comprehensive SDK and CLI for efficient development.
- 🏗️ Domain-Driven Design: High-quality codebase and extensive test coverage.
Installation 🛠️
There are multiple ways to run Magistrala. First, clone the repository and position to it:
git clone https://github.com/absmach/magistrala.git
cd magistrala
To run the latest stable (tagged) version, use:
# Run with latest stable tagged version
make run_stable
To run the latest version, use:
# Run with latest development version (from main branch)
make run_latest
The make run_stable command will:
- Checkout the repository to the latest git tag
- Update the version in the environment configuration
- Start the services with the stable release
Note: After running make run_stable, you'll be on a detached HEAD state. To return to your working branch:
git checkout main
📤 Usage
Using the CLI:
Check the health of a specific service using the CLI:
make cli
./build/cli health <service>
Replace <service> with the name of the service you want to check.
Using Curl:
Alternatively, use a simple HTTP GET request to check the platform's health:
curl -X GET http://localhost:8080/health
For additional usage examples and advanced configurations, visit the official documentation.
📚 Documentation
Complete documentation is available at the Magistrala official docs page.
For CLI usage details, visit the CLI Documentation.
🌐 Community and Contributing
Join the community and contribute to the future of IoT middleware:
📜 License
Magistrala is open-source software licensed under the Apache-2.0 license. Contributions are welcome and encouraged!
💼 Professional Support
Need help deploying Magistrala or integrating it into your systems? Contact Abstract Machines for expert guidance and support.