From 55d9123cfea08d095ab882867468b82d5ced2fcc Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 24 Jun 2021 17:50:12 -0700 Subject: [PATCH] upmerge/06-24 (#1588) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Supported Release Info and Upgrade Path for v1.2 (#1494) * Supported Release Info and Upgrade Path for v1.2 * Update support-release-policy.md * Update daprdocs/content/en/operations/support/support-release-policy.md Co-authored-by: Aaron Crawfis * Adding K8s versions table (#1521) * Adding table of kubernetes versions * Updating intro * Fix incorrect postgresql connection string example (#1524) Co-authored-by: Aaron Crawfis * Update docs on using Codespaces with Dapr repos (#1522) * Update docs on using Codespaces with Dapr repos * Move codespaces.md under the Contributing topic * Update daprdocs/content/en/contributing/codespaces.md Co-authored-by: Aaron Crawfis * Fix two typos (#1526) Co-authored-by: Aaron Crawfis * Update chinese content (#1527) Co-authored-by: Aaron Crawfis * Updated to fix deprecated helm chart location (#1528) The `https://kubernetes-charts.storage.googleapis.com/` location is no longer used, so this change updates this, the command to install, and the missing update step that will cause the install to fail if an update was never done after adding the location. Co-authored-by: Aaron Crawfis * nr_consul_typo fixed malformed yaml (#1532) Co-authored-by: Aaron Crawfis * Fix typo in azure-keyvault-managed-identity.md (#1541) * Fix custom middleware sample code interface implementation error (#1539) Fix custom middleware sample code interface implementation error, interface function declare error. Co-authored-by: Aaron Crawfis * Fix the file name of secrets json (#1546) * Tech writing touch-ups (#1555) * Tech writing touch-ups (#1556) Co-authored-by: Aaron Crawfis * Tech writing touch-ups (#1557) Co-authored-by: Aaron Crawfis * Tech writing touch-ups (#1558) Co-authored-by: Aaron Crawfis * Tech writing touch-ups (#1560) Co-authored-by: Aaron Crawfis * Tech writing touch-ups (#1559) Co-authored-by: Aaron Crawfis * Ignore intellij link that isn't resolvable (#1564) * Update issue templates (#1563) * Update issue templates * Add needs-triage * Updating PubSub documentation to remove slave wording (#1565) * Updating PubSub documentation to remove slave Bitnami has updated their Redis Helm chart to change redis-slave to redis-replicas. I am updating the documentation for PubSub to reflect this change and avoid confusion for any readers. * Removing more instances of Redis slave naming Co-authored-by: Aaron Crawfis * Actor Runtime Configuration Docs (#1495) * Actor Runtime Configuration Docs Addresses #1470 * Update daprdocs/content/en/developing-applications/building-blocks/actors/howto-actors.md Co-authored-by: Aaron Crawfis * Update daprdocs/content/en/developing-applications/building-blocks/actors/howto-actors.md Co-authored-by: Aaron Crawfis * add configuration examples * configuration examples * Fix syntax * Add dotnet sample * Update daprdocs/content/en/developing-applications/building-blocks/actors/howto-actors.md Co-authored-by: Aaron Crawfis * Fixed GCP Pub/Sub Binding required fields (#1578) * aacrawfi/middlware (#1567) * Move and update middleware components * Update middleware docs structure * Combine middleware pages * Update middleware references * Update middleware image * Fix incorrect curl syntax in Actors API examples (#1577) Co-authored-by: Aaron Crawfis * Fix link at api-allowlist.md (#1574) Fix link at api-allowlist.md to Dapr Configuration overview Co-authored-by: Aaron Crawfis * Add language that only a single state store component can be used for actors state mangement (#1579) Co-authored-by: Aaron Crawfis * fix: cron format (#1581) * Updated name resolution docs (#1576) * Add consul references * Fix typo Add a missing word * Clarify state management examples * Added table to show Kubernetes options When I read this doc it was unclear that the cert could be provided as a secret. The only table on the original version showed `spnCertificateFile` as a required option. I added a second table to make it clear that in Kubernetes there is a `spnCertificate` option that does not require a file on disk. * incorporating feedback * Update daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md * Update daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md * Fix self-hosted docs * Remove name-resolution reference * Add other name resolution providers * Update service invocation docs * Remove whitespace * Update service-invocation-overview.md Fixed typo and added a sentence on Consul * Update setup-nr-consul.md Minor updates * Address comments * Fix code formatting Co-authored-by: Esteban Luchsinger Co-authored-by: Donovan Brown Co-authored-by: Mark Fussell Co-authored-by: Bernd Verst Co-authored-by: Mark Fussell Co-authored-by: Zonciu Liang Co-authored-by: Simon Leet <31784195+CodeMonkeyLeet@users.noreply.github.com> Co-authored-by: Maarten Mulders Co-authored-by: Newbe36524 Co-authored-by: Steven Jenkins De Haro <20492442+StevenJDH@users.noreply.github.com> Co-authored-by: Abdulaziz Elsheikh Co-authored-by: Antonio Fiumanò Co-authored-by: li1234yun Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Co-authored-by: voipengineer Co-authored-by: Evan Simkowitz Co-authored-by: Ricardo Niepel Co-authored-by: Abhith Rajan Co-authored-by: Esteban Luchsinger Co-authored-by: Donovan Brown --- .../content/en/concepts/components-concept.md | 2 +- .../content/en/concepts/middleware-concept.md | 39 --------- .../building-blocks/actors/howto-actors.md | 3 +- .../service-invocation-overview.md | 67 +++++++-------- .../state-management-overview.md | 2 +- .../middleware-overview.md => middleware.md} | 56 +++++------- .../middleware/_index.md | 7 -- .../supported-middleware/middleware-bearer.md | 55 ------------ .../supported-middleware/middleware-oauth2.md | 72 ---------------- .../middleware-oauth2clientcredentials.md | 72 ---------------- .../operations/configuration/api-allowlist.md | 2 +- .../configuration/configuration-overview.md | 2 +- .../self-hosted/self-hosted-overview.md | 5 ++ .../self-hosted/self-hosted-with-docker.md | 4 + .../content/en/operations/security/oauth.md | 6 +- .../content/en/reference/api/actors_api.md | 8 +- .../supported-bindings/cron.md | 2 +- .../supported-bindings/gcppubsub.md | 14 +-- .../supported-middleware/_index.md | 8 +- .../supported-middleware/middleware-bearer.md | 56 ++++++++++++ .../supported-middleware/middleware-oauth2.md | 80 ++++++++++++++++++ .../middleware-oauth2clientcredentials.md | 78 +++++++++++++++++ .../supported-middleware/middleware-opa.md | 19 +++-- .../middleware-rate-limit.md | 15 ++-- .../middleware-sentinel.md | 27 +++--- .../middleware-uppercase.md | 9 +- .../supported-name-resolution/_index.md | 7 +- .../nr-kubernetes.md | 23 +++++ .../supported-name-resolution/nr-mdns.md | 29 +++++++ .../setup-nr-consul.md | 14 +-- daprdocs/static/images/middleware.png | Bin 25094 -> 44866 bytes .../images/service-invocation-overview.png | Bin 94541 -> 86974 bytes 32 files changed, 401 insertions(+), 382 deletions(-) delete mode 100644 daprdocs/content/en/concepts/middleware-concept.md rename daprdocs/content/en/developing-applications/{middleware/middleware-overview.md => middleware.md} (51%) delete mode 100644 daprdocs/content/en/developing-applications/middleware/_index.md delete mode 100644 daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-bearer.md delete mode 100644 daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-oauth2.md delete mode 100644 daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-oauth2clientcredentials.md rename daprdocs/content/en/{developing-applications/middleware => reference/components-reference}/supported-middleware/_index.md (92%) create mode 100644 daprdocs/content/en/reference/components-reference/supported-middleware/middleware-bearer.md create mode 100644 daprdocs/content/en/reference/components-reference/supported-middleware/middleware-oauth2.md create mode 100644 daprdocs/content/en/reference/components-reference/supported-middleware/middleware-oauth2clientcredentials.md rename daprdocs/content/en/{developing-applications/middleware => reference/components-reference}/supported-middleware/middleware-opa.md (80%) rename daprdocs/content/en/{developing-applications/middleware => reference/components-reference}/supported-middleware/middleware-rate-limit.md (61%) rename daprdocs/content/en/{developing-applications/middleware => reference/components-reference}/supported-middleware/middleware-sentinel.md (70%) rename daprdocs/content/en/{developing-applications/middleware => reference/components-reference}/supported-middleware/middleware-uppercase.md (69%) create mode 100644 daprdocs/content/en/reference/components-reference/supported-name-resolution/nr-kubernetes.md create mode 100644 daprdocs/content/en/reference/components-reference/supported-name-resolution/nr-mdns.md diff --git a/daprdocs/content/en/concepts/components-concept.md b/daprdocs/content/en/concepts/components-concept.md index f5e84cde7..8331dbd82 100644 --- a/daprdocs/content/en/concepts/components-concept.md +++ b/daprdocs/content/en/concepts/components-concept.md @@ -29,7 +29,7 @@ Service discovery components are used with the [service invocation]({{}}) to be plugged into the request processing pipeline. Middleware can perform additional actions on a request, such as authentication, encryption and message transformation before the request is routed to the user code, or before the request is returned to the client. The middleware components are used with the [service invocation]({{}}) building block. +Dapr allows custom [middleware]({{}}) to be plugged into the request processing pipeline. Middleware can perform additional actions on a request, such as authentication, encryption and message transformation before the request is routed to the user code, or before the request is returned to the client. The middleware components are used with the [service invocation]({{}}) building block. - [Middleware implementations](https://github.com/dapr/components-contrib/tree/master/middleware) diff --git a/daprdocs/content/en/concepts/middleware-concept.md b/daprdocs/content/en/concepts/middleware-concept.md deleted file mode 100644 index 2f382f867..000000000 --- a/daprdocs/content/en/concepts/middleware-concept.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -type: docs -title: "Middleware pipelines" -linkTitle: "Middleware" -weight: 400 -description: "Custom processing pipelines of chained middleware components" ---- - -Dapr allows custom processing pipelines to be defined by chaining a series of middleware components. A request goes through all defined middleware components before it's routed to user code, and then goes through the defined middleware, in reverse order, before it's returned to the client, as shown in the following diagram. - - - -## Customize processing pipeline - -When launched, a Dapr sidecar constructs a middleware processing pipeline. By default the pipeline consists of [tracing middleware]({{< ref tracing-overview.md >}}) and CORS middleware. Additional middleware, configured by a Dapr [configuration]({{< ref configuration-concept.md >}}), can be added to the pipeline in the order they are defined. The pipeline applies to all Dapr API endpoints, including state, pub/sub, service invocation, bindings, security and others. - -> **NOTE:** Dapr provides a **middleware.http.uppercase** pre-registered component that changes all text in a request body to uppercase. You can use it to test/verify if your custom pipeline is in place. - -The following configuration example defines a custom pipeline that uses a [OAuth 2.0 middleware]({{< ref oauth.md >}}) and an uppercase middleware component. In this case, all requests are authorized through the OAuth 2.0 protocol, and transformed to uppercase text, before they are forwarded to user code. - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: pipeline - namespace: default -spec: - httpPipeline: - handlers: - - name: oauth2 - type: middleware.http.oauth2 - - name: uppercase - type: middleware.http.uppercase -``` - -## Next steps - -* [Middleware overview]({{< ref middleware-overview.md >}}) -* [How-To: Configure API authorization with OAuth]({{< ref oauth.md >}}) diff --git a/daprdocs/content/en/developing-applications/building-blocks/actors/howto-actors.md b/daprdocs/content/en/developing-applications/building-blocks/actors/howto-actors.md index 0ba0043dc..1511ec40f 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/actors/howto-actors.md +++ b/daprdocs/content/en/developing-applications/building-blocks/actors/howto-actors.md @@ -23,10 +23,9 @@ Refer [api spec]({{< ref "actors_api.md#invoke-actor-method" >}}) for more detai ## Actor state management Actors can save state reliably using state management capability. - You can interact with Dapr through HTTP/gRPC endpoints for state management. -To use actors, your state store must support multi-item transactions. This means your state store [component](https://github.com/dapr/components-contrib/tree/master/state) must implement the [TransactionalStore](https://github.com/dapr/components-contrib/blob/master/state/transactional_store.go) interface. The list of components that support transactions/actors can be found here: [supported state stores]({{< ref supported-state-stores.md >}}). +To use actors, your state store must support multi-item transactions. This means your state store [component](https://github.com/dapr/components-contrib/tree/master/state) must implement the [TransactionalStore](https://github.com/dapr/components-contrib/blob/master/state/transactional_store.go) interface. The list of components that support transactions/actors can be found here: [supported state stores]({{< ref supported-state-stores.md >}}). Only a single state store component can be used as the statestore for all actors. ## Actor timers and reminders diff --git a/daprdocs/content/en/developing-applications/building-blocks/service-invocation/service-invocation-overview.md b/daprdocs/content/en/developing-applications/building-blocks/service-invocation/service-invocation-overview.md index a8e2fad0d..1b5198f23 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/service-invocation/service-invocation-overview.md +++ b/daprdocs/content/en/developing-applications/building-blocks/service-invocation/service-invocation-overview.md @@ -12,10 +12,10 @@ Using service invocation, your application can reliably and securely communicate In many environments with multiple services that need to communicate with each other, developers often ask themselves the following questions: -* How do I discover and invoke methods on different services? -* How do I call other services securely with encryption and apply access control on the methods? -* How do I handle retries and transient errors? -* How do I use tracing to see a call graph with metrics to diagnose issues in production? +- How do I discover and invoke methods on different services? +- How do I call other services securely with encryption and apply access control on the methods? +- How do I handle retries and transient errors? +- How do I use tracing to see a call graph with metrics to diagnose issues in production? Dapr addresses these challenges by providing a service invocation API that acts as a combination of a reverse proxy with built-in service discovery, while leveraging built-in distributed tracing, metrics, error handling, encryption and more. @@ -28,11 +28,9 @@ The diagram below is an overview of how Dapr's service invocation works. Diagram showing the steps of service invocation 1. Service A makes an HTTP or gRPC call targeting Service B. The call goes to the local Dapr sidecar. -2. Dapr discovers Service B's location using the [name resolution component](https://github.com/dapr/components-contrib/tree/master/nameresolution) which is running on the given [hosting platform]({{< ref "hosting" >}}). +2. Dapr discovers Service B's location using the [name resolution component]({{< ref supported-name-resolution >}}) which is running on the given [hosting platform]({{< ref "hosting" >}}). 3. Dapr forwards the message to Service B's Dapr sidecar - - **Note**: All calls between Dapr sidecars go over gRPC for performance. Only calls between services and Dapr sidecars can be either HTTP or gRPC - + - **Note**: All calls between Dapr sidecars go over gRPC for performance. Only calls between services and Dapr sidecars can be either HTTP or gRPC 4. Service B's Dapr sidecar forwards the request to the specified endpoint (or method) on Service B. Service B then runs its business logic code. 5. Service B sends a response to Service A. The response goes to Service B's sidecar. 6. Dapr forwards the response to Service A's Dapr sidecar. @@ -43,18 +41,21 @@ Service invocation provides several features to make it easy for you to call met ### Namespaces scoping -Service invocation supports calls across namespaces. On all supported hosting platforms, Dapr app IDs conform to a valid FQDN format that includes the target namespace. - -For example, the following string contains the app ID `nodeapp` in addition to the namespace the app runs in `production`. +By default, users can invoke services within the same namespaces by simply referencing the app ID (`nodeapp`): +```sh +localhost:3500/v1.0/invoke/nodeapp/method/neworder ``` + +Service invocation also supports calls across namespaces. On all supported hosting platforms, Dapr app IDs conform to a valid FQDN format that includes the target namespace. + +Users can specify both the app ID (`nodeapp`) in addition to the namespace the app runs in (`production`): + +```sh localhost:3500/v1.0/invoke/nodeapp.production/method/neworder ``` -This is especially useful in cross namespace calls in a Kubernetes cluster. Watch this video for a demo on how to use namespaces with service invocation. - - - +This is especially useful in cross namespace calls in a Kubernetes cluster. ### Service-to-service security @@ -62,44 +63,37 @@ All calls between Dapr applications can be made secure with mutual (mTLS) authen For more information read the [service-to-service security]({{< ref "security-concept.md#sidecar-to-sidecar-communication" >}}) article. - -### Service access policies security +### Access control Applications can control which other applications are allowed to call them and what they are authorized to do via access policies. This enables you to restrict sensitive applications, that say have personnel information, from being accessed by unauthorized applications, and combined with service-to-service secure communication, provides for soft multi-tenancy deployments. For more information read the [access control allow lists for service invocation]({{< ref invoke-allowlist.md >}}) article. -#### Example service invocation security -The diagram below is an example deployment on a Kubernetes cluster with a Daprized `Ingress` service that calls onto `Service A` using service invocation with mTLS encryption and an applies access control policy. `Service A` then calls onto `Service B` also using service invocation and mTLS. Each service is running in different namespaces for added isolation. - - - ### Retries Service invocation performs automatic retries with backoff time periods in the event of call failures and transient errors. Errors that cause retries are: -* Network errors including endpoint unavailability and refused connections. -* Authentication errors due to a renewing certificate on the calling/callee Dapr sidecars. +- Network errors including endpoint unavailability and refused connections. +- Authentication errors due to a renewing certificate on the calling/callee Dapr sidecars. Per call retries are performed with a backoff interval of 1 second up to a threshold of 3 times. Connection establishment via gRPC to the target sidecar has a timeout of 5 seconds. ### Pluggable service discovery -Dapr can run on any [hosting platform]({{< ref hosting >}}). For the supported hosting platforms this means they have a [name resolution component](https://github.com/dapr/components-contrib/tree/master/nameresolution) developed for them that enables service discovery. For example, the Kubernetes name resolution component uses the Kubernetes DNS service to resolve the location of other applications running in the cluster. For local and multiple physical machines this uses the mDNS protocol. - -> Note: [For local and physical machines, ensure mDNS is functioning properly.]({{< ref "common_issues.md#service-invocation-is-failing-and-my-dapr-service-is-missing-an-appId-macos" >}}) +Dapr can run on a variety of [hosting platforms]({{< ref hosting >}}). To enable service discovery and service invocation, Dapr uses pluggable [name resolution components]({{< ref supported-name-resolution >}}). For example, the Kubernetes name resolution component uses the Kubernetes DNS service to resolve the location of other applications running in the cluster. Self-hosted machines can use the mDNS name resolution component. The Consul name resolution component can be used in any hosting environment including Kubernetes or self-hosted. ### Round robin load balancing with mDNS + Dapr provides round robin load balancing of service invocation requests with the mDNS protocol, for example with a single machine or with multiple, networked, physical machines. The diagram below shows an example of how this works. If you have 1 instance of an application with app ID `FrontEnd` and 3 instances of application with app ID `Cart` and you call from `FrontEnd` app to `Cart` app, Dapr round robins' between the 3 instances. These instance can be on the same machine or on different machines. . -Diagram showing the steps of service invocation +Diagram showing the steps of service invocation -Note: You can have N instances of the same app with the same app ID as app ID is unique per app. And you can have multiple instances of that app where all those instances have the same app ID. +**Note**: You can have N instances of the same app with the same app ID as app ID is unique per app. And you can have multiple instances of that app where all those instances have the same app ID. ### Tracing and metrics with observability @@ -110,11 +104,12 @@ By default, all calls between applications are traced and metrics are gathered t The API for service invocation can be found in the [service invocation API reference]({{< ref service_invocation_api.md >}}) which describes how to invoke a method on another service. ## Example + Following the above call sequence, suppose you have the applications as described in the [hello world quickstart](https://github.com/dapr/quickstarts/blob/master/hello-world/README.md), where a python app invokes a node.js app. In such a scenario, the python app would be "Service A" , and a Node.js app would be "Service B". The diagram below shows sequence 1-7 again on a local machine showing the API calls: - + 1. The Node.js app has a Dapr app ID of `nodeapp`. The python app invokes the Node.js app's `neworder` method by POSTing `http://localhost:3500/v1.0/invoke/nodeapp/method/neworder`, which first goes to the python app's local Dapr sidecar. 2. Dapr discovers the Node.js app's location using name resolution component (in this case mDNS while self-hosted) which runs on your local machine. @@ -126,9 +121,9 @@ The diagram below shows sequence 1-7 again on a local machine showing the API ca ## Next steps -* Follow these guides on: - * [How-to: Invoke services using HTTP]({{< ref howto-invoke-discover-services.md >}}) - * [How-To: Configure Dapr to use gRPC]({{< ref grpc >}}) -* Try out the [hello world quickstart](https://github.com/dapr/quickstarts/blob/master/hello-world/README.md) which shows how to use HTTP service invocation or try the samples in the [Dapr SDKs]({{< ref sdks >}}) -* Read the [service invocation API specification]({{< ref service_invocation_api.md >}}) -* Understand the [service invocation performance]({{< ref perf-service-invocation.md >}}) numbers +- Follow these guides on: + - [How-to: Invoke services using HTTP]({{< ref howto-invoke-discover-services.md >}}) + - [How-To: Configure Dapr to use gRPC]({{< ref grpc >}}) +- Try out the [hello world quickstart](https://github.com/dapr/quickstarts/blob/master/hello-world/README.md) which shows how to use HTTP service invocation or try the samples in the [Dapr SDKs]({{< ref sdks >}}) +- Read the [service invocation API specification]({{< ref service_invocation_api.md >}}) +- Understand the [service invocation performance]({{< ref perf-service-invocation.md >}}) numbers diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/state-management-overview.md b/daprdocs/content/en/developing-applications/building-blocks/state-management/state-management-overview.md index f414b9376..dc7149d1f 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/state-management/state-management-overview.md +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/state-management-overview.md @@ -65,7 +65,7 @@ Dapr supports two types of bulk operations - **bulk** or **multi**. You can grou Read the [API reference]({{< ref state_api.md >}}) to learn how use bulk and multi options. ### Actor state -Transactional state stores can be used to store actor state. To specify which state store to be used for actors, specify value of property `actorStateStore` as `true` in the metadata section of the state store component. Actors state is stored with a specific scheme in transactional state stores, which allows for consistent querying. Read the [API reference]({{< ref state_api.md >}}) to learn more about state stores for actors and the [actors API reference]({{< ref actors_api.md >}}) +Transactional state stores can be used to store actor state. To specify which state store to be used for actors, specify value of property `actorStateStore` as `true` in the metadata section of the state store component. Actors state is stored with a specific scheme in transactional state stores, which allows for consistent querying. Only a single state store component can be used as the statestore for all actors. Read the [API reference]({{< ref state_api.md >}}) to learn more about state stores for actors and the [actors API reference]({{< ref actors_api.md >}}) ### Query state store directly diff --git a/daprdocs/content/en/developing-applications/middleware/middleware-overview.md b/daprdocs/content/en/developing-applications/middleware.md similarity index 51% rename from daprdocs/content/en/developing-applications/middleware/middleware-overview.md rename to daprdocs/content/en/developing-applications/middleware.md index 751bac28f..a48ceac16 100644 --- a/daprdocs/content/en/developing-applications/middleware/middleware-overview.md +++ b/daprdocs/content/en/developing-applications/middleware.md @@ -1,52 +1,43 @@ --- type: docs -title: "Overview" -linkTitle: "Overview" -description: "General overview on set up of middleware components for Dapr" -weight: 10000 -type: docs +title: "Middleware" +linkTitle: "Middleware" +weight: 50 +description: "Customize processing pipelines by adding middleware components" +aliases: +- /developing-applications/middleware/middleware-overview/ +- /concepts/middleware-concept/ --- -Dapr allows custom processing pipelines to be defined by chaining a series of middleware components. Middleware pipelines are defined in Dapr configuration files. -As with other [building block components]({{< ref component-schema.md >}}), middleware components are extensible and can be found in the [components-contrib repo](https://github.com/dapr/components-contrib/tree/master/middleware/http). +Dapr allows custom processing pipelines to be defined by chaining a series of middleware components. A request goes through all defined middleware components before it's routed to user code, and then goes through the defined middleware, in reverse order, before it's returned to the client, as shown in the following diagram. -Middleware in Dapr is described using a `Component` file with the following schema: + -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: - namespace: -spec: - type: middleware.http. - version: v1 - metadata: - - name: - value: - - name: - value: -... -``` -The type of middleware is determined by the `type` field. Component setting values such as rate limits, OAuth credentials and other settings are put in the `metadata` section. -Even though metadata values can contain secrets in plain text, it is recommended that you use a [secret store]({{< ref component-secrets.md >}}). +## Configuring middleware pipelines -Next, a Dapr [configuration]({{< ref configuration-overview.md >}}) defines the pipeline of middleware components for your application. +When launched, a Dapr sidecar constructs a middleware processing pipeline. By default the pipeline consists of [tracing middleware]({{< ref tracing-overview.md >}}) and CORS middleware. Additional middleware, configured by a Dapr [configuration]({{< ref configuration-concept.md >}}), can be added to the pipeline in the order they are defined. The pipeline applies to all Dapr API endpoints, including state, pub/sub, service invocation, bindings, security and others. + +The following configuration example defines a custom pipeline that uses a [OAuth 2.0 middleware]({{< ref middleware-oauth2.md >}}) and an [uppercase middleware component]({{< ref middleware-uppercase.md >}}). In this case, all requests are authorized through the OAuth 2.0 protocol, and transformed to uppercase text, before they are forwarded to user code. ```yaml apiVersion: dapr.io/v1alpha1 kind: Configuration metadata: - name: appconfig + name: pipeline + namespace: default spec: httpPipeline: handlers: - - name: - type: middleware.http. - - name: - type: middleware.http. + - name: oauth2 + type: middleware.http.oauth2 + - name: uppercase + type: middleware.http.uppercase ``` +As with other building block components, middleware components are extensible and can be found in the [supported Middleware reference]({{< ref supported-middleware >}}) and in the [components-contrib repo](https://github.com/dapr/components-contrib/tree/master/middleware/http). + +{{< button page="supported-middleware" text="See all middleware components">}} + ## Writing a custom middleware Dapr uses [FastHTTP](https://github.com/valyala/fasthttp) to implement its HTTP server. Hence, your HTTP middleware needs to be written as a FastHTTP handler. Your middleware needs to implement a middleware interface, which defines a **GetHandler** method that returns **fasthttp.RequestHandler** and **error**: @@ -81,7 +72,6 @@ After the components-contrib change has been accepted, submit another pull reque ## Related links -* [Middleware pipelines concept]({{< ref middleware-concept.md >}}) * [Component schema]({{< ref component-schema.md >}}) * [Configuration overview]({{< ref configuration-overview.md >}}) * [Middleware quickstart](https://github.com/dapr/quickstarts/tree/master/middleware) diff --git a/daprdocs/content/en/developing-applications/middleware/_index.md b/daprdocs/content/en/developing-applications/middleware/_index.md deleted file mode 100644 index 48d145843..000000000 --- a/daprdocs/content/en/developing-applications/middleware/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -type: docs -title: "Middleware" -linkTitle: "Middleware" -weight: 50 -description: "Customize processing pipelines by adding middleware components" ---- diff --git a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-bearer.md b/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-bearer.md deleted file mode 100644 index 476c7a17d..000000000 --- a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-bearer.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -type: docs -title: "Bearer" -linkTitle: "Bearer" -weight: 4000 -description: "Use bearer middleware to secure HTTP endpoints by verifying bearer tokens" -type: docs ---- - -The bearer [HTTP middleware]({{< ref middleware-concept.md >}}) verifies a [Bearer Token](https://tools.ietf.org/html/rfc6750) using [OpenID Connect](https://openid.net/connect/) on a Web API without modifying the application. This design separates authentication/authorization concerns from the application, so that application operators can adopt and configure authentication/authorization providers without impacting the application code. - -## Component format - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: bearer-token -spec: - type: middleware.http.bearer - version: v1 - metadata: - - name: clientId - value: "" - - name: issuerURL - value: "https://accounts.google.com" -``` -## Spec metadata fields - -| Field | Details | Example | -|----------------|---------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------| -| clientId | The client ID of your application that is created as part of a credential hosted by a OpenID Connect platform | | -| issuerURL | URL identifier for the service. | `"https://accounts.google.com"`, `"https://login.salesforce.com"` | - -## Dapr configuration - -To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware-concept.md#customize-processing-pipeline">}}). - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: appconfig -spec: - httpPipeline: - handlers: - - name: bearer-token - type: middleware.http.bearer -``` - -## Related links - -- [Middleware concept]({{< ref middleware-concept.md >}}) -- [Configuration concept]({{< ref configuration-concept.md >}}) -- [Configuration overview]({{< ref configuration-overview.md >}}) diff --git a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-oauth2.md b/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-oauth2.md deleted file mode 100644 index ca6f67186..000000000 --- a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-oauth2.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -type: docs -title: "OAuth2" -linkTitle: "OAuth2" -weight: 2000 -description: "Use OAuth2 middleware to secure HTTP endpoints" ---- - -The OAuth2 [HTTP middleware]({{< ref middleware-concept.md >}}) enables the [OAuth2 Authorization Code flow](https://tools.ietf.org/html/rfc6749#section-4.1) on a Web API without modifying the application. This design separates authentication/authorization concerns from the application, so that application operators can adopt and configure authentication/authorization providers without impacting the application code. - -## Component format - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: oauth2 -spec: - type: middleware.http.oauth2 - version: v1 - metadata: - - name: clientId - value: "" - - name: clientSecret - value: "" - - name: scopes - value: "https://www.googleapis.com/auth/userinfo.email" - - name: authURL - value: "https://accounts.google.com/o/oauth2/v2/auth" - - name: tokenURL - value: "https://accounts.google.com/o/oauth2/token" - - name: redirectURL - value: "http://dummy.com" - - name: authHeaderName - value: "authorization" - - name: forceHTTPS - value: "false" -``` -## Spec metadata fields -| Field | Details | Example | -|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------| -| clientId | The client ID of your application that is created as part of a credential hosted by a OAuth-enabled platform | | -| clientSecret | The client secret of your application that is created as part of a credential hosted by a OAuth-enabled platform | | -| scopes | A list of space-delimited, case-sensitive strings of [scopes](https://tools.ietf.org/html/rfc6749#section-3.3) which are typically used for authorization in the application | `"https://www.googleapis.com/auth/userinfo.email"` | -| authURL | The endpoint of the OAuth2 authorization server | `"https://accounts.google.com/o/oauth2/v2/auth"` | -| tokenURL | The endpoint is used by the client to obtain an access token by presenting its authorization grant or refresh token | `"https://accounts.google.com/o/oauth2/token"` | -| redirectURL | The URL of your web application that the authorization server should redirect to once the user has authenticated | `"https://myapp.com"` | -| authHeaderName | The authorization header name to forward to your application | `"authorization"` | -| forceHTTPS | If true, enforces the use of TLS/SSL | `"true"`,`"false"` | - -## Dapr configuration - -To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware-concept.md#customize-processing-pipeline">}}). - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: appconfig -spec: - httpPipeline: - handlers: - - name: oauth2 - type: middleware.http.oauth2 -``` - -## Related links -- [Configure API authorization with OAuth]({{< ref oauth >}}) -- [Middleware OAuth quickstart](https://github.com/dapr/quickstarts/tree/master/middleware) -- [Middleware concept]({{< ref middleware-concept.md >}}) -- [Configuration concept]({{< ref configuration-concept.md >}}) -- [Configuration overview]({{< ref configuration-overview.md >}}) diff --git a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-oauth2clientcredentials.md b/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-oauth2clientcredentials.md deleted file mode 100644 index 0f96cb28a..000000000 --- a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-oauth2clientcredentials.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -type: docs -title: "OAuth2 client credentials" -linkTitle: "OAuth2 client credentials" -weight: 3000 -description: "Use OAuth2 client credentials middleware to secure HTTP endpoints" ---- - -The OAuth2 client credentials [HTTP middleware]({{< ref middleware-concept.md >}}) enables the [OAuth2 Client Credentials flow](https://tools.ietf.org/html/rfc6749#section-4.4) on a Web API without modifying the application. This design separates authentication/authorization concerns from the application, so that application operators can adopt and configure authentication/authorization providers without impacting the application code. - -## Component format - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: oauth2clientcredentials -spec: - type: middleware.http.oauth2clientcredentials - version: v1 - metadata: - - name: clientId - value: "" - - name: clientSecret - value: "" - - name: scopes - value: "https://www.googleapis.com/auth/userinfo.email" - - name: tokenURL - value: "https://accounts.google.com/o/oauth2/token" - - name: headerName - value: "authorization" -``` -## Spec metadata fields - -| Field | Details | Example | -|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------| -| clientId | The client ID of your application that is created as part of a credential hosted by a OAuth-enabled platform | | -| clientSecret | The client secret of your application that is created as part of a credential hosted by a OAuth-enabled platform | | -| scopes | A list of space-delimited, case-sensitive strings of [scopes](https://tools.ietf.org/html/rfc6749#section-3.3) which are typically used for authorization in the application | `"https://www.googleapis.com/auth/userinfo.email"` | -| tokenURL | The endpoint is used by the client to obtain an access token by presenting its authorization grant or refresh token | `"https://accounts.google.com/o/oauth2/token"` | -| headerName | The authorization header name to forward to your application | `"authorization"` | -| endpointParamsQuery | Specifies additional parameters for requests to the token endpoint | `true` | -| authStyle | Optionally specifies how the endpoint wants the client ID & client secret sent. See the table of possible values below | `0` | - -### Possible values for `authStyle` - -| Value | Meaning | -|-------|---------| -| `1` | Sends the "client_id" and "client_secret" in the POST body as application/x-www-form-urlencoded parameters. | -| `2` | Sends the "client_id" and "client_secret" using HTTP Basic Authorization. This is an optional style described in the [OAuth2 RFC 6749 section 2.3.1](https://tools.ietf.org/html/rfc6749#section-2.3.1). | -| `0` | Means to auto-detect which authentication style the provider wants by trying both ways and caching the successful way for the future. | - -## Dapr configuration - -To be applied, the middleware must be referenced in a [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware-concept.md#customize-processing-pipeline">}}). - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: appconfig -spec: - httpPipeline: - handlers: - - name: oauth2clientcredentials - type: middleware.http.oauth2clientcredentials -``` - -## Related links -- [Middleware concept]({{< ref middleware-concept.md >}}) -- [Configuration concept]({{< ref configuration-concept.md >}}) -- [Configuration overview]({{< ref configuration-overview.md >}}) diff --git a/daprdocs/content/en/operations/configuration/api-allowlist.md b/daprdocs/content/en/operations/configuration/api-allowlist.md index e87a9b37a..8499e0222 100644 --- a/daprdocs/content/en/operations/configuration/api-allowlist.md +++ b/daprdocs/content/en/operations/configuration/api-allowlist.md @@ -8,7 +8,7 @@ description: "Choose which Dapr sidecar APIs are available to the app" In certain scenarios such as zero trust networks or when exposing the Dapr sidecar to external traffic through a frontend, it's recommended to only enable the Dapr sidecar APIs that are being used by the app. Doing so reduces the attack surface and helps keep the Dapr APIs scoped to the actual needs of the application. -Dapr allows developers to control which APIs are accessible to the application by setting an API allow list using a [Dapr Configuration](({{}})). +Dapr allows developers to control which APIs are accessible to the application by setting an API allow list using a [Dapr Configuration]({{}}). ### Default behavior diff --git a/daprdocs/content/en/operations/configuration/configuration-overview.md b/daprdocs/content/en/operations/configuration/configuration-overview.md index 055ebdc8f..e027eda25 100644 --- a/daprdocs/content/en/operations/configuration/configuration-overview.md +++ b/daprdocs/content/en/operations/configuration/configuration-overview.md @@ -115,7 +115,7 @@ The following table lists the properties for HTTP handlers: | name | string | Name of the middleware component | type | string | Type of middleware component -See [Middleware pipelines]({{< ref "middleware-concept.md" >}}) for more information +See [Middleware pipelines]({{< ref "middleware.md" >}}) for more information #### Scope secret store access See the [Scoping secrets]({{< ref "secret-scope.md" >}}) guide for information and examples on how to scope secrets to an application. diff --git a/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-overview.md b/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-overview.md index 533007f4b..9077cc9ee 100644 --- a/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-overview.md +++ b/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-overview.md @@ -25,3 +25,8 @@ The `dapr-placement` service is responsible for managing the actor distribution You can use the [`dapr run` CLI command]({{< ref dapr-run.md >}}) to a Dapr sidecar process along with your application. +## Name resolution + +Dapr uses a [name resolution component]({{< ref supported-name-resolution >}}) for service discovery within the [service invocation]({{< ref service-invocation >}}) building block. By default Dapr uses mDNS when in self-hosted mode. + +If you are running Dapr on virtual machines or where mDNS is not available, then you can use the [HashiCorp Consul]({{< ref setup-nr-consul.md >}}) component for name resolution. diff --git a/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-with-docker.md b/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-with-docker.md index 9abe5a265..b69b48ac0 100644 --- a/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-with-docker.md +++ b/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-with-docker.md @@ -149,6 +149,10 @@ To further learn how to run Dapr with Docker Compose, see the [Docker-Compose Sa If your deployment target is Kubernetes please use Dapr's first-class integration. Refer to the [Dapr on Kubernetes docs]({{< ref "kubernetes-overview.md" >}}). +## Name resolution + +Dapr by default uses mDNS as the name resolution component in self-hosted mode for service invocation. If you are running Dapr on virtual machines or where mDNS is not available, then you can use the [HashiCorp Consul]({{< ref setup-nr-consul.md >}}) component for name resolution. + ## Docker images Dapr provides a number of prebuilt Docker images for different components, you should select the relevant image for your desired binary, architecture, and tag/version. diff --git a/daprdocs/content/en/operations/security/oauth.md b/daprdocs/content/en/operations/security/oauth.md index 4f8be5fcd..637fa1eac 100644 --- a/daprdocs/content/en/operations/security/oauth.md +++ b/daprdocs/content/en/operations/security/oauth.md @@ -6,7 +6,7 @@ weight: 2000 description: "Enable OAUTH authorization on Dapr endpoints for your web APIs" --- -Dapr OAuth 2.0 [middleware]({{< ref "middleware-concept.md" >}}) allows you to enable [OAuth](https://oauth.net/2/) authorization on Dapr endpoints for your web APIs using the [Authorization Code Grant flow](https://tools.ietf.org/html/rfc6749#section-4.1). +Dapr OAuth 2.0 [middleware]({{< ref "middleware.md" >}}) allows you to enable [OAuth](https://oauth.net/2/) authorization on Dapr endpoints for your web APIs using the [Authorization Code Grant flow](https://tools.ietf.org/html/rfc6749#section-4.1). You can also inject authorization tokens into your APIs which can be used for authorization towards external APIs called by your APIs using the [Client Credentials Grant flow](https://tools.ietf.org/html/rfc6749#section-4.4). When the middleware is enabled any method invocation through Dapr needs to be authorized before getting passed to the user code. @@ -81,7 +81,7 @@ spec: ### Define a custom pipeline for an Authorization Code Grant -To use the OAuth middleware (Authorization Code), you should create a [custom pipeline]({{< ref "middleware-concept.md" >}}) +To use the OAuth middleware (Authorization Code), you should create a [custom pipeline]({{< ref "middleware.md" >}}) using [Dapr configuration]({{< ref "configuration-overview" >}}), as shown in the following sample: ```yaml @@ -139,7 +139,7 @@ spec: ### Define a custom pipeline for a Client Credentials Grant -To use the OAuth middleware (Client Credentials), you should create a [custom pipeline]({{< ref "middleware-concept.md" >}}) +To use the OAuth middleware (Client Credentials), you should create a [custom pipeline]({{< ref "middleware.md" >}}) using [Dapr configuration]({{< ref "configuration-overview.md" >}}), as shown in the following sample: ```yaml diff --git a/daprdocs/content/en/reference/api/actors_api.md b/daprdocs/content/en/reference/api/actors_api.md index 522f65b3b..03b8080d2 100644 --- a/daprdocs/content/en/reference/api/actors_api.md +++ b/daprdocs/content/en/reference/api/actors_api.md @@ -311,8 +311,8 @@ name | The name of the reminder to delete. #### Examples ```shell -curl http://localhost:3500/v1.0/actors/stormtrooper/50/reminders/checkRebels \ - -X "Content-Type: application/json" +curl -X DELETE http://localhost:3500/v1.0/actors/stormtrooper/50/reminders/checkRebels \ + -H "Content-Type: application/json" ``` ### Create actor timer @@ -404,8 +404,8 @@ name | The name of the timer to delete. > Note, all URL parameters are case-sensitive. ```shell -curl http://localhost:3500/v1.0/actors/stormtrooper/50/timers/checkRebels \ - -X "Content-Type: application/json" +curl -X DELETE http://localhost:3500/v1.0/actors/stormtrooper/50/timers/checkRebels \ + -H "Content-Type: application/json" ``` ## Dapr calling to user service code diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/cron.md b/daprdocs/content/en/reference/components-reference/supported-bindings/cron.md index 34a069192..70d6d9599 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/cron.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/cron.md @@ -50,7 +50,7 @@ For example: * `30 * * * * *` - every 30 seconds * `0 15 * * * *` - every 15 minutes * `0 30 3-6,20-23 * * *` - every hour on the half hour in the range 3-6am, 8-11pm -* `CRON_TZ=America/New_York 0 0 30 04 * * *` - every day at 4:30am New York time +* `CRON_TZ=America/New_York 0 30 04 * * *` - every day at 4:30am New York time > You can learn more about cron and the supported formats [here](https://en.wikipedia.org/wiki/Cron) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/gcppubsub.md b/daprdocs/content/en/reference/components-reference/supported-bindings/gcppubsub.md index af1e78d0a..c7e49edf7 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/gcppubsub.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/gcppubsub.md @@ -56,17 +56,17 @@ The above example uses secrets as plain strings. It is recommended to use a secr | Field | Required | Binding support | Details | Example | |--------------------|:--------:|-----------| -----|---------| | topic | Y | Output | GCP Pub/Sub topic name | `"topic1"` | -| subscription | Y | GCP Pub/Sub subscription name | `"name1"` | +| subscription | N | GCP Pub/Sub subscription name | `"name1"` | | type | Y | Output | GCP credentials type | `service_account` | project_id | Y | Output | GCP project id| `projectId` -| private_key_id | Y | Output | GCP private key id | `"privateKeyId"` +| private_key_id | N | Output | GCP private key id | `"privateKeyId"` | private_key | Y | Output | GCP credentials private key. Replace with x509 cert | `12345-12345` | client_email | Y | Output | GCP client email | `"client@email.com"` -| client_id | Y | Output | GCP client id | `0123456789-0123456789` -| auth_uri | Y | Output | Google account OAuth endpoint | `https://accounts.google.com/o/oauth2/auth` -| token_uri | Y | Output | Google account token uri | `https://oauth2.googleapis.com/token` -| auth_provider_x509_cert_url | Y | Output |GCP credentials cert url | `https://www.googleapis.com/oauth2/v1/certs` -| client_x509_cert_url | Y | Output | GCP credentials project x509 cert url | `https://www.googleapis.com/robot/v1/metadata/x509/.iam.gserviceaccount.com` +| client_id | N | Output | GCP client id | `0123456789-0123456789` +| auth_uri | N | Output | Google account OAuth endpoint | `https://accounts.google.com/o/oauth2/auth` +| token_uri | N | Output | Google account token uri | `https://oauth2.googleapis.com/token` +| auth_provider_x509_cert_url | N | Output |GCP credentials cert url | `https://www.googleapis.com/oauth2/v1/certs` +| client_x509_cert_url | N | Output | GCP credentials project x509 cert url | `https://www.googleapis.com/robot/v1/metadata/x509/.iam.gserviceaccount.com` ## Binding support diff --git a/daprdocs/content/en/developing-applications/middleware/supported-middleware/_index.md b/daprdocs/content/en/reference/components-reference/supported-middleware/_index.md similarity index 92% rename from daprdocs/content/en/developing-applications/middleware/supported-middleware/_index.md rename to daprdocs/content/en/reference/components-reference/supported-middleware/_index.md index dc343472d..039ec971e 100644 --- a/daprdocs/content/en/developing-applications/middleware/supported-middleware/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-middleware/_index.md @@ -1,10 +1,12 @@ --- type: docs -title: "Supported middleware" -linkTitle: "Supported middleware" -weight: 30000 +title: "Middleware component specs" +linkTitle: "Middleware" +weight: 6000 description: List of all the supported middleware components that can be injected in Dapr's processing pipeline. no_list: true +aliases: +- /developing-applications/middleware/supported-middleware/ --- ### HTTP diff --git a/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-bearer.md b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-bearer.md new file mode 100644 index 000000000..bf637194e --- /dev/null +++ b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-bearer.md @@ -0,0 +1,56 @@ +--- +type: docs +title: "Bearer" +linkTitle: "Bearer" +description: "Use bearer middleware to secure HTTP endpoints by verifying bearer tokens" +type: docs +aliases: +- /developing-applications/middleware/supported-middleware/middleware-bearer/ +--- + +The bearer [HTTP middleware]({{< ref middleware.md >}}) verifies a [Bearer Token](https://tools.ietf.org/html/rfc6750) using [OpenID Connect](https://openid.net/connect/) on a Web API without modifying the application. This design separates authentication/authorization concerns from the application, so that application operators can adopt and configure authentication/authorization providers without impacting the application code. + +## Component format + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: bearer-token +spec: + type: middleware.http.bearer + version: v1 + metadata: + - name: clientId + value: "" + - name: issuerURL + value: "https://accounts.google.com" +``` +## Spec metadata fields + +| Field | Details | Example | +|-------|---------|---------| +| clientId | The client ID of your application that is created as part of a credential hosted by a OpenID Connect platform +| issuerURL | URL identifier for the service. | `"https://accounts.google.com"`, `"https://login.salesforce.com"` + +## Dapr configuration + +To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware.md">}}). + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Configuration +metadata: + name: appconfig +spec: + httpPipeline: + handlers: + - name: bearer-token + type: middleware.http.bearer +``` + +## Related links + +- [Middleware]({{< ref middleware.md >}}) +- [Configuration concept]({{< ref configuration-concept.md >}}) +- [Configuration overview]({{< ref configuration-overview.md >}}) diff --git a/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-oauth2.md b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-oauth2.md new file mode 100644 index 000000000..7097835a1 --- /dev/null +++ b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-oauth2.md @@ -0,0 +1,80 @@ +--- +type: docs +title: "OAuth2" +linkTitle: "OAuth2" +description: "Use OAuth2 middleware to secure HTTP endpoints" +aliases: +- /developing-applications/middleware/supported-middleware/middleware-oauth2/ +--- + +The OAuth2 [HTTP middleware]({{< ref middleware.md >}}) enables the [OAuth2 Authorization Code flow](https://tools.ietf.org/html/rfc6749#section-4.1) on a Web API without modifying the application. This design separates authentication/authorization concerns from the application, so that application operators can adopt and configure authentication/authorization providers without impacting the application code. + +## Component format + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: oauth2 +spec: + type: middleware.http.oauth2 + version: v1 + metadata: + - name: clientId + value: "" + - name: clientSecret + value: "" + - name: scopes + value: "https://www.googleapis.com/auth/userinfo.email" + - name: authURL + value: "https://accounts.google.com/o/oauth2/v2/auth" + - name: tokenURL + value: "https://accounts.google.com/o/oauth2/token" + - name: redirectURL + value: "http://dummy.com" + - name: authHeaderName + value: "authorization" + - name: forceHTTPS + value: "false" +``` + +{{% alert title="Warning" color="warning" %}} +The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here]({{< ref component-secrets.md >}}). +{{% /alert %}} + +## Spec metadata fields + +| Field | Details | Example | +|-------|---------|---------| +| clientId | The client ID of your application that is created as part of a credential hosted by a OAuth-enabled platform +| clientSecret | The client secret of your application that is created as part of a credential hosted by a OAuth-enabled platform +| scopes | A list of space-delimited, case-sensitive strings of [scopes](https://tools.ietf.org/html/rfc6749#section-3.3) which are typically used for authorization in the application | `"https://www.googleapis.com/auth/userinfo.email"` +| authURL | The endpoint of the OAuth2 authorization server | `"https://accounts.google.com/o/oauth2/v2/auth"` +| tokenURL | The endpoint is used by the client to obtain an access token by presenting its authorization grant or refresh token | `"https://accounts.google.com/o/oauth2/token"` +| redirectURL | The URL of your web application that the authorization server should redirect to once the user has authenticated | `"https://myapp.com"` +| authHeaderName | The authorization header name to forward to your application | `"authorization"` +| forceHTTPS | If true, enforces the use of TLS/SSL | `"true"`,`"false"` | + +## Dapr configuration + +To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware.md#customize-processing-pipeline">}}). + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Configuration +metadata: + name: appconfig +spec: + httpPipeline: + handlers: + - name: oauth2 + type: middleware.http.oauth2 +``` + +## Related links + +- [Configure API authorization with OAuth]({{< ref oauth >}}) +- [Middleware OAuth quickstart](https://github.com/dapr/quickstarts/tree/master/middleware) +- [Middleware]({{< ref middleware.md >}}) +- [Configuration concept]({{< ref configuration-concept.md >}}) +- [Configuration overview]({{< ref configuration-overview.md >}}) diff --git a/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-oauth2clientcredentials.md b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-oauth2clientcredentials.md new file mode 100644 index 000000000..ceba912ef --- /dev/null +++ b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-oauth2clientcredentials.md @@ -0,0 +1,78 @@ +--- +type: docs +title: "OAuth2 client credentials" +linkTitle: "OAuth2 client credentials" +description: "Use OAuth2 client credentials middleware to secure HTTP endpoints" +aliases: +- /developing-applications/middleware/supported-middleware/middleware-oauth2clientcredentials/ +--- + +The OAuth2 client credentials [HTTP middleware]({{< ref middleware.md >}}) enables the [OAuth2 Client Credentials flow](https://tools.ietf.org/html/rfc6749#section-4.4) on a Web API without modifying the application. This design separates authentication/authorization concerns from the application, so that application operators can adopt and configure authentication/authorization providers without impacting the application code. + +## Component format + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: oauth2clientcredentials +spec: + type: middleware.http.oauth2clientcredentials + version: v1 + metadata: + - name: clientId + value: "" + - name: clientSecret + value: "" + - name: scopes + value: "https://www.googleapis.com/auth/userinfo.email" + - name: tokenURL + value: "https://accounts.google.com/o/oauth2/token" + - name: headerName + value: "authorization" +``` + +{{% alert title="Warning" color="warning" %}} +The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here]({{< ref component-secrets.md >}}). +{{% /alert %}} + +## Spec metadata fields + +| Field | Details | Example | +|------------|---------|---------| +| clientId | The client ID of your application that is created as part of a credential hosted by a OAuth-enabled platform +| clientSecret | The client secret of your application that is created as part of a credential hosted by a OAuth-enabled platform +| scopes | A list of space-delimited, case-sensitive strings of [scopes](https://tools.ietf.org/html/rfc6749#section-3.3) which are typically used for authorization in the application | `"https://www.googleapis.com/auth/userinfo.email"` +| tokenURL | The endpoint is used by the client to obtain an access token by presenting its authorization grant or refresh token | `"https://accounts.google.com/o/oauth2/token"` +| headerName | The authorization header name to forward to your application | `"authorization"` +| endpointParamsQuery | Specifies additional parameters for requests to the token endpoint | `true` +| authStyle | Optionally specifies how the endpoint wants the client ID & client secret sent. See the table of possible values below | `0` + +### Possible values for `authStyle` + +| Value | Meaning | +|-------|---------| +| `1` | Sends the "client_id" and "client_secret" in the POST body as application/x-www-form-urlencoded parameters. | +| `2` | Sends the "client_id" and "client_secret" using HTTP Basic Authorization. This is an optional style described in the [OAuth2 RFC 6749 section 2.3.1](https://tools.ietf.org/html/rfc6749#section-2.3.1). | +| `0` | Means to auto-detect which authentication style the provider wants by trying both ways and caching the successful way for the future. | + +## Dapr configuration + +To be applied, the middleware must be referenced in a [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware.md#customize-processing-pipeline">}}). + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Configuration +metadata: + name: appconfig +spec: + httpPipeline: + handlers: + - name: oauth2clientcredentials + type: middleware.http.oauth2clientcredentials +``` + +## Related links +- [Middleware]({{< ref middleware.md >}}) +- [Configuration concept]({{< ref configuration-concept.md >}}) +- [Configuration overview]({{< ref configuration-overview.md >}}) diff --git a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-opa.md b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-opa.md similarity index 80% rename from daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-opa.md rename to daprdocs/content/en/reference/components-reference/supported-middleware/middleware-opa.md index 36870c59a..1c10e6026 100644 --- a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-opa.md +++ b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-opa.md @@ -2,11 +2,12 @@ type: docs title: "Apply Open Policy Agent (OPA) policies" linkTitle: "Open Policy Agent (OPA)" -weight: 6000 description: "Use middleware to apply Open Policy Agent (OPA) policies on incoming requests" +aliases: +- /developing-applications/middleware/supported-middleware/middleware-opa/ --- -The Open Policy Agent (OPA) [HTTP middleware]({{< ref middleware-concept.md >}}) applys [OPA Policies](https://www.openpolicyagent.org/) to incoming Dapr HTTP requests. This can be used to apply reusable authorization policies to app endpoints. +The Open Policy Agent (OPA) [HTTP middleware]({{< ref middleware.md >}}) applys [OPA Policies](https://www.openpolicyagent.org/) to incoming Dapr HTTP requests. This can be used to apply reusable authorization policies to app endpoints. ## Component format @@ -70,15 +71,15 @@ You can prototype and experiment with policies using the [official opa playgroun ## Spec metadata fields -| Field | Details | Example | -|-----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------| -| rego | The Rego policy language | See above | -| defaultStatus | The status code to return for denied responses | `"https://accounts.google.com"`, `"https://login.salesforce.com"` | -| includedHeaders | A comma-separated set of case-insensitive headers to include in the request input. Request headers are not passed to the policy by default. Include to receive incoming request headers in the input | `"x-my-custom-header, x-jwt-header"` | +| Field | Details | Example | +|--------|---------|---------| +| rego | The Rego policy language | See above | +| defaultStatus | The status code to return for denied responses | `"https://accounts.google.com"`, `"https://login.salesforce.com"` +| includedHeaders | A comma-separated set of case-insensitive headers to include in the request input. Request headers are not passed to the policy by default. Include to receive incoming request headers in the input | `"x-my-custom-header, x-jwt-header"` ## Dapr configuration -To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware-concept.md#customize-processing-pipeline">}}). +To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware.md#customize-processing-pipeline">}}). ```yaml apiVersion: dapr.io/v1alpha1 @@ -208,6 +209,6 @@ type Result struct { - [Open Policy Agent](https://www.openpolicyagent.org) - [HTTP API example](https://www.openpolicyagent.org/docs/latest/http-api-authorization/) -- [Middleware concept]({{< ref middleware-concept.md >}}) +- [Middleware]({{< ref middleware.md >}}) - [Configuration concept]({{< ref configuration-concept.md >}}) - [Configuration overview]({{< ref configuration-overview.md >}}) diff --git a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-rate-limit.md b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-rate-limit.md similarity index 61% rename from daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-rate-limit.md rename to daprdocs/content/en/reference/components-reference/supported-middleware/middleware-rate-limit.md index a2796b74e..d15487152 100644 --- a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-rate-limit.md +++ b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-rate-limit.md @@ -2,11 +2,12 @@ type: docs title: "Rate limiting" linkTitle: "Rate limiting" -weight: 1000 description: "Use rate limit middleware to limit requests per second" +aliases: +- /developing-applications/middleware/supported-middleware/middleware-rate-limit/ --- -The rate limit [HTTP middleware]({{< ref middleware-concept.md >}}) allows restricting the maximum number of allowed HTTP requests per second. Rate limiting can protect your application from denial of service (DOS) attacks. DOS attacks can be initiated by malicious 3rd parties but also by bugs in your software (a.k.a. a "friendly fire" DOS attack). +The rate limit [HTTP middleware]({{< ref middleware.md >}}) allows restricting the maximum number of allowed HTTP requests per second. Rate limiting can protect your application from denial of service (DOS) attacks. DOS attacks can be initiated by malicious 3rd parties but also by bugs in your software (a.k.a. a "friendly fire" DOS attack). ## Component format @@ -26,9 +27,9 @@ spec: ## Spec metadata fields -| Field | Details | Example | -|----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| -| maxRequestsPerSecond | The maximum requests per second by remote IP and path. Something to consider is that **the limit is enforced independently in each Dapr sidecar and not cluster wide** | `10` | +| Field | Details | Example | +|-------|---------|---------| +| maxRequestsPerSecond | The maximum requests per second by remote IP and path. Something to consider is that **the limit is enforced independently in each Dapr sidecar and not cluster wide** | `10` Once the limit is reached, the request will return *HTTP Status code 429: Too Many Requests*. @@ -36,7 +37,7 @@ Alternatively, the [max concurrency setting]({{< ref control-concurrency.md >}}) ## Dapr configuration -To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware-concept.md#customize-processing-pipeline">}}). +To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware.md#customize-processing-pipeline">}}). ```yaml apiVersion: dapr.io/v1alpha1 @@ -53,6 +54,6 @@ spec: ## Related links - [Control max concurrently]({{< ref control-concurrency.md >}}) -- [Middleware concept]({{< ref middleware-concept.md >}}) +- [Middleware]({{< ref middleware.md >}}) - [Dapr configuration]({{< ref configuration-concept.md >}}) - [Configuration overview]({{< ref configuration-overview.md >}}) diff --git a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-sentinel.md b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-sentinel.md similarity index 70% rename from daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-sentinel.md rename to daprdocs/content/en/reference/components-reference/supported-middleware/middleware-sentinel.md index 72dcac73e..e93fd9c73 100644 --- a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-sentinel.md +++ b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-sentinel.md @@ -2,13 +2,14 @@ type: docs title: "Sentinel fault-tolerance middleware component" linkTitle: "Sentinel" -weight: 7000 description: "Use Sentinel middleware to guarantee the reliability and resiliency of your application" +aliases: +- /developing-applications/middleware/supported-middleware/middleware-sentinel/ --- [Sentinel](https://github.com/alibaba/sentinel-golang) is a powerful fault-tolerance component that takes "flow" as the breakthrough point and covers multiple fields including flow control, traffic shaping, concurrency limiting, circuit breaking, and adaptive system protection to guarantee the reliability and resiliency of microservices. -The Sentinel [HTTP middleware]({{< ref middleware-concept.md >}}) enables Dapr to facilitate Sentinel's powerful abilities to protect your application. You can refer to [Sentinel Wiki](https://github.com/alibaba/sentinel-golang/wiki) for more details on Sentinel. +The Sentinel [HTTP middleware]({{< ref middleware.md >}}) enables Dapr to facilitate Sentinel's powerful abilities to protect your application. You can refer to [Sentinel Wiki](https://github.com/alibaba/sentinel-golang/wiki) for more details on Sentinel. ## Component format @@ -41,15 +42,15 @@ spec: ## Spec metadata fields -| Field | Details | Example | -|----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| -| appName | the name of current running service | `nodeapp` | -| logDir | the log directory path | `/var/tmp/sentinel` | -| flowRules | json array of sentinel flow control rules | [flow control rule](https://github.com/alibaba/sentinel-golang/blob/master/core/flow/rule.go) | -| circuitBreakerRules | json array of sentinel circuit breaker rules | [circuit breaker rule](https://github.com/alibaba/sentinel-golang/blob/master/core/circuitbreaker/rule.go) | -| hotSpotParamRules | json array of sentinel hotspot parameter flow control rules | [hotspot rule](https://github.com/alibaba/sentinel-golang/blob/master/core/hotspot/rule.go) | -| isolationRules | json array of sentinel isolation rules | [isolation rule](https://github.com/alibaba/sentinel-golang/blob/master/core/isolation/rule.go) | -| systemRules | json array of sentinel system rules | [system rule](https://github.com/alibaba/sentinel-golang/blob/master/core/system/rule.go) | +| Field | Details | Example | +|-------|---------|---------| +| appName | the name of current running service | `nodeapp` +| logDir | the log directory path | `/var/tmp/sentinel` +| flowRules | json array of sentinel flow control rules | [flow control rule](https://github.com/alibaba/sentinel-golang/blob/master/core/flow/rule.go) +| circuitBreakerRules | json array of sentinel circuit breaker rules | [circuit breaker rule](https://github.com/alibaba/sentinel-golang/blob/master/core/circuitbreaker/rule.go) +| hotSpotParamRules | json array of sentinel hotspot parameter flow control rules | [hotspot rule](https://github.com/alibaba/sentinel-golang/blob/master/core/hotspot/rule.go) +| isolationRules | json array of sentinel isolation rules | [isolation rule](https://github.com/alibaba/sentinel-golang/blob/master/core/isolation/rule.go) +| systemRules | json array of sentinel system rules | [system rule](https://github.com/alibaba/sentinel-golang/blob/master/core/system/rule.go) Once the limit is reached, the request will return *HTTP Status code 429: Too Many Requests*. @@ -63,7 +64,7 @@ All concrete HTTP API information can be found from [Dapr API Reference]{{< ref ## Dapr configuration -To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware-concept.md#customize-processing-pipeline">}}). +To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware.md#customize-processing-pipeline">}}). ```yaml apiVersion: dapr.io/v1alpha1 @@ -80,6 +81,6 @@ spec: ## Related links - [Sentinel Github](https://github.com/alibaba/sentinel-golang) -- [Middleware concept]({{< ref middleware-concept.md >}}) +- [Middleware]({{< ref middleware.md >}}) - [Dapr configuration]({{< ref configuration-concept.md >}}) - [Configuration overview]({{< ref configuration-overview.md >}}) diff --git a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-uppercase.md b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-uppercase.md similarity index 69% rename from daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-uppercase.md rename to daprdocs/content/en/reference/components-reference/supported-middleware/middleware-uppercase.md index b0fac0eaf..a2b38433e 100644 --- a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-uppercase.md +++ b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-uppercase.md @@ -2,11 +2,12 @@ type: docs title: "Uppercase request body" linkTitle: "Uppercase" -weight: 9999 description: "Test your HTTP pipeline is functioning with the uppercase middleware" +aliases: +- /developing-applications/middleware/supported-middleware/middleware-uppercase/ --- -The uppercase [HTTP middleware]({{< ref middleware-concept.md >}}) converts the body of the request to uppercase letters and is used for testing that the pipeline is functioning. It should only be used for local development. +The uppercase [HTTP middleware]({{< ref middleware.md >}}) converts the body of the request to uppercase letters and is used for testing that the pipeline is functioning. It should only be used for local development. ## Component format @@ -26,7 +27,7 @@ This component has no `metadata` to configure. ## Dapr configuration -To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware-concept.md#customize-processing-pipeline">}}). +To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware.md#customize-processing-pipeline">}}). ```yaml apiVersion: dapr.io/v1alpha1 @@ -42,6 +43,6 @@ spec: ## Related links -- [Middleware concept]({{< ref middleware-concept.md >}}) +- [Middleware]({{< ref middleware.md >}}) - [Configuration concept]({{< ref configuration-concept.md >}}) - [Configuration overview]({{< ref configuration-overview.md >}}) diff --git a/daprdocs/content/en/reference/components-reference/supported-name-resolution/_index.md b/daprdocs/content/en/reference/components-reference/supported-name-resolution/_index.md index bfa170ed5..c0c66b074 100644 --- a/daprdocs/content/en/reference/components-reference/supported-name-resolution/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-name-resolution/_index.md @@ -1,6 +1,6 @@ --- type: docs -title: "Name resolution component specs" +title: "Name resolution provider component specs" linkTitle: "Name resolution" weight: 5000 description: The supported name resolution providers that interface with Dapr service invocation @@ -21,14 +21,13 @@ The following components provide name resolution for the service invocation buil | Name | Status | Component version | Since | |------|:------:|:-----------------:|:-----:| -| mDNS | GA | v1 | 1.0 | +| [mDNS]({{< ref nr-mdns.md >}}) | GA | v1 | 1.0 | ### Kubernetes | Name | Status | Component version | Since | |------------|:------:|:-----------------:|:-----:| -| Kubernetes | GA | v1 | 1.0 | - +| [Kubernetes]({{< ref nr-kubernetes.md >}}) | GA | v1 | 1.0 | ## Definitions diff --git a/daprdocs/content/en/reference/components-reference/supported-name-resolution/nr-kubernetes.md b/daprdocs/content/en/reference/components-reference/supported-name-resolution/nr-kubernetes.md new file mode 100644 index 000000000..15f22643f --- /dev/null +++ b/daprdocs/content/en/reference/components-reference/supported-name-resolution/nr-kubernetes.md @@ -0,0 +1,23 @@ +--- +type: docs +title: "Kubernetes DNS name resolution provider spec" +linkTitle: "Kubernetes DNS" +description: Detailed information on the Kubernetes DNS name resolution component +--- + +## Configuration format + +Kubernetes DNS name resolution is configured automatically in [Kubernetes mode]({{< ref kubernetes >}}) by Dapr. There is no configuration needed to use Kubernetes DNS as your name resolution provider. + +## Behaviour + +The component resolves target apps by using the Kubernetes cluster's DNS provider. You can learn more in the [Kubernetes docs](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/). + +## Spec configuration fields + +Not applicable, as Kubernetes DNS is configured by Dapr when running in Kubernetes mode. + +## Related links + +- [Service invocation building block]({{< ref service-invocation >}}) +- [Kubernetes DNS docs](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/) \ No newline at end of file diff --git a/daprdocs/content/en/reference/components-reference/supported-name-resolution/nr-mdns.md b/daprdocs/content/en/reference/components-reference/supported-name-resolution/nr-mdns.md new file mode 100644 index 000000000..2c9d0ea64 --- /dev/null +++ b/daprdocs/content/en/reference/components-reference/supported-name-resolution/nr-mdns.md @@ -0,0 +1,29 @@ +--- +type: docs +title: "mDNS name resolution provider spec" +linkTitle: "mDNS" +description: Detailed information on the mDNS name resolution component +--- + +## Configuration format + +Multicast DNS (mDNS) is configured automatically in [self-hosted mode]({{< ref self-hosted >}}) by Dapr. There is no configuration needed to use mDNS as your name resolution provider. + +## Behaviour + +The component resolves target apps by using the host system's mDNS service. You can learn more about mDNS [here](https://en.wikipedia.org/wiki/Multicast_DNS). + +### Troubleshooting + +In some cloud provider virtual networks, such as Microsoft Azure, mDNS is not available. Use an alternate provider such as [HashiCorp Consul]({{< ref setup-nr-consul.md >}}) instead. + +On some enterprise-managed systems, mDNS may be disabled on macOS if a network filter/proxy is configured. Check with your IT department if mDNS is disabled and you are unable to use service invocation locally. + +## Spec configuration fields + +Not applicable, as mDNS is configured by Dapr when running in self-hosted mode. + +## Related links + +- [Service invocation building block]({{< ref service-invocation >}}) +- [mDNS reference](https://en.wikipedia.org/wiki/Multicast_DNS) \ No newline at end of file diff --git a/daprdocs/content/en/reference/components-reference/supported-name-resolution/setup-nr-consul.md b/daprdocs/content/en/reference/components-reference/supported-name-resolution/setup-nr-consul.md index ab5b44a84..1959ab713 100644 --- a/daprdocs/content/en/reference/components-reference/supported-name-resolution/setup-nr-consul.md +++ b/daprdocs/content/en/reference/components-reference/supported-name-resolution/setup-nr-consul.md @@ -1,9 +1,9 @@ --- type: docs -title: "HashiCorp Consul" +title: "HashiCorp Consul name resolution provider spec" linkTitle: "HashiCorp Consul" description: Detailed information on the HashiCorp Consul name resolution component ---- +--- ## Configuration format @@ -29,14 +29,14 @@ If Consul service registration is managed externally from Dapr you need to ensur ## Behaviour -On init the Consul component will either validate the connection to the configured (or default) agent or register the service if configured to do so. The name resolution interface does not cater for an "on shutdown" pattern so please consider this if using Dapr to register services to Consul as it will not deregister services. +On `init` the Consul component either validates the connection to the configured (or default) agent or registers the service if configured to do so. The name resolution interface does not cater for an "on shutdown" pattern so consider this when using Dapr to register services to Consul as it does not deregister services. The component resolves target apps by filtering healthy services and looks for a `DAPR_PORT` in the metadata (key is configurable) in order to retrieve the Dapr sidecar port. Consul `service.meta` is used over `service.port` so as to not interfere with existing Consul estates. ## Spec configuration fields -As of writing the configuration spec is fixed to v1.3.0 of the Consul api +The configuration spec is fixed to v1.3.0 of the Consul API | Field | Required | Type | Details | Examples | |--------------|:--------:|-----:|:---------|----------| @@ -105,7 +105,7 @@ spec: ### Advanced registration -Configuring the advanced registration gives you full control over all the properties possible when registering. +Configuring the advanced registration gives you full control over setting all the Consul properties possible when registering. ```yaml apiVersion: dapr.io/v1alpha1 @@ -142,11 +142,11 @@ spec: {{< tabs "Self-Hosted" "Kubernetes" >}} {{% codetab %}} -HashiCorp offer in depth guides on how to setup Consul for different hosting models. Please check out the [self-hosted guide here](https://learn.hashicorp.com/collections/consul/getting-started) +HashiCorp offer in depth guides on how to setup Consul for different hosting models. Check out the [self-hosted guide here](https://learn.hashicorp.com/collections/consul/getting-started) {{% /codetab %}} {{% codetab %}} -HashiCorp offer in depth guides on how to setup Consul for different hosting models. Please check out the [Kubernetes guide here](https://learn.hashicorp.com/collections/consul/gs-consul-service-mesh) +HashiCorp offer in depth guides on how to setup Consul for different hosting models. Check out the [Kubernetes guide here](https://learn.hashicorp.com/collections/consul/gs-consul-service-mesh) {{% /codetab %}} {{< /tabs >}} diff --git a/daprdocs/static/images/middleware.png b/daprdocs/static/images/middleware.png index 92c3380754f083c12a42cbc3970480b457d4af60..1642493ad21783dc15d3a0582089aaab4b1fdff8 100644 GIT binary patch literal 44866 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
-@1bMO3FZnN{ddV4H-5ykcy6+@&gF~Mt+`h?a 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�?xM%2vm6T9MHJ~e-6N0PQ(d&YEYk=pEy0#r|mY}T5y%F zQsNrKAeDwxpaI8tW7uzDgCgA(mpSZ-Ne{^_6%% zOvK}!lJn;aeosDkLpfT9*%|-g2P)kY``a|E>z$UR(YxoAa4W-Gb50ck)LOhd)C%xs)u2VF06bIee(e$9#x$z9c`o zBssB@cs<`jwMZ8UJM%eFf)sjXy0DN~B+X;-&MlXTs3PJB%1~Jd)EN{}vASm_@Ak%E zIJc>5;Jaga+x+xTzg@GNe-lY8(z0b)5=feUD*O!m1+bC=rZ!#F`>^dw3>r3diFy*L zeSo{1iFu~KkLNIjRGf^{Gfi4v9i^NST18xR6y6Lq>6bwSy8GYZBCzoM{B7KR}E8XQLu$bTex ze8yv1v#6fIR(Dlyw`6^=GBo~#wqtA&hZr$IgTuQQ{_t%?!x|4U=*0>kS)C$af^Bw31uB2o>6+ky1KOJ+ZGB- z^M;+CPUZ30F@#__w>#MBC)G;bE-LO=mhEi&;0B=aZ-n7eyOc^+3&C5*mxqQ+-(=O)h`*Bfjf|& zx$dGvI{Dr@AR8woNV8XX_ia(`1NRZM^7UePZv1<(c5D`B=iv{?sR0e|1-m*cWZ2eF zo;r_5kmfWjtagKTz8p2CHr!y{le6Naeq}hWC7cYkM{ zv-er+{E?MB$;#X_^UO0d_wTwUR#RO81C)l`7Z1Y z&O=*48qhFFegL}w+JM!-06=3h+7kp3c8%hyXy^d|VD|re!411qzXt#y`AV{2T_4kv zZ)h15Z*yc+PdD9oB(MtnLN&(=&1JhiUq&cNdQIwb>K6K9he$;=y^_`UHIxLVVEbls+ zyMJ9U>?;1|u-LHj_I0nu1op$J+uivV5={j5a!J)ATLd;O0y8rjjck;r=Bc`K=Ru{z z=Wh#E5!lk;4*!n7lcKlB%R9W%pwbfd2<+UlKjD{Y3@UzC`xoEN0?#V4P4jpxksOJQ zuWHSn?N8S_nBf*p{W`M=S!0_R5pGNx~}DREOT7%^wfMj-|E)_Wrv=Z1aQJbomjMk{V*78XFrF` zzup(WE_2*SmD&~MyP{c)$C?8%_w9ApFf=>R_@}l=Z7#M4_XqX6FEb(iQH=`B;QK_u zUm&uBjbYVdiFHC8z4oga6~nDM;w&h<(Gab*QWNwtD(GRhxJiw3kTIp~>6iamWT;#< z71zCg@J57?Ux|o40ZR!qo68JSgJ(XM$ThQ2)Y}4wwWqWlUw{a1t~@`dsK!gzi+`I? zGt{XG(;FeOLB2Ou)0xbIqP$MiSCG}42KhHV^A7#i+NSYCBq(4Uo?V(k)T1usZ4Lv~ z>)r5k^O%Ux(Rf-3bR7dM(oNn==JIu`&S2LUH+=*@g%F5@C|%LO%o#yFp#vC5u&+a4 z=nuNvitYdb-4Tgx+P@No)sq_i6^Dm%pOdzu^s%V`ZnGFNy+67Wxl5^sxntj9n}*|t z)N0mrI7=P#>~V zJPSaMU#K@4Mol@6!J*qeOtPD;6t1;jS)b1S{$w@q(BZN7a;X13ZV|gorQ^71tYCf` z`r$ykJlia&L&tu6B$ZC99nz0fzG&=$QMSh_e$1_-T3JBh~ZOfMb-&LGy<0?VVcSnVy@+GBt30?^X{}pUM z{z!^15OC)zK7qFmlA(;MR{uyzb=QLo1@+@csIR?3%;6wh2GAbL{Oo?J<>S@1DMJN? z$aUK`G~b@Y9EYqqC8P}9B0^^UUars94`u5ZB<)1~CuE0@8gie^Ok$GY?ZD=ocnIrd zKvJ*!%gvjlW>@0Il>p~Y#=^x?$%>vN+h?l$MRI9fT7g9N*#Suzr6F?hgl~ORkS;Ek zZHhf};R6ggLiDXI=RdujjI;BW8ERQHeO&XH+G?8mfkD$*^mj^<>LB=eF__0F6xO?e zkE6AX9(r(-Oa<h*%^6(SvRf%STh z^+ly>HM$iCzmH$5W$rbX-ZeRKY0~v6nI=?#6K)>HjfBz z5|&JN8&QR3ziLUN909UQD(4}hP?N+P0U#N}3oWrR&>*b7WLghrI|ra9ZNjM&!lh#V zUTU5u@>A-rcE&W0d58~)XWUe~FRpH!#Y8teQ978H=D=_bY(*1Mt%aWviA^i>KhrRwbPReaa-cLQ zm4;9IKNtVzUJ_}rA&7=IBCH8p`aK8{_P-HqzsIsbzcsz5j>-PEDX%PS+TQTm8`^K~ zURPbt+auG8h9Eb`C6AJmVU6z|{ek%=rsO!NqtY>!{p(X__dA`>{&}lGUu3`I2L1jQ zI|+`MG5GHV#TSU<(z>+K2YgtN0UkgovE};}Zs$N-GN+&asj0#k)#Azb$9r*3yuX`l z{@E_hUL-$p{EcSh+W*;aShn-~mtpt)U6PAL_qx^0 z-BmHh^YT2NF=G|E5tW@yIl2;q+n8+N=49ujzkhqbZk$n;j=-_={e{lS*R+7!zy9v8 zeg&e-l+L|4sl3_}VT8%_srw*Cy5rKtZnnH)Tii=dKT;wxL(^A zzn*1&BTVgGT^5)Svoj>?>TB>VAm&qi@dsTI%dG zp~7f%cfIiL6wX4)GS31o8>byx1`zl4!-qM(+%4|ie*IFh{Iu;r zMII|XwjF+KqMzJ$T!awaeZSP|GarzK4?t<6H{90odgyZ`y+%(84Lrm!19Y=0@*dTR z;a+i`cCzv0%Zs1q>))1jJ*@@2oMWky#7MLCBCFaTKNHzd+AzG{^qp3J!935zMx!5{ z;Z9?aPrls@y=shm)FuXy1b`IHIY&Czw$E05>pbT>4;XlCx|C3eGX_5-&cz-MLYCHSH5iw^`N z{nH65C78}oJ&fHAoGV?!c#W~S>T5Ni{KeY2bQn3*^fafoP=>?YOll<7oAe0P^)BKTVB3TA*1rxN znR!2GQ!p=1=v(LX=(|ng=?RkN1k>)~!yaHo?!~V8E0@@qox?s?;npcCAIn5zZfVpN zU{5;IL!PM_x(msMf*w6>`1u^4?Sp=`TzN{>0g;?Y;l%xKK4d9C_2!flTo%bI_oU91 zv~@pXt3-NO+0*z;8w*Gw~3Dp%bf z;RCer5IcZ5eYRiNgtk{(#e?y`Un@q`pVRRK9Ni0kX?8?DKM z@a0M0r;-{hqp$E?4rhEfJE@C`!g%$sY`&B$K`)o+9!WtmEQecwwV9N5+N=Cp8~zN` zq=;c8?#$ITsqIoEosYzA#=XehKLcY(MqYeGY)A|OIE_?4T=qP zy0v70Y4Y~dX#1E1&^(ES5|`gm0sg4x3~FRGERtT4Ugt*$-&t0){LVMQG5vhNm6er% z{-yy|GTT9ozrzQTLH)2fge%akv-wh*8H6>9eK23EFWmq6SP)mxcuf`q2edl;6#$%+ z9&a6$pLU-dX{!R5%}6i?X(v`qLj_c{fmWy>DduTBhF!8OTwP215*k=9ko|d?6@m4F znEvAi9)sBPfFp4fN{r@PMFhH#qqGt$QhqSCbvcp=peMu7Rjjz#Q zZwAfT9Fp;eQt{c*MVfK*Z&IjY2**?JibdKTQ#r4NkB+;`5ua9x(j5?R_u}XgzzeBm zP$7{zN5cO|8&B)}%l>6<)6ErGZju&N2<%gY8zN#2luai!Mr!ZIBDE5y35gvqabL5* zBCO>6L=aZkMv1c+j3pe;omK>2@L|Tde@dQi7f?4&m5O#{xcqLo6VICuk&F&5RAZb zgaQZeL~QVz%*{k0rQT%wrK5YAQH(J{C9;H)8S5~jeXznE)s@c5+925=-k2W9T=fQa zd-b;|yEu_Y3?p#vK;RCNfwn|uW&}NkA9dIRcC?`!7ztndFy+O$B2^+?!xYU`?CuO8 z7htN`1-20L&+*^SOIew*HkB>I9P86pCe?bLZ+vpccj?!cx5FRZ_u*_-i~fpa-kcQuJg-@;~msGmv4J7Kyf)4*m3$$wqxkE z3Un&r#*RZ*@OrWe8g}=uM24N$@z$ z)$3|^v1j8*DAYxBGvobG(UnI2j3*OPPp3f=dJ;2IiLXtoG^$kLecoD3f zyl>d^;?`MgO(l`um?3!^nsGM?Kdxq5@S4A~Ezp^S={rh7MJjp!8^UdR_gpDxw%*^T z`8^*Ms0*8=KAQ5?_ODQd*ei7 zE&ZPavqW@5Sh83qmG~K!HDf-TyxlgBaK!EG&9dYSLUZS@XblB@U8t$x2dqOK8en;p ziLbIv$kE1AvPL0yGZ`a_ls<6xSD?STFhi%Ea+o{2XRh|kU9Bh9uSR7-Wd*E09%lv4 z?jR&*lQ9aXR2;^F6iSe5yw0gTtA=ot`DWN-Cf*cfBw9J!p}WYs-0g`(%$K!q1Y?E@ zA8_0I2i@d_oPTY^C9@Hbgqv!fwx;!y!or7#qV-*rX5DsOXnOl;2HA}HE4rl)R}?Ws znLM?*1Y|RmrHAyH273+DdDlDt3LYVdO#o}KcpC{@yYmI4R(%j4ZgC8-y50G1FgE*> ztpTtNUzQH7e+eW#yGEB$g{=GNH zgAP;98{hczNaz=CCB?4@AI2V0j@FlIWGah9$Yoe3<&IabC|eEgA)S!Digm%a+CNu` zhM!K*UK3-|r>HPYz>dkUkMB4c80+OEjRFsB%A!NN&C2~yrN;V)G0MlO)A+fL$pr%y z4_Ap4c33v&uo5W5eYpiAN?M(Ex;}HPyKS!T7u9)*4@z>qZP-p9Y~w;F2a}@_gIw8p zhEz$y@OwEsmB49i|)iT~5rq9IxZOBQ$(

1(0@OswuI;^({Ao6 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 Y=Q*iRVHqaie>dQ0s_Cj$C_fGRKXttya{vGU diff --git a/daprdocs/static/images/service-invocation-overview.png b/daprdocs/static/images/service-invocation-overview.png index f9af4d25c2a886fbc78e283c99c1a50a0d704bd3..c5b2fe55400ef35b24f15db409d4fc8b228ad497 100644 GIT binary patch literal 86974 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