Industrial IoT Messaging and Device Management Platform

Overview

Mainflux

build go report card coverage license chat

banner

Mainflux is modern, scalable, secure, open-source, and patent-free IoT cloud platform written in Go.

It accepts user and thing (sensor, actuator, application) connections over various network protocols (i.e. HTTP, MQTT, WebSocket, CoAP), thus making a seamless bridge between them. It is used as the IoT middleware for building complex IoT solutions.

For more details, check out the official documentation.

Mainflux is member of the Linux Foundation and an active contributor to the EdgeX Foundry project. It has been made with ❤️ by Mainflux Labs, which maintains the project and offers professional services around it.

Features

  • Multi-protocol connectivity and bridging (HTTP, MQTT, WebSocket and CoAP)
  • Device management and provisioning (Zero Touch provisioning)
  • Mutual TLS Authentication (mTLS) using X.509 Certificates
  • Fine-grained access control (policies, ABAC/RBAC)
  • Message persistence (Cassandra, InfluxDB, MongoDB and PostgresSQL)
  • Platform logging and instrumentation support (Grafana, Prometheus and OpenTracing)
  • Event sourcing
  • Container-based deployment using Docker and Kubernetes
  • LoRaWAN network integration
  • OPC UA integration
  • Edge Agent and Export services for remote IoT gateway management and edge computing
  • SDK
  • CLI
  • Small memory footprint and fast execution
  • Domain-driven design architecture, high-quality code and test coverage

Prerequisites

The following are needed to run Mainflux:

Developing Mainflux will also require:

Install

Once the prerequisites are installed, execute the following commands from the project's root:

docker-compose -f docker/docker-compose.yml up

This will bring up the Mainflux docker services and interconnect them. This command can also be executed using the project's included Makefile:

make run

If you want to run services from specific release checkout code from github and make sure that MF_RELEASE_TAG in .env is being set to match the release version

git checkout tags/<release_number> -b <release_number>
# e.g. `git checkout tags/0.12.0 -b 0.12.0`

Check that .env file contains:

MF_RELEASE_TAG=<release_number>

docker-compose should be used for development and testing deployments. For production we suggest using Kubernetes.

Usage

The quickest way to start using Mainflux is via the CLI. The latest version can be downloaded from the official releases page.

It can also be built and used from the project's root directory:

make cli
./build/mainflux-cli version

Additional details on using the CLI can be found in the CLI documentation.

Documentation

Official documentation is hosted at Mainflux Read The Docs page. Documentation is auto-generated, checkout the instructions on official docs repository:

If you spot an error or a need for corrections, please let us know - or even better: send us a PR.

Additional practical information, news and tutorials can be found on the Mainflux blog.

Authors

Main architect and BDFL of Mainflux project is @drasko.

Additionally, @nmarcetic and @janko-isidorovic assured overall architecture and design, while @manuio and @darkodraskovic helped with crafting initial implementation and continuously worked on the project evolutions.

Besides them, Mainflux is constantly improved and actively developed by @anovakovic01, @dusanb94, @srados, @gsaleh, @blokovi, @chombium, @mteodor and a large set of contributors.

Maintainers are listed in MAINTAINERS file.

The Mainflux team would like to give special thanks to @mijicd for his monumental work on designing and implementing a highly improved and optimized version of the platform, and @malidukica for his effort on implementing the initial user interface.

Contributing

Thank you for your interest in Mainflux and the desire to contribute!

  1. Take a look at our open issues. The good-first-issue label is specifically for issues that are great for getting started.
  2. Checkout the contribution guide to learn more about our style and conventions.
  3. Make your changes compatible to our workflow.

We're Hiring

If you are interested in working professionally on Mainflux, please head to company's careers page or shoot us an e-mail at [email protected].

The best way to grab our attention is by sending PRs 😎 .

Community

License

Apache-2.0

FOSSA Status

Comments
  • MF-1425 - Enhancement for external UUID

    MF-1425 - Enhancement for external UUID

    MF-1425 Enhancement to supply an external UUID for Things and Channels.

    • This entire feature would be switched off by default, and enabled by the new environment MF_THINGS_ALLOW_EXT_ID.
    • This environment is passed to the Things Service layer.
    • The IDProvider interface is updated to include FromString() to validate the externally supplied UUID.
    • A new local function createUid() is added to either generate a fresh UUID or to extract and validate the supplied UUID in the Things Service layer.
    • While creating a Thing or Channel if an "extid" tag is supplied inside "metadata", then the supplied external UUID is taken after validation.
    • If this "extid" is not supplied the default method of UUID generation is used.

    Usage: $ uuidgen 99336f21-bd45-4e47-87ab-f57505bf5ef2

    $ curl -s -S -i -X POST -H "Content-Type: application/json" -H "Authorization: ${TOKEN}" http://localhost/things -d '{"name": "u1_t1", "metadata": {"extid": "99336f21-bd45-4e47-87ab-f57505bf5ef2", "type": "device", "desc": "user1 thing1"}}'

    $ curl -s -S -i -X GET -H "Content-Type: application/json" -H "Authorization: ${TOKEN}" http://localhost/things {"total":1,"offset":0,"limit":10,"order":"","direction":"","things":[{"id":"99336f21-bd45-4e47-87ab-f57505bf5ef2","name":"u1_t1","key":"a87563c2-7a35-449d-b50a-c7a261a61aa5","metadata":{"desc":"user1 thing1","extid":"99336f21-bd45-4e47-87ab-f57505bf5ef2","type":"device"}}]}

    Pull request title should be MF-XXX - description or NOISSUE - description where XXX is ID of issue that this PR relate to. Please review the CONTRIBUTING.md file for detailed contributing guidelines.

    What does this do?

    Which issue(s) does this PR fix/relate to?

    Put here Resolves #XXX to auto-close the issue that your PR fixes (if such)

    List any changes that modify/break current functionality

    Have you included tests for your changes?

    Did you document any new/modified functionality?

    Notes

    opened by aspnair 80
  • Containers can't connect: Failed to connect to postgres

    Containers can't connect: Failed to connect to postgres

    Hello, I use Windows-> virtualbox+ubuntuserver (22.04.1) + docker(20.10.17) + docker-compose(1.29.2) -> trying to run mainflux

    Do steps:

    git clone [https://github.com/mainflux/mainflux.git](https://github.com/mainflux/mainflux)
    cd mainflux
    sudo make run
    

    And then Mainflux running, and fisrt error - mainflux-auth trying to connect to postgres and failed, then same error: mainflux-coap trying to connect to broker and failed, etc And I don't understand how to fix this. Why they can't connect to each other? I check: are all of containers stay in one net - yes, all of them in docker_mainflux-base-net

    [email protected]:~/mainflux$ sudo make run
    sed -i "s,file: brokers/.*.yml,file: brokers/nats.yml," docker/docker-compose.ym                                          l
    sed -i "s,MF_BROKER_URL: .*,MF_BROKER_URL: $\{MF_NATS_URL\}," docker/docker-comp                                          ose.yml
    docker-compose -f docker/docker-compose.yml up
    mainflux-auth-redis is up-to-date
    mainflux-auth-db is up-to-date
    mainflux-users-db is up-to-date
    mainflux-keto-db is up-to-date
    mainflux-es-redis is up-to-date
    mainflux-things-db is up-to-date
    mainflux-jaeger is up-to-date
    mainflux-broker is up-to-date
    mainflux-vernemq is up-to-date
    mainflux-keto is up-to-date
    mainflux-keto-migrate is up-to-date
    mainflux-auth is up-to-date
    mainflux-things is up-to-date
    mainflux-users is up-to-date
    mainflux-mqtt is up-to-date
    mainflux-coap is up-to-date
    mainflux-http is up-to-date
    mainflux-nginx is up-to-date
    Attaching to mainflux-auth-redis, mainflux-auth-db, mainflux-users-db, mainflux-keto-db, mainflux-es-redis, mainflux-things-db, mainflux-jaeger, mainflux-broker, mainflux-vernemq, mainflux-keto, mainflux-keto-migrate, mainflux-auth, mainflux-things, mainflux-users, mainflux-mqtt, mainflux-coap, mainflux-http, mainflux-nginx
    mainflux-auth   | {"level":"error","message":"Failed to connect to postgres: dial tcp 172.18.0.6:5432: connect: connection timed out","ts":"2022-08-23T07:58:57.483351911Z"}
    mainflux-auth   | {"level":"error","message":"Failed to connect to postgres: dial tcp 172.18.0.6:5432: connect: connection timed out","ts":"2022-08-23T08:01:10.600678469Z"}
    mainflux-auth   | {"level":"error","message":"Failed to connect to postgres: dial tcp 172.18.0.6:5432: connect: connection timed out","ts":"2022-08-23T08:03:23.721269587Z"}
    mainflux-auth   | {"level":"error","message":"Failed to connect to postgres: dial tcp 172.18.0.6:5432: connect: connection timed out","ts":"2022-08-24T10:52:37.601279534Z"}
    mainflux-auth   | {"level":"error","message":"Failed to connect to postgres: dial tcp 172.18.0.6:5432: connect: connection timed out","ts":"2022-08-24T10:54:50.72456827Z"}
    mainflux-auth-redis | 1:C 23 Aug 2022 07:56:21.373 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    mainflux-auth-redis | 1:C 23 Aug 2022 07:56:21.397 # Redis version=6.2.2, bits=64, commit=00000000, modified=0, pid=1, just started
    mainflux-auth-redis | 1:C 23 Aug 2022 07:56:21.397 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
    mainflux-auth-redis | 1:M 23 Aug 2022 07:56:21.398 * monotonic clock: POSIX clock_gettime
    mainflux-auth-redis | 1:M 23 Aug 2022 07:56:21.406 * Running mode=standalone, port=6379.
    mainflux-auth-redis | 1:M 23 Aug 2022 07:56:21.413 # Server initialized
    mainflux-auth-redis | 1:M 23 Aug 2022 07:56:21.413 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
    mainflux-auth-redis | 1:M 23 Aug 2022 07:56:21.414 * Ready to accept connections
    mainflux-auth-db | The files belonging to this database system will be owned by user "postgres".
    mainflux-auth-db | This user must also own the server process.
    mainflux-auth-db |
    mainflux-auth-db | The database cluster will be initialized with locale "en_US.utf8".
    mainflux-auth-db | The default database encoding has accordingly been set to "UTF8".
    mainflux-auth-db | The default text search configuration will be set to "english".
    mainflux-auth-db |
    mainflux-auth-db | Data page checksums are disabled.
    mainflux-auth-db |
    mainflux-auth-db | fixing permissions on existing directory /var/lib/postgresql/data ... ok
    mainflux-auth-db | creating subdirectories ... ok
    mainflux-auth-db | selecting dynamic shared memory implementation ... posix
    mainflux-auth-db | selecting default max_connections ... 100
    mainflux-auth-db | selecting default shared_buffers ... 128MB
    mainflux-auth-db | selecting default time zone ... UTC
    mainflux-auth-db | creating configuration files ... ok
    mainflux-auth-db | running bootstrap script ... ok
    mainflux-auth-db | sh: locale: not found
    mainflux-auth-db | 2022-08-23 07:56:41.922 UTC [31] WARNING:  no usable system locales were found
    mainflux-auth-db | performing post-bootstrap initialization ... ok
    mainflux-auth-db | initdb: warning: enabling "trust" authentication for local connections
    mainflux-auth-db | You can change this by editing pg_hba.conf or using the option -A, or
    mainflux-auth-db | --auth-local and --auth-host, the next time you run initdb.
    mainflux-auth-db | syncing data to disk ... ok
    mainflux-auth-db |
    mainflux-auth-db |
    mainflux-auth-db | Success. You can now start the database server using:
    mainflux-auth-db |
    mainflux-auth-db |     pg_ctl -D /var/lib/postgresql/data -l logfile start
    mainflux-auth-db |
    mainflux-auth-db | waiting for server to start....2022-08-23 07:57:02.665 UTC [36] LOG:  starting PostgreSQL 13.3 on x86_64-pc-linux-musl, compiled by gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424, 64-bit
    mainflux-auth-db | 2022-08-23 07:57:02.681 UTC [36] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
    mainflux-auth-db | 2022-08-23 07:57:02.764 UTC [37] LOG:  database system was shut down at 2022-08-23 07:56:51 UTC
    mainflux-auth-db | 2022-08-23 07:57:02.811 UTC [36] LOG:  database system is ready to accept connections
    mainflux-auth-db |  done
    mainflux-auth-db | server started
    mainflux-auth-db | CREATE DATABASE
    mainflux-auth-db |
    mainflux-auth-db |
    mainflux-auth-db | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
    mainflux-auth-db |
    mainflux-auth-db | 2022-08-23 07:57:07.161 UTC [36] LOG:  received fast shutdown request
    mainflux-auth-db | waiting for server to shut down....2022-08-23 07:57:07.182 UTC [36] LOG:  aborting any active transactions
    mainflux-auth-db | 2022-08-23 07:57:07.189 UTC [36] LOG:  background worker "logical replication launcher" (PID 43) exited with exit code 1
    mainflux-auth-db | 2022-08-23 07:57:07.203 UTC [38] LOG:  shutting down
    mainflux-auth-db | 2022-08-23 07:57:07.452 UTC [36] LOG:  database system is shut down
    mainflux-auth-db |  done
    mainflux-auth-db | server stopped
    mainflux-auth-db |
    mainflux-auth-db | PostgreSQL init process complete; ready for start up.
    mainflux-auth-db |
    mainflux-auth-db | 2022-08-23 07:57:07.639 UTC [1] LOG:  starting PostgreSQL 13.3 on x86_64-pc-linux-musl, compiled by gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424, 64-bit
    mainflux-auth-db | 2022-08-23 07:57:07.650 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
    mainflux-auth-db | 2022-08-23 07:57:07.650 UTC [1] LOG:  listening on IPv6 address "::", port 5432
    mainflux-auth-db | 2022-08-23 07:57:07.685 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
    mainflux-auth-db | 2022-08-23 07:57:07.714 UTC [50] LOG:  database system was shut down at 2022-08-23 07:57:07 UTC
    mainflux-auth-db | 2022-08-23 07:57:07.747 UTC [1] LOG:  database system is ready to accept connections
    mainflux-coap   | 2022/08/23 07:57:12 The binary was build using Nats as the message broker
    mainflux-coap   | {"level":"info","message":"gRPC communication is not encrypted","ts":"2022-08-23T07:57:12.189149687Z"}
    mainflux-coap   | {"level":"error","message":"Failed to connect to message broker: dial tcp 172.18.0.5:4222: i/o timeout","ts":"2022-08-23T07:57:14.283573538Z"}
    mainflux-coap   | 2022/08/23 07:57:18 The binary was build using Nats as the message broker
    mainflux-coap   | {"level":"info","message":"gRPC communication is not encrypted","ts":"2022-08-23T07:57:18.56438903Z"}
    mainflux-coap   | {"level":"error","message":"Failed to connect to message broker: dial tcp 172.18.0.5:4222: i/o timeout","ts":"2022-08-23T07:57:20.586327157Z"}
    mainflux-coap   | 2022/08/23 07:57:24 The binary was build using Nats as the message broker
    mainflux-coap   | {"level":"info","message":"gRPC communication is not encrypted","ts":"2022-08-23T07:57:24.339861285Z"}
    mainflux-coap   | {"level":"error","message":"Failed to connect to message broker: dial tcp 172.18.0.5:4222: i/o timeout","ts":"2022-08-23T07:57:26.350621388Z"}
    mainflux-coap   | 2022/08/23 07:57:30 The binary was build using Nats as the message broker
    mainflux-coap   | {"level":"info","message":"gRPC communication is not encrypted","ts":"2022-08-23T07:57:30.231964825Z"}
    mainflux-coap   | {"level":"error","message":"Failed to connect to message broker: dial tcp 172.18.0.5:4222: i/o timeout","ts":"2022-08-23T07:57:32.244119421Z"}
    mainflux-coap   | {"level":"info","message":"gRPC communication is not encrypted","ts":"2022-08-23T07:57:36.285797597Z"}
    
    ...
    

    all log is long (~500 lines)

    opened by kitty7c6 33
  • docker-compose fails

    docker-compose fails

    docker-compose us is running out-of-order dockers.

    Without a backoff and re-try with timeour in services themselves, we can forget about using docker-compose and we must fallback to previous starting script.

    [email protected]:~/go/src/github.com/mainflux/mainflux/docker$ docker-compose up
    Creating mainflux-manager ... 
    Creating mainflux-nats ... 
    Creating mainflux-postgres ... 
    Creating mainflux-normalizer ... 
    Creating mainflux-manager
    Creating mainflux-nginx ... 
    Creating mainflux-nats
    Creating mainflux-normalizer
    Creating mainflux-nginx
    Creating mainflux-nats ... done
    Creating mainflux-http ... 
    Creating mainflux-mqtt ... 
    Creating mainflux-mqtt
    Creating mainflux-mqtt ... done
    Attaching to mainflux-manager, mainflux-nats, mainflux-normalizer, mainflux-postgres, mainflux-nginx, mainflux-http, mainflux-mqtt
    mainflux-manager | {"error":"dial tcp: lookup postgres on 10.20.0.1:53: no such host","ts":"2018-03-13T02:17:55.877664432Z"}
    mainflux-nats   | [1] 2018/03/13 02:17:56.008535 [INF] Starting nats-server version 1.0.2
    mainflux-nats   | [1] 2018/03/13 02:17:56.008625 [INF] Starting http monitor on 0.0.0.0:8222
    mainflux-normalizer | {"error":"Failed to connect: nats: no servers available for connection","ts":"2018-03-13T02:17:56.16486139Z"}
    mainflux-nats   | [1] 2018/03/13 02:17:56.008662 [INF] Listening for client connections on 0.0.0.0:4222
    mainflux-nats   | [1] 2018/03/13 02:17:56.008666 [INF] Server is ready
    mainflux-postgres | The files belonging to this database system will be owned by user "postgres".
    mainflux-postgres | This user must also own the server process.
    mainflux-postgres | 
    mainflux-nats   | [1] 2018/03/13 02:17:56.134986 [INF] Listening for route connections on 0.0.0.0:6222
    mainflux-nginx  | 2018/03/13 02:17:56 [emerg] 1#1: host not found in upstream "mainflux-manager:8180" in /etc/nginx/nginx.conf:58
    mainflux-postgres | The database cluster will be initialized with locale "en_US.utf8".
    mainflux-http   | {"error":"nats: no servers available for connection","ts":"2018-03-13T02:17:56.689929955Z"}
    mainflux-nginx  | nginx: [emerg] host not found in upstream "mainflux-manager:8180" in /etc/nginx/nginx.conf:58
    mainflux-postgres | The default database encoding has accordingly been set to "UTF8".
    mainflux-postgres | The default text search configuration will be set to "english".
    mainflux-postgres | 
    mainflux-postgres | Data page checksums are disabled.
    mainflux-postgres | 
    mainflux-manager exited with code 1
    mainflux-postgres | fixing permissions on existing directory /var/lib/postgresql/data ... ok
    mainflux-postgres | creating subdirectories ... ok
    mainflux-postgres | selecting default max_connections ... 100
    mainflux-postgres | selecting default shared_buffers ... 128MB
    mainflux-postgres | selecting dynamic shared memory implementation ... posix
    mainflux-postgres | creating configuration files ... ok
    mainflux-normalizer exited with code 1
    mainflux-postgres | running bootstrap script ... ok
    mainflux-postgres | performing post-bootstrap initialization ... sh: locale: not found
    mainflux-postgres | 2018-03-13 02:17:56.543 UTC [29] WARNING:  no usable system locales were found
    mainflux-postgres | ok
    mainflux-postgres | syncing data to disk ... ok
    mainflux-postgres | 
    mainflux-postgres | Success. You can now start the database server using:
    mainflux-postgres | 
    mainflux-postgres |     pg_ctl -D /var/lib/postgresql/data -l logfile start
    mainflux-postgres | 
    mainflux-postgres | 
    mainflux-postgres | WARNING: enabling "trust" authentication for local connections
    mainflux-postgres | You can change this by editing pg_hba.conf or using the option -A, or
    mainflux-postgres | --auth-local and --auth-host, the next time you run initdb.
    mainflux-postgres | waiting for server to start....2018-03-13 02:17:56.858 UTC [34] LOG:  listening on IPv4 address "127.0.0.1", port 5432
    mainflux-postgres | 2018-03-13 02:17:56.858 UTC [34] LOG:  could not bind IPv6 address "::1": Address not available
    mainflux-postgres | 2018-03-13 02:17:56.858 UTC [34] HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
    mainflux-postgres | 2018-03-13 02:17:56.865 UTC [34] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
    mainflux-postgres | 2018-03-13 02:17:56.883 UTC [35] LOG:  database system was shut down at 2018-03-13 02:17:56 UTC
    mainflux-postgres | 2018-03-13 02:17:56.887 UTC [34] LOG:  database system is ready to accept connections
    mainflux-postgres |  done
    mainflux-postgres | server started
    mainflux-mqtt   | {"pid":1,"hostname":"2bc75be03e01","level":30,"time":1520907476986,"msg":"listening","address":"::","family":"IPv6","port":8880,"protocol":"http","v":1}
    mainflux-mqtt   | {"pid":1,"hostname":"2bc75be03e01","level":30,"time":1520907476988,"msg":"listening","address":"::","family":"IPv6","port":1883,"protocol":"tcp","v":1}
    mainflux-mqtt   | events.js:165
    mainflux-mqtt   |       throw err;
    mainflux-mqtt   |       ^
    mainflux-mqtt   | 
    mainflux-mqtt   | Error: Uncaught, unspecified "error" event. (Could not connect to server: Error: getaddrinfo ENOTFOUND nats nats:4222)
    mainflux-mqtt   |     at Client.emit (events.js:163:17)
    mainflux-mqtt   |     at Socket.<anonymous> (/node_modules/nats/lib/nats.js:405:14)
    mainflux-mqtt   |     at emitOne (events.js:96:13)
    mainflux-mqtt   |     at Socket.emit (events.js:188:7)
    mainflux-mqtt   |     at connectErrorNT (net.js:1025:8)
    mainflux-mqtt   |     at _combinedTickCallback (internal/process/next_tick.js:80:11)
    mainflux-mqtt   |     at process._tickCallback (internal/process/next_tick.js:104:9)
    mainflux-nginx exited with code 1
    mainflux-http exited with code 1
    mainflux-postgres | CREATE DATABASE
    mainflux-postgres | 
    mainflux-postgres | CREATE ROLE
    mainflux-postgres | 
    mainflux-postgres | 
    mainflux-postgres | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
    mainflux-postgres | 
    mainflux-postgres | waiting for server to shut down....2018-03-13 02:17:57.224 UTC [34] LOG:  received fast shutdown request
    mainflux-postgres | 2018-03-13 02:17:57.228 UTC [34] LOG:  aborting any active transactions
    mainflux-postgres | 2018-03-13 02:17:57.229 UTC [34] LOG:  worker process: logical replication launcher (PID 41) exited with exit code 1
    mainflux-postgres | 2018-03-13 02:17:57.229 UTC [36] LOG:  shutting down
    mainflux-postgres | 2018-03-13 02:17:57.262 UTC [34] LOG:  database system is shut down
    mainflux-postgres |  done
    mainflux-postgres | server stopped
    mainflux-postgres | 
    mainflux-postgres | PostgreSQL init process complete; ready for start up.
    mainflux-postgres | 
    mainflux-postgres | 2018-03-13 02:17:57.335 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
    mainflux-postgres | 2018-03-13 02:17:57.335 UTC [1] LOG:  listening on IPv6 address "::", port 5432
    mainflux-postgres | 2018-03-13 02:17:57.343 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
    mainflux-postgres | 2018-03-13 02:17:57.370 UTC [47] LOG:  database system was shut down at 2018-03-13 02:17:57 UTC
    mainflux-postgres | 2018-03-13 02:17:57.378 UTC [1] LOG:  database system is ready to accept connections
    mainflux-mqtt exited with code 1
    
    bug 
    opened by drasko 27
  • MF-388 Helm Charts for Mainflux

    MF-388 Helm Charts for Mainflux

    What does this do?

    It includes the necessary yaml files to deploy Mainflux in a Kubernetes cluster using helm

    Which issue(s) does this PR fix/relate to?

    Somehow it lays the foundation stone for issue #388 (Create Helm package for Mainlfux Kubernetes #388)

    List any changes that modify/break current functionality

    Some changes were also introduced in the Kubernetes deployment to align with this new functionality. For instance, it includes necessary yaml files to optionally deploy a load balancer (metal-lb) in a bare-metal Kubernetes cluster.

    Have you included tests for your changes?

    No, but it was properly tested in a bare-metal Kubernetes cluster. Note Istio ingress was not used, but Nginx.

    Did you document any new/modified functionality?

    Yes, including corresponding README files.

    Notes

    I am not very used to provide changes using git (git rebase and so on), but using gerrit for that, so there might be things not very well done, my apologies for that. On the other hand, I am not sure which is the MF Id that I should use.

    help-wanted 
    opened by juanmagal 24
  •  MF-1425 - Support external UUIDs for Things and Channels

    MF-1425 - Support external UUIDs for Things and Channels

    MF-1425 Enhancement to supply an external UUID for Things and Channels.

    What does this do?

    This is the same PR for MF-1425 - Enhancement for external UUID #1426, but tried to resolve the conflicts

    Which issue(s) does this PR fix/relate to?

    Resolves #MF-1425

    Notes

    I cannot @aspnair. If anyone in Mainflux can review this, and may ask aspnair take a look as well.

    opened by qs-wang 23
  • MF-484 - Add bulk provisioning for things and channels

    MF-484 - Add bulk provisioning for things and channels

    What does this do?

    Adds an endpoint for provisioning multiple things or channels. A transaction is used and will rollback changes if there are any errors. SDK function allows a JSON or CSV file to be provided for specifying entities.

    Which issue(s) does this PR fix/relate to?

    Resolves #484.

    List any changes that modify/break current functionality

    An initial provisioning method was already implemented in the CLI by making multiple calls to create a thing. This moves that functionality out of the CLI to a JSON endpoint, adds transactions, and provides a convenient method to specify a file of entities.

    Have you included tests for your changes?

    Yes

    Did you document any new/modified functionality?

    Yes

    Notes

    opened by nwneisen 23
  • MF-838 - Migration to Go Module

    MF-838 - Migration to Go Module

    What does this do?

    It adds go.mod and go.sum into the project. Also, we can remove the Go Dep files.

    Which issue(s) does this PR fix/relate to?

    Resolves #838

    List any changes that modify/break current functionality

    There are no breaking changes, but if we remove go dep file, we break the Go Dep compatibility.

    Notes

    We can create specific go.mod for each independent component.

    opened by 1995parham 22
  • Message Writer Problem

    Message Writer Problem

    Hi,

    I got this error when I want to install mainflux with docker. Whats the reason?

    ERROR: repository mainflux/message-writer not found: does not exist or no pull access

    Thanks


    Starting NATS, Cassandra and Nginx...

    Starting nats ... done Starting cassandra ... done

    Waiting for Cassandra to start. This takes time, please be patient... .............OK

    Starting Mainflux composition...

    Pulling mqtt-adapter (mainflux/mqtt-adapter:latest)... latest: Pulling from mainflux/mqtt-adapter Digest: sha256:d17b25a10c1f5ad53d8865ceb714bca29e7f9179a4275596fa4ccaa25f577422 Status: Image is up to date for mainflux/mqtt-adapter:latest Pulling manager (mainflux/manager:latest)... latest: Pulling from mainflux/manager Digest: sha256:8119f293e2c275df2c7008d1ab9db9fbdec6ea3ff59789f2c619d662bfba5543 Status: Image is up to date for mainflux/manager:latest Pulling message-writer (mainflux/message-writer:latest)... ERROR: repository mainflux/message-writer not found: does not exist or no pull access Aborting due to errexit on line 122. Exit code: 1 Starting mqtt-adapter ... done Starting manager ... done Starting message-writer ... done Starting http-adapter ... done

    Starting Nginx...

    Starting nginx ... done ERROR: No containers to start Aborting due to errexit on line 136. Exit code: 1

    Stopping Nginx...

    Stopping Mainflux composition...

    Stopping mainflux-http ... done Stopping mainflux-message-writer ... done

    Stopping NATS and Cassandra...

    Stopping mainflux-cassandra ... done Stopping mainflux-nats ... done

    *** MAINFLUX IS OFF ***

    bug 
    opened by 2014siavash 22
  • Add bulk provisioning via CSV files

    Add bulk provisioning via CSV files

    An API endpoint should be added so that we can send a CSV file and do automatic provisioning of a series of entities.

    This provisioning should be done in a transaction, so that we can roll-back the changes in the case of error.

    feature good first issue 
    opened by drasko 21
  • MF-426 - Add optional MF_CA_CERTS env variable to allow GRPC client to use TLS certs

    MF-426 - Add optional MF_CA_CERTS env variable to allow GRPC client to use TLS certs

    What does this do?

    Allows a user to specify a path to their own trusted certs file via environmental variable MF_CA_CERTS.

    Which issue(s) does this PR fix/relate to?

    related #426

    List any changes that modify/break current functionality

    None

    Have you included tests for your changes?

    Not yet

    Did you document any new/modified functionality?

    Not yet

    Notes

    Wanted to get the idea out for feedback before moving onto other components

    opened by nwest1 18
  • NOISSUE - Adding subtopics filtering in writer services

    NOISSUE - Adding subtopics filtering in writer services

    What does this do?

    Adding subtopic's filtering for each writer service. It is strongly based on channel's filtering.

    Which issue(s) does this PR fix/relate to?

    Also resolves #925.

    List any changes that modify/break current functionality

    Have you included tests for your changes?

    Did you document any new/modified functionality?

    Update readme of each writer service with new

    Notes

    I have also refactored a little part of the main code of every writer services to centralize duplicate code into writer package.

    opened by jonathandreyer 17
  • Draft : PoC Unify repo

    Draft : PoC Unify repo

    Pull request title should be MF-XXX - description or NOISSUE - description where XXX is ID of issue that this PR relate to. Please review the CONTRIBUTING.md file for detailed contributing guidelines.

    What does this do?

    Which issue(s) does this PR fix/relate to?

    Put here Resolves #XXX to auto-close the issue that your PR fixes (if such)

    List any changes that modify/break current functionality

    Have you included tests for your changes?

    Did you document any new/modified functionality?

    Notes

    opened by arvindh123 1
  • Environment variables name consistency

    Environment variables name consistency

    ENHANCEMENT

    1. Describe the enhancement you are requesting. Enhancements include:

      • tests
      • code refactor Environment variables are not consistent in all service main.go , The consistent naming of environment variable will help use to maintain and load environment variables by common function and also help in elimination code reptation
      • documentation
      • research
      • tooling
    2. Indicate the importance of this enhancement to you (must-have, should-have, nice-to-have). must-have

    opened by arvindh123 0
  •  Move database abstract of all service to common package

    Move database abstract of all service to common package

    ENHANCEMENT

    1. Describe the enhancement you are requesting. Enhancements include:

      • tests
      • code refactor Database abstract are same for all service, so it will be better if we move them to common package, This improves code reusability
      • documentation
      • research
      • tooling
    2. Indicate the importance of this enhancement to you (must-have, should-have, nice-to-have). must-have

    opened by arvindh123 0
  • Can not using token from api /tokens immediately

    Can not using token from api /tokens immediately

    when I used API/tokens to get tokens for authenticating, and I use the token to get the list channel (channel API). All requests to API were developed by Java. My program response 401 HTTP code from API get list of channels, but when I call two API with some delay time between two requests, everything is fine. here is the log from auth service. is it a bug of mainflux 0.12.1?

    image

    opened by ChiQuang98 0
  • Certs SDK failed during sending  post request to issue certificate endpoint

    Certs SDK failed during sending post request to issue certificate endpoint

    BUG REPORT

    1. What were you trying to achieve? Issue certificate via certs SDK

    2. What are the expected results? Got error mainflux-certs | {"level":"error","message":"missing or invalid bearer user token","ts":"2022-12-20T11:24:43.386719999Z"}

    3. What are the received results? Issue of certificate

    4. What are the steps to reproduce the issue?

    5. In what environment did you encounter the issue? Linux

    6. Additional information you deem important: Certs SDK add keyword bearer and it is not using the latest code for sending request https://github.com/mainflux/mainflux/blob/master/pkg/sdk/go/certs.go#L74-L88 https://github.com/mainflux/mainflux/blob/master/pkg/sdk/go/certs.go#L37

    opened by arvindh123 0
  • Upgrade from 0.12.1 to 0.13.0 (latest version) causes error in user deployment

    Upgrade from 0.12.1 to 0.13.0 (latest version) causes error in user deployment

    Hi, I'm building an application on top of Mainflux, and I'm using docker and k8s for deployment. All services in use now are in v0.12.1, my db is PostgreSQL12, and it runs smoothly without throwing any error.

    However, I'm trying to upgrade Mainflux version to 0.13.0, by changing configs in k8s to pull Mainflux latest version (0.13.0). All of my services still running, except user deployment.

    image

    When checking source code, I found that in ~/cmd/users/main.go, func createAdmin was add new parameter auth image

    I also changed docker config deployment, followed the config in ~/docker/.env, but it's not worth. If I used the same config for deploying v0.12.1, everything would be fine, included user deployment module.

    Was that the main reason causing my error?

    opened by TuanNguyen2807 0
Releases(0.13.0)
  • 0.13.0(Apr 15, 2022)

    Release 0.13.0 brings:

    • Allow reading messages using the user access token
    • Support for Basic Authentication in HTTP Adapter
    • API keys function to CLI

    Features and Bugfixes

    • NOISSUE - Update changelog for release 0.13.0
    • Update VerneMQ release (#1593)
    • NOISSUE - Update changelog and readme for release 0.13.0
    • MF-1582 - Fix lora-adapter MQTT client (#1583)
    • NOISSUE - Fix CoAP adapter (#1572)
    • NOISSUE - Unify MF_INFLUX_READER_DB_HOST and MF_INFLUX_WRITER_DB_HOST envars (#1585)
    • MF-1580 - Influxdb Writer changes format of update-time to string (#1581)
    • MF-1575 Add 'Name' field to ListMembers response in things svc (#1576)
    • MF-1565 - Document Bearer, Thing and Basic Authorization header (#1566)
    • MF-1567 - Use Bearer, Thing or Basic scheme in Authorization header (#1568)
    • MF-1348 - Add transport errors logging (#1544)
    • NOISSUE - Add nats wrapper for COAP (#1569)
    • MF-1469 - Indicate proper authentication scheme in Authorization header (#1523)
    • MF-1240 - Return to service transport layer only service errors (#1559)
    • Update dependencies (#1564)
    • NOISSUE - Separate Keto hosts for read and write (#1563)
    • MF-1551 - Fix Cobra usage commands and clean unnecessary struct types (#1558)
    • MF-1257 - Access messages from readers endpoint with user access token (#1470)
    • NOISSUE - Refactor MQTT subscriber (#1561)
    • MF-1059 - Add TLS support for email (#1560)
    • MF-1261 - Use StatusUnauthorized for authn and StatusForbidden for authz (#1538)
    • NOISSUE - Fix auth members list response (#1555)
    • MF-1263 - Move repeating errors to the separate package (#1540)
    • NOISSUE - Add API keys functions to CLI (#1537)
    • Fix SDK for group members (#1553)
    • NOISSUE - Fix Swagger UI (#1552)
    • MF-1008 - Make token duration configurable (#1550)
    • MF-1308 - Use IETF Health Check standard (#1541)
    • Fix user listing access control (#1546)
    • Update dependencies (#1545)
    • MF-1478 - TimescaleDB writer and reader add-on (#1542)
    • MF-1149 - Add AsyncAPI MQTT API doc (#1539)
    • MF-1535 - Add API keys functions to SDK (#1536)
    • NOISSUE - Add view and list serials endpoints in certs service (#1483)
    • MF-1516 - Fix API key issuing (#1530)
    • NOISSUE - Add disconnect endpoint in nginx conf (#1528)
    • NOISSUE - Add timestamp transformation rules for specifc JSON fields (#1514)
    • MF-1425 - Support external UUIDs for Things and Channels (#1518)
    • MF-1521 - Fix email headers (#1522)
    • Fix SenML lib dependency version (#1519)
    • Bump vernemq to 1.12.3 (#1520)
    • NOISSUE - Remove auth URL from SDK (#1511)
    • NOISSUE - Apply policies to Channels (#1505)
    • remove dead code (#1503)
    • NOISSUE - Fix listing (#1502)
    • NOISSUE - Listing Policies (#1498)
    • Fix standalone mode (#1497)
    • MF-1489 - Add API for deleting policies (#1491)
    • NOISSUE - Update group sharing policies (#1494)
    • NOISSUE - Refactor InfluxDB Reader: explicit check event + add safe conversion (#1460)
    • NOISSUE - Update users create command for CLI (#1495)
    • NOISSUE - Update self register environment variable name (#1493)
    • Bring back the job add
    • NOISSUE - Fix assigning invalid group policy (#1487)
    • MF-1443 - Add policies (#1482)
    • NOISSUE - Fix retrieving all users (#1477)
    • MF-1468 - Fix ThingsURL in Certs Service (#1474)
    • NOISSUE - Refactor single-user mode (#1471)
    • Fix UpdateChannelHandler for Redis producer (#1473)
    • NOISSUE - Add SMPP notifier (#1464)
    • NOISSUE - Update dependencies (#1453)
    • NOISSUE - Fix security warnings for dependencies (#1452)
    • Bump docker-compose version in prereq (#1449)
    • NOISSUE - Fix bootstraping (#1448)
    • MF 1413 - Use per-service URL in SDK (#1444)
    • MF-1439 - Add support for Basic Authentication in HTTP Adapter (#1441)
    • MF-1421 - Make flattening of JSON transformer only available on InfluxDB (#1432)
    • NOISSUE - Update the /disconnect endpoint HTTP method as PUT (#1438)
    • MF-1389 - Add /disconnect endpoint in Things service (#1433)
    • NOISSUE - Fix httputil implementation in users service (#1434)
    • Fix fetching user members of an empty group (#1436)
    • Change to user friendly docs urls (#1430)
    • NOISSUE - Use github action for showing OpenAPI spec with Swagger UI (#1427)
    • Fix JSON Transformer empty format handling (#1429)
    • Update README
    • NOISSUE - Update docker-compose images to latest release (#1419)
    • MF-1378 - Update dependencies (#1379)
    Source code(tar.gz)
    Source code(zip)
    mainflux-cli_0.13.0_linux-amd64.tar.gz(3.89 MB)
  • 0.12.1(May 11, 2021)

    Release 0.12.1 brings:

    • bugfixes

    Features and Bugfixes

    • NOISSUE - Refactor SDK memberships and fix openapi for memberships.
    • NOISSUE - Fix incorrect influxdb credentials
    • MF-1408 - Fix error handling for Thing update SQL(#1408)
    • MF-1288 - Add tests for JSON messages in message writers and readers
    • NOISSUE - Fix Postgres Reader order
    • NOISSUE - Fix nginx configuration for groups
    • NOISSUE - Add tests and connection route-map to lora-adapter
    • MF-1403 - Change vernemq building source revision
    • NOISSUE - Rm content-type check from list endpoint
    Source code(tar.gz)
    Source code(zip)
    mainflux-cli_0.12.1_linux-amd64.tar.gz(3.72 MB)
  • 0.12.0(Mar 29, 2021)

    Release 0.12.0 brings:

    • Groups (generic entity grouping)
    • Universal JSON writer
    • SMTP and SMPP support
    • Many enhancements and bugfixes

    Features and Bugfixes

    • MF-1394 - SDK groups (#1396)
    • NOISSUE - fix response for passwd endpoints (#1393)
    • NOISSUE - dont retrieve groups (#1392)
    • MF-1368 - Add internal http api package for query params reading (#1384)
    • MF-1390 - Fix docker-compose env_file (#1391)
    • NOISSUE - put order direction in response body (#1387)
    • NOISSUE - Certs service refactor (#1369)
    • MF-1357 - Add new endpoint for searching things (#1383)
    • NOISSUE - Add missing auth port in nginx enrypoint.sh (#1380)
    • MF-1346 - Create Groups API - add grouping of entities (#1334)
    • NOISSUE - Fix certs and vault deployment, reorganize and remove unnecessary vars (#1368)
    • MF-1317 - Configurable regexp rule for password (#1355)
    • Fix CoAP Adapter README (#1376)
    • NOISSUE - Fix default values for port and x509 provision (#1367)
    • NOISSUE - Added missing endpoints for users service (#1372)
    • MF-1365 - Add ADOPTERS.md file (#1371)
    • Fix grpc endpoint parameter permutation (#1370)
    • NOISSUE - Add IsChannelOwner grpc endpoint (#1366)
    • MF-1362 - Sort Things and Channels connections by name (#1363)
    • MF-1314 - Add value comparison filters for readers (#1353)
    • Fix env configuration and documentation (#1360)
    • NOISSUE - Support disabling Email Agent authentication (#1356)
    • NOISSUE - Upgrade Mongo, Cassandra and Influx docker images (#1354)
    • NOISSUE - Add READMEs to pkg packages (#1352)
    • NOISSUE - Correct README (#1349)
    • MF-1342 - Use environment variables in docker-compose to use tagged version of image (#1343)
    • MF-1311 - Add Notifications service (#1324)
    • MF-1344 - Fix links to API documentations #1345
    • NOISSUE - Upgrade influxdb and postgres docker images (#1341)
    • NOISSUE - Revert cli to use user token from command args (#1339)
    • MF-1276 - Fix openapi IDs and Keys format (#1338)
    • MF-1061 - Add PageMetadata to readers (#1333)
    • NOISSUE - Fix run script and compiler warnings (#1336)
    • Fix Postgres writer transaction handling (#1335)
    • Make Transformer type configurable (#1331)
    • MF-1061 - Implement v, vb, vs, vd and from/to mongodb-reader filters (#1326)
    • NOISSUE - Rename package aliases uuidProvider into uuid (#1323)
    • MF-1034 - Wrapping MQTT client (#1318)
    • MF-1061 - Fix cassandra-reader count for json format (#1327)
    • MF-1061 - Implement v, vb, vs, vd and from/to cassandra-reader filters (#1325)
    • NOISSUE - Switch to Consumers interface (#1316)
    • MF-1061 - Implement protocol, name, v, vb, vs, vd and from/to Postgres reader… (#1322)
    • MF-1061 - Add name, protocol and publisher tests to influxdb-reader (#1320)
    • NOISSUE - Fix Auth typo (#1319)
    • NOISSUE - Add health check for MQTT broker (#1305)
    • MF-1264 - Add support for JSON readers (#1295)
    • NOISSUE - Merge authz and authn into new service auth (#1313)
    • MF-1061 - Implement InfluxDB filters value, v, vb, vs, vd, from, to (#1312)
    • NOISSUE - Correct readers openapi.yml (#1310)
    • NOISSUE - Fix MQTT Forwarder client id (#1309)
    • NOISSUE - Fix dates not being init properly on save, change path construction, replace UUID with ULID for group ID (#1300)
    • NOISSUE - Remove authz from docker comp (#1307)
    • Shorten descriptions and add formats (#1306)
    • NOISSUE - remove owner id from user table and object (#1303)
    • NOISSUE - Add missing fields to openapi specs and enclose http codes in single quotes (#1302)
    • MF-1290 - Sort Things and Channels by name (#1293)
    • MF-1248 - Add access policies for users (#1246)
    • Fixes, without spaces. (#1296)
    • Add different CNs for CA and certs (#1292)
    • MF-397 - Introduce Thing Groups (#1259)
    • Add Enhancement section to the issue template (#1284)
    • Fix hardcoded env var values (#1283)
    • NOISSUE - Improve AuthN service docs (#1282)
    • MF-1268 - CLI improvements (#1274)
    • NOISSSUE - Vault integration as an addon. (#1266)
    • Fix naming in Authn API tests (#1275)
    • MF-1244 - Return UserID alongside with user Email in Identify response (#1245)
    • NOISSUE - Fix ViewGroup and UpdateGroup (#1269)
    • NOISSUE - Add ListUsers, ViewUser and ViewProfile methods (#1262)
    • NOISSUE - Rm users http package (#1256)
    • NOISSUE - Remove content-type check from decodeListUserGroupsRequest (#1255)
    • NOISSUE - Migrate swaggers to openapi 3 spec (#1250)
    • Update MQTT Broker Docker scripts (#1253)
    • update mproxy version (#1251)
    • NOISSUE - Fix group retrieval when parent id is not specified (#1247)
    • NOISSUE - Add new endpoint to retrieve configuration to be used as a template. (#1242)
    • NOISSUE - Add user groups (#1228)
    • MF-1237 - Return to transport only things service errors (#1236)
    • MF-928 - Change CoAP lib (#1233)
    • NOISSUE - Simplify make cleandocker (#1230)
    • NOISSUE - Fix malformed Swagger API specs (#1229)
    • MF-435 - Add support for env file loading (#1223)
    • update certs docs (#1227)
    • NOISSUE - Fix certs update in bootstrap config and make content handling in config.toml user friendly (#1221)
    • NOISSUE - Fix typo in authorization.js (#1226)
    • MF-983 - Add HTTP query param to connections list endpoints to fetch disconnected Things or Channels (#1217)
    • MF-1179 - Add a certificate service and certs endpoint to SDK (#1188)
    • NOISUE - Fix cache error when key is not in Redis (#1220)
    • MF-1199 - Add NATS messaging tests (#1209)
    • NOISSUE: Fix emailer (#1219)
    • NOISSUE - Update dependencies (#1218)
    • NOISSUE - Add subtopic wildcard for twin attribute's definition (#1214)
    • fix envs for nginx (#1215)
    • Remove twin mqtt related obsolete var and fix es-redis address (#1213)
    • NOISSUE - Remove unused MF_THINGS_SECRET env var (#1211)
    • NOISSUE - Fix some typos (#1212)
    • NOISSUE - Remove unknown Bootstrap requests (#1210)
    • NOISSUE - Use pgcrypto instead uuid-ossp for UUIDs generation (version 4) (#1208)
    • MF-1198 - Add errors package tests (#1207)
    • MF-1025 - timeout env in sec, use parseduration (#1206)
    • MF-1201 - Fix MF_THINGS_AUTH_GRPC_URL mongo reader ENVAR (#1203)
    • NOISSUE - Fix CI (#1204)
    • MF-1180 - Add redis based twins and states cache (#1184)
    • MF-739 - Add ID to the User entity (#1152)
    • NOISSUE - Fix default db name for storage databases (#1194)
    • NOISSUE - Add MF_DOCKER_IMAGE_NAME_PREFIX to Makefile (#1173)
    • MF-1154 - Move UUID provider to project root (#1172)
    • Fix typo in error messages (#1193)
    • MF-1190 - Add pkg for library packages (#1191)
    • MF-1177 - Implement caching in MQTT adapter (#1187)
    • NOISSUE - Refactor provision tool (#1189)
    Source code(tar.gz)
    Source code(zip)
    mainflux-cli_0.12.0_linux-amd64.tar.gz(3.89 MB)
  • 0.11.0(May 29, 2020)

    Release 0.11.0 brings:

    Details can be found here.

    Features and Bugfixes

    • Add VerneMQ docker image build from source (#1178)
    • MF-994 - Add tracing middleware for twins and states repos (#1181)
    • MF-995 - Add Twins tests for endpoint list twins and list states (#1174)
    • NOISSUE - Update dependencies (#1176)
    • MF-1163 - Fix influxdb-reader to use nanoseconds precision (#1171)
    • Rename environment variable MF_MQTT_ADAPTER_PORT to MF_MQTT_ADAPTER_MQTT_PORT in docker environment (#1170)
    • Remove thing related code from twins service (#1169)
    • MF-997 - Add twins service swagger file (#1167)
    • MF-1079 - Add MQTT forwarder (#1164)
    • MF-1159 - add gateway metadata update in provision method (#1160)
    • MF-1055 - rollback/release transaction on error (#1166)
    • NOISSUE - Use log level error for VermeMQ docker (#1162)
    • NOISSUE - Fix default nats pubsub subject (#1153)
    • MF-1125 - Document Provision service (#1143)
    • NOISSUE - Fix bootstrap SDK args naming (#1151)
    • Use VerneMQ default log level (#1150)
    • NOISSUE - Update provision service (#1133)
    • NOISSUE - Refactor messaging (#1141)
    • Add JSON tags to SDK entities (#1146)
    • NOISSUE - Update CLI README.md (#1139)
    • NOISSUE - Update mProxy version (#1137)
    • fix nginx, channel connect (#1136)
    • Remove concurrency flag for golangci-lint (#1134)
    • MF-1088 - Remove message payload content type (#1121)
    • MF-1129 - Use snake_case for Lora and OPC-UA metadata fields (#1130)
    • MF-1128 - Add golangci-linter to a CI script (#1131)
    • MF-1123 - Move Provision service to monorepo (#1132)
    • MF-845 - Add FOSSA badge for licensing (#1127)
    • MF-1087 - Remove WebSocket adapter (#1120)
    • NOISSUE - Use HTTP Status in SDK error messages (#1119)
    • NOISSUE - Fix bootstrap token naming and interfaces named args (#1117)
    • MF-1115 - Improve the SDK error encoding (#1118)
    • MF-862 - Add boostrap CRUD to SDK and CLI (#1114)
    • NOISSUE - Update coding style in Things service (#1116)
    • NOISSUE - Remove defers from TestMain (#1111)
    • NOISSUE - Create func to encode SDK errors (#1110)
    • MF-1078 - Add timestamp to published messages and use it in Transformer (#1106)
    • Fix prometheus namespace in postgres reader & writer (#1109)
    • NOISSUE - Implement errors package in senml transformer, readers and writers (#1108)
    • NOISSUE - Implement errors package in Authentication service (#1105)
    • MF-1103 - API key should ignore empty expiration time (#1104)
    • MF-1096 - Fix AuthN and Things Auth ENVARS (#1066)
    • fix Contains function for nil arguments (#1102)
    • MF-1099 - Add email subdomain validator (#1101)
    • MF-1091 - Use channels. as broker prefix (#1098)
    • MF-1090 - Use named Interfaces args (#1097)
    • NOISSUE - Create broker package for NATS (#1080)
    • NOISSUE - Implement errors package in bootstrap service (#1093)
    • NOISSUE - Fix writers loadSubjectsConfig if file is missing (#1094)
    • NOISSUE - Adding subtopics filtering in writer services (#1072)
    • NOISSUE - Improve errors package (#1086)
    • NOISSUE - Enable MQTT over WS in docker composition (#1085)
    • NOISSUE - Rm unused opc-ua envars (#1083)
    • MF-798 - Add utf8 support for email validation (#1082)
    • Remove unused Tokenizer interface (#1084)
    • Update mqtt adapter imports (#1081)
    • NOISSUE - Update state based on SenML time value (#1075)
    • NOISSUE - Fix StatusBadDecodingError for opc-ua browse (#1074)
    • Save senml array msg to multiple states (#1073)
    • NOISSUE - Fix opc-ua message type handling (#1071)
    • NOISSUE - Add Publisher field to MQTT adapter (#1067)
    • NOISSUE - Fix users CLI (#1062)
    • NOISSUE - Fix SDK Messages response (#1064)
    • Merged MQTT docker compose in core composition file (#1060)
    • MF-1016 - Add UserUpdate and UpdatePassword to sdk and CLI (#1057)
    • Update mProxy (#1058)
    • MF-1053 - Add disconnect event to MQTT adapter (#1056)
    • Fix data type for data_value in databases (#1054)
    • NOISSUE - Fix opc-ua subscriptions store (#1052)
    • NOISSUE - Fix connect CLI command and remove ConnectThing func from SDK (#1051)
    • NOISSUE - Update Vernemq image repository (#1050)
    • Removed VerneMQ auth plugin, Aedes impl. Added mproxy support in docker (#1049)
    • NOISSUE - Add default subscription nodeID and Interval ENVAR (#1046)
    • MF-415 - Merge mProxy support (#1045)
    • NOISSUE - Remove twins-service mqtt dependency and publish notifs to nats (#1042)
    • Add arbitrary SenML value type saving to twin state (#1039)
    • Fixed Aedes dependencies (#1036)
    • MF-998 - Add Twins service to Makefile and docker-compose.yml (#1035)
    • MF-1032 - Fix redis docker volume of opcua-adapter (#1033)
    • NOISSUE - add nats conf (#1031)
    • MF-442 - Add SSL encryption to the MongoDB, InfluxDB and Cassanda readers (#1024)
    • NOISSUE - Add opc-ua type handling and unsubscription (#1029)
    • NOISSUE - Add aggregate attribute-based search for twin retrieval (#1027)
    • NOISSUE - Fix metadata in add Things endpoint (#1028)
    • NOISSUE - Fix minimal password length (#1023)
    • MF-1020 - Change default password for CLI provision test (#1021)
    • NOISSUE - Add subtopic to opcua messages (#1022)
    • NOISSUE - Add details to browsed OPC-UA nodes (#1019)
    • NOISSUE Fix obsolete attribute persistance (#1018)
    • Fix twins update revision counter (#1011)
    • Fixed docs instructions in README (#1010)
    • Fix copyright year (#1009)
    • Fix issuing recovery key (#1007)
    • Removed gatling load-test (#1005)
    • Removed old k8s manifests (#1004)
    • NOISSUE - Remove UI from docker-compose (#1001)
    • NOISSUE - Store successfull OPC-UA subscriptions (#999)
    • MF-730 - Add digital twin service for things (#855)
    • Fix Redis event naming (#996)
    • NOISSUE - Add a Browse endpoint in opcua-adapter (#988)
    • NOISSUE - Add Redis ES Username/Pass for VerneMQ (#991)
    • MF-982 - Add error when connecting empty channels or things (#985)
    Source code(tar.gz)
    Source code(zip)
    mainflux-cli_v0.11.0_linux-amd64.tar.gz(3.59 MB)
  • 0.10.0(Dec 17, 2019)

    Features

    • MF-932 - User API keys (#941)
    • NOISSUE - Use opcua server timestamp in opcua-adapter messages (#980)
    • Simplify CI script (#979)
    • NOISSUE - Add opcua-adapter conn route-map, use ServerURI and NodeID (#975)
    • Move docs to a separate repo (#976)
    • NOISSUE - Support multiple types values in opcua-adapter (#973)
    • Migrate from dep to go modules (#971)
    • NOISSUE - Add Node IdentifierType config in opcua-adapter (#967)
    • NOISSUE - Remove messages limit in influxdb-reader (#968)
    • MF-898 - Add bulk connect to CLI and SDK (#956)
    • MF-538 - Improve logging and API errors (#866)
    • NOISSUE - Remove Elm UI (#953)
    • MF-898 - Add bulk connections endpoint (#948)
    • MF-898 - Change thing's service to use bulk connect (#946)
    • MF-898 - Add transactions to postgres connect (#940)
    • Add missing user service tests (#945)
    • Remove Normalizer service from compose (#937)
    • MF-919 - Mainflux message updates (#924)
    • NOISSUE - Remove ARM multi-arch images (#929)
    • MF-906 - Change single creation endpoints to use bulk service calls (#927)
    • MF-922 - Add UpdateUser endpoint (#923)
    • MF-780 - Use Normalizer as a lib (#915)
    • NOISSUE - Switch to grpcbox for VerneMQ (#914)
    • Change channels to chs (#918)
    • MF-484 - Add bulk provisioning for things and channels (#889)
    • MF-899 - Update README and official docs (#910)
    • NOISSUE - Fix Redis envars (#903)
    • Add disconnect on gen_server terminate() (#913)
    • MF-890 - Add OPC-UA docs (#904)
    • NOISSUE - Update Protobuf version (#902)
    • MF-886 - Add OPC-UA adapter (#878)
    • MF-532 - Password reset (#873)
    • MF-785 - Change CanAccess to CanAccessByKey (#894)
    • NOISSUE - Add MQTT UserName check on register and InstanceId in Redis (#884)
    • Add MQTT troubleshooting section (#882)
    • MF-875 - Add tracing to official documentation (#877)
    • MF-788 - Remove date and minimize copyright comments (#876)
    • MF-787 - Add tags to user, thing, and channel spans (#869)
    • Update docker-compose version for addons (#874)
    • MF-859 - Channels metadata search (#867)
    • MF-858 Users metadata (#861)
    • NOISSUE - Simplify MQTT benchmarking tool (#852)
    • NOISSUE - Upgrade Go version to 1.13 in container images (#868)
    • MF-820 - Fetch messages for a particular device (#843)
    • Update gorilla websocket version (#865)
    • NOISSUE - Update aedes version and fix Dockerfile (#863)
    • NOISSUE - Search by metadata (#849)
    • MF-846 - Install python in docker build for aedes mqtt image (#860)
    • NOISSUE - Clean NginX files, move .gitignores to dirs (#853)
    • NOISSUE - Add docker-compose for MQTT cluster (#841)
    • Add debug logs to the WS adapter (#848)
    • NOISSUE - Add measuring time from pub to sub (#839)
    • NOISSUE - update mqtt prov tool and some refactor (#831)
    • NOISSUE - Use Thing ID to update certs data (#827)
    • NOISSUE - Improve VerneMQ plugin code, add configurable gRPC pool size (#836)
    • NOISSUE - Use gRPC for VerneMQ (#835)
    • Switch secure of WS connection according to secure of http connection of UI (#829)
    • NOISSUE - Use current hostname instead of localhost for a WebSocket connection in the UI (#826)
    • NOISSUE - Improve MQTT benchmarking tools (#828)
    • NOISSUE - update mqtt benchmark (#824)
    • Add encryption key to env vars table (#823)
    • NOISSUE - Add version endpoint to MQTT adapter (#816)
    • MF-295 add mqtt benchmark tool (#817)
    • update mqtts commands (#815)
    • NOISSUE - Support encrypted bootstrap (#796)
    • Add config to writers docs (#812)
    • NOISSUE - Add VerneMQ support (#809)
    • NOISSUE - Add content type as part of MQTT subscription topic (#810)

    Bugfixes

    • Fix MQTT protobuf filename(#981)
    • MF-950 - Runtime error in normalizer - CBOR SenML (#974)
    • NOISSUE - Fix opcua-adapter events warnings (#965)
    • NOISSUE - Fix opcua-adapter events decode (#951)
    • Fix subtopic handling in VerneMQ (#962)
    • NOISSUE - Fix Update User (#959)
    • NOISSUE - Fix make dockers (#957)
    • Add dev_ back to make dockers_dev (#955)
    • NOISSUE - Fix docs (#952)
    • MF-916 - Fix Things and Channels counters (#947)
    • MF-942 - Fix email template logic (#944)
    • NOISSUE - Fix HTTP header for Things and Channels creation (#939)
    • NOISSUE - Fix docker ui image name (#938)
    • NOISSUE - Fix lora-adapter (#936)
    • NOISSUE - Fix lora creation events (#933)
    • Fix doc for ENV vars in README (#920)
    • Fix compilation (#911)
    • Revert "NOISSUE - Make event sourcing optional (#907)" (#909)
    • NOISSUE - Make event sourcing optional (#907)
    • NOISSUE - Fix InfluxDB env vars (#908)
    • Fix Elm version for ARM Docker images (#905)
    • Fix Elm version in Dockerfile (#901)
    • NOISSUE - fix security doc (#897)
    • NOISSUE - Fix typo in docs and README (#891)
    • Fix Nginx mTLS configuration (#885)
    • Fix provision tool connect error handling (#879)
    • Fix: Correct 404 and Content-Type Issues in MQTT Version Endpoint (#837)
    • NOISSUE - Fix proto files in VerneMQ (#834)
    • NOISSUE - Fix hackney HTTP request (#833)
    • Add socket pool and fix pattern matching (#830)
    • Fix typo (#814)
    Source code(tar.gz)
    Source code(zip)
    mainflux-cli_v0.10.0_linux-amd64.tar.gz(6.33 MB)
  • 0.9.0(Jul 19, 2019)

    Features

    • Create and push docker manifest for new release from Makefile (#794)
    • MF-399 - Add open tracing support (#782)
    • MF-783 - Allow access checking by a thing ID (#784)
    • NOISSUE - Add authorization HTTP API to things service (#772)
    • Remove cli executable from repo (#776)
    • NOISSUE - Use .env vars in docker-compose (#770)
    • MF-663 - enable nginx port conf from docker env (#769)
    • Update docs (#766)
    • NOISSUE - Remove installing non-existent package in ci (#758)
    • NOISSUE - Add searchable Channels name (#754)
    • MF-466 - ARM docker deployment (#756)
    • Add missing Websocket.js into docker ui image (#755)
    • NOISSUE - Add searchable Things name (#750)
    • NOISSUE - Add certificate fields to the Bootstrap service (#752)
    • Update grpc and protobuf deps in mqtt adapter (#751)
    • MF-742 - Things to support single user scenario (#749)
    • MF-732 - Add Postgres reader (#740)
    • MF-722 - Change UUID lib (#746)
    • Add performance improvement to writer filtering (#744)
    • NOISSUE - Update nginx version (#748)
    • MF-574 - Add missing environment variables to Cassandra writer (#745)
    • NOISSUE - Add compile test to CI (#743)
    • MF-708 - Assign Writer(s) to a channel (#737)
    • MF-732 - Add PostgreSQL writer (#733)
    • NOISSUE - Add readers pagination in SDK (#736)
    • Add UI websocket open/close and send/receive (#728)
    • MF-707 - Allow custom Thing key (#726)
    • MF-525 - Add pagination response to the readers (#729)
    • NOISSUE - Rm Things type from lora-adapter (#727)
    • skip deleting of persistent volumes by default (#723)
    • MF-488 - Remove Thing type (app or device) (#718)
    • Remove empty channels check (#720)
    • MF-655 Proper usage of docker volumes (#657)
    • NOISSUE - Improve UI styling (#719)
    • MF-715 - Conflict on updating connection with a valid list of channels (#716)
    • MF-711 - Create separate Redis instance for ES (#717)
    • NOISSUE - Update event fields naming (#713)
    • MF-698 - Add missing info and docs about sys event sourcing (#712)
    • MF-549 - Change metadata format from JSON string to JSON object (#706)
    • NOISSUE - Replace repeating code by card gen func (#697)
    • Update Bootstrap service docker-compose.yml (#700)
    • Remove Debug function (#699)
    • MF-687 - Add event sourcing to Bootstrap service (#695)
    • NOISSUE - Remove debugging message from response of handle error function (#696)
    • Add event stream to MQTT adapter for conn status (#692)
    • NOISSUE - Improve UI style (#691)
    • Update docs structure (#686)
    • Use images instead of carousel (#685)
    • NOISSUE - Update docs (#683)
    • MF-662 - Change menu style (#678)
    • MF-651 - X509 Mutual TLS authentication (#676)
    • Update Aedes version for MQTT adapter (#677)
    • MF-661 - Bootstrap pagination in UI (#672)
    • Update subtopics section in documentation (#670)
    • Remove default base URL value (#671)

    Bugfixes

    • NOISSUE - Fix Readers logs (#735)
    • NOISSUE - Fix Docker for ARM (#760)
    • NOISSUE - Fix count when search by name is performed (#767)
    • NOISSUE - Typo fix (#777)
    • NOISSUE - Fix Postgres logs in Things service (#734)
    • Fix CI with fixed plugin versions (#747)
    • fix building problems (#741)
    • fix docker-compose env (#775)
    • Fix MF_THINGS_AUTH_GRPC_PORT in addons' docker-compose files (#781)
    • Fix MQTT raw message deserialization (#753)
    • fix variant option for manifest annotate (#765)
    • fix to makefile for OSX/Darwin (#724)
    • Fix .dockerignore file by removing index.html (#725)
    • Fix things and channels metadata create and edit & remove thing type (#721)
    • Fix Bootstrap service event map keys (#705)
    • Fix logging in publish event callback (#694)
    • Fix InfluxDB time bug (#689)
    • Fix users service to work in offline mode (#795)
    • fix mainflux_id parameter in bootstrap swagger (#789)
    • Fix offset calculation after deleting thing/channel, not to go to negative offset after deleting last thing/channel (#679)
    • Use errors and null packets in authorized pub/sub (#773)
    • NOISSUE - Fix CoAP adapter (#779)
    Source code(tar.gz)
    Source code(zip)
    mainflux-cli_v0.9.0_linux-amd64.tar.gz(3.08 MB)
  • 0.8.0(Mar 20, 2019)

    Features

    • MF-571 - Add Env.elm to set custom base URL (#654)
    • NOISSUE Added docs about docker-compose config overriding (#653)
    • MF-539 - Improve Bootstrap Service documentation (#646)
    • MF-596 - Add subtopic to RawMessage (#642)
    • NOISSUE - Prevent infinite loop in lora-adapter if Redis init fail (#647)
    • Corrected grammar and rephrased a few sentences to read nicely (#641)
    • MF-571 - Elm UI (#632)
    • MF-552 - Use event sourcing to keep Bootstrap service in sync with Things service (#603)
    • MF-540 - Add pagination in API responses for Bootstrap service (#575)
    • MF-600 - Handle custom LoRa Server application decoder (#608)
    • update docker-compose (#590)
    • Update generated code (#602)
    • Add generated files check (#601)
    • MF-597 - Removed legacy code as not needed anymore (#598)
    • NOISSUE - Added normalizer service to run script (#594)
    • Changed RawMessage (#587)
    • NOISSUE - fix CLI log (#581)
    • MF-519 - Refine Message (#567)
    • NOISSUE - Add name field for Bootstrap Config (#564)
    • Fix non-SenML message routing in normalizer (#573)
    • NOISSUE - Update authors list (#569)
    • Update lora.md (#568)
    • NOISSUE- Improve LoRa doc (#562)
    • MF-551 - Add metadata fields to Bootstrap Channels (#563)
    • Fix MQTT adapter by setting subscription queue (#561)
    • MF-558 - Add MQTT subtopics documentation (#559)
    • Fix regexp for SUB (#557)
    • Simplify MQTT topipc regexp (#555)
    • MF-429 -Enabled MQTT subtopic's (#554)
    • Add env var for number of concurrent messages (#545)
    • NOISSUE - Update doc and fix empty key bug (#544)
    • MF-370 - Simplify and refine CI (#541)
    • NOISSUE - Add connection commands to CLI (#542)
    • NOISSUE - Refine docs (#537)
    • Update licnese year (#533)
    • MF-513 - Add Bootstrapping service (#524)
    • Add dedicated env vars for event sourcing (#536)
    • NOISSUE - Fix docs (#535)
    • Add lora doc to getting-started.md (#529)
    • MF-483 - Enable channels and devices corresponding lists in backend (#520)
    • Add missing components doc to architecture.md (#531)

    Bugfixes

    • MF-639 Split Content-Type header field on semicolon and evaluate all substrings (#644)
    • MF-656 - Change bootstrap service port to 8200 (#658)
    • Replace crossOrigin with relative path and fix messaging bug (#645)
    • MF-579 Things & Channels returns 404 when not found or ID is malformed, not 500 (#633)
    • Fix run command in dev guide (#605)
    • MF-583 - Correct cmd/mongodb-reader HTTPServer log Info (#584)
    • Fix Dusan Maldenovic GitHub (#570)
    • Fix CLI docs (#566)
    • Fix pagination response for empty page (#547)
    • Fix swagger and provisioning docs (#546)
    • NOISSUE - Fix event sourcing client on LoRa adapter (#527)
    • Fix MQTT adapter scaling issue (#526)
    • NOISSUE - Fix subtopic regex and restrict empty subtopic parts (#659)
    • Fix missing css in container ui (#638)
    • NOISSUE - Fix lora-adapter Object decode (#610)
    • NOISSUE - Fix users logs in main.go (#577)
    • NOISSUE - Fix normalizer exposed port in docker-compose (#548)

    Summary

    https://github.com/mainflux/mainflux/milestone/9?closed=1

    Source code(tar.gz)
    Source code(zip)
    mainflux-cli_v0.8.0_linux-amd64.tar.gz(3.06 MB)
  • 0.7.0(Dec 8, 2018)

    Features

    • MF-486 - Add provisioning command to CLI (#487)
    • Fix lora-adapter event store handlers (#492)
    • NOISSUE - Add LoRa route map validation and fix LoRa messages URL (#491)
    • MF-475 - Replace increment ID with UUID (#490)
    • MF-166 - Add lora-adapter service (#481)
    • NOISSUE - Add Makefile target to clean old imgs (#485)
    • MF-473 - Add metadata field to channel (#476)
    • Make CoAP ping period configurable (#469)
    • Add nginx ingress config to k8s services (#472)
    • Add CoAP section in getting-started (#468)
    • NOISSUE - Move CLI documentation from getting started guide to separate page (#470)
    • NOISSUE - Update Getting Started doc with CLI usage (#465)
    • Update CoAP docs with URL example (#463)
    • MF-447 - Add event sourcing to things service (#460)
    • Add TLS support to CoAP adapter and all readers (#459)
    • MF-417 - Implement SDK tests (#438)
    • MF-454 - Use message Time field as a time for InfluxDB points (#455)
    • NOISSUE - Add .dockerignore to project root (#457)
    • Update docker-compose so that every service has debug log level (#453)
    • NOISSUE - Add TLS flag for Mainflux services (#452)
    • MF-448 - Option for Postgres SSL Mode (#449)
    • MF-443 Update project dependencies (#444)
    • MF-426 - Add optional MF_CA_CERTS env variable to allow GRPC client to use TLS certs (#430)
    • Expose the InfluxDB and Cassandra ports to host (#441)
    • MF-374 - Bring back CoAP adapter (#413)

    Bugfixes

    • gRPC Load Balancing between http-adapter and things (#387)
    • MF-407 - Values of zero are being omitted (#434)

    Summary

    https://github.com/mainflux/mainflux/milestone/8?closed=1

    Source code(tar.gz)
    Source code(zip)
    mainflux-cli_v0.7.0_linux-amd64.tar.gz(2.52 MB)
  • 0.5.1(Sep 4, 2018)

  • 0.5.0(Aug 28, 2018)

    Features

    • InfluxDB Reader (#311)
    • Cassandra Reader (#313)
    • MongoDB Reader (#344)
    • MQTT Persistance via Redis (#328)
    • CLI integrated into monorepo (#216)
    • Normalizer logging (#333)
    • WS swagger doc (#337)
    • Payload renamed to Metadata (#343)
    • Protobuf files added (#363)
    • SPDX headers added (#325)

    Bugfixes

    • Docker network for InfluxDB (#346)
    • Vendor correct gRPC version (#340)

    Summary

    https://github.com/mainflux/mainflux/milestone/6?closed=1

    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Jun 1, 2018)

    • Integrated MQTT adapter (#165 )
    • Support for storing messages in MongoDB (#237)
    • Support for storing messages in InfluxDB (#236)
    • Use UUID PKs with auto-incremented values (#269 )
    • Replaced JWT with plain string tokens in things service (#268 )
    • Emit non-SenML messages (#239 )
    • Support for Grafana (#296)
    • Added WS Load test (#299 )
    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(May 14, 2018)

    • CoAP API for message exchange (#186)
    • Split manager service into clients and users (#266)
    • Replaced ORM with raw SQL (#265)
    • Setup Kubernetes (#226, #273)
    • Fix docker compose (#274)
    • Integrated dashflux into monorepo (#258)
    • Integrated (non-compatible) mqtt into monorepo (#260)
    Source code(tar.gz)
    Source code(zip)
  • 0.2.3(Apr 24, 2018)

  • 0.2.2(Apr 23, 2018)

  • 0.2.1(Apr 22, 2018)

  • 0.2.0(Apr 18, 2018)

    • Protobuf message serialization (#192)
    • Websocket API for exchanging messages (#188)
    • Channel & client retrieval paging (#227)
    • Service instrumentation (#213)
    • go-kit based JSON logger (#212)
    • Project documentation (#218, #220)
    • API tests (#211, #224)
    Source code(tar.gz)
    Source code(zip)
  • 0.1.2(Mar 18, 2018)

  • 0.1.1(Mar 15, 2018)

  • 0.1.0(Mar 15, 2018)

    Features

    • HTTP API for creating user accounts, clients and grouping them into the channels (#159)
    • HTTP API for publishing messages (#159)
    • Persistence layer backed by PostgreSQL (#159)
    • Message exchange backed by NATS
    • Small Docker images (built "from scratch")
    Source code(tar.gz)
    Source code(zip)
Owner
Mainflux
INTERNET OF THINGS PLATFORM
Mainflux
IoT platform with things/user management and visualization, in Go with Docker using microservices

BARIOT IoT platform to Manage Users and their Things and visualize their data. Microservices services architecture build with Go and docker (compose).

Maxime CLEMENT 5 Jun 22, 2022
Whichip: discover (IoT) device's IP in local network

whichip: discover (IoT) device's IP in local network Install On (IoT) Device wget -O install.sh

Jingchao Hu 1 Dec 8, 2021
Exploring and comparing different IOT messaging protocols / transports.

IOT Messaging Protocols Blynk https://blynk.io/ A fully integrated suite of IoT software Device provisioning Sensor data visualization Remote control

Alexander Ustyugov 0 Jan 2, 2022
A opinionated multi-tenant hyperscale Internet of Things platform to connect IoT devices fast and securely with minimal TCO

infinimesh IoT Platform infinimesh is a opinionated multi-tenant hyperscale Internet of Things platform to connect IoT devices fast and securely with

Mik 1 Feb 14, 2022
An Open-Source Platform for Quantified Self & IoT

Heedy Note: Heedy is currently in alpha. You can try it out by downloading it from the releases page, but there is no guarantee that future versions w

Heedy 356 Jan 1, 2023
Next-generation IoT open source platform.

tKeel Next-generation IoT open source platform High performance, High security and easy to use tKeel is a strong and reusable IoT platform that helps

null 85 Dec 28, 2022
Golang framework for robotics, drones, and the Internet of Things (IoT)

Gobot (https://gobot.io/) is a framework using the Go programming language (https://golang.org/) for robotics, physical computing, and the Internet of

The Hybrid Group 8k Dec 29, 2022
Gobot - Golang framework for robotics, drones, and the Internet of Things (IoT)

Gobot (https://gobot.io/) is a framework using the Go programming language (https://golang.org/) for robotics, physical computing, and the Internet of Things.

The Hybrid Group 8.1k Jan 8, 2023
Suite of libraries for IoT devices (written in Go), experimental for x/exp/io

Go libraries/drivers for IoT devices This repo contains a suite of libraries for IoT devices/sensors/actuators. The suite is meant to be as dependency

Go IoT 256 Sep 26, 2022
Make IoT a lot more fun with data.

Eywa What is Eywa? "Eywa is the guiding force and deity of Pandora and the Na'vi. All living things on Pandora connect to Eywa." -- Avatar Wiki Projec

Alex 59 Nov 28, 2022
A Go client for Google IoT Core

IoT A simple framework for implementing a Google IoT device. This package makes use of the context package to handle request cancelation, timeouts, an

Andrew Young 62 Sep 26, 2022
An embeddable lightweight Go/Golang MQTT broker(server) for IoT.

Snple MQTT 简体中文 Note: The API of this library is still unstable and has not been sufficiently tested, please do not use it in production environments.

null 12 Sep 12, 2022
🐼 IoT worm written in pure golang.

GoriaNet Most powerfull cross compiler (27arch). Kill process by port and check for duplicate instance. Killing process by port. Cross compiler. Infor

Ѵιcнч 68 Oct 17, 2022
Vallox RS-485 MQTT gateway to integrate Vallox RS485 ventilation device to Home Assistant via MQTT.

Vallox RS-485 MQTT gateway to integrate Vallox RS485 ventilation device to Home Assistant via MQTT. Implements Home Assistant MQTT discovery but can also be used without Home Assistant.

Pekka Vainio 1 Dec 26, 2021
Dwarka - API gateway offers REST API to manage various device controlled using MQTT protocol

dwarka API gateway offers REST API to manage various device controlled using 'MQ

Krishnaswamy Subramanian 2 Sep 16, 2022
A realtime teenage driver behaviour monitoring system integrating OBII sensor, smart watch, smartphone, and Raspberry Pi, which examines over time novice teenage driving performance and risk

DriverMonitor A realtime teenage driver behaviour monitoring system integrating OBII sensor, smart watch, smartphone, and Raspberry Pi, which examines

Shaohu 0 Nov 27, 2021
Secure and Interoperable Internet of Things

plgd Cloud Internet of Things (IoT) technologies have evolved rapidly in recent years and continue to change how we interact with our surroundings. Fo

plgd 162 Dec 26, 2022
Securely access remote devices and servers

Deviceplane is an open source device management tool for embedded systems and edge computing. It solves various infrastructure problems related to rem

Deviceplane 207 Dec 15, 2022
Raspberry pi project that controls jack-o-lantern via servo motor and PIR motion sensors

pumpkin-pi ?? Raspberry pi project that controls jack-o-lantern via servo motor and PIR motion sensors to simulate it "watching" you. Inspired by Ryde

Caleb Lemoine 17 Sep 13, 2022