github dapr/dapr v1.0.0-rc.3
Dapr Runtime v1.0.0-rc.3

latest releases: v1.13.2, v1.13.2-rc.1, v1.13.1...
pre-release3 years ago

Dapr 1.0.0-rc.3

We're happy to announce the release of Dapr 1.0.0-rc.3!

We would like to extend our thanks to all 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 this section on upgrading Dapr to version 1.0.0-rc.3.

Highlights

Acknowledgements

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, @orizohar, @pkedy, @rrylee, @rynowak, @skyao, @soiboxauxi, @tcnghia, @TenSt, @tomkerkhove, @trondhindenes, @vinayada1, @wcs1only, @withinboredom, @wjayesh, @XavierGeerinck, @xiazuojie, @yaron2, @youngbupark, @zzxwill

New in this release

Dapr Runtime

  • RESOLVED Migrate Dockerfile used to build Dapr to static, nonroot runtime image 1551

  • RESOLVED Enable sidecar to app authentication 1781

  • ADDED Support for message expiration in PubSub. 2216

  • RESOLVED Make required the version field on Component YAML 2260

  • FIXED Empty etags treated as empty etags. 2320

  • Change response handling for cross-protocol invocation. 2342

  • RESOLVED v1.0 Milestone 3 Plan 2346

  • RESOLVED Error: app not subscribed to binding 2468

  • RESOLVED How to configure oauth middleware in dapr1.0-rc1 and running? 2474

  • GENERATED _pb.go and _grpc.pb.go separately using newer gRPC protoc for Go. 2481

  • RESOLVED The invocation chain is break when using service invoke 2504

  • RESOLVED Access control configuration invalid w/o at least 1 policy 2526

  • RESOLVED Add Metadata gRPC API 2527

  • RESOLVED Consistency of API names surfaced by each SDK 2535

  • FIXED Docker image to be distroless and nonroot. 2536

  • FIXED Error message for unknown state stores being HTTP escaped. 2551

  • RESOLVED Remove redundant cancelfunc calls 2598

  • RESOLVED GetBulkSecrets fails when access limits are set in config 2600

  • FIXED The middleware.http.uppercase middleware comes pre-registered in Standalone mode. 2602

  • RESOLVED Make missing app-id annotation have a clearer log message 2603

  • 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. 2605

  • RESOLVED Add missing metadata in getBulkState() response 2608

  • RESOLVED Update setup-dapr-development-env.md 2614

  • RESOLVED Return HTTP 409 Conflict when ETag doesn't match 2619

  • RESOLVED RBAC issue on OpenShift when installing with Helm 2620

  • RESOLVED fix(fsm): Apply return type must be bool type, or daprd runtime maybe panic 2626

  • RESOLVED Add Known Types repeated twice 2627

  • RESOLVED Secret API "bulk" http endpoint does not work 2649

  • RESOLVED Update Bulk Secrets API to return map[string]map[string]string 2652

  • RESOLVED Update setup-dapr-development-env.md 2664

  • RESOLVED fix(actors): timer ticker bug 2670

  • RESOLVED Helm chart tlc 2692

  • FIXED Support multiple path segments in access control policy 2725

Dapr CLI

  • RESOLVED Dapr Uninstall Fails with Dapr: cannot get the manifest file: https://api.github.com/repos/dapr/dapr/releases - 403 rate limit exceeded 415

  • RESOLVED Update Dapr CLI logging to better show errors and warnings 484

  • RESOLVED Change the way of dapr cli reinstalling 527

  • RESOLVED [feature] add a metrics-port on run command 554

  • FIXED Dapr slim init now creates a config.yaml file like a normal init. 556

  • RESOLVED Add Upgrade CLI command to upgrade the Dapr control plane services 560

  • FIXED Workaround to allow dapr to be run with rosetta on M1 macs 570

  • RESOLVED Document metrics port 573

  • RESOLVED Allow all Helm values to pass to init/upgrade commands 574

  • RESOLVED Helm link points to self hosted 576

Components

  • RESOLVED Dapr pub/sub publish is stripping Cloud Event fields 506

  • RESOLVED Document when to release a new version of a component 526

  • RESOLVED Can't load oauth2 middleware in dapr1.0-rc1 kubernetes 537

  • RESOLVED Update the Secrets Component documentation 559

  • RESOLVED Add prefetch count to RabbitMQ pub/sub 560

  • FIXED Kubernetes get secret to fallback to k8s namespace. 563

  • RESOLVED Add concurrency to RabbitMQ 574

  • RESOLVED Exclusive Queues for RabbitMQ 577

  • RESOLVED Added Exclusive Flag to RabbitMQ queues 580

  • RESOLVED Support priority queue for RabbitMQ Bind/Pubsub Components 582

  • RESOLVED App able to subscribe to one GCP Pub/Sub topic only 583

  • RESOLVED Shared Subscription in MQTT 589

  • RESOLVED SecretStore BulkGetSecret method flattens all of secrets into a single map 590

  • RESOLVED Update sample links 611

  • RESOLVED Need a MySQL binding support similar with PostgreSQL 616

  • RESOLVED Fix get bulk secret for hashicorp vault. 632

  • RESOLVED Fix service bus new topic creation 636

Dashboard

  • FIXED display of full cmd and registered actors 78

  • RESOLVED Numerous improvements and issues on the Dashboard 93

  • RESOLVED Improve log page for K8s 104

  • ENABLED Dashboard to run unprivileged. 119

  • FIXED reported vulnerabilities by npm. 120

.NET SDK

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 migration guide as a supplement to the release notes.

  • RESOLVED Remove Query all statenames from IActorStateManager because it does not behave as expected 53

  • FIXED Changed signatures to use IReadOnlyDictionary<TKey, TValue> over Dictionary<TKey, TValue> in public APIs 395

  • FIXED Actor Runtime should not report Exception text in HTTP responses 410

  • ADDED support for metadata in pub/sub 425

  • FIXED TrySaveStateAsync and TryDeleteStateAsync should only handle "rejections" based on ETag, not all RPC exceptions 426

  • FIXED Actors HTTP handlers don't work with some common frontend server patterns 434

  • FIXED bug in actor serialization of ActorId. 477

  • RESOLVED Have consistent API names for .NET SDK 500

  • ADDED DaprClient: Implement GetBulkSecretAsync 510

  • RESOLVED Change the name of Invoke to InvokeMethod on the Actor proxy for naming consistency 513

  • RESOLVED Throw DaprException for dapr errors 516

  • RESOLVED Use Task instead of ValueTask 517

  • ADDED Support for metadata in Publish API. 521

  • FIXED ActorProxy.Create(ActorId actorId, Type actorInterfaceType, string actorType) does not work522

  • RESOLVED ModelBinding throws ArgumentNullException when state not found in store 524

  • ADDED More flexible options for HTTP service invocation 526

  • FIXED Support for null and empty etag. 545

  • RESOLVED Simplifying Service Invocation API surface 549

  • RESOLVED Expose Dapr API token to users as a settable value 551

  • FIXED DaprClient now implements IDisposable so that networking resources can be reclaimed deterministically. 559

Go SDK

  • RESOLVED add metadata in state get response 128

  • RESOLVED fix some typo 131

  • RESOLVED Update SDK to support new etag mechanism, change BulkGetSecrets 134

  • RESOLVED Add support for etag and bulk secret modifications 135

Java SDK

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 migration guide as a supplement to the release notes.

  • RESOLVED add java.lang.reflect.Type to deserialize API 331

  • RESOLVED Add wait() method to block until Sidecar is up 377

  • REFACTORED CloudEvent serialization, also adding default constructor. 385

  • RESOLVED validated handling of metadata and fixed when applicable. 396

  • RESOLVED How to set timeout invoking service 399

  • FIXED missing eTag response for state APIs. 405

  • RENAMED methods and properties for consistency across SDKs. 409

  • RESOLVED Rename invoke to invokeMethod for ActorProxy 418

  • RESOLVED Implement getBulkSecret API 421

  • REMOVED DaprException from IllegalArgumentException. 424

  • FIXED input encoding for HTTP calls. 427

  • RESOLVED Add support for metadata in Publish API 430

  • FIXED datacontenttype to respect content-type metadata. 432

  • FIXED implementations of DaprClient API were blocking for gRPC and HTTP. 434

  • RESOLVED etag error code changes in dapr runtime need a change in the sdk 437

  • RESOLVED Handle service invocation over HTTP only 438

  • REMOVED unused etag param from getState() 439

  • RESOLVED Why not implement java-sdk-springboot as a spring boot starter? 441

  • FIXED Support for null and empty etag. 442

  • RENAMED InvokeServiceRequest to InvokeMethodRequest. 443

  • RESOLVED @ActorMethod to override method's name for client and service 444

  • REMOVED Dependency from OpenTelemetry SDK 453

  • FIXED error handling for service invocation with HTTP client and gRPC service. 461

  • ADDED examples on how to write Unit tests with DaprClient and Actors. 470

  • FIXED order of State key-value params. 472

Python SDK

Python SDK version is 1.0.0rc3 and is available through pip/pypi

  • RESOLVED Add wait() method to block until Sidecar is up 140

  • RESOLVED For invoke Service - How to return error over grpc. 141

  • RESOLVED Naming changes 150

  • RESOLVED Allow for a more recent version of grpcio 160

  • ADDED code in state store example showcasing etag handling. 167

  • FIXED Support for null and empty etag. 169

  • RESOLVED Makes service method API invocations over HTTP by default. 176

  • RESOLVED Add support for bulkGetSecret 179

  • REMOVE dependency from OpenCensus SDK. 181

PHP SDK

  • RESOLVED Dapr composer org, package and publish 1

Documentation

  • RESOLVED Make it clear in the docs that all Dapr services Placements and Sentry service do not need Docker to run locally 857

  • RESOLVED Document components maturity status 935

  • UPDATED overview description for pub/sub topics and subscriptions 987

  • RESOLVED mDNS round robin capability 1025

  • RESOLVED Fix spelling of Rust 1056

  • RESOLVED Update apns.md 1058

  • RESOLVED Fix typo in Kubernetes binding docs 1060

  • RESOLVED [CONTENT] PubSub handling of CloudEvents and TTL 1061

  • RESOLVED Add a note about installing the cli to M1 macs 1064

  • RESOLVED refine code align in middleware concept 1066

  • RESOLVED update link 1068

  • RESOLVED updated rabbitmq pub/sub documentation 1069

  • RESOLVED Change NATS streaming deliverAll to deliverNew 1074

  • RESOLVED Update rabbitmq.md 1086

  • RESOLVED Update the component docs for state stores to capture all the metadata fields and have complete examples 1087

  • RESOLVED [CONTENT] Add info about {uuid} 1095

  • RESOLVED Insert section for Dapr to App authentication 1096

  • RESOLVED MySQL State component documentation 1100

  • RESOLVED Document Content Type application/cloudevents+json 1130

Quickstarts

  • ADDED Automated validation of quickstarts 357

  • RESOLVED Error when running Python app: exec: "flask": executable file not found in $PATH 363

Samples

  • RESOLVED add new sample 41

Upgrading to Dapr 1.0.0-rc.3

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?

Local Machine / Self-hosted

Uninstall Dapr using the CLI you currently have installed. Note that this will remove the default $HOME/.dapr directory, binaries and all containers dapr_redis, dapr_placement and dapr_zipkin. Linux users need to run sudo if docker command needs sudo:

dapr uninstall --all

For RC releases like this, download the latest and greatest release from here and put the dapr binary in your PATH.

Once you have installed the CLI, run:

dapr init --runtime-version=1.0.0-rc.3

Wait for the update to finish, ensure you are using the latest version of Dapr(1.0.0-rc.3) with:

$ dapr --version

CLI version: 1.0.0-rc.4
Runtime version: 1.0.0-rc.3

Kubernetes

Upgrading from previous version

You can perform zero-downtime upgrades using both Helm 3 and the Dapr CLI.

Upgrade using the CLI

Download the latest RC release from here 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

Upgrade using Helm

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

Starting a fresh install on a cluster

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
Post installation

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

Breaking Changes

Component versioning

Specifying a component version is now required.
All components MUST now include the v1 version in their spec:

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: mycomponent
spec:
  version: v1

ETags

Two changes were made regarding ETags:

  1. An Etag mismatch operation will now return an HTTP status code of 409 and a gRPC code of Aborted.

  2. 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.

Dapr Runtime

  • RESOLVED Make required the version field on Component YAML 2260

  • FIXED Empty etag treated as no etag. 2320

  • CHANGED response handling for cross-protocol invocation. 2342

  • RESOLVED Return HTTP 409 Conflict when ETag doesn't match 2619

.NET SDK

  • RESOLVED Remove Query all statenames from IActorStateManager because it does not behave as expected 53

  • RESOLVED Prefer IDictionary<TKey, TValue> over Dictionary<TKey, TValue> in public APIs 395

  • RESOLVED TrySaveStateAsync and TryDeleteStateAsync should only handle "rejections" based on ETag, not all RPC exceptions 426

  • RESOLVED Actors HTTP handlers don't work with some common frontend server patterns 434

  • RESOLVED Have consistent API names for .NET SDK 500

  • RESOLVED Throw DaprException for dapr errors 516

  • RESOLVED Use Task instead of ValueTask 517

  • RESOLVED Reimagining service invocation for dotnet-sdk 526

  • RESOLVED Simplifying Service Invocation API surface 549

  • RESOLVED Expose Dapr API token to users as a settable value 551

  • FIXED DaprClient now implements IDisposable so that networking resources can be reclaimed deterministically. 559

Go SDK

  • RESOLVED Remove unstable dependencies. 136

Java SDK

  • REFACTORED CloudEvent serialization, also adding default constructor. 385

  • FIXED missing eTag response for state APIs. 405

  • RENAMED methods and properties for consistency across SDKs. 409

  • RESOLVED Handle service invocation over HTTP only 438

  • REMOVED unused etag param from getState() 439

  • RENAMED InvokeServiceRequest to InvokeMethodRequest. 443

  • REMOVED dependency from OpenTelemetry SDK 453

  • FIXED order of State key-value params. 472

Python SDK

  • RESOLVED Naming changes 150

  • REMOVED dependency from OpenCensus SDK. 181

Don't miss a new dapr release

NewReleases is sending notifications on new releases.