Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MF - 1416 - Queue Abstraction for Mainflux & RabbitMQ Support #1562

Merged
merged 87 commits into from
May 26, 2022

Conversation

rodneyosodo
Copy link
Member

What does this do?

Changes the messaging broker from NATS to RabittMQ

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

Resolves #1416

List any changes that modify/break current functionality

Have you included tests for your changes?

Not yet. Will include after approval

Did you document any new/modified functionality?

Not yet

Notes

N/A

@dborovcanin dborovcanin changed the title MF - 1416 - Changing from NATS broker to RabbitMQ broker MF - 1416 - Queue Abstraction for Mainflux & RabbitMQ Support Feb 9, 2022
@rodneyosodo rodneyosodo marked this pull request as ready for review February 10, 2022 15:52
@rodneyosodo rodneyosodo requested a review from a team as a code owner February 10, 2022 15:52
@drasko
Copy link
Contributor

drasko commented Feb 10, 2022

@0x6f736f646f CI is failing. I restarted it, but there seems to be a problem with rabbitmq tests.

@rodneyosodo
Copy link
Member Author

Working to resolve the issue

@@ -77,7 +77,7 @@ func NewPubSub(url string, logger log.Logger) (PubSub, error) {
channel: ch,
logger: logger,
subscriptions: make(map[string]bool),
done: make(chan error),
done: make(chan bool),
Copy link
Contributor

@manuio manuio Feb 11, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like the indentation is worng here

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved

done <- nil
}
<- done
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new line at the end of the file please

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved

@codecov-commenter
Copy link

codecov-commenter commented Feb 16, 2022

Codecov Report

Merging #1562 (57dd8e3) into master (163c1b2) will increase coverage by 0.07%.
The diff coverage is 69.46%.

❗ Current head 57dd8e3 differs from pull request most recent head 74c1126. Consider uploading reports for the commit 74c1126 to get more accurate results

@@            Coverage Diff             @@
##           master    #1562      +/-   ##
==========================================
+ Coverage   68.93%   69.01%   +0.07%     
==========================================
  Files         136      138       +2     
  Lines       11058    11169     +111     
==========================================
+ Hits         7623     7708      +85     
- Misses       2788     2796       +8     
- Partials      647      665      +18     
Impacted Files Coverage Δ
pkg/messaging/nats/publisher.go 52.38% <0.00%> (+26.06%) ⬆️
pkg/messaging/rabbitmq/pubsub.go 67.50% <67.50%> (ø)
pkg/messaging/rabbitmq/publisher.go 69.23% <69.23%> (ø)
pkg/messaging/nats/pubsub.go 68.49% <100.00%> (+3.43%) ⬆️
things/service.go 66.07% <0.00%> (+0.71%) ⬆️

📣 Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

// Copyright (c) Mainflux
// SPDX-License-Identifier: Apache-2.0

// Package rabbitmq hold the implementation of the Publisher and PubSub
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...holds the implementation....

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Comment on lines 19 to 30
ChansPrefix = "channels"
SubjectAllChannels = "channels.>"
RoutingKey = "application specific routing key for fancy topologies"
Exchange = "mainflux"
ExchangeKind = "fanout"
QueueDurability = true
QueueDelete = false
QueueExclusivity = false
QueueWait = false
ConsumerTag = "mainflux-consumer"
Mandatory = false
Immediate = false
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any reason these constants are exported?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No reason. I am changing that

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

const (
ChansPrefix = "channels"
SubjectAllChannels = "channels.>"
RoutingKey = "application specific routing key for fancy topologies"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please change the value of the routingKey.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Comment on lines 137 to 142
var wg sync.WaitGroup
wg.Add(1)
go func() {
ps.handle(msgs, handler)
wg.Done()
}()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no wg.Wait. What's the purpose of this WaitGroup?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the waitgroup. The wait command was blocking

queue amqp.Queue
channel *amqp.Channel
subscriptions map[string]bool
done chan bool
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this used?

Copy link
Member Author

@rodneyosodo rodneyosodo Apr 20, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What for, what's the purpose of the done channel?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When we finish processing messages from the delivery channel we send a nil value

wg.Done()
}()

ps.subscriptions[topic] = true
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this map be protected for concurrent read/write?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Usually by using a mutex.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

return ret, nil
}

func (ps *pubsub) Publish(topic string, msg messaging.Message) error {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no need to reimplement this in pubsub, you can use the implementation from the publisher.go:

type pubsub struct {
	publisher
	logger log.Logger
	queue  amqp.Queue
	subscriptions map[string]bool
	mutex sync.Mutex
}

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am getting this error panic: runtime error: invalid memory address or nil pointer dereferenc. I have resorted to another approach

Comment on lines 17 to 18
connection *amqp.Connection
channel *amqp.Channel
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is rather a simple struct, consider using conn and ch instead.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

if err := ps.channel.QueueBind(ps.queue.Name, routingKey, subject, false, nil); err != nil {
return err
}
msgs, err := ps.channel.Consume(ps.queue.Name, "", true, false, false, false, nil)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it OK to have an empty string for a consumer here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An empty string will cause the library to generate a unique identity for each consumer. Since we have no way to id the subscriber, I think that is the best fit for now.

}

func (ps *pubsub) Unsubscribe(topic string) error {
defer ps.channel.Cancel("", false)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does canceling for an empty consumer work? Did you test subscribing with multiple consumers and canceling one of them (add that in test cases, as well)?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Initially, I thought it would generate the id for the exact consumer but after going through the code it doesn't as referenced here

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we do a ps.ch.close() we close the whole channel so we can't subscribe to it. The best solution to this is if we are able to generate UUID so as to id the consumers so we can cancel the respective consumers. The current implementation works fine.

data = []byte("payload")
)

func TestPubsub(t *testing.T) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you take publisher implementation from publisher.go that's already tested in publisher_test.go, you can have only Subscriber (with Subscribe and Unsubscribe) methods tested here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implemented

)

func TestPubsub(t *testing.T) {
pubsubcases := []struct {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix typos: sub topic -> subtopic and Unsusbcribe -> Unsubscribe.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -36,7 +36,7 @@ type PubSub interface {
}

type pubsub struct {
conn *broker.Conn
publisher
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs variable name

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@drasko I suggested using the composition for reasons explained here.

@@ -42,7 +42,7 @@ type subscription struct {
}

type pubsub struct {
conn *broker.Conn
publisher publisher
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of having a publisher field, consider using a composition of publisher like:

type pubsub struct {
	publisher
	logger        log.Logger
	mu            sync.Mutex
	queue         string
	subscriptions map[string]map[string]subscription
}

This will enable using ps.conn rather than ps.publisher.conn later on.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is what we had initially but @drasko had suggested with name it.

I will stick with the earlier changes we had.

immediate,
amqp.Publishing{
Headers: amqp.Table{},
ContentType: "text/plain",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this type correct? Since our message is binary, it looks like application/octet-stream is more suitable for us.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes application/octet-stream is more suitable

SubjectAllChannels = "channels.>"
routingKey = "mainfluxkey"
exchange = "mainflux"
exchangeKind = "fanout"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you consider using topic kind? In that case, we have a queue per channel and the subtopic could be the routing key. This will have an impact on both publisher and subscriber implementation.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. That will be a good approach but it poses come challenges because when we do a subscribe the topic preprocessing is done by the client compared to how it is implemented on the publish method.

Copy link
Collaborator

@dborovcanin dborovcanin May 13, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand that we'll have to disassemble the topic we created before calling Publish/Subscribe methods, but it's worth trying it because topic manipulation is rather simple. Of course, queue manipulation is also something to take care of (creating a queue if it doesn't exist and removing it if there are no messages and subscribers left). I'm only afraid this topic processing is going to be too cryptic - using the first part of the topic as a queue (name), and the rest as a subtopic (routingKey).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From this reference we need to have multiple queues. The current implementation I have pushed is that we have direct exchange rather than topic exchange as direct is faster than topic exchange. We will have a queue per subscription.
Another way to implement it is to have queues based on services such as a coap queue and an MQTT queue. But this makes us not have many queues.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overview

RabbitMQ is somehow different to Nats and Kafka in that when a publisher is publishing a message on a topic they will publish the message to an exchange. The message will be published with a routing key. This routing key will direct the message to the different queues onto which the subscriber will consume the message. This is how the message flows

publisher -> exchange -> routingkey -> queue -> consumer -> subscriber


The publisher publishes the message to the broker.
The exchange receives the message being published and uses the routing key to route the message to a specific queue
The routing key is used to route the message to a specific queue
The queue temporarily stores messages for the consumer before consuming them

image

Exchange

When the exchange is declared we declare it with a specific kind. This means an exchange can either route messages based on topic, directly to queues or using message headers among other methods. We will be interested in the three routing techniques. The number of bindings increases the performance of topic routing. Fanout exchanges are very fast because there is no routing to process, but this changes if they are bound to a large number of queues. Direct exchanges are faster than topic exchanges if you don't need the wild card. We picked direct method as it strikes a balance between performance and reliability.

Possible implementations

One exchange one queue

  • If you only have one queue, you'll end up repeating the logic of deciding which code should process the message, when RabbitMQ can do it for you with routing.
  • RabbitMQ prefers many queues over a single large one
  • This option is ruled out

One exchange multiple queues

  • This is the most viable solution currently
  • This is because we will have single consumers on one queue
  • The advantage of a single topic exchange is that you get the benefits of both a Direct Exchange and a Fanout Exchange depending on the binding key used.
  • Further, configuration changes are easy to achieve and can often be done without disrupting any system processing at all

Multiple exchanges one queue

  • This option is ruled out based on having a single queue

Multiple exchanges multiple queues

  • This is the most preferred way of doing it as the system is highly decoupled.
  • If we cross the boundary and have many exchanges and many queues we are at the risk of the processes taking up more memory which may be significant but this really depends
  • If the msg.channel is not provided the message won't be consumed as we can subscribe to an empty topic

Wayforward

  • Currently, we have implemented Direct as the exchange type. So if a consumer needs to subscribe to multiple topics we would change this implementation to the exchange having topic as the exchange type
  • We have not explored exchange-to-exchange architectures

For more reference check out this article

@@ -189,7 +189,7 @@ func TestPubsub(t *testing.T) {
desc: "Susbcribe to a topic with empty id",
topic: fmt.Sprintf("%s.%s", chansPrefix, topic),
topicID: "",
errorMessage: errors.New("empty ID"),
errorMessage: errors.New("empty id"),
Copy link
Contributor

@manuio manuio May 12, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd create errors in a package for nats and rabbitmq and use them in the code and tests

Headers: amqp.Table{},
ContentType: "application/octet-stream",
AppId: "mainflux-publisher",
Body: []byte(data),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to cast, data is already []byte.

pubsub: false,
},
{
desc: "Susbcribe to a topic with a subtopic with an ID",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix typo Susbcribe. Check for other typos as well.

}
type pubsub struct {
publisher
queue string
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the purpose of this and is it even used?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is not being used

if err != nil {
return err
}
if err := ps.ch.QueueBind(queue.Name, queue.Name, exchangeName, false, nil); err != nil {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it safer to use topic instead of queue.Name? Is it possible that the broker will change the name passed in QueueDeclare?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The broker doesn't change the passed name

// SubjectAllChannels represents subject to subscribe for all the channels.
SubjectAllChannels = "channels.>"
exchangeName = "mainflux-exchange"
exchangeKind = "direct"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this used?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exchangeKind no. The others yes.

}

func (ps *pubsub) Unsubscribe(id, topic string) error {
defer ps.ch.Cancel(id, false)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we really cancel unconditionally?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the docs, this is what it says about the Cancel method

Only use this method to cleanly stop receiving deliveries from the server and cleanly shut down the consumer chan identified by this tag. Using this method and waiting for the remaining messages to flush from the consumer chan will ensure all messages received on the network will be delivered to the receiver of your consumer chan.

I believe this is what we want to achieve

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are, but we should first handle the internal logic, then try to cancel and handle the potential errors. What happens if we have the same consumer subscribed to multiple topics? Does it cancel them all (because it's the same consumer ID)?
For example, a nice solution would be to put this in the cancel method of subscriber when you subscribe, so that you don't even call it explicitly when unsubscribing. Something like:

	s[id] = subscription{
		cancel: func() error {
			if err := ps.ch.Cancel(id, false); err != nil {
				return err
			}
			return handler.Cancel()
		},
	}

manuio and others added 13 commits May 26, 2022 12:53
* MF-1263 - Mv duplicated errors to pkg/errors

Signed-off-by: Manuel Imperiale <[email protected]>

* Revert test build flags

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix merge

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix comment

Signed-off-by: Manuel Imperiale <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>
* NOISSUE - Fix auth members list response

Signed-off-by: Manuel Imperiale <[email protected]>

* Move group type next to page details

Signed-off-by: Manuel Imperiale <[email protected]>

* Rm membersRes

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>
…thz (absmach#1538)

* MF-1261 - Use StatusUnauthorized for authn and StatusForbidden for authz

Signed-off-by: Manuel Imperiale <[email protected]>

* ErrExternalKey typo

Signed-off-by: Manuel Imperiale <[email protected]>

* Rename ErrUnauthorizedAcces -> ErrAuthentication

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix bootstrap error

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix status code in openapi

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix test description

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix test description

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix test description

Signed-off-by: Manuel Imperiale <[email protected]>

* Add errors cases

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix status codes

Signed-off-by: Manuel Imperiale <[email protected]>

* Add gRPC stutus code

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix tests description

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix openapi and encodeError

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix grpc message

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix test descriptions

Signed-off-by: Manuel Imperiale <[email protected]>

* Revert sdk error

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>
* Use gomail package for sending emails

Signed-off-by: Ivan Milosevic <[email protected]>

* remove print err

Signed-off-by: Ivan Milosevic <[email protected]>

* Add vendor

Signed-off-by: Ivan Milosevic <[email protected]>

* Rename email structure
remove logger

Signed-off-by: Ivan Milosevic <[email protected]>

* typo in var name

Signed-off-by: Ivan Milosevic <[email protected]>

* rename var

Signed-off-by: Ivan Milosevic <[email protected]>

* remove MF_EMAIL_SECRET

Signed-off-by: Ivan Milosevic <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>
* correct suscriber interface validator + refactore token error handling

Signed-off-by: tzzed <[email protected]>

* apply review suggestion

Signed-off-by: tzzed <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>
absmach#1470)

* remove owner id

Signed-off-by: Mirko Teodorovic <[email protected]>

* add user auth for db reader

Signed-off-by: mteodor <[email protected]>

* add user auth for db reader

Signed-off-by: mteodor <[email protected]>

* enable mongodb reader for user token reading

Signed-off-by: mteodor <[email protected]>

* use uuid check for auth switch between thing key and user tok

Signed-off-by: mteodor <[email protected]>

* enable user token reading

Signed-off-by: mteodor <[email protected]>

* revert to correct version

Signed-off-by: mteodor <[email protected]>

* fix endpoint test, add additional tests

Signed-off-by: mteodor <[email protected]>

* remove logs,dead code

Signed-off-by: mteodor <[email protected]>

* fix logging messages

Signed-off-by: mteodor <[email protected]>

* remove auth interface, add authorization header type

Signed-off-by: mteodor <[email protected]>

* update api doc

Signed-off-by: mteodor <[email protected]>

* remove unused package

Signed-off-by: mteodor <[email protected]>

* some refactor of cases for authorization switch

Signed-off-by: mteodor <[email protected]>

* correct description in openapi

Signed-off-by: mteodor <[email protected]>

* fix endpoint test to match auth service change

Signed-off-by: mteodor <[email protected]>

* some rename

Signed-off-by: mteodor <[email protected]>

* initialize auth url

Signed-off-by: mteodor <[email protected]>

* add env variables for auth service

Signed-off-by: mteodor <[email protected]>

* fix spelling

Signed-off-by: mteodor <[email protected]>

* Things prefix and no prefix for Thing authorization, Bearer for user

Signed-off-by: mteodor <[email protected]>

* update readme file

Signed-off-by: mteodor <[email protected]>

* fix default things grpc port

Signed-off-by: mteodor <[email protected]>

* enable user reading for timescaledb

Signed-off-by: mteodor <[email protected]>

* remove not used error

Signed-off-by: mteodor <[email protected]>

* improve errors

Signed-off-by: mteodor <[email protected]>

* refactor authorize

Signed-off-by: mteodor <[email protected]>

* add chanID check

Signed-off-by: mteodor <[email protected]>

* inline some error checking

Signed-off-by: mteodor <[email protected]>

* fixing errors

Signed-off-by: mteodor <[email protected]>

* fixing errors

Signed-off-by: mteodor <[email protected]>

* improve test case description

Signed-off-by: mteodor <[email protected]>

* remove test code

Signed-off-by: mteodor <[email protected]>

* dont inline

Signed-off-by: mteodor <[email protected]>

* refactor a bit encodeError

Signed-off-by: mteodor <[email protected]>

* remove unused error

Signed-off-by: mteodor <[email protected]>

* remove unused error

Signed-off-by: mteodor <[email protected]>

* fix things auth grpc url

Signed-off-by: mteodor <[email protected]>

* rename variables for header prefix

Signed-off-by: mteodor <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>
@rodneyosodo
Copy link
Member Author

RabbitMQ expects that all client IDs are unique.

The consumer is identified by a unique string and scoped for all consumers on this channel.

So when we cancel the consumer we have a unique id that will only cancel one consumer. For our case, since we are passing in the unique ID, we need to generate a unique ID for every consumer or to create multiple channels per topic. Creating numerous channels is discouraged as by doing so it consumes system resources and makes it more difficult to configure firewalls

@dborovcanin
Copy link
Collaborator

RabbitMQ expects that all client IDs are unique.

The consumer is identified by a unique string and scoped for all consumers on this channel.

So when we cancel the consumer we have a unique id that will only cancel one consumer. For our case, since we are passing in the unique ID, we need to generate a unique ID for every consumer or to create multiple channels per topic. Creating numerous channels is discouraged as by doing so it consumes system resources and makes it more difficult to configure firewalls

OK. I let you choose between generating an ID and using a combination of client ID and topic.

@rodneyosodo
Copy link
Member Author

RabbitMQ expects that all client IDs are unique.

The consumer is identified by a unique string and scoped for all consumers on this channel.

So when we cancel the consumer we have a unique id that will only cancel one consumer. For our case, since we are passing in the unique ID, we need to generate a unique ID for every consumer or to create multiple channels per topic. Creating numerous channels is discouraged as by doing so it consumes system resources and makes it more difficult to configure firewalls

OK. I let you choose between generating an ID and using a combination of client ID and topic.

Which one do you suggest we use? I had started with using a combination of client ID and topic

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>
if err != nil {
return err
}
go ps.handle(msgs, handler)
s[id] = subscription{
cancel: func() error {
if err := ps.ch.Cancel(id, false); err != nil {
clientID := fmt.Sprintf("%s-%s", topic, id)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reuse clientID from L104.

@@ -27,9 +27,9 @@ var (
)

func TestPubsub(t *testing.T) {
err := pubsub.Subscribe(topicID, fmt.Sprintf("%s.%s", chansPrefix, topic), handler{})
err := pubsub.Subscribe(clientID, fmt.Sprintf("%s.%s", chansPrefix, topic), handler{})
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can still keep TestPublish and TestSubscribe with separate cases (but in this single file, that's OK).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here we are subscribing so that we can receive the published messages

topicID: "topicid1",
errorMessage: errors.New("already subscribed to topic"),
clientID: "clientid1",
errorMessage: nats.ErrAlreadySubscribed,
pubsub: true,
},
{
desc: "Unsubscribe to a topic with an ID",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo Unsubscribe **from**.... Same for all unsubscribe cases.

rodneyosodo and others added 4 commits May 26, 2022 20:04
Copy link
Contributor

@drasko drasko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@drasko drasko merged commit 55c4f08 into absmach:master May 26, 2022
arvindh123 added a commit to arvindh123/supermq that referenced this pull request Dec 12, 2022
…h#1562)

* MF-1263 - Move repeating errors to the separate package (absmach#1540)

* MF-1263 - Mv duplicated errors to pkg/errors

Signed-off-by: Manuel Imperiale <[email protected]>

* Revert test build flags

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix merge

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix comment

Signed-off-by: Manuel Imperiale <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Fix auth members list response (absmach#1555)

* NOISSUE - Fix auth members list response

Signed-off-by: Manuel Imperiale <[email protected]>

* Move group type next to page details

Signed-off-by: Manuel Imperiale <[email protected]>

* Rm membersRes

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1261 - Use StatusUnauthorized for authn and StatusForbidden for authz (absmach#1538)

* MF-1261 - Use StatusUnauthorized for authn and StatusForbidden for authz

Signed-off-by: Manuel Imperiale <[email protected]>

* ErrExternalKey typo

Signed-off-by: Manuel Imperiale <[email protected]>

* Rename ErrUnauthorizedAcces -> ErrAuthentication

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix bootstrap error

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix status code in openapi

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix test description

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix test description

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix test description

Signed-off-by: Manuel Imperiale <[email protected]>

* Add errors cases

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix status codes

Signed-off-by: Manuel Imperiale <[email protected]>

* Add gRPC stutus code

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix tests description

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix openapi and encodeError

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix grpc message

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix test descriptions

Signed-off-by: Manuel Imperiale <[email protected]>

* Revert sdk error

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1059 - Add TLS support for email (absmach#1560)

* Use gomail package for sending emails

Signed-off-by: Ivan Milosevic <[email protected]>

* remove print err

Signed-off-by: Ivan Milosevic <[email protected]>

* Add vendor

Signed-off-by: Ivan Milosevic <[email protected]>

* Rename email structure
remove logger

Signed-off-by: Ivan Milosevic <[email protected]>

* typo in var name

Signed-off-by: Ivan Milosevic <[email protected]>

* rename var

Signed-off-by: Ivan Milosevic <[email protected]>

* remove MF_EMAIL_SECRET

Signed-off-by: Ivan Milosevic <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Refactor MQTT subscriber (absmach#1561)

* correct suscriber interface validator + refactore token error handling

Signed-off-by: tzzed <[email protected]>

* apply review suggestion

Signed-off-by: tzzed <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1257 - Access messages from readers endpoint with user access token (absmach#1470)

* remove owner id

Signed-off-by: Mirko Teodorovic <[email protected]>

* add user auth for db reader

Signed-off-by: mteodor <[email protected]>

* add user auth for db reader

Signed-off-by: mteodor <[email protected]>

* enable mongodb reader for user token reading

Signed-off-by: mteodor <[email protected]>

* use uuid check for auth switch between thing key and user tok

Signed-off-by: mteodor <[email protected]>

* enable user token reading

Signed-off-by: mteodor <[email protected]>

* revert to correct version

Signed-off-by: mteodor <[email protected]>

* fix endpoint test, add additional tests

Signed-off-by: mteodor <[email protected]>

* remove logs,dead code

Signed-off-by: mteodor <[email protected]>

* fix logging messages

Signed-off-by: mteodor <[email protected]>

* remove auth interface, add authorization header type

Signed-off-by: mteodor <[email protected]>

* update api doc

Signed-off-by: mteodor <[email protected]>

* remove unused package

Signed-off-by: mteodor <[email protected]>

* some refactor of cases for authorization switch

Signed-off-by: mteodor <[email protected]>

* correct description in openapi

Signed-off-by: mteodor <[email protected]>

* fix endpoint test to match auth service change

Signed-off-by: mteodor <[email protected]>

* some rename

Signed-off-by: mteodor <[email protected]>

* initialize auth url

Signed-off-by: mteodor <[email protected]>

* add env variables for auth service

Signed-off-by: mteodor <[email protected]>

* fix spelling

Signed-off-by: mteodor <[email protected]>

* Things prefix and no prefix for Thing authorization, Bearer for user

Signed-off-by: mteodor <[email protected]>

* update readme file

Signed-off-by: mteodor <[email protected]>

* fix default things grpc port

Signed-off-by: mteodor <[email protected]>

* enable user reading for timescaledb

Signed-off-by: mteodor <[email protected]>

* remove not used error

Signed-off-by: mteodor <[email protected]>

* improve errors

Signed-off-by: mteodor <[email protected]>

* refactor authorize

Signed-off-by: mteodor <[email protected]>

* add chanID check

Signed-off-by: mteodor <[email protected]>

* inline some error checking

Signed-off-by: mteodor <[email protected]>

* fixing errors

Signed-off-by: mteodor <[email protected]>

* fixing errors

Signed-off-by: mteodor <[email protected]>

* improve test case description

Signed-off-by: mteodor <[email protected]>

* remove test code

Signed-off-by: mteodor <[email protected]>

* dont inline

Signed-off-by: mteodor <[email protected]>

* refactor a bit encodeError

Signed-off-by: mteodor <[email protected]>

* remove unused error

Signed-off-by: mteodor <[email protected]>

* remove unused error

Signed-off-by: mteodor <[email protected]>

* fix things auth grpc url

Signed-off-by: mteodor <[email protected]>

* rename variables for header prefix

Signed-off-by: mteodor <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* Initial commit of adding rabbitmq broker

Signed-off-by: 0x6f736f646f <[email protected]>

* Initial commit of adding rabbitmq broker

Signed-off-by: 0x6f736f646f <[email protected]>

* Initial commit for tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Bump up tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Add more tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Add go routines

Signed-off-by: 0x6f736f646f <[email protected]>

* Initial commit of adding rabbitmq broker

Signed-off-by: 0x6f736f646f <[email protected]>

* Initial commit for tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Bump up tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Add more tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Add go routines

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix with wait groups

Signed-off-by: 0x6f736f646f <[email protected]>

* unsubscribe to stop delivering messages

Signed-off-by: 0x6f736f646f <[email protected]>

* Remove exclusivity

Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1551 - Fix Cobra usage commands and clean unnecessary struct types (absmach#1558)

* MF-1551 - Fix Cobra usage commands and clean unnecessary struct types

Signed-off-by: Manuel Imperiale <[email protected]>

* Use linux syntax for cmd usage description

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix cmd.Use

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Separate Keto hosts for read and write (absmach#1563)

* Separate keto hosts for read and write

Signed-off-by: Ivan Milosevic <[email protected]>

* update readme with new envars

Signed-off-by: Ivan Milosevic <[email protected]>

* rename read connection name

Signed-off-by: Ivan Milosevic <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Co-authored-by: Drasko DRASKOVIC <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* Update dependencies (absmach#1564)

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1240 - Return to service transport layer only service errors (absmach#1559)

* MF-1240 - Return to service transport layer only service errors

Signed-off-by: Manuel Imperiale <[email protected]>

* Remove unecessary errors

Signed-off-by: Manuel Imperiale <[email protected]>

* Rm duplicated errors and fix transport

Signed-off-by: Manuel Imperiale <[email protected]>

* Revert http endpoint_test

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix conflict

Signed-off-by: Manuel Imperiale <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* Implement cancel mechanisms

Signed-off-by: 0x6f736f646f <[email protected]>

* Queuename as parameter

Signed-off-by: 0x6f736f646f <[email protected]>

* Queuename as parameter

Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1469 - Indicate proper authentication scheme in Authorization header (absmach#1523)

* MF-1469 - Indicate proper authentication scheme in Authorization header

Signed-off-by: Stefan Kovacevic <[email protected]>

* Fixing the remarks on the last push

Signed-off-by: Stefan Kovacevic <[email protected]>

* Remove Bearer prefix in all services and fix tests

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix remarks

Signed-off-by: Manuel Imperiale <[email protected]>

Co-authored-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Add nats wrapper for COAP (absmach#1569)

* Add nats wrapper for COAP

Signed-off-by: 0x6f736f646f <[email protected]>

* Pass pubsub as argument

Signed-off-by: 0x6f736f646f <[email protected]>

* Defer close connection

Signed-off-by: 0x6f736f646f <[email protected]>

* Defer close connection

Signed-off-by: 0x6f736f646f <[email protected]>

* Rename endpoint to topic

Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1348 - Add transport errors logging (absmach#1544)

* MF-1348 - Add go-kit transport level logging

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix reviews

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix reviews

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix merge

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix remark

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix go test flags

Signed-off-by: Manuel Imperiale <[email protected]>

* Use httputil errors in things and http service

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix SDK tests

Signed-off-by: Manuel Imperiale <[email protected]>

* Use httputil errors in certs and provision service

Signed-off-by: Manuel Imperiale <[email protected]>

* Use httputil errors in consumers service

Signed-off-by: Manuel Imperiale <[email protected]>

* General renaming and add ErrMissingToken

Signed-off-by: Manuel Imperiale <[email protected]>

* Rename httputil -> apiutil and use errors in users servive

Signed-off-by: Manuel Imperiale <[email protected]>

* Use apiutil errors in auth, bootstrap, readers, things and twins

Signed-off-by: Manuel Imperiale <[email protected]>

* Replace errors.Contain by comparison

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix remarks

Signed-off-by: Manuel Imperiale <[email protected]>

* Simplify validateID

Signed-off-by: Manuel Imperiale <[email protected]>

* Simplify validateID

Signed-off-by: Manuel Imperiale <[email protected]>

* Simplify and rename ExtractAuthToken -> ExtractBearerToken

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix readers

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix auth key test and remarks

Signed-off-by: Manuel Imperiale <[email protected]>

* Improve comment

Signed-off-by: Manuel Imperiale <[email protected]>

* Simplify validateUUID check

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1567 - Use Bearer, Thing or Basic scheme in Authorization header (absmach#1568)

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1565 - Document Bearer, Thing and Basic Authorization header (absmach#1566)

* MF-1565 - Document Bearer Authorization header

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix auth, bootstrap, http and readers openapi

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix openapi

Signed-off-by: Manuel Imperiale <[email protected]>

* Add enc key for bootstrap

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>

* Use global security

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix bearer formats

Signed-off-by: Manuel Imperiale <[email protected]>

* Polish descriptions

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix boostrap and typo

Signed-off-by: Manuel Imperiale <[email protected]>

Co-authored-by: Drasko DRASKOVIC <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1575 Add 'Name' field to ListMembers response in things svc (absmach#1576)

Signed-off-by: Ivan Balboteo <[email protected]>

Co-authored-by: Ivan Balboteo <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1580 - Influxdb Writer changes format of update-time to string (absmach#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 <[email protected]>

* - 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 <[email protected]>

* Fix InflxuDB readers

Signed-off-by: dusanb94 <[email protected]>

Co-authored-by: Hasan Tariq <[email protected]>
Co-authored-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Unify MF_INFLUX_READER_DB_HOST and MF_INFLUX_WRITER_DB_HOST envars (absmach#1585)

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Fix CoAP adapter (absmach#1572)

* Revert "NOISSUE - Add nats wrapper for COAP (absmach#1569)"

This reverts commit cc5d519.

Signed-off-by: dusanb94 <[email protected]>

* Fix CoAP adapter

Signed-off-by: dusanb94 <[email protected]>

* Update CoAP observation cancel

Signed-off-by: dusanb94 <[email protected]>

* Fix observe

Signed-off-by: dusanb94 <[email protected]>

* Fix GET handling

Signed-off-by: dusanb94 <[email protected]>

* Revert authorization

Signed-off-by: dusanb94 <[email protected]>

* Use constants instead of magic numbers

Signed-off-by: dusanb94 <[email protected]>

* Remove an empty line

Signed-off-by: dusanb94 <[email protected]>

* Extract special observe value to constant

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1582 - Fix lora-adapter MQTT client (absmach#1583)

* MF-1582 - Fix lora-adapter MQTT clien

Signed-off-by: Manuel Imperiale <[email protected]>

* Add timeout config to the mqtt subscriber

Signed-off-by: Manuel Imperiale <[email protected]>

* Rm comment

Signed-off-by: Manuel Imperiale <[email protected]>

* Add sub timeout

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Update changelog and readme for release 0.13.0 (absmach#1592)

* Update release example

Signed-off-by: dusanb94 <[email protected]>

* Update changelog and examples for 0.13.0 release

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* Update VerneMQ release (absmach#1593)

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Update changelog for release 0.13.0 (absmach#1595)

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* unexport constants

Signed-off-by: 0x6f736f646f <[email protected]>

* Change routingkey

Signed-off-by: 0x6f736f646f <[email protected]>

* Remove wait groups

Signed-off-by: 0x6f736f646f <[email protected]>

* protecting map

Signed-off-by: 0x6f736f646f <[email protected]>

* Add publisher to pubsub

Signed-off-by: 0x6f736f646f <[email protected]>

* Change proto library

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix typos

Signed-off-by: 0x6f736f646f <[email protected]>

* Reduce pubsub tests based on implementation

Signed-off-by: 0x6f736f646f <[email protected]>

* Remove channel cancel

Signed-off-by: 0x6f736f646f <[email protected]>

* Export constant

Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Move invariant statements out of loop for cassandra-writer (absmach#1596)

Signed-off-by: fuzhy <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* Embedding publisher into pubsub

Signed-off-by: 0x6f736f646f <[email protected]>

* Naming publisher

Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Fix Nginx entrypoint script (absmach#1597)

* Fix Nginx entrypoint script

Signed-off-by: dusanb94 <[email protected]>

* Update dependencies

Signed-off-by: dusanb94 <[email protected]>

* Fix NginX entrypoint

Signed-off-by: dusanb94 <[email protected]>

* Revert Makefile changes

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1525 - Add graceful stop for HTTP and GRPC servers (absmach#1548)

* Add : errgroup to cmd/auth

Signed-off-by: Arvindh <[email protected]>

* Add : Handle graceful stop for auth service
Remove : errgroups from auth service

Signed-off-by: Arvindh <[email protected]>

* Add : Wait till server shutdown

Signed-off-by: Arvindh <[email protected]>

* Change : instead of waitgroup changed to errgroups

Signed-off-by: Arvindh <[email protected]>

* change : KillSignalHandler return type to error

Signed-off-by: Arvindh <[email protected]>

* Empty Commit

Signed-off-by: Arvindh <[email protected]>

* Add : Context to http server shutdown
Rename : varaible from proto to protocol

Signed-off-by: Arvindh <[email protected]>

* change : to default log level

Signed-off-by: Arvindh <[email protected]>

* Add : Sign-off

Signed-off-by: Arvindh <[email protected]>

* Add: graceful stop of http and grpc server

Signed-off-by: Arvindh <[email protected]>

* Fix: typos and caps

Signed-off-by: Arvindh <[email protected]>

* Add: Signed-off

Signed-off-by: Arvindh <[email protected]>

* Rename: Func KillSignalHandler to SignalHandler
Add: SIGABRT

Signed-off-by: Arvindh <[email protected]>

* Fix: auth service

Signed-off-by: Arvindh <[email protected]>

* Add: timeout for grpc gracefulstop
Fix: typos

Signed-off-by: Arvindh <[email protected]>

* Add: .vscode folder to git ignore

Signed-off-by: Arvindh <[email protected]>

* change: variable name to stopWaitTime

Signed-off-by: Arvindh <[email protected]>

* remove: .vscode folder

Signed-off-by: Arvindh <[email protected]>

* remove: .vscode from .gitignore

Signed-off-by: Arvindh <[email protected]>

* Add : logger to handlers

Signed-off-by: Arvindh <[email protected]>

* Add : New line at end of .gitignore file

Signed-off-by: Arvindh <[email protected]>

* Fix : variable naming
Add : graceful stop for timescale

Signed-off-by: Arvindh <[email protected]>

* Remove : unsued NATS library from import

Signed-off-by: Arvindh <[email protected]>

* Move: "https" and "https" to moved to const var

Signed-off-by: Arvindh <[email protected]>

* Move: "http" and "https" to moved to const var

Signed-off-by: Arvindh <[email protected]>

* update:  branch with master

Signed-off-by: Arvindh <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Co-authored-by: Drasko DRASKOVIC <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1588 - Update Subscriber interface (absmach#1598)

* Initial commit

Signed-off-by: 0x6f736f646f <[email protected]>

* Update subscriber interface

Signed-off-by: dusanb94 <[email protected]>

* Add tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Add tests

Signed-off-by: 0x6f736f646f <[email protected]>

* check subscription map

Signed-off-by: 0x6f736f646f <[email protected]>

* Check topic id after topic

Signed-off-by: 0x6f736f646f <[email protected]>

* reword description

Signed-off-by: 0x6f736f646f <[email protected]>

* Setup empty queue

Signed-off-by: 0x6f736f646f <[email protected]>

* Change mqtt implementation

Signed-off-by: 0x6f736f646f <[email protected]>

* Switch statements

Signed-off-by: 0x6f736f646f <[email protected]>

* Simplify

Signed-off-by: 0x6f736f646f <[email protected]>

* Change mqtt subscriber

Signed-off-by: 0x6f736f646f <[email protected]>

* Protect subscription map

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix subscription

Signed-off-by: 0x6f736f646f <[email protected]>

* Set client id

Signed-off-by: 0x6f736f646f <[email protected]>

* Format

Signed-off-by: 0x6f736f646f <[email protected]>

* Change delete method

Signed-off-by: 0x6f736f646f <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* Update rabbitmq subscriber interface

Signed-off-by: 0x6f736f646f <[email protected]>

* using publisher composition

Signed-off-by: 0x6f736f646f <[email protected]>

* Change contenttype

Signed-off-by: 0x6f736f646f <[email protected]>

* rename topic for publish and subscribe

Signed-off-by: 0x6f736f646f <[email protected]>

* Change errors to lower case

Signed-off-by: 0x6f736f646f <[email protected]>

* Change errors to lower case

Signed-off-by: 0x6f736f646f <[email protected]>

* export errors

Signed-off-by: 0x6f736f646f <[email protected]>

* MF - 1590 - Fix fetching list of users with a zero limit (absmach#1594)

* Add max and min limit size

Signed-off-by: 0x6f736f646f <[email protected]>

* Format

Signed-off-by: 0x6f736f646f <[email protected]>

* Format

Signed-off-by: 0x6f736f646f <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Retrieve client key on cert issuing (absmach#1607)

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* fix bug (absmach#1604)

Signed-off-by: zhangchuanfeng <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* queue per subscription

Signed-off-by: 0x6f736f646f <[email protected]>

* queue per subscription

Signed-off-by: 0x6f736f646f <[email protected]>

* Change routing method

Signed-off-by: 0x6f736f646f <[email protected]>

* Direct method with one exchange to many queues, one consumer per queue

Signed-off-by: 0x6f736f646f <[email protected]>

* ♻️ Not casting data

Signed-off-by: 0x6f736f646f <[email protected]>

* ✏️ Fix typo

Signed-off-by: 0x6f736f646f <[email protected]>

* ♻️ remove passed queue name

Signed-off-by: 0x6f736f646f <[email protected]>

* 🔥 removing echange kind

Signed-off-by: 0x6f736f646f <[email protected]>

* Combine tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Refactor unsubscribe method

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix merge conflict

Signed-off-by: 0x6f736f646f <[email protected]>

* ✅ sub and unsub to dummy topic

Signed-off-by: 0x6f736f646f <[email protected]>

* generate client id from topic and ID

Signed-off-by: 0x6f736f646f <[email protected]>

* Rename topicID to clientID

Signed-off-by: 0x6f736f646f <[email protected]>

* update tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Reuse clientID

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix typos

Signed-off-by: 0x6f736f646f <[email protected]>

* Seperate testpublish and testpubsub

Signed-off-by: 0x6f736f646f <[email protected]>

Co-authored-by: Manuel Imperiale <[email protected]>
Co-authored-by: Dušan Borovčanin <[email protected]>
Co-authored-by: Ivan Milošević <[email protected]>
Co-authored-by: __touk__ <[email protected]>
Co-authored-by: Mirko Teodorovic <[email protected]>
Co-authored-by: Drasko DRASKOVIC <[email protected]>
Co-authored-by: stefankovacevic123 <[email protected]>
Co-authored-by: ibalboteo <[email protected]>
Co-authored-by: Ivan Balboteo <[email protected]>
Co-authored-by: Hasan98-git <[email protected]>
Co-authored-by: Hasan Tariq <[email protected]>
Co-authored-by: fuzhy <[email protected]>
Co-authored-by: Arvindh <[email protected]>
Co-authored-by: 张传峰 <[email protected]>
Signed-off-by: Arvindh <[email protected]>
drasko added a commit that referenced this pull request Feb 3, 2023
…#1601)

* MF-1525 - Add graceful stop for HTTP and GRPC servers (#1548)

* Add : errgroup to cmd/auth

Signed-off-by: Arvindh <[email protected]>

* Add : Handle graceful stop for auth service
Remove : errgroups from auth service

Signed-off-by: Arvindh <[email protected]>

* Add : Wait till server shutdown

Signed-off-by: Arvindh <[email protected]>

* Change : instead of waitgroup changed to errgroups

Signed-off-by: Arvindh <[email protected]>

* change : KillSignalHandler return type to error

Signed-off-by: Arvindh <[email protected]>

* Empty Commit

Signed-off-by: Arvindh <[email protected]>

* Add : Context to http server shutdown
Rename : varaible from proto to protocol

Signed-off-by: Arvindh <[email protected]>

* change : to default log level

Signed-off-by: Arvindh <[email protected]>

* Add : Sign-off

Signed-off-by: Arvindh <[email protected]>

* Add: graceful stop of http and grpc server

Signed-off-by: Arvindh <[email protected]>

* Fix: typos and caps

Signed-off-by: Arvindh <[email protected]>

* Add: Signed-off

Signed-off-by: Arvindh <[email protected]>

* Rename: Func KillSignalHandler to SignalHandler
Add: SIGABRT

Signed-off-by: Arvindh <[email protected]>

* Fix: auth service

Signed-off-by: Arvindh <[email protected]>

* Add: timeout for grpc gracefulstop
Fix: typos

Signed-off-by: Arvindh <[email protected]>

* Add: .vscode folder to git ignore

Signed-off-by: Arvindh <[email protected]>

* change: variable name to stopWaitTime

Signed-off-by: Arvindh <[email protected]>

* remove: .vscode folder

Signed-off-by: Arvindh <[email protected]>

* remove: .vscode from .gitignore

Signed-off-by: Arvindh <[email protected]>

* Add : logger to handlers

Signed-off-by: Arvindh <[email protected]>

* Add : New line at end of .gitignore file

Signed-off-by: Arvindh <[email protected]>

* Fix : variable naming
Add : graceful stop for timescale

Signed-off-by: Arvindh <[email protected]>

* Remove : unsued NATS library from import

Signed-off-by: Arvindh <[email protected]>

* Move: "https" and "https" to moved to const var

Signed-off-by: Arvindh <[email protected]>

* Move: "http" and "https" to moved to const var

Signed-off-by: Arvindh <[email protected]>

* update:  branch with master

Signed-off-by: Arvindh <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Co-authored-by: Drasko DRASKOVIC <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* Add: httpserver and grpcsever

Signed-off-by: Arvindh <[email protected]>

* MF-1588 - Update Subscriber interface (#1598)

* Initial commit

Signed-off-by: 0x6f736f646f <[email protected]>

* Update subscriber interface

Signed-off-by: dusanb94 <[email protected]>

* Add tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Add tests

Signed-off-by: 0x6f736f646f <[email protected]>

* check subscription map

Signed-off-by: 0x6f736f646f <[email protected]>

* Check topic id after topic

Signed-off-by: 0x6f736f646f <[email protected]>

* reword description

Signed-off-by: 0x6f736f646f <[email protected]>

* Setup empty queue

Signed-off-by: 0x6f736f646f <[email protected]>

* Change mqtt implementation

Signed-off-by: 0x6f736f646f <[email protected]>

* Switch statements

Signed-off-by: 0x6f736f646f <[email protected]>

* Simplify

Signed-off-by: 0x6f736f646f <[email protected]>

* Change mqtt subscriber

Signed-off-by: 0x6f736f646f <[email protected]>

* Protect subscription map

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix subscription

Signed-off-by: 0x6f736f646f <[email protected]>

* Set client id

Signed-off-by: 0x6f736f646f <[email protected]>

* Format

Signed-off-by: 0x6f736f646f <[email protected]>

* Change delete method

Signed-off-by: 0x6f736f646f <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* move http and grpc server functions

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* Move Keto and Jaeger

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* Add metrics and auth

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* MF - 1590 - Fix fetching list of users with a zero limit (#1594)

* Add max and min limit size

Signed-off-by: 0x6f736f646f <[email protected]>

* Format

Signed-off-by: 0x6f736f646f <[email protected]>

* Format

Signed-off-by: 0x6f736f646f <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* NOISSUE - Retrieve client key on cert issuing (#1607)

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* fix bug (#1604)

Signed-off-by: zhangchuanfeng <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* Rename service name

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* Change metrics method

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* Rename

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* Rename

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* Rename package name

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* :truck: Rename Keto and Jaeger functions

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* unify grpc service

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* :truck: rename apiutil to initutil

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* :sparkles: coap server

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* :truck: rename

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* :truck: Rename

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* :recycle: rename packages

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* :recycle: remove mf prefix

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* :truck: rename server error

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* remove dead code

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* 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 <[email protected]>

* Revert test build flags

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix merge

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix comment

Signed-off-by: Manuel Imperiale <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Fix auth members list response (#1555)

* NOISSUE - Fix auth members list response

Signed-off-by: Manuel Imperiale <[email protected]>

* Move group type next to page details

Signed-off-by: Manuel Imperiale <[email protected]>

* Rm membersRes

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* 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 <[email protected]>

* ErrExternalKey typo

Signed-off-by: Manuel Imperiale <[email protected]>

* Rename ErrUnauthorizedAcces -> ErrAuthentication

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix bootstrap error

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix status code in openapi

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix test description

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix test description

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix test description

Signed-off-by: Manuel Imperiale <[email protected]>

* Add errors cases

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix status codes

Signed-off-by: Manuel Imperiale <[email protected]>

* Add gRPC stutus code

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix tests description

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix openapi and encodeError

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix grpc message

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix test descriptions

Signed-off-by: Manuel Imperiale <[email protected]>

* Revert sdk error

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1059 - Add TLS support for email (#1560)

* Use gomail package for sending emails

Signed-off-by: Ivan Milosevic <[email protected]>

* remove print err

Signed-off-by: Ivan Milosevic <[email protected]>

* Add vendor

Signed-off-by: Ivan Milosevic <[email protected]>

* Rename email structure
remove logger

Signed-off-by: Ivan Milosevic <[email protected]>

* typo in var name

Signed-off-by: Ivan Milosevic <[email protected]>

* rename var

Signed-off-by: Ivan Milosevic <[email protected]>

* remove MF_EMAIL_SECRET

Signed-off-by: Ivan Milosevic <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Refactor MQTT subscriber (#1561)

* correct suscriber interface validator + refactore token error handling

Signed-off-by: tzzed <[email protected]>

* apply review suggestion

Signed-off-by: tzzed <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1257 - Access messages from readers endpoint with user access token (#1470)

* remove owner id

Signed-off-by: Mirko Teodorovic <[email protected]>

* add user auth for db reader

Signed-off-by: mteodor <[email protected]>

* add user auth for db reader

Signed-off-by: mteodor <[email protected]>

* enable mongodb reader for user token reading

Signed-off-by: mteodor <[email protected]>

* use uuid check for auth switch between thing key and user tok

Signed-off-by: mteodor <[email protected]>

* enable user token reading

Signed-off-by: mteodor <[email protected]>

* revert to correct version

Signed-off-by: mteodor <[email protected]>

* fix endpoint test, add additional tests

Signed-off-by: mteodor <[email protected]>

* remove logs,dead code

Signed-off-by: mteodor <[email protected]>

* fix logging messages

Signed-off-by: mteodor <[email protected]>

* remove auth interface, add authorization header type

Signed-off-by: mteodor <[email protected]>

* update api doc

Signed-off-by: mteodor <[email protected]>

* remove unused package

Signed-off-by: mteodor <[email protected]>

* some refactor of cases for authorization switch

Signed-off-by: mteodor <[email protected]>

* correct description in openapi

Signed-off-by: mteodor <[email protected]>

* fix endpoint test to match auth service change

Signed-off-by: mteodor <[email protected]>

* some rename

Signed-off-by: mteodor <[email protected]>

* initialize auth url

Signed-off-by: mteodor <[email protected]>

* add env variables for auth service

Signed-off-by: mteodor <[email protected]>

* fix spelling

Signed-off-by: mteodor <[email protected]>

* Things prefix and no prefix for Thing authorization, Bearer for user

Signed-off-by: mteodor <[email protected]>

* update readme file

Signed-off-by: mteodor <[email protected]>

* fix default things grpc port

Signed-off-by: mteodor <[email protected]>

* enable user reading for timescaledb

Signed-off-by: mteodor <[email protected]>

* remove not used error

Signed-off-by: mteodor <[email protected]>

* improve errors

Signed-off-by: mteodor <[email protected]>

* refactor authorize

Signed-off-by: mteodor <[email protected]>

* add chanID check

Signed-off-by: mteodor <[email protected]>

* inline some error checking

Signed-off-by: mteodor <[email protected]>

* fixing errors

Signed-off-by: mteodor <[email protected]>

* fixing errors

Signed-off-by: mteodor <[email protected]>

* improve test case description

Signed-off-by: mteodor <[email protected]>

* remove test code

Signed-off-by: mteodor <[email protected]>

* dont inline

Signed-off-by: mteodor <[email protected]>

* refactor a bit encodeError

Signed-off-by: mteodor <[email protected]>

* remove unused error

Signed-off-by: mteodor <[email protected]>

* remove unused error

Signed-off-by: mteodor <[email protected]>

* fix things auth grpc url

Signed-off-by: mteodor <[email protected]>

* rename variables for header prefix

Signed-off-by: mteodor <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* Initial commit of adding rabbitmq broker

Signed-off-by: 0x6f736f646f <[email protected]>

* Initial commit of adding rabbitmq broker

Signed-off-by: 0x6f736f646f <[email protected]>

* Initial commit for tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Bump up tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Add more tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Add go routines

Signed-off-by: 0x6f736f646f <[email protected]>

* Initial commit of adding rabbitmq broker

Signed-off-by: 0x6f736f646f <[email protected]>

* Initial commit for tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Bump up tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Add more tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Add go routines

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix with wait groups

Signed-off-by: 0x6f736f646f <[email protected]>

* unsubscribe to stop delivering messages

Signed-off-by: 0x6f736f646f <[email protected]>

* Remove exclusivity

Signed-off-by: 0x6f736f646f <[email protected]>

* 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 <[email protected]>

* Use linux syntax for cmd usage description

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix cmd.Use

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Separate Keto hosts for read and write (#1563)

* Separate keto hosts for read and write

Signed-off-by: Ivan Milosevic <[email protected]>

* update readme with new envars

Signed-off-by: Ivan Milosevic <[email protected]>

* rename read connection name

Signed-off-by: Ivan Milosevic <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Co-authored-by: Drasko DRASKOVIC <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* Update dependencies (#1564)

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* 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 <[email protected]>

* Remove unecessary errors

Signed-off-by: Manuel Imperiale <[email protected]>

* Rm duplicated errors and fix transport

Signed-off-by: Manuel Imperiale <[email protected]>

* Revert http endpoint_test

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix conflict

Signed-off-by: Manuel Imperiale <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* Implement cancel mechanisms

Signed-off-by: 0x6f736f646f <[email protected]>

* Queuename as parameter

Signed-off-by: 0x6f736f646f <[email protected]>

* Queuename as parameter

Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1469 - Indicate proper authentication scheme in Authorization header (#1523)

* MF-1469 - Indicate proper authentication scheme in Authorization header

Signed-off-by: Stefan Kovacevic <[email protected]>

* Fixing the remarks on the last push

Signed-off-by: Stefan Kovacevic <[email protected]>

* Remove Bearer prefix in all services and fix tests

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix remarks

Signed-off-by: Manuel Imperiale <[email protected]>

Co-authored-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Add nats wrapper for COAP (#1569)

* Add nats wrapper for COAP

Signed-off-by: 0x6f736f646f <[email protected]>

* Pass pubsub as argument

Signed-off-by: 0x6f736f646f <[email protected]>

* Defer close connection

Signed-off-by: 0x6f736f646f <[email protected]>

* Defer close connection

Signed-off-by: 0x6f736f646f <[email protected]>

* Rename endpoint to topic

Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1348 - Add transport errors logging (#1544)

* MF-1348 - Add go-kit transport level logging

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix reviews

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix reviews

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix merge

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix remark

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix go test flags

Signed-off-by: Manuel Imperiale <[email protected]>

* Use httputil errors in things and http service

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix SDK tests

Signed-off-by: Manuel Imperiale <[email protected]>

* Use httputil errors in certs and provision service

Signed-off-by: Manuel Imperiale <[email protected]>

* Use httputil errors in consumers service

Signed-off-by: Manuel Imperiale <[email protected]>

* General renaming and add ErrMissingToken

Signed-off-by: Manuel Imperiale <[email protected]>

* Rename httputil -> apiutil and use errors in users servive

Signed-off-by: Manuel Imperiale <[email protected]>

* Use apiutil errors in auth, bootstrap, readers, things and twins

Signed-off-by: Manuel Imperiale <[email protected]>

* Replace errors.Contain by comparison

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix remarks

Signed-off-by: Manuel Imperiale <[email protected]>

* Simplify validateID

Signed-off-by: Manuel Imperiale <[email protected]>

* Simplify validateID

Signed-off-by: Manuel Imperiale <[email protected]>

* Simplify and rename ExtractAuthToken -> ExtractBearerToken

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix readers

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix auth key test and remarks

Signed-off-by: Manuel Imperiale <[email protected]>

* Improve comment

Signed-off-by: Manuel Imperiale <[email protected]>

* Simplify validateUUID check

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1567 - Use Bearer, Thing or Basic scheme in Authorization header (#1568)

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1565 - Document Bearer, Thing and Basic Authorization header (#1566)

* MF-1565 - Document Bearer Authorization header

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix auth, bootstrap, http and readers openapi

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix openapi

Signed-off-by: Manuel Imperiale <[email protected]>

* Add enc key for bootstrap

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>

* Use global security

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix bearer formats

Signed-off-by: Manuel Imperiale <[email protected]>

* Polish descriptions

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix boostrap and typo

Signed-off-by: Manuel Imperiale <[email protected]>

Co-authored-by: Drasko DRASKOVIC <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1575 Add 'Name' field to ListMembers response in things svc (#1576)

Signed-off-by: Ivan Balboteo <[email protected]>

Co-authored-by: Ivan Balboteo <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* 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 <[email protected]>

* - 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 <[email protected]>

* Fix InflxuDB readers

Signed-off-by: dusanb94 <[email protected]>

Co-authored-by: Hasan Tariq <[email protected]>
Co-authored-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Unify MF_INFLUX_READER_DB_HOST and MF_INFLUX_WRITER_DB_HOST envars (#1585)

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Fix CoAP adapter (#1572)

* Revert "NOISSUE - Add nats wrapper for COAP (#1569)"

This reverts commit cc5d5195ab27fa94270ada616487b7053fd9c7bd.

Signed-off-by: dusanb94 <[email protected]>

* Fix CoAP adapter

Signed-off-by: dusanb94 <[email protected]>

* Update CoAP observation cancel

Signed-off-by: dusanb94 <[email protected]>

* Fix observe

Signed-off-by: dusanb94 <[email protected]>

* Fix GET handling

Signed-off-by: dusanb94 <[email protected]>

* Revert authorization

Signed-off-by: dusanb94 <[email protected]>

* Use constants instead of magic numbers

Signed-off-by: dusanb94 <[email protected]>

* Remove an empty line

Signed-off-by: dusanb94 <[email protected]>

* Extract special observe value to constant

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1582 - Fix lora-adapter MQTT client (#1583)

* MF-1582 - Fix lora-adapter MQTT clien

Signed-off-by: Manuel Imperiale <[email protected]>

* Add timeout config to the mqtt subscriber

Signed-off-by: Manuel Imperiale <[email protected]>

* Rm comment

Signed-off-by: Manuel Imperiale <[email protected]>

* Add sub timeout

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Update changelog and readme for release 0.13.0 (#1592)

* Update release example

Signed-off-by: dusanb94 <[email protected]>

* Update changelog and examples for 0.13.0 release

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* Update VerneMQ release (#1593)

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Update changelog for release 0.13.0 (#1595)

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* unexport constants

Signed-off-by: 0x6f736f646f <[email protected]>

* Change routingkey

Signed-off-by: 0x6f736f646f <[email protected]>

* Remove wait groups

Signed-off-by: 0x6f736f646f <[email protected]>

* protecting map

Signed-off-by: 0x6f736f646f <[email protected]>

* Add publisher to pubsub

Signed-off-by: 0x6f736f646f <[email protected]>

* Change proto library

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix typos

Signed-off-by: 0x6f736f646f <[email protected]>

* Reduce pubsub tests based on implementation

Signed-off-by: 0x6f736f646f <[email protected]>

* Remove channel cancel

Signed-off-by: 0x6f736f646f <[email protected]>

* Export constant

Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Move invariant statements out of loop for cassandra-writer (#1596)

Signed-off-by: fuzhy <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* Embedding publisher into pubsub

Signed-off-by: 0x6f736f646f <[email protected]>

* Naming publisher

Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Fix Nginx entrypoint script (#1597)

* Fix Nginx entrypoint script

Signed-off-by: dusanb94 <[email protected]>

* Update dependencies

Signed-off-by: dusanb94 <[email protected]>

* Fix NginX entrypoint

Signed-off-by: dusanb94 <[email protected]>

* Revert Makefile changes

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1525 - Add graceful stop for HTTP and GRPC servers (#1548)

* Add : errgroup to cmd/auth

Signed-off-by: Arvindh <[email protected]>

* Add : Handle graceful stop for auth service
Remove : errgroups from auth service

Signed-off-by: Arvindh <[email protected]>

* Add : Wait till server shutdown

Signed-off-by: Arvindh <[email protected]>

* Change : instead of waitgroup changed to errgroups

Signed-off-by: Arvindh <[email protected]>

* change : KillSignalHandler return type to error

Signed-off-by: Arvindh <[email protected]>

* Empty Commit

Signed-off-by: Arvindh <[email protected]>

* Add : Context to http server shutdown
Rename : varaible from proto to protocol

Signed-off-by: Arvindh <[email protected]>

* change : to default log level

Signed-off-by: Arvindh <[email protected]>

* Add : Sign-off

Signed-off-by: Arvindh <[email protected]>

* Add: graceful stop of http and grpc server

Signed-off-by: Arvindh <[email protected]>

* Fix: typos and caps

Signed-off-by: Arvindh <[email protected]>

* Add: Signed-off

Signed-off-by: Arvindh <[email protected]>

* Rename: Func KillSignalHandler to SignalHandler
Add: SIGABRT

Signed-off-by: Arvindh <[email protected]>

* Fix: auth service

Signed-off-by: Arvindh <[email protected]>

* Add: timeout for grpc gracefulstop
Fix: typos

Signed-off-by: Arvindh <[email protected]>

* Add: .vscode folder to git ignore

Signed-off-by: Arvindh <[email protected]>

* change: variable name to stopWaitTime

Signed-off-by: Arvindh <[email protected]>

* remove: .vscode folder

Signed-off-by: Arvindh <[email protected]>

* remove: .vscode from .gitignore

Signed-off-by: Arvindh <[email protected]>

* Add : logger to handlers

Signed-off-by: Arvindh <[email protected]>

* Add : New line at end of .gitignore file

Signed-off-by: Arvindh <[email protected]>

* Fix : variable naming
Add : graceful stop for timescale

Signed-off-by: Arvindh <[email protected]>

* Remove : unsued NATS library from import

Signed-off-by: Arvindh <[email protected]>

* Move: "https" and "https" to moved to const var

Signed-off-by: Arvindh <[email protected]>

* Move: "http" and "https" to moved to const var

Signed-off-by: Arvindh <[email protected]>

* update:  branch with master

Signed-off-by: Arvindh <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Co-authored-by: Drasko DRASKOVIC <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* MF-1588 - Update Subscriber interface (#1598)

* Initial commit

Signed-off-by: 0x6f736f646f <[email protected]>

* Update subscriber interface

Signed-off-by: dusanb94 <[email protected]>

* Add tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Add tests

Signed-off-by: 0x6f736f646f <[email protected]>

* check subscription map

Signed-off-by: 0x6f736f646f <[email protected]>

* Check topic id after topic

Signed-off-by: 0x6f736f646f <[email protected]>

* reword description

Signed-off-by: 0x6f736f646f <[email protected]>

* Setup empty queue

Signed-off-by: 0x6f736f646f <[email protected]>

* Change mqtt implementation

Signed-off-by: 0x6f736f646f <[email protected]>

* Switch statements

Signed-off-by: 0x6f736f646f <[email protected]>

* Simplify

Signed-off-by: 0x6f736f646f <[email protected]>

* Change mqtt subscriber

Signed-off-by: 0x6f736f646f <[email protected]>

* Protect subscription map

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix subscription

Signed-off-by: 0x6f736f646f <[email protected]>

* Set client id

Signed-off-by: 0x6f736f646f <[email protected]>

* Format

Signed-off-by: 0x6f736f646f <[email protected]>

* Change delete method

Signed-off-by: 0x6f736f646f <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* Update rabbitmq subscriber interface

Signed-off-by: 0x6f736f646f <[email protected]>

* using publisher composition

Signed-off-by: 0x6f736f646f <[email protected]>

* Change contenttype

Signed-off-by: 0x6f736f646f <[email protected]>

* rename topic for publish and subscribe

Signed-off-by: 0x6f736f646f <[email protected]>

* Change errors to lower case

Signed-off-by: 0x6f736f646f <[email protected]>

* Change errors to lower case

Signed-off-by: 0x6f736f646f <[email protected]>

* export errors

Signed-off-by: 0x6f736f646f <[email protected]>

* MF - 1590 - Fix fetching list of users with a zero limit (#1594)

* Add max and min limit size

Signed-off-by: 0x6f736f646f <[email protected]>

* Format

Signed-off-by: 0x6f736f646f <[email protected]>

* Format

Signed-off-by: 0x6f736f646f <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* NOISSUE - Retrieve client key on cert issuing (#1607)

Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* fix bug (#1604)

Signed-off-by: zhangchuanfeng <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>

* queue per subscription

Signed-off-by: 0x6f736f646f <[email protected]>

* queue per subscription

Signed-off-by: 0x6f736f646f <[email protected]>

* Change routing method

Signed-off-by: 0x6f736f646f <[email protected]>

* Direct method with one exchange to many queues, one consumer per queue

Signed-off-by: 0x6f736f646f <[email protected]>

* :recycle: Not casting data

Signed-off-by: 0x6f736f646f <[email protected]>

* :pencil2: Fix typo

Signed-off-by: 0x6f736f646f <[email protected]>

* :recycle: remove passed queue name

Signed-off-by: 0x6f736f646f <[email protected]>

* :fire: removing echange kind

Signed-off-by: 0x6f736f646f <[email protected]>

* Combine tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Refactor unsubscribe method

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix merge conflict

Signed-off-by: 0x6f736f646f <[email protected]>

* :white_check_mark: sub and unsub to dummy topic

Signed-off-by: 0x6f736f646f <[email protected]>

* generate client id from topic and ID

Signed-off-by: 0x6f736f646f <[email protected]>

* Rename topicID to clientID

Signed-off-by: 0x6f736f646f <[email protected]>

* update tests

Signed-off-by: 0x6f736f646f <[email protected]>

* Reuse clientID

Signed-off-by: 0x6f736f646f <[email protected]>

* Fix typos

Signed-off-by: 0x6f736f646f <[email protected]>

* Seperate testpublish and testpubsub

Signed-off-by: 0x6f736f646f <[email protected]>

Co-authored-by: Manuel Imperiale <[email protected]>
Co-authored-by: Dušan Borovčanin <[email protected]>
Co-authored-by: Ivan Milošević <[email protected]>
Co-authored-by: __touk__ <[email protected]>
Co-authored-by: Mirko Teodorovic <[email protected]>
Co-authored-by: Drasko DRASKOVIC <[email protected]>
Co-authored-by: stefankovacevic123 <[email protected]>
Co-authored-by: ibalboteo <[email protected]>
Co-authored-by: Ivan Balboteo <[email protected]>
Co-authored-by: Hasan98-git <[email protected]>
Co-authored-by: Hasan Tariq <[email protected]>
Co-authored-by: fuzhy <[email protected]>
Co-authored-by: Arvindh <[email protected]>
Co-authored-by: 张传峰 <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* NOISSUE - Fix Groups SDK (#1609)

* Fix Groups SDK

Signed-off-by: dusanb94 <[email protected]>

* Fix CLI

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* NOISSUE - Fix CI script (#1613)

* Fix CI script

Signed-off-by: dusanb94 <[email protected]>

* Fix linter errors

Signed-off-by: dusanb94 <[email protected]>

* Add timeout to linter

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* 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 <[email protected]>

* Add test

Signed-off-by: Manuel Imperiale <[email protected]>

* Add CBOR content-type

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix naming

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix naming

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix CI

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix CI flag

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix CI install

Signed-off-by: Manuel Imperiale <[email protected]>

* Upgrade grpc version

Signed-off-by: Manuel Imperiale <[email protected]>

* Fix typo

Signed-off-by: Manuel Imperiale <[email protected]>

* rm cli

Signed-off-by: Manuel Imperiale <[email protected]>

Co-authored-by: Dušan Borovčanin <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* Specify size of channel

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* NOISSUE - fix pull request template typo (#1616)

* Fix typo

Signed-off-by: Filip Bugarski <[email protected]>

* Change link

Signed-off-by: fbugarski <[email protected]>
Signed-off-by: Arvindh <[email protected]>

* Add: load configuration function

Signed-off-by: Arvindh <[email protected]>

* change: load config from env with pkg caarlos0/env

Signed-off-by: Arvindh <[email protected]>

* change: mfdatabase to internaldb

Signed-off-by: Arvindh <[email protected]>

* Add: httpserver and grpcsever

Signed-off-by: Arvindh <[email protected]>

move http and grpc server functions

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

Move Keto and Jaeger

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

Add metrics and auth

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

Rename service name

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

Change metrics method

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

Rename

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

Rename

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

Rename package name

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

:truck: Rename Keto and Jaeger functions

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

unify grpc service

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

:truck: rename apiutil to initutil

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

:sparkles: coap server

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

:truck: rename

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

:truck: Rename

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

:recycle: rename packages

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

:recycle: remove mf prefix

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

:truck: rename server error

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

remove dead code

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

NOISSUE - Fix CI script (#1613)

* Fix CI script

Signed-off-by: dusanb94 <[email protected]>

* Fix linter errors

Signed-off-by: dusanb94 <[email protected]>

* Add timeout to linter

Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: Arvindh <[email protected]>

Specify size of channel

Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Arvindh <[email protected]>

Add: load configuration function

Signed-off-by: Arvindh <[email protected]>

change: load config from env with pkg caarlos0/env

Signed-off-by: Arvindh <[email protected]>

* change: mfdatabase to internaldb

Signed-off-by: Arvindh <[email protected]>

* fix: merge resolve error

Signed-off-by: Arvindh <[email protected]>

* fix: merge resolve error

Signed-off-by: Arvindh <[email protected]>

* fix: merge resolve error

Signed-off-by: Arvindh <[email protected]>

* remove: unused variables

Signed-off-by: Arvindh <[email protected]>

* add: address variable in servers

Signed-off-by: Arvindh <[email protected]>

* move: postgres connect to internal

Signed-off-by: Arvindh <[email protected]>

* add: client wrapper for most used

Signed-off-by: Arvindh <[email protected]>

* add: client wrapper for env

Signed-off-by: Arvindh <[email protected]>

* unify : auth, bootstrap, cassandra reader

Signed-off-by: Arvindh <[email protected]>

* unify : bootstrap code

Signed-off-by: Arvindh <[email protected]>

* unify : cassandra writer

Signed-off-by: Arvindh <[email protected]>

* fix: struct tag to envDefault

Signed-off-by: Arvindh <[email protected]>

* fix: grpc prefix

Signed-off-by: Arvindh <[email protected]>

* fix: env parser

Signed-off-by: Arvindh <[email protected]>

* fix: alt prefix

Signed-off-by: Arvindh <[email protected]>

* fix: env default tag

Signed-off-by: Arvindh <[email protected]>

* fix: auth grpc config

Signed-off-by: Arvindh <[email protected]>

* changes: internal approch and service start

Signed-off-by: Arvindh <[email protected]>

* unify: http adapter service

Signed-off-by: Arvindh <[email protected]>

* remove: unused code in http adapter"

Signed-off-by: Arvindh <[email protected]>

* fix: config environment variable tags

Signed-off-by: Arvindh <[email protected]>

* unify: timescale writer

Signed-off-by: Arvindh <[email protected]>

* unify: timescale reader

Signed-off-by: Arvindh <[email protected]>

* unify: thing main.go

Signed-off-by: Arvindh <[email protected]>

* unify: smtp-notifier

Signed-off-by: Arvindh <[email protected]>

* unify: smpp-notifier

Signed-off-by: Arvindh <[email protected]>

* unify: postgres reader and writer

Signed-off-by: Arvindh <[email protected]>

* unify: twins

Signed-off-by: Arvindh <[email protected]>

* unify

Signed-off-by: Arvindh <[email protected]>

* unify certs main.go

Signed-off-by: Arvindh <[email protected]>

* unify certs main.go

Signed-off-by: Arvindh <[email protected]>

* unify coap main.go

Signed-off-by: Arvindh <[email protected]>

* unify lora main.go

Signed-off-by: Arvindh <[email protected]>

* fix fatalf

Signed-off-by: Arvindh <[email protected]>

* unify mqtt main.go

Signed-off-by: Arvindh <[email protected]>

* unify mqtt main.go

Signed-off-by: Arvindh <[email protected]>

* unify ocpua adapter main.go

Signed-off-by: Arvindh <[email protected]>

* fix case

Signed-off-by: Arvindh <[email protected]>

* unify ws_adapter

Signed-off-by: Arvindh <[email protected]>

* unify ws_adapter

Signed-off-by: Arvindh <[email protected]>

* unify ws_adapter

Signed-off-by: Arvindh <[email protected]>

* add : comment and spacing

Signed-off-by: Arvindh <[email protected]>

* fix: lint errors

Signed-off-by: Arvindh <[email protected]>

* fix: lint errors

Signed-off-by: Arvindh <[email protected]>

* fix: main.go config load

Signed-off-by: Arvindh <[email protected]>

* fix: main.go config load

Signed-off-by: Arvindh <[email protected]>

* fix: auth main.go keto config

Signed-off-by: Arvindh <[email protected]>

* remove: package internal/sqlxt

Signed-off-by: Arvindh <[email protected]>

* code format : internal/client/grpc/connect.go

Signed-off-by: Arvindh <[email protected]>

* fix: inline code

Signed-off-by: Arvindh <[email protected]>

* fix: code format

Signed-off-by: Arvindh <[email protected]>

* fix: inline and code format

Signed-off-by: Arvindh <[email protected]>

* fix: moved to single block

Signed-off-by: Arvindh <[email protected]>

* fix: moved to single block

Signed-off-by: Arvindh <[email protected]>

* fix: export function comments

Signed-off-by: Arvindh <[email protected]>

* fix: export function comments

Signed-off-by: Arvindh <[email protected]>

* fix: export function comments

Signed-off-by: Arvindh <[email protected]>

* fix: export function comments

Signed-off-by: Arvindh <[email protected]>

* fix: export function comments

Signed-off-by: Arvindh <[email protected]>

* remane: newtracer.go to tracer.go

Signed-off-by: Arvindh <[email protected]>

* renamee: authClient.go and thingsClient.go to client.go

Signed-off-by: Arvindh <[email protected]>

* remove space

Signed-off-by: Arvindh <[email protected]>

* add: jaeger default value

Signed-off-by: Arvindh <[email protected]>

* fix: cassander config default values

Signed-off-by: Arvindh <[email protected]>

* rename file

Signed-off-by: Arvindh <[email protected]>

* fix: postgres client config default values

Signed-off-by: Arvindh <[email protected]>

* add setup with default config

Signed-off-by: Arvindh <[email protected]>

* fix: mongo client config default values

Signed-off-by: Arvindh <[email protected]>

* add: postgres default db name in services

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for auth

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for bootstrap

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for cassandra-reader

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for cassandra-writer

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for certs

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for coap

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for http-adapter

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for influx-reader

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for influx-writer

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for lora

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for mongodb-reader

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for mongodb-writer

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for mqtt

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for opcua

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for postgres-reader

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for postgres-writer

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for smpp-notifier

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for smtp-notifier

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for things

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for timescale-reader

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for timescale-writer

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for twins

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for users

Signed-off-by: Arvindh <[email protected]>

* fix: environment variable default for ws

Signed-off-by: Arvindh <[email protected]>

* fix: unused variables

Signed-off-by: Arvindh <[email protected]>

* empty commit

Signed-off-by: Arvindh <[email protected]>

* add comments

Signed-off-by: Arvindh <[email protected]>

* fix: redis env variables

Signed-off-by: Arvindh <[email protected]>

* fix: adapter ports and postgres db name

Signed-off-by: Arvindh <[email protected]>

* fix: adapter ports

Signed-off-by: Arvindh <[email protected]>

* comments aligned

Signed-off-by: Arvindh <[email protected]>

* rename cassandra session variable

Signed-off-by: Arvindh <[email protected]>

* rename influxdb and influx to influxDB

Signed-off-by: Arvindh <[email protected]>

* rename EsConsumername to ESConsumerName

Signed-off-by: Arvindh <[email protected]>

* made comments consistant

Signed-off-by: Arvindh <[email protected]>

* made comments consistant & remove empty lines

Signed-off-by: Arvindh <[email protected]>

* made comments consistant & renmae function

Signed-off-by: Arvindh <[email protected]>

* made comments

Signed-off-by: Arvindh <[email protected]>

* comments added

Signed-off-by: Arvindh <[email protected]>

* fix bootstrap

Signed-off-by: Arvindh <[email protected]>

* fix empty env var

Signed-off-by: Arvindh <[email protected]>

* remove : unused variable

Signed-off-by: Arvindh <[email protected]>

* update: env parser library

Signed-off-by: Arvindh <[email protected]>

* fix: mongodb reader and writer

Signed-off-by: Arvindh <[email protected]>

* fix: cassandra reader and writer

Signed-off-by: Arvindh <[email protected]>

* rename: directory

Signed-off-by: Arvindh <[email protected]>

* rename: variable

Signed-off-by: Arvindh <[email protected]>

* remove: unused librar

Signed-off-by: Arvindh <[email protected]>

* Format code and remove unused comments

Signed-off-by: dusanb94 <[email protected]>

* Fix tests

Signed-off-by: dusanb94 <[email protected]>

* Move test URL construction out of the loop

Signed-off-by: dusanb94 <[email protected]>

* remove end dot in single line comments

Signed-off-by: Arvindh <[email protected]>

* empty

Signed-off-by: Arvindh <[email protected]>

---------

Signed-off-by: Arvindh <[email protected]>
Signed-off-by: 0x6f736f646f <[email protected]>
Signed-off-by: Manuel Imperiale <[email protected]>
Signed-off-by: zhangchuanfeng <[email protected]>
Signed-off-by: dusanb94 <[email protected]>
Signed-off-by: fbugarski <[email protected]>
Co-authored-by: Dušan Borovčanin <[email protected]>
Co-authored-by: Drasko DRASKOVIC <[email protected]>
Co-authored-by: b1ackd0t <[email protected]>
Co-authored-by: Manuel Imperiale <[email protected]>
Co-authored-by: 张传峰 <[email protected]>
Co-authored-by: Ivan Milošević <[email protected]>
Co-authored-by: __touk__ <[email protected]>
Co-authored-by: Mirko Teodorovic <[email protected]>
Co-authored-by: stefankovacevic123 <[email protected]>
Co-authored-by: ibalboteo <[email protected]>
Co-authored-by: Ivan Balboteo <[email protected]>
Co-authored-by: Hasan98-git <[email protected]>
Co-authored-by: Hasan Tariq <[email protected]>
Co-authored-by: fuzhy <[email protected]>
Co-authored-by: Filip Bugarski <[email protected]>
@rodneyosodo rodneyosodo deleted the MF-1416 branch February 28, 2024 10:06
@rodneyosodo rodneyosodo restored the MF-1416 branch February 28, 2024 10:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Queue Abstraction for Mainflux & RabbitMQ Support