- go-mod-bootstrap
- go-mod-core-contracts
- go-mod-messaging
- go-mod-registry
- go-mod-secrets (indirect dependency)
- go-mod-configuration (indirect dependency)
- (security) Add new AddCustomRoute method with authentication parameter (#1475) (5a7d052β¦)
- Add device last connected metrics (#1515) (1f88585β¦)
- Update index files to include names for preloading check (10694e6β¦)
- Allow NameFieldPath configurable (f16fc3dβ¦)
- Accept Url escape in API path (fdbdbc1β¦)
- Replace gorilla/mux router with echo (72d350fβ¦)
- Add better error handling when running in hybrid mode but common config is missing (#1480) (7433febβ¦)
- Implement loading from URI for Profile, Device, & Provision Watcher files (#1471) (0776c05β¦)
- Move all the common APIs into go-mod-bootstrap (9983415β¦)
- Adjust GetFileType() function for new secret URI format (#1507) (88f0350β¦)
- Use WrapHandler func from go-mod-bootstrap (ca6e439β¦)
- Update handler funcs to use Echo signatures (93fdda3β¦)
- Replace Slack chat with GitHub discussion (3e8c91cβ¦)
- Upgrade to go-1.21, Linter1.54.2 and Alpine 3.18 (#1511) (10d83f9β¦)
- Add automated release workflow on tag creation (526596bβ¦)
- Add URI test files (#1481) (d74039bβ¦)
- Add Start method to the ProtocolDriver interface (#453fffe)
BREAKING CHANGE: Added required `Start` method to the ProtocolDriver interface. This method is called after the sdk has been completely initialized. This is where device service should implement post initialization code.
- Add PatchDevice and DeviceExistsForName and refactor UpdateDeviceOperatingState(#)
BREAKING CHANGE: SetDeviceOperatingState has been removed, and UpdateDeviceOperatingState has been modified to accept a models.OperatingState value.
- Using url.PathUnescape for decoding API path (#cdd8b0f)
BREAKING CHANGE: Use PathUnescape for decoding API path to consist with the change from MQTT topic, the MQTT topic path will encode with url.PathEscape.
- All ProtocolDriver interface API implementations required (#d73da92)
BREAKING CHANGE: Move Discover(), ValidateDevice() to the ProtocolDriver interface to that they are required like the existing interfaces.
This forces at a minimum an empty implementation which gives exposure to the developer that they exist.
Use interfaces.ProtocolDriver instead of any as parameter
- Apply provision watcher model changes (#24d4a99)
BREAKING CHANGE: Apply provision watcher model changes and skip the locked provision watcher.
- Change configuration file format to YAML (#c61610b)
BREAKING CHANGE: Configuration files are now in YAML format, Default file name is now configuration.yaml
- Change device definition file to YAML format (#9bade9f)
BREAKING CHANGE: Stop supporting TOML format and support YAML format for Device definition files
- Apply JWT authentication to incoming calls (#774c203)
BREAKING CHANGE: In secure mode, incoming REST API calls must have a JWT authentication token, with the exception of /api/v2/ping.
- Remove LastConnected, LastReported and UpdateLastConnected configs (#7414f7f)
BREAKING CHANGE: Remove LastConnected, LastReported and UpdateLastConnected configs
- Consume contracts mod to update /secret DTO (#76cf874)
BREAKING CHANGE: secret DTO object in core contracts uses SecretName instead of Path
- Updates for common config (#9f4fc55)
BREAKING CHANGE: Common config settings removed from configuration file
- Add additional service-name level in event publish topic (#15fb7a8)
BREAKING CHANGE: event publish topic now <prefix>/<service-name>/<profile-name>/<device-name>/<source-name>
- Replace REST device validation callback with MessageBus (#b7afc2a)
BREAKING CHANGE: /validate/device REST endpoint removed
- Replace REST device service callback with System Event (#e412a44)
BREAKING CHANGE: /callback/service REST endpoint removed
- Replace REST provision watcher callbacks with System Events(#8ea8883)
BREAKING CHANGE: /callback/watcher and /callback/watcher/name/{name} REST endpoints have been removed
- Replace REST device profile callback with System Events (#09198ff)
BREAKING CHANGE: PUT /callback/profile REST endpoint has been removed
- Remove UseMessageBus config (#482e5b9)
BREAKING CHANGE: Removed the 'Device.UseMessageBus' config, the code for sending event via core-data REST client and the 'Clients.core-data' dependency
- Remove old metrics collection and REST/metrics endpoint (#89d807d)
BREAKING CHANGE: /metrics endpoint no longer available for any service
- Replace REST device callbacks with System Events (#3f884e)
BREAKING CHANGE: The following device callback REST endpoints are removed: - POST /callback/device - PUT /callback/device - DELETE /callback/device/name/{name}
- Remove ZeroMQ MessageBus capability (#f8460cf)
BREAKING CHANGE: ZeroMQ MessageBus capability no longer available
- Device ProtocolProperties have typed values (#1365) (#a6f9b45)
- Enhance autodiscovery to better support multiple instances of same device service (#1444) (#d75af8d)
- Consume new -d/--dev Dev Mode command-line flag (#d0b4661)
- Consume SecretProvider breaking changes (#656a0e7)
- Allow regex GET command returns partial result (#6d81477)
- Enable regex for executing GET command (#efda1a8)
- Support YAML format for ProvisionWatcher definition file (#a4f7691)
- Publish event with updated value for PUT command (#420f04f)
- Consume watch for common Writable config changes (#1372) (#84b3eaa)
- Accept URL escape for device command name and resource name (#7be4a1d)
- Add resource, command, and device tags to reading/event (#1297) (#93a0268)
- Implement support for ProvisionWatchersDir (#1f95b19)
- Add UpdateDevice callback for device profile update (#d4adbed)
- Fix typo "DeviceResourece" -> "DeviceResource" in error log message (#278dac4)
- Modify the numeric data type in Value Properties to pointer (#d2a234e)
BREAKING CHANGE: - update mask,shift,base,scale,offset to pointer - update maximum and minimum data type from string to float64 pointer
- Update data types in ResourceProperties (#c3c5272)
BREAKING CHANGE: support mask,shift,base,scale,offset in numeric data type
- Remove global variable 'ds' in service package (#e5f9ace)
BREAKING CHANGE: - update ProtocolDriver Initialize method signature to pass DeviceServiceSDK interface as parameter - update DeviceServiceSDK interface: - update Getter method name to be more idiomatic - remove Stop() method as it should only be called by SDK - add AsyncValuesChannel and DiscoveredDeviceChannel getter method - rename AsyncReadings to AsyncReadingsEnabled - rename DeviceDiscovery to DeviceDiscoveryEnabled The DeviceServiceSDK interface is passed to ProtocolDriver as the only parameter in Initialize method so that developer can still access, mock and test with it.
- Replace internal topics from config with new constants (#cf150bd)
BREAKING CHANGE: Internal topics no longer configurable, except the base topic.
- Rework Command via MessageBus for new Request API response topic (#d7de237c)
BREAKING CHANGE: Command via MessageBus Topic configurations have changed (Note: later commit removes topic configuration)
- Update config for message bus topic wild cards (#73fb48f)
BREAKING CHANGE: use MQTT wild cards + for single level and # for multiple levels
- Use bool types for command parameters to be more consistent (#89b19b1)
BREAKING CHANGE: ds-pushevent and ds-returnevent to use bool true/false instead of yes/no
- Update config for removal of SecretStore from services' configuration file (#11af1f)
BREAKING CHANGE: SecretStore config no longer in service configuration file. Changes must be done via use of environment variable overrides of default values.
- Rework code for refactored MessageBus Configuration (#ebb4d57)
BREAKING CHANGE: MessageQueue renamed to MessageBus and fields changed. See v3 Migration guide.
- Rename command line flags for the sake of consistency (#4aa2fa)
BREAKING CHANGE: renamed -c/--confdir to -cd/--configDirand -f/--file to -cf/--configFile
- Update module to v3 (#97d52b)
BREAKING CHANGE: Import paths will need to change to v3
- Consume ProvisionWatcher DTO change for ServiceName (#1453) (#3563ea3)
- Tweaks to private config in Device Simple (#4b8be51)
- Update swagger to match latest changes in go-mod-core-contracts Device dto (#05593f9)
- Update swagger to match latest changes in go-mod-contracts dtos common SecretRequest (#53645a9)
- Replace V2 swagger file to V3 for 3.0.0 (#05376da)
- Update to Go 1.20, Alpine 3.17 and linter v1.51.2 (#1383) (#a467ed6)
- Update to latest module w/o TOML package (#bf4714d)
- Fix device sdk cache inconsistency by registering device service prior to driver initialization (#4d4ffc7)
- Add metrics for count of Events and Readings sent (#1239) (#5df0661)
- Enable service metrics (#94ac6d2)
- Update device-simple CommandRequestTopic config (#03803f9)
- Subscribe command request via internal messaging (#aed16fd)
- Add interface for accessing the Device Service SDK (#16c2613)
- Publish envelope with empty payload when ds-returnevent=no (#6995182)
- Fix empty device name when updating device's serviceName (#ff1b5b0)
- Remove redundant logic of caching profile (#e9867ce)
- Put cmd return 400 when updating empty string to NonString type (#a1088c2)
- ProvisionWatcher callbacks return BaseResponse, not 204 No Content. (#3d985db)
- Use bootstrap handlers in go-mod-bootstrap and refactor device command application layer code (#1210) (#e5efdee)
- Update to use deepCopy of messageBusInfo to avoid external adds (#adba0c6)
- Publish swagger to 2.3.0 (#9d1347e)
- Upgrade to Go 1.18 and alpine 3.16 (#91816c1)
- Add MaxEventSize to limit event size (#ae5b097)
- Implement ReadingUnits configuration for device profile changes (#daeaa2d)
- Enable security hardening (#da52579)
- Version bump to roll-in delayed service start feature (#7a7b6d1)
- Implement ProtocolProperties validation mechanism (#07054d1)
- Location of client service obtained from the registry (#936332d)
- webserver: Include ServiceName in Common Responses (#402f152)
- Add missing Configuration interface method GetTelemetryInfo (#f9d12fc)
- Update TestMetricsRequest to not fail when using -race (#aa2b65f)
- Update validation API 200 response (#7c8475a)
- configuration: add handling for custom config on /config endpoint (#4aeb844)
- Use go-mod-bootstrap RequestLimitMiddleware for MaxRequestSize (#b63934f)
- Update to latest go-mod-messaging w/o ZMQ on windows (#a222f54)
BREAKING CHANGE: ZeroMQ no longer supported on native Windows for EdgeX MessageBus
- Updated formatting from gofmt 1.17 (#3c2e1aa)
- Remove -race for unit tests for now to resolve failures in pipeline (#a3ef393)
- Go 1.17 related changes (#20fc5d6)
- Support object value type in Set Command (#801bc03)
- Add NewCommandValueWithOrigin function (#c6c2082)
- Support Object value type in Reading (#1025) (#d245461)
- Stop AutoEvents if the Device is locked (#1027) (#c02be29)
- Fix nil pointer error when executing SET command with empty value (#0f89794)
- Fix device yaml to Json error (#cf13810)
- Update all TOML to use quote and not single-quote (#9e077e8)
- Change V2 Swagger to be published with 2.0 version (#9dee295)
- Update swagger version to 2.1.0 (#6cc4e69)
- Add apiVersion to request body example (#1a6f6b9)
- Remove the description about base64 encoding (#df04f74)
- Update build status badge (#da9a265)
- Update device-simple README and provisionwatcher example (#76abb45)
- Update alpine base to 3.14 (#7fe965a)
- Remove need for CI specific Dockerfile (#4ea8c13)
- Enable using MessageBus as the default (#eca11b8)
- support device profile provision in json format (#945ec1c)
- add Event tagging capability (#149daef)
- Add secure MessageBus capability (#57291f0)
- CBOR encoding http response for event with binary reading (#0032f23)
- update CommandRequest.Attributes type (#1370f96)
- add request size middleware for device command (#c006079)
- improve Event/Reading Origin logic (#c5bee4f)
- update profile cache to reflect new profile model (#3ff13b5)
- add capability to load devices from directory (#e2dd6f7)
- Updated Attribution.txt for missing crypto module (#ed9c44c)
- Enable Registry and Config access token (#40eaaf9)
- update example configuration to support MessageBus (#a8316e3)
- add MessageBus capablility (#0fbf16e)
- Add support for structured custom configuration (#0699ac1)
- add GetProfileByName function API (#691fc8b)
- Upgrade core-contracts lib to use redesigned device profile (#816) (#a5ad5ab)
- validate set command parameters against maximum/minimum and refactor transformer package (#813) (#3f52f3a)
- update CommandValue for v2 (#dbb5e95)
- handle no readings generated gracefully (#fd6d2d4)
- spawn autoevents for discovered device (#4822fad)
- process queryParams of url in PUT request (#0d64304)
- dynamically adds profile in device callback (#26939be)
- update v2 cache to load data via v2 clients (#b6352b0)
- make update callback aware of service change (#3fc6617)
- make DeviceService struct updatable (#ecc71a3)
- add update device service callback (#9ee2204)
- update v2 callback API (#b000b54)
- update v2 command API (#3d1861d)
- SecretProvider for storing/retrieving secrets (#bcd0eef)
- Updates from PR review. (#c4cbbed)
- Modify callback func to consist with V2 API (#98ab8c7)
- Added missing module to Attribution.txt (#9a6397b)
- Add /api/v2/secrets endpoint to store secrets (#2c57645)
- Removed remote logging feature (#1cc1ee3)
- v2: prepare v2 ProvisionWatcher model cache (#c95c718)
- v2: add v2 ProvisionWatcher callback API (#ce664a3)
- Fix device service update failed when startup (#785b4de)
- fix default value usage in SET command (#65fbd6f)
- modify function updateAssociatedProfile return errors (#942) (#13e775a)
- correctly update DeviceService.deviceService model (#c48d0fd)
- use RequestLimitMiddleware on all routes (#b69e6f6)
- add logLevel check in LoggingMiddleware (#23eaf68)
- fix deviceProfileMap refer to the same object (#cf93359)
- fix set command resourceOperation mapping (#870) (#e9afc7c)
- add Content-Type in context for MessageEnvelope (#2d80251)
- add device OperatingState check in device command API (#db824b8)
- remove StopAutoEvents call during bootstrap (#6d0d00b)
- remove hard-coded Content-Type in SDK (#f2441cf)
- sync v2 query parameter with ADR (#9940e7e)
- rm unused pkg/service function params (#39c0334)
- remove redundant dic client code (#13aef19)
- Change PublishTopicPrefix value to be 'edgex/events/device' (#37f218f)
- remove unimplemented InitCmd/RemoveCmd configuration (#956) (#457577c)
- Remove obsolete code from Add Secret (#951) (#93abf71)
- Move top level individual config settings under Device section (#356d22d)
- Use common ServiceInfo struct and adjust code/configuration (#a3cc839)
BREAKING CHANGE: Device Service configuration items have changed
- Update to assign and uses new Port Assignments (#1880e37)
- Update for new service key names and overrides for hyphen to underscore (#8132b7b)
BREAKING CHANGE: Service key names used in configuration have changed.
- rename AutoEvent.Frequency field to Interval (#0649751)
- replace usage of io/ioutl package (#cb99f86)
- remove unnecessary check for WriteDeviceCommand (#e2c4148)
- remove RO mapping not found warning log (#bcdc0e5)
- update returned type to errors.Edgex (#eef323e)
- return normal error type in pkg package (#a34d60e)
- refactor MiddlewareFunc (#fd3eb0c)
- Replace use of BurntSushi/toml with pelletier/go-toml (#dd0b196)
- Replace file based with use of Secret Provider to get Access Tokens (#867) (#0004bfd)
BREAKING CHANGE: All Device Services running with the secure Edgex Stack now need to have the SecretStore configured, a Vault token created and run with EDGEX_SECURITY_SECRET_STORE=true.
- Switch to 2.0 Consul path (#8efa047)
BREAKING CHANGE: Consul configuration now under the /2.0/ path
- leverage latest profile cache (#ff9571a)
- move config struct to config package (#5d743f6)
- update bootstrap sequence (#0526fd6)
- remove v1 code and unused constants (#3a954db)
- remove v2 subdirectory for SDK (#269686d)
- rename problematic terminology in SDK (#819fd06)
- use new CommandValue function/method (#df528cb)
- remove default floating encoding (#1a909d6)
- replace PUT command wording to SET command (#6059ff5)
- update logging message of simpledriver (#1c5dcca)
- remove id map and by id method in cache (#59cae24)
- upgrade SDK external function API for v2 (#583d861)
- use constants defined in core-contracts (#91f06a6)
- upgrade async function to handle v2 models (#75ab748)
- upgrade bootstrap procoess for v2 (#d356ded)
- refactor autoevents package for v2 (#316a12a)
- upgrade command API to handle v2 models (#b71bc34)
- upgrade provision package to use v2 models/clients (#62cbe10)
- update clients package to use v2 client (#801d88e)
- update container package for v2 (#ef8f9ac)
- implement new utils function for v2 (#d7fb500)
- upgrade transformer package for v2 (#82016d5)
- upgrade SDK models to use v2 contract(model) (#de17357)
- remove v1 cache and API code (#b998828)
- leverage go-mod-core-contracts constants (#839fdd7)
- consume edgex v2 go-mods (#71e5df7)
- remove ValueType enumeration in Go-SDK (#ba4bab1)
- Make SDK a V2 Go Module (#e04106a)
- Fixup to change all occurances of
secrets' to
secret` (#24db2b5)
- Add badges to readme (#c8eb33a)
- update v2 API swagger file (#97747a4)
- v2: update schema to be consistent with edgex-go (#15155f8)
- update snap build to use go1.16 via a build-snap (#bb5fdaa)
- upgrade Golang to 1.16 (#9773bb9)
- update snap build to use Golang 1.16 (#6dcb0bd)
- update docker image name (#a051116)
- update build files to support zmq dependency (#0b2e4f3)
- standardize dockerfiles (#4682622)
v1.4.0 - 2021-01-08
- update DS in metadata to reflect config change (#a5cd81b)
- add a comment to explain why use buffer for sending event (#e273dc8)
- autoevent adds buffer for sending event to coredata (#1c85f20)
- Make the numeric value type allows overflow and NaN (#1c75f93)
- remove AdminState check for callback api route (#b6110b2)
- add v1 deviceService callback handler (#4cd2f77)
- sdk: Implement Device AutoEvents SDK APIs (#e78e4a6)
- remove github.com/pkg/errors from Attribution.txt (#06df777)
- use pointer on Executor to correctly update it (#2bf6939)
- update release note for 1.4.0 release (#00c0363)
- deps: bump gopkg.in/yaml.v2 from 2.3.0 to 2.4.0 (#7e6026a)
- deps: bump github.com/gorilla/mux from 1.7.1 to 1.8.0 (#ea97e15)
- deps: bump github.com/edgexfoundry/go-mod-bootstrap (#4691506)
- add semantic.yml for commit linting, update PR template to latest (#ea09293)
v1.3.0 - 2020-11-11
- implement Device SDK v2 common API (#fa7ee70)
- implement v2 command API (#619) (#abee7d5)
- implement v2 discovery API (#e0816de)
- sdk: implement v2 callback api (#a3969cc)
- sdk: prepare v2 cache for v2 callback api (#b24cbb4)
- sdk: expose RegistryClient registryClient was already available on DeviceService, just made it public (#096110c)
- sdk: start auto-discovery upon service startup (#9693139)
- pass ctx into client initialization function (#388ecb7)
- improve device discovery flow and whitelist logic (#0e0b041)
- fix autoevent panic during callback (#4c965aa)
- fix device autodiscovery behavior (#4e5d2bb)
- Create a buffer to handle the AsyncValues (#925ab5b)
- update CommandExists to only check Device Commands (#7a69a11)
- allow startup duration/interval to be overridden via env vars (#ea2f983)
- sdk: prevent creating duplicate autoevent executor (#36fb88b)
- update LogLevel for pushing event to coredata (#05d1f85)
- update dockerfile to appropriately use ENTRYPOINT and CMD, closes#569 (#6d7be66)
- sdk: fix requested changes in PR (#97d2159)
- sdk: release lock after discovery complete (#3b7bdf6)
- addition of version and LTS refs to README per arch's meeting (#bced3e5)
- add dependabot.yml (#623c4a4)
- upgrade to use Go 1.15 (#9448c71)
- deps: bump gopkg.in/yaml.v2 from 2.2.8 to 2.3.0 (#bf2f1c2)
- deps: bump github.com/OneOfOne/xxhash from 1.2.6 to 1.2.8 (#e4c69b4)
- deps: bump github.com/edgexfoundry/go-mod-bootstrap (#497e2f1)
- deps: bump github.com/edgexfoundry/go-mod-registry (#a563bd0)
- deps: bump github.com/edgexfoundry/go-mod-bootstrap (#d1e6a07)
v1.2.3 - 2020-07-21
- Remove client monitoring (#57f0453)
v1.2.2 - 2020-06-11
v1.2.1 - 2020-05-13
- Upgrade the Go modules to include the fixes (#d7b2a7f)
- fix device service config stem in consul (#82cb5f2)
- Update to use go-mod-bootstrap to fix issue with override un-done (#bf5510e)
v1.2.0 - 2020-04-27
- environment: Allow uppercase environment overrides (#9151334)
- MediaType: Update to latest go-mod-contracts for PropertyValue.MediaType fix (#84f383f)
- add update profile logic in device callback (#2966048)
- update release notes (#1850fbb)
- Encode the float as base64 string by LB
v1.1.2 - 2020-02-11
- MediaType: Fuji - Update to latest go-mod-contracts for PropertyValue.MediaType fix (#1218022)
v1.1.1 - 2019-12-06
v1.1.0 - 2019-11-11
- server: Add API to allow adding additional routes to internal webserver (#6872dfc)
- query-params: Fix panic if attributes isn't initalized (#dac6f04)
- query-params: Handle QueryParams from EdgeX Command Service (#b172f45)
- fix OS signal handling (#2eb7c7a)
v1.0.0 - 2019-06-25
- add gdoc (#e65a7be)
- minor comments update (#b112f46)