docs/release_notes/v0.8.0.md
We're happy to announce the release of Dapr 0.8.0!
Highlights
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.
Docs have been updated with all the new features and changes of this release. To get started with new capabilities introduced in this release, go to the Concepts and the Developing applications.
Note: This release contains a few breaking changes.
See this section on upgrading Dapr to version 0.8.0.
Added custom routes for pub/sub (#breaking-changes)
Enriched http and grpc status code conversion.
Added Healthz server for control plane.
Refactored gRPC service and protobuf message definitions. (#breaking-changes)
Fixed Actor activation and method invocation logic to handle app restarts.
Fixed Unpopulated metadata for input bindings for HTTP app channel.
Improved client trace span generation calls.
Added liveness config.
Added disable Span Generations when tracing rate is set to 0.
Added trace headers in API response, which allows users to correlate with
Enhanced mDNS to support hostname and IPs. (Thanks @jjcollinge)
Added mqtt pubsub provider to daprd. (Thanks @kumaya)
Added Pulsar pubsub options. (Thanks @elyst)
Added API Authentication.
Added bi-directional bindings support. (#breaking-changes)
Added Set Metadata option to state store Get API.
Added opentelemetry sementic convention.
Added SNS/SQS pubsub provider.
Added Context timeout to internal grpc dial.
Added Linear interval retry for Internal gRPC client.
Added pending actor locks metric.
Generated low-cardinality metric method label.
Fixed marshalling error for gRPC binary metadata.
Improved component folder search behavior by looking at home directory. (#breaking-changes)
Fixed log options for contrib logger and enable metrics only for middleware. (Thanks @ksashikumar)
Fixed http method label for HTTP appchannel metric.
Added AWS SNS/SQS pubsub. (Thanks @khous)
Added Apache Pulsar. (Thanks @elyst)
Added MQTT pubsub. (Thanks @kumaya)
Fixed Azure Service Bus pubsub throttling. (Thanks @jjcollinge)
Fixed SQL server state store integration tests. (Thanks @brooke-hamilton)
Updated mDNS resolver to respect service IP address. (Thanks @jjcollinge)
Fixed nethttpadaper to handle UserValue in request context. (Thanks @jjcollinge)
Improved AWS authentication for dynamodb, kinesis, s3, sns, sqs, and secretmanager. (Thanks @trondhindenes)
Improved dynamodb component to use BatchWriteItem for BulkSet and BulkDelete. (Thanks @ksashikumar)
Added bi-directional bindings support for all bindings components.
Added new flag to provide custom component directory path for dapr run. (Thanks @ksashikumar)
Added verbose logs on failure of container uninstall and check if docker is installed. (Thanks @ksashikumar)
Improved stop command to stop multiple apps. (Thanks @chinzhiweiblank)
Added default components directory in user home directory.
Changed -p option to -d to specify the payload for dapr publish
Added Actor proxy method with parameterized interface. (Thanks @jpiquot)
Added Bi-directional output binding.
Updated Protobuf clients. (Thanks @amolenk)
Rename actorImplementationTypeName to actorTypeName. (Thanks @fduman)
Corrected the order of middleware chaining.
Rename pubsub event content to data.
Changed Actor activation logic to activate it only when actor is invoked.
Updated Protobuf clients.
Added Bi-directional output binding.
Changed Actor activation logic to activate it only when actor is invoked.
Rename pubsub event param to data.
Added Actor SDK.
Updated Protobuf clients.
Added Kubernetes example. (Thanks @XavierGeerinck)
Added initial setup for sphinx. (Thanks @chinzhiweiblank)
Updated Protobuf clients. (Thanks @gdhuper for rust-sdk update)
Added new Secrets example.
Added new Docker Compose.
Updated Distributed Calculator sample to show how to run locally.
Added Docker-compose howto. (Thanks @jjcollinge)
Added docs authoring guideline
Added pubsub custom routes
Added liveness config annotation
Updated actor spec to remove activation api
Added how to enable tls for redis cache (Thanks @robinmanuelthiel)
Added token-based authentication
Added more exampels to Azure Event Grid binding (Thanks @Masahigo)
Added bi-directional bindings howto
Added mqtt pubsub howto (Thanks @kumaya)
Updated dapr run cli to use cli components path
Added apache pulsar pubsub howto (Thanks @elyst)
Added AWS SNS/SQS pubsub howto (Thanks @khous)
Updated missing steps for eventhubs
Added use-cases to concept docs (Thanks @arschles)
Added W3C trace context howtos
Added Grafana Actor Dashboard
Added how to use multi fragment path for service invocation
Added alerts for control plane and daprd for cpu/mem
Refactor longhaul tests apps to use shared library
If you're upgrading from an older version of Dapr to 0.8.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 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! Make sure you have the right runtime version (0.8.0) with:
dapr --version
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 -n dapr-system
Update the Dapr repo:
helm repo update
If you installed Dapr with Helm to a namespace other than dapr-system, modify the uninstall command above to account for that.
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
After Dapr 0.8.0 has been installed, perform a rolling restart for your deployments.
Starting this release, topic subscribers can specify the endpoint route that Dapr should call for a given topic.
Old subscription JSON:
[
"topic1",
"topic2"
]
New subscription JSON:
[
{
"topic": "topic1",
"route": "custom/topic1"
},
{
"topic": "topic2",
"route": "custom2/topic2"
},
]
For more details, see here
Output bindings can now optionally support operations that return data to the caller.
When invoking an output binding, a new required field has been added: operation.
Old output binding JSON:
{
"data": {
"name": "Java the Hutt"
}
}
New output binding JSON:
{
"data": {
"name": "Java the Hutt"
},
"operation": ""
}
100% of the current bindings support the create operation.
As new functionality is introduced to new or existing bindings, the list of supported operations can be found for each binding in the bindings spec section in the docs.
You must upgrade SDKs to the latest SDK to use the latest Dapr
dapr.proto.dapr.v1 to dapr.proto.runtime.v1dapr.proto.daprclient.v1 to dapr.proto.runtime.v1dapr.proto.common.v1 packagedapr publish is changed from -p to -d.