Darko Draskovic
381ebb1e51
NOISSUE - Add subtopic wildcard for twin attribute's definition ( #1214 )
...
* Add wildcard to attribute subtopic
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add MF_TWINS_SUBTOPIC_WILDCARD env var
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove configurable wildcard env var and mqtt notif leftovers
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mongodb RetrieveByAttribute tests
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add redis wildcard subtopic IDs retrieval
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add tests for wildcard state save
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-07-09 12:18:19 +02:00
Darko Draskovic
340e685d70
MF-1180 - Add redis based twins and states cache ( #1184 )
...
* Add twins redis cache
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add connectToRedis to twins main and twinCache to twins service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add tracing to twins cache
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add twins cache mock and test setup for redis cache
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add TestTwinSave to redis twins cache tests
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add remove twin redis cache test
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add channels param to CreateDefinition helper method in mocks
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add IDs test to redis twins cache
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Simplify senml rec array and attribute creation funcs by removing unnecessary params
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Align cache remove twin method with service remove twin method
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add cache funcs to twins save, update and remove
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add def SaveIDs to redis cache and ref to service SaveStates
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add TwinSaveIDs tests for redis cache
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add cache related env vars desc to README.md
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add twinid bson key constant
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add Update method to cache
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Integrate uuid unification related changes
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Use named arguments in interface method declarations
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add env vars to docker-compose file
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Make parameter names in interface methods and implementations consistent
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Wrap vars and consts in var and const blocks
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-06-05 11:42:16 +02:00
Darko Draskovic
b4c80132e6
MF-995 - Add Twins tests for endpoint list twins and list states ( #1174 )
...
* Add ListTwins test
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove monotonic time from twins, definitions and attributes creation and update
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Separate twins and states endpoint tests in two files
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add state generation helper funcs to state endpoint tests
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add createStateResponse() to states test
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add states test cases
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Simplify RetrieveAll twins and states methods
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add service.go to mocks
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Rename mocks.NewService to mocks.New
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add error checking to endpoint state tests
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix method comment
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add json response decode success check
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove created and updated fields from twin and state res
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove definition fields from twin req and res
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add Create funcs to mocks package
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add service save state tests
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add service list states test
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-05-18 18:46:50 +02:00
Darko Draskovic
19503742a6
NOISSUE - Update state based on SenML time value ( #1075 )
...
* Update state based on SenML time value
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Use Modf to parse SenML rec time
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add Update to State in mocks
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add Delta to Twin Definition and iota consts for state actions
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Use action consts for switch statement
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-03-18 19:56:39 +01:00
Darko Draskovic
b3991b8497
MF-730 - Add digital twin service for things ( #855 )
...
* Add starter kit
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add http
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add cmd/main.go
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove reference to things from README.md
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add starter kit
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add http
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add cmd/main.go
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove reference to things from README.md
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix env vars in README.md
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix env vars in README.md
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Rename kit to mfxkit
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Rename kit to mfxkit
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add docker compose related files
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add docker compose related files
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add Dockerfile to mfxkit
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add Dockerfile to mfxkit
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add twin service to docker-compose.yml
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add twin service to docker-compose.yml
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mongo db connection
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mongo db connection
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add TwinRepository mockup
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix docker env vars
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix docker env vars
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add twins repo mongodb routines
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add twins repo mongodb routines
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mongo db docker test suite
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mongo db docker test suite
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add idp and toDBTwin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add idp and toDBTwin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add test cases to repo twin save test
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add test cases to repo twin save test
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add users grpc
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add users grpc
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add methods and tests for udpate and update key
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add methods and tests for udpate and update key
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add methods and tests for remove twin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add methods and tests for remove twin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add svc methods to loggin and metrics
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add svc methods to loggin and metrics
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add AddTwin endpoint
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add AddTwin endpoint
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add update endpoints
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add update endpoints
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add view and remove endpoints
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add view and remove endpoints
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add twin repo mock
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add twin repo mock
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add owner arg to twins repo methods
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add owner arg to twins repo methods
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mock idp service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mock users service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add tests for service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add tests for service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mqtt client to twins service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mqtt client to twins service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add protocol to mqtt string var
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add protocol to mqtt string var
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add time and attributes related data to Twin struct
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add time and attributes related data to Twin struct
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mqtt publish JSON serialized twin to service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mqtt publish JSON serialized twin to service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add endpoint tests for save and update twin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add endpoint tests for save and update twin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add endpoint tests for update key and view thing
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add endpoint tests for update key and view thing
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix test error for view twin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix test error for view twin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add endpoint tests for remove twin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add endpoint tests for remove twin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add NATS client
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add NATS client
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add normalizer to nats
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add normalizer to nats
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Refactor nats publish() and remove normalizer
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Refactor nats publish() and remove normalizer
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add ListThingsByChannel() and RetrieveByChannel()
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add ListThingsByChannel() and RetrieveByChannel()
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add Twin struct directly in mongodb
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add Twin struct directly in mongodb
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Change limit type to uint64
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Change limit type to uint64
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Compose nats subject from msg ch and subtopic
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Compose nats subject from msg ch and subtopic
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mqtt notifs for thing creation and key update
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mqtt notifs for thing creation and key update
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add RetrieveAll to twinRepository and ListTwins to service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add RetrieveAll to twinRepository and ListTwins to service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add tests for RetrieveAll and ListTwins
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add tests for RetrieveAll and ListTwins
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix Service interface error
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove test Ping endpoint
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mqtt topic to service config
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove UpdateKey request and add fields to Twin related requests
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add Attributes and State add and view
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add ListTwins endpoint
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix service and database tests
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add ListTwinsByThing endpoint
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove twin directory
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add States and Definitions to Twin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add defer publish to AddTwin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add refactored and deferred mqtt client publish to Service methods
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add paho subservice
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add paho client to nats
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add mqtt publish and state update
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add Publish wrapper
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Use paho Publish wrapper
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix tests
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Save states in separate collection
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Replace []byte payload by []map[string]interface{}
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add offset to PageMetadata
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Rename TwinsPage to Page
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add StateRepository
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add StateRepository, mongodb StateRepository adapter and ListStates endpoint
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add RetrieveLast twin to states repository
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Parse def in nats to update state attrib
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add prepareState() helper
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Replace list things by id by view thing by id
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add state repo mock
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix service tests
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix mongo twins repo tests and remove owner from RetrieveByID params
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix mongo twins repo tests and remove owner from Remove params
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Replace ChannelID in Attribute by Channel
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix endpoint tests for add and update twin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix endpoint tests for view and remove twin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Use new auth service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix mocks auth and mongodb tests
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix licensing info
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix 'for for'
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Replace short dec by var for default vals and add string map for mqtt op info
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Use Record from mainflux/senml and rename broker to nats in main.go
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove Key from Twin
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove redundant id uniqueness check from mongodb
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add attrib name to attrib update info
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix typos and remove isZeroOfUnderlyingType() helper
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Rename paho to mqtt
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix env vars in main.go and README.md
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Move twins/api/twins to twins/api and rename twins- prefix to tw- in main.go
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove flows for manual testing and revert to master docker-compose.yml
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove publish from nats and fix tests by updating package names
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Rename users.go to authn.go
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix crud op names
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Change id to twinID
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Inline if err != nil and change <prefix>ID to <prefix>_id
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix metadata db search test
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Rename mqtt and nats related files to publisher and subscriber respectively
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Move save state logic from nats to service
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Fix endpoint tests
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove close check from main.go
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Complete deploy section
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add unit tests for states
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Remove debugging artefacts and unneeded comments to exported funcs
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
* Add port num to defAuthnURL
Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com>
2020-01-10 17:25:36 +01:00