From 8c9b66d52cf6eaf770475d5de4f6a9b581417aac Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Tue, 14 Sep 2021 14:39:08 -0700 Subject: [PATCH] Preview feature updates for v1.4 (#1787) * updating preview features * preview features doc updates * preview alerts and table edits --- .../pubsub/howto-route-messages.md | 22 +++++++++++-------- .../howto-invoke-services-grpc.md | 5 ++++- .../state-management/howto-encrypt-state.md | 6 ++++- .../support/support-preview-features.md | 13 ++++++----- 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-route-messages.md b/daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-route-messages.md index 26a8daa8e..f860036de 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-route-messages.md +++ b/daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-route-messages.md @@ -6,10 +6,20 @@ weight: 2100 description: "Learn how to route messages from a topic to different event handlers based on CloudEvent fields" --- -{{% alert title="Note" color="primary" %}} -This is an preview feature. To enable it, add the `PubSub.Routing` feature entry to your application configuration. +{{% alert title="Preview feature" color="warning" %}} +Pub/Sub message routing is currently in [preview]({{< ref preview-features.md >}}). {{% /alert %}} +## Introduction + +[Content-based routing](https://www.enterpriseintegrationpatterns.com/ContentBasedRouter.html) is a messaging pattern that utilizes a DSL instead of imperative application code. PubSub routing is an implementation of this pattern that allows developers to use expressions to route [CloudEvents](https://cloudevents.io) based on their contents to different URIs/paths and event handlers in your application. If no route matches, then an optional default route is used. This becomes useful as your applications expands to support multiple event versions, or special cases. Routing can be implemented with code; however, keeping routing rules external from the application can improve portability. + +This feature is available to both the declarative and programmatic subscription approaches. + +## Enable message routing + +This is a preview feature. To enable it, add the `PubSub.Routing` feature entry to your application configuration like so: + ```yaml apiVersion: dapr.io/v1alpha1 kind: Configuration @@ -20,13 +30,7 @@ spec: - name: PubSub.Routing enabled: true ``` - -## Introduction - -[Content-based routing](https://www.enterpriseintegrationpatterns.com/ContentBasedRouter.html) is a messaging pattern that utilizes a DSL instead of imperative application code. PubSub routing is an implementation of this pattern that allows developers to use expressions to route [CloudEvents](https://cloudevents.io) based on their contents to different URIs/paths and event handlers in your application. If no route matches, then an optional default route is used. This becomes useful as your applications expands to support multiple event versions, or special cases. Routing can be implemented with code; however, keeping routing rules external from the application can improve portability. - -This feature is available to both the declarative and programmatic subscription approaches. - +Learn more about enabling [preview features]({{}}). ## Declarative subscription For declarative subscriptions, you must use `dapr.io/v2alpha1` as the `apiVersion`. Here is an example of `subscriptions.yaml` using routing. diff --git a/daprdocs/content/en/developing-applications/building-blocks/service-invocation/howto-invoke-services-grpc.md b/daprdocs/content/en/developing-applications/building-blocks/service-invocation/howto-invoke-services-grpc.md index 21e1aae3e..a29e83063 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/service-invocation/howto-invoke-services-grpc.md +++ b/daprdocs/content/en/developing-applications/building-blocks/service-invocation/howto-invoke-services-grpc.md @@ -5,9 +5,12 @@ linkTitle: "How-To: Invoke with gRPC" description: "Call between services using service invocation" weight: 3000 --- +{{% alert title="Preview feature" color="warning" %}} +gRPC proxying is currently in [preview]({{< ref preview-features.md >}}). +{{% /alert %}} This article describe how to use Dapr to connect services using gRPC. -By using Dapr's gRPC proxying capability, you can use your existing proto based gRPC services and have the traffic go through the Dapr sidecar. Doing so yields the following [Dapr Service Invocation]({{< ref service-invocation-overview.md >}}) benefits to developers: +By using Dapr's gRPC proxying capability, you can use your existing proto based gRPC services and have the traffic go through the Dapr sidecar. Doing so yields the following [Dapr service invocation]({{< ref service-invocation-overview.md >}}) benefits to developers: 1. Mutual authentication 2. Tracing diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-encrypt-state.md b/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-encrypt-state.md index e8a20abeb..fef60461b 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-encrypt-state.md +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-encrypt-state.md @@ -7,9 +7,13 @@ description: "Automatically encrypt state and manage key rotations" --- +{{% alert title="Preview feature" color="warning" %}} +State store encryption is currently in [preview]({{< ref preview-features.md >}}). +{{% /alert %}} + ## Introduction -Application state often needs to get encrypted at rest to provide stonger security in enterprise workloads or regulated environments. Dapr offers automatic client side encryption based on [AES256](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard). +Application state often needs to get encrypted at rest to provide stronger security in enterprise workloads or regulated environments. Dapr offers automatic client side encryption based on [AES256](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard). In addition to automatic encryption, Dapr supports primary and secondary encryption keys to make it easier for developers and ops teams to enable a key rotation strategy. This feature is supported by all Dapr state stores. diff --git a/daprdocs/content/en/operations/support/support-preview-features.md b/daprdocs/content/en/operations/support/support-preview-features.md index 0715eb791..202eb22e0 100644 --- a/daprdocs/content/en/operations/support/support-preview-features.md +++ b/daprdocs/content/en/operations/support/support-preview-features.md @@ -9,9 +9,10 @@ Preview features in Dapr are considered experimental when they are first release ## Current preview features -| Description | Setting | Documentation | -|-------------|---------|---------------| -| Preview feature that enables Actors to be called multiple times in the same call chain allowing call backs between actors. | Actor.Reentrancy | [Actor reentrancy]({{}}) | -| Preview feature that allows Actor reminders to be partitioned across multiple keys in the underlying statestore in order to improve scale and performance. | Actor.TypeMetadata | [How-To: Partition Actor Reminders]({{< ref "howto-actors.md#partitioning-reminders" >}}) | -| Preview feature that enables you to call endpoints using service invocation on gRPC services through Dapr via gRPC proxying, without requiring the use of Dapr SDKs. | proxy.grpc | [How-To: Invoke services using gRPC]({{}}) | -| Preview feature that allows developers to use expressions to route cloud events to different URIs/paths and event handlers in your application. | PubSub.Routing | [How-To: Publish a message and subscribe to a topic]({{}}) | +| Feature | Description | Setting | Documentation | +| ---------- |-------------|---------|---------------| +| **Actor reentrancy** | Enables actors to be called multiple times in the same call chain allowing call backs between actors. | `Actor.Reentrancy` | [Actor reentrancy]({{}}) | +| **Partition actor reminders** | Allows actor reminders to be partitioned across multiple keys in the underlying statestore in order to improve scale and performance. | `Actor.TypeMetadata` | [How-To: Partition Actor Reminders]({{< ref "howto-actors.md#partitioning-reminders" >}}) | +| **gRPC proxying** | Enables calling endpoints using service invocation on gRPC services through Dapr via gRPC proxying, without requiring the use of Dapr SDKs. | `proxy.grpc` | [How-To: Invoke services using gRPC]({{}}) | +| **State store encryption** | Enables automatic client side encryption for state stores | `State.Encryption` | [How-To: Encrypt application state]({{}}) | +| **Pub/Sub routing** | Allow the use of expressions to route cloud events to different URIs/paths and event handlers in your application. | `PubSub.Routing` | [How-To: Publish a message and subscribe to a topic]({{}}) |