Skip to content

Latest commit

 

History

History
844 lines (672 loc) · 81.5 KB

CHANGELOG.md

File metadata and controls

844 lines (672 loc) · 81.5 KB

App Functions SDK (in Go)

Github repository

Change Logs for EdgeX Dependencies

[v3.1.0] - 2023-11-15

✨ Features

  • (security) Add authentication hooks to routes (fa33c88…)
  • (transforms) Add support for specifying http request headers for HTTP export (29a8308…)
  • (transforms) Implement regular expressions functionality in filtering (377d8bc…)
  • Add MQTT Will configuration for MQTT Export (#1495) (03e14d6…)
  • Add Will configuration elements for External MQTT trigger config (#1493) (005c7e8…)
  • Add error metrics for HTTP and MQTT export errors (#1484) (21b9ff9…)
  • Add new ReadingClient API to service and context (#1482) (94620e0…)
  • Change AddCustomRoute to use Echo handler signature (#1469) (33d4442…)
  • Replace gorilla/mux router with echo (#1464) (929e0b7…)
  • Add capability to Publish to MessageBus when using non-MessageBus triggers (0caaaeb…)
  • Fix logic to better error handling when common config is missing when runs in hybrid mode (2f8bfc8…)
  • Add API to get SDK's App Context (7d6e55d…)

♻ Code Refactoring

  • Remove github.com/pkg/errors from Attribution.txt (5701c44…)
  • Use new Common Controller for handling common APIs (9cb48b4…)

🐛 Bug Fixes

  • (security) Mark AddRoute(unauthenticated) as Deprecated (2327eac…)
  • Remove attempt to connect to the MessageBus from trigger (#1498) (5a64b07…)
  • Add missing contentType to new Publish APIs (9b07666…)
  • Update Copy right and added call to ConfigureCors() (bbc2a8d…)
  • Improve clarity of error messages in regexp filtering (0cf7aa9…)
  • Fixed linter issue in unit test (af96062…)
  • Use released SDK version in App Template (67af729…)

📖 Documentation

👷 Build

🤖 Continuous Integration

  • Add automated release workflow on tag creation (b94b540…)

[v3.0.1] Minnesota - 2023-07-25 (Only compatible with the 3.x releases)

Features ✨

Security - Add missing authentication hooks to standard routes (#1447)

BREAKING CHANGE: EdgeX standard routes, except /ping, will require authentication when running in secure mode

[v3.0.0] Minnesota - 2023-05-31 (Only compatible with the 3.x releases)

Features ✨

  • Consume new -d/--dev Dev Mode command-line flag (#1397) (#199daa5)
  • Consume SecretProvider breaking changes (#1383) (#716268c)
  • Consume watch for common Writable config changes (#1347) (#87b6fb4)
  • Support JWT microservice authentication (#1331) (#d409af3)
  • Add RemoveAllFunctionPipelines in ApplicationService interface (#1220) (#0ecd0af)
  • Add core command client via message bus to app-service-template (#1274) (#1af21c3)

Bug Fixes 🐛

  • Make Compression functions thread safe (#1375) (#592d573)
  • Correct the metric name that is registered (#1269) (#d560509)
  • webserver: fix a nil pointer crash when enabling the https web server (#1316) (#2584b24)

Code Refactoring ♻

  • Rename MakeItRun and MakeItStop APIs to Run and Stop (#7915819)
    BREAKING CHANGE: MakeItRun renamed to Run and MakeItStop renamed to Stop
    
  • Change configuration file format to YAML (#f43ee24)
    BREAKING CHANGE: Configuration file now uses YAML format, default file name is now configuration.yaml
    
  • Renamed secretName to secretValueKey and secretPath to secretName (#4c69509)
    BREAKING CHANGE: Renamed secretName to secretValueKey and secretPath to secretName for all pipeline function paramters
    
  • Move swagger to v3 (#23a06a)
    BREAKING CHANGE: Swagger for API reference has been move to 3.0.0
    
  • Consume Secret DTO changes (#de29a595)
    BREAKING CHANGE: Secret DTO object in core contracts uses SecretName instead of Path
    
  • Prepend base topic to all topics (#ba1091ba)
    BREAKING CHANGE: All subcribe and publish topics now have the configured base topic ("edgex/" by default) prepened automatically. Configured topics and topics in code need to have "edgex/" removed.
    
  • Replace internal topics from config with new constants (#a57f3f5)
    BREAKING CHANGE: Internal topics no longer configurable, except the base topic. Trigger topics for edgex-messagebus and external-mqtt now directly under Trigger section.
    
  • Updates for common config(#1be498e)
    BREAKING CHANGE: configuration file changed to remove common config settings
    
  • Use latest MessageBus for new Request API (#3eb0e8b)
    BREAKING CHANGE: Topics for Commands via MessageBus have changed.
    
  • Update message bus topic wild cards (#3ca42d5)
    BREAKING CHANGE: use MQTT wild cards + for single level and # for multiple levels
    
  • Remove old metrics collection and REST /metrics endpoint (#34fb173)
    BREAKING CHANGE: /metrics endpoint no longer available for any service
    
  • Update config for removal of SecretStore from services' configuration file(#a745a1e)
    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 stand alone MessageBus Configuration (#a2c5c7d)
    BREAKING CHANGE: MessageBus Configuration moved outside Trigger configuration for edgex-messagebus trigger type. This is so it is availble with other trigger types for metrics and commanding. See V3 migration guide.
    
  • Remove ZeroMQ MessageBus capability (#5e53b62)
    BREAKING CHANGE: ZeroMQ MessageBus capability no longer available
    
  • Rename command line flags for the sake of consistency (#bf729f07)
    BREAKING CHANGE: renamed `-c/--confdir` to `-cd/--configDir`and `-f/--file` to `-cf/--configFile`
    
  • Use config stem from common constants (#d07e07)
    BREAKING CHANGE: Location of service's configuration in Consul has changed
    
  • Update module to v3 (#1061222)
    BREAKING CHANGE: Import paths will need to change to v3
    
  • store-forward: Use common Database struct from go-mod-bootstrap directly (#b5eda90)
    BREAKING CHANGE: Service and Store interfaces now use Database struct from go-mod-bootstrap. Custom App Services using those specifc APIs will required migration.
    
  • Change HTTPSender factory methods and receivers to use pointers (#1259) (#fb7a401)
    BREAKING CHANGE: change HTTPSender factory methods and receivers to use pointers
    
  • Change all factory methods and receiver functions to use pointers (#1261) (#2bf8d04)
    BREAKING CHANGE: change all factory methods and receiver functions to use pointers
    
  • Remove deprecated NewTags() factory method and rename … (#1258) (#8092c7e)
    BREAKING CHANGE: remove deprecated NewTags() factory method and rename NewGenericTags() to NewTags
    
  • Remove deprecated SecretsLastUpdated code (#1256) (#4b1b6c8)
    BREAKING CHANGE: remove deprecated SecretsLastUpdated code, use SecretProvider
    
  • Remove deprecated StoreSecret code (#1254) (#100e6de)
    BREAKING CHANGE: remove deprecated StoreSecret code, use SecretProvider
    
  • Remove deprecated GetSecret code (#1251) (#e59d3cb)
    BREAKING CHANGE: remove deprecated GetSecret, use SecretProvider
    
  • Remove deprecated EncryptWithAES code (#1235) (#19e77ea)
    BREAKING CHANGE: removed EncryptWithAES, use AESProtection.Encrypt
    
  • Remove deprecated LoadConfigurablePipeline function (#1234) (#05fb931)
    BREAKING CHANGE: remove deprecated code for LoadConfigurablePipeline2, use LoadConfigurableFunctionPipelines
    
  • Remove deprecated SetFunctionsPipeline code (#1231) (#529d23f)
    BREAKING CHANGE: Removed SetFunctionsPipeline, use SetDefaultFunctionsPipeline
    
  • Remove Deprecated PushToCoreData (#1282) (#d782540)
    BREAKING CHANGE: Removed deprecated PushToCoreData, replaced by WrapIntoEvent which is then used to publish directly to the MessageBus
    
  • Refactor Target Type flags for configurable functions pipeline (#1285) (#83561e9)
    BREAKING CHANGE: UseTargetTypeOfByteArray and UseTargetTypeOfMetric has been replaced, use TargetType this takes string inputs: raw, metric or event
    
  • Update swagger to match latest change in go-mod-contracts dtos common Secret (#1307) (#59d0a14)
  • Rename toml references in comments to yaml (#1369) (#9c6013f)
  • Clean up all remaining reverences to v2 in the code (#5cec24b)
  • Add benchmark tests for running compression functions with multiple goroutines (#a57a250)
  • Make Compression functions thread safe (#097a002)
  • Change mqtt connect handler for multiple subscribe (#1232) (#8a09cca)
  • Renamed GolangRuntime to FunctionPipelineRuntime (#1229) (#77b43ae)
  • Implement error interface for MessageError (#1270) (#4d6f96c)
  • Remove deprecated Process code (#1240) (#a81394e)

Build 👷

  • Ignore all go-mod deps, except go-mod-bootstrap (#e86759e)
  • Disable CGO for all docker builds so always work (#1249) (#048555f)
  • Update to Go 1.20, Alpine 3.17 and linter v1.51.2 (#1353) (#2c071f0)
  • Update to latest modules w/o TOML package (#1367) (#99c5002)

[v2.3.1] Levski - 2023-04-12 (Only compatible with the 2.x releases)

Bug Fixes 🐛

  • Make Compression functions thread safe (#d5509e3)

[v2.3.0] Levski - 2022-11-09 (Only compatible with the 2.x releases)

Features ✨

  • NATS MessageBus capability (see go-mod-messaging )
  • Expose SecretProvider so new APIs are accessible (#1170) (#930c952)
  • Add new transform which wraps data into an Event (#1154) (#13a0e4a)
  • Add InvalidMessagesReceived service metric (#1123) (#e0accd9)
  • metrics: Add metric to capture MQTT export size in bytes (#1137) (#08a153b)
  • metrics: Add metric to capture HTTP export size in bytes (#1132) (#ef8b75d)
  • metrics: Add metric to capture count of errors from function pipelines (#1133) (#819947f)

Bug Fixes 🐛

  • Fix template issues (#1191) (#b219f0d)
  • Use correct metric instance when reporting PipelineMessagesProcessed (#1197) (#cec20cd)
  • Update Pipeline topics when writable pipeline changed (#1198) (#bf1cebf)
  • When MQTT authmode=cacert, set RootCAs on TLS config (#1178) (#b027ae0)
  • Username may be required when MQTT cert authentication (#1215) (#1bb3010)
  • triggers: Correct term "MQTT" in MessageBus trigger log (#1126) (#de1c054)

Documentation 📖

  • Update attribution.txt to reference paho license as v2.0 (#1129) (#95730d3)
  • Fix typo in CommandClient description (#1173) (#77f92e9)
  • Correct spelling errors in app template config file (#1208) (#78eeb4c)
  • Updated comments in Telemetry config for App Template (#1141) (#4db1c5b)

Build 👷

[v2.2.0] Kamakura - 2022-05-11 (Only compatible with the 2.x releases)

Features ✨

  • Add option for Batch to merge results before sending. (#1103) (#8ff173f)
  • Add pipeline IDs as tags to the metris collected for each pipeline. (#1102) (#cad5e53)
  • Add Line Protocol function to transform Metric DTO (#1100) (#4ae2578)
  • Added initial SDK level App service metrics (#1098) (#3a510b3)
  • Added support for custom app service to have custom service metrics (#1094) (#a0ca9d1)
  • Enable Delayed Start and Service Metrics capability (#1093) (#cf0a0b1)
  • Optimize findMatchingFunction (#1071) (#5f18f9a)
  • Expose the RequestTimeout configuration setting to app service (#1039) (#c8cbc5e)
  • Improve service initialization process (#1047) (#6bcd8b5)
  • Location of client service obtained from the registry (#1038) (#cc5ba68)
  • store-forward: Enable Custom Factory Registration (#1051) (#c4fff4f)
  • webserver: Create Common DTOs with ServiceName (#1029) (#3b5051e)

Test

Bug Fixes 🐛

  • Use latest 1.8.8 of redigo and ignore bad v2.0.0 tag (#1049) (#73b9dee)
  • Refine the retry mechanism inside the MQTT trigger Initialize func (#1090) (#241a840)
  • Missed ServiceName in Swagger (#1033) (#1fe855a)
  • Update sample data in swagger for /secret to be correct (#1075) (#7cb97b0)
  • Enable controller tests to run and fix failures (#1067) (#2bb5a09)
  • improper use of secretAddedSignal channel (#1054) (#50cceb0)
  • Update all doc links in app template to refer to version 2.2 (#1105) (#8d5a86b)
  • configuration: add handling for custom configuration section in c… (#1082) (#e072562)
  • triggers: Write HTTP Response Data (#1034) (#7f6b5c5)
  • triggers: Log / Config Access (#1021) (#221b25e)
  • triggers: Return Bad Request Errors Where Appropriate (#1022) (#354085e)
  • triggers: Pass Child Context to Response Handler (#1011) (#4ccfd54)

Code Refactoring ♻

Documentation 📖

Build 👷

  • enable security hardening (#1079) (#ba5e325)

  • Update to latest go-mod-messaging w/o ZMQ on windows (#1009) (#d30acd6)

    BREAKING CHANGE:
    ZeroMQ no longer supported on native Windows for EdgeX
    MessageBus
    

Continuous Integration 🔄

[v2.1.0] Jakarta - 2021-11-17 (Only compatible with the 2.x releases)

Features ✨

  • Updated CORs implementation to handle preflight request (#990) (#d9713a4)
  • Add CORS support (#983) (#2f5b3cf)
  • Add Pipeline per Topic capability (#938) (#262cc6a)
  • Add Clone to Context (#950) (#b86fbeb)
  • Support Multi-Topic Pipeline Configuration (#947) (#0793683)
  • Custom Trigger Multi-Pipeline Support (#941) (#18ff6e1)
  • transforms: Enable Batch to optionally marshal data as Events (#977) (#b877746)
  • transforms: Add support for Object type to PushToCore function (#973) (#162e49c)
  • transforms: Add ability to use generic Event tags (#969) (#83cc0a2)
  • transforms: new AES 256 Encryption Transform (#984) (#8fa13c6)

Bug Fixes 🐛

  • Update docs links in README to 2.0 version of links (#943) (#a082b2d)
  • runtime: ignore charset in unmarshalPayload for Content-Type comparison (#951) (#952) (#be777dc)

Code Refactoring ♻

  • Clean up TOML quotes and add LF MD files (#63ccb94)

[v2.0.1] Ireland - 2021-07-28 (Not Compatible with 1.x releases)

Bug Fixes 🐛

  • FilterByResourceName - Create Event copy with all required fields (#925) (#e52849b)
  • Set logger in MqttFactory to avoid panic when AuthMode is empty (#926) (#1bc0c5a)
  • Change logging of CorrelationID to use proper function call (#924) (#83c633e)

Build 👷

  • Change swagger to publish version to 2.0.0 (#919) (#b10469f)

[v2.0.0] Ireland - 2021-06-30 (Not Compatible with 1.x releases)

Features ✨

  • Add debug logging of Event/Reading details (#666) (#fc40647)

  • Upgrade to new V2 Clients and refactored PushToCore context API (#882) (#69a9f95)

    BREAKING CHANGE:
    PushToCore signature and required parameters have changed
    
  • Remove deprecated MQTTSend pipeline function (#592) (#c9ed7d5)

    BREAKING CHANGE:
    MQTTSend pipeline function no longer available. Replaced by MQTTSecretSend. 
    
  • Remove MarkAsPushed context API (#607) (#c562d37)

    BREAKING CHANGE:
    MarkAsPushed API is no longer available. 
    
  • Allow for multiple MessageBus subscription topics (#625) (#b307360)

  • Expect V2 Event DTO from triggers. (#616) (#2ceec0a)

    BREAKING CHANGE:
    Event and Reading DTOs have differrent/add/renamed fields from the V1 Event and Reading Models
    
  • Add secure MessageBus capability (#816) (#3b42cf3)

  • Switch to Redis as the default MessageBus for template service (#811) (#89c75ca)

  • Enable Registry and Config access token (#772) (#774021d)

  • Add GetAppSetting convenience API (#761) (#7158bb1)

  • Add custom structured configuration capability (#753) (#bc08826)

  • Port service template from hanoi branch (#703) (#ec0576e)

  • Add debug logging of the Event Tags (#dfa455d)

  • Remove remote logging service capability (#585) (#e5100d5)

  • Use V2 Command Client (#845) (#65135f1)

  • Use ResponseContentType in MessageBus (#644) (#8142930)

  • Add Storage to Context Interface (#867) (#d2e4f3e)

  • Add MakeItStop to stop the function pipeline form executing (#613) (#baae3ee)

  • Enable Custom Trigger Registration (#587) (#8220514)

  • store-forward: Remove Mongo as supported DB option (#589) (#d5e638f)

    BREAKING CHANGE:
    Mongo DB no longer availble as an option
    
  • transforms: Refactored PushToCore function (#882) (#69a9f95)

    BREAKING CHANGE:
    PushToCore required parameters have changed
    
  • transforms: Add ability to chain HTTP exports for export to multiple destinations (#860) (#1d9ed87)

  • transforms: Remove MarkAsPushed function (#607) (#c562d37)

    BREAKING CHANGE:
    MarkAsPushed is no longer available. 
    
  • transforms: Update Filters for V2 DTO changes (#680) (#583298e)

    BREAKING CHANGE:
    FilterByValueDescriptor has chnaged to FilterByResourceName
    
  • transforms: Add new FilterBySourceName function (#731) (#3ee2f0b)

  • transforms: Add secrets capability to Encryption pipeline function (#706) (#e84fe62)

  • transforms: Add KeepAlive and ConnectionTimeout to MQTT Export settings (#859) (#d9301fa)

  • transforms: Add URL Formatting To HTTP Sender (#877) (#24752ac)

  • transforms: Use Default Topic Formatting for Triggers (#897) (#b82a6b8)

  • transforms: Add Topic Formatting Capability to MQTTSecretSender (#872) (#881afdc)

Bug Fixes 🐛

  • Errors in dynamic pipeline updates allow previous pipeline to run, hiding the errors (#711) (#db11a9b)
  • Clean up retry properties and update secret path (#865) (#83c109e)
  • Added missing .ExternalMqtt subsection to error log message (#836) (#7563e5d)
  • Add missing instructions to remove replace statement from go.mod file (#818) (#caac711)
  • Fix webserver to use ServerBindAddr only if not blank, same as rest of EdgeX Services (#776) (#1fb879a)
    BREAKING CHANGE:
    Webserver will be locked down to listen just to `Host` value when If `ServerBindAddr ` is blank
    
  • Add json array check when determining CBOR of JSON encoding (#896) (#d07bca6)
  • Normalize Trigger Factory Returns (#699) (#d22e914)

Code Refactoring ♻

  • Use Core Metadata version API for version check (#906) (#94336c9)

  • Replace use of deprecated io/ioutil with proper package (#893) (#a453267)

  • Remove support for V1 Events/Readings (#889) (#d651532)

    BREAKING CHANGE:
    V1 Events/Readings no longer supported
    
  • Use common ServiceInfo struct and adjust code/configuration (#855) (#d73e4bf)

    BREAKING CHANGE:
    App Service's [Service] configuation has changed
    
  • Update to use new Port assignments (#850) (#497a5d9)

  • Update for new service key names and overrides for hyphen to underscore (#838) (#d014dc0)

    BREAKING CHANGE:
    Service key names used in configuration have changed.
    
  • Move topic config to appropriate config struct (#830) (#c9e8075)

    BREAKING CHANGE:
    Edgex-MessageBus and External-Mqtt configuration has changed
    
  • Replace file based with use of Secret Provider to get Access Tokens (#784) (#c52b117)

    BREAKING CHANGE:
    All App 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 (#782) (#da3d051)

    BREAKING CHANGE:
    Consul configuration now under the `/2.0/` path
    
  • Update Version Check to use V2 endpoint (#778) (#a3b28f5)

  • Make SDK a V2 Go Module (#643) (#29611b3)

    BREAKING CHANGE:
    Custom App Service's go.mod must have /v2 on end of SDK url
    All SDK imports must have /v2 in the path
    
  • Change to using service keys for names in Clients configuration (#747) (#c6680ff)

    BREAKING CHANGE:
    Clients configuration has changed and must be updated to use service keys for names
    
  • Rework SDK to use Interfaces and factory methods (#741) (#3a57661)

    BREAKING CHANGE:
    App Services will require refactoring to use new interfaces  and factory methods
    
  • Remove V1 REST API code and swagger (#730) (#7e0294b)

    BREAKING CHANGE:
    V1 REST API's no longer supported. Replaced by V2 REST API code and swagger.
    
  • Consolidate function pipeline configuration (#728) (#4a1f060)

    BREAKING CHANGE:
    Configuable Pipeline function setting have changed 
    
  • Restructure Trigger configuration (#724) (#8767d03)

    BREAKING CHANGE:
    - Renamed `Binding` to `Trigger`
    - Removed deprecated `MessageBus` trigger type, replaced by`edgex-messagebus`
    - Renamed `MessageBus` to `EdgexMessageBus`
    - Move `EdgexMessageBus` and `ExternalMqtt` under `Trigger` configuration
    
  • Remove deprecated environment variables and related code (#718) (#866257f)

    BREAKING CHANGE:
    The following environment variables no longer supported:
    - `edgex_profile` (replaced by uppercase version)
    - `edgex_service`
    
  • Rename MqttBroker configuration to ExternalMqtt (#717) (#a6c3fef)

    BREAKING CHANGE:
    Configuration section name changed
    
  • Rework secrets for HTTP Export so value in InsecureSecrets can be overridden (#714) (#4075ac3)

    BREAKING CHANGE:
    Parameters have changed for HTTP Post/Put with SecretHeader
    
  • Refactor V2 API /secrets to be singular /secret (#648) (#78327a4)

    BREAKING CHANGE:
    /api/v1/secrets changed to /api/v2/secret and expected JSON has chnaged
    
  • v2: Update Custom Trigger Configuration (#764) (#ad2f1fe)

Documentation 📖

Continuous Integration 🔄

[v1.3.1] Hanoi - 2021-02-04 (Compatible with all V1 Releases)

Bug Fixes 🐛

  • Upgrade to go-mod-messaging with ZMQ fix (#660) (#eab384c)

[v1.3.0] Hanoi - 2020-11-11 (Compatible with all V1 Releases)

Features ✨

Bug Fixes 🐛

  • Fix response content type issue 567 (#568) (#a22ec22)
  • http trigger response can set content-type (#551) (#d7502e4)
  • Adjust timing so test doesn't fail intermittently (#549) (#529345a)
  • backwards compatibility broken by #406, fixes #408 (#409) (#6ebb1d4)
  • Set Redis password in MessageBus.Optional when using redisstreams (#534) (#7fa6067)
  • Skip compatibility check when Core Data's version is 0.0.0 (developer build) (#533) (#35ab7bc)
  • Make path property required for the Secrets V1 & V2 APIs (#497) (#a28a1e2)
  • Data races detected from messagbus unit test #488 (#489) (#c0b07c9)
  • Fix unit tests that fail when using Go 1.15 (#485) (#dd68bd8)
  • Add locking around MQTT client setup and around connecting to avoid race conditions. (#474) (#b0f6186)
  • Request DTO's RequestId is not required. Can be blank or a valid UUID (#475) (#3e706d9)
  • Data races detected from Batch function #448 (#449) (#337bfa7)
  • Rename swagger file to use yaml extension. (#465) (#a75dd35)
  • Trigger API schema type of text for errors is invalid, should be string (#453) (#6b45ea7)
  • V2 Secrets return proper 201, 400 or 500 status codes, not 207. (#443) (#fc2196f)
  • Allow startup duration/interval to be overridden via environement vars (#426) (#5d4b522)
  • InsecureSecrets change processing should update SecretProvider.LastUpdated (#420) (#a9fe1e5)
  • app-service-configurable issue 74 (#383) (#f08b8d6)
  • sdk: Fix version check to handle new core-data dev versions. (#416) (#4847189)
  • triggers: MQTT subscribe via onConnect handler so re-subscribe on reconnects (#537) (#c8e7ff0)

Code Refactoring ♻

  • Replace calling NewBaseResponseWithoutMessage with NewBaseResponse (#557) (#10e68ac)
  • Change all unit tests to use logger.NewMockCient() (#555) (#02b6e43)
  • Refactor V2 API to use new errors mechanism for go-mo-core-contracts (#494) (#e35ffeb)
  • Remove Client monitoring. (#386) (#0aa127b)

Documentation 📖

  • addition of version and LTS refs to README per arch's meeting (#7a11604)
  • update pr template to include dependencies question (#382) (#b5e0c58)

Build 👷

  • Switch to use Go 1.15 (#478) (#6f19a0c)
  • Enable DependaBot via YML file, rather than external BOT (#030bce6)

Continuous Integration 🔄

  • update scopes and types for conventional commits (#561) (#07f5e21)

[v1.2.0] Geneva - 2020-06-11 (Compatible with all V1 Releases)

Fix

  • fixed log message formatting (#378)

Feat

  • Add ability to Filter functions to reverse the logic to filter out specified names (#375)

Fix

  • Allow overrides that have empty/blank value (#374)

Docs

  • update changelog

[v1.1.0] Fuji - 2020-05-12 (Compatible with all V1 Releases)

CI

Docs

  • update links to point to v1.2 #d3c62bb
  • move docs to edgex-docs #76095f3
  • pr-template: remove contribution guidelines from PR checklist since commitlint checks this #4321bad
  • adding batch to TOC #9695d7b
  • batch documentation created #2d51189
  • Update PR Template based on feedback #b1a1b0b
  • Add webserver usage to ToC #7ea3b5e
  • swagger: add swagger annotations to generate spec from code #8e83cab
  • PR Template #ec47f61
  • changelog information #75cbd94

Refactor

  • Change serviceName override to be ServiceKey (#365) #85cb718
  • CBOR: Replace ugorji/go with fixmacker/cbor #93f855c
  • tests: Fix order of expected vs actual and other clean up #c0ff507
  • sdk: Add MQTT MessageBus Support #9cc961e
  • Updated to use latest core-contracts changes #7c6633a
  • examples: Move examples out of SDK into new app-service-examples repo #ed9e796
  • formatted code #c6dcc18
  • sdk: Update usage of NewSecretClient to use the latest go-mod-secrets #8b11b1f

Build

  • Updated to latest go-mod-core-contract for bug fix (#364) #aceb24c
  • go.mod: update dependencies #2da5c5e
  • update go version to 1.13 #b26dc8a
  • Update relevant files in app-functions-sdk-go for Go 1.13. Close #280 #0123828
  • Jenkinsfile: Pipeline changes for Geneva release #5de66a3
  • Attribution: Add missing Attribution.txt file and update makefile test target #6f1a755
  • go.mod: Add running go mod tidy to make test #d24fbcd
  • makefile: allow building in gopath by setting GO111MODULE=on #d11277d

Fix

  • Add more sleep time to Batch and Send unit test to fix ARM CI failures (#361) #2c4cbff
  • Use correct parameter key name for MQTTSecretSend AuthMode in configurable pipeline (#358) #b47159d
  • Implement smarter configuration update processing (#354) #678d12a
  • Added longer sleep to fix intermittent unit test failure on ARM (#352) #65b44ef
  • JSONLogic now runs rules everytime insted of 1st time [#e83dc16](https://github.com/edgexfoundry/app-functions-sdk-go/commits/e83dc16c714ff806052072b14cc5f609f337ef7a
  • retry loop: Wrap version check and DB connection is a retry loop instead of sending an error (#345) #1bfa060
  • Use credentials from Database config if not found in InsecureSecrets #5c97927
  • Remove code that returns empty credentials for Redis #bd9dac5
  • Handle deprecated edgex_service env variable #9e68ba5
  • profile: Set profile properly in service's service key when env override used #f6dd20a
  • SecretClient: Initialization of secret client retry logic #ba62973
  • SecurityProvider: Make initialization of secret clients optional #4b86353
  • batch: 2nd batch hanging in count mode #3879fbb
  • go.mod: Removed wrong version of ZMQ package used. #4bd3797
  • trigger: invoke connect on initialization #b5a07d6
  • StoreForward: Add missing retrieval of DB credentials from Vault #e2e81ce
  • urlclient: Update contracts version to fix bug in URLClient. #a8ba403
  • README: Fix example code in README to not panic if LoggingClient not initialized #a7f6acd

Test

  • fix race condition in batch tests #87f21c6
  • fix timing issue with Batch transform test #701e960

Feat

  • Add ability for command-line and environment override of service name (#356) #dcb01ac
  • Integrate with new redis streams message bus implementation #6fcbfc4
  • bootstrap: Integrate go-mod-bootstrap for common bootstraping #1034e84
  • configurable: add mqtt secret support #d9433ed
  • mqtt: add security provider support for mqtt connection #9695290
  • configurable: support secrets for http export #3358642
  • configurable: add JSONLogic #e05bd13
  • configurable: add batch functions [#3ef7d39](https://github.com/edgexfoundry/app-functions-sdk-go/commits/3ef7d39f8f6b264ec371b2a4968901b46d76af58
  • security: Add second SecurityStore client for service specific secrets #204e3ef
  • http-export: add support for auth token in header #311414e
  • jsonlogic: add filter feature of jsonlogic #9637eb0
  • core contracts: Upgrade to latest Core Contracts for Reading enhancements #a93dbb5
  • sdk: Add full path to secrets api route #9f72141
  • sdk: Implement StoreSecrets in app functions SDK #1f7dc12
  • sdk: Add support for insecure secrets for when running non secure mode #ad238fe
  • sdk: Add helper function to SDK to get string slice from App Settings. #f83b325
  • appsdk: Add support for HTTPs on REST trigger #b594893
  • appsdk: Add support for HTTPs on REST trigger #b9ccbab
  • configuration: Add overwrite option for force local settings into Registry #7b6318d
  • version: Validate that SDK's major version matches Core Service's major version #d91fdf1
  • appsdk: Change configuration intervals to duration strings #e80ce9a
  • MqttSend: Add SkipCertVerify setting and refactor MqttSend #2c25a52
  • appsdk: Appsdk changes for Store and Forward. #211efe4
  • batch and send #1a44398

BREAKING CHANGE

Inserting preceding "-" when replacing <profile> in the service key has been removed so the use is more flexible. The only service using the replacement text is app-service-configurable which will be updated to add the "-" in the initial service key.

[v1.0.0] Edinburgh - 2019-11-12

Build

  • go.mod: Add running go mod tidy to make test
  • makefile: allow building in gopath by setting GO111MODULE=on

Docs

  • readme: Address unknown type issue from getting started section #a6b9976
  • readme: Updated sample code in readme #2fbe312
  • contributing: Document suggested format for commits #b264877
  • fix typo "rigistry" -> "registry" in README #0cce673
  • toc: Adding a Table of Contents #08620d2

Feat

  • Context: Add useful edgex clients to expose them for pipeline functions and internal use. #29978f0
  • Filter: Pass all events/reading through if no filter values are set #ad8e2ed
  • configurable: Expose MarkAsPushed #d86d0a0
  • contracts: Update to latest Core Contracts for new Command APIs
  • coredata: Provide API to push to core-data #d18e9d2
  • coredata: MarkAsPushed is now available as a standalone function #fdc4f0e
  • examples: Add example to demonstrate using TargetType #1b9758f
  • mqtt: Support to pass MQTT key/pair as byte array #985c91b
  • profile: Add environment override for profile command line argument #c75d2ca
  • runtime: Support types other than Event to be sent to function pipeline #ee6cf0e
  • runtime: Store and Forward core implementation in runtime package. #1d28cc9
  • store: Redid Mongo integration tests. #132f2fc
  • store: Added error test cases. #52e7605
  • store: add abstraction for StoredObject. #b8d7b6a
  • store: Explicitly return values, fix missing imports on test. #93fbaa2
  • store: Address PR feedback. #8ab3aba
  • store: add mongo driver #48f9171
  • store: Updated to remove all indexing by ObjectID. #01c114b
  • store: Added contract validation and tests. #354adfb
  • store: Added Redis driver. #4f8ef02
  • store: Refactored validateContract(). #50b0712
  • store: Add mock implementation for unit testing. #5cd4eaf
  • transforms: Add ability to persist data for later retry to export functions #351bbc2
  • webserver: Expose webserver to enable developer to add routes. #e48170e
  • webserver: Docs and tests for webserver use #3d5ac67
  • version: Add /api/version endpoint to SDK #d9fdfd0
  • contracts: Update to latest Core Contracts for new Command APIs #e818c23

Fix

  • TargetType: Make copy of target type before using it. #069304b
  • configuration: Utilize protocol from [Service] configuration #c6bec4a
  • configuration: Check Interval is now respected #06a310f
  • logging: When trace is enabled, log message for topic subscription is correct #ebe38a9
  • pushtocore: error not returned to pipeline #61a3c1b
  • trigger: Return error to HTTP trigger response #af60e79
  • webserver: Timeout wasn't be used #df39230
  • CommandClient: Use proper API Route for Command Client #b76f85c
  • log-filename: filename specified in configuration.toml was not being respected #9007019

Perf

  • db.redis: Denormalize AppServiceKey out of store object to optimize update #d065621

Refactor

  • Ensure test names are consistent with function names #b1e3b13
  • sdk: Refactor to use New func pattern instead of helper functions #105f120

BREAKING CHANGE

Pipeline functions used in the SetPipeline() now need to be created with the provided New…() functions. /trigger endpoint now follows standard edgex convention. It is now /api/v1/trigger HTTPPost and MQTTSend no longer automatically call MarkAsPushed upon success. It is upon the developer to ensure the method is called appropriately. Pipeline functions used in the SetPipeline() now need to be created with the provided New…() functions.