Dapr Runtime v0.4.0
Pre-releaseDapr 0.4.0
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 getting started page and familiarize yourself with Dapr.
Note: This release of Dapr contains breaking changes. Read through for more details, and see this section on upgrading Dapr
New in this release
Dapr Runtime
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
Components
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 @mkosieradzki)
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)
CLI
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
.NET SDK
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 ASP.NET 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
Java SDK
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)
Samples
Updated All samples to account for multiple state stores API changes
Docs
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
Upgrading to Dapr 0.4.0
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?
Local Machine / Self-hosted
Uninstall Dapr using the CLI you currently have:
dapr uninstall --all
Next, get the latest CLI following these instructions, or alternatively download the latest and greatest release from here 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!
Kubernetes
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 these 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 this link.
Breaking Changes
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 this link.
Example
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