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

We're happy to announce the release of Dapr 1.2.0! We would like to extend our thanks to all the new and existing contributors who helped make this release happen. Highlights If you're new to Dapr, visit the page and familiarize yourself with Dapr. Support for Pub/Sub event without CloudEvent wrapping, enabling communication between Dapr and non-Dapr applications . This enables Dapr to send and receive events to integrate with applications that cannot use CloudEvents. See documentation for details. Ability to scope the APIs that are available on Dapr sidecar through ACLs . For example, if you want to restrict access to only the secrets API from the applications, you can set ACLs on its access. See documentation for details. Ability to "opt-in" to preview features that are included in releases. This provides a way to introduce new features that still need feedback before being made GA in quality. Equally expect that preview features from previous releases (currently none) can be removed without a deprecation notice. . See documentation for details. In this release Actor Re-entrancy is included as a opt-in preview feature for Actors. Reentrancy enables actor A to call actor B which can then call actor A again without the call blocking. See documentation for details. Consul as a DNS name resolution component enables Dapr to preform service discovery and use the service invocation API in VM scenarios that can be joined in the same network. This means that Dapr now supports Kubernetes,VMs and physical machines as production hosting environments with DNS resolution enabled in each. See documentation for details. As a result of the Consul integration Name resolution components are now first class component types that can be "swapped" in the same manner as any other component type through Dapr configuration settings. See documentation for details. Many new components: Alibaba Cloud DingTalk Webhook as Binding Zeebe Workflow Engine as Binding Alibaba Sentinel as Middleware Consul name resolution component The 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 and the or follow the links above. Updates to documentation are . For more information on the features listed above watch the and the upcoming Community call #39 See section on upgrading Dapr to version 1.2.0. The ```GET /v1.0/shutdown``` HTTP API is deprecated and scheduled for removal in 1.4. All users who have directly integrated with this API should use the ```POST /v1.0/shutdown``` API instead. If you are using one of the supported Dapr SDKs you do not need to take any action. See https://docs.dapr.io/operations/hosting/kubernetes/kubernetes-job/ for an example usage of this

Thanks to everyone who made this release possible! @0to1, @1046102779, @AaronCrawfis, @DarqueWarrior, @EdwinVW, @Hugome, @JoeMayo, @Junnplus, @Taction, @TomorJM, @a-elsheikh, @abogdanov37, @akkie, @apuzyrevsky, @artursouza, @beiwei30, @berndverst, @cinience, @fjvela, @halspang, @jigargandhi, @jjcollinge, @jony4, @luckyxiaoqiang, @marviniter, @msfussell, @mukundansundar, @newbe36524, @pkedy, @readefries, @wcs1only, @withinboredom, @xiazuojie, @yanjianlong, @yaron2, @zhongfox RESOLVED Allow Reentrancy for Actors RESOLVED Propagate context to PubSub handler call RESOLVED Add context to PubSub handler RESOLVED Enhance pub/sub cloud event handling to support existing messaging infrastructure RESOLVED Create a dapr/kit repo to contain common packages RESOLVED Dapr Serialization Error with Dapr CLI Publish RESOLVED Refactoring codes of getting app configuration from user application RESOLVED Running a local gRPC with TLS service fails RESOLVED Default components of Self-hosted mode miss the required version field RESOLVED Allow concurrent reconciliation of Kubernetes resources RESOLVED Increase verbosity for actor errors. ADDED audit log to sidecar injector ADDED Opt-in for preview features RESOLVED optimize: directly use default metrics register RESOLVED Allow choosing which APIs are available on a sidecar RESOLVED Dapr sidecar failed to start: certificate has expired or is not yet valid FIXED Bug in runtime. ADDED Reentrancy bypass for actor locks RESOLVED operator exited with status 1 but no error log output RESOLVED Enable Dapr sidecars to pick up newly added components without restart RESOLVED Automatically merges and updates PRs. ADDED nodeselector option in helm chart RESOLVED issue: use normalizeOperation necessity RESOLVED gracefully stop runtime when exited with log.Fatalf RESOLVED service that owner referencing with a deployment will be removed UPDATED CLI logging output to remove extra newlines when application output contains a newline RESOLVED Permission Denied When Installing on MacBook M1 RESOLVED Default components of Self-hosted mode miss the required version field RESOLVED Stop the running `daprd` process on error when `dapr run` is called ADDED Support to provide GITHUB_TOKEN to address GitHub rate limiting ADDED Support to get api response and replace base download URL RESOLVED CLI `run` detects shutdown API call and exits as expected RESOLVED MTLS automatically enabled on running `dapr upgrade` on a cluster with MTLS disabled UPDATED Switch CLI to use Go 1.16 version ADDED Read invoke and publish payloads from file RESOLVED MTLS command on error exits with success RESOLVED Update helm client. RESOLVED Added `--dapr-http-max-request-size` parameter to CLI RESOLVED Support of Azure Blob Metadata (for Blob state storage) RESOLVED Add DNS name resolver. Add unit tests. ADDED NameResolution: Consul FIXED Password configuration for Redis Sentinel state store. UPDATED Optimize SMTP binding performance RESOLVED Update Readme.md RESOLVED Fixed bug where default vaultaddr is never used. RESOLVED customize cluster domain of k8s nameresolution RESOLVED Hashicorp Vault - accept root token as string instead of file RESOLVED Use `go mod tidy` before make RESOLVED Upgrade redis client to v8 and use context in redis pubsub component to cancel request RESOLVED Implement bindings for the Zeebe workflow engine RESOLVED Error amqp:link:detach-forced RESOLVED Alibaba Cloud DingTalk Webhook Binding RESOLVED Add redis cluter mode for pubsub RESOLVED optimize(state/redis): output detail redis error RESOLVED Sentinel as Dapr's middleware RESOLVED Add timeout to cancel request for it would be redelivered RESOLVED Add optional metadata param maxLen for redis stream PubSub component RESOLVED add BulkGetResponse comments FIXED Redis subscriber should not block infinitely on XReadGroup RESOLVED Make the retry package available to use across all components RESOLVED Dapr CLI commands take ~5 seconds to execute RESOLVED Update Aerospike to v4.5.0 FIXED Race in pulsar pubsub component. RESOLVED Add method for health check in dapr client RESOLVED Add auto validation for Tracing Example REMOVED protoc-jar-maven-plugin as a dependency for dapr-sdk-autogen FIXED HTTP save state transaction RESOLVED Return empty metadata for key not

ADDED Shutdown API UPDATED PubSub example to include tracing RESOLVED Add docs on how to use daprd and command line options RESOLVED Add to Actor Conceptual docs RESOLVED Create FAQ/Troubleshooting on local mDNS RESOLVED Actor concepts missing types and ids RESOLVED Article needed to link to Azure APIM RESOLVED Outdated instructions for running Kafka on Kubernetes RESOLVED chore: add documentation on the binding mqtt based on the pubsub mqtt RESOLVED RESOLVED Update HashiCorp Vault secret docs RESOLVED Update hashicorp-vault.md RESOLVED Add documentation for PowerShell and Command Prompt RESOLVED Remove workaround for mTLS bug RESOLVED RESOLVED Add Alibaba Cloud DingTalk Webhook binding doc RESOLVED RESOLVED sentinel middleware doc RESOLVED Add documentation for the Zeebe bindings RESOLVED Allow choosing which APIs are available on a sidecar RESOLVED v1.2 Release RESOLVED Documentation for Preview Features RESOLVED Document how to set the default values for actors RESOLVED RESOLVED Create a shareable Dapr PowerPoint deck RESOLVED RESOLVED Add Docs for Actor Reentrancy MOVED logger package from `dapr/dapr` to `dapr/kit` REPLACED deprecated formula style with current alternative To upgrade to this release of Dapr, 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 installed. Note that this will remove the default $HOME/.dapr directory, binaries and all containers daprredis, daprplacement and dapr_zipkin. Linux users need to run sudo if docker command needs sudo: ```bash dapr uninstall --all ``` For stable releases like this, download the latest and greatest release from and put the `dapr` binary in your PATH. Once you have installed the CLI, run: ```bash dapr init --runtime-version=1.2.0 ``` Wait for the update to finish, ensure you are using the latest version of Dapr(1.2.0) with: ```bash $ dapr --version CLI version: 1.2.0 Runtime version: 1.2.0 ``` You can perform zero-downtime upgrades using both Helm 3 and the Dapr CLI. Download the latest stable release from and put the `dapr` binary in your PATH. To upgrade Dapr, run: ``` dapr upgrade --runtime-version 1.2.0 -k ``` To upgrade with high availability mode: ``` dapr upgrade --runtime-version 1.2.0 --enable-ha=true -k ``` Wait until the operation is finished and check your status with `dapr status -k`. All done! Note: Make sure your deployments are restarted to pick the latest version of the Dapr sidecar To upgrade Dapr using Helm, run: ``` helm repo add dapr https://dapr.github.io/helm-charts/ helm repo update helm upgrade dapr dapr/dapr --version 1.2.0 --namespace=dapr-system --wait ``` Wait until the operation is finished and check your status with `dapr status -k`. All done! Note: Make sure your deployments are restarted to pick the latest version of the Dapr sidecar Please see for a complete guide to installing Dapr on Kubernetes. You can use Helm 3 to install Dapr: ``` helm repo add dapr https://dapr.github.io/helm-charts/ helm repo update kubectl create namespace dapr-system helm install dapr dapr/dapr --version 1.2.0 --namespace dapr-system --wait ``` Alternatively, you can use the latest version of CLI: ``` dapr init --runtime-version=1.2.0 -k ``` Verify the control plane pods are running and are healthy: ``` $ dapr status -k NAME NAMESPACE HEALTHY STATUS REPLICAS VERSION AGE CREATED dapr-dashboard dapr-system True Running 1 0.6.0 15s 2021-05-20 13:07.39 dapr-sidecar-injector dapr-system True Running 1 1.2.0 15s 2021-05-20 13:07.39 dapr-sentry dapr-system True Running 1 1.2.0 15s 2021-05-20 13:07.39 dapr-operator dapr-system True Running 1 1.2.0 15s 2021-05-20 13:07.39 dapr-placement dapr-system True Running 1 1.2.0 15s 2021-05-20 13:07.39 ``` After Dapr 1.2.0 has been installed, perform a rolling restart for your deployments to pick up the new version of the sidecar. This can be done with: ```