* refactor: aligh bootstrap with new supermq architecture
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
* feat: add sdk and update api docs
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
* refactor: rename env variables
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
* style: add empty line to config files and bootstrap docker compose file
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
* refactor: add supermq sdk to magistrala sdk
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
* refactor: extend supermq sdk in magistrala sdk
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
* reafctor: update responses
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
* ci: update api docs dir in swagger-ui deployment
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
---------
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
* feat(readers): remove jaeger URL
Remove JAEGER URL and align documentation
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
* docs: update description
Update the description of message readers in the `readers/README.md` file. This commit clarifies that message readers provide implementations of various `message readers` and consume normalized (in `SenML` format) Magistrala messages from data storage. Additionally, it highlights that message readers expose an HTTP API for message consumption. For more detailed information on the usage of `reader` and a comprehensive understanding of Magistrala, please refer to the [official documentation][doc].
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
---------
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
The commit modifies the configuration files and Docker Compose files related to the "certs" service. The changes include updating URLs, adjusting the log level, and modifying the SDK certs URL. This refactor ensures that the service operates with the correct settings and improves the overall functionality.
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
- Rename env vars `MG_ES_STORE_TYPE` to `MG_ES_TYPE`
- Rename env var `MG_ES_STORE_URL` to `MG_ES_URL`
- User one env variables `MG_ES_URL` instead of every service having their own env variables
- Config default env var for `MG_ES_URL` at code level to be `nats://localhost:4222` instead of `redis://localhost:6379/0`
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
* chore(license): update copyright notices
Add CI check for non go files to check that the files contain a license
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
* fix(ci): log failed files
When the CI fails during check for license header, log the failed file to console so that someone can check on the actual file. Also simplify the grep check to make it more human readable and understandable
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
---------
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
* feat(docker): add trace ration and max conn
This adds a new environment variable `MF_JAEGER_TRACE_RATIO` to the `docker/.env` file. The variable is used to set the ratio of requests traced.
Additionally, this commit also adds a new environment variable `MF_POSTGRES_MAX_CONNECTIONS` for configuring the maximum number of connections for the Postgres database.
These changes are made to enhance the configuration and scalability of the core services.
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
* Remove comment to trace ratio
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Reduce postgres max connection to 100
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
---------
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Refactor message broker implementation
This commit refactors the Nats message broker implementation to include pubsub options. These changes include:
- Adding `Option` func that takes in the URL and prefix
- Implement `WithStream` option which can create a different stream for nats stream
- Implement `WithExchange` option which can create a different exchaange for rabbitmq channel
- Implement `WithPrefix` option which allows to you change the publisher prefix
These changes improve the organization and readability of the codebase.
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Use redis URL to configure username, password and db
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Make event store configurable on dev deployment
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Fix adds options to messaging `PubSub` interface
Adding options to PubSub interface allows the use of messaging
package to do es.
The changes in this commit ensure that the code handles errors
properly and provides more informative error messages when
encountering unexpected types.
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Add NATS event publisher implementation
This commit adds the implementation of the NATS event publisher.
The NATS event publisher is responsible for publishing events
to a NATS messaging system. It uses the `messaging`
package to interact with the messaging system.
The implementation includes the following features:
- Publishing events to NATS using the `Publish` method.
- Marshaling events to JSON before publishing.
- Setting the message subject and headers based on the event.
- Handling errors during publishing.
This implementation is built with the `!rabbitmq` build tag,
which means it will only be compiled if the `rabbitmq` build tag
is not present.
The NATS event publisher is part of the Mainflux events package
and provides support for the Mainflux NATS events source service functionality.
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Add RabbitMQ event publisher implementation
This commit adds the implementation of the RabbitMQ event publisher.
The RabbitMQ event publisher is responsible for publishing events
to a RabbitMQ messaging system. It uses the `messaging`
package to interact with the messaging system.
The implementation includes the following features:
- Publishing events to RabbitMQ using the `Publish` method.
- Marshaling events to JSON before publishing.
- Setting the message subject and headers based on the event.
- Handling errors during publishing.
This implementation is built with the `rabbitmq` build tag,
which means it will only be compiled if the `rabbitmq` build tag
is present.
The RabbitMQ event publisher is part of the Mainflux events package
and provides support for the Mainflux RabbitMQ events source service functionality.
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Add configurable implementation for events store
This commit adds a new file `brokers_*.go` which contains the implementation for the different event store. The file includes functions for creating a new publisher and subscriber using different es store.
This commit also includes an `init` function that logs a message indicating that the binary was built using the respective package as the events store.
The purpose of this commit is to add support for alternative events store.
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Fix build flags
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Refactor Makefile and Semaphore configuration
The Makefile has been refactored to include the `MF_ES_STORE_TYPE` tag in the `go build` command. Additionally, the Semaphore configuration has been updated to include a new task for compiling with Redis as the broker type.
This commit addresses the need to compile the codebase with Redis as the event store type and includes the necessary changes in the Makefile and Semaphore configuration.
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Reduced due to memory on testing
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Fix tests for es
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Fix grammar
Co-authored-by: Sammy Kerata Oina <44265300+SammyOina@users.noreply.github.com>
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Fix linting
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* feat(docker): update environment variables for message broker
The commit updates the environment variable `MF_ES_STORE_TYPE` in the `docker/.env` file. The variable is changed from `${MF_MQTT_BROKER_TYPE}` to `${MF_MESSAGE_BROKER_TYPE}` to accurately reflect the type of message broker being used. This change ensures that the correct message broker is configured for the Event Store.
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* feat: Update docker environment variables
- Removed the unused MF_ES_URL variable in the .env file
- Updated the MF_ES_STORE_TYPE and MF_ES_STORE_URL variables in the .env file to match the MF_MESSAGE_BROKER_TYPE and MF_NATS_URL variables respectively
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Fix after rebase
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Add godocs for option parameters for brokers
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* pass by value exchange and prefix names
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* Rename option functions
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* move variables to constants
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
* fix: option example comment
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
---------
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Co-authored-by: Sammy Kerata Oina <44265300+SammyOina@users.noreply.github.com>