Project: Dapr (App Definition and Development / Application Definition & Image Build)
File: v0.4.0.md

We're happy to announce the release of Dapr 0.4.0! This release includes new components, security improvements, API level enhancements, new CLI features, stability and bug fixes, a richer Java SDK, docs and samples updates. We would like to extend our thanks to all new and existing contributors who helped make this release happen. If you're new to Dapr, visit the page and familiarize yourself with Dapr. __Note: This release of Dapr contains . Read through for more details, and see section on upgrading Dapr__ Added Support for multiple state stores (Breaking change in API) Added Automatic mTLS between Dapr instances Updated Main entrypoint to allow customization of included components (Thanks @pkedy) Changed State key delimiter Refactored Error codes (Thanks @shaggygi) Updated Output bindings to receive component name in metadata (Thanks @lynn-orrell) Fixed HTTP Middleware pipeline duplicate registration (Thanks @jjcollinge) Added Forwarding HTTP headers to pipeline (Thanks @jjcollinge) Fixed gRPC Cloud Events Envelope during publishing (Thanks @lhx6538665) Removed Vendor directory Updated Helm 2 to Helm 3 Improved Kafka installation in CI tests Added VSCode Dev-Container environment and documentation Added Twilio binding (Thanks @markrussinovich) Added Cloudstate Integration (Thanks @jroper @viktorklang @jboner) Added Azure Table Storage State Store (Thanks @aloneguid) Added SQL Server State Store with transactions support (Thanks @fbeltrao) Added Aerospike State Store (Thanks @abhirockzz) Added Couchbase Store (Thanks @abhirockzz) Added Hazalcast State Store (Thanks @abhirockzz) Added Managed Identity support for Azure Key Vault (Thanks @cmendible) Added OIDC Bearer middleware (Thanks @cmendible) Added Params/SSL support for MongoDB Fixed Block timeout issue with Redis Streams Fixed Goroutine leak with Azure Service Bus Fixed Single concurrency stream handler in Redis Streams Fixed NetHTTPAdapter panicing with non-nil body Updated Azure Blob Storage schema (Thanks @mkosieradzki) Removed Vendor directory Added Concurrency limit support for Azure Service Bus Pub/Sub (Thanks @jjcollinge) Updated Logrus to v1.4.2 (Thanks @thinkerou) Added Azure Storage Queues (Thanks @stather) Improved Redis tests (Thanks @David-Kunz) Added Middleware for rate limiting requests (Thanks @jjcollinge) Added Command to view configurations in a Kubernetes cluster Added Command to view components in a Kubernetes cluster Added Command to view status for mTLS in a Kubernetes cluster Added Command to fetch app/dapr logs in a Kubernetes cluster Fixed Init command downloading -RC versions Fixed `dapr stop` failing on Windows Removed Vendor directory Updated Linter settings Added Support for multiple state stores Fixed Reminder not fetching state correctly Updated Build for Dotnet Core 3.1 LTS Added InvokeClient and InvokeHttpClient implementations (Thanks @jeastham1993) Updated Localhost to 127.0.0.1 Updated Actors samples to show timers and reminders (Thanks @pacodelacruz) Fixed Integration tests (Thanks @ryannowak) Fixed Actor reminders corrupt state (Thanks @chgeuer) Added Support for delete operations (Thanks @ryannowak) Updated

core sample docs to include commands for windows Fixed URL generation when BaseAddress is used (Thanks @ryannowak) Updated Readme for Actor Sample to clarify client invocation Added Actor support Added Support for bindings Added Support for pub/sub Added Support for state management Added Support for service invocation Added Unit tests Added Integration tests Added Custom serialization support Removed Maven dependency to run dapr for examples (Thanks @Rinita-De) Updated All samples to account for multiple state stores API changes Added CloudState How-To Added Azure Table Storage How-To (Thanks @aloneguid) Added Hashicorp Vault How-To Added mTLS How-To Added Hazalcast How-To Added SQL Server How-To (Thanks @fbeltrao) Added Couchbase How-To Added Aerospike How-To Added Java SDK docs Improved Event Hubs binding spec Updated docs to comply with Microsoft Doc Authoring Pack (Thanks @LaurentLesle) Updated Docs to account for multiple state stores API changes Added IntelliJ debugging guide Added Azure SignarlR binding docs (Thanks @fbeltrao) Updated Helm 2 to Helm 3 Updated Diagrams If you're upgrading from an older version of Dapr to 0.4.0, follow the steps here to ensure a smooth upgrade. You know, the one where you don't get red errors on the terminal.. we all hate that, right? Uninstall Dapr using the CLI you currently have: ``` dapr uninstall --all ``` Next, get the latest CLI following instructions, or alternatively download the latest and greatest release from and put the `dapr` binary in your PATH. Once you have downloaded the CLI, run: ``` dapr init ``` Wait for the update to finish, and you're good to go! Download the latest CLI release as outlined above in the `Local Machine / Self-hosted` section. If you previously installed Dapr on your Kubernetes cluster using the Dapr CLI, run: ``` dapr uninstall --kubernetes ``` It's fine to ignore any errors that might show up. If you previously installed Dapr using Helm 2.X: ``` helm del --purge dapr ``` If you previously installed Dapr using Helm 3.X: ``` helm uninstall dapr ``` Wait until Dapr is uninstalled, and make sure the `dapr-system` namespace is gone. You can now follow instructions on how to install Dapr using Helm 3. Alternatively, if you want to install Dapr in a dev/test setup, run: ``` dapr init --kubernetes ``` For more information on upgrading to Helm 3, go to link. With the introduction of multiple state stores, the API has changed to allow a developer to specify which state store the operation is targeting. Starting this release, any state operation is required to provide a state store name: ``` v1.0/state/<state-store-name>/ ``` For the latest API spec, go to link. A call to get state prior to 0.4.0: ``` curl http://localhost:3500/v1.0/state/myKey ``` A call to get state in 0.4.0: ``` curl http://localhost:3500/v1.0/state/cassandra-dev/myKey ```