Project: Dapr (App Definition and Development / Application Definition & Image Build)
File: v1.0.0-rc.3.md

We're happy to announce the release of Dapr 1.0.0-rc.3! We would like to extend our new and existing contributors who helped make this release happen. This is a release candidate version as we progress towards Dapr v1.0.0. We appreciate you trying Dapr and providing feedback on this release. See section on upgrading Dapr to version 1.0.0-rc.3. Pub/Sub Dapr enables per-message time-to-live (TTL) for all pub/sub components. Applications can set time-to-live per message, and subscribers will not receive those messages after expiration. Component metadata's random value via `{uuid}` marker Runs as non-root by defaut on Kubernetes Numerous improvements to the Added fixed to perform async API calls to Dapr sidecar in the .NET SDK Service invocation in the SDK now uses HTTP as the underlying protocol so deeper integration with API surface for HTTP is possible, which makes service invocation much more flexible. See for more details Thanks to everyone who made this release possible! @1046102779, @AaronCrawfis, @Betula-L, @DarqueWarrior, @Yggdrasill-7C9, @alpha-baby, @alydersen, @arghya88, @artursouza, @beiwei30, @cmendible, @darren-wang, @davidkarlsen, @dylandee, @eibrunorodrigues, @fjvela, @gaoxinge, @georgestevens99, @halspang, @hepin1989, @IroNEDR, @jigargandhi, @juazasan, @karishma-chawla, @karoldeland, @kevgo, @kzmake, @mchmarny, @mrchypark, @msfussell, @mukundansundar, @newbe36524, @pkedy, @rrylee, @rynowak, @skyao, @soiboxauxi, @tcnghia, @TenSt, @tomkerkhove, @trondhindenes, @vinayada1, @wcs1only, @withinboredom, @wjayesh, @XavierGeerinck, @xiazuojie, @yaron2, @youngbupark, @zzxwill RESOLVED Migrate Dockerfile used to build Dapr to static, nonroot runtime image RESOLVED Enable sidecar to app authentication ADDED Support for message expiration in PubSub. RESOLVED Make required the version field on Component YAML FIXED Empty etags treated as empty etags. Change response handling for cross-protocol invocation. RESOLVED v1.0 Milestone 3 Plan RESOLVED Error: app not subscribed to binding RESOLVED How to configure oauth middleware in dapr1.0-rc1 and running? GENERATED pb.go and grpc.pb.go separately using newer gRPC protoc for Go. RESOLVED The invocation chain is break when using service invoke RESOLVED Access control configuration invalid w/o at least 1 policy RESOLVED Add Metadata gRPC API RESOLVED Consistency of API names surfaced by each SDK FIXED Docker image to be distroless and nonroot. FIXED Error message for unknown state stores being HTTP escaped. RESOLVED Remove redundant cancelfunc calls RESOLVED GetBulkSecrets fails when access limits are set in config FIXED The middleware.http.uppercase middleware comes pre-registered in Standalone mode. RESOLVED Make missing app-id annotation have a clearer log message FIXED CLI and Helm chart no longer default to amd64 architecture for Kubernetes installs. This allows deployments to arm64 Kubernetes clusters to succeed with the default configuration. RESOLVED Add missing metadata in getBulkState() response RESOLVED Update setup-dapr-development-env.md RESOLVED Return HTTP 409 Conflict when ETag doesn't match RESOLVED RBAC issue on OpenShift when installing with Helm RESOLVED fix(fsm): Apply return type must be bool type, or daprd runtime maybe panic RESOLVED Add Known Types repeated twice RESOLVED Secret API "bulk" http endpoint does not work RESOLVED Update Bulk Secrets API to return map RESOLVED Update setup-dapr-development-env.md RESOLVED fix(actors): timer ticker bug RESOLVED Helm chart tlc FIXED Support multiple path segments in access control policy RESOLVED Dapr Uninstall Fails with Dapr: cannot get the manifest file: https://api.github.com/repos/dapr/dapr/releases - 403 rate limit exceeded RESOLVED Update Dapr CLI logging to better show errors and warnings RESOLVED Change the way of dapr cli reinstalling RESOLVED FIXED Dapr slim init now creates a `config.yaml` file like a normal

RESOLVED Add Upgrade CLI command to upgrade the Dapr control plane services FIXED Workaround to allow dapr to be run with rosetta on M1 macs RESOLVED Document metrics port RESOLVED Allow all Helm values to pass to init/upgrade commands RESOLVED Helm link points to self hosted RESOLVED Dapr pub/sub publish is stripping Cloud Event fields RESOLVED Document when to release a new version of a component RESOLVED Can't load oauth2 middleware in dapr1.0-rc1 kubernetes RESOLVED Update the Secrets Component documentation RESOLVED Add prefetch count to RabbitMQ pub/sub FIXED Kubernetes get secret to fallback to k8s namespace. RESOLVED Add concurrency to RabbitMQ RESOLVED Exclusive Queues for RabbitMQ RESOLVED Added Exclusive Flag to RabbitMQ queues RESOLVED Support priority queue for RabbitMQ Bind/Pubsub Components RESOLVED App able to subscribe to one GCP Pub/Sub topic only RESOLVED Shared Subscription in MQTT RESOLVED SecretStore BulkGetSecret method flattens all of secrets into a single map RESOLVED Update sample links RESOLVED Need a MySQL binding support similar with PostgreSQL RESOLVED Fix get bulk secret for hashicorp vault. RESOLVED Fix service bus new topic creation FIXED display of full cmd and registered actors RESOLVED Numerous improvements and issues on the Dashboard RESOLVED Improve log page for K8s ENABLED Dashboard to run unprivileged. FIXED reported vulnerabilities by npm. The .NET SDK NuGet packages that corresponds with RC3 of the Dapr runtime is version `1.0.0-rc05`. The .NET SDK has several major feature additions and impactful changes in this release. We recommend every user to read this as a supplement to the release notes. RESOLVED Remove Query all statenames from IActorStateManager because it does not behave as expected FIXED Changed signatures to use IReadOnlyDictionary<TKey, TValue> over Dictionary<TKey, TValue> in public APIs FIXED Actor Runtime should not report Exception text in HTTP responses ADDED support for metadata in pub/sub FIXED TrySaveStateAsync and TryDeleteStateAsync should only handle "rejections" based on ETag, not all RPC exceptions FIXED Actors HTTP handlers don't work with some common frontend server patterns FIXED bug in actor serialization of `ActorId`. RESOLVED Have consistent API names for .NET SDK ADDED DaprClient: Implement GetBulkSecretAsync RESOLVED Change the name of Invoke to InvokeMethod on the Actor proxy for naming consistency RESOLVED Throw DaprException for dapr errors RESOLVED Use Task instead of ValueTask ADDED Support for metadata in Publish API. FIXED ActorProxy.Create(ActorId actorId, Type actorInterfaceType, string actorType) does not work RESOLVED ModelBinding throws ArgumentNullException when state not found in store ADDED More flexible options for HTTP service invocation FIXED Support for null and empty etag. RESOLVED Simplifying Service Invocation API surface RESOLVED Expose Dapr API token to users as a settable value FIXED DaprClient now implements IDisposable so that networking resources can be reclaimed deterministically. FIXED Remove automatic protobuf conversion RESOLVED Provide a single way to configure System.Text.Json serializer options for all Dapr Client and Actors features RESOLVED add metadata in state get response RESOLVED fix some typo RESOLVED Update SDK to support new etag mechanism, change BulkGetSecrets RESOLVED Add support for etag and bulk secret modifications The Maven version that corresponds with this release of the Dapr runtime is version `1.0.0-rc-4`. The Java SDK has several major feature additions and impactful changes in this release. We recommend every user to read this as a supplement to the release notes. RESOLVED add

to deserialize API RESOLVED Add wait() method to block until Sidecar is up REFACTORED CloudEvent serialization, also adding default constructor. RESOLVED validated handling of metadata and fixed when applicable. RESOLVED How to set timeout invoking service FIXED missing eTag response for state APIs. RENAMED methods and properties for consistency across SDKs. RESOLVED Rename invoke to invokeMethod for ActorProxy RESOLVED Implement getBulkSecret API REMOVED DaprException from IllegalArgumentException. FIXED input encoding for HTTP calls. RESOLVED Add support for metadata in Publish API FIXED datacontenttype to respect content-type metadata. FIXED implementations of DaprClient API were blocking for gRPC and HTTP. RESOLVED etag error code changes in dapr runtime need a change in the sdk RESOLVED Handle service invocation over HTTP only REMOVED unused `etag` param from getState() RESOLVED Why not implement java-sdk-springboot as a spring boot starter? FIXED Support for null and empty etag. RENAMED InvokeServiceRequest to InvokeMethodRequest. RESOLVED @ActorMethod to override method's name for client and service REMOVED Dependency from OpenTelemetry SDK FIXED error handling for service invocation with HTTP client and gRPC service. ADDED examples on how to write Unit tests with DaprClient and Actors. FIXED order of State key-value params. Python SDK version is 1.0.0rc3 and is available through pip/pypi RESOLVED Add wait() method to block until Sidecar is up RESOLVED For invoke Service - How to return error over grpc. RESOLVED Naming changes RESOLVED Allow for a more recent version of grpcio ADDED code in state store example showcasing etag handling. FIXED Support for null and empty etag. RESOLVED Makes service method API invocations over HTTP by default. RESOLVED Add support for bulkGetSecret REMOVE dependency from OpenCensus SDK. RESOLVED Dapr composer org, package and publish RESOLVED Make it clear in the docs that all Dapr services Placements and Sentry service do not need Docker to run locally RESOLVED Document components maturity status UPDATED overview description for pub/sub topics and subscriptions RESOLVED mDNS round robin capability RESOLVED Fix spelling of Rust RESOLVED Update apns.md RESOLVED Fix typo in Kubernetes binding docs RESOLVED RESOLVED Add a note about installing the cli to M1 macs RESOLVED refine code align in middleware concept RESOLVED update link RESOLVED updated rabbitmq pub/sub documentation RESOLVED Change NATS streaming deliverAll to deliverNew RESOLVED Update rabbitmq.md RESOLVED Update the component docs for state stores to capture all the metadata fields and have complete examples RESOLVED RESOLVED Insert section for Dapr to App authentication RESOLVED MySQL State component documentation RESOLVED Document Content Type application/cloudevents+json ADDED Automated validation of quickstarts RESOLVED Error when running Python app: exec: "flask": executable file not found in $PATH RESOLVED add new sample 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 RC 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

``` Wait for the update to finish, ensure you are using the latest version of Dapr(1.0.0-rc.3) with: ```bash $ dapr --version CLI version: 1.0.0-rc.4 Runtime version: 1.0.0-rc.3 ``` You can perform zero-downtime upgrades using both Helm 3 and the Dapr CLI. Download the latest RC release from and put the `dapr` binary in your PATH. To upgrade Dapr, run: ``` dapr upgrade --runtime-version 1.0.0-rc.3 -k ``` To upgrade with high availability mode: ``` dapr upgrade --runtime-version 1.0.0.-rc.3 --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.0.0-rc.3 --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 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.0.0-rc.3 --namespace dapr-system --wait ``` Alternatively, you can use the latest version of CLI: ``` dapr init --runtime-version=1.0.0-rc.3 -k ``` Verify the control plane pods are running and are healthy: ``` $ kubectl get pods -n dapr-system NAME READY STATUS RESTARTS AGE dapr-dashboard-85cc6c9f7d-hzk69 1/1 Running 0 13m dapr-operator-84985cb985-h2zdv 1/1 Running 0 13m dapr-placement-server-0 1/1 Running 0 13m dapr-sentry-5974c7cb6d-9bnqd 1/1 Running 0 13m dapr-sidecar-injector-5b5bb9454-sfmmx 1/1 Running 0 13m ``` Specifying a component version is now required. All components MUST now include the `v1` version in their spec: ```yaml apiVersion: dapr.io/v1alpha1 kind: Component metadata: name: mycomponent spec: version: v1 ``` Two changes were made regarding ETags: An Etag mismatch operation will now return an HTTP status code of `409` and a gRPC code of `Aborted`. There is now a distinction between missing and empty etags. An missing etag from the request is assumed as last-write-wins, while an empty etag will attempt saving the record only if it doesn't exist. RESOLVED Make required the version field on Component YAML FIXED Empty etag treated as no etag. CHANGED response handling for cross-protocol invocation. RESOLVED Return HTTP 409 Conflict when ETag doesn't match RESOLVED Remove Query all statenames from IActorStateManager because it does not behave as expected RESOLVED Prefer IDictionary<TKey, TValue> over Dictionary<TKey, TValue> in public APIs RESOLVED TrySaveStateAsync and TryDeleteStateAsync should only handle "rejections" based on ETag, not all RPC exceptions RESOLVED Actors HTTP handlers don't work with some common frontend server patterns RESOLVED Have consistent API names for .NET SDK RESOLVED Throw DaprException for dapr errors RESOLVED Use Task instead of ValueTask RESOLVED Reimagining service invocation for dotnet-sdk RESOLVED Simplifying Service Invocation API surface RESOLVED Expose Dapr API token to users as a settable value FIXED DaprClient now implements IDisposable so that networking resources can be reclaimed deterministically. RESOLVED Remove unstable dependencies. REFACTORED CloudEvent serialization, also adding default constructor. FIXED missing eTag response for state APIs. RENAMED methods and properties for consistency across SDKs. RESOLVED Handle service invocation over HTTP only REMOVED unused `etag` param from getState() RENAMED InvokeServiceRequest to InvokeMethodRequest. REMOVED dependency from OpenTelemetry SDK FIXED order of State key-value params. RESOLVED Naming changes REMOVED dependency from OpenCensus SDK.