Skip to content

Latest commit

 

History

History
701 lines (580 loc) · 44.1 KB

CHANGELOG.md

File metadata and controls

701 lines (580 loc) · 44.1 KB

Core Contracts Module (in Go)

Github repository

[v3.1.0] - 2023-11-15

✨ Features

🐛 Bug Fixes

  • Use comma without a space as separator to parse array value (2452e70…)
  • Add todo comment for the new Echo API const (e1baa79…)

👷 Build

  • Upgrade to go 1.21 and linter 1.54.2 (aae349d…)

[v3.0.0] - 2023-05-31

Features ✨

  • Using url.PathEscape for http client request path (#6bcf78a)
    BREAKING CHANGE: To consist with the change for MQTT topic path encoding, use PathEscape to encode the API path because the url.QueryEscape encode the empty space to plus sign, and plus sign is invalid for publishing the MQTT message.
    
  • Update API version to v3 (#4f0fdd)
    BREAKING CHANGE: all EdgeX base API version is changed to v3 for REST endpoints
    
  • Add 'discoveredDevice' for discovered device fields (#f889069)
    BREAKING CHANGE: add 'DiscoveredDevice' field which includes profileName,adminState,autoEvents and properties for discovered device
    
  • Update maximum and minimum to float64 data type (#1af2d52)
    BREAKING CHANGE: update maximum and minimum data type from string to float64
    
  • Update ProtocolProperties to have typed values (#d9af69a)
    BREAKING CHANGE: update ProtocolProperties type from 'map[string]string' to 'map[string]any'
    
  • Update data type in ResourceProperties (#9353c25)
    BREAKING CHANGE: update mask,shift,base,scale,offset to numeric data type also rename 'Others' to 'Optional' for the consistency with
    message broker settings.
    
  • Remove Notify out of Device DTO/Model (#cb18066)
    Since core-metadata will publish system event message when device is created or updated, notify is no longer needed and should be removed.
    
  • Add interface for injecting authentication data to outgoing requests (#dc21b6)
    BREAKING CHANGE: This change adds an AuthenticationInjector interface to all http clients. If non-nil, the interface is invoked to add authentication data to the outgoing HTTP request.
    
    While the change does affect the public interface of the HTTP clients, actual requests are only mutated by the authentication injector, which is provided by the consumer.
    
  • Remove LastConnected and LastReported from Device/DeviceService (#fbdba8c3e)
    BREAKING CHANGE: LastConnected and LastReported removed from device and device service DTOs and models
    
  • Add device service name in Add Event API endpoint (#61bd91)
    BREAKING CHANGE: Update EventClient 'Add' method signature
    
  • Remove SimpleReading value required validation for empty string (#0e331f)
  • Allow Device Profile to be empty string in ProvisionWatcher (#d0b069d)
  • Add URLEncode helper function (#cb6c3dd)
  • Add YAML tag for Device and ProvisionWatcher (#19c4f32)
  • Add 'ds-regexcmd' query parameter (#6582a37)
  • Add ability to authenticate outbound IntervalActions (#b2c2176)
  • Use URL escape for device command name and resource name (#1450102)
  • Add 'Others' field in ResourceProperties (#6eb51bb)
  • Add new Properties field to ProvisionWatcher DTO and Model (#4695302)
  • Add new Properties field to Device DTO and Model (#66fa623)
  • Added ValidateDeviceSubscribeTopic (#7d63dd3)
  • Add UnmarshalObjectValue helper function to Reading DTO (#baf7df4)
  • Add topic constants that will replace configured topics (#f8aa83a)
  • Add service key for new core-common-config-bootstrapper service (#28efaad)
  • Implement xml Marshaller interface for event/reading tags (#809b610)

Code Refactoring ♻

  • Modify the numeric data type in Value Properties to pointer (#dc7210)
    BREAKING CHANGE:
    - update mask,shift,base,scale,offset to pointer
    - update maximum and minimum data type from string to float64 pointer
    
  • Change Config stem constants to flatten config layout (#f0cd4eda)
    BREAKING CHANGE: Location of service configuartion in Config Provider (Consul) has changed
    
  • Refactor Secret DTO to rename Path property to SecretName (#36dc869)
      BREAKING CHANGE: Path property renamed to SecretName
    
  • Remove SystemManagementClient (#4228851)
    BREAKING CHANGE: SystemManagementClient no longer available
    
  • Remove old common Metrics DTO and route constant (#3eccfbd9)
    BREAKING CHANGE: /metrics endpoint no longer available for any service
    
  • Use true/false for command parameters to be more consistent (#a2a49d7b)
    BREAKING CHANGE: ds-pushevent and ds-returnevent to use true/false instead of yes/no
    
  • Update module to v3 (#60a23e1e)
    BREAKING CHANGE: Import paths will need to change to v3
    
  • Add new system event type constants and rename action constants (#d129ffd)
  • Remove obsolete swagger doc reference (#73cc6cf)
  • Rename dummy_validator.go to fake_validator.go (#5a07d2b)
  • Changed config version from 3.0 to v3 (#78cc929)

Build 👷

  • Update to Go 1.20 and linter v1.51.2 (#46cc121)

[v2.3.0] - 2022-11-09

Features ✨

  • Reduce the character restriction for name fields (#49dcdfb)
  • Add UoM API route and UoM response DTO (#aa36825)
  • Add new SystemEvent DTO (#c11c1bf)
  • Add SimpleReading value validation to prevent type mismatch (#3cd3c74)

Bug Fixes 🐛

  • Keep the existing baseUrl path in helper function (#abc04af)
  • Remove DeviceProfileBasicInfo fieldName from validation error messages (#8656825)

Code Refactoring ♻

  • Adding config stem constants (#33d1416)
  • Improve string concatenate logic for Metric DTO ToLineProtocol() (#c7c3660)

Documentation 📖

  • Add deprecated annotation to lastConnected and lastReported (#ab92af2)

Build 👷

  • Upgrade to Go 1.18 (#de188ed)
  • Add go build tag to exclude DTO validator (#af18e4a)

[v2.2.0] - 2022-05-11

Features ✨

  • add new method for CommandClient (#a13ffb3)
  • Add new device profile API clients (#3d2ca3b)
  • Add Units property to reading DTO and model (#637851d)
  • Add Metric DTO to hold data for a single metric (#6f432a9)
  • Add DTOs for device profile changes (#ee12520)
  • Remove DeviceProfile deviceResources validate gt=0 (#fd99e17)
  • Add new routes for device profile changes (#e5aff1a)
  • extend DeviceServiceCallbackClient to support validation API (#20c4465)
  • Add ServiceName to Common DTOs (#043134c)
  • update device validation route (#a30116e)
  • add validate API route for device service (#e6de2b0)
  • security: Add a new constant for security-spiffe-token-provider (#306938c)

Test

  • Generate mock CommandClient for unit test (#9b8e31f)

Bug Fixes 🐛

  • Remove redundant URL escaping from Client lib (#c67fdec)
  • Remove JSON omitempty from SimpleReading value (#d83bf3a)
  • Update device resource/command DTO (#59aa69d)
  • Add yaml:inline to DeviceProfile DTO DeviceProfileBasicInfo (#4d80223)
  • Update the ReadWrite validation to include WR (#708) (#b3917be)
  • update network connectivity problem error kind (#a52b776)
  • Adding the missed PATCH method in REST Address DTO (#a113ab0)

Build 👷

  • security: Enable gosec and default linter set (#6ac863c)

[v2.1.0] - 2021-11-17

Features ✨

  • Add Object Value type in Reading (#388af6c)
  • Add Client API to support Object Value type in Set Command (#676) (#762fd04)
  • Add Reading API route constant and client (#635) (#62d0d23)
  • Update routes and ReadingClient for new Reading APIs (#dcbf024)
  • Remove unclear HTTP status code (#646) (#5e91c92)
  • Add omitempty tag to Reading DTO (#630bcf1)
  • Update the api version inside all godoc from 2.x to 2.1.0 (#99ac5f5)
  • command: Add totalCount field into MultiDeviceCoreCommandsResponse DTO (#eaa77a0)
  • data: Add totalCount field into MultiReadingsResponse DTO (#94063c0)
  • data: Use generic interface in the Event Tagging value (#ad694db)
  • data: Add totalCount field into MultiEventsResponse DTO (#e706228)
  • data: Add new core-data reading API route and update ReadingClient (#2d3bd2a)
  • metadata: Add totalCount field into core-metadata multi-instance response DTO (#af86f72)
  • notification: Add totalCount field into multi-instance response DTOs (#a61439c)
  • notifications: Add new notification API route and update TransmissionClient (#e205b66)
  • scheduler: Add totalCount field into multi-instance response DTOs (#e8f11e0)

Bug Fixes 🐛

  • Add missing DBTimestamp for Model To DTO conversion (#c361e36)
  • Update DTO accept empty Id if the name is provided (#35f1535)
  • Fix error message typo (#a2d58b6)
  • data: Add reading id mapping during conversion (#fcb12ca)

[v2.0.0] - 2021-06-30

General

  • v2: Implemented V2 DTOs, Model objects and Clients.
  • v1: Removed v1 APIs and request handling code e59505e

Features ✨

  • v2: Create Constants for configuration's map key (#7342969)
  • notifications: Create client library for support-notifications (#626) (#ee4e77d)
  • SMA: Prepare new route and DTO for SMA v2 redesign (#038c30b)
  • SMA: Add MultiMetricsResponse and MultiConfigsResponse (#6135065)
  • v2: Implement v2 GeneralClient (#ec81246)
  • command: Create v2 client library for core-command (#e46cefb)
  • command: Add parameters field to Core Command (#939edfe)
  • data: Add factory methods for AddEventRequest, Event and Reading DTOs (#00861d0)
  • SMA: Add HealthResponse for SMA GET health API (#5a23571)
  • v2: Added ApiVersion to BaseRequest (#12e7666)
  • meta: Add DeviceResourceResponse DTO and API route (#fc0ca70)
  • meta: Implement the re-designed device profile model (#540) (#1c03d9d)
  • meta: Enhance v2 DeviceServiceCallbackClient (#df388aa)
  • data: Add encoding method for AddEventRequest (#d71b5a3)
  • meta: Rename Resource to SourceName in AutoEvent model (#0ece284)
  • meta: Add error type used by device service data transformation (#076855e)
  • notifications: Return 400 when UpdateSubscription with empty categories, labels (#1521f71)
  • v2: Create a common Address struct for v2 API (#525) (#eae89da)
  • data: Add Origin constant for event and reading v2 API (#6bf0fec)
  • data: Remove created field from Event and Reading (#9016fba)
  • v2: Address add json omitempty and emailAddress struct to DTO (#6d7c8f1)
  • data: Add Encode method for EventResponse (#19b4da6)
  • data: Add CBOR support in EventClient for binary reading (#c13f5d0)
  • SMA: Implement v2 SystemManagementClient (#7d294dd)
  • v2: Add contentType field to Address (#3adadce)
  • scheduler: Update IntervalAction to use the common Address (#81d8f1f)
  • data: Update Add Event route to include SourceName (#778f72f)
  • v2: Add factory methods for DeviceRequest DTO (#6c6dc03)
  • v2: Add factory methods for Request DTO (#5755a25)
  • v2: Enhance the DTO's Json and Validate annotation (#19dc603)
  • command: Remove commandName constant (#673266b)
  • data: Implement UnmarshalCBOR for AddEventRequest DTO (#a85587f)
  • meta: Add resource map for cache (#c58f4e6)
  • meta: Assign ApiVersion for each ConvertModelToDTO func (#99a3cf8)
  • meta: Implement Device Resource Client (#4ed049f)
  • meta: Implement ProvisionWatcherClient (#098d65f)
  • meta: Rename ProfileResource to DeviceCommand for v2 Model and DTO (#d0d059f)
  • notifications: Create Subscription DTO and Model (#6e7f6a6)
  • notifications: Create Transmission DTO and Model (#41d5e11)
  • notifications: Update Subscription DTO to adopt common Address (#50867e2)
  • notifications: Add factory method for Notification DTO (#b2eac77)
  • notifications: Add required const and field for sending service (#59eaa4a)
  • notifications: Add Notification DTO and Model (#24aa260)
  • scheduler: Rename Address field and add interval constant (#4bf416a)
  • scheduler: Create v2 IntervalAction DTO and Model (#ca1ab36)
  • scheduler: Modify import path for v2 Go Model changes (#19021e2)
  • scheduler: Create Interval DTO and Model (#6a623b8)
  • scheduler: Implement Interval and IntervalAction Client (#cf5ddad)
  • v2: BaseResponse omit empty RequestId and Message (#f45e548)
  • v2: Create new ErrKind for Delete API to return 409 (#5f77921)
  • v2: Adjust DeviceServiceCommandClient interface by moving baseURL as func param (#3393ae7)
  • v2: Create Mocking Clients for v2 Client Libraries (#b47bd74)
  • v2: Update DeviceServicCommandClient interface to have queryParams (#76d71ab)
  • v2: Add queryParams as part of SetCommand (#c9200dd)
  • v2: Refactor CoreCommand DTO to DeviceCoreCommand (#d4786e8)
  • v2: Put together the constants of the models package (#7967573)
  • v2: Implement Device Service Command Client (#b433f68)
  • v2: Update the API path to /device/name/{name}/{command} (#ec69e1e)

Code Refactoring ♻

  • scheduler: Remove runOnce from the Interval (#782597b)
  • scheduler: Rename Interval.Frequency field to Interval (#94fa9ab)
  • data: Rename AutoEvent.Frequency field to Interval (#a14145b)
  • security: Removed SecuritySecretsSetupServiceKey (#38ea8fc)
  • v2: Remove edgex-prefix from all service keys (#078c96f)
    BREAKING CHANGE:
    Service key names have changed.
    
  • meta: Rename PropertyValue struct to ResourceProperties (#aae2b6e)
  • v2: Move all constants to common package (#d45ecd7)

[v0.1.149] - 2021-01-19

Features ✨

  • Update device service v2 api route (#eda60ea)

[v0.1.147] - 2021-01-19

Features ✨

  • Enhance v2 validation error message (#07beb41)

[v0.1.146] - 2021-01-14

Features ✨

  • meta: Get profileName & deviceName from req (#92e4a24)
  • meta: Revert to a single AddEventRequest DTO (#a0c1ddc)
  • meta: Update v2 API AddEvent path (#f3d88ad)
  • meta: Complete the EventClient (#b476394)

[v0.1.145] - 2021-01-13

Features ✨

  • data: Update AddEvent to use single AddEventRequest DTO (#6160179)

[v0.1.144] - 2021-01-12

Code Refactoring ♻

  • Chnage from plural Secrets to Secret and SecretData (#0325e96)

[v0.1.142] - 2021-01-08

Features ✨

[v0.1.141] - 2021-01-08

Features ✨

  • meta: Add v2 ProvisionWatcher API route (#f1e1e8b)

[v0.1.140] - 2021-01-08

Features ✨

  • data: Update v2 API AddEvent path (#843dcd9)

[v0.1.139] - 2021-01-06

Features ✨

  • meta: Add RFC3986 validation on name fields (#b61c297)
  • meta: Create ProvisionWatcher Model and DTO (#50cbdd6)

[v0.1.137] - 2021-01-04

Features ✨

  • meta: Add DeviceServiceClient (#d0b5ae4)

[v0.1.136] - 2020-12-30

Features ✨

[v0.1.135] - 2020-12-29

Code Refactoring ♻

  • Refactor logging client to remove remote & file options (#5220a5b)

[v0.1.134] - 2020-12-29

Features ✨

  • Refactor createRequest method (#ae795ac)
  • Add device service callback client (#ed4f318)

[v0.1.133] - 2020-12-28

Features ✨

[v0.1.132] - 2020-12-28

Features ✨

  • v2: Implement custom validation tag for RFC3986 unreserved chars (#4e5601f)
  • v2: Implement custom validation tag for RFC3986 unreserved characters (#fb2b1e2)

[v0.1.131] - 2020-12-16

Features ✨

  • Make valueType case insensitive and covert to camelcase internally (#7940b1d)

Code Refactoring ♻

  • Extract the valueType checking func as validation Tag (#8b4aa8e)

[v0.1.130] - 2020-12-16

Features ✨

  • data: Update core-data v2 API path constants (#7d41c9d)

[v0.1.129] - 2020-12-15

Features ✨

  • meta: Implement validation logic for device profile DTO (#1f27142)

Code Refactoring ♻

  • meta: Use range to iterates element for verifying device profile (#505e46a)

[v0.1.128] - 2020-12-15

Features ✨

  • v2 data: Remove pushed field from Event DTO/Model (#7a3afce)

[v0.1.127] - 2020-12-14

Features ✨

  • Refactor GetRequest func to accept request path and params (#6d5c326)
  • meta: Add v2 client for querying device profile (#db07628)

[v0.1.126] - 2020-12-14

Features ✨

  • meta: Add v2 client for deleting device profile (#47fe6c2)

[v0.1.125] - 2020-12-13

Features ✨

  • Add formatted alternatives to log functions (#580458f)
  • Add support to get current log level (#2708f24)

[v0.1.124] - 2020-12-11

Features ✨

  • Use require pkg to verify test result (#c47e45b)
  • meta: Add v2 client for uploading device profile in YAML file (#1b4ca27)

Code Refactoring ♻

  • meta: Rename request func and add negative test case (#98564d9)

[v0.1.123] - 2020-12-09

Features ✨

  • meta: Add v2 client for adding, updating device profiles (#26f7976)
  • meta: Add v2 client for adding, updating device profiles (#73165ec)

Code Refactoring ♻

  • meta: Refactor http client helper method (#0d0ddc5)
  • meta: v2 Device OperatingState value change (#f86ad7d)

[v0.1.122] - 2020-12-08

Code Refactoring ♻

  • meta: Remove unnecessary comments (#85d4d6a)
  • meta: Remove OperatingState field in DeviceService v2 model (#617ea87)

[v0.1.121] - 2020-12-04

Features ✨

  • data: Remove Labels out of v2 Reading DTO/Model (#8582742)

[v0.1.120] - 2020-12-03

Features ✨

  • data: Add profileName to Event DTO and Model (#3af72c1)

[v0.1.119] - 2020-12-01

Code Refactoring ♻

  • v2: Remove base64 encoding for float value (#26970d7)

[v0.1.118] - 2020-11-30

Bug Fixes 🐛

  • Modify the fields in Reading DTO and Model (#4aa5c7d)

[v0.1.116] - 2020-11-30

Features ✨

  • Add a new CountResponse to replace EventCountResponse and ReadingCountResponse (#80998b0)

[v0.1.115] - 2020-11-21

Features ✨

  • clients: Implement Add method for v2 EventClient (#8845bd7)

[v0.1.114] - 2020-11-19

Bug Fixes 🐛

  • Remove error log message when logging set to STDOUT (#a11423a)

[v0.1.113] - 2020-11-19

Features ✨

  • clients: Add v2 CommonClient (#50f8fed)

[v0.1.112] - 2020-10-27

Bug Fixes 🐛

  • metadata: Add validation tag for UpdateDTO (#38672b8)

[v0.1.111] - 2020-10-23

Code Refactoring ♻

  • Rename constant to match edgex-go funce (#5ae68de)

[v0.1.110] - 2020-10-23

Code Refactoring ♻

  • data: Modify event and reading v2 API route path (#f996e27)

[v0.1.109] - 2020-10-20

Features ✨

  • Add ContentTypeXML to clients.constants (#3050e5e)

[v0.1.108] - 2020-10-20

Code Refactoring ♻

  • Remove all ResponseNoMessage funcs in v2 (#c01bdb9)

[v0.1.106] - 2020-10-20

Features ✨

  • v2: Update DTOs for UpdateEventPushed (#cbe9a46)

[v0.1.105] - 2020-10-19

Bug Fixes 🐛

  • Replace broken link in pull request template (#e304680)

[v0.1.104] - 2020-10-19

Features ✨

  • Add constant for Redis bootstrap (#ba4de2a)

[v0.1.103] - 2020-10-19

Features ✨

  • metadata: Add label constant for redis key (#0a8b18e)

[v0.1.102] - 2020-10-19

Features ✨

  • metadata: Add API route path for device (#ac01b7b)

[v0.1.101] - 2020-10-19

Features ✨

  • Add more constants core-data and metadatai (#ba17f5c)

[v0.1.100] - 2020-10-14

Features ✨

  • v2: Add new constant for comma separator to split labels (#d6824fd)

[v0.1.99] - 2020-10-14

Features ✨

  • v2: Add new constants and default value for offset, limit, and labels (#9368c2f)

[v0.1.98] - 2020-10-14

Features ✨

  • v2: Add new error kind for indicating requested range not satisfiable (#23ef20d)

[v0.1.97] - 2020-10-12

Features ✨

  • v2: Add new Response DTOs to return an array of objects (#b203258)

[v0.1.96] - 2020-10-12

Bug Fixes 🐛

  • Rename deviceId to deviceName from Event DTO (#da55c3b)

[v0.1.95] - 2020-10-12

Bug Fixes 🐛

[v0.1.94] - 2020-10-09

Features ✨

  • metadata: Modified deviceProfile DTO to support PUT API (#cadcd80)

[v0.1.93] - 2020-10-08

Features ✨

  • metadata: Add API route path for device service (#b736a93)

[v0.1.91] - 2020-10-07

Features ✨

  • metadata: Add API route path for device profile (#bc90a46)

[v0.1.89] - 2020-10-01

Bug Fixes 🐛

  • metadata: Add Id field to DTO Model transform func (#8c13419)

[v0.1.88] - 2020-10-01

Bug Fixes 🐛

  • notifications: Add ContentType to client struct (#f9360e8)

[v0.1.86] - 2020-09-30

Features ✨

  • metadata: Add func to transform the deviceProfile model to DTO (#da904d6)

[v0.1.84] - 2020-09-25

Features ✨

  • Add new error types for device SDK v2 API (#eea4301)

[v0.1.82] - 2020-09-22

Fix

  • Error msg should return first non-empty msg (#b21f5c8)

[v0.1.81] - 2020-09-22

Features ✨

  • metadata: Add API route path for metadata v2 API (#cbead72)

[v0.1.78] - 2020-09-11

Features ✨

  • New error mechanism for v2 API (#35b6e46)

Code Refactoring ♻

  • Use int for statusCode instead of uint16 (#5c2b418)

[v0.1.77] - 2020-09-09

Bug Fixes 🐛

  • RequestId in v2 API can be empty or uuid (#d723a17)

[v0.1.76] - 2020-09-09

Bug Fixes 🐛

  • Don't in-line Metrics property on MetricsResponse so that it matches swagger (#267d3ce)

[v0.1.75] - 2020-09-04

Bug Fixes 🐛

  • Provided custom XML marshaling of Event (#64c3076)

[v0.1.74] - 2020-09-01

Features ✨

  • Add Tags to V1 Event's UnmarshalJSON (#570feb4)
  • Add Tags field to V1 Event model and v2 Event DTO and model (#f295970)

[v0.1.72] - 2020-08-18

Features ✨

  • Add Reading DTO ValueType value validation (#9dedf25)

[v0.1.71] - 2020-08-17

Features ✨

  • metadata: Add Versionable to v2 Response DTO (#7a8de45)

[v0.1.70] - 2020-08-14

Features ✨

  • metadata: Create metadata updating DTOs (#f8d5fa6)

[v0.1.68] - 2020-08-06

Refactor

  • Improve Reading field accessibility (#59edc6d)

[v0.1.67] - 2020-08-05

Features ✨

  • metadata: Create metadata DTOs and models for v2 API (#37282b2)

[v0.1.66] - 2020-08-04

Features ✨

  • Update common Response DTOs (Add factory method & remove BaseResponse) (#98665c9)

Fixed

[v0.1.65] - 2020-07-20

Features ✨

  • Add func to convert event and reading from model to DTO (#2d40e57)
  • Add API version for v2 DTO (#3c79dc8)

[v0.1.64] - 2020-07-10

Code Refactoring ♻

  • Rename device field to deviceName in v2 CoreData DTO and Model In Event and Reading, there is a device field. According to Core WG meeting on July 9th 2020, we need to rename to deviceName to make it explicit. Fix: #251 (#6fb5b16)

[v0.1.63] - 2020-07-08

Code Refactoring ♻

[v0.1.60] - 2020-06-22

Features ✨

  • Normalize reading's valueType letter case Since Go DS and C DS send reading with different letter cases, we should normalize the valueType to make it consistent. (#e04bdb8)

[v0.1.36] - 2019-12-13

Bug

  • modules: Add missing yaml attribue to PropertyValue.MediaType (#e9879d5)

[v0.1.32] - 2019-10-22

Reverts

  • Add Parameters field to models.Operations struct