Go to file
Mirko Teodorovic 92a640f6fc MF-858 Users metadata (#861)
* add users metadata

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add users metadata

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add metadata to users

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add metadata to users

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* run.sh

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add metadata to users

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add default value for metadata

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add default value for metadata

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* when metadata is not set dont save 'null' string

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* when metadata is not set dont save 'null' string

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* change metadata type, add error handling

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add pause

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* remove extra char

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* retype from string to []byte

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add wait logic for gnatsd

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* few small fixes

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix identityRes

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add users metadata

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add users metadata

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* revert run.sh for now as gnats availability check is solved in other PR

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* revert changes

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* change metadata database/sql handling

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix commit issues

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* small change to errors handling

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* minor comment change

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
2019-09-28 13:15:41 +02:00
.github NOISSUE - Housekeeping. Update README. (#497) 2018-12-09 20:06:20 +01:00
bootstrap NOISSUE - Search by metadata (#849) 2019-09-17 15:46:24 +02:00
cli NOISSUE - Typo fix (#777) 2019-07-04 09:57:03 +02:00
cmd Add debug logs to the WS adapter (#848) 2019-09-11 15:34:04 +02:00
coap NOISSUE - Add content type as part of MQTT subscription topic (#810) 2019-07-29 17:42:04 +02:00
docker NOISSUE - Upgrade Go version to 1.13 in container images (#868) 2019-09-23 21:43:21 +02:00
docs NOISSUE - Search by metadata (#849) 2019-09-17 15:46:24 +02:00
http NOISSUE - Add content type as part of MQTT subscription topic (#810) 2019-07-29 17:42:04 +02:00
k8s Add nginx ingress config to k8s services (#472) 2018-11-27 12:56:36 +01:00
load-test Added changelog for 0.9.0 release (#799) 2019-07-19 17:56:23 +02:00
logger Fixing level_test.go (#406) 2018-09-26 20:22:26 +02:00
lora MF-399 - Add open tracing support (#782) 2019-07-18 15:01:09 +02:00
metrics NOISSUE - Add exported metrics visualization for grafana (#326) 2018-06-15 17:08:49 +02:00
mqtt NOISSUE - Update aedes version and fix Dockerfile (#863) 2019-09-17 20:25:38 +02:00
normalizer MF-757 - Add support for explicit content type (#771) 2019-07-25 02:22:28 +02:00
readers MF-820 - Fetch messages for a particular device (#843) 2019-09-21 00:20:09 +02:00
scripts NOISSUE - Upgrade Go version to 1.13 in container images (#868) 2019-09-23 21:43:21 +02:00
sdk/go MF-399 - Add open tracing support (#782) 2019-07-18 15:01:09 +02:00
things NOISSUE - Search by metadata (#849) 2019-09-17 15:46:24 +02:00
tools NOISSUE - Simplify MQTT benchmarking tool (#852) 2019-09-25 19:02:29 +02:00
ui Switch secure of WS connection according to secure of http connection of UI (#829) 2019-08-30 16:23:28 +02:00
users MF-858 Users metadata (#861) 2019-09-28 13:15:41 +02:00
vendor NOISSUE - Simplify MQTT benchmarking tool (#852) 2019-09-25 19:02:29 +02:00
writers NOISSUE - Add measuring time from pub to sub (#839) 2019-09-06 14:59:35 +02:00
ws Add debug logs to the WS adapter (#848) 2019-09-11 15:34:04 +02:00
.dockerignore MF-571 - Elm UI (#632) 2019-03-06 16:21:09 +01:00
.env NOISSUE - Add docker-compose for MQTT cluster (#841) 2019-09-12 16:55:24 +02:00
.gitignore NOISSUE - Clean NginX files, move .gitignores to dirs (#853) 2019-09-16 11:47:34 +02:00
CHANGELOG.md Added changelog for 0.9.0 release (#799) 2019-07-19 17:56:23 +02:00
CONTRIBUTING.md Corrected grammar and rephrased a few sentences to read nicely (#641) 2019-03-07 16:25:37 +01:00
Gopkg.lock NOISSUE - Simplify MQTT benchmarking tool (#852) 2019-09-25 19:02:29 +02:00
Gopkg.toml NOISSUE - Simplify MQTT benchmarking tool (#852) 2019-09-25 19:02:29 +02:00
LICENSE Update licnese year (#533) 2019-01-09 16:23:30 +01:00
MAINTAINERS Update MAINTAINERS 2018-08-28 22:42:47 +02:00
Makefile NOISSUE - Update aedes version and fix Dockerfile (#863) 2019-09-17 20:25:38 +02:00
README.md Updated Readme (#808) 2019-07-25 19:20:11 +02:00
api.go MF-325 - Add SPDX license and copyright headers (#362) 2018-08-26 13:15:48 +02:00
doc.go MF-325 - Add SPDX license and copyright headers (#362) 2018-08-26 13:15:48 +02:00
env.go MF-325 - Add SPDX license and copyright headers (#362) 2018-08-26 13:15:48 +02:00
internal.pb.go MF-783 - Allow access checking by a thing ID (#784) 2019-07-15 18:28:15 +02:00
internal.proto MF-783 - Allow access checking by a thing ID (#784) 2019-07-15 18:28:15 +02:00
message.go MF-757 - Add support for explicit content type (#771) 2019-07-25 02:22:28 +02:00
message.pb.go Fix CI with fixed plugin versions (#747) 2019-05-15 17:41:18 +02:00
message.proto MF-596 - Add subtopic to RawMessage (#642) 2019-03-15 18:38:07 +01:00
mkdocs.yml Fix typo (#814) 2019-08-02 15:22:28 +02:00
publisher.go MF-399 - Add open tracing support (#782) 2019-07-18 15:01:09 +02:00
topics.go MF-325 - Add SPDX license and copyright headers (#362) 2018-08-26 13:15:48 +02:00
version.go MF-757 - Add support for explicit content type (#771) 2019-07-25 02:22:28 +02:00

README.md

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 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 company, 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
  • 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
  • SDK
  • CLI
  • Small memory footprint and fast execution
  • Domain-driven design architecture, high-quality code and test coverage

Install

Before proceeding, install the following prerequisites:

Once everything is installed, execute the following commands from project root:

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

This will bring up all Mainflux dockers and inter-connect them in the composition.

Usage

Best way to quickstart using Mainflux is via CLI:

make cli
./build/mainflux-cli version

Mainflux CLI can also be downloaded as a tarball from offical release page

If this works, head to official documentation to understand Mainflux provisioning and messaging.

Documentation

Official documentation is hosted at Mainflux Read The Docs page.

Documentation is auto-generated from Markdown files in ./docs directory. If you spot an error or 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 continiusly work 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.

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

Contributing

Thank you for your interest in Mainflux and wish to contribute!

  1. Take a look at our open issues.
  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 careers@mainflux.com.

Note that the best way to grab our attention is by sending PRs 😎.

Community

License

Apache-2.0