mirror of
https://github.com/mainflux/mainflux.git
synced 2025-04-28 13:48:49 +08:00

* MF-1525 - Add graceful stop for HTTP and GRPC servers (#1548) * Add : errgroup to cmd/auth Signed-off-by: Arvindh <arvindh91@gmail.com> * Add : Handle graceful stop for auth service Remove : errgroups from auth service Signed-off-by: Arvindh <arvindh91@gmail.com> * Add : Wait till server shutdown Signed-off-by: Arvindh <arvindh91@gmail.com> * Change : instead of waitgroup changed to errgroups Signed-off-by: Arvindh <arvindh91@gmail.com> * change : KillSignalHandler return type to error Signed-off-by: Arvindh <arvindh91@gmail.com> * Empty Commit Signed-off-by: Arvindh <arvindh91@gmail.com> * Add : Context to http server shutdown Rename : varaible from proto to protocol Signed-off-by: Arvindh <arvindh91@gmail.com> * change : to default log level Signed-off-by: Arvindh <arvindh91@gmail.com> * Add : Sign-off Signed-off-by: Arvindh <arvindh91@gmail.com> * Add: graceful stop of http and grpc server Signed-off-by: Arvindh <arvindh91@gmail.com> * Fix: typos and caps Signed-off-by: Arvindh <arvindh91@gmail.com> * Add: Signed-off Signed-off-by: Arvindh <arvindh91@gmail.com> * Rename: Func KillSignalHandler to SignalHandler Add: SIGABRT Signed-off-by: Arvindh <arvindh91@gmail.com> * Fix: auth service Signed-off-by: Arvindh <arvindh91@gmail.com> * Add: timeout for grpc gracefulstop Fix: typos Signed-off-by: Arvindh <arvindh91@gmail.com> * Add: .vscode folder to git ignore Signed-off-by: Arvindh <arvindh91@gmail.com> * change: variable name to stopWaitTime Signed-off-by: Arvindh <arvindh91@gmail.com> * remove: .vscode folder Signed-off-by: Arvindh <arvindh91@gmail.com> * remove: .vscode from .gitignore Signed-off-by: Arvindh <arvindh91@gmail.com> * Add : logger to handlers Signed-off-by: Arvindh <arvindh91@gmail.com> * Add : New line at end of .gitignore file Signed-off-by: Arvindh <arvindh91@gmail.com> * Fix : variable naming Add : graceful stop for timescale Signed-off-by: Arvindh <arvindh91@gmail.com> * Remove : unsued NATS library from import Signed-off-by: Arvindh <arvindh91@gmail.com> * Move: "https" and "https" to moved to const var Signed-off-by: Arvindh <arvindh91@gmail.com> * Move: "http" and "https" to moved to const var Signed-off-by: Arvindh <arvindh91@gmail.com> * update: branch with master Signed-off-by: Arvindh <arvindh91@gmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Co-authored-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * Add: httpserver and grpcsever Signed-off-by: Arvindh <arvindh91@gmail.com> * MF-1588 - Update Subscriber interface (#1598) * Initial commit Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Update subscriber interface Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Add tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Add tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * check subscription map Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Check topic id after topic Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * reword description Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Setup empty queue Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Change mqtt implementation Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Switch statements Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Simplify Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Change mqtt subscriber Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Protect subscription map Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Fix subscription Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Set client id Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Format Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Change delete method Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * move http and grpc server functions Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * Move Keto and Jaeger Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * Add metrics and auth Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * MF - 1590 - Fix fetching list of users with a zero limit (#1594) * Add max and min limit size Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Format Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Format Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * NOISSUE - Retrieve client key on cert issuing (#1607) Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * fix bug (#1604) Signed-off-by: zhangchuanfeng <654300242@qq.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * Rename service name Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * Change metrics method Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * Rename Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * Rename Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * Rename package name Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * 🚚 Rename Keto and Jaeger functions Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * unify grpc service Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * 🚚 rename apiutil to initutil Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * ✨ coap server Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * 🚚 rename Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * 🚚 Rename Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * ♻️ rename packages Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * ♻️ remove mf prefix Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * 🚚 rename server error Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * remove dead code Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * MF - 1416 - Queue Abstraction for Mainflux & RabbitMQ Support (#1562) * MF-1263 - Move repeating errors to the separate package (#1540) * MF-1263 - Mv duplicated errors to pkg/errors Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Revert test build flags Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix merge Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix comment Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * NOISSUE - Fix auth members list response (#1555) * NOISSUE - Fix auth members list response Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Move group type next to page details Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Rm membersRes Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix typo Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1261 - Use StatusUnauthorized for authn and StatusForbidden for authz (#1538) * MF-1261 - Use StatusUnauthorized for authn and StatusForbidden for authz Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * ErrExternalKey typo Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Rename ErrUnauthorizedAcces -> ErrAuthentication Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix bootstrap error Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix status code in openapi Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix test description Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix test description Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix test description Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add errors cases Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix status codes Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add gRPC stutus code Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix tests description Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix openapi and encodeError Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix grpc message Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix test descriptions Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Revert sdk error Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix typo Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1059 - Add TLS support for email (#1560) * Use gomail package for sending emails Signed-off-by: Ivan Milosevic <iva@blokovi.com> * remove print err Signed-off-by: Ivan Milosevic <iva@blokovi.com> * Add vendor Signed-off-by: Ivan Milosevic <iva@blokovi.com> * Rename email structure remove logger Signed-off-by: Ivan Milosevic <iva@blokovi.com> * typo in var name Signed-off-by: Ivan Milosevic <iva@blokovi.com> * rename var Signed-off-by: Ivan Milosevic <iva@blokovi.com> * remove MF_EMAIL_SECRET Signed-off-by: Ivan Milosevic <iva@blokovi.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * NOISSUE - Refactor MQTT subscriber (#1561) * correct suscriber interface validator + refactore token error handling Signed-off-by: tzzed <zerouali.t@gmail.com> * apply review suggestion Signed-off-by: tzzed <zerouali.t@gmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1257 - Access messages from readers endpoint with user access token (#1470) * remove owner id Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add user auth for db reader Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * add user auth for db reader Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * enable mongodb reader for user token reading Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * use uuid check for auth switch between thing key and user tok Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * enable user token reading Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * revert to correct version Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * fix endpoint test, add additional tests Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * remove logs,dead code Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * fix logging messages Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * remove auth interface, add authorization header type Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * update api doc Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * remove unused package Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * some refactor of cases for authorization switch Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * correct description in openapi Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * fix endpoint test to match auth service change Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * some rename Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * initialize auth url Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * add env variables for auth service Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * fix spelling Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * Things prefix and no prefix for Thing authorization, Bearer for user Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * update readme file Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * fix default things grpc port Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * enable user reading for timescaledb Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * remove not used error Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * improve errors Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * refactor authorize Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * add chanID check Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * inline some error checking Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * fixing errors Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * fixing errors Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * improve test case description Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * remove test code Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * dont inline Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * refactor a bit encodeError Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * remove unused error Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * remove unused error Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * fix things auth grpc url Signed-off-by: mteodor <mirko.teodorovic@gmail.com> * rename variables for header prefix Signed-off-by: mteodor <mirko.teodorovic@gmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Initial commit of adding rabbitmq broker Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Initial commit of adding rabbitmq broker Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Initial commit for tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Bump up tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Add more tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Add go routines Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Initial commit of adding rabbitmq broker Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Initial commit for tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Bump up tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Add more tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Add go routines Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Fix tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Fix with wait groups Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * unsubscribe to stop delivering messages Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Remove exclusivity Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1551 - Fix Cobra usage commands and clean unnecessary struct types (#1558) * MF-1551 - Fix Cobra usage commands and clean unnecessary struct types Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Use linux syntax for cmd usage description Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix typo Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix cmd.Use Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * NOISSUE - Separate Keto hosts for read and write (#1563) * Separate keto hosts for read and write Signed-off-by: Ivan Milosevic <iva@blokovi.com> * update readme with new envars Signed-off-by: Ivan Milosevic <iva@blokovi.com> * rename read connection name Signed-off-by: Ivan Milosevic <iva@blokovi.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Co-authored-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Update dependencies (#1564) Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1240 - Return to service transport layer only service errors (#1559) * MF-1240 - Return to service transport layer only service errors Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Remove unecessary errors Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Rm duplicated errors and fix transport Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Revert http endpoint_test Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix conflict Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Implement cancel mechanisms Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Queuename as parameter Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Queuename as parameter Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1469 - Indicate proper authentication scheme in Authorization header (#1523) * MF-1469 - Indicate proper authentication scheme in Authorization header Signed-off-by: Stefan Kovacevic <jen2tri@gmail.com> * Fixing the remarks on the last push Signed-off-by: Stefan Kovacevic <jen2tri@gmail.com> * Remove Bearer prefix in all services and fix tests Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix remarks Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Co-authored-by: Manuel Imperiale <manuel.imperiale@gmail.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * NOISSUE - Add nats wrapper for COAP (#1569) * Add nats wrapper for COAP Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Pass pubsub as argument Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Defer close connection Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Defer close connection Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Rename endpoint to topic Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1348 - Add transport errors logging (#1544) * MF-1348 - Add go-kit transport level logging Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix reviews Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix reviews Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix merge Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix remark Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix go test flags Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Use httputil errors in things and http service Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix SDK tests Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Use httputil errors in certs and provision service Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Use httputil errors in consumers service Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * General renaming and add ErrMissingToken Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Rename httputil -> apiutil and use errors in users servive Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Use apiutil errors in auth, bootstrap, readers, things and twins Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Replace errors.Contain by comparison Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix remarks Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Simplify validateID Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Simplify validateID Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Simplify and rename ExtractAuthToken -> ExtractBearerToken Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix readers Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix auth key test and remarks Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Improve comment Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Simplify validateUUID check Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix typo Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1567 - Use Bearer, Thing or Basic scheme in Authorization header (#1568) Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1565 - Document Bearer, Thing and Basic Authorization header (#1566) * MF-1565 - Document Bearer Authorization header Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix auth, bootstrap, http and readers openapi Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix openapi Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add enc key for bootstrap Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix typo Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Use global security Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix bearer formats Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Polish descriptions Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix boostrap and typo Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Co-authored-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1575 Add 'Name' field to ListMembers response in things svc (#1576) Signed-off-by: Ivan Balboteo <ivan@submer.com> Co-authored-by: Ivan Balboteo <ivan@submer.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1580 - Influxdb Writer changes format of update-time to string (#1581) * - MF-1580 - Modified consumers/writers/influxdb/fields.go - influxdb-writer used to update data type of update-time to string - Commented line 12 of consumers/writers/influxdb/fields.go to resolve uneccessary data type conversion issue Signed-off-by: Hasan Tariq <hasantariqashraf@gmail.com> * - MF-1580 - Removed strconv package from consumers/writers/influxdb/fields.go since it is no longer needed - Removed line 12 from consumers/writers/influxdb/fields.go - Replaced retrun value of updateTime with msg.UpdateTime (line 16 in fields.go) Signed-off-by: Hasan Tariq <hasantariqashraf@gmail.com> * Fix InflxuDB readers Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> Co-authored-by: Hasan Tariq <hasant@plcgroup.com> Co-authored-by: dusanb94 <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * NOISSUE - Unify MF_INFLUX_READER_DB_HOST and MF_INFLUX_WRITER_DB_HOST envars (#1585) Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * NOISSUE - Fix CoAP adapter (#1572) * Revert "NOISSUE - Add nats wrapper for COAP (#1569)" This reverts commit cc5d5195ab27fa94270ada616487b7053fd9c7bd. Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix CoAP adapter Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Update CoAP observation cancel Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix observe Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix GET handling Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Revert authorization Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Use constants instead of magic numbers Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Remove an empty line Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Extract special observe value to constant Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1582 - Fix lora-adapter MQTT client (#1583) * MF-1582 - Fix lora-adapter MQTT clien Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add timeout config to the mqtt subscriber Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Rm comment Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add sub timeout Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * NOISSUE - Update changelog and readme for release 0.13.0 (#1592) * Update release example Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Update changelog and examples for 0.13.0 release Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Update VerneMQ release (#1593) Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * NOISSUE - Update changelog for release 0.13.0 (#1595) Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * unexport constants Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Change routingkey Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Remove wait groups Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * protecting map Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Add publisher to pubsub Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Change proto library Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Fix typos Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Reduce pubsub tests based on implementation Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Remove channel cancel Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Export constant Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * NOISSUE - Move invariant statements out of loop for cassandra-writer (#1596) Signed-off-by: fuzhy <fuzhy1997@outlook.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Embedding publisher into pubsub Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Naming publisher Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * NOISSUE - Fix Nginx entrypoint script (#1597) * Fix Nginx entrypoint script Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Update dependencies Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix NginX entrypoint Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Revert Makefile changes Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1525 - Add graceful stop for HTTP and GRPC servers (#1548) * Add : errgroup to cmd/auth Signed-off-by: Arvindh <arvindh91@gmail.com> * Add : Handle graceful stop for auth service Remove : errgroups from auth service Signed-off-by: Arvindh <arvindh91@gmail.com> * Add : Wait till server shutdown Signed-off-by: Arvindh <arvindh91@gmail.com> * Change : instead of waitgroup changed to errgroups Signed-off-by: Arvindh <arvindh91@gmail.com> * change : KillSignalHandler return type to error Signed-off-by: Arvindh <arvindh91@gmail.com> * Empty Commit Signed-off-by: Arvindh <arvindh91@gmail.com> * Add : Context to http server shutdown Rename : varaible from proto to protocol Signed-off-by: Arvindh <arvindh91@gmail.com> * change : to default log level Signed-off-by: Arvindh <arvindh91@gmail.com> * Add : Sign-off Signed-off-by: Arvindh <arvindh91@gmail.com> * Add: graceful stop of http and grpc server Signed-off-by: Arvindh <arvindh91@gmail.com> * Fix: typos and caps Signed-off-by: Arvindh <arvindh91@gmail.com> * Add: Signed-off Signed-off-by: Arvindh <arvindh91@gmail.com> * Rename: Func KillSignalHandler to SignalHandler Add: SIGABRT Signed-off-by: Arvindh <arvindh91@gmail.com> * Fix: auth service Signed-off-by: Arvindh <arvindh91@gmail.com> * Add: timeout for grpc gracefulstop Fix: typos Signed-off-by: Arvindh <arvindh91@gmail.com> * Add: .vscode folder to git ignore Signed-off-by: Arvindh <arvindh91@gmail.com> * change: variable name to stopWaitTime Signed-off-by: Arvindh <arvindh91@gmail.com> * remove: .vscode folder Signed-off-by: Arvindh <arvindh91@gmail.com> * remove: .vscode from .gitignore Signed-off-by: Arvindh <arvindh91@gmail.com> * Add : logger to handlers Signed-off-by: Arvindh <arvindh91@gmail.com> * Add : New line at end of .gitignore file Signed-off-by: Arvindh <arvindh91@gmail.com> * Fix : variable naming Add : graceful stop for timescale Signed-off-by: Arvindh <arvindh91@gmail.com> * Remove : unsued NATS library from import Signed-off-by: Arvindh <arvindh91@gmail.com> * Move: "https" and "https" to moved to const var Signed-off-by: Arvindh <arvindh91@gmail.com> * Move: "http" and "https" to moved to const var Signed-off-by: Arvindh <arvindh91@gmail.com> * update: branch with master Signed-off-by: Arvindh <arvindh91@gmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Co-authored-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF-1588 - Update Subscriber interface (#1598) * Initial commit Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Update subscriber interface Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Add tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Add tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * check subscription map Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Check topic id after topic Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * reword description Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Setup empty queue Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Change mqtt implementation Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Switch statements Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Simplify Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Change mqtt subscriber Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Protect subscription map Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Fix subscription Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Set client id Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Format Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Change delete method Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Update rabbitmq subscriber interface Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * using publisher composition Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Change contenttype Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * rename topic for publish and subscribe Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Change errors to lower case Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Change errors to lower case Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * export errors Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * MF - 1590 - Fix fetching list of users with a zero limit (#1594) * Add max and min limit size Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Format Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Format Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * NOISSUE - Retrieve client key on cert issuing (#1607) Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * fix bug (#1604) Signed-off-by: zhangchuanfeng <654300242@qq.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * queue per subscription Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * queue per subscription Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Change routing method Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Direct method with one exchange to many queues, one consumer per queue Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * ♻️ Not casting data Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * ✏️ Fix typo Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * ♻️ remove passed queue name Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * 🔥 removing echange kind Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Combine tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Refactor unsubscribe method Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Fix merge conflict Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * ✅ sub and unsub to dummy topic Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * generate client id from topic and ID Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Rename topicID to clientID Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * update tests Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Reuse clientID Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Fix typos Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> * Seperate testpublish and testpubsub Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Co-authored-by: Manuel Imperiale <manuel.Imperiale@gmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Co-authored-by: Ivan Milošević <iva@blokovi.com> Co-authored-by: __touk__ <zerouali.t@gmail.com> Co-authored-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> Co-authored-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com> Co-authored-by: stefankovacevic123 <jen2tri@gmail.com> Co-authored-by: ibalboteo <ivanbalboteo@gmail.com> Co-authored-by: Ivan Balboteo <ivan@submer.com> Co-authored-by: Hasan98-git <67228396+Hasan98-git@users.noreply.github.com> Co-authored-by: Hasan Tariq <hasant@plcgroup.com> Co-authored-by: fuzhy <fuzhy1997@outlook.com> Co-authored-by: Arvindh <30824765+arvindh123@users.noreply.github.com> Co-authored-by: 张传峰 <59160162+zhang-chuanfeng@users.noreply.github.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * NOISSUE - Fix Groups SDK (#1609) * Fix Groups SDK Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix CLI Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * NOISSUE - Fix CI script (#1613) * Fix CI script Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix linter errors Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Add timeout to linter Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * NOISSUE - Make application/json content-type valid in http-adapter (#1606) * NOISSUE - Make application/json content-type valid in http-adapter Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add test Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add CBOR content-type Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix naming Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix naming Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix CI Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix CI flag Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix CI install Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Upgrade grpc version Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix typo Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * rm cli Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * Specify size of channel Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * NOISSUE - fix pull request template typo (#1616) * Fix typo Signed-off-by: Filip Bugarski <filipbugarski@gmail.com> * Change link Signed-off-by: fbugarski <filipbugarski@gmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> * Add: load configuration function Signed-off-by: Arvindh <arvindh91@gmail.com> * change: load config from env with pkg caarlos0/env Signed-off-by: Arvindh <arvindh91@gmail.com> * change: mfdatabase to internaldb Signed-off-by: Arvindh <arvindh91@gmail.com> * Add: httpserver and grpcsever Signed-off-by: Arvindh <arvindh91@gmail.com> move http and grpc server functions Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> Move Keto and Jaeger Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> Add metrics and auth Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> Rename service name Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> Change metrics method Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> Rename Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> Rename Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> Rename package name Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> 🚚 Rename Keto and Jaeger functions Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> unify grpc service Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> 🚚 rename apiutil to initutil Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> ✨ coap server Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> 🚚 rename Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> 🚚 Rename Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> ♻️ rename packages Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> ♻️ remove mf prefix Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> 🚚 rename server error Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> remove dead code Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> NOISSUE - Fix CI script (#1613) * Fix CI script Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix linter errors Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Add timeout to linter Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> Signed-off-by: Arvindh <arvindh91@gmail.com> Specify size of channel Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> Add: load configuration function Signed-off-by: Arvindh <arvindh91@gmail.com> change: load config from env with pkg caarlos0/env Signed-off-by: Arvindh <arvindh91@gmail.com> * change: mfdatabase to internaldb Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: merge resolve error Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: merge resolve error Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: merge resolve error Signed-off-by: Arvindh <arvindh91@gmail.com> * remove: unused variables Signed-off-by: Arvindh <arvindh91@gmail.com> * add: address variable in servers Signed-off-by: Arvindh <arvindh91@gmail.com> * move: postgres connect to internal Signed-off-by: Arvindh <arvindh91@gmail.com> * add: client wrapper for most used Signed-off-by: Arvindh <arvindh91@gmail.com> * add: client wrapper for env Signed-off-by: Arvindh <arvindh91@gmail.com> * unify : auth, bootstrap, cassandra reader Signed-off-by: Arvindh <arvindh91@gmail.com> * unify : bootstrap code Signed-off-by: Arvindh <arvindh91@gmail.com> * unify : cassandra writer Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: struct tag to envDefault Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: grpc prefix Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: env parser Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: alt prefix Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: env default tag Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: auth grpc config Signed-off-by: Arvindh <arvindh91@gmail.com> * changes: internal approch and service start Signed-off-by: Arvindh <arvindh91@gmail.com> * unify: http adapter service Signed-off-by: Arvindh <arvindh91@gmail.com> * remove: unused code in http adapter" Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: config environment variable tags Signed-off-by: Arvindh <arvindh91@gmail.com> * unify: timescale writer Signed-off-by: Arvindh <arvindh91@gmail.com> * unify: timescale reader Signed-off-by: Arvindh <arvindh91@gmail.com> * unify: thing main.go Signed-off-by: Arvindh <arvindh91@gmail.com> * unify: smtp-notifier Signed-off-by: Arvindh <arvindh91@gmail.com> * unify: smpp-notifier Signed-off-by: Arvindh <arvindh91@gmail.com> * unify: postgres reader and writer Signed-off-by: Arvindh <arvindh91@gmail.com> * unify: twins Signed-off-by: Arvindh <arvindh91@gmail.com> * unify Signed-off-by: Arvindh <arvindh91@gmail.com> * unify certs main.go Signed-off-by: Arvindh <arvindh91@gmail.com> * unify certs main.go Signed-off-by: Arvindh <arvindh91@gmail.com> * unify coap main.go Signed-off-by: Arvindh <arvindh91@gmail.com> * unify lora main.go Signed-off-by: Arvindh <arvindh91@gmail.com> * fix fatalf Signed-off-by: Arvindh <arvindh91@gmail.com> * unify mqtt main.go Signed-off-by: Arvindh <arvindh91@gmail.com> * unify mqtt main.go Signed-off-by: Arvindh <arvindh91@gmail.com> * unify ocpua adapter main.go Signed-off-by: Arvindh <arvindh91@gmail.com> * fix case Signed-off-by: Arvindh <arvindh91@gmail.com> * unify ws_adapter Signed-off-by: Arvindh <arvindh91@gmail.com> * unify ws_adapter Signed-off-by: Arvindh <arvindh91@gmail.com> * unify ws_adapter Signed-off-by: Arvindh <arvindh91@gmail.com> * add : comment and spacing Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: lint errors Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: lint errors Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: main.go config load Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: main.go config load Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: auth main.go keto config Signed-off-by: Arvindh <arvindh91@gmail.com> * remove: package internal/sqlxt Signed-off-by: Arvindh <arvindh91@gmail.com> * code format : internal/client/grpc/connect.go Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: inline code Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: code format Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: inline and code format Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: moved to single block Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: moved to single block Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: export function comments Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: export function comments Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: export function comments Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: export function comments Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: export function comments Signed-off-by: Arvindh <arvindh91@gmail.com> * remane: newtracer.go to tracer.go Signed-off-by: Arvindh <arvindh91@gmail.com> * renamee: authClient.go and thingsClient.go to client.go Signed-off-by: Arvindh <arvindh91@gmail.com> * remove space Signed-off-by: Arvindh <arvindh91@gmail.com> * add: jaeger default value Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: cassander config default values Signed-off-by: Arvindh <arvindh91@gmail.com> * rename file Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: postgres client config default values Signed-off-by: Arvindh <arvindh91@gmail.com> * add setup with default config Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: mongo client config default values Signed-off-by: Arvindh <arvindh91@gmail.com> * add: postgres default db name in services Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for auth Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for bootstrap Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for cassandra-reader Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for cassandra-writer Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for certs Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for coap Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for http-adapter Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for influx-reader Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for influx-writer Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for lora Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for mongodb-reader Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for mongodb-writer Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for mqtt Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for opcua Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for postgres-reader Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for postgres-writer Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for smpp-notifier Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for smtp-notifier Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for things Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for timescale-reader Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for timescale-writer Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for twins Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for users Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: environment variable default for ws Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: unused variables Signed-off-by: Arvindh <arvindh91@gmail.com> * empty commit Signed-off-by: Arvindh <arvindh91@gmail.com> * add comments Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: redis env variables Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: adapter ports and postgres db name Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: adapter ports Signed-off-by: Arvindh <arvindh91@gmail.com> * comments aligned Signed-off-by: Arvindh <arvindh91@gmail.com> * rename cassandra session variable Signed-off-by: Arvindh <arvindh91@gmail.com> * rename influxdb and influx to influxDB Signed-off-by: Arvindh <arvindh91@gmail.com> * rename EsConsumername to ESConsumerName Signed-off-by: Arvindh <arvindh91@gmail.com> * made comments consistant Signed-off-by: Arvindh <arvindh91@gmail.com> * made comments consistant & remove empty lines Signed-off-by: Arvindh <arvindh91@gmail.com> * made comments consistant & renmae function Signed-off-by: Arvindh <arvindh91@gmail.com> * made comments Signed-off-by: Arvindh <arvindh91@gmail.com> * comments added Signed-off-by: Arvindh <arvindh91@gmail.com> * fix bootstrap Signed-off-by: Arvindh <arvindh91@gmail.com> * fix empty env var Signed-off-by: Arvindh <arvindh91@gmail.com> * remove : unused variable Signed-off-by: Arvindh <arvindh91@gmail.com> * update: env parser library Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: mongodb reader and writer Signed-off-by: Arvindh <arvindh91@gmail.com> * fix: cassandra reader and writer Signed-off-by: Arvindh <arvindh91@gmail.com> * rename: directory Signed-off-by: Arvindh <arvindh91@gmail.com> * rename: variable Signed-off-by: Arvindh <arvindh91@gmail.com> * remove: unused librar Signed-off-by: Arvindh <arvindh91@gmail.com> * Format code and remove unused comments Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix tests Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Move test URL construction out of the loop Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * remove end dot in single line comments Signed-off-by: Arvindh <arvindh91@gmail.com> * empty Signed-off-by: Arvindh <arvindh91@gmail.com> --------- Signed-off-by: Arvindh <arvindh91@gmail.com> Signed-off-by: 0x6f736f646f <blackd0t@protonmail.com> Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> Signed-off-by: zhangchuanfeng <654300242@qq.com> Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> Signed-off-by: fbugarski <filipbugarski@gmail.com> Co-authored-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> Co-authored-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com> Co-authored-by: b1ackd0t <blackd0t@protonmail.com> Co-authored-by: Manuel Imperiale <manuel.Imperiale@gmail.com> Co-authored-by: 张传峰 <59160162+zhang-chuanfeng@users.noreply.github.com> Co-authored-by: Ivan Milošević <iva@blokovi.com> Co-authored-by: __touk__ <zerouali.t@gmail.com> Co-authored-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> Co-authored-by: stefankovacevic123 <jen2tri@gmail.com> Co-authored-by: ibalboteo <ivanbalboteo@gmail.com> Co-authored-by: Ivan Balboteo <ivan@submer.com> Co-authored-by: Hasan98-git <67228396+Hasan98-git@users.noreply.github.com> Co-authored-by: Hasan Tariq <hasant@plcgroup.com> Co-authored-by: fuzhy <fuzhy1997@outlook.com> Co-authored-by: Filip Bugarski <filipbugarski@gmail.com>
186 lines
4.5 KiB
Go
186 lines
4.5 KiB
Go
// Copyright (c) Mainflux
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package postgres
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
|
|
"github.com/jackc/pgerrcode"
|
|
"github.com/jackc/pgx/v5/pgconn"
|
|
"github.com/jmoiron/sqlx"
|
|
"github.com/mainflux/mainflux/pkg/errors"
|
|
"github.com/mainflux/mainflux/pkg/transformers/senml"
|
|
"github.com/mainflux/mainflux/readers"
|
|
)
|
|
|
|
var _ readers.MessageRepository = (*postgresRepository)(nil)
|
|
|
|
type postgresRepository struct {
|
|
db *sqlx.DB
|
|
}
|
|
|
|
// New returns new PostgreSQL writer.
|
|
func New(db *sqlx.DB) readers.MessageRepository {
|
|
return &postgresRepository{
|
|
db: db,
|
|
}
|
|
}
|
|
|
|
func (tr postgresRepository) ReadAll(chanID string, rpm readers.PageMetadata) (readers.MessagesPage, error) {
|
|
order := "time"
|
|
format := defTable
|
|
|
|
if rpm.Format != "" && rpm.Format != defTable {
|
|
order = "created"
|
|
format = rpm.Format
|
|
}
|
|
|
|
q := fmt.Sprintf(`SELECT * FROM %s
|
|
WHERE %s ORDER BY %s DESC
|
|
LIMIT :limit OFFSET :offset;`, format, fmtCondition(chanID, rpm), order)
|
|
|
|
params := map[string]interface{}{
|
|
"channel": chanID,
|
|
"limit": rpm.Limit,
|
|
"offset": rpm.Offset,
|
|
"subtopic": rpm.Subtopic,
|
|
"publisher": rpm.Publisher,
|
|
"name": rpm.Name,
|
|
"protocol": rpm.Protocol,
|
|
"value": rpm.Value,
|
|
"bool_value": rpm.BoolValue,
|
|
"string_value": rpm.StringValue,
|
|
"data_value": rpm.DataValue,
|
|
"from": rpm.From,
|
|
"to": rpm.To,
|
|
}
|
|
|
|
rows, err := tr.db.NamedQuery(q, params)
|
|
if err != nil {
|
|
if pgErr, ok := err.(*pgconn.PgError); ok {
|
|
if pgErr.Code == pgerrcode.UndefinedTable {
|
|
return readers.MessagesPage{}, nil
|
|
}
|
|
}
|
|
return readers.MessagesPage{}, errors.Wrap(readers.ErrReadMessages, err)
|
|
}
|
|
defer rows.Close()
|
|
|
|
page := readers.MessagesPage{
|
|
PageMetadata: rpm,
|
|
Messages: []readers.Message{},
|
|
}
|
|
switch format {
|
|
case defTable:
|
|
for rows.Next() {
|
|
msg := senmlMessage{Message: senml.Message{}}
|
|
if err := rows.StructScan(&msg); err != nil {
|
|
return readers.MessagesPage{}, errors.Wrap(readers.ErrReadMessages, err)
|
|
}
|
|
|
|
page.Messages = append(page.Messages, msg.Message)
|
|
}
|
|
default:
|
|
for rows.Next() {
|
|
msg := jsonMessage{}
|
|
if err := rows.StructScan(&msg); err != nil {
|
|
return readers.MessagesPage{}, errors.Wrap(readers.ErrReadMessages, err)
|
|
}
|
|
m, err := msg.toMap()
|
|
if err != nil {
|
|
return readers.MessagesPage{}, errors.Wrap(readers.ErrReadMessages, err)
|
|
}
|
|
page.Messages = append(page.Messages, m)
|
|
}
|
|
|
|
}
|
|
|
|
q = fmt.Sprintf(`SELECT COUNT(*) FROM %s WHERE %s;`, format, fmtCondition(chanID, rpm))
|
|
rows, err = tr.db.NamedQuery(q, params)
|
|
if err != nil {
|
|
return readers.MessagesPage{}, errors.Wrap(readers.ErrReadMessages, err)
|
|
}
|
|
defer rows.Close()
|
|
|
|
total := uint64(0)
|
|
if rows.Next() {
|
|
if err := rows.Scan(&total); err != nil {
|
|
return page, err
|
|
}
|
|
}
|
|
page.Total = total
|
|
|
|
return page, nil
|
|
}
|
|
|
|
func fmtCondition(chanID string, rpm readers.PageMetadata) string {
|
|
condition := `channel = :channel`
|
|
|
|
var query map[string]interface{}
|
|
meta, err := json.Marshal(rpm)
|
|
if err != nil {
|
|
return condition
|
|
}
|
|
json.Unmarshal(meta, &query)
|
|
|
|
for name := range query {
|
|
switch name {
|
|
case
|
|
"subtopic",
|
|
"publisher",
|
|
"name",
|
|
"protocol":
|
|
condition = fmt.Sprintf(`%s AND %s = :%s`, condition, name, name)
|
|
case "v":
|
|
comparator := readers.ParseValueComparator(query)
|
|
condition = fmt.Sprintf(`%s AND value %s :value`, condition, comparator)
|
|
case "vb":
|
|
condition = fmt.Sprintf(`%s AND bool_value = :bool_value`, condition)
|
|
case "vs":
|
|
condition = fmt.Sprintf(`%s AND string_value = :string_value`, condition)
|
|
case "vd":
|
|
condition = fmt.Sprintf(`%s AND data_value = :data_value`, condition)
|
|
case "from":
|
|
condition = fmt.Sprintf(`%s AND time >= :from`, condition)
|
|
case "to":
|
|
condition = fmt.Sprintf(`%s AND time < :to`, condition)
|
|
}
|
|
}
|
|
return condition
|
|
}
|
|
|
|
type senmlMessage struct {
|
|
ID string `db:"id"`
|
|
senml.Message
|
|
}
|
|
|
|
type jsonMessage struct {
|
|
ID string `db:"id"`
|
|
Channel string `db:"channel"`
|
|
Created int64 `db:"created"`
|
|
Subtopic string `db:"subtopic"`
|
|
Publisher string `db:"publisher"`
|
|
Protocol string `db:"protocol"`
|
|
Payload []byte `db:"payload"`
|
|
}
|
|
|
|
func (msg jsonMessage) toMap() (map[string]interface{}, error) {
|
|
ret := map[string]interface{}{
|
|
"id": msg.ID,
|
|
"channel": msg.Channel,
|
|
"created": msg.Created,
|
|
"subtopic": msg.Subtopic,
|
|
"publisher": msg.Publisher,
|
|
"protocol": msg.Protocol,
|
|
"payload": map[string]interface{}{},
|
|
}
|
|
pld := make(map[string]interface{})
|
|
if err := json.Unmarshal(msg.Payload, &pld); err != nil {
|
|
return nil, err
|
|
}
|
|
ret["payload"] = pld
|
|
return ret, nil
|
|
}
|