From 032b2b08ba7aa02f9b26eea62abd9bdc2cb19c1a Mon Sep 17 00:00:00 2001 From: seachen Date: Wed, 1 Sep 2021 10:37:51 +0800 Subject: [PATCH 001/102] feature/pubsub: add delay queue params for pulsar --- .../supported-pubsub/setup-pulsar.md | 42 +++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md index 9f8b63a1e..7186bdedc 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md @@ -24,16 +24,52 @@ spec: value: "localhost:6650" - name: enableTLS value: "false" - ``` + ## Spec metadata fields | Field | Required | Details | Example | |--------------------|:--------:|---------|---------| -| host | Y | Address of the Pulsar broker. Default is `"localhost:6650"` | `"localhost:6650"` +| host | Y | Address of the Pulsar broker. Default is `"localhost:6650"` | `"localhost:6650"`| | enableTLS | N | Enable TLS. Default: `"false"` | `"true"`, `"false"` +### Delay queue + +When invoking the Pulsar pub/sub, its possible to provide an optional delay queue by using the `metadata` query param in the request url. + +These param names are `deliverAt` or `deliverAfter`. + +| Field | Required | Details | Example | +|--------------------|:--------:|---------|---------| +| deliverAt | N | delay queue configuration param. Default is empty | `"2021-09-01 10:00:00"`| +| deliverAfter | N | delay queue configuration param. Default is empty | `"4h5m3s"`| + +Example: + + +```shell +curl -X POST http://localhost:3500/v1.0/publish/myPulsar/myTopic?metadata.deliverAt='2021-09-01 10:00:00' \ + -H "Content-Type: application/json" \ + -d '{ + "data": { + "message": "Hi" + } + }' +``` + +Or + +```shell +curl -X POST http://localhost:3500/v1.0/publish/myPulsar/myTopic?metadata.deliverAfter='4h5m3s' \ + -H "Content-Type: application/json" \ + -d '{ + "data": { + "message": "Hi" + } + }' +``` + ## Create a Pulsar instance {{< tabs "Self-Hosted" "Kubernetes">}} @@ -60,4 +96,4 @@ Refer to the following [Helm chart](https://pulsar.apache.org/docs/en/kubernetes ## Related links - [Basic schema for a Dapr component]({{< ref component-schema >}}) - Read [this guide]({{< ref "howto-publish-subscribe.md#step-2-publish-a-topic" >}}) for instructions on configuring pub/sub components -- [Pub/Sub building block]({{< ref pubsub >}}) \ No newline at end of file +- [Pub/Sub building block]({{< ref pubsub >}}) From c4fecc12cfee1ace074d47f38b2b471d9c439cf9 Mon Sep 17 00:00:00 2001 From: yellow chicks Date: Wed, 1 Sep 2021 10:39:18 +0800 Subject: [PATCH 002/102] Update setup-pulsar.md --- .../components-reference/supported-pubsub/setup-pulsar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md index 7186bdedc..339c460fd 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md @@ -31,7 +31,7 @@ spec: | Field | Required | Details | Example | |--------------------|:--------:|---------|---------| | host | Y | Address of the Pulsar broker. Default is `"localhost:6650"` | `"localhost:6650"`| -| enableTLS | N | Enable TLS. Default: `"false"` | `"true"`, `"false"` +| enableTLS | N | Enable TLS. Default: `"false"` | `"true"`, `"false"`| ### Delay queue From 0abbfe901075a3fadfad1fa314b9e2b82ee9b96e Mon Sep 17 00:00:00 2001 From: seachen Date: Thu, 2 Sep 2021 10:08:53 +0800 Subject: [PATCH 003/102] feature/pubsub: add delay queue params for pulsar --- .../components-reference/supported-pubsub/setup-pulsar.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md index 7186bdedc..9f041616e 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md @@ -42,14 +42,14 @@ These param names are `deliverAt` or `deliverAfter`. | Field | Required | Details | Example | |--------------------|:--------:|---------|---------| -| deliverAt | N | delay queue configuration param. Default is empty | `"2021-09-01 10:00:00"`| +| deliverAt | N | delay queue configuration param. use time RFC3339, Default is empty | `"2021-09-01T10:00:00Z"`| | deliverAfter | N | delay queue configuration param. Default is empty | `"4h5m3s"`| Example: ```shell -curl -X POST http://localhost:3500/v1.0/publish/myPulsar/myTopic?metadata.deliverAt='2021-09-01 10:00:00' \ +curl -X POST http://localhost:3500/v1.0/publish/myPulsar/myTopic?metadata.deliverAt='2021-09-01T10:00:00Z' \ -H "Content-Type: application/json" \ -d '{ "data": { From 98ecae7f0299df7ce9b28eea21f5c7773ce4c9f5 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Wed, 8 Sep 2021 12:21:58 -0700 Subject: [PATCH 004/102] Create new Dapr branch --- .../{website-v1-4.yml => website-v1-5.yml} | 8 ++++---- README.md | 4 ++-- daprdocs/config.toml | 15 +++++++++------ 3 files changed, 15 insertions(+), 12 deletions(-) rename .github/workflows/{website-v1-4.yml => website-v1-5.yml} (96%) diff --git a/.github/workflows/website-v1-4.yml b/.github/workflows/website-v1-5.yml similarity index 96% rename from .github/workflows/website-v1-4.yml rename to .github/workflows/website-v1-5.yml index d4a844308..0e030ecd5 100644 --- a/.github/workflows/website-v1-4.yml +++ b/.github/workflows/website-v1-5.yml @@ -3,11 +3,11 @@ name: Azure Static Web App v1.4 on: push: branches: - - v1.4 + - v1.5 pull_request: types: [opened, synchronize, reopened, closed] branches: - - v1.4 + - v1.5 jobs: build_and_deploy_job: @@ -27,7 +27,7 @@ jobs: HUGO_ENV: production HUGO_VERSION: "0.74.3" with: - azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_V1_4 }} + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_V1_5 }} repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) skip_deploy_on_missing_secrets: true action: "upload" @@ -48,6 +48,6 @@ jobs: id: closepullrequest uses: Azure/static-web-apps-deploy@v0.0.1-preview with: - azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_V1_4 }} + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_V1_5 }} skip_deploy_on_missing_secrets: true action: "close" diff --git a/README.md b/README.md index 4cde96448..768ba03c4 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ The following branches are currently maintained: | Branch | Website | Description | |--------|---------|-------------| -| [v1.3](https://github.com/dapr/docs) (primary) | https://docs.dapr.io | Latest Dapr release documentation. Typo fixes, clarifications, and most documentation goes here. -| [v1.4](https://github.com/dapr/docs/tree/v1.4) (pre-release) | https://v1-4.docs.dapr.io/ | Pre-release documentation. Doc updates that are only applicable to v1.4+ go here. +| [v1.4](https://github.com/dapr/docs) (primary) | https://docs.dapr.io | Latest Dapr release documentation. Typo fixes, clarifications, and most documentation goes here. +| [v1.5](https://github.com/dapr/docs/tree/v1.5) (pre-release) | https://v1-5.docs.dapr.io/ | Pre-release documentation. Doc updates that are only applicable to v1.5+ go here. For more information visit the [Dapr branch structure](https://docs.dapr.io/contributing/contributing-docs/#branch-guidance) document. diff --git a/daprdocs/config.toml b/daprdocs/config.toml index 540ab2b1d..1aa4c7cd6 100644 --- a/daprdocs/config.toml +++ b/daprdocs/config.toml @@ -1,5 +1,5 @@ # Site Configuration -baseURL = "https://v1-4.docs.dapr.io/" +baseURL = "https://v1-5.docs.dapr.io/" title = "Dapr Docs" theme = "docsy" disableFastRender = true @@ -149,20 +149,23 @@ offlineSearch = false github_repo = "https://github.com/dapr/docs" github_project_repo = "https://github.com/dapr/dapr" github_subdir = "daprdocs" -github_branch = "v1.4" +github_branch = "v1.5" # Versioning -version_menu = "v1.4 (preview)" -version = "v1.4" +version_menu = "v1.5 (preview)" +version = "v1.5" archived_version = false url_latest_version = "https://docs.dapr.io" [[params.versions]] - version = "v1.4 (preview)" + version = "v1.5 (preview)" url = "#" [[params.versions]] - version = "v1.3 (latest)" + version = "v1.4 (latest)" url = "https://docs.dapr.io" +[[params.versions]] + version = "v1.3" + url = "https://v1-3.docs.dapr.io" [[params.versions]] version = "v1.2" url = "https://v1-2.docs.dapr.io" From 1582c605b013c3bdcfd558b973dc17e5bf1182af Mon Sep 17 00:00:00 2001 From: Javier Vela Date: Wed, 15 Sep 2021 21:11:16 +0200 Subject: [PATCH 005/102] gcp bucket update --- .../supported-bindings/gcpbucket.md | 180 +++++++++++++++++- 1 file changed, 173 insertions(+), 7 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md b/daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md index 19b7ba19b..1d5bc8fe6 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md @@ -44,6 +44,10 @@ spec: value: https://www.googleapis.com/robot/v1/metadata/x509/.iam.gserviceaccount.com - name: private_key value: PRIVATE KEY + - name: decodeBase64 + value: + - name: encodeBase64 + value: ``` {{% alert title="Warning" color="warning" %}} @@ -65,12 +69,17 @@ The above example uses secrets as plain strings. It is recommended to use a secr | 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` +| decodeBase64 | N | Output | Configuration to decode base64 file content before saving to bucket storage. (In case of saving a file with binary content). `true` is the only allowed positive value. Other positive variations like `"True", "1"` are not acceptable. Defaults to `false` | `true`, `false` | +| encodeBase64 | N | Output | Configuration to encode base64 file content before return the content. (In case of opening a file with binary content). `true` is the only allowed positive value. Other positive variations like `"True", "1"` are not acceptable. Defaults to `false` | `true`, `false` | ## Binding support This component supports **output binding** with the following operations: -- `create` +- `create` : [Create file](#create-file) +- `get` : [Get file](#get-file) +- `delete` : [Delete file](#delete-file) +- `list`: [List file](#list-files) ### Create file @@ -84,10 +93,11 @@ To perform a create operation, invoke the GCP Storage Bucket binding with a `POS "data": "YOUR_CONTENT" } ``` +The metadata parameters are: +- `key` - (optional) the name of the object +- `decodeBase64` - (optional) configuration to decode base64 file content before saving to storage #### Examples - - ##### Save text to a random generated UUID file {{< tabs Windows Linux >}} @@ -113,14 +123,14 @@ To perform a create operation, invoke the GCP Storage Bucket binding with a `POS {{% codetab %}} ```bash - curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\", \"metadata\": { \"name\": \"my-test-file.txt\" } }" \ + curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\", \"metadata\": { \"key\": \"my-test-file.txt\" } }" \ http://localhost:/v1.0/bindings/ ``` {{% /codetab %}} {{% codetab %}} ```bash - curl -d '{ "operation": "create", "data": "Hello World", "metadata": { "name": "my-test-file.txt" } }' \ + curl -d '{ "operation": "create", "data": "Hello World", "metadata": { "key": "my-test-file.txt" } }' \ http://localhost:/v1.0/bindings/ ``` {{% /codetab %}} @@ -138,19 +148,175 @@ Then you can upload it as you would normally: {{% codetab %}} ```bash - curl -d "{ \"operation\": \"create\", \"data\": \"(YOUR_FILE_CONTENTS)\", \"metadata\": { \"name\": \"my-test-file.jpg\" } }" http://localhost:/v1.0/bindings/ + curl -d "{ \"operation\": \"create\", \"data\": \"(YOUR_FILE_CONTENTS)\", \"metadata\": { \"key\": \"my-test-file.jpg\" } }" http://localhost:/v1.0/bindings/ ``` {{% /codetab %}} {{% codetab %}} ```bash - curl -d '{ "operation": "create", "data": "$(cat my-test-file.jpg)", "metadata": { "name": "my-test-file.jpg" } }' \ + curl -d '{ "operation": "create", "data": "$(cat my-test-file.jpg)", "metadata": { "key": "my-test-file.jpg" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} +#### Response + +The response body will contain the following JSON: + +```json +{ + "objectURL":"https://storage.googleapis.com//", +} +``` + +### Get object + +To perform a get file operation, invoke the AWS S3 binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "get", + "metadata": { + "key": "my-test-file.txt" + } +} +``` + +The metadata parameters are: + +- `key` - the name of the object +- `encodeBase64` - (optional) configuration to encode base64 file content before return the content. + + +#### Example + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"get\", \"metadata\": { \"key\": \"my-test-file.txt\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "get", "metadata": { "key": "my-test-file.txt" }}' \ http://localhost:/v1.0/bindings/ ``` {{% /codetab %}} {{< /tabs >}} +#### Response + +The response body contains the value stored in the object. + + +### Delete object + +To perform a delete object operation, invoke the AWS S3 binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "delete", + "metadata": { + "key": "my-test-file.txt" + } +} +``` + +The metadata parameters are: + +- `key` - the name of the object + + +#### Examples + +##### Delete object + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"delete\", \"metadata\": { \"key\": \"my-test-file.txt\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "delete", "metadata": { "key": "my-test-file.txt" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +#### Response +An HTTP 204 (No Content) and empty body will be retuned if successful. + + +### List objects + +To perform a list object operation, invoke the S3 binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "list", + "data": { + "maxResults": 10, + "prefix": "file", + "delimiter": "i0FvxAn2EOEL6" + } +} +``` + +The data parameters are: + +- `maxResults` - (optional) sets the maximum number of keys returned in the response. By default the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more. +- `prefix` - (optional) it can be used to filter objects starting with prefix. +- `delimiter` - (optional) it can be used to restrict the results to only the kobjects in the given "directory". Without the delimiter, the entire tree under the prefix is returned + +#### Response + +The response body contains the list of found objects. + +The list of objects will be returned as JSON array in the following form: + +```json +[ + { + "Bucket": "", + "Name": "02WGzEdsUWNlQ", + "ContentType": "image/png", + "ContentLanguage": "", + "CacheControl": "", + "EventBasedHold": false, + "TemporaryHold": false, + "RetentionExpirationTime": "0001-01-01T00:00:00Z", + "ACL": null, + "PredefinedACL": "", + "Owner": "", + "Size": 5187, + "ContentEncoding": "", + "ContentDisposition": "", + "MD5": "aQdLBCYV0BxA51jUaxc3pQ==", + "CRC32C": 1058633505, + "MediaLink": "https://storage.googleapis.com/download/storage/v1/b//o/02WGzEdsUWNlQ?generation=1631553155678071&alt=media", + "Metadata": null, + "Generation": 1631553155678071, + "Metageneration": 1, + "StorageClass": "STANDARD", + "Created": "2021-09-13T17:12:35.679Z", + "Deleted": "0001-01-01T00:00:00Z", + "Updated": "2021-09-13T17:12:35.679Z", + "CustomerKeySHA256": "", + "KMSKeyName": "", + "Prefix": "", + "Etag": "CPf+mpK5/PICEAE=" + } +] +``` ## Related links - [Basic schema for a Dapr component]({{< ref component-schema >}}) From 0df864472fd75b70654ed49a2b2fbbbc91b18156 Mon Sep 17 00:00:00 2001 From: Joni Collinge Date: Sun, 19 Sep 2021 08:05:56 +0100 Subject: [PATCH 006/102] add asb metadata docs --- .../setup-azure-servicebus.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md index 9632a470f..67791eacd 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md @@ -84,6 +84,38 @@ The above example uses secrets as plain strings. It is recommended to use a secr | publishMaxRetries | N | The max number of retries for when Azure Service Bus responds with "too busy" in order to throttle messages. Defaults: `5` | `5` | publishInitialRetryInternalInMs | N | Time in milliseconds for the initial exponential backoff when Azure Service Bus throttle messages. Defaults: `500` | `500` +## Message metadata + +Azure Service Bus messages extend the Dapr message format with additional contextual metadata. Some metadata fields are set by Azure Service Bus itself (read-only) and others can be set by the client when publishing a message. + +### Sending a message with metadata + +To set Azure Service Bus metadata when publishing a message, add any of the following properties as either HTTP headers or gRPC message metadata. + +- `metadata.MessageId` +- `metadata.CorrelationId` +- `metadata.SessionId` +- `metadata.Label` +- `metadata.ReplyTo` +- `metadata.PartitionKey` +- `metadata.To` +- `metadata.ContentType` +- `metadata.ScheduledEnqueueTimeUtc` +- `metadata.ReplyToSessionId` + +### Receiving a message with metadata + +When Dapr calls your application, it will attach Azure Service Bus message metadata to the request using either HTTP headers or gRPC metadata. +In addition to the [settable metadata listed above](#sending-a-message-with-metadata), you can also access the following read-only message metadata. + +- `metadata.DeliveryCount` +- `metadata.LockedUntilUtc` +- `metadata.LockToken` +- `metadata.EnqueuedTimeUtc` +- `metadata.SequenceNumber` + +> To find out more details on the purpose of any of these metadata properties, please refer to [the official Azure Service Bus documentation](https://docs.microsoft.com/en-us/rest/api/servicebus/message-headers-and-properties#message-headers). + ## Create an Azure Service Bus Follow the instructions [here](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-topics-subscriptions-portal) on setting up Azure Service Bus Topics. From 3ac50e57864e99a6ca4be584298a79d7f3d8870c Mon Sep 17 00:00:00 2001 From: Joni Collinge Date: Sun, 19 Sep 2021 08:12:58 +0100 Subject: [PATCH 007/102] improve consistency --- .../supported-pubsub/setup-azure-servicebus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md index 67791eacd..bc8a11089 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md @@ -90,7 +90,7 @@ Azure Service Bus messages extend the Dapr message format with additional contex ### Sending a message with metadata -To set Azure Service Bus metadata when publishing a message, add any of the following properties as either HTTP headers or gRPC message metadata. +To set Azure Service Bus metadata when sending a message, add any of the following properties as either HTTP headers or gRPC message metadata. - `metadata.MessageId` - `metadata.CorrelationId` From f2b362020f151e292cee9953ce0c0b1c2ee3933d Mon Sep 17 00:00:00 2001 From: Joni Collinge Date: Sun, 19 Sep 2021 08:20:47 +0100 Subject: [PATCH 008/102] use query params not headers --- .../supported-pubsub/setup-azure-servicebus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md index bc8a11089..446467691 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md @@ -90,7 +90,7 @@ Azure Service Bus messages extend the Dapr message format with additional contex ### Sending a message with metadata -To set Azure Service Bus metadata when sending a message, add any of the following properties as either HTTP headers or gRPC message metadata. +To set Azure Service Bus metadata when sending a message, set the query parameters on the HTTP request or the gRPC metadata as documented [here](https://docs.dapr.io/reference/api/pubsub_api/#metadata). - `metadata.MessageId` - `metadata.CorrelationId` From a6279eca751eddddf83f2f0e51ba8b8ef252a180 Mon Sep 17 00:00:00 2001 From: Joni Collinge Date: Sun, 19 Sep 2021 08:48:17 +0100 Subject: [PATCH 009/102] add note on message id --- .../supported-pubsub/setup-azure-servicebus.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md index 446467691..ee3def3da 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md @@ -103,6 +103,8 @@ To set Azure Service Bus metadata when sending a message, set the query paramete - `metadata.ScheduledEnqueueTimeUtc` - `metadata.ReplyToSessionId` +> **NOTE:** The `metadata.MessageId` property does not set the `id` property of the cloud event and should be treated in isolation. + ### Receiving a message with metadata When Dapr calls your application, it will attach Azure Service Bus message metadata to the request using either HTTP headers or gRPC metadata. @@ -114,7 +116,7 @@ In addition to the [settable metadata listed above](#sending-a-message-with-meta - `metadata.EnqueuedTimeUtc` - `metadata.SequenceNumber` -> To find out more details on the purpose of any of these metadata properties, please refer to [the official Azure Service Bus documentation](https://docs.microsoft.com/en-us/rest/api/servicebus/message-headers-and-properties#message-headers). +To find out more details on the purpose of any of these metadata properties, please refer to [the official Azure Service Bus documentation](https://docs.microsoft.com/en-us/rest/api/servicebus/message-headers-and-properties#message-headers). ## Create an Azure Service Bus From dca5f3c17d85653f8dfebeeda6c3980010157b6b Mon Sep 17 00:00:00 2001 From: Long Date: Fri, 17 Sep 2021 09:43:40 +0000 Subject: [PATCH 010/102] bindings: support rabbitmq send any content types Signed-off-by: Long --- .../components-reference/supported-bindings/rabbitmq.md | 1 + 1 file changed, 1 insertion(+) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md b/daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md index 2671e0766..13f1b81e1 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md @@ -56,6 +56,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr | prefetchCount | N | Input | Set the [Channel Prefetch Setting (QoS)](https://www.rabbitmq.com/confirms.html#channel-qos-prefetch). If this parameter is omiited, QoS would set value to 0 as no limit | `0` | | exclusive | N | Input/Output | Determines whether the topic will be an exclusive topic or not. Defaults to `"false"` | `"true"`, `"false"` | | maxPriority| N | Input/Output | Parameter to set the [priority queue](https://www.rabbitmq.com/priority.html). If this parameter is omitted, queue will be created as a general queue instead of a priority queue. Value between 1 and 255. See [also](#specifying-a-priority-per-message) | `"1"`, `"10"` | +| contentType | N | Input/Output | The content type of the message. Defaults to "text/plain". | `"text/plain"`, `"application/cloudevent+json"` and so on | ## Binding support This component supports both **input and output** binding interfaces. From 2c6a46e61e91e1cace10fa548d08badfe80cd9be Mon Sep 17 00:00:00 2001 From: Javier Vela Date: Thu, 30 Sep 2021 23:13:09 +0200 Subject: [PATCH 011/102] gcp bucket update MR comments --- .../components-reference/supported-bindings/gcpbucket.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md b/daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md index 1d5bc8fe6..e314b1849 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md @@ -172,7 +172,7 @@ The response body will contain the following JSON: ### Get object -To perform a get file operation, invoke the AWS S3 binding with a `POST` method and the following JSON body: +To perform a get file operation, invoke the GCP bucket binding with a `POST` method and the following JSON body: ```json { @@ -215,7 +215,7 @@ The response body contains the value stored in the object. ### Delete object -To perform a delete object operation, invoke the AWS S3 binding with a `POST` method and the following JSON body: +To perform a delete object operation, invoke the GCP bucket binding with a `POST` method and the following JSON body: ```json { From 7e1a8acc3ef8c7c8dc718a0bb4e1acef104c3824 Mon Sep 17 00:00:00 2001 From: Bernd Verst <4535280+berndverst@users.noreply.github.com> Date: Thu, 30 Sep 2021 16:23:04 -0700 Subject: [PATCH 012/102] Deny iFrame embeds --- daprdocs/staticwebapp.config.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 daprdocs/staticwebapp.config.json diff --git a/daprdocs/staticwebapp.config.json b/daprdocs/staticwebapp.config.json new file mode 100644 index 000000000..df65c3647 --- /dev/null +++ b/daprdocs/staticwebapp.config.json @@ -0,0 +1,6 @@ +{ + "globalHeaders": { + "X-Frame-Options": "DENY" + } +} + From 07bca094e9d2178b79b730f0b2f5c05141db312c Mon Sep 17 00:00:00 2001 From: Bernd Verst <4535280+berndverst@users.noreply.github.com> Date: Thu, 30 Sep 2021 16:23:30 -0700 Subject: [PATCH 013/102] Deny iFrame embeds --- daprdocs/staticwebapp.config.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 daprdocs/staticwebapp.config.json diff --git a/daprdocs/staticwebapp.config.json b/daprdocs/staticwebapp.config.json new file mode 100644 index 000000000..df65c3647 --- /dev/null +++ b/daprdocs/staticwebapp.config.json @@ -0,0 +1,6 @@ +{ + "globalHeaders": { + "X-Frame-Options": "DENY" + } +} + From f4f47f916b28da9eecb285fdfa64dd3419d6a7cc Mon Sep 17 00:00:00 2001 From: Taction Date: Fri, 1 Oct 2021 22:40:02 +0800 Subject: [PATCH 014/102] add redis username metadata --- .../supported-bindings/redis.md | 37 ++++++++++--------- .../supported-pubsub/setup-redis-pubsub.md | 1 + .../supported-state-stores/setup-redis.md | 1 + 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/redis.md b/daprdocs/content/en/reference/components-reference/supported-bindings/redis.md index ce35caf27..e07ec5d5e 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/redis.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/redis.md @@ -40,25 +40,26 @@ The above example uses secrets as plain strings. It is recommended to use a secr |--------------------|:--------:|------------|-----|---------| | redisHost | Y | Output | The Redis host address | `"localhost:6379"` | | redisPassword | Y | Output | The Redis password | `"password"` | +| redisUsername | N | Output | Username for Redis host. Defaults to empty. Make sure your redis server version is 6 or above, and have created acl rule correctly. | `"username"` | | enableTLS | N | Output | If the Redis instance supports TLS with public certificates it can be configured to enable or disable TLS. Defaults to `"false"` | `"true"`, `"false"` | -| failover | N | Property to enabled failover configuration. Needs sentinalMasterName to be set. Defaults to `"false"` | `"true"`, `"false"` -| sentinelMasterName | N | The sentinel master name. See [Redis Sentinel Documentation](https://redis.io/topics/sentinel) | `""`, `"127.0.0.1:6379"` -| redeliverInterval | N | The interval between checking for pending messages to redelivery. Defaults to `"60s"`. `"0"` disables redelivery. | `"30s"` -| processingTimeout | N | The amount time a message must be pending before attempting to redeliver it. Defaults to `"15s"`. `"0"` disables redelivery. | `"30s"` -| redisType | N | The type of redis. There are two valid values, one is `"node"` for single node mode, the other is `"cluster"` for redis cluster mode. Defaults to `"node"`. | `"cluster"` -| redisDB | N | Database selected after connecting to redis. If `"redisType"` is `"cluster"` this option is ignored. Defaults to `"0"`. | `"0"` -| redisMaxRetries | N | Maximum number of times to retry commands before giving up. Default is to not retry failed commands. | `"5"` -| redisMinRetryInterval | N | Minimum backoff for redis commands between each retry. Default is `"8ms"`; `"-1"` disables backoff. | `"8ms"` -| redisMaxRetryInterval | N | Maximum backoff for redis commands between each retry. Default is `"512ms"`;`"-1"` disables backoff. | `"5s"` -| dialTimeout | N | Dial timeout for establishing new connections. Defaults to `"5s"`. | `"5s"` -| readTimeout | N | Timeout for socket reads. If reached, redis commands will fail with a timeout instead of blocking. Defaults to `"3s"`, `"-1"` for no timeout. | `"3s"` -| writeTimeout | N | Timeout for socket writes. If reached, redis commands will fail with a timeout instead of blocking. Defaults is readTimeout. | `"3s"` -| poolSize | N | Maximum number of socket connections. Default is 10 connections per every CPU as reported by runtime.NumCPU. | `"20"` -| poolTimeout | N | Amount of time client waits for a connection if all connections are busy before returning an error. Default is readTimeout + 1 second. | `"5s"` -| maxConnAge | N | Connection age at which the client retires (closes) the connection. Default is to not close aged connections. | `"30m"` -| minIdleConns | N | Minimum number of idle connections to keep open in order to avoid the performance degradation associated with creating new connections. Defaults to `"0"`. | `"2"` -| idleCheckFrequency | N | Frequency of idle checks made by idle connections reaper. Default is `"1m"`. `"-1"` disables idle connections reaper. | `"-1"` -| idleTimeout | N | Amount of time after which the client closes idle connections. Should be less than server's timeout. Default is `"5m"`. `"-1"` disables idle timeout check. | `"10m"` +| failover | N | Output | Property to enabled failover configuration. Needs sentinalMasterName to be set. Defaults to `"false"` | `"true"`, `"false"` +| sentinelMasterName | N | Output | The sentinel master name. See [Redis Sentinel Documentation](https://redis.io/topics/sentinel) | `""`, `"127.0.0.1:6379"` +| redeliverInterval | N | Output | The interval between checking for pending messages to redelivery. Defaults to `"60s"`. `"0"` disables redelivery. | `"30s"` +| processingTimeout | N | Output | The amount time a message must be pending before attempting to redeliver it. Defaults to `"15s"`. `"0"` disables redelivery. | `"30s"` +| redisType | N | Output | The type of redis. There are two valid values, one is `"node"` for single node mode, the other is `"cluster"` for redis cluster mode. Defaults to `"node"`. | `"cluster"` +| redisDB | N | Output | Database selected after connecting to redis. If `"redisType"` is `"cluster"` this option is ignored. Defaults to `"0"`. | `"0"` +| redisMaxRetries | N | Output | Maximum number of times to retry commands before giving up. Default is to not retry failed commands. | `"5"` +| redisMinRetryInterval | N | Output | Minimum backoff for redis commands between each retry. Default is `"8ms"`; `"-1"` disables backoff. | `"8ms"` +| redisMaxRetryInterval | N | Output | Maximum backoff for redis commands between each retry. Default is `"512ms"`;`"-1"` disables backoff. | `"5s"` +| dialTimeout | N | Output | Dial timeout for establishing new connections. Defaults to `"5s"`. | `"5s"` +| readTimeout | N | Output | Timeout for socket reads. If reached, redis commands will fail with a timeout instead of blocking. Defaults to `"3s"`, `"-1"` for no timeout. | `"3s"` +| writeTimeout | N | Output | Timeout for socket writes. If reached, redis commands will fail with a timeout instead of blocking. Defaults is readTimeout. | `"3s"` +| poolSize | N | Output | Maximum number of socket connections. Default is 10 connections per every CPU as reported by runtime.NumCPU. | `"20"` +| poolTimeout | N | Output | Amount of time client waits for a connection if all connections are busy before returning an error. Default is readTimeout + 1 second. | `"5s"` +| maxConnAge | N | Output | Connection age at which the client retires (closes) the connection. Default is to not close aged connections. | `"30m"` +| minIdleConns | N | Output | Minimum number of idle connections to keep open in order to avoid the performance degradation associated with creating new connections. Defaults to `"0"`. | `"2"` +| idleCheckFrequency | N | Output | Frequency of idle checks made by idle connections reaper. Default is `"1m"`. `"-1"` disables idle connections reaper. | `"-1"` +| idleTimeout | N | Output | Amount of time after which the client closes idle connections. Should be less than server's timeout. Default is `"5m"`. `"-1"` disables idle timeout check. | `"10m"` ## Binding support diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md index 394beeaea..9b5787a98 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md @@ -41,6 +41,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr |--------------------|:--------:|---------|---------| | redisHost | Y | Connection-string for the redis host. If `"redisType"` is `"cluster"` it can be multiple hosts separated by commas or just a single host | `localhost:6379`, `redis-master.default.svc.cluster.local:6379` | redisPassword | Y | Password for Redis host. No Default. Can be `secretKeyRef` to use a secret reference | `""`, `"KeFg23!"` +| redisUsername | N | Username for Redis host. Defaults to empty. Make sure your redis server version is 6 or above, and have created acl rule correctly. | `""`, `"default"` | consumerID | N | The consumer group ID | `"myGroup"` | enableTLS | N | If the Redis instance supports TLS with public certificates, can be configured to be enabled or disabled. Defaults to `"false"` | `"true"`, `"false"` | redeliverInterval | N | The interval between checking for pending messages to redelivery. Defaults to `"60s"`. `"0"` disables redelivery. | `"30s"` diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-redis.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-redis.md index 36c01fb57..c0234cdf7 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-redis.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-redis.md @@ -60,6 +60,7 @@ If you wish to use Redis as an actor store, append the following to the yaml. |--------------------|:--------:|---------|---------| | redisHost | Y | Connection-string for the redis host | `localhost:6379`, `redis-master.default.svc.cluster.local:6379` | redisPassword | Y | Password for Redis host. No Default. Can be `secretKeyRef` to use a secret reference | `""`, `"KeFg23!"` +| redisUsername | N | Username for Redis host. Defaults to empty. Make sure your redis server version is 6 or above, and have created acl rule correctly. | `""`, `"default"` | consumerID | N | The consumer group ID | `"myGroup"` | enableTLS | N | If the Redis instance supports TLS with public certificates, can be configured to be enabled or disabled. Defaults to `"false"` | `"true"`, `"false"` | maxRetries | N | Maximum number of retries before giving up. Defaults to `3` | `5`, `10` From 015f20850cf0721dc695b2f349bdb5d75cb22bb6 Mon Sep 17 00:00:00 2001 From: Mark Fussell Date: Wed, 6 Oct 2021 15:15:03 -0700 Subject: [PATCH 015/102] Update rabbitmq.md Added - name: contentType value: "text/plain" --- .../components-reference/supported-bindings/rabbitmq.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md b/daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md index 13f1b81e1..b548d9872 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md @@ -38,6 +38,8 @@ spec: value: false - name: maxPriority value: 5 +- name: contentType + value: "text/plain" ``` {{% alert title="Warning" color="warning" %}} From 5a6f3b8cea647584f1cca791543c5187a48eaccd Mon Sep 17 00:00:00 2001 From: Long Date: Mon, 27 Sep 2021 16:03:57 +0000 Subject: [PATCH 016/102] Update arguments-annotations-overview.md Signed-off-by: Long --- daprdocs/content/en/reference/arguments-annotations-overview.md | 1 + 1 file changed, 1 insertion(+) diff --git a/daprdocs/content/en/reference/arguments-annotations-overview.md b/daprdocs/content/en/reference/arguments-annotations-overview.md index 257a5b9ac..243c903d9 100644 --- a/daprdocs/content/en/reference/arguments-annotations-overview.md +++ b/daprdocs/content/en/reference/arguments-annotations-overview.md @@ -27,6 +27,7 @@ This table is meant to help users understand the equivalent options for running | `--enable-metrics` | not supported | | configuration spec | Enable prometheus metric (default true) | | `--enable-mtls` | not supported | | configuration spec | Enables automatic mTLS for daprd to daprd communication channels | | `--enable-profiling` | `--enable-profiling` | | `dapr.io/enable-profiling` | Enable profiling | +| `--enable-domain-socket` | not supported | | not supported | Enable listen with Unix domain socket | | `--log-as-json` | not supported | | `dapr.io/log-as-json` | Setting this parameter to `true` outputs logs in JSON format. Default is `false` | | `--log-level` | `--log-level` | | `dapr.io/log-level` | Sets the log level for the Dapr sidecar. Allowed values are `debug`, `info`, `warn`, `error`. Default is `info` | | `--app-max-concurrency` | `--app-max-concurrency` | | `dapr.io/app-max-concurrency` | Limit the concurrency of your application. A valid value is any number larger than `0` From 735d24bff6a6b0e82ee6607c92472fe4e6318b19 Mon Sep 17 00:00:00 2001 From: Long Date: Mon, 27 Sep 2021 16:07:18 +0000 Subject: [PATCH 017/102] update cli run example Signed-off-by: Long --- daprdocs/content/en/reference/cli/dapr-run.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/daprdocs/content/en/reference/cli/dapr-run.md b/daprdocs/content/en/reference/cli/dapr-run.md index 49d6713c6..47e478692 100644 --- a/daprdocs/content/en/reference/cli/dapr-run.md +++ b/daprdocs/content/en/reference/cli/dapr-run.md @@ -38,6 +38,7 @@ dapr run [flags] [command] | `--log-level` | | `info` | The log verbosity. Valid values are: `debug`, `info`, `warn`, `error`, `fatal`, or `panic` | | `--placement-host-address` | `DAPR_PLACEMENT_HOST` | `localhost` | The address of the placement service. Format is either `` for default port (`6050` on Windows, `50005` on Linux/MacOS) or `:` for custom port | | `--profile-port` | | `7777` | The port for the profile server to listen on | +| `--unix-domain-socket`, `-u` | | `/tmp/dapr-APPID-[http|grpc].socket` | The socket path to listen on | | `--dapr-http-max-request-size` | | `4` | Max size of request body in MB.| ## Examples @@ -71,3 +72,9 @@ dapr run --app-id myapp -- python myapp.py ```bash dapr run --app-id myapp ``` + +### Run a .Net application with socket + +```bash +dapr run --app-id myapp --app-port 5000 --enable-unix-socket -- dotnet run +``` From 1d6bedc9744a9b336b7a0f61e7ca698894e4cc6e Mon Sep 17 00:00:00 2001 From: Taction Date: Fri, 8 Oct 2021 22:01:24 +0800 Subject: [PATCH 018/102] Add dead letter support for RabbitMQ pubsub --- .../components-reference/supported-pubsub/setup-rabbitmq.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md index 1c205861b..c9c1c1525 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md @@ -69,6 +69,9 @@ The above example uses secrets as plain strings. It is recommended to use a secr | backOffRandomizationFactor | N | Randomization factor, between 1 and 0, including 0 but not 1. Randomized interval = RetryInterval * (1 ± backOffRandomizationFactor). Defaults to `"0.5"`. | `"0.5"` | | backOffMultiplier | N | Backoff multiplier for the policy. Increments the interval by multiplying it with the multiplier. Defaults to `"1.5"` | `"1.5"` | | backOffMaxElapsedTime | N | After MaxElapsedTime the ExponentialBackOff returns Stop. There are two valid formats, one is the fraction with a unit suffix format, and the other is the pure digital format that will be processed as milliseconds. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Defaults to `"15m"` | `"15m"` | +| enableDeadLetter | N | Enable forwarding Messages that cannot be handled to a dead-letter topic. Defaults to `"false"` | `"true"`, `"false"` | +| maxLen | N | The maximum number of messages of a queue. If both `maxLen` and `maxLenBytes` are set then both will apply; whichever limit is hit first will be enforced. Defaults to no limit | `"1000"` | +| maxLenBytes | N | Maximum length in bytes of a queue. If both `maxLen` and `maxLenBytes` are set then both will apply; whichever limit is hit first will be enforced. Defaults to no limit. | `"1048576"` | ### Backoff policy introduction From 49128bc1427d00b8352723f516cf7139f780ccef Mon Sep 17 00:00:00 2001 From: Hal Spang Date: Fri, 8 Oct 2021 17:23:24 -0700 Subject: [PATCH 019/102] Update Azure Service Bus Binding queue name param Queue names are always forced to lowercase in Azure Service Bus. This behavior should be documented. https://github.com/dapr/docs/issues/1839 --- .../components-reference/supported-bindings/servicebusqueues.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/servicebusqueues.md b/daprdocs/content/en/reference/components-reference/supported-bindings/servicebusqueues.md index e8116cd02..1e4398049 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/servicebusqueues.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/servicebusqueues.md @@ -40,7 +40,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr | Field | Required | Binding support | Details | Example | |--------------------|:--------:|------------|-----|---------| | connectionString | Y | Input/Output | The Service Bus connection string | `"Endpoint=sb://************"` | -| queueName | Y | Input/Output | The Service Bus queue name | `"queuename"` | +| queueName | Y | Input/Output | The Service Bus queue name. Queue names are case-insensitive and will always be forced to lowercase. | `"queuename"` | | ttlInSeconds | N | Output | Parameter to set the default message [time to live](https://docs.microsoft.com/azure/service-bus-messaging/message-expiration). If this parameter is omitted, messages will expire after 14 days. See [also](#specifying-a-ttl-per-message) | `"60"` | ## Binding support From 3c40edf57cbdbcdc769f8576396555eff285e05a Mon Sep 17 00:00:00 2001 From: Long Date: Sat, 9 Oct 2021 14:12:27 +0000 Subject: [PATCH 020/102] Allow sidecar image to be specified via K8s annotation in app's Deployment Signed-off-by: Long --- daprdocs/content/en/reference/arguments-annotations-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/arguments-annotations-overview.md b/daprdocs/content/en/reference/arguments-annotations-overview.md index 257a5b9ac..4c3c79067 100644 --- a/daprdocs/content/en/reference/arguments-annotations-overview.md +++ b/daprdocs/content/en/reference/arguments-annotations-overview.md @@ -22,7 +22,7 @@ This table is meant to help users understand the equivalent options for running | `--dapr-grpc-port` | `--dapr-grpc-port` | | not supported | gRPC port for the Dapr API to listen on (default "50001") | | `--dapr-http-port` | `--dapr-http-port` | | not supported | The HTTP port for the Dapr API | |` --dapr-http-max-request-size` | --dapr-http-max-request-size | | `dapr.io/http-max-request-size` | Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is `4` MB | -| not supported | `--image` | | not supported +| not supported | `--image` | | `dapr.io/sidecar-image` | Dapr sidecar image | | `--internal-grpc-port` | not supported | | not supported | gRPC port for the Dapr Internal API to listen on | | `--enable-metrics` | not supported | | configuration spec | Enable prometheus metric (default true) | | `--enable-mtls` | not supported | | configuration spec | Enables automatic mTLS for daprd to daprd communication channels | From 5a85ff117af4cb9fd0ceb1636f75aab8801b3366 Mon Sep 17 00:00:00 2001 From: Taction Date: Thu, 14 Oct 2021 23:35:43 +0800 Subject: [PATCH 021/102] Add tls support for kafka pubsub component --- .../supported-pubsub/setup-apache-kafka.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index 91a86b1cd..da92f59b3 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -51,6 +51,55 @@ spec: | saslPassword | N | The SASL password used for authentication. Can be `secretKeyRef` to use a [secret reference]({{< ref component-secrets.md >}}). Only required if `authRequired` is set to `"true"`. | `""`, `"KeFg23!"` | initialOffset | N | The initial offset to use if no offset was previously committed. Should be "newest" or "oldest". Defaults to "newest". | `"oldest"` | maxMessageBytes | N | The maximum size in bytes allowed for a single Kafka message. Defaults to 1024. | `2048` +| caCert | N | Certificate authority certificate, required for using TLS. Can be `secretKeyRef` to use a secret reference | `0123456789-0123456789` +| clientCert | N | Client certificate, required for using TLS. Can be `secretKeyRef` to use a secret reference | `0123456789-0123456789` +| clientKey | N | Client key, required for using TLS. Can be `secretKeyRef` to use a secret reference | `012345` +| skipVerify | N | Skip TLS verification, this is not recommended using in production. Defaults to `"false"` | `"true"`, `"false"` | + +### Communication using TLS +To configure communication using TLS, ensure kafka broker is configured to support certificates. +Pre-requisite includes `certficate authority certificate`, `ca issued client certificate`, `client private key`. +Here is an example. + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: kafka-pubsub + namespace: default +spec: + type: pubsub.kafka + version: v1 + metadata: + - name: brokers # Required. Kafka broker connection setting + value: "dapr-kafka.myapp.svc.cluster.local:9092" + - name: consumerGroup # Optional. Used for input bindings. + value: "group1" + - name: clientID # Optional. Used as client tracing ID by Kafka brokers. + value: "my-dapr-app-id" + - name: authRequired # Required. + value: "true" + - name: saslUsername # Required if authRequired is `true`. + value: "adminuser" + - name: saslPassword # Required if authRequired is `true`. + secretKeyRef: + name: kafka-secrets + key: saslPasswordSecret + - name: maxMessageBytes # Optional. + value: 1024 + - name: caCert # Certificate authority certificate. + secretKeyRef: + name: kafka-tls + key: caCert + - name: clientCert # Client certificate. + secretKeyRef: + name: kafka-tls + key: clientCert + - name: clientKey # Client key. + secretKeyRef: + name: kafka-tls + key: clientKey +``` ## Per-call metadata fields From 36bb4e5c012e89e9b5037bc2f5736d7d30e5cc8d Mon Sep 17 00:00:00 2001 From: Will Date: Thu, 14 Oct 2021 14:03:34 -0700 Subject: [PATCH 022/102] upmerge v1.4 into v1.5 (#1851) * Closing issue #1410 * Update setup-sqlserver.md Incorporating feedback * Adding DaprCon card at top of main page * Close i tag * Bump runtime version references to 1.4.3 and supported versions table * Fixing closing b tag * Address PR review comments * Corrected upgrade paths * Update kubectl links * Update supported versions table Co-authored-by: Donovan Brown Co-authored-by: Ori Zohar Co-authored-by: Nick Greenfield --- daprdocs/content/en/_index.md | 16 ++++++++++++++++ .../hosting/kubernetes/cluster/setup-aks.md | 2 +- .../hosting/kubernetes/cluster/setup-gke.md | 2 +- .../kubernetes/cluster/setup-minikube.md | 2 +- .../hosting/kubernetes/kubernetes-deploy.md | 2 +- .../en/operations/monitoring/logging/fluentd.md | 2 +- .../monitoring/metrics/azure-monitor.md | 2 +- .../operations/monitoring/metrics/prometheus.md | 2 +- .../support/support-release-policy.md | 16 +++++++++------- .../supported-state-stores/setup-sqlserver.md | 8 ++++---- .../layouts/shortcodes/dapr-latest-version.html | 2 +- daprdocs/static/images/daprcon.png | Bin 0 -> 28556 bytes 12 files changed, 37 insertions(+), 19 deletions(-) create mode 100644 daprdocs/static/images/daprcon.png diff --git a/daprdocs/content/en/_index.md b/daprdocs/content/en/_index.md index 5243416f2..6ca2cff4c 100644 --- a/daprdocs/content/en/_index.md +++ b/daprdocs/content/en/_index.md @@ -3,6 +3,22 @@ type: docs no_list: true --- +
+
+
+
+ DaprCon logo + Join us for DaprCon on October 19th-20th, 2021! +
+

+ The first ever DaprCon will take place October 19th-20th, 2021 virtually! Tune in for free and attend technical sessions, panels and real world examples from the community on building applications with Dapr!

Learn more >> +

+ +
+
+
+ +

# Dapr Docs Welcome to the Dapr documentation site! diff --git a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-aks.md b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-aks.md index 905ef73b7..0323ba208 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-aks.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-aks.md @@ -12,7 +12,7 @@ description: > ## Prerequisites - [Docker](https://docs.docker.com/install/) -- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [kubectl](https://kubernetes.io/docs/tasks/tools/) - [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest) ## Deploy an Azure Kubernetes Service cluster diff --git a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md index 5a7b7607c..53d278669 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md @@ -8,7 +8,7 @@ description: "Setup a Google Kubernetes Engine cluster" ### Prerequisites -- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [kubectl](https://kubernetes.io/docs/tasks/tools/) - [Google Cloud SDK](https://cloud.google.com/sdk) ## Create a new cluster diff --git a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md index ef1d0110d..09762c9fd 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md @@ -12,7 +12,7 @@ description: > ## Prerequisites - [Docker](https://docs.docker.com/install/) -- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [kubectl](https://kubernetes.io/docs/tasks/tools/) - [Minikube](https://minikube.sigs.k8s.io/docs/start/) > Note: For Windows, enable Virtualization in BIOS and [install Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md index afa7a238a..81b62d716 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md @@ -15,7 +15,7 @@ For more information on what is deployed to your Kubernetes cluster read the [Ku ## Prerequisites - Install [Dapr CLI]({{< ref install-dapr-cli.md >}}) -- Install [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- Install [kubectl](https://kubernetes.io/docs/tasks/tools/) - Kubernetes cluster (see below if needed) ### Create cluster diff --git a/daprdocs/content/en/operations/monitoring/logging/fluentd.md b/daprdocs/content/en/operations/monitoring/logging/fluentd.md index 0c15c1584..fd0758418 100644 --- a/daprdocs/content/en/operations/monitoring/logging/fluentd.md +++ b/daprdocs/content/en/operations/monitoring/logging/fluentd.md @@ -9,7 +9,7 @@ description: "How to install Fluentd, Elastic Search, and Kibana to search logs ## Prerequisites - Kubernetes (> 1.14) -- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [kubectl](https://kubernetes.io/docs/tasks/tools/) - [Helm 3](https://helm.sh/) ## Install Elastic search and Kibana diff --git a/daprdocs/content/en/operations/monitoring/metrics/azure-monitor.md b/daprdocs/content/en/operations/monitoring/metrics/azure-monitor.md index 852716e76..c253d4f42 100644 --- a/daprdocs/content/en/operations/monitoring/metrics/azure-monitor.md +++ b/daprdocs/content/en/operations/monitoring/metrics/azure-monitor.md @@ -10,7 +10,7 @@ description: "Enable Dapr metrics and logs with Azure Monitor for Azure Kubernet - [Azure Kubernetes Service](https://docs.microsoft.com/en-us/azure/aks/) - [Enable Azure Monitor For containers in AKS](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-overview) -- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [kubectl](https://kubernetes.io/docs/tasks/tools/) - [Helm 3](https://helm.sh/) ## Enable Prometheus metric scrape using config map diff --git a/daprdocs/content/en/operations/monitoring/metrics/prometheus.md b/daprdocs/content/en/operations/monitoring/metrics/prometheus.md index b81f1f539..b179b75a0 100644 --- a/daprdocs/content/en/operations/monitoring/metrics/prometheus.md +++ b/daprdocs/content/en/operations/monitoring/metrics/prometheus.md @@ -67,7 +67,7 @@ Once Prometheus is running, you'll be able to visit its dashboard by visiting `h ### Prerequisites - Kubernetes (> 1.14) -- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [kubectl](https://kubernetes.io/docs/tasks/tools/) - [Helm 3](https://helm.sh/) ### Install Prometheus diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index 5ec7285f2..a07e40e4e 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -42,7 +42,9 @@ The table below shows the versions of Dapr releases that have been tested togeth | Jul 26th 2021 | 1.3
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Supported | | Sep 14th 2021 | 1.3.1
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Supported | | Sep 15th 2021 | 1.4
| 1.4.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | -| Sep 22nd 2021 | 1.4.1
| 1.4.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported (current) | +| Sep 22nd 2021 | 1.4.1
| 1.4.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported +| Sep 24th 2021 | 1.4.2
| 1.4.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | +| Oct 7th 2021 | 1.4.3
| 1.4.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported (current) | ## Upgrade paths After the 1.0 release of the runtime there may be situations where it is necessary to explicitly upgrade through an additional release to reach the desired target. For example an upgrade from v1.0 to v1.2 may need go pass through v1.1 @@ -56,16 +58,16 @@ General guidance on upgrading can be found for [self hosted mode]({{ # Required. - name: tableName - value: # Required. + value: # Optional. defaults to "state" - name: keyType value: # Optional. defaults to "string" - name: keyLength @@ -52,8 +52,8 @@ If you wish to use SQL server as an [actor state store]({{< ref "state_api.md#co | Field | Required | Details | Example | |--------------------|:--------:|---------|---------| -| connectionString | Y | The connection string used to connect | `"Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;"` -| tableName | Y | The name of the table to use. Alpha-numeric with underscores | `"table_name"` +| connectionString | Y | The connection string used to connect. If the connection string contains the database it must already exist. If the database is omitted a default database named `"Dapr"` is created. | `"Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;"` +| tableName | N | The name of the table to use. Alpha-numeric with underscores. Defaults to `"state"` | `"table_name"` | keyType | N | The type of key used. Defaults to `"string"` | `"string"` | keyLength | N | The max length of key. Used along with `"string"` keytype. Defaults to `"200"` | `"200"` | schema | N | The schema to use. Defaults to `"dbo"` | `"dapr"`,`"dbo"` @@ -69,7 +69,7 @@ If you wish to use SQL server as an [actor state store]({{< ref "state_api.md#co In order to setup SQL Server as a state store, you need the following properties: -- **Connection String**: the SQL Server connection string. For example: server=localhost;user id=sa;password=your-password;port=1433;database=mydatabase; +- **Connection String**: The SQL Server connection string. For example: server=localhost;user id=sa;password=your-password;port=1433;database=mydatabase; - **Schema**: The database schema to use (default=dbo). Will be created if does not exist - **Table Name**: The database table name. Will be created if does not exist - **Indexed Properties**: Optional properties from json data which will be indexed and persisted as individual column diff --git a/daprdocs/layouts/shortcodes/dapr-latest-version.html b/daprdocs/layouts/shortcodes/dapr-latest-version.html index 6f1027f0a..9a456a8b3 100644 --- a/daprdocs/layouts/shortcodes/dapr-latest-version.html +++ b/daprdocs/layouts/shortcodes/dapr-latest-version.html @@ -1 +1 @@ -{{- if .Get "short" }}1.4{{ else if .Get "long" }}1.4.1{{ else if .Get "cli" }}1.4.0{{ else }}1.4.1{{ end -}} +{{- if .Get "short" }}1.4{{ else if .Get "long" }}1.4.3{{ else if .Get "cli" }}1.4.0{{ else }}1.4.3{{ end -}} diff --git a/daprdocs/static/images/daprcon.png b/daprdocs/static/images/daprcon.png new file mode 100644 index 0000000000000000000000000000000000000000..ed0d3882c1825758c5b9ef7da8ff1da4e051163b GIT binary patch literal 28556 zcmeFZWmHtr_dk5;4y9ozk*+~vKi5s;8Zk!}GI3F*!m!lAnx z=DGO&{hwI>=iT$-dGlp0)~tK(KKtym&%P)2{_OKc`>`4sF(WYm0A!CID(eCOZX^KU zJR-ygOMH)EJKztI%R>`)0HEc(`Nw*sdv_Ns#B$eFQv|;EL)O3tTw4V#1pp|IBe}G~ z0|00CN6HHNK3JPqsD$*1&#XSz{RsxtoVTC1W*kp%lqbHowY{_GMUwcfnO-eLrM<(# z^u5pz|MDT+YO0xA8zNW_w@|aL-;4*}S>92-BVQaibc_7fW?IZD$*pv`5P|-rHq_mp z<)(C^rkxcy|&jqY6O@+=NQhsfy|-vT*QK1m;fgPWDn!vh2e@6()%#s{L#y5I1ypwJneVV{ZoFk z98ohYd4p5{kj;j$QW0a(NJ%{Idx9OZej^5#;dKILB$%5Td;LR(kIyMm70{+p`vc17 zul9%KvIjF(S}MKUZWP9e=3zj-`jOCSIqFQ9#li>HwKg=A!_48ye;#%a^^pJyBSAqB z+Ki9Yz#e01e}!<5N3M)xhw$CBgP-ZU*mBxJAiw1G%;g?X7^~d zL)j(EB&2J-n*0g5md{svc~TmpFe4Z*nbc+F*uxlvHY+}|T!@}gni|klpY5%$uVZQy zP9wm2s|dvN~H0vbIKP=Qe<=1dM#RW7+My zi#%R!2@(PPG~?Jq@b>2|uM66uuBYYd2O|`nz2#7Z*_6PcZtS6P?(wg9>jBJV*Y3$n zS?nfIwZ=f6;_AWxCc)N_rR$?Eae@Y54C%yGmd{-KNjT_EaWxhk5McY>Vpxt4pq;jm zKkTB*#JG*bwzP=fucQHFvYruUb+Vja%K6?S8~&=u4j7Y5b$)VX{INH`i-ZDx@=)AC zy`@!SI>M)ff#Cpr3Sy=eX2imn@qh(z=c316&Av_C9^`Hhz@?ZS!GIaw9}sD1AyVF~0vhT=jAc&oo>;Q;ghAUno3J%Rlnii+tU!Qd7MacAYnn(DoOI&iO;uq{kG!~=e+C0Rcg#{WqQn!_@0 ztt}3yD7#kyj)C>E3()MN(l!XP4nMNbMB(D+UgfxmS+g9TLsU$ET& z2Dwd+_47mb*{|b)%QEG8Y*O?p;s0hgGLzkK}$pp#*e&8fh27JF>lbfD&`fD8PBLalrCDgk0+t!w* zpZ~2M`qYCp$N@Hur&ApD{c0`P-L3W!_8q{O@Z!}VTWzPg8pYw5I#8yqE;cYO)FPxn7F`3>uF}7*?)KK(R1KU!Zg48mCcqk6+us}9Wo3=4@s-Z|!BQWt zyygQFBm>~n>IT}0Xe;M@J7J0j`G@ql0=Gd^yIm)7uJ%IFR5s(mWp(vJ$Mn%Q`@G?P z7}n3GHPt~ucFM9A}&wpS3R|)^0Eukn0ZY3ir4HJk%CDfgy+!=p{K_|QYUfn%FZ66SD)YPcj)?jC? z+?)`(eZO5M>Ge37mrU^#so_>NDGLLC3Us!JFdaE z{g_za%`CYh1LYdYp&6ub%j#dxuE%5}GM}clxR>9(p%WHWYcZt$anPov1RY z#mdZGrKpwH!qv^BmTKK*%j4$`^O`E1Uez)9b2dH{?rC3$COHJWGQv8feGQ(wqU4XGg9o#r@Q__ znhY%)nrXjA`vmo@$V_tS(#Ay6lccVvr^?;^`6)625xVyrDk2q^S$F?_C4);?9Im|9 zNR0p95+Z!cOkWw}(W(tQ&hrti-pW@Y(EchMxJH34Ik`sdQS-;Cjj%YnNzZObZ3IoW zz--06aFD5RyAE&@u|X@xANP^6&`iAaBlE8D%babrTiS@t?`_Aom-+nksnV^KDn%jY zTN23{gdSz@C0X7&$q97tnJPD~iIWSY#l%2Xgrz5(EW8fJ@}-6j0Ln@p4+5a8Sui#d3Wp}u6I&f(Hgfy z=3f1n@hg48r%tL5f_(iwmY)HKqgM1)a?YqU z9Kj3x<&u|Maj3Vo^+bnlR@E=+d6qh69fuM#KCKOPcO(FNh ze&=AA)qSU6C^_R(j@zH^rgxU1*+i10VY;F|75)`Zlu^#bwH39-4l{f1fk+*?8!_za zlb~JC{?>FWqQAT+T%|&vF!R#v(uFJk>}1B5M|W*V88*L{U8VUEY@*()(|@)(HdGW- zrxBWcF|T#h{H_5u6C>L+MI6cX1X>l)y*Ejan#ApncrtEr%a_8BITokKG5D5yP>GY_ zW6zl$?&PeAnQvPW%3+hfCYE;!d(`~Cw|9RWv3Q%Z@5`u4K@@3|t51*w8`~xcx*x8P z;3l$v+U~oPPx6mFC%#NJ1QM*ZLB5UjpiLqj~qsNW^#hd z-j7+u1*}=-`s_^CBXiZl9{rh-3qGF_;f_*k*L8U8#W4W;g**z{GI+J@b@}D2&+W8Y z`0AkUdiM0W*q#qm?gaXiH~A;MrcB;JD7qPRa%LS?O4<}?YK{#|Uq-dUfoR#roZ!{k*@Iw=>I znpyw3@N;O@{;x#_j>AgzrmvGIL&faSYq3IUf~9hQq*+>Pb#f;%M_8z~s#NQ4!} z=CcBwX(CF$aZwa1K$15`|FR@#@9gc{46(K^x5EcUEufXtg7+F+cS4`q%?A;N+pHUZ zs`bJeQkCL*IZOO@#ijRhf%S6r&%?eqRjk*BkDwk@QJw7_tPr|N4OwePm{8)6p ztfZa_ZM?4r|MCosIGFH|1wRRstW%46^&ZxV=c)u{kw3cr6?`1W;2n$9agN5*L2Zk>*xBv(kj}>^$gi`{ z7y6UTI&c-=e#J#E(L!1!N7u^K?QGL6#e<(hFR+G~u!B;XtI@*0t=Mu;(ftN=q^LS* z_tO3Qw8o~jZ^>)D+gztKu(Km-!4)PjvN#}Dy-TvWFqQ@PQjTu7Z83>O5u96OM1pM1 z*gPnTi6RBwB~M(ZeOqU*`^3@4`k4ov0qf$dY`M5}C<-Ej+i$T(Ne1gD4eCmHQSM@X zBWbqh2xKOP8}m-lNiNSfGxTqfCcUYQ7^;~0$};RvNDeVnQ|%UxfOWkP7Z@uo=CYDX z;!na{kgTxkaaQHJ1yrUrUL)zrPnOH#2AP7-M`94^m-Vju*8-lfEDR zebWrp#q+A?a0Q&8hgM12>Ey-F;+0FtzlK9#g->EVe&}n-ib)rEvk24;OM2F7F`vW(m<$v>B2jnOK1ARNeCNQN?G)@a&InIpm3{yf z6%lu2PL=*-QWsB&6IYw_H`y`WqqdbM7GqOR(jBgN;iB7r2Q9{OT?lEr7ecwWeqdDX zg;+;5k3i?RJv8w8*O|57cddb8T%{MaKXf>MYb{c*{HU*ZM;_Pfm6<_U*V_91K!a0~ zG;2bg$K(2!yV{JHPkTA2T73$cljwDJhZCdb^NYRn)q*+5M!kdq2`lN=R&wy(8Qo^G zJO9Ol)d7B~=k|$EWV{IitxQBN$d}cEK;qF6?>$<3GbRL;z9(&q^O`Ry!*OCZC^+Y> zdhqS>bG_=pR&D#LhFY`li^&hPW9g?AY=;6jSLu=cWrt=|6J}?JQzoL$|3a;&*UH3Z$*Uvas)@Bx+o6V*kG^4nuwC`%Re4zd zFUm+!cE_a;_zRT1Mka@s4%`@Hp5HQjwaHD{JCr?z@8ZfYzOp*fi29RIktT6aJDKvv z7?Oo*M!US8<<}aCSkQd$LbzOb*!!??N6vbvE%1IZSWT5j%#s8&ccRU@w619rE8=ja z!{MNaMfXy^oEP8&lz_45p4Hm?ILa1>HhnPQ+K-h~Mq0Xdw(i5HwP}*5JMDDXe)DZy zBla@z`^UespSR)JJd+Gy_o}VQpd=QtN8t~D8cv)pX%yhg_LV!lPtVt9I1ZmElX~jpZsi@|5U9Wtg{*5}x#1Ri07SCbCF`T@A5z zM4NRbJ2kd3o+7aa0th#0P=aX4ETHXvYKl|^kgYhlb{!fS_LQ)g8?F7JB zi;bF+!}5CYc`fF?y#&hHoh0(Ozp(~%5fuI=%N~RRAc5p>^TcMwMkl_`&PWC4K2Fe< z=<(!f8eE;VK(ABpP&t9_LBc(5qLf!H`(tx)d*fry>-?j^q7;#k9Kc~T#$PyGn-ECJ zfvlCgiVm(s6!8Z}1f9J-iB;*ga3+E0x4vg~&r;3%6LjKo2LP4@JO6~$6KVEsV6KB7 zqemqbYuIcUNvr#QlHe4o!}jjy{gDL*If@`#zRyoD*Fx-lF-F{tAEy&q6;n*0Rl$OR z^Z_9biCh<`-x~n{aH!GEn-S>agOGv$(iO8@4LY?bgWB9CWoEcu4F}uhBG5Xv1f4uV z>bzt@oB8*+1UxY_gxnFd-J@aI6_V@wtL|9Z@e(DVx7;BEe4sLcLE<_HfxpLjLA zQ0!i%B(}rfRRN$ZOSft*JxEErpa`7rToZ@qLA`fLiZf-a-v*2|)r|BG&_JgQjqEd@U0x0`Ae9qCf@`OM;=?#IBTI4`x706Pz_%8EjJRn*ArptCd{hW;2 z@o(^zF0RD?e)`9EX?4>S00f%FTyjZ^?+wAbZr#h0ATao_fd!P^?WQ@Vpvasd%p#^D ziG;A@ION<2VaS`eBc+S)nPT4lzWtUqgTV*j=WPuwhYT|Kn$}%y!$PZL|y zH}8)nP;x;WdE-;`PQ)&J6FCCNJGsS)s2QK&KDwK@e&ay|Q&xIno- zc_hfkA*X;5&@QcN4t|DfEOBBXvdDv{%^))dghb~hGB!oRiBNjbTvJee7S8N9#l=O8 zp)Wj~X_Sg1Lb?lSu>oyy+@96%VeDhzr=?GV1weGcg5_=gNbn&^M-Ug-#WGMTd%n#_ zuPcZ8vIk1q^t+RDdsm;Ap;~oT{`6HD{3i>-$ z$0!BfCOxOxjp{a*a@CTQPwZFl+A<6{E>{Gry3Gkvi(cGd188@o|#^(ZIHgb?T;<# zx+dlYRzI=-@P1a04||bZ>lS-&wrNUc#3rN<&Ge#DrD4<$}gg*Zm;|!vk>H63?)GYnR z)p=)N2P2acmT4ha*u&jM3~a4Xc5&OM`1;h6LT8@g`uA7i0*rZuwWl3QA| zwRjdf15Ctg;ErNuSnPA(;X=@+5BoqT0*Bs5VEb z>9-TAwnCkxF{)3JqWZ$(R{pI5->?5RQN741GqVn86RB#S=tK9oR>T0b<4$4OVUf?; z;IFoXqrGyPpc~LtL$FzrCF|hw(U%@n;hoG5eOhukwbAmFrJHM^-ST2sE^cF|DR`J`;g=b|V~1>0e@LVI3~2bv&&%F- zZ)>m9vWD4NZeP^Tg|!d=**}Y4s866(?;TMXv44<4Vjs+2b$ja!kKsfpG45XWLnZ;A> zyl}}qPHr8P#LvULdU_C{lS+$l0)oZ;=-N@ zG-QLXX1bic4_ZWfpcpDj!J5zX>6K&;+Dv}@UkZo>W?Su15zMeQpeDV2-AStQTS zB@Kf%4LjdnC=4xqvNYT;YJLCop#6P!Qcr!L!#GT{SE-h&W~fO>*drm#NQ*p$@zp7I zmzmRJ+tQfFf>(=`xM);e?V1mROAg}NyC@A4=s&d*OhA&)@7P8cyVcPsLFg}BA~#vW z{?WB9vfWLa!Nc{IUr8X6OkpS@CMICvGGb-CBYxt<*)4t6yzH!MuFP>ZI8VLs&lZ(< zxMEbd(D`waUS~JC$6gO@_0p-fkC@)k7m=n-4*ES&kkzM_lIggL|aAPuG{KIiOiW?Y*I!)ACWh7P>RwB!yRxtBQ5mTfba%SHwa}_Bk8jx9IW(-* z@!4zS&Xkqv+8VmYDoxnTwXPSIovt{tHrs86BKez!dVA$jLN=>@q@C6o_Xz@hguNHU z|H{QTr___XLZ8BuDwKQJB1}0;_N==#bVXCYaPv#1tnYa@+e&BmvfZEtZ~GikO0^K> z^dGeKjVGf>r72|13qkls$V1_b3YETV43i3S)!kS~0}VPSAbKkO1sbuWGbJcoWTpRo zGtuO(h>m|}*J>ukuicnJ^CA|%lkTEUeJ#bO-9zPw>yx7wPj`_;Z4pE2(r(j|lSUV{ z33$EoF!CRM^n_zouEwGJ2m$0*p5Wa|{!T6(gP;+(9fW^FVJGoJxe%dmZ#{|vRravL z{deG0=5I;Wak*c+X;Ou$-zpq{;)H_;H;>-S9i=6^srZ)DdDU9_bHg+HL4JbTgjVW6 zZH2R=>CO(!Ze>f0kwFkWWuBdyD+MAbQJ}gw;+$)RuIE;?XsogwkL7?*)DbGT1WNAJu6c!L63Z?OSYWnJ*LP1fz+sCX$8K`-dBC8lvQ{b4 zwPoZ`nsr&%7P308y3=^fD-$`4R&a)B5$;pAcY_2-yjMP%i$fRnSNWf_8aW`LOYGDQ{=c$kAEEAzkWFa*ZcRD$bZ=Wb zSB56)PKxh@U1ca1g!$|KVvjMY*V7{1bT|slP&~;AS8}2&j>u3dD+^aV`5vx>xfr+_ z<3~vrvU^g9jVEe`h`4&mGLWi#BXBo})gk>tLyRi8>iFhI?&>cU@wB9#idah#w*3@w z!la8s(t*8teYI&DEF2^_F0^zt)18v@ZGiHG+Z*HGog(>wl_-)tR__!)gTIr9Yb}et z`s-$W-Xi1@nWRpaJ@`D)rOVaS7|Lr=0i?bgS}pQ{zu0x4`w+~X^3_$WII@n8lluJl zcy*1WwO5Sw>J6IuAgOjU<%xyV2czOLY=mNP_8EWUqQ4bBm0s*faZ0#Kd@1SlUTxT$ zvpCH18hyZamv35_ds0OL4>D}~;`jnQV_vN4R3uJ>)!Vz@=ci7MwJF_+v%gC zL*Qhw5>~{cW#W!tE}5rttJ-KyUmQ}eVrm^F4gWi6yHxj^AuV*|0Cqk6(G5nP>>$uO z16dXQ{nRzr>$@yrWH-zydXs0$+!)gLYi#I~7H4~axjH*#W`di?xX_tLQfa9+#E-8% zVhdac!isodNrA`0LEGxj)sB{57_q8tzvieuI97lzrg;Sk#M-E}u*>q65QrM7M{Io< zh}4Fh^H@&Vcg|7dZ{K_X4>KRQ4M|F}noyV_gdgZW2xi4qYPMg=`SHjE(r1`9BZ{@B zfVQ_0ic2IO7!NWi=6EqkwM6*IB_Oi-;N;r5o{2z1DTriXO8q7#?Lv|_Rki1G4R+$g zGTeQha7uboX61dy$bnAr-LOw?xukx-Z&iGnnS5A&UQaMfZZtVy-ffz+yVf8+^;Lr8 zVj*&Q#Gby_FqVwd{lJy7>ulQSF?vmEl~&m+VmT-LFJk3YeNXKBzRsIPJ&r)`0_ z{$&#WC>HFacg~nmA-C)|`e7fxj{Ppg&}E|h_dax`!kAb_MiW9|@d6QxUmOW<4oABm z4f<#HNY#ecGq`(Xrn!cHvpf!EpZiu>kQ;pcJ*Gc>!aWBe#b{L6|2}f$pw^)IT52XS z_cBF^owwfnypZ{g_40T zuauco=UZCkt1Jh?WyNakCxwiuO{2L31Of6INwW6~=|BAKk9Nquc2zR@jC?3z2F`t) z{<82IeUhW-;_N9mQ3lxLS6X5}TRHmS5KkN3-w|0x!IC_2ia-WaWw!o>g zc>kP-8_m+I%u+~A%$g5&F)b|%D)KIr1v|)<_ z6*?Kem96lur>?;Cc0PZtlnm=(|5^gKHD?u7O48@oR@zOU?JP$h-1l0YObjr zSA}RV$xqjcZql%#3byr@q}LTz*`ScQee95(@&ZgLhRqOfvGTpX!^Gp#>gJ8m>{e(B zR<_cd3EP;plMjMk^D~|fW{a8Iou5KeV_Q{`DNM#NHlZZIrYwnrfuKM@eC^s8WbP6z&N|y*;5zI!*2|=b{k0BGo$oO)OLiM5PMvJP+ z+~JbIOJi!22qhXw_GdDZFYWK2ZORbmXQg4B@S9EsZ9An@tgm4&cq5ial7>y;B8e_AvqC6zM`v5n7>`YEMb#0@1K~&KHoOrEy1HzO3?EY zOSxy&_C?Z|t^815y*~tRD3qtuu94`1C*)B#YI(zE&_6BhiL!$%j2P>z>XZN2qta@; z1)eEVLMGbIpv-J~JPkoL7JR)i!PgdKw5r`DY!qDIVvbAT?3=kYcYV`Z#Z24{)g528 z58{s0cv4D~u~o29Y^UK3J+nu3;ZS)yd32nB2N~H))BZ-Exzvj41*rw?7ge;z5Utn_ z*ebQXbd!&6{|;_Xe;w?_SH2xubr7?wIn85C&%e|1(fuwMmwO7s6vsy|-bj_0N66k5 zTJGL_iBy;H z12l_fVoYnh+u=twJTMMYCSt@4YDkSJG9c`+PVDoFCb-)>HSj!MGW1CYph{roG~)?g z6TV6f3BcEXX=JNWTHVf0pDOEokA%y=KiM)`7*{WWap{z#dy*g_=b7EBME(tQD}fr8 z<~!p3_P?O0oMYT1ow2u&nMjBE=B#&tz)$5#9&-T@=*y+`6Bzx5bP*?}Rrd>aHd(wP z;mV!ixg3F8f$$gbG@rL@v;<;@6Lb)F8>t0ILEOWjYm)>3WsoujWqu7}dRDnyVtROh zkT=F}1_S(Ffz?7D#^Wi;S5GI6?L$f7cfeRRq|cl!G@DmrNSaZ;bn)SAVLp%e8t8H; z9mOkY0}3a2jCnZeE96tZNDL3bvp1&&P5pQqA2TBq+bOm4z)-2{l~IR$%KP*qL36Rt z?6m_foYA~K?7jBID`Kv@pyjvznnWTugFMn{3qR&O*UL}z*~_IT#i_I9jmUXUVsrET z{9GjLqU*L3(-k478jV2bz_SS>^S@o>4_e!`KDS~)euUW53s95XNfE$0dv-Qv8PGCA zZ>}RE_G0Q$lEb3mOr*+)-LLykc~{V_UqnQV-At5z*qfO#WgG-n$qT%OSKuzbUHaJK zljYw(Eli*%PD?tb46TBvQkOUn^4=3MmPQF>zQIBkFw^jm*>Jz56GWkV{LxS(3$kYAd*}-v~&oU?o0t*u~>^*b;%L ziPJZ5c8?1cE2J*1nqpEIMNi_?5MZcXS{;+p$Rq5*F>L7_Bn zG@aDp*=AaE_Rs3MSkmCiTY?$Vj5aA_S@s$$G&qv2iG!+%GTf z8`)OsM8S}?olV31(Wk6n-Ekuv8*3+SeD1JWW6NN1!;XolM-+vh>c0mP9Zp+7pRWXX ziDhqRx{{8!efRa8re`{_;VO}P&s(Iq7C(Wx!lZXd2-Nn-?UH6I?NzwfyuC2Q6+VwqXks36!3o_KV zQ`!lnB(4AS^0>h%N6!z@+X=dj<572zni6!e!~H!$)ya6bdQG}{n+qHQj{g&Wa0t5H zJ3X#osg~85N+IVeItBSwlD`}Q&+pcWPCro9mVqVoy~(L^AIfdjz^dJ4#q^Cxr9|X7 ziMr&zj11b+z(@xjeGRy$=9cc;(I8c;C20(Rd*`r86zOu-j0|RDV5;?VHi&y=q`ZJ7 zycqj%0DUR`C4<-C!=SKKr+rMJZ4QKe#&_q+I$n_;#)`29noht?`}(q!!-%h1w@usM z*Kr#4o)PPiM3s1s7nPuM+>bX;?6iFS&)P)-W^O>eZH+bRY)*QS+LbqC)=_p}l&o;2 zJ-&jWO!DvYunm;eem7J*prQMVUeeveaWDvR>IxNi?6iDs`P4a+m*%|Hd^4O((ij&! zkcnkw6jTLi_x++y)b9HGI*sACk7x>A_GzMLzZS30Ypzq+U;n$9pVe#$+?#< zBn*e<^?92nSCL#_4{6R%Kwp=&7Gqt+%M7yXQWr)er8hx}UJV3?y&g8nm$OCTdR>?P zal?^$gM_d@JlUZCzIFtUic83Sd@Cih(pr{bY4v69=4%## zZn-p$#?+u~$V8ON-Wzyf-`Wy7UEKMFiz^| znkGsY0&*^)*rEQ+=sy=ON<3nua2+sm7yK*RUt2Nz81M*CWU?s*;y{l~ip%OYVT2#IH!B^EF@2v_@ECTHoLjoI+oo@4 z_x5}3*ZvxKrpym!I0RAwWEj4*New9r02QeN*|GiUha8{6+?E6$tVj+eZ~2Cj_xh%t;U&^ za7CF!YKEU*>g}P=UyYjiKLCB|tb7LgAhhkIc!oO#cVhfx*mS+4sVQ1s);0t z9)%DY6RF+0DAvbK?*2I)H<}!zcwtpX{HRcqZ|(#PVO_>KvJkW!=E=RofZ_Pgjw0W- z%hJ;Q)%klI@K*s2&?-hWiGnk;Cb>o7k(~)q#|N9Qnv>(RzCL3g0u8((9c6X-NeS+B z>QzhRU6Wv@4)&Z&G0p`VNBZDe@zEOeXUmGyyQROxT9h=2O$Os|vk5wH+}>@+Tgx>( zuT8giP5*Y%9Y4)4ZlIOC9-=FlbV!ALoYbr&SNZ~CZW&w+VSZ2}+Mj2-Z$4-%Wm;?2 zcEg1QMoUI|=4K-u=T2jzGli-ARRck3zmDm&| zYffKu``I~!+l`TJ==nP? z??`FK1;J;$dTEc z3y7x!ygJr|PSmRS%J>_$1%zQLL-YZ3FmkZ7@D2bj69pUsO`rAS?_U*QmKz zYT+~COSo4BQ_f+1!IN! z{ay7Hck@krrB}R~E-yTHO0l3S{xYu(8(m$hXLeURT1gHd1fbvX9{F|W<@OuuFmy+2 z-h1z-vsffsv7y~0fAwjGq=!QBOIXaWd?o_#+4K%cwwVf}i}y`v(CQW5aE1B?uP0T6(CG|CbjF;cWQN|4PczHvRE^G_&M32` zoQtaxg2uSGD76=R?pO2l$|s@gvzOMB9o;!a_HlXX&4X8gosDdTmwqrj=q}6m_cgFo#E1mdP`-bw-gTiQPV)7p^-axfHar9WwB2q$GJpU4rZGQSG(o zxBOP_>pN(;(@mB{x6}8sd4xazRQ8q7fv+gQr{krj5myZW^JupdIhb+V?K(8v?g_$@ zG$cBa#Sse(_AU;wnT{!z;erw1X_n9RgEEKP-IgKtQyWF^E43lOyeeb!BpbNa%L@mZR0e&4Ww%}1`SG)HC9+xO{* z-_aE6)PE8Ik@*dR0fz!p!sLD#Jf(|1<4#-btUEWE8A*B| z@YS^&3C{CN*b^&MbGDk$RrMl{k{d5liRi5^+g}IDiH(m^MOIV0ES?K+m_Cfm2;Cao^p7 z2Ta(=3|LxU9aRN1oWHcbM}Y_tMOOg+XYn&KNG60&Q|v#~x1w=?p5M3b754lN%l@@3 zrOlKr36wz~>|xWIob-H+D+pd32M$mI+H{WR+Swq?LZv=WVCB*r&{w=^ESz z5=cM;zNrS^B+NL2E@fb~1-X1|23BqY0V4n2NfEYZf&dd15cL8&01G`Lqxwf z{Mjo>R69Y4x@A(UrXL@Wr|>*TJUA!D5(UL+ogE_XD}3d*sa4|!X0HK$cU784`}C?V z0UIV#dsVVgJIXElzCx^!>n@|&fvs9>HX8^jP2P@bTIUm7c~04vswK~E11Yta$Bz*$ z->1Y}?3P=#%O{YUdWKndIH~7KQ>e+Y0QUrr+BsTcELf@rR3C!W&*$aWj=73{G%<+- zxW~^x=6F9^wDP;04dp5j%%5+tN^R%1iX-v9E3iB;Po|0 zK>*7CqG`$0Z+@g#hMtf7SM~}vINFjWE+7I(BAe3X2E-JND7%k}F%`y_=L}Z@eu{yp zs0Tx7@WM%!&-aVm2n*lb5aWZy1t4UKCeQ8R0Q)jWBX4v)*bb0zml}Ipbtg1iQOUtZ zP^B3nWkH@owLn?+V^u+FTBG?ExBNl@Ea89!R+eM%HHEgkgjLjQ*aRw`(`62Phk!ky7VMT)IJYfeHvoh?I;KsGb*yrTO5Iy zvt#^PX`wNQ*WjlgNLfzmFU~a$6N_0S0uf4@N+y#3l8Ztiv+d4*=1rV#V>ZQ5`V#_>5{k2UpTR$L?obkpGsC$2QIBS z`&ln#Y_jG^GMB**&Cs(;I`$QovvN2oObe6=!%dO>-Up$jOcSpjnbg5o->cj{ng3!< zEpYE@9K;)Dzh{228g-jI@YtRI1^LBRNTcC7QTrzZvj-QzWoHF`n0MYhFz|EqC`~HB zrbQB{Ik*Rj%qNE{4ys`mY=h-kuHR<*XOl!V(@03xTc4@h-`g^L1ZSiL6;4j~D7A9m zzG0%n1`YaGpYJ@}S{?l(5w}IZ&kNSK4L&}1?zFr>S_T#|b+#bF5@w_}xpV)BK?OnJ zC(VoastK4)>7Czc{IJO#-n-P#z%}#tL723x4HBIbu2@DGbX?g&XUW9UGAei)p%joB z;Nqbv#||$}zC(Y%>IT$cZf_Y&hUby}K0{I9fk8q*qBbGzpXFsL*Ym|S{;>3x;Xn)m zKOhUj%oN-{Bm$>R=A-B9zO#nnFJN&;E1|j%gsH#K7IX0)`xjM%#|e1(%a^$bh}_jN zo7{f*8NW)sXD?VSIa!GQzCJ?G{r8v01e~=@SV>afQb$u76jAOL5-Je!kah!vfIpnm z333>B&}5z$zzGJ_m&QfVQcw*ICh!~av%Banvi7och_CHVEBavO03uJ49HhpS#cPPJ%0l$j$|ALIs`)94dn9T=&A(*y{#wW13=OMH~j%((mL1(Lrh3i9=-Y+j}| zQClOh`wY-n$=Vqlx0S2?5{w+?OWHpB#>bv@gQg~*QnBRn-N?!uw0|J5yG9;2W@;`F zwSPTU=Sy0=%Nlfig8tfuMj^#FSZkFVTrbD2)KB!7mdoT>_321ySf^A@xEkL#z()J_ zBa1UBk@ZZWu7MM@x-85P7-giAO7~Dj$D9?ljil9HM@mDD7W{IH_INmhtHv&7YV7y-=Ksx&WSJ8RnBxELy%rCQitF<0{**w!U_eV;C>jZWy=ch>aDP`a4&XJ&UJ z_z+R#_Rs2}Ps1sG&e>HnO+)$APfU5VGGGR)acv=m0YT4wwx7o?>#MK%Ky_XqHEz)z zW&m7PVt&QaFTaS`1gIgdxC8ihYbcZGVE?~?DCJgbh4?Px}TWv1n4p)X%w(zX0 zc~U}&K%CBa1R5;L?9joX?NkEu2pn`}Sv7T?L$jI4qJ)2Ec3KJFVIS(->NB&H2*MGk zB-Q#8m8ATlJaM8?_{da$H4AxMt!uiYMUyo1OHT2$%xmt%cI}Ff?0=S3w61^n;iqyr7Z393jGK0fqN?w_Nxy`o89btDsKlEG>{v*KXtH z^+A?Y%a8k#UiZ*a34}$($zXJ)$XPXq74eif6y&`q@_Ul6O1(Z zeSx%2Zq0g7w0+s`a}> zMlr3`UDU($;K}NqIt(Y|ia9wbTnq`SPV61SJO8B#!8?WVpbGaNvjn?NbtW+3eG}k_nS1j`upr2T#&}?+wF8-&D)N~%y3!RwW7_`^I1_AUb7)S&DE`a`(#N${(5e4wk&)L3T8V7LM8NL?r-D?X8VTtFk$Zstjda?u z*1^LwMw~&j8;X>S#5*J)tDCE!A3xQHmehwLvyu>Tva*Xfk&!)elsehlWt>wNTJDma zoz7lmuajha$jY9lIL^4caJJ+3eqZ0;a9A4Nc_;meTnp7mg;E4>(S^f&st?=gW6oDV0u=?@a1uxt`}*j z`a#C;xR;Yvt?qBT59azhS)d>&kc=Rq7dPv?L*7{s_{E2+h$HG#|EM=ht&dg>zZ9l1 zh*PPd$ZPDrgq57g^uq5Br9v0*TnTj=vK{Wb2t5jE<${7aKTE%#bk=zYME^H%W2)qZ zZCUm;+UyE<39kF?bNJ|%GdF8Pm4Cgp-L_80XW;E^GjnZCbCOZDLJD;bF23>s@LeaI zfWSXrUx2metH3?gS1D^-OO`Mv1x!uwoE{drAL80z4J4l`wjbsFeidFO#Dx!-ZxITi zkP#5T@BI(J9X{acT{kEkwYoTNX>{^K-1?JFn&hJTHXNN5Q)8{PJvm%eReOMa6ODxL z{~{^}$v~*@UxTCsEK$g*Y=f5G6yW-xL1BuXdkPjV$eDaO?)KM7CLi2|%5m0otx#OE za-@&Q-m?cfa2NFCye*6_O$YFc9EL#RzX6x+sHB1%R*D|}S#M^D$=~`Jp+>Q6g|%R0$|_r;hFXa^yG>5oQDood7Py;IE+6t3CNNy1Xg4Ndp0*Fqo@z}yT#C5T(dEj_-dy4KHc zSyi0MF9+QHd9>p}YR_7045a(~&ng>_jt@x+LhRK4;9}*zlt-KLAs4H;mE@x&7M~g6 z+dvI!jeROt?MhPKDH!hbr{59t6KeguW&;U1eio4Jo3vP+ep-bs&OfskhuM86m4aR- zi$T=GnMbfbOiXfqPq=|}r0MOX7CG)#;kL&nBU8rq*jT(yVBdpKl61dCshDYI7IoUf z*eLnqZB$cdWkz#}+L!Z?Dv%NoaujlZc5>i*$0pFlXwdIGjRhHY5&t?IF0S|vzqIhk zWya5oD3{7g{R{aWsGL4wsOlc}ogHyhIo>2lq1sbvK0zK_AP5{9ih7+CHLVGmU;#mj>kwDt?LAC7I=U4UeBGyzZL>%&b-&3{Fh~hP4f~7QFCA~s z16pHko$!hS_fDR8;>soMvhxsR`@QRc9(=a63;R_095)h*Qqew{_NsiO>K&=wcHv5o zCpB%8%Q-&NK~PbJ$PuOjDssr&N3#=*)zu-dD!ahz=h{P$4%~m6B8?lT+Z0mY0y>Cp zs@1qktnm+Yb$^T`Jv9uxHXovjpX;3TWEXB(N&Lj0{J{`i+dO|M;NguY4--wfM=HBY zgVl$ATeP|QhKkMy6zuwX!j=hfwT%d*h!k-#(5Z&MJ|F_)&EFU^Y%q=`>XBjwupjud z)EnU-Pseri72-{LAik>)DvTu~r2G~RJu91u^RD_DJd5Ri%I8eeDBauc!r0eVZ!QT* z%CU*?EB9Sf5HgC6@TU2k{Q0ISEh;_0p14_w<@gZSR@V~D-AbAn_q;D~>fz&Sth;Cg zEonQWspDE}GnFIY;@2i4i%SWX9(*fIZ9%N#cdsA)M<=-eQ@z)7#PeLINNwJB)oRi$2j(Et@C~+O%8l#3yrW!^P!Ve?`R5{vMDIGnIwLTu>G}YY- zSWnxL5FXYd^}s(n*0?QKTphJv>@M%Gk3J#y+fH5M!` zi+;?h%^*>--3bSn5;fK6@cGFt=w%lpVxY*qpkI;psIBpP(akL(oDw-E*6o{AL>(ji z01)*Fph|3`4OMM+$i2*4vj0Z{MiAW0d@(@V+aB7vP?SR6C-@Zl8*=~iNuuxjsF3=` zpC1MLOad=H&#ZFv;G71gDtdVJ+LA}8lIO6SS6lGjV+;$Sopsfl0}G`-BL@fwDK?+T3h-p(z{t zF;H&AGzdtBv-R9YHw=Vp+SBwo=gZI%EgT0!!rZu!^AmXer!F&s_wK4>3P>g z7?YFI=eD|q8iPT5VlN;kQ6gn1W;W~CH+KTm>Of!q!lI`9ecI=NWd%{%oRC=4;DWv_ ztYrV;uBL{)mJq=(bo1wUb0RP_2LkzVlW*ZkX_c7m`L~hLCK}wWO7>g7EO8+PxGJ`| zD?=iMi<%!}VCufJR^8iqm@qMc~=e~~G z8?7u8gJ!?ox=E*aFV~;b&pq<$phVwO$o9wa%<&}D<945pX5w}hWqq8HC#!)Hb>}Ef zTRN1P{{6SvkL-cgR-`>~|Gx!&Pa_J^8uYp{fvESvSN=Vpy-sjM6*&qSEyBc@Zl!+S_#n0;ZssOsx6uZ-kGkg5pY18_SpDVYDehIvsuBXPyOiR$ z!CnqZ#`W9ly$!ksYxJ&AM#hOpVV!AbPECdngcwIz?U>4|U`$U;n34kwL+00!S2l=D7e1Rh=}OD?b|IWm zGbs)_01S8|&yPXCnD&Qjx`$q@js|M@%L1Zcy4-&9sv_aq+VC~}lQc%;!Q$fW{7g_9 zzYY`;8vn(R2W7rAxMVsMztF4_;ji@-S6unI!8dNX;qk?GzoTrRc-G1B5V-!Vo(vD` z58crwqXotT!@gv=P=5GaiQI=!T0>D=tugt&m&CVBmErJP&O85gtvH{-7} ziD+)=sN&CoT9l4$n@OF=)QAti#Q7cz&nKXkJ@6)W>vaiJf~+CrCuQRkmV@s=Wv4m% z@a=hCIgE#PGJ#+19yU7lperi@Q!`Q>n`Jp1geNyWC!#D)Lahs2O&6*RqD=j*dRL7>?2Msr)5OfRF7nhm z;U5+TtEmp7YHRAg1aI#-!m2#>7|rkM&T|YU>l)2*E%h0RkJXj@U}_05SXq2fO>mFN zwzl)4EV)N2m`d}`c+>Yx9-%q)7Ns4I-;BR;)rGKyXhrN{c4N{ zkD4H(bVCJQ-muT)4XV|#qjkoV*WaGeUx zI3J=;eGhteT2aI<8Iy;p7Oe8kFPa35!L<1&%*#ayVEA2 zN!2-aYzSLIVW_Dss>QBeAaGAaC5$2V;y`2l2D!$O%2?+DY-KxeS&`DecJM5A)h;rQ zDa_Gk*3j5usv3QcwSHiR^;;*oIlG_Hd+j$->dp4J`KSfW)gD{vpe_%}5h3i(S>1_ZG*dPy3F)T{n!%xph3MSSf zErcFyTbcLsI!Fxk?#?n_eyMBD-zIb(j7%pV*^ z+A1-#IOoAEPVUW`DO3u&Vk%}PrbdnjD-N)abH!*!O+$gYylKn~aBVByh34XE(VhsNi@D%xpL))cR|oi#;Np zU5XX^=Ezzkz3v)@(8G=?w3ld*Z%Uyvfj{J%TtTbgSfCiPX>DMC-x=h32vi0L75ge1 zm8W9%HAy#SNQqxyzoSzwHJnHF;%*k(XWy5PZ^K{C6YV+pt8@@;QIEcIk(SQ5%ktMK+1i!{74LU)Po0A{dl6mC1xIc3Eq*)Uayj8H?6 zauFB9Oc=#{)M(If$R1nfApwfk6#Jgtao;|Fxl=a${`6hRu#^m!?Z+f--v+M{Aia(D{Bl`loFln>ah>W2ab_P|qD4 zxKEg}9HxiOe6*|X#ONAnKM$)ia9cKJ#!l_THySevxL%Zh4DreGESI*2e0tiKsFWE? zZxj#evvRZTN5RE&BY~=~L!sS5BX*+#|5SnTVeZ{8F{+CHtzc{P3>INpvyV4K?ar0; zryKtU)F4boc)@0Y(x1N6VPqc^%=3dTUz*EwD*WgL&p%EW0#%W#8fH?6{Bj$T=k4Xf z4N;zlxcQk=Ooq?XZT5MaWvQk(WN05`+rn=q3=~J0A?|f?GXtn;gH2-5axp(g?kyaa z-eu68HC+k58>-Tr+peRx0?@b82lp*g!KTSr{-@a0%J;z4lnG#7DzHSp=D$Ar{PB6N zu4%>RdQZyj>-e`*|2|%E=NIA%0x^Mgh+i!v=^24WUFGP{musg z28!pb()AnfP0?2)lml~F3-I4 zBYGs6z8zG4!Si-GW(7fqE$&%B1t!-T`m^-ntSur*k+ryi0tele(@0=CD8x8b?qp&# zCiy=dRBe)^4?i-+Eq{kg*KAic9lf0EkSlQD?DaRlnHkqnTqr%pHvYuqK6c;A6;N|c z-zon*TX8@idSxw0sU2z<>UZE_T;TeRW%5GaSd{nM@%@Rr=SVk3Gq!;i{MjoBLa@HW z5)vFgmd~}8_cPx4YIvaTqFlBNiQprPvL_QWVZ|EnlXXk9(`T&?QZ>fl99N_`#(uUt zbE)-Wk+_z(^<_IAiw3w%3jhLOFf0Tj8=IvFGeBHH$v>PZVI9!!z-+;x-jwx9vzP0? zuGC7UzfLm$Q~3P?tHBzH91b@p_c1f#4*7b-q`|?#BI*O#o!f)GW~zJS=oBCNrNs8= z2!OE|W>@`pjAdedvFb;BC65Ahy{Qe%K%Dsg{l04XnlaXUykzDPp0o2p8vB){RB{(^ z-4bEiRMsaVL(AD5_IW+iceu-er1w<-^wI{jp>k+*b+$lSW9@=1lxs3*e+vmm&-+1T z*kEkIJ}2x1(+Kp9fyQ~g0!rLu=nKsjz`wZ~QO(SkCZ@)oy7Yc5MJ@i}JJ#eH^zaj8 z&z-epjXg`t;IdqMzhKKDoQCXTr|)DrhEvA9j>Ki%pD^4z1VqSVF%DR5&?n1n$G*Ne zM`i$txcQA1a{9oj-=aW3NqHdoEGm8O2BTyu%~e+hE&%IjAdAPDben1zZcLRF;}N}k zlVl9P=0z$~fG^#F4zS^L@PdKlXw~+v&OZI^5yQHjj*k&q_%;Kj>;5}9qWWjX{-7lr zW-$FbzZ$(J(wFaDNtH@cLrIt)YJ_F99F(% zHZNu%rR`CO-s1b`KgA_{6~8`T~Rt(?RbOeUoS@ezJn{tZ0U zRkqwb#x`omMGUXp9<|6*1sK9^o23!OlC9{zp1a#^+|@(D=MDu}-%%AXU4`G*H;4(9 z2zrQoJbdr^|3D^g!7t)Sz$S#dreiWM3AwUuN73$&gVo@V*+~I)0Ixv_BEqdbQi=26A&}b zId%;A-I0x@ac86|SwAe%@!ihIL~5GtF)-ZrY3a)0Kv6RzS1at{jL<5B2Em2|oHidf zkk3t`5;vD`1i;e}+O4vdKJ{z!wo6?d9W!=3X_z1cT7bu{`t1E37YpvPya)6cGS05Pu5;FIY?g~TO{D6kZ)Ft zs53<=<3&c8{x3?$~vuTpx5#BBuV#qrqw`xX0pw0#=Ozh zOe5bv3z7Oo^jk?&p{p@#O+v*tHPYvO)+Rdmh=Gh$n#S%RtcTd8vHkxu6n({R^g^fc zc*jQ*5=_&l6Tn}BP`pvd!UjfIn`HuZQ}=_9R<;yxWt!t>l1yjhSQKDIj;OEcg;-Y}^! zQ^Ix^yqO3=xV6NsSD6);3URbLU1}jYhzqE<;a5ef`IO|l&coUhKY`8KLZR!r0D8jC zi?>B7_=E-nsIB^-`cy=lmsOt>F~7BBP`9e{6S;()RUjMyc~}eQmfLxt_U?o_u*6O~ zP`1Y6d>-kT|K~Hdq*z`VfOnp;ZAyK*FbV|nM-ze1(g2A+D{K?Ax`?kC7%LxdTJvo` zvqyc;C4g_T2wyGd5rB$HJPt1FwT=AMdxH{>r~`oV1?a;c_^18Ew@jmZnwivfG@!w3 zSxi9;K!S>1Xia|Hq6l|26aC^CK0tHW@yye*7kHi@po5WR0@l^#`+D~sX%Al`Aq)8Sq+JxABrfI;>sQHZ?1e3UlVq`hdtJew@U%hXNULhjC}G6 z6*T2=x?KF?<AjgJ|3QUgeh>Qt+38Yqe|sYY7px%Ntbcoz{ zY<|$(UH@{om6?{P2d+*^K0sg_<-Mh7wYTv*E@iDH!i|HG_u_%Xa1Szwg_9{j#{fmZ znAUxJ_{IKjq>8J|YaJntpv;hyta>hP6wjO^4eFvWh@a9HtTTR7o|4=HKr=N*) z#8d@|OR*bC^(PEk7c1N~!NTPXsg|%My_a7?7|Xv)9vapkJy4!kc5NQ&&I?SUc!X_+ zz$;%Q=7$62)iWlNlIBL*4r%6mS6b!~79zs869-KCUzpOn0u*u|!Tyx0d^45%$T_iq#?qiA(;@|PGYa4DwSqSV&i-Yu@C zcu;Y#0J~{^5nj8yWOS}8%7&TqiYkTamY0{7d1W6trg5!twNH#BEB@0=ajEs9v4+X9 z=RQ;a9-(;l{P7%s8z@_mo(|DeU7X>?f3W;TpX8r;xWu7Tfnf45a&i z+>^V@;N5E|key*0)758z+!U4!@JyIDT5y5-i?1@!9_Y${2Rd3Um0DpjwMq%^#46OU z8YRa2bWC2a@ZgW0{F4#%+rpg%FPD2LV|9wHdE-^l6}Dq-nMbtm{i98Ju>0dpQalpb zDf%nv#*1MD&q_vpgS<;RIZ3Dt^yzy~KhLxo4Xs9Pn?YsM*iIVNt+-W}zw{pY675w+@;0rf$BfTBUxq1x!HdE)HV)K4@IX%b}TJg)UNDKTe22{nr zs>79vzw`6-lpRO%_h+rx005aj0m`Ouu>ShwS+G5G(A?8OGfGsimL5-=f9G~vt zkF`E8???#kgwU+JB{+7M?2kYOZUWkp_p$#v+-?1!R`u>e59!ym50qs)`JUmh;HEV3 z6eRZyAFvsF|B~IyrZI=QRG5U){MFo2HNOy_*Lw*r`nqCAZVHToP?yqD_w7_stF#K; zq8@h+ftp3~2nELI89EGc0jH? z1 zLp+FqEg}8Mz424XN!3X&WW`V7qel9ZK&`~ z-eB)xXd_63`ZA@G3QORf6QC4(iLKSBeTonaLl}cQWd5)&LYZr!(Xnf|a7~EZGjJp9 zkGI2Pbq>5?tzfdl>l31M2+pnsi2?)DX{#T)MJQ|vtz5Wd{NFATGatF0d|Y08Y;X?h8G$J|bwM#Q`ZX0r$Oqw}$!7<)&8P_?(Krn8*Kv z1`(C``q;o&K_*)miuo(wF&{iW#1rJtuLA;aXV%lnCU3p%up0+3L)YI{6XFG3Tx5ad#+5YgYpcR{+bqmo?I$_8Jc}zzq!OnD zG_7g=dAQ4mSNe)p4Z02;9jCJjUIp)~-aCgHknK hyDuU~Ad#Cw;%=z6FOd7rfM7uGXdB)x)^vFO{{TP4244UG literal 0 HcmV?d00001 From bca6857f94a2d66ea90ec5e9d5afba4d53dce1ff Mon Sep 17 00:00:00 2001 From: Long Date: Wed, 20 Oct 2021 14:18:40 +0000 Subject: [PATCH 023/102] feedback Signed-off-by: Long --- daprdocs/content/en/reference/arguments-annotations-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/arguments-annotations-overview.md b/daprdocs/content/en/reference/arguments-annotations-overview.md index 4c3c79067..03c38a42d 100644 --- a/daprdocs/content/en/reference/arguments-annotations-overview.md +++ b/daprdocs/content/en/reference/arguments-annotations-overview.md @@ -22,7 +22,7 @@ This table is meant to help users understand the equivalent options for running | `--dapr-grpc-port` | `--dapr-grpc-port` | | not supported | gRPC port for the Dapr API to listen on (default "50001") | | `--dapr-http-port` | `--dapr-http-port` | | not supported | The HTTP port for the Dapr API | |` --dapr-http-max-request-size` | --dapr-http-max-request-size | | `dapr.io/http-max-request-size` | Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is `4` MB | -| not supported | `--image` | | `dapr.io/sidecar-image` | Dapr sidecar image | +| not supported | `--image` | | `dapr.io/sidecar-image` | Dapr sidecar image. Default is `daprio/daprd:latest` | | `--internal-grpc-port` | not supported | | not supported | gRPC port for the Dapr Internal API to listen on | | `--enable-metrics` | not supported | | configuration spec | Enable prometheus metric (default true) | | `--enable-mtls` | not supported | | configuration spec | Enables automatic mTLS for daprd to daprd communication channels | From 0680f429c3c7de59cdb9feb6f329250d9db4c15d Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Fri, 22 Oct 2021 14:16:01 -0700 Subject: [PATCH 024/102] New GA criteria. Rename GA to Stable. --- .../components/certification-lifecycle.md | 64 +++++++++++++------ .../operations/support/support-versioning.md | 2 +- .../supported-bindings/_index.md | 4 +- .../supported-middleware/_index.md | 2 +- .../supported-name-resolution/_index.md | 4 +- .../supported-pubsub/_index.md | 4 +- .../supported-secret-stores/_index.md | 4 +- .../supported-state-stores/_index.md | 8 +-- 8 files changed, 59 insertions(+), 33 deletions(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index a1f18b264..8688b2701 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -22,7 +22,7 @@ To make sure a component conforms to the standards set by Dapr, there are a set The levels are as follows: - [Alpha](#alpha) - [Beta](#beta) -- [General availability (GA)](#general-availability-ga) +- [Stable](#stable) ### Alpha @@ -42,11 +42,16 @@ All components start at the Alpha stage. - The component contains a record of the conformance test result reviewed and approved by Dapr maintainers with specific components-contrib version - Recommended for only non-business-critical uses because of potential for incompatible changes in subsequent releases -### General Availability (GA) +### Stable -- Has at least two different users using the component in production -- A GA component has a maintainer in the Dapr community or the Dapr maintainers -- The component is well documented, tested and maintained across multiple versions of components-contrib repo +- The component must have component [certification tests](#certification-tests) validating functionality and resiliency +- The component is maintained by Dapr maintainers and supported by the community +- The component is well documented and tested +- A maintainer will address component security, core functionality and test issues according to the Dapr support policy and issue a patch release of Dapr that includes the patched stable component + +### Previous General Available (GA) components + +Any component that was previously certified as GA is now grandfathered into Stable even if the new requirements are not met yet. ## Conformance tests @@ -66,24 +71,45 @@ To understand more about them see the readme [here](https://github.com/dapr/comp - The tests should validate the functional behavior and robustness of component based on the component specification - All the details needed to reproduce the tests are added as part of the component conformance test documentation +## Certification tests + +Each stable component in the [components-contrib](https://github.com/dapr/components-contrib) repository must have a certification test plan and automated certification tests validating all features supported by the component via Dapr. + +Test plan for stable components should include the following scenarios: + +- Client reconnection: in case the client library cannot connect to the service for a moment, Dapr sidecar should not require to be restarted once the service is back online. +- Authentication options: validate the component can authenticate with all the supported options. +- Validate resource provisioning: validate if the component automatically provisions resources on initialization, if applicable. +- All scenarios relevant to the corresponding building block and component. + +The test plan must be approved by a Dapr maintainer and be published in a `README.md` file along with the component code. + +### Test requirements + +- The tests should validate the functional behavior and robustness of component based on the component specification, reflecting the scenarios from the test plan +- The tests must run successfully as part of the continuous integration of `components-contrib` repository + + ## Component certification process For a component to be certified tests are run in an environment maintained by the Dapr team. -### New component certification: Alpha->Beta or Beta->GA +### New component certification: Alpha->Beta -For a new component requiring a certification change from Alpha to Beta or Beta to GA, a request for component certification follows these steps: -- An issue is created with a request for certification of the component with the current and the new certification levels -- A user of a component submits a PR for integrating the component to run with the defined conformance test suite -- The user details the environment setup in the issue created, so that a Dapr maintainer can setup the service in a managed environment -- After the environment setup is complete, Dapr maintainers review the PR and if approved merges that PR -- Dapr maintainers review functional correctness with the test being run in an environment maintained by the Dapr team -- Dapr maintainers update the component status document categorized by Dapr Runtime version. This is done as part of the release process in the next release of Dapr runtime - -### Existing GA certified component - -For an existing GA certified component, conformance test should be run against any changes made to component code or the backing service version or the client version. - -In the scenarios where a component version is updated, the component again starts from Alpha stage and then the new component certification is followed for that. +For a new component requiring a certification change from Alpha to Beta, a request for component certification follows these steps: +- Requestor creates an issue in `components-contrib` repository for certification of the component with the current and the new certification levels +- Requestor submits a PR for integrating the component to run with the defined conformance test suite, if not included already + - The user details the environment setup in the issue created, so that a Dapr maintainer can setup the service in a managed environment + - After the environment setup is complete, Dapr maintainers review the PR and if approved merges that PR +- Requestor submits a PR in `docs` repository, updating the component's certification level +### New component certification: Beta->Stable +For a new component requiring a certification change from Beta to Stable, a request for component certification follows these steps: +- Requestor creates an issue in `components-contrib` repository for certification of the component with the current and the new certification levels +- Requestor submits a PR for the test plan as a `README.md` file in the component's source code directory + - The user details the test environment requirements in the PR created, including any manual steps or credentials needed + - A Dapr maintainer reviews the test plan, giving feedback or approving it and merge the PR +- Requestor submits a PR for the automated certification tests, including scripts to provision resources when applicable +- After the test environment setup is completed and credentials provisioned, Dapr maintainers review the PR and, if approved, merges the PR +- Requestor submits a PR in `docs` repository, updating the component's certification level diff --git a/daprdocs/content/en/operations/support/support-versioning.md b/daprdocs/content/en/operations/support/support-versioning.md index 302936eba..bc30ca04a 100644 --- a/daprdocs/content/en/operations/support/support-versioning.md +++ b/daprdocs/content/en/operations/support/support-versioning.md @@ -55,7 +55,7 @@ Components are implemented in the components-contrib repository and follow a `MA The [components-contrib](https://github.com/dapr/components-contrib/) repo release is a flat version across all components inside. That is, a version for the components-contrib repo release is made up of all the schemas for the components inside it. A new version of Dapr does not mean there is a new release of components-contrib if there are no component changes. -Note: Components have a production usage lifecycle status: Alpha, Beta and GA (stable). These statuses are not related to their versioning. The tables of supported components shows both their versions and their status. +Note: Components have a production usage lifecycle status: Alpha, Beta and Stable. These statuses are not related to their versioning. The tables of supported components shows both their versions and their status. * List of [state store components]({{< ref supported-state-stores.md >}}) * List of [pub/sub components]({{< ref supported-pubsub.md >}}) * List of [secret store components]({{< ref supported-secret-stores.md >}}) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md index 50b314a16..167fe5a22 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md @@ -28,7 +28,7 @@ Table captions: | [Apple Push Notifications (APN)]({{< ref apns.md >}}) | | ✅ | Alpha | v1 | 1.0 | | [Cron (Scheduler)]({{< ref cron.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [GraphQL]({{< ref graghql.md >}}) | | ✅ | Alpha | v1 | 1.0 | -| [HTTP]({{< ref http.md >}}) | | ✅ | GA | v1 | 1.0 | +| [HTTP]({{< ref http.md >}}) | | ✅ | Stable| v1 | 1.0 | | [InfluxDB]({{< ref influxdb.md >}}) | | ✅ | Alpha | v1 | 1.0 | | [Kafka]({{< ref kafka.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [Kubernetes Events]({{< ref "kubernetes-binding.md" >}}) | ✅ | | Alpha | v1 | 1.0 | @@ -80,7 +80,7 @@ Table captions: | [Azure Event Hubs]({{< ref eventhubs.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [Azure Service Bus Queues]({{< ref servicebusqueues.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [Azure SignalR]({{< ref signalr.md >}}) | | ✅ | Alpha | v1 | 1.0 | -| [Azure Storage Queues]({{< ref storagequeues.md >}}) | ✅ | ✅ | GA | v1 | 1.0 | +| [Azure Storage Queues]({{< ref storagequeues.md >}}) | ✅ | ✅ | Stable| v1 | 1.0 | ### Zeebe (Camunda Cloud) diff --git a/daprdocs/content/en/reference/components-reference/supported-middleware/_index.md b/daprdocs/content/en/reference/components-reference/supported-middleware/_index.md index 039ec971e..eb92c4470 100644 --- a/daprdocs/content/en/reference/components-reference/supported-middleware/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-middleware/_index.md @@ -18,4 +18,4 @@ aliases: | [OAuth2 client credentials]({{< ref middleware-oauth2clientcredentials.md >}}) | Enables the [OAuth2 Client Credentials Grant flow](https://tools.ietf.org/html/rfc6749#section-4.4) on a Web API | Alpha | v1| | [Bearer]({{< ref middleware-bearer.md >}}) | Verifies a [Bearer Token](https://tools.ietf.org/html/rfc6750) using [OpenID Connect](https://openid.net/connect/) on a Web API | Alpha | v1| | [Open Policy Agent]({{< ref middleware-opa.md >}}) | Applies [Rego/OPA Policies](https://www.openpolicyagent.org/) to incoming Dapr HTTP requests | Alpha | v1| -| [Uppercase]({{< ref middleware-uppercase.md >}}) | Converts the body of the request to uppercase letters | GA (For local development) | v1| +| [Uppercase]({{< ref middleware-uppercase.md >}}) | Converts the body of the request to uppercase letters | Stable(For local development) | v1| 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 c0c66b074..453aa54f6 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 @@ -21,13 +21,13 @@ The following components provide name resolution for the service invocation buil | Name | Status | Component version | Since | |------|:------:|:-----------------:|:-----:| -| [mDNS]({{< ref nr-mdns.md >}}) | GA | v1 | 1.0 | +| [mDNS]({{< ref nr-mdns.md >}}) | Stable| v1 | 1.0 | ### Kubernetes | Name | Status | Component version | Since | |------------|:------:|:-----------------:|:-----:| -| [Kubernetes]({{< ref nr-kubernetes.md >}}) | GA | v1 | 1.0 | +| [Kubernetes]({{< ref nr-kubernetes.md >}}) | Stable| v1 | 1.0 | ## Definitions diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md index c45c1599d..de99a9088 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md @@ -30,7 +30,7 @@ Table captions: | [JetStream]({{< ref setup-jetstream.md >}}) | Alpha | v1 | 1.4 | | [Pulsar]({{< ref setup-pulsar.md >}}) | Alpha | v1 | 1.0 | | [RabbitMQ]({{< ref setup-rabbitmq.md >}}) | Alpha | v1 | 1.0 | -| [Redis Streams]({{< ref setup-redis-pubsub.md >}}) | GA | v1 | 1.0 | +| [Redis Streams]({{< ref setup-redis-pubsub.md >}}) | Stable | v1 | 1.0 | ### Amazon Web Services (AWS) @@ -49,4 +49,4 @@ Table captions: | Name | Status | Component version | Since | |-----------------------------------------------------------|--------| ----------------| -- | | [Azure Event Hubs]({{< ref setup-azure-eventhubs.md >}}) | Alpha | v1 | 1.0 | -| [Azure Service Bus]({{< ref setup-azure-servicebus.md >}})| GA | v1 | 1.0 | +| [Azure Service Bus]({{< ref setup-azure-servicebus.md >}})| Stable | v1 | 1.0 | diff --git a/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md index 1636dcd3f..a1ee0e89d 100644 --- a/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md @@ -26,7 +26,7 @@ Table captions: | [Local environment variables]({{< ref envvar-secret-store.md >}}) | Beta | v1 | 1.0 | | [Local file]({{< ref file-secret-store.md >}}) | Beta | v1 | 1.0 | | [HashiCorp Vault]({{< ref hashicorp-vault.md >}}) | Alpha | v1 | 1.0 | -| [Kubernetes secrets]({{< ref kubernetes-secret-store.md >}}) | GA | v1 | 1.0 | +| [Kubernetes secrets]({{< ref kubernetes-secret-store.md >}}) | Stable | v1 | 1.0 | ### Amazon Web Services (AWS) @@ -45,4 +45,4 @@ Table captions: | Name | Status | Component version | Since | |---------------------------------------------------------------------------------------|--------| ---- |--------------| -| [Azure Key Vault]({{< ref azure-keyvault.md >}}) | GA | v1 | 1.0 | +| [Azure Key Vault]({{< ref azure-keyvault.md >}}) | Stable | v1 | 1.0 | diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md index 60547031b..d1c03f82d 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md @@ -35,10 +35,10 @@ The following stores are supported, at various levels, by the Dapr state managem | [Hashicorp Consul]({{< ref setup-consul.md >}}) | ✅ | ❌ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | | [Hazelcast]({{< ref setup-hazelcast.md >}}) | ✅ | ❌ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | | [Memcached]({{< ref setup-memcached.md >}}) | ✅ | ❌ | ❌ | ✅ | ❌ | Alpha | v1 | 1.0 | -| [MongoDB]({{< ref setup-mongodb.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | GA | v1 | 1.0 | +| [MongoDB]({{< ref setup-mongodb.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Stable | v1 | 1.0 | | [MySQL]({{< ref setup-mysql.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Alpha | v1 | 1.0 | | [PostgreSQL]({{< ref setup-postgresql.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Alpha | v1 | 1.0 | -| [Redis]({{< ref setup-redis.md >}}) | ✅ | ✅ | ✅ | ✅ | ✅ | GA | v1 | 1.0 | +| [Redis]({{< ref setup-redis.md >}}) | ✅ | ✅ | ✅ | ✅ | ✅ | Stable | v1 | 1.0 | | [RethinkDB]({{< ref setup-rethinkdb.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Alpha | v1 | 1.0 | | [Zookeeper]({{< ref setup-zookeeper.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Alpha | v1 | 1.0 | @@ -57,7 +57,7 @@ The following stores are supported, at various levels, by the Dapr state managem | Name | CRUD | Transactional | ETag | [TTL]({{< ref state-store-ttl.md >}}) | [Actors]({{< ref howto-actors.md >}}) | Status | Component version | Since | |------------------------------------------------------------------|------|---------------------|------|-----|--------|-----|-----|-------| -| [Azure Blob Storage]({{< ref setup-azure-blobstorage.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | GA | v1 | 1.0 | -| [Azure CosmosDB]({{< ref setup-azure-cosmosdb.md >}}) | ✅ | ✅ | ✅ | ✅ | ✅ | GA | v1 | 1.0 | +| [Azure Blob Storage]({{< ref setup-azure-blobstorage.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Stable | v1 | 1.0 | +| [Azure CosmosDB]({{< ref setup-azure-cosmosdb.md >}}) | ✅ | ✅ | ✅ | ✅ | ✅ | Stable | v1 | 1.0 | | [Azure SQL Server]({{< ref setup-sqlserver.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Alpha | v1 | 1.0 | | [Azure Table Storage]({{< ref setup-azure-tablestorage.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Alpha | v1 | 1.0 | From c06c757953fdfa034ad77b3bb62e9c6b610aa732 Mon Sep 17 00:00:00 2001 From: Hossam Kandil Date: Mon, 25 Oct 2021 16:40:59 +0400 Subject: [PATCH 025/102] Add content for Azure CosmosDB Graph dapr#1849 V1.5 --- .../supported-bindings/_index.md | 1 + .../supported-bindings/cosmosgrapdb.md | 59 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 daprdocs/content/en/reference/components-reference/supported-bindings/cosmosgrapdb.md diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md index 50b314a16..12e6569ee 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md @@ -76,6 +76,7 @@ Table captions: |------|:----------------:|:-----------------:|--------| --------- | ---------- | | [Azure Blob Storage]({{< ref blobstorage.md >}}) | | ✅ | Alpha | v1 | 1.0 | | [Azure CosmosDB]({{< ref cosmosdb.md >}}) | | ✅ | Alpha | v1 | 1.0 | +| [Azure CosmosGraphDB]({{< ref cosmosgrapdb.md >}}) | | ✅ | Alpha | v1 | 1.5 | | [Azure Event Grid]({{< ref eventgrid.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [Azure Event Hubs]({{< ref eventhubs.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [Azure Service Bus Queues]({{< ref servicebusqueues.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosgrapdb.md b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosgrapdb.md new file mode 100644 index 000000000..f51789b81 --- /dev/null +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosgrapdb.md @@ -0,0 +1,59 @@ +--- +type: docs +title: "Azure CosmosGraphDB binding spec" +linkTitle: "Azure CosmosGraphDB" +description: "Detailed documentation on the Azure CosmosGraphDB binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/cosmosgraphdb/" +--- + +## Component format + +To setup Azure CosmosGraphDB binding create a component of type `bindings.azure.cosmosgraphdb`. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a binding configuration. + + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: + namespace: +spec: + type: bindings.azure.cosmosgraphdb + version: v1 + metadata: + - name: url + value: wss://******.gremlin.cosmos.azure.com:443/ + - name: masterKey + value: ***** + - name: username + value: ***** + ``` + +{{% 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 | Required | Binding support | Details | Example | +|--------------------|:--------:|--------|---------|---------| +| url | Y | Output | The CosmosGraphDB url | `"wss://******.gremlin.cosmos.azure.com:443/"` | +| masterKey | Y | Output | The CosmosGraphDB account master key | `"masterKey"` | +| database | Y | Output | The username of the CosmosGraphDB database | `"username"` | + +For more information see [Quickstart: Azure Cosmos Graph DB using Gremlin ](https://docs.microsoft.com/en-us/azure/cosmos-db/graph/create-graph-console). + +## Binding support + +This component supports **output binding** with the following operations: + +- `query` + +## Related links + +- [Basic schema for a Dapr component]({{< ref component-schema >}}) +- [Bindings building block]({{< ref bindings >}}) +- [How-To: Trigger application with input binding]({{< ref howto-triggers.md >}}) +- [How-To: Use bindings to interface with external resources]({{< ref howto-bindings.md >}}) +- [Bindings API reference]({{< ref bindings_api.md >}}) From d5397af130a310a646df1ba965eb2ee7f74a659e Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 26 Oct 2021 21:15:16 -0700 Subject: [PATCH 026/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 8688b2701..ab13876ca 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -47,7 +47,7 @@ All components start at the Alpha stage. - The component must have component [certification tests](#certification-tests) validating functionality and resiliency - The component is maintained by Dapr maintainers and supported by the community - The component is well documented and tested -- A maintainer will address component security, core functionality and test issues according to the Dapr support policy and issue a patch release of Dapr that includes the patched stable component +- A maintainer will address component security, core functionality and test issues according to the Dapr support policy and issue a patch release that includes the patched stable component ### Previous General Available (GA) components From 566bb7b90ca7554ec0500f92d3bb678cd7fa0d27 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 26 Oct 2021 21:15:26 -0700 Subject: [PATCH 027/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index ab13876ca..7e84901bc 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -51,7 +51,7 @@ All components start at the Alpha stage. ### Previous General Available (GA) components -Any component that was previously certified as GA is now grandfathered into Stable even if the new requirements are not met yet. +Any component that was previously certified as GA is now grandfathered into Stable even if the new requirements are not met. ## Conformance tests From 5eee24602a7f43efa8e59542f6c47f54d647de73 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 26 Oct 2021 21:15:34 -0700 Subject: [PATCH 028/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 7e84901bc..1ad8e0fbd 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -77,7 +77,7 @@ Each stable component in the [components-contrib](https://github.com/dapr/compon Test plan for stable components should include the following scenarios: -- Client reconnection: in case the client library cannot connect to the service for a moment, Dapr sidecar should not require to be restarted once the service is back online. +- Client reconnection: in case the client library cannot connect to the service for a moment, Dapr sidecar should not require a restart once the service is back online. - Authentication options: validate the component can authenticate with all the supported options. - Validate resource provisioning: validate if the component automatically provisions resources on initialization, if applicable. - All scenarios relevant to the corresponding building block and component. From 093747069851c70c774f0f629b66fb5a1ca7663b Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 26 Oct 2021 21:15:43 -0700 Subject: [PATCH 029/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 1ad8e0fbd..989db6343 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -86,7 +86,7 @@ The test plan must be approved by a Dapr maintainer and be published in a `READM ### Test requirements -- The tests should validate the functional behavior and robustness of component based on the component specification, reflecting the scenarios from the test plan +- The tests should validate the functional behavior and robustness of the component based on the component specification, reflecting the scenarios from the test plan - The tests must run successfully as part of the continuous integration of `components-contrib` repository From 669ffa2e028483bea4b8725eebb033082c3513ae Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 26 Oct 2021 21:15:49 -0700 Subject: [PATCH 030/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 989db6343..3ad61ab4b 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -87,7 +87,7 @@ The test plan must be approved by a Dapr maintainer and be published in a `READM ### Test requirements - The tests should validate the functional behavior and robustness of the component based on the component specification, reflecting the scenarios from the test plan -- The tests must run successfully as part of the continuous integration of `components-contrib` repository +- The tests must run successfully as part of the continuous integration of the `components-contrib` repository ## Component certification process From db2d662ad42dadb3c81aaeb2b29158ea8a863062 Mon Sep 17 00:00:00 2001 From: Simon Leet Date: Wed, 27 Oct 2021 10:40:40 -0700 Subject: [PATCH 031/102] Add message-id to EventHubs components references --- .../supported-bindings/eventhubs.md | 10 ++++++---- .../supported-pubsub/setup-azure-eventhubs.md | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md b/daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md index 813b67644..637939fef 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md @@ -64,13 +64,14 @@ Azure IoT Hub provides an [endpoint that is compatible with Event Hubs](https:// The device-to-cloud events created by Azure IoT Hub devices will contain additional [IoT Hub System Properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-construct#system-properties-of-d2c-iot-hub-messages), and the Azure Event Hubs binding for Dapr will return the following as part of the response metadata: -| System Property Name | Description | -|--------------------|:--------| +| System Property Name | Description & Routing Query Keyword | +|----------------------|:------------------------------------| | `iothub-connection-auth-generation-id` | The **connectionDeviceGenerationId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | -| `iothub-connection-auth-method` | The authentication method used to authenticate the device that sent the message. | +| `iothub-connection-auth-method` | The **connectionAuthMethod** used to authenticate the device that sent the message. | | `iothub-connection-device-id` | The **deviceId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | | `iothub-connection-module-id` | The **moduleId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | -| `iothub-enqueuedtime` | The date and time in RFC3339 format that the device-to-cloud message was received by IoT Hub. | +| `iothub-enqueuedtime` | The **enqueuedTime** in RFC3339 format that the device-to-cloud message was received by IoT Hub. | +| `message-id` | The user-settable AMQP **messageId**. | For example, the headers of a HTTP `Read()` response would contain: @@ -85,6 +86,7 @@ For example, the headers of a HTTP `Read()` response would contain: 'iothub-connection-auth-method': '{"scope":"module","type":"sas","issuer":"iothub","acceptingIpFilterRule":null}', 'iothub-connection-module-id': 'my-test-module-a', 'iothub-enqueuedtime': '2021-07-13T22:08:09Z', + 'message-id': 'my-custom-message-id', 'x-opt-sequence-number': '35', 'x-opt-enqueued-time': '2021-07-13T22:08:09Z', 'x-opt-offset': '21560', diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md index ab1aed4db..4fa681081 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md @@ -64,13 +64,14 @@ Azure IoT Hub provides an [endpoint that is compatible with Event Hubs](https:// The device-to-cloud events created by Azure IoT Hub devices will contain additional [IoT Hub System Properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-construct#system-properties-of-d2c-iot-hub-messages), and the Azure Event Hubs pubsub component for Dapr will return the following as part of the response metadata: -| System Property Name | Description | -|--------------------|:--------| +| System Property Name | Description & Routing Query Keyword | +|----------------------|:------------------------------------| | `iothub-connection-auth-generation-id` | The **connectionDeviceGenerationId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | -| `iothub-connection-auth-method` | The authentication method used to authenticate the device that sent the message. | +| `iothub-connection-auth-method` | The **connectionAuthMethod** used to authenticate the device that sent the message. | | `iothub-connection-device-id` | The **deviceId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | | `iothub-connection-module-id` | The **moduleId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | -| `iothub-enqueuedtime` | The date and time in RFC3339 format that the device-to-cloud message was received by IoT Hub. | +| `iothub-enqueuedtime` | The **enqueuedTime** in RFC3339 format that the device-to-cloud message was received by IoT Hub. | +| `message-id` | The user-settable AMQP **messageId**. | For example, the headers of a delivered HTTP subscription message would contain: @@ -85,6 +86,7 @@ For example, the headers of a delivered HTTP subscription message would contain: 'iothub-connection-auth-method': '{"scope":"module","type":"sas","issuer":"iothub","acceptingIpFilterRule":null}', 'iothub-connection-module-id': 'my-test-module-a', 'iothub-enqueuedtime': '2021-07-13T22:08:09Z', + 'message-id': 'my-custom-message-id', 'x-opt-sequence-number': '35', 'x-opt-enqueued-time': '2021-07-13T22:08:09Z', 'x-opt-offset': '21560', From 23efdbf29ac28bf85ccbe9d23f7b513a2da7d66f Mon Sep 17 00:00:00 2001 From: Long Date: Fri, 17 Sep 2021 14:39:05 +0000 Subject: [PATCH 032/102] troubleshooting: comment how to create pods Signed-off-by: Long --- .../troubleshooting/common_issues.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/daprdocs/content/en/operations/troubleshooting/common_issues.md b/daprdocs/content/en/operations/troubleshooting/common_issues.md index 77d963c80..7aab9d891 100644 --- a/daprdocs/content/en/operations/troubleshooting/common_issues.md +++ b/daprdocs/content/en/operations/troubleshooting/common_issues.md @@ -226,3 +226,26 @@ In order for mDNS to function properly, ensure `Micorosft Content Filter` is ina Microsoft Content Filter is disabled when the output is "Success". > Some organizations will re-enable the filter from time to time. If you repeatedly encounter app-id values missing, first check to see if the filter has been re-enabled before doing more extensive troubleshooting. + +## I can not create a pod + +If you can not create a pod as below: + +```bash +root:[dapr]$ kubectl run -i --tty --rm debug --image=busybox --restart=Never -- sh +Error from server: admission webhook "sidecar-injector.dapr.io" denied the request: service account 'user-xdd5l' not on the list of allowed controller accounts +``` + +You can create a clusterrolebind for a user: + +```bash +kubectl create clusterrolebinding dapr- --clusterrole=dapr-operator-admin --user +``` + +You can run below command to get all users in your cluster: + +```bash +kubectl config get-users +``` + +Then you can enjoy it! From aeed29a8d26b3b14803149bdef437bf7f7a13fc9 Mon Sep 17 00:00:00 2001 From: Long Date: Mon, 27 Sep 2021 15:56:30 +0000 Subject: [PATCH 033/102] feedback Signed-off-by: Long --- .../en/operations/troubleshooting/common_issues.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/daprdocs/content/en/operations/troubleshooting/common_issues.md b/daprdocs/content/en/operations/troubleshooting/common_issues.md index 7aab9d891..295dae0f8 100644 --- a/daprdocs/content/en/operations/troubleshooting/common_issues.md +++ b/daprdocs/content/en/operations/troubleshooting/common_issues.md @@ -227,9 +227,9 @@ Microsoft Content Filter is disabled when the output is "Success". > Some organizations will re-enable the filter from time to time. If you repeatedly encounter app-id values missing, first check to see if the filter has been re-enabled before doing more extensive troubleshooting. -## I can not create a pod +## admission webhook denied the request -If you can not create a pod as below: +If you meet error like below: ```bash root:[dapr]$ kubectl run -i --tty --rm debug --image=busybox --restart=Never -- sh @@ -242,10 +242,8 @@ You can create a clusterrolebind for a user: kubectl create clusterrolebinding dapr- --clusterrole=dapr-operator-admin --user ``` -You can run below command to get all users in your cluster: +You can run the below command to get all users in your cluster: ```bash kubectl config get-users ``` - -Then you can enjoy it! From 039e8abc471dc9abadb4580eca81bedc78a789d6 Mon Sep 17 00:00:00 2001 From: Long Date: Sat, 9 Oct 2021 11:07:13 +0000 Subject: [PATCH 034/102] feedback Signed-off-by: Long --- daprdocs/content/en/operations/troubleshooting/common_issues.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/daprdocs/content/en/operations/troubleshooting/common_issues.md b/daprdocs/content/en/operations/troubleshooting/common_issues.md index 295dae0f8..02d95d2da 100644 --- a/daprdocs/content/en/operations/troubleshooting/common_issues.md +++ b/daprdocs/content/en/operations/troubleshooting/common_issues.md @@ -229,6 +229,8 @@ Microsoft Content Filter is disabled when the output is "Success". ## admission webhook denied the request +This is due to admission webhook has a whitelist for service accounts to create/modify resources. + If you meet error like below: ```bash From 267c49e72c7b6c35ebb95e553ea2008c19d6ae58 Mon Sep 17 00:00:00 2001 From: Long Date: Mon, 25 Oct 2021 16:19:48 +0000 Subject: [PATCH 035/102] feedback Signed-off-by: Long --- .../en/operations/troubleshooting/common_issues.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/daprdocs/content/en/operations/troubleshooting/common_issues.md b/daprdocs/content/en/operations/troubleshooting/common_issues.md index 02d95d2da..650570541 100644 --- a/daprdocs/content/en/operations/troubleshooting/common_issues.md +++ b/daprdocs/content/en/operations/troubleshooting/common_issues.md @@ -229,16 +229,14 @@ Microsoft Content Filter is disabled when the output is "Success". ## admission webhook denied the request -This is due to admission webhook has a whitelist for service accounts to create/modify resources. - -If you meet error like below: +You may encounter an error similar to the one below due to admission webhook having an allowlist for service accounts to create or modify resources. ```bash root:[dapr]$ kubectl run -i --tty --rm debug --image=busybox --restart=Never -- sh Error from server: admission webhook "sidecar-injector.dapr.io" denied the request: service account 'user-xdd5l' not on the list of allowed controller accounts ``` -You can create a clusterrolebind for a user: +You should create a clusterrolebind for current user: ```bash kubectl create clusterrolebinding dapr- --clusterrole=dapr-operator-admin --user @@ -249,3 +247,5 @@ You can run the below command to get all users in your cluster: ```bash kubectl config get-users ``` + +You may learn more about webhooks [here](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/). From f2a3883027f3b3095432236cc46d520a480e3b48 Mon Sep 17 00:00:00 2001 From: Long Date: Thu, 28 Oct 2021 13:49:10 +0000 Subject: [PATCH 036/102] feedback Signed-off-by: Long --- .../content/en/operations/troubleshooting/common_issues.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/operations/troubleshooting/common_issues.md b/daprdocs/content/en/operations/troubleshooting/common_issues.md index 650570541..f63e0d54d 100644 --- a/daprdocs/content/en/operations/troubleshooting/common_issues.md +++ b/daprdocs/content/en/operations/troubleshooting/common_issues.md @@ -227,16 +227,16 @@ Microsoft Content Filter is disabled when the output is "Success". > Some organizations will re-enable the filter from time to time. If you repeatedly encounter app-id values missing, first check to see if the filter has been re-enabled before doing more extensive troubleshooting. -## admission webhook denied the request +## Admission webhook denied the request You may encounter an error similar to the one below due to admission webhook having an allowlist for service accounts to create or modify resources. -```bash +``` root:[dapr]$ kubectl run -i --tty --rm debug --image=busybox --restart=Never -- sh Error from server: admission webhook "sidecar-injector.dapr.io" denied the request: service account 'user-xdd5l' not on the list of allowed controller accounts ``` -You should create a clusterrolebind for current user: +To resolve this error, you should create a `clusterrolebind` for the current user: ```bash kubectl create clusterrolebinding dapr- --clusterrole=dapr-operator-admin --user From adc90b090f55cebf4bca8f30e0fdc7d2f889b383 Mon Sep 17 00:00:00 2001 From: Long Date: Thu, 28 Oct 2021 14:09:20 +0000 Subject: [PATCH 037/102] update Signed-off-by: Long --- daprdocs/content/en/reference/cli/dapr-run.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/daprdocs/content/en/reference/cli/dapr-run.md b/daprdocs/content/en/reference/cli/dapr-run.md index 09b6a77f6..0b4b74868 100644 --- a/daprdocs/content/en/reference/cli/dapr-run.md +++ b/daprdocs/content/en/reference/cli/dapr-run.md @@ -47,6 +47,9 @@ dapr run [flags] [command] # Run a .NET application dapr run --app-id myapp --app-port 5000 -- dotnet run +# Run a .Net application with socket +dapr run --app-id myapp --app-port 5000 --unix-domain-socket /tmp -- dotnet run + # Run a Java application dapr run --app-id myapp -- java -jar myapp.jar @@ -62,9 +65,3 @@ dapr run --app-id myapp # Run a gRPC application written in Go (listening on port 3000) dapr run --app-id myapp --app-port 5000 --app-protocol grpc -- go run main.go ``` - -### Run a .Net application with socket - -```bash -dapr run --app-id myapp --app-port 5000 --enable-unix-socket -- dotnet run -``` From 6f6c5b9c01e2c01c9786bfc6fa40cd20de7d650a Mon Sep 17 00:00:00 2001 From: Phil Kedy Date: Thu, 28 Oct 2021 12:05:46 -0400 Subject: [PATCH 038/102] Adding consumeRetryInterval setting to the Kafka pubsub settings table --- .../components-reference/supported-pubsub/setup-apache-kafka.md | 1 + 1 file changed, 1 insertion(+) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index 91a86b1cd..e029417b1 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -51,6 +51,7 @@ spec: | saslPassword | N | The SASL password used for authentication. Can be `secretKeyRef` to use a [secret reference]({{< ref component-secrets.md >}}). Only required if `authRequired` is set to `"true"`. | `""`, `"KeFg23!"` | initialOffset | N | The initial offset to use if no offset was previously committed. Should be "newest" or "oldest". Defaults to "newest". | `"oldest"` | maxMessageBytes | N | The maximum size in bytes allowed for a single Kafka message. Defaults to 1024. | `2048` +| consumeRetryInterval | N | The interval between retries when attempting to consume topics. Treats numbers without suffix as milliseconds. Defaults to 100ms. | `200ms` ## Per-call metadata fields From c1b648b40e496eea51faeff8ffa2dac3ae69aadf Mon Sep 17 00:00:00 2001 From: Phil Kedy Date: Thu, 28 Oct 2021 13:27:55 -0400 Subject: [PATCH 039/102] Adding consumeRetryInterval to example manifest --- .../components-reference/supported-pubsub/setup-apache-kafka.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index e029417b1..277b738bf 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -37,6 +37,8 @@ spec: key: saslPasswordSecret - name: maxMessageBytes # Optional. value: 1024 + - name: consumeRetryInterval # Optional. + value: 200ms ``` ## Spec metadata fields From ff4ba2365aae6879c15e518b3a73e9159b973fd0 Mon Sep 17 00:00:00 2001 From: Hossam Kandil Date: Fri, 29 Oct 2021 01:15:48 +0400 Subject: [PATCH 040/102] removed unneeded alias --- .../components-reference/supported-bindings/cosmosgrapdb.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosgrapdb.md b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosgrapdb.md index f51789b81..6de4c31b7 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosgrapdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosgrapdb.md @@ -3,8 +3,6 @@ type: docs title: "Azure CosmosGraphDB binding spec" linkTitle: "Azure CosmosGraphDB" description: "Detailed documentation on the Azure CosmosGraphDB binding component" -aliases: - - "/operations/components/setup-bindings/supported-bindings/cosmosgraphdb/" --- ## Component format From ee1a42b745ce24e6e0550127abe95ef397f28cd2 Mon Sep 17 00:00:00 2001 From: zhangchao Date: Fri, 29 Oct 2021 09:23:13 +0800 Subject: [PATCH 041/102] fix review --- .../supported-pubsub/setup-rabbitmq.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md index c9c1c1525..5b5610095 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md @@ -43,6 +43,12 @@ spec: value: "100" - name: backOffMaxRetries value: "16" + - name: enableDeadLetter # Optional enable dead Letter or not + value: "true" + - name: maxLen # Optional max message count in a queue + value: "3000" + - name: maxLenBytes # Optional maximum length in bytes of a queue. + value: "10485760" ``` {{% 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 >}}). @@ -70,8 +76,8 @@ The above example uses secrets as plain strings. It is recommended to use a secr | backOffMultiplier | N | Backoff multiplier for the policy. Increments the interval by multiplying it with the multiplier. Defaults to `"1.5"` | `"1.5"` | | backOffMaxElapsedTime | N | After MaxElapsedTime the ExponentialBackOff returns Stop. There are two valid formats, one is the fraction with a unit suffix format, and the other is the pure digital format that will be processed as milliseconds. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Defaults to `"15m"` | `"15m"` | | enableDeadLetter | N | Enable forwarding Messages that cannot be handled to a dead-letter topic. Defaults to `"false"` | `"true"`, `"false"` | -| maxLen | N | The maximum number of messages of a queue. If both `maxLen` and `maxLenBytes` are set then both will apply; whichever limit is hit first will be enforced. Defaults to no limit | `"1000"` | -| maxLenBytes | N | Maximum length in bytes of a queue. If both `maxLen` and `maxLenBytes` are set then both will apply; whichever limit is hit first will be enforced. Defaults to no limit. | `"1048576"` | +| maxLen | N | The maximum number of messages of a queue and its dead letter queue(if dead leter enabled). If both `maxLen` and `maxLenBytes` are set then both will apply; whichever limit is hit first will be enforced. Defaults to no limit. | `"1000"` | +| maxLenBytes | N | Maximum length in bytes of a queue and its dead letter queue(if dead leter enabled). If both `maxLen` and `maxLenBytes` are set then both will apply; whichever limit is hit first will be enforced. Defaults to no limit. | `"1048576"` | ### Backoff policy introduction From 11c99ab946feb1cb96e244814717de6f2fa109ba Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Fri, 29 Oct 2021 14:04:07 -0700 Subject: [PATCH 042/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 3ad61ab4b..7f0abdeb3 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -99,7 +99,7 @@ For a component to be certified tests are run in an environment maintained by th For a new component requiring a certification change from Alpha to Beta, a request for component certification follows these steps: - Requestor creates an issue in `components-contrib` repository for certification of the component with the current and the new certification levels - Requestor submits a PR for integrating the component to run with the defined conformance test suite, if not included already - - The user details the environment setup in the issue created, so that a Dapr maintainer can setup the service in a managed environment + - The user details the environment setup in the issue created, so a Dapr maintainer can setup the service in a managed environment - After the environment setup is complete, Dapr maintainers review the PR and if approved merges that PR - Requestor submits a PR in `docs` repository, updating the component's certification level From 13e91a25e17e7bdfefba81f78052275db4f8ed88 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Fri, 29 Oct 2021 14:04:31 -0700 Subject: [PATCH 043/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 7f0abdeb3..c56ebeb2c 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -92,7 +92,7 @@ The test plan must be approved by a Dapr maintainer and be published in a `READM ## Component certification process -For a component to be certified tests are run in an environment maintained by the Dapr team. +In order for a component to be certified, tests are run in an environment maintained by the Dapr project. ### New component certification: Alpha->Beta From c6bab3ecea08b8ff66fbb1abb7644bfa6c9dedeb Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Fri, 29 Oct 2021 14:04:46 -0700 Subject: [PATCH 044/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index c56ebeb2c..bba6b1c96 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -101,7 +101,7 @@ For a new component requiring a certification change from Alpha to Beta, a reque - Requestor submits a PR for integrating the component to run with the defined conformance test suite, if not included already - The user details the environment setup in the issue created, so a Dapr maintainer can setup the service in a managed environment - After the environment setup is complete, Dapr maintainers review the PR and if approved merges that PR -- Requestor submits a PR in `docs` repository, updating the component's certification level +- Requestor submits a PR in the `docs` repository, updating the component's certification level ### New component certification: Beta->Stable From 07cd79403986b1aa9338d8f97b20ef1229b53729 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Fri, 29 Oct 2021 14:04:56 -0700 Subject: [PATCH 045/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index bba6b1c96..50bb2b2c7 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -106,7 +106,7 @@ For a new component requiring a certification change from Alpha to Beta, a reque ### New component certification: Beta->Stable For a new component requiring a certification change from Beta to Stable, a request for component certification follows these steps: -- Requestor creates an issue in `components-contrib` repository for certification of the component with the current and the new certification levels +- Requestor creates an issue in the `components-contrib` repository for certification of the component with the current and the new certification levels - Requestor submits a PR for the test plan as a `README.md` file in the component's source code directory - The user details the test environment requirements in the PR created, including any manual steps or credentials needed - A Dapr maintainer reviews the test plan, giving feedback or approving it and merge the PR From f8239a708b8a2f16a0e4ecde5cd6609ca8fc7d15 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Fri, 29 Oct 2021 14:05:07 -0700 Subject: [PATCH 046/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 50bb2b2c7..11e8ae3c4 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -109,7 +109,7 @@ For a new component requiring a certification change from Beta to Stable, a requ - Requestor creates an issue in the `components-contrib` repository for certification of the component with the current and the new certification levels - Requestor submits a PR for the test plan as a `README.md` file in the component's source code directory - The user details the test environment requirements in the PR created, including any manual steps or credentials needed - - A Dapr maintainer reviews the test plan, giving feedback or approving it and merge the PR + - A Dapr maintainer reviews the test plan, giving feedback or approving it and merges the PR - Requestor submits a PR for the automated certification tests, including scripts to provision resources when applicable - After the test environment setup is completed and credentials provisioned, Dapr maintainers review the PR and, if approved, merges the PR - Requestor submits a PR in `docs` repository, updating the component's certification level From 893db7207e5e8be200bf66c0b7a760b787f4be5e Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Fri, 29 Oct 2021 14:05:15 -0700 Subject: [PATCH 047/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 11e8ae3c4..ed088498f 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -112,4 +112,4 @@ For a new component requiring a certification change from Beta to Stable, a requ - A Dapr maintainer reviews the test plan, giving feedback or approving it and merges the PR - Requestor submits a PR for the automated certification tests, including scripts to provision resources when applicable - After the test environment setup is completed and credentials provisioned, Dapr maintainers review the PR and, if approved, merges the PR -- Requestor submits a PR in `docs` repository, updating the component's certification level +- Requestor submits a PR in the `docs` repository, updating the component's certification level From dd84e53aac0c370fc34c0b3f6ba80280d98a6093 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Fri, 29 Oct 2021 14:10:26 -0700 Subject: [PATCH 048/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index ed088498f..4fcef667d 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -97,7 +97,7 @@ In order for a component to be certified, tests are run in an environment mainta ### New component certification: Alpha->Beta For a new component requiring a certification change from Alpha to Beta, a request for component certification follows these steps: -- Requestor creates an issue in `components-contrib` repository for certification of the component with the current and the new certification levels +- Requestor creates an issue in the `components-contrib` repository for certification of the component with the current and the new certification levels - Requestor submits a PR for integrating the component to run with the defined conformance test suite, if not included already - The user details the environment setup in the issue created, so a Dapr maintainer can setup the service in a managed environment - After the environment setup is complete, Dapr maintainers review the PR and if approved merges that PR From f7e9b81686ff47e1c29d475618b850b4f782e1a0 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Fri, 29 Oct 2021 14:10:42 -0700 Subject: [PATCH 049/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 4fcef667d..bfcbb5ee6 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -98,7 +98,7 @@ In order for a component to be certified, tests are run in an environment mainta For a new component requiring a certification change from Alpha to Beta, a request for component certification follows these steps: - Requestor creates an issue in the `components-contrib` repository for certification of the component with the current and the new certification levels -- Requestor submits a PR for integrating the component to run with the defined conformance test suite, if not included already +- Requestor submits a PR to integrate the component with the defined conformance test suite, if not already included - The user details the environment setup in the issue created, so a Dapr maintainer can setup the service in a managed environment - After the environment setup is complete, Dapr maintainers review the PR and if approved merges that PR - Requestor submits a PR in the `docs` repository, updating the component's certification level From ff3a4997a4b8739972869679899e3fc404f818df Mon Sep 17 00:00:00 2001 From: seachen Date: Sat, 30 Oct 2021 08:22:25 +0800 Subject: [PATCH 050/102] (v1.5)feature/pubsub: add delay queue params for pulsar --- .../supported-pubsub/setup-pulsar.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md index 3d636ceea..5f4baf959 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md @@ -36,16 +36,19 @@ spec: ### Delay queue -When invoking the Pulsar pub/sub, its possible to provide an optional delay queue by using the `metadata` query param in the request url. +When invoking the Pulsar pub/sub, it's possible to provide an optional delay queue by using the `metadata` query parameters in the request url. -These param names are `deliverAt` or `deliverAfter`. +These optional parameter names are `metadata.deliverAt` or `metadata.deliverAfter`: +- `deliverAt`: Delay message to deliver at a specified time (RFC3339 format), e.g. `"2021-09-01T10:00:00Z"` +- `deliverAfter`: Delay message to deliver after a specified amount of time, e.g.`"4h5m3s"` | Field | Required | Details | Example | |--------------------|:--------:|---------|---------| | deliverAt | N | delay queue configuration param. use time RFC3339, Default is empty | `"2021-09-01T10:00:00Z"`| | deliverAfter | N | delay queue configuration param. Default is empty | `"4h5m3s"`| -Example: + +Examples: ```shell From 7e495ef27b28170d44e03406a920e42df40658b6 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 2 Nov 2021 15:50:22 -0700 Subject: [PATCH 051/102] Update certification-lifecycle.md --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index bfcbb5ee6..8c6521e3a 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -49,7 +49,7 @@ All components start at the Alpha stage. - The component is well documented and tested - A maintainer will address component security, core functionality and test issues according to the Dapr support policy and issue a patch release that includes the patched stable component -### Previous General Available (GA) components +### Previous Generally Available (GA) components Any component that was previously certified as GA is now grandfathered into Stable even if the new requirements are not met. From 88f3d66599f7c8b2516f17d3cbd254bdb3e4ca59 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 2 Nov 2021 16:47:43 -0700 Subject: [PATCH 052/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: Will --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 8c6521e3a..004d91c5e 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -51,7 +51,7 @@ All components start at the Alpha stage. ### Previous Generally Available (GA) components -Any component that was previously certified as GA is now grandfathered into Stable even if the new requirements are not met. +Any component that was previously certified as GA is allowed into Stable even if the new requirements are not met. ## Conformance tests From e8a80fb86e8ea634b325598cfa41f129ffbc86c4 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 2 Nov 2021 16:48:05 -0700 Subject: [PATCH 053/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: Will --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 004d91c5e..9405730a5 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -108,7 +108,7 @@ For a new component requiring a certification change from Alpha to Beta, a reque For a new component requiring a certification change from Beta to Stable, a request for component certification follows these steps: - Requestor creates an issue in the `components-contrib` repository for certification of the component with the current and the new certification levels - Requestor submits a PR for the test plan as a `README.md` file in the component's source code directory - - The user details the test environment requirements in the PR created, including any manual steps or credentials needed + - The requestor details the test environment requirements in the created PR, including any manual steps or credentials needed - A Dapr maintainer reviews the test plan, giving feedback or approving it and merges the PR - Requestor submits a PR for the automated certification tests, including scripts to provision resources when applicable - After the test environment setup is completed and credentials provisioned, Dapr maintainers review the PR and, if approved, merges the PR From c5c9673f1457a1ccac41817f54d72d196515e5a6 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 2 Nov 2021 16:48:19 -0700 Subject: [PATCH 054/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: Will --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 9405730a5..090bc5c55 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -109,7 +109,7 @@ For a new component requiring a certification change from Beta to Stable, a requ - Requestor creates an issue in the `components-contrib` repository for certification of the component with the current and the new certification levels - Requestor submits a PR for the test plan as a `README.md` file in the component's source code directory - The requestor details the test environment requirements in the created PR, including any manual steps or credentials needed - - A Dapr maintainer reviews the test plan, giving feedback or approving it and merges the PR + - A Dapr maintainer reviews the test plan, provides feedback or approves it, and eventually merges the PR - Requestor submits a PR for the automated certification tests, including scripts to provision resources when applicable - After the test environment setup is completed and credentials provisioned, Dapr maintainers review the PR and, if approved, merges the PR - Requestor submits a PR in the `docs` repository, updating the component's certification level From 91cf710c9bd2577092e7482e4f067928e86674fb Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 2 Nov 2021 16:48:25 -0700 Subject: [PATCH 055/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: Will --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 090bc5c55..3fb1d36c7 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -112,4 +112,4 @@ For a new component requiring a certification change from Beta to Stable, a requ - A Dapr maintainer reviews the test plan, provides feedback or approves it, and eventually merges the PR - Requestor submits a PR for the automated certification tests, including scripts to provision resources when applicable - After the test environment setup is completed and credentials provisioned, Dapr maintainers review the PR and, if approved, merges the PR -- Requestor submits a PR in the `docs` repository, updating the component's certification level +- Requestor submits a PR in the [docs](https://github.com/dapr/docs) repository, updating the component's certification level From 8b7bd7b782d3971cf25152d7d2eac82cac9a8f1c Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 2 Nov 2021 16:48:30 -0700 Subject: [PATCH 056/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: Will --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 3fb1d36c7..b092af7a9 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -87,7 +87,7 @@ The test plan must be approved by a Dapr maintainer and be published in a `READM ### Test requirements - The tests should validate the functional behavior and robustness of the component based on the component specification, reflecting the scenarios from the test plan -- The tests must run successfully as part of the continuous integration of the `components-contrib` repository +- The tests must run successfully as part of the continuous integration of the [components-contrib](https://github.com/dapr/components-contrib) repository ## Component certification process From 7763c9c0368405db3233eb19ab80ae1c244d2fe3 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 2 Nov 2021 16:48:36 -0700 Subject: [PATCH 057/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: Will --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index b092af7a9..6dbc61d82 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -97,7 +97,7 @@ In order for a component to be certified, tests are run in an environment mainta ### New component certification: Alpha->Beta For a new component requiring a certification change from Alpha to Beta, a request for component certification follows these steps: -- Requestor creates an issue in the `components-contrib` repository for certification of the component with the current and the new certification levels +- Requestor creates an issue in the [components-contrib](https://github.com/dapr/components-contrib) repository for certification of the component with the current and the new certification levels - Requestor submits a PR to integrate the component with the defined conformance test suite, if not already included - The user details the environment setup in the issue created, so a Dapr maintainer can setup the service in a managed environment - After the environment setup is complete, Dapr maintainers review the PR and if approved merges that PR From 65ccee0d6430198820fda31d5ae3df9a935eaf79 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 2 Nov 2021 16:48:41 -0700 Subject: [PATCH 058/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: Will --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index 6dbc61d82..bed86895d 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -106,7 +106,7 @@ For a new component requiring a certification change from Alpha to Beta, a reque ### New component certification: Beta->Stable For a new component requiring a certification change from Beta to Stable, a request for component certification follows these steps: -- Requestor creates an issue in the `components-contrib` repository for certification of the component with the current and the new certification levels +- Requestor creates an issue in the [components-contrib](https://github.com/dapr/components-contrib) repository for certification of the component with the current and the new certification levels - Requestor submits a PR for the test plan as a `README.md` file in the component's source code directory - The requestor details the test environment requirements in the created PR, including any manual steps or credentials needed - A Dapr maintainer reviews the test plan, provides feedback or approves it, and eventually merges the PR From 7e824909c0208e7fbb57184ca3c9bb76140703ca Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 2 Nov 2021 16:48:46 -0700 Subject: [PATCH 059/102] Update daprdocs/content/en/operations/components/certification-lifecycle.md Co-authored-by: Will --- .../content/en/operations/components/certification-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/certification-lifecycle.md b/daprdocs/content/en/operations/components/certification-lifecycle.md index bed86895d..8dca1bdc5 100644 --- a/daprdocs/content/en/operations/components/certification-lifecycle.md +++ b/daprdocs/content/en/operations/components/certification-lifecycle.md @@ -101,7 +101,7 @@ For a new component requiring a certification change from Alpha to Beta, a reque - Requestor submits a PR to integrate the component with the defined conformance test suite, if not already included - The user details the environment setup in the issue created, so a Dapr maintainer can setup the service in a managed environment - After the environment setup is complete, Dapr maintainers review the PR and if approved merges that PR -- Requestor submits a PR in the `docs` repository, updating the component's certification level +- Requestor submits a PR in the [docs](https://github.com/dapr/docs) repository, updating the component's certification level ### New component certification: Beta->Stable From cb070a1d6165b3bb732b42d7e24aadbad2e7a26e Mon Sep 17 00:00:00 2001 From: Hossam Kandil Date: Thu, 4 Nov 2021 19:17:21 +0400 Subject: [PATCH 060/102] cosmosdbgremlinapi ouput binding --- .../supported-bindings/_index.md | 2 +- .../{cosmosgrapdb.md => cosmosdbgremlinapi.md} | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) rename daprdocs/content/en/reference/components-reference/supported-bindings/{cosmosgrapdb.md => cosmosdbgremlinapi.md} (63%) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md index 12e6569ee..9f67360bf 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md @@ -76,7 +76,7 @@ Table captions: |------|:----------------:|:-----------------:|--------| --------- | ---------- | | [Azure Blob Storage]({{< ref blobstorage.md >}}) | | ✅ | Alpha | v1 | 1.0 | | [Azure CosmosDB]({{< ref cosmosdb.md >}}) | | ✅ | Alpha | v1 | 1.0 | -| [Azure CosmosGraphDB]({{< ref cosmosgrapdb.md >}}) | | ✅ | Alpha | v1 | 1.5 | +| [Azure CosmosDBGremlinAPI]({{< ref cosmosdbgremlinapi.md >}}) | | ✅ | Alpha | v1 | 1.5 | | [Azure Event Grid]({{< ref eventgrid.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [Azure Event Hubs]({{< ref eventhubs.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [Azure Service Bus Queues]({{< ref servicebusqueues.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosgrapdb.md b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md similarity index 63% rename from daprdocs/content/en/reference/components-reference/supported-bindings/cosmosgrapdb.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md index 6de4c31b7..15529cff8 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosgrapdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md @@ -1,13 +1,13 @@ --- type: docs -title: "Azure CosmosGraphDB binding spec" -linkTitle: "Azure CosmosGraphDB" -description: "Detailed documentation on the Azure CosmosGraphDB binding component" +title: "Azure CosmosDBGremlinAPI binding spec" +linkTitle: "Azure CosmosDBGremlinAPI" +description: "Detailed documentation on the Azure CosmosDBGremlinAPI binding component" --- ## Component format -To setup Azure CosmosGraphDB binding create a component of type `bindings.azure.cosmosgraphdb`. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a binding configuration. +To setup Azure CosmosDBGremlinAPI binding create a component of type `bindings.azure.cosmosdbgremlinapi`. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a binding configuration. ```yaml @@ -17,7 +17,7 @@ metadata: name: namespace: spec: - type: bindings.azure.cosmosgraphdb + type: bindings.azure.cosmosdbgremlinapi version: v1 metadata: - name: url @@ -36,9 +36,9 @@ The above example uses secrets as plain strings. It is recommended to use a secr | Field | Required | Binding support | Details | Example | |--------------------|:--------:|--------|---------|---------| -| url | Y | Output | The CosmosGraphDB url | `"wss://******.gremlin.cosmos.azure.com:443/"` | -| masterKey | Y | Output | The CosmosGraphDB account master key | `"masterKey"` | -| database | Y | Output | The username of the CosmosGraphDB database | `"username"` | +| url | Y | Output | The CosmosDBGremlinAPI url | `"wss://******.gremlin.cosmos.azure.com:443/"` | +| masterKey | Y | Output | The CosmosDBGremlinAPI account master key | `"masterKey"` | +| database | Y | Output | The username of the CosmosDBGremlinAPI database | `"username"` | For more information see [Quickstart: Azure Cosmos Graph DB using Gremlin ](https://docs.microsoft.com/en-us/azure/cosmos-db/graph/create-graph-console). From 9aa98bb378cab76438aac8c3307348e4d0dbcbfa Mon Sep 17 00:00:00 2001 From: Bernd Verst <4535280+berndverst@users.noreply.github.com> Date: Thu, 4 Nov 2021 10:59:02 -0700 Subject: [PATCH 061/102] Add Managed Identity Instructions --- .../supported-secret-stores/azure-keyvault.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md index 06cd6e730..701a862f5 100644 --- a/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md @@ -258,6 +258,42 @@ To use a **certificate**: kubectl apply -f azurekeyvault.yaml ``` +To use **Azure managed identity**: + +1. Ensure your AKS cluster has managed identity enabled and follow the [guide for using managed identities](https://docs.microsoft.com/azure/aks/use-managed-identity). +2. Create an `azurekeyvault.yaml` component file. + + The component yaml refers to the Kubernetes secretstore using `auth` property and `secretKeyRef` refers to the certificate stored in the Kubernetes secret store. + + ```yaml + apiVersion: dapr.io/v1alpha1 + kind: Component + metadata: + name: azurekeyvault + namespace: default + spec: + type: secretstores.azure.keyvault + version: v1 + metadata: + - name: vaultName + value: "[your_keyvault_name]" + +3. Apply the `azurekeyvault.yaml` component: + + ```bash + kubectl apply -f azurekeyvault.yaml + ``` +4. Create and use a managed identity / pod identity by following [this guide](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity#create-a-pod-identity). After creating an AKS pod identity, give this identity read permissions on your desired KeyVault instance, and finally in your application deployment inject the pod identity via a label annotation: + + ```yaml + apiVersion: v1 + kind: Pod + metadata: + name: mydaprdemoapp + labels: + aadpodidbinding: $POD_IDENTITY_NAME + ``` + {{% /codetab %}} {{< /tabs >}} From 465c5cd9f9d7159da46c9d850b821610b63a07c5 Mon Sep 17 00:00:00 2001 From: Bernd Verst <4535280+berndverst@users.noreply.github.com> Date: Thu, 4 Nov 2021 11:03:13 -0700 Subject: [PATCH 062/102] Update azure-keyvault.md --- .../supported-secret-stores/azure-keyvault.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md index 701a862f5..5a00a4c37 100644 --- a/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md @@ -277,13 +277,14 @@ To use **Azure managed identity**: metadata: - name: vaultName value: "[your_keyvault_name]" + ``` 3. Apply the `azurekeyvault.yaml` component: ```bash kubectl apply -f azurekeyvault.yaml ``` -4. Create and use a managed identity / pod identity by following [this guide](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity#create-a-pod-identity). After creating an AKS pod identity, give this identity read permissions on your desired KeyVault instance, and finally in your application deployment inject the pod identity via a label annotation: +4. Create and use a managed identity / pod identity by following [this guide](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity#create-a-pod-identity). After creating an AKS pod identity, [give this identity read permissions on your desired KeyVault instance](https://docs.microsoft.com/azure/key-vault/general/assign-access-policy?tabs=azure-cli#assign-the-access-policy), and finally in your application deployment inject the pod identity via a label annotation: ```yaml apiVersion: v1 From 9f39a4834562abccc797095f9239e6c557f921ba Mon Sep 17 00:00:00 2001 From: Bernd Verst <4535280+berndverst@users.noreply.github.com> Date: Thu, 4 Nov 2021 11:16:26 -0700 Subject: [PATCH 063/102] SQL Server IndexedProperties example Provides correct example of SQL Server IndexedProperties The existing example was syntactically wrong and could never have worked. This makes me question whether anyone has ever used this feature before. --- .../supported-state-stores/setup-sqlserver.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-sqlserver.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-sqlserver.md index 76dec26e9..66d097730 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-sqlserver.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-sqlserver.md @@ -57,7 +57,7 @@ If you wish to use SQL server as an [actor state store]({{< ref "state_api.md#co | keyType | N | The type of key used. Defaults to `"string"` | `"string"` | keyLength | N | The max length of key. Used along with `"string"` keytype. Defaults to `"200"` | `"200"` | schema | N | The schema to use. Defaults to `"dbo"` | `"dapr"`,`"dbo"` -| indexedProperties | N | List of IndexedProperties. | `"[{"ColumnName": "column", "Property": "property", "Type": "type"}]"` +| indexedProperties | N | List of IndexedProperties. | `'[{"column": "transactionid", "property": "id", "type": "int"}, {"column": "customerid", "property": "customer", "type": "nvarchar(100)"}]'` | actorStateStore | N | Indicates that Dapr should configure this component for the actor state store ([more information]({{< ref "state_api.md#configuring-state-store-for-actors" >}})). | `"true"` @@ -65,7 +65,7 @@ If you wish to use SQL server as an [actor state store]({{< ref "state_api.md#co [Follow the instructions](https://docs.microsoft.com/azure/sql-database/sql-database-single-database-get-started?tabs=azure-portal) from the Azure documentation on how to create a SQL database. The database must be created before Dapr consumes it. -**Note: SQL Server state store also supports SQL Server running on VMs.** +**Note: SQL Server state store also supports SQL Server running on VMs and in Docker.** In order to setup SQL Server as a state store, you need the following properties: From e71fb975da3ba620de763c43fb3af05dc9580418 Mon Sep 17 00:00:00 2001 From: Will Tsai Date: Thu, 4 Nov 2021 13:57:57 -0700 Subject: [PATCH 064/102] changing some missed instances of GA to Stable --- .../supported-bindings/_index.md | 2 +- .../supported-middleware/_index.md | 10 +++++++++ .../supported-name-resolution/_index.md | 21 +++++++++---------- .../supported-pubsub/_index.md | 2 +- .../supported-secret-stores/_index.md | 2 +- .../supported-state-stores/_index.md | 2 +- 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md index 167fe5a22..c8f92a57d 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md @@ -17,7 +17,7 @@ Table captions: > `Status`: [Component certification]({{}}) status - [Alpha]({{}}) - [Beta]({{}}) - - [GA]({{}}) + - [Stable]({{}}) > `Since`: defines from which Dapr Runtime version, the component is in the current status > `Component version`: defines the version of the component diff --git a/daprdocs/content/en/reference/components-reference/supported-middleware/_index.md b/daprdocs/content/en/reference/components-reference/supported-middleware/_index.md index eb92c4470..af2c47954 100644 --- a/daprdocs/content/en/reference/components-reference/supported-middleware/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-middleware/_index.md @@ -9,6 +9,16 @@ aliases: - /developing-applications/middleware/supported-middleware/ --- +Table captions: + +> `Status`: [Component certification]({{}}) status + - [Alpha]({{}}) + - [Beta]({{}}) + - [Stable]({{}}) +> `Since`: defines from which Dapr Runtime version, the component is in the current status + +> `Component version`: defines the version of the component + ### HTTP | Name | Description | Status | Component version | 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 453aa54f6..d9a5431e8 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 @@ -7,9 +7,17 @@ description: The supported name resolution providers that interface with Dapr se no_list: true --- -## Supported name resolution components +The following components provide name resolution for the service invocation building block. -The following components provide name resolution for the service invocation building block +Table captions: + +> `Status`: [Component certification]({{}}) status + - [Alpha]({{}}) + - [Beta]({{}}) + - [Stable]({{}}) +> `Since`: defines from which Dapr Runtime version, the component is in the current status + +> `Component version`: defines the version of the component ### Generic @@ -28,12 +36,3 @@ The following components provide name resolution for the service invocation buil | Name | Status | Component version | Since | |------------|:------:|:-----------------:|:-----:| | [Kubernetes]({{< ref nr-kubernetes.md >}}) | Stable| v1 | 1.0 | - -## Definitions - -- **Status**: [component certification]({{}}) status - - [Alpha]({{}}) - - [Beta]({{}}) - - [GA]({{}}) -- **Since**: defines from which Dapr Runtime version, the component is in the current status -- **Component version**: defines the version of the component diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md index de99a9088..27c54f551 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md @@ -14,7 +14,7 @@ Table captions: > `Status`: [Component certification]({{}}) status - [Alpha]({{}}) - [Beta]({{}}) - - [GA]({{}}) + - [Stable]({{}}) > `Since`: defines from which Dapr Runtime version, the component is in the current status > `Component version`: defines the version of the component diff --git a/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md index a1ee0e89d..2d38e5662 100644 --- a/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md @@ -14,7 +14,7 @@ Table captions: > `Status`: [Component certification]({{}}) status - [Alpha]({{}}) - [Beta]({{}}) - - [GA]({{}}) + - [Stable]({{}}) > `Since`: defines from which Dapr Runtime version, the component is in the current status > `Component version`: defines the version of the component diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md index d1c03f82d..dd718f67c 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md @@ -14,7 +14,7 @@ Table captions: > `Status`: [Component certification]({{}}) status - [Alpha]({{}}) - [Beta]({{}}) - - [GA]({{}}) + - [Stable]({{}}) > `Since`: defines from which Dapr Runtime version, the component is in the current status > `Component version`: defines the version of the component From 1695aead1de7daa015fac681c75238d038e219f2 Mon Sep 17 00:00:00 2001 From: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Date: Thu, 4 Nov 2021 14:22:17 -0700 Subject: [PATCH 065/102] Update setup-rabbitmq.md Fix typo --- .../components-reference/supported-pubsub/setup-rabbitmq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md index 5b5610095..ad0c1c040 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md @@ -76,8 +76,8 @@ The above example uses secrets as plain strings. It is recommended to use a secr | backOffMultiplier | N | Backoff multiplier for the policy. Increments the interval by multiplying it with the multiplier. Defaults to `"1.5"` | `"1.5"` | | backOffMaxElapsedTime | N | After MaxElapsedTime the ExponentialBackOff returns Stop. There are two valid formats, one is the fraction with a unit suffix format, and the other is the pure digital format that will be processed as milliseconds. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Defaults to `"15m"` | `"15m"` | | enableDeadLetter | N | Enable forwarding Messages that cannot be handled to a dead-letter topic. Defaults to `"false"` | `"true"`, `"false"` | -| maxLen | N | The maximum number of messages of a queue and its dead letter queue(if dead leter enabled). If both `maxLen` and `maxLenBytes` are set then both will apply; whichever limit is hit first will be enforced. Defaults to no limit. | `"1000"` | -| maxLenBytes | N | Maximum length in bytes of a queue and its dead letter queue(if dead leter enabled). If both `maxLen` and `maxLenBytes` are set then both will apply; whichever limit is hit first will be enforced. Defaults to no limit. | `"1048576"` | +| maxLen | N | The maximum number of messages of a queue and its dead letter queue (if dead letter enabled). If both `maxLen` and `maxLenBytes` are set then both will apply; whichever limit is hit first will be enforced. Defaults to no limit. | `"1000"` | +| maxLenBytes | N | Maximum length in bytes of a queue and its dead letter queue (if dead letter enabled). If both `maxLen` and `maxLenBytes` are set then both will apply; whichever limit is hit first will be enforced. Defaults to no limit. | `"1048576"` | ### Backoff policy introduction From 01c41c556c4983e7c2dfb94f1398893006784314 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Thu, 4 Nov 2021 14:27:40 -0700 Subject: [PATCH 066/102] Update cosmosdbgremlinapi.md --- .../supported-bindings/cosmosdbgremlinapi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md index 15529cff8..3993c2d3b 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md @@ -17,7 +17,7 @@ metadata: name: namespace: spec: - type: bindings.azure.cosmosdbgremlinapi + type: bindings.azure.cosmosdb.gremlinapi version: v1 metadata: - name: url From 81ed7cf5cb85919f36d85cc8a413670eda7bd5da Mon Sep 17 00:00:00 2001 From: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Date: Thu, 4 Nov 2021 14:30:11 -0700 Subject: [PATCH 067/102] Update cosmosdbgremlinapi.md --- .../supported-bindings/cosmosdbgremlinapi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md index 3993c2d3b..f8f7e57d1 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md @@ -7,7 +7,7 @@ description: "Detailed documentation on the Azure CosmosDBGremlinAPI binding com ## Component format -To setup Azure CosmosDBGremlinAPI binding create a component of type `bindings.azure.cosmosdbgremlinapi`. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a binding configuration. +To setup Azure CosmosDBGremlinAPI binding create a component of type `bindings.azure.cosmosdb.gremlinapi`. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a binding configuration. ```yaml From f62c78ab03f652dd39f792ae70492a07dac9dcb2 Mon Sep 17 00:00:00 2001 From: Bernd Verst <4535280+berndverst@users.noreply.github.com> Date: Thu, 4 Nov 2021 15:12:01 -0700 Subject: [PATCH 068/102] Microsoft Docs links should be language neutral --- README.md | 2 +- daprdocs/content/en/concepts/overview.md | 2 +- daprdocs/content/en/concepts/security-concept.md | 2 +- daprdocs/content/en/concepts/terminology.md | 2 +- .../building-blocks/actors/actors-overview.md | 2 +- .../observability/tracing-overview.md | 2 +- .../w3c-tracing/w3c-tracing-howto.md | 8 ++++---- .../building-blocks/pubsub/pubsub-message-ttl.md | 2 +- .../building-blocks/secrets/secrets-overview.md | 2 +- .../query-state-store/query-cosmosdb-store.md | 6 +++--- .../integrations/azure-api-management.md | 4 ++-- .../cloud-providers/authenticating-azure.md | 2 +- .../integrations/workflows.md | 16 ++++++++-------- .../hosting/kubernetes/cluster/setup-aks.md | 4 ++-- .../hosting/kubernetes/cluster/setup-minikube.md | 2 +- .../kubernetes/kubernetes-hybrid-clusters.md | 8 ++++---- .../hosting/kubernetes/kubernetes-overview.md | 2 +- .../en/operations/monitoring/logging/logs.md | 2 +- .../monitoring/metrics/azure-monitor.md | 10 +++++----- .../open-telemetry-collector-appinsights.md | 2 +- daprdocs/content/en/operations/security/oauth.md | 2 +- .../supported-bindings/cosmosdb.md | 2 +- .../supported-bindings/cosmosdbgremlinapi.md | 2 +- .../supported-bindings/eventgrid.md | 6 +++--- .../supported-bindings/eventhubs.md | 16 ++++++++-------- .../supported-bindings/redis.md | 2 +- .../supported-bindings/signalr.md | 2 +- .../supported-pubsub/setup-azure-eventhubs.md | 16 ++++++++-------- .../supported-pubsub/setup-azure-servicebus.md | 4 ++-- .../supported-pubsub/setup-redis-pubsub.md | 2 +- .../supported-secret-stores/azure-keyvault.md | 2 +- .../setup-azure-blobstorage.md | 4 ++-- .../setup-azure-cosmosdb.md | 2 +- .../setup-azure-tablestorage.md | 4 ++-- 34 files changed, 74 insertions(+), 74 deletions(-) diff --git a/README.md b/README.md index 4997d48e5..f89b015f6 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Before making your first contribution, make sure to review the [contributing sec ## Overview -The Dapr docs are built using [Hugo](https://gohugo.io/) with the [Docsy](https://docsy.dev) theme, hosted on an [Azure Static Web App](https://docs.microsoft.com/en-us/azure/static-web-apps/overview). +The Dapr docs are built using [Hugo](https://gohugo.io/) with the [Docsy](https://docsy.dev) theme, hosted on an [Azure Static Web App](https://docs.microsoft.com/azure/static-web-apps/overview). The [daprdocs](./daprdocs) directory contains the hugo project, markdown files, and theme configurations. diff --git a/daprdocs/content/en/concepts/overview.md b/daprdocs/content/en/concepts/overview.md index 328a5399e..4a882ce0e 100644 --- a/daprdocs/content/en/concepts/overview.md +++ b/daprdocs/content/en/concepts/overview.md @@ -99,7 +99,7 @@ Dapr can be used from any developer framework. Here are some that have been inte | Language | Frameworks | Description | |----------|------------|-------------| -| [.NET]({{< ref dotnet >}}) | [ASP.NET]({{< ref dotnet-aspnet.md >}}) | Brings stateful routing controllers that respond to pub/sub events from other services. Can also take advantage of [ASP.NET Core gRPC Services](https://docs.microsoft.com/en-us/aspnet/core/grpc/). +| [.NET]({{< ref dotnet >}}) | [ASP.NET]({{< ref dotnet-aspnet.md >}}) | Brings stateful routing controllers that respond to pub/sub events from other services. Can also take advantage of [ASP.NET Core gRPC Services](https://docs.microsoft.com/aspnet/core/grpc/). | [Java]({{< ref java >}}) | [Spring Boot](https://spring.io/) | [Python]({{< ref python >}}) | [Flask]({{< ref python-flask.md >}}) | [Javascript](https://github.com/dapr/js-sdk) | [Express](http://expressjs.com/) diff --git a/daprdocs/content/en/concepts/security-concept.md b/daprdocs/content/en/concepts/security-concept.md index 480b3ba3c..605d4f058 100644 --- a/daprdocs/content/en/concepts/security-concept.md +++ b/daprdocs/content/en/concepts/security-concept.md @@ -99,7 +99,7 @@ Dapr uses the configured authentication method to authenticate with the underlyi When deploying on Kubernetes, you can use regular [Kubernetes RBAC]( https://kubernetes.io/docs/reference/access-authn-authz/rbac/) to control access to management activities. -When deploying on Azure Kubernetes Service (AKS), you can use [Azure Active Directory (AD) service principals]( https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals) to control access to management activities and resource management. +When deploying on Azure Kubernetes Service (AKS), you can use [Azure Active Directory (AD) service principals]( https://docs.microsoft.com/azure/active-directory/develop/app-objects-and-service-principals) to control access to management activities and resource management. ## Threat model Threat modeling is a process by which potential threats, such as structural vulnerabilities or the absence of appropriate safeguards, can be identified and enumerated, and mitigations can be prioritized. The Dapr threat model is below. diff --git a/daprdocs/content/en/concepts/terminology.md b/daprdocs/content/en/concepts/terminology.md index ce9273d12..a9bd4f54e 100644 --- a/daprdocs/content/en/concepts/terminology.md +++ b/daprdocs/content/en/concepts/terminology.md @@ -18,4 +18,4 @@ This page details all of the common terms you may come across in the Dapr docs. | Dapr control plane | A collection of services that are part of a Dapr installation on a hosting platform such as a Kubernetes cluster. This allows Dapr-enabled applications to run on the platform and handles Dapr capabilities such as actor placement, Dapr sidecar injection, or certificate issuance/rollover. | [Self-hosted overview]({{< ref self-hosted-overview >}})
[Kubernetes overview]({{< ref kubernetes-overview >}}) | Self-hosted | Windows/macOS/Linux machine(s) where you can run your applications with Dapr. Dapr provides the capability to run on machines in "self-hosted" mode. | [Self-hosted mode]({{< ref self-hosted-overview.md >}}) | Service | A running application or binary. This can refer to your application or to a Dapr application. -| Sidecar | A program that runs alongside your application as a separate process or container. | [Sidecar pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar) +| Sidecar | A program that runs alongside your application as a separate process or container. | [Sidecar pattern](https://docs.microsoft.com/azure/architecture/patterns/sidecar) diff --git a/daprdocs/content/en/developing-applications/building-blocks/actors/actors-overview.md b/daprdocs/content/en/developing-applications/building-blocks/actors/actors-overview.md index b6f91db65..ad501ec60 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/actors/actors-overview.md +++ b/daprdocs/content/en/developing-applications/building-blocks/actors/actors-overview.md @@ -15,7 +15,7 @@ While your code processes a message, it can send one or more messages to other a A large number of actors can execute simultaneously, and actors execute independently from each other. -Dapr includes a runtime that specifically implements the [Virtual Actor pattern](https://www.microsoft.com/en-us/research/project/orleans-virtual-actors/). With Dapr's implementation, you write your Dapr actors according to the Actor model, and Dapr leverages the scalability and reliability guarantees that the underlying platform provides. +Dapr includes a runtime that specifically implements the [Virtual Actor pattern](https://www.microsoft.com/research/project/orleans-virtual-actors/). With Dapr's implementation, you write your Dapr actors according to the Actor model, and Dapr leverages the scalability and reliability guarantees that the underlying platform provides. ### When to use actors diff --git a/daprdocs/content/en/developing-applications/building-blocks/observability/tracing-overview.md b/daprdocs/content/en/developing-applications/building-blocks/observability/tracing-overview.md index 675de7764..9bfa61019 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/observability/tracing-overview.md +++ b/daprdocs/content/en/developing-applications/building-blocks/observability/tracing-overview.md @@ -6,7 +6,7 @@ weight: 1000 description: "Use Dapr tracing to get visibility for distributed application" --- -Dapr uses the Zipkin protocol for distributed traces and metrics collection. Due to the ubiquity of the Zipkin protocol, many backends are supported out of the box, for examples [Stackdriver](https://cloud.google.com/stackdriver), [Zipkin](https://zipkin.io), [New Relic](https://newrelic.com) and others. Combining with the OpenTelemetry Collector, Dapr can export traces to many other backends including but not limted to [Azure Monitor](https://azure.microsoft.com/en-us/services/monitor/), [Datadog](https://www.datadoghq.com), Instana, [Jaeger](https://www.jaegertracing.io/), and [SignalFX](https://www.signalfx.com/). +Dapr uses the Zipkin protocol for distributed traces and metrics collection. Due to the ubiquity of the Zipkin protocol, many backends are supported out of the box, for examples [Stackdriver](https://cloud.google.com/stackdriver), [Zipkin](https://zipkin.io), [New Relic](https://newrelic.com) and others. Combining with the OpenTelemetry Collector, Dapr can export traces to many other backends including but not limted to [Azure Monitor](https://azure.microsoft.com/services/monitor/), [Datadog](https://www.datadoghq.com), Instana, [Jaeger](https://www.jaegertracing.io/), and [SignalFX](https://www.signalfx.com/). diff --git a/daprdocs/content/en/developing-applications/building-blocks/observability/w3c-tracing/w3c-tracing-howto.md b/daprdocs/content/en/developing-applications/building-blocks/observability/w3c-tracing/w3c-tracing-howto.md index 99f26ba18..145b9cd59 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/observability/w3c-tracing/w3c-tracing-howto.md +++ b/daprdocs/content/en/developing-applications/building-blocks/observability/w3c-tracing/w3c-tracing-howto.md @@ -47,7 +47,7 @@ client.InvokeService(ctx, &pb.InvokeServiceRequest{ ### Retrieve trace context in C# #### For HTTP calls -To retrieve the trace context from HTTP response, you can use [.NET API](https://docs.microsoft.com/en-us/dotnet/api/system.net.http.headers.httpresponseheaders?view=netcore-3.1) : +To retrieve the trace context from HTTP response, you can use [.NET API](https://docs.microsoft.com/dotnet/api/system.net.http.headers.httpresponseheaders?view=netcore-3.1) : ```csharp // client is HttpClient. req is HttpRequestMessage @@ -75,7 +75,7 @@ var response = await call.ResponseAsync; var headers = await call.ResponseHeadersAsync(); var tracecontext = headers.First(e => e.Key == "grpc-trace-bin"); ``` -Additional general details on calling gRPC services with .NET client [here](https://docs.microsoft.com/en-us/aspnet/core/grpc/client?view=aspnetcore-3.1). +Additional general details on calling gRPC services with .NET client [here](https://docs.microsoft.com/aspnet/core/grpc/client?view=aspnetcore-3.1). ## How to propagate trace context in a request `Note: There are no helper methods exposed in Dapr SDKs to propagate and retrieve trace context. You need to use http/gRPC clients to propagate and retrieve trace headers through http headers and gRPC metadata.` @@ -109,7 +109,7 @@ You can then continuing passing this go context `ctx` in subsequent Dapr gRPC ca ### Pass trace context in C# #### For HTTP calls -To pass trace context in HTTP request, you can use [.NET API](https://docs.microsoft.com/en-us/dotnet/api/system.net.http.headers.httprequestheaders?view=netcore-3.1) : +To pass trace context in HTTP request, you can use [.NET API](https://docs.microsoft.com/dotnet/api/system.net.http.headers.httprequestheaders?view=netcore-3.1) : ```csharp // client is HttpClient. req is HttpRequestMessage @@ -127,7 +127,7 @@ var headers = new Metadata(); headers.Add("grpc-trace-bin", tracecontext); using var call = client.InvokeServiceAsync(req, headers); ``` -Additional general details on calling gRPC services with .NET client [here](https://docs.microsoft.com/en-us/aspnet/core/grpc/client?view=aspnetcore-3.1). +Additional general details on calling gRPC services with .NET client [here](https://docs.microsoft.com/aspnet/core/grpc/client?view=aspnetcore-3.1). ## How to create trace context You can create a trace context using the recommended OpenCensus SDKs. OpenCensus supports several different programming languages. diff --git a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-message-ttl.md b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-message-ttl.md index 881908210..e2c998996 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-message-ttl.md +++ b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-message-ttl.md @@ -22,7 +22,7 @@ When message time-to-live has native support in the pub/sub component, Dapr simp #### Azure Service Bus -Azure Service Bus supports [entity level time-to-live](https://docs.microsoft.com/en-us/azure/service-bus-messaging/message-expiration). This means that messages have a default time-to-live but can also be set with a shorter timespan at publishing time. Dapr propagates the time-to-live metadata for the message and lets Azure Service Bus handle the expiration directly. +Azure Service Bus supports [entity level time-to-live](https://docs.microsoft.com/azure/service-bus-messaging/message-expiration). This means that messages have a default time-to-live but can also be set with a shorter timespan at publishing time. Dapr propagates the time-to-live metadata for the message and lets Azure Service Bus handle the expiration directly. ## Non-Dapr subscribers diff --git a/daprdocs/content/en/developing-applications/building-blocks/secrets/secrets-overview.md b/daprdocs/content/en/developing-applications/building-blocks/secrets/secrets-overview.md index f7490c38b..83516a008 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/secrets/secrets-overview.md +++ b/daprdocs/content/en/developing-applications/building-blocks/secrets/secrets-overview.md @@ -34,7 +34,7 @@ Applications can use the secrets API to access secrets from a Kubernetes secret -In Azure Dapr can be configured to use Managed Identities to authenticate with Azure Key Vault in order to retrieve secrets. In the example below, an Azure Kubernetes Service (AKS) cluster is configured to use managed identities. Then Dapr uses [pod identities](https://docs.microsoft.com/en-us/azure/aks/operator-best-practices-identity#use-pod-identities) to retrieve secrets from Azure Key Vault on behalf of the application. +In Azure Dapr can be configured to use Managed Identities to authenticate with Azure Key Vault in order to retrieve secrets. In the example below, an Azure Kubernetes Service (AKS) cluster is configured to use managed identities. Then Dapr uses [pod identities](https://docs.microsoft.com/azure/aks/operator-best-practices-identity#use-pod-identities) to retrieve secrets from Azure Key Vault on behalf of the application. diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/query-state-store/query-cosmosdb-store.md b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-state-store/query-cosmosdb-store.md index 385968847..a181905c8 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/state-management/query-state-store/query-cosmosdb-store.md +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-state-store/query-cosmosdb-store.md @@ -8,13 +8,13 @@ description: "Use Azure Cosmos DB as a backend state store" Dapr doesn't transform state values while saving and retrieving states. Dapr requires all state store implementations to abide by a certain key format scheme (see [Dapr state management spec]({{< ref state_api.md >}}). You can directly interact with the underlying store to manipulate the state data, such querying states, creating aggregated views and making backups. -> **NOTE:** Azure Cosmos DB is a multi-modal database that supports multiple APIs. The default Dapr Cosmos DB state store implementation uses the [Azure Cosmos DB SQL API](https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-getting-started). +> **NOTE:** Azure Cosmos DB is a multi-modal database that supports multiple APIs. The default Dapr Cosmos DB state store implementation uses the [Azure Cosmos DB SQL API](https://docs.microsoft.com/azure/cosmos-db/sql-query-getting-started). ## 1. Connect to Azure Cosmos DB -The easiest way to connect to your Cosmos DB instance is to use the Data Explorer on [Azure Management Portal](https://portal.azure.com). Alternatively, you can use [various SDKs and tools](https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-introduction). +The easiest way to connect to your Cosmos DB instance is to use the Data Explorer on [Azure Management Portal](https://portal.azure.com). Alternatively, you can use [various SDKs and tools](https://docs.microsoft.com/azure/cosmos-db/mongodb-introduction). -> **NOTE:** The following samples use Cosmos DB [SQL API](https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-getting-started). When you configure an Azure Cosmos DB for Dapr, you need to specify the exact database and collection to use. The follow samples assume you've already connected to the right database and a collection named "states". +> **NOTE:** The following samples use Cosmos DB [SQL API](https://docs.microsoft.com/azure/cosmos-db/sql-query-getting-started). When you configure an Azure Cosmos DB for Dapr, you need to specify the exact database and collection to use. The follow samples assume you've already connected to the right database and a collection named "states". ## 2. List keys by App ID diff --git a/daprdocs/content/en/developing-applications/integrations/azure-api-management.md b/daprdocs/content/en/developing-applications/integrations/azure-api-management.md index 4c0babdb7..ea908b5d6 100644 --- a/daprdocs/content/en/developing-applications/integrations/azure-api-management.md +++ b/daprdocs/content/en/developing-applications/integrations/azure-api-management.md @@ -6,6 +6,6 @@ description: "Publish APIs for Dapr services and components through Azure API Ma weight: 6000 --- -Azure API Management (APIM) is a way to create consistent and modern API gateways for back-end services, including as those built with Dapr. Dapr support can be enabled in self-hosted API Management gateways to allow them to forward requests to Dapr services, send messages to Dapr Pub/Sub topics, or trigger Dapr output bindings. For more information, read the guide on [API Management Dapr Integration policies](https://docs.microsoft.com/en-us/azure/api-management/api-management-dapr-policies) and try out the [Dapr & Azure API Management Integration Demo](https://github.com/dapr/samples/tree/master/dapr-apim-integration). +Azure API Management (APIM) is a way to create consistent and modern API gateways for back-end services, including as those built with Dapr. Dapr support can be enabled in self-hosted API Management gateways to allow them to forward requests to Dapr services, send messages to Dapr Pub/Sub topics, or trigger Dapr output bindings. For more information, read the guide on [API Management Dapr Integration policies](https://docs.microsoft.com/azure/api-management/api-management-dapr-policies) and try out the [Dapr & Azure API Management Integration Demo](https://github.com/dapr/samples/tree/master/dapr-apim-integration). -{{< button text="Learn more" link="https://docs.microsoft.com/en-us/azure/api-management/api-management-dapr-policies" >}} +{{< button text="Learn more" link="https://docs.microsoft.com/azure/api-management/api-management-dapr-policies" >}} diff --git a/daprdocs/content/en/developing-applications/integrations/cloud-providers/authenticating-azure.md b/daprdocs/content/en/developing-applications/integrations/cloud-providers/authenticating-azure.md index 169585228..bc4250ed5 100644 --- a/daprdocs/content/en/developing-applications/integrations/cloud-providers/authenticating-azure.md +++ b/daprdocs/content/en/developing-applications/integrations/cloud-providers/authenticating-azure.md @@ -206,7 +206,7 @@ Note that the value above is the ID of the **Service Principal** which is differ Keep in mind that the Service Principal that was just created does not have access to any Azure resource by default. Access will need to be granted to each resource as needed, as documented in the docs for the components. -> Note: this step is different from the [official documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) as the short-hand commands included there create a Service Principal that has broad read-write access to all Azure resources in your subscription. +> Note: this step is different from the [official documentation](https://docs.microsoft.com/cli/azure/create-an-azure-service-principal-azure-cli) as the short-hand commands included there create a Service Principal that has broad read-write access to all Azure resources in your subscription. > Not only doing that would grant our Service Principal more access than you are likely going to desire, but this also applies only to the Azure management plane (Azure Resource Manager, or ARM), which is irrelevant for Dapr anyways (all Azure components are designed to interact with the data plane of various services, and not ARM). ### Example usage in a Dapr component diff --git a/daprdocs/content/en/developing-applications/integrations/workflows.md b/daprdocs/content/en/developing-applications/integrations/workflows.md index 7261e5ddf..9be34efab 100644 --- a/daprdocs/content/en/developing-applications/integrations/workflows.md +++ b/daprdocs/content/en/developing-applications/integrations/workflows.md @@ -6,7 +6,7 @@ description: "Learn how to build workflows using Dapr Workflows and Logic Apps" weight: 4000 --- -Dapr Workflows is a lightweight host that allows developers to run cloud-native workflows locally, on-premises or any cloud environment using the [Azure Logic Apps](https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-overview) workflow engine and Dapr. +Dapr Workflows is a lightweight host that allows developers to run cloud-native workflows locally, on-premises or any cloud environment using the [Azure Logic Apps](https://docs.microsoft.com/azure/logic-apps/logic-apps-overview) workflow engine and Dapr. ## Benefits @@ -31,21 +31,21 @@ Once a workflow request comes in, Dapr Workflows uses the Logic Apps SDK to exec ### Supported actions and triggers -- [HTTP](https://docs.microsoft.com/en-us/azure/connectors/connectors-native-http) -- [Schedule](https://docs.microsoft.com/en-us/azure/logic-apps/concepts-schedule-automated-recurring-tasks-workflows) -- [Request / Response](https://docs.microsoft.com/en-us/azure/connectors/connectors-native-reqres) +- [HTTP](https://docs.microsoft.com/azure/connectors/connectors-native-http) +- [Schedule](https://docs.microsoft.com/azure/logic-apps/concepts-schedule-automated-recurring-tasks-workflows) +- [Request / Response](https://docs.microsoft.com/azure/connectors/connectors-native-reqres) ### Supported control workflows -- [All control workflows](https://docs.microsoft.com/en-us/azure/connectors/apis-list#control-workflow) +- [All control workflows](https://docs.microsoft.com/azure/connectors/apis-list#control-workflow) ### Supported data manipulation -- [All data operations](https://docs.microsoft.com/en-us/azure/connectors/apis-list#manage-or-manipulate-data) +- [All data operations](https://docs.microsoft.com/azure/connectors/apis-list#manage-or-manipulate-data) ### Not supported -- [Managed connectors](https://docs.microsoft.com/en-us/azure/connectors/apis-list#managed-connectors) +- [Managed connectors](https://docs.microsoft.com/azure/connectors/apis-list#managed-connectors) ## Example @@ -67,7 +67,7 @@ Since Dapr supports many pluggable state stores and bindings, the workflow becom Prerequisites: 1. Install the [Dapr CLI]({{< ref install-dapr-cli.md >}}) -2. [Azure blob storage account](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-create-account-block-blob?tabs=azure-portal) +2. [Azure blob storage account](https://docs.microsoft.com/azure/storage/blobs/storage-blob-create-account-block-blob?tabs=azure-portal) ### Self-hosted diff --git a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-aks.md b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-aks.md index 0323ba208..71d65ef0d 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-aks.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-aks.md @@ -13,11 +13,11 @@ description: > - [Docker](https://docs.docker.com/install/) - [kubectl](https://kubernetes.io/docs/tasks/tools/) -- [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest) +- [Azure CLI](https://docs.microsoft.com/cli/azure/install-azure-cli?view=azure-cli-latest) ## Deploy an Azure Kubernetes Service cluster -This guide walks you through installing an Azure Kubernetes Service cluster. If you need more information, refer to [Quickstart: Deploy an Azure Kubernetes Service (AKS) cluster using the Azure CLI](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough) +This guide walks you through installing an Azure Kubernetes Service cluster. If you need more information, refer to [Quickstart: Deploy an Azure Kubernetes Service (AKS) cluster using the Azure CLI](https://docs.microsoft.com/azure/aks/kubernetes-walkthrough) 1. Login to Azure diff --git a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md index 09762c9fd..3880e4fa9 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md @@ -15,7 +15,7 @@ description: > - [kubectl](https://kubernetes.io/docs/tasks/tools/) - [Minikube](https://minikube.sigs.k8s.io/docs/start/) -> Note: For Windows, enable Virtualization in BIOS and [install Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) +> Note: For Windows, enable Virtualization in BIOS and [install Hyper-V](https://docs.microsoft.com/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) ## Start the Minikube cluster diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-hybrid-clusters.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-hybrid-clusters.md index 34d7c905b..f74b5410b 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-hybrid-clusters.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-hybrid-clusters.md @@ -16,7 +16,7 @@ You will need a Kubernetes cluster with Windows nodes. Many Kubernetes providers 1. Follow your preferred provider's instructions for setting up a cluster with Windows enabled -- [Setting up Windows on Azure AKS](https://docs.microsoft.com/en-us/azure/aks/windows-container-cli) +- [Setting up Windows on Azure AKS](https://docs.microsoft.com/azure/aks/windows-container-cli) - [Setting up Windows on AWS EKS](https://docs.aws.amazon.com/eks/latest/userguide/windows-support.html) - [Setting up Windows on Google Cloud GKE](https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-cluster-windows) @@ -49,7 +49,7 @@ helm install dapr dapr/dapr --set global.daprControlPlaneOs=windows ## Installing Dapr applications ### Windows applications -In order to launch a Dapr application on Windows, you'll first need to create a Docker container with your application installed. For a step by step guide see [Get started: Prep Windows for containers](https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment). Once you have a docker container with your application, create a deployment YAML file with node affinity set to kubernetes.io/os: windows. +In order to launch a Dapr application on Windows, you'll first need to create a Docker container with your application installed. For a step by step guide see [Get started: Prep Windows for containers](https://docs.microsoft.com/virtualization/windowscontainers/quick-start/set-up-environment). Once you have a docker container with your application, create a deployment YAML file with node affinity set to kubernetes.io/os: windows. 1. Create a deployment YAML @@ -162,8 +162,8 @@ helm uninstall dapr ## Related links - See the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/) for examples of more advanced configuration via node affinity -- [Get started: Prep Windows for containers](https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment) -- [Setting up a Windows enabled Kubernetes cluster on Azure AKS](https://docs.microsoft.com/en-us/azure/aks/windows-container-cli) +- [Get started: Prep Windows for containers](https://docs.microsoft.com/virtualization/windowscontainers/quick-start/set-up-environment) +- [Setting up a Windows enabled Kubernetes cluster on Azure AKS](https://docs.microsoft.com/azure/aks/windows-container-cli) - [Setting up a Windows enabled Kubernetes cluster on AWS EKS](https://docs.aws.amazon.com/eks/latest/userguide/windows-support.html) - [Setting up Windows on Google Cloud GKE](https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-cluster-windows) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md index 9199021a4..9db873941 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md @@ -38,7 +38,7 @@ Dapr works seamlessly with any user application container image, regardless of i The Dapr control-plane and sidecar images come from the [daprio Docker Hub](https://hub.docker.com/u/daprio) container registry, which is a public registry. -For information about pulling your application images from a private registry, reference the [Kubernetes documentation](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/). If you are using Azure Container Registry with Azure Kubernetes Service, reference the [AKS documentation](https://docs.microsoft.com/en-us/azure/aks/cluster-container-registry-integration). +For information about pulling your application images from a private registry, reference the [Kubernetes documentation](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/). If you are using Azure Container Registry with Azure Kubernetes Service, reference the [AKS documentation](https://docs.microsoft.com/azure/aks/cluster-container-registry-integration). ## Quickstart diff --git a/daprdocs/content/en/operations/monitoring/logging/logs.md b/daprdocs/content/en/operations/monitoring/logging/logs.md index 131e4a78e..9b2c5b8d2 100644 --- a/daprdocs/content/en/operations/monitoring/logging/logs.md +++ b/daprdocs/content/en/operations/monitoring/logging/logs.md @@ -94,7 +94,7 @@ If you are using the Azure Kubernetes Service, you can use the default OMS Agent If you use [Fluentd](https://www.fluentd.org/), we recommend to using Elastic Search and Kibana. This [how-to]({{< ref fluentd.md >}}) shows how to set up Elastic Search and Kibana in your Kubernetes cluster. -If you are using the Azure Kubernetes Service, you can use [Azure monitor for containers](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-overview) without indstalling any additional monitoring tools. Also read [How to enable Azure Monitor for containers](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-onboard) +If you are using the Azure Kubernetes Service, you can use [Azure monitor for containers](https://docs.microsoft.com/azure/azure-monitor/insights/container-insights-overview) without indstalling any additional monitoring tools. Also read [How to enable Azure Monitor for containers](https://docs.microsoft.com/azure/azure-monitor/insights/container-insights-onboard) ## References diff --git a/daprdocs/content/en/operations/monitoring/metrics/azure-monitor.md b/daprdocs/content/en/operations/monitoring/metrics/azure-monitor.md index c253d4f42..51ef6f759 100644 --- a/daprdocs/content/en/operations/monitoring/metrics/azure-monitor.md +++ b/daprdocs/content/en/operations/monitoring/metrics/azure-monitor.md @@ -8,8 +8,8 @@ description: "Enable Dapr metrics and logs with Azure Monitor for Azure Kubernet ## Prerequisites -- [Azure Kubernetes Service](https://docs.microsoft.com/en-us/azure/aks/) -- [Enable Azure Monitor For containers in AKS](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-overview) +- [Azure Kubernetes Service](https://docs.microsoft.com/azure/aks/) +- [Enable Azure Monitor For containers in AKS](https://docs.microsoft.com/azure/azure-monitor/insights/container-insights-overview) - [kubectl](https://kubernetes.io/docs/tasks/tools/) - [Helm 3](https://helm.sh/) @@ -127,6 +127,6 @@ InsightsMetrics # References -* [Configure scraping of Prometheus metrics with Azure Monitor for containers](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-prometheus-integration) -* [Configure agent data collection for Azure Monitor for containers](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-agent-config) -* [Azure Monitor Query](https://docs.microsoft.com/en-us/azure/azure-monitor/log-query/query-language) +* [Configure scraping of Prometheus metrics with Azure Monitor for containers](https://docs.microsoft.com/azure/azure-monitor/insights/container-insights-prometheus-integration) +* [Configure agent data collection for Azure Monitor for containers](https://docs.microsoft.com/azure/azure-monitor/insights/container-insights-agent-config) +* [Azure Monitor Query](https://docs.microsoft.com/azure/azure-monitor/log-query/query-language) diff --git a/daprdocs/content/en/operations/monitoring/tracing/open-telemetry-collector-appinsights.md b/daprdocs/content/en/operations/monitoring/tracing/open-telemetry-collector-appinsights.md index 080742e05..bab5568af 100644 --- a/daprdocs/content/en/operations/monitoring/tracing/open-telemetry-collector-appinsights.md +++ b/daprdocs/content/en/operations/monitoring/tracing/open-telemetry-collector-appinsights.md @@ -17,7 +17,7 @@ A installation of Dapr on Kubernetes. ### Setup Application Insights 1. First, you'll need an Azure account. See instructions [here](https://azure.microsoft.com/free/) to apply for a **free** Azure account. -2. Follow instructions [here](https://docs.microsoft.com/en-us/azure/azure-monitor/app/create-new-resource) to create a new Application Insights resource. +2. Follow instructions [here](https://docs.microsoft.com/azure/azure-monitor/app/create-new-resource) to create a new Application Insights resource. 3. Get the Application Insights Intrumentation key from your Application Insights page. ### Run OpenTelemetry Collector to push to your Application Insights instance diff --git a/daprdocs/content/en/operations/security/oauth.md b/daprdocs/content/en/operations/security/oauth.md index 637fa1eac..797d27397 100644 --- a/daprdocs/content/en/operations/security/oauth.md +++ b/daprdocs/content/en/operations/security/oauth.md @@ -16,7 +16,7 @@ The main difference between the two flows is that the `Authorization Code Grant Different authorization servers provide different application registration experiences. Here are some samples: -* [Azure AAD](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code) +* [Azure AAD](https://docs.microsoft.com/azure/active-directory/develop/v1-protocols-oauth-code) * [Facebook](https://developers.facebook.com/apps) * [Fitbit](https://dev.fitbit.com/build/reference/web-api/oauth2/) * [GitHub](https://developer.github.com/apps/building-oauth-apps/creating-an-oauth-app/) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdb.md b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdb.md index 5be9e865f..163fe8d3d 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdb.md @@ -48,7 +48,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr | collection | Y | Output | The name of the container inside the database. | `"Orders"` | | partitionKey | Y | Output | The name of the partitionKey to extract from the payload and is used in the container | `"OrderId"`, `"message"` | -For more information see [Azure Cosmos DB resource model](https://docs.microsoft.com/en-us/azure/cosmos-db/account-databases-containers-items). +For more information see [Azure Cosmos DB resource model](https://docs.microsoft.com/azure/cosmos-db/account-databases-containers-items). ## Binding support diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md index f8f7e57d1..599525949 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdbgremlinapi.md @@ -40,7 +40,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr | masterKey | Y | Output | The CosmosDBGremlinAPI account master key | `"masterKey"` | | database | Y | Output | The username of the CosmosDBGremlinAPI database | `"username"` | -For more information see [Quickstart: Azure Cosmos Graph DB using Gremlin ](https://docs.microsoft.com/en-us/azure/cosmos-db/graph/create-graph-console). +For more information see [Quickstart: Azure Cosmos Graph DB using Gremlin ](https://docs.microsoft.com/azure/cosmos-db/graph/create-graph-console). ## Binding support diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/eventgrid.md b/daprdocs/content/en/reference/components-reference/supported-bindings/eventgrid.md index 874139735..d422a19c7 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/eventgrid.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/eventgrid.md @@ -11,7 +11,7 @@ aliases: To setup Azure Event Grid binding create a component of type `bindings.azure.eventgrid`. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a binding configuration. -See [this](https://docs.microsoft.com/en-us/azure/event-grid/) for Azure Event Grid documentation. +See [this](https://docs.microsoft.com/azure/event-grid/) for Azure Event Grid documentation. ```yml apiVersion: dapr.io/v1alpha1 @@ -83,7 +83,7 @@ This component supports **output binding** with the following operations: - `create` ## Additional information -Event Grid Binding creates an [event subscription](https://docs.microsoft.com/en-us/azure/event-grid/concepts#event-subscriptions) when Dapr initializes. Your Service Principal needs to have the RBAC permissions to enable this. +Event Grid Binding creates an [event subscription](https://docs.microsoft.com/azure/event-grid/concepts#event-subscriptions) when Dapr initializes. Your Service Principal needs to have the RBAC permissions to enable this. ```bash # First ensure that Azure Resource Manager provider is registered for Event Grid @@ -137,7 +137,7 @@ helm install nginx-ingress ingress-nginx/ingress-nginx -f ./dapr-annotations.yam kubectl get svc -l component=controller -o jsonpath='Public IP is: {.items[0].status.loadBalancer.ingress[0].ip}{"\n"}' ``` -If deploying to Azure Kubernetes Service, you can follow [the official MS documentation for rest of the steps](https://docs.microsoft.com/en-us/azure/aks/ingress-tls) +If deploying to Azure Kubernetes Service, you can follow [the official MS documentation for rest of the steps](https://docs.microsoft.com/azure/aks/ingress-tls) - Add an A record to your DNS zone - Install cert-manager - Create a CA cluster issuer diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md b/daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md index 637939fef..bb87afbf3 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md @@ -11,7 +11,7 @@ aliases: To setup Azure Event Hubs binding create a component of type `bindings.azure.eventhubs`. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a binding configuration. -See [this](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-dotnet-framework-getstarted-send) for instructions on how to set up an Event Hub. +See [this](https://docs.microsoft.com/azure/event-hubs/event-hubs-dotnet-framework-getstarted-send) for instructions on how to set up an Event Hub. ```yaml apiVersion: dapr.io/v1alpha1 @@ -45,8 +45,8 @@ The above example uses secrets as plain strings. It is recommended to use a secr | Field | Required | Binding support | Details | Example | |--------------------|:--------:|------------|-----|---------| -| connectionString | Y | Output | The [EventHubs connection string](https://docs.microsoft.com/en-us/azure/event-hubs/authorize-access-shared-access-signature). Note that this is the EventHub itself and not the EventHubs namespace. Make sure to use the child EventHub shared access policy connection string | `"Endpoint=sb://****"` | -| consumerGroup | Y | Output | The name of an [EventHubs Consumer Group](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-features#consumer-groups) to listen on | `"group1"` | +| connectionString | Y | Output | The [EventHubs connection string](https://docs.microsoft.com/azure/event-hubs/authorize-access-shared-access-signature). Note that this is the EventHub itself and not the EventHubs namespace. Make sure to use the child EventHub shared access policy connection string | `"Endpoint=sb://****"` | +| consumerGroup | Y | Output | The name of an [EventHubs Consumer Group](https://docs.microsoft.com/azure/event-hubs/event-hubs-features#consumer-groups) to listen on | `"group1"` | | storageAccountName | Y | Output | The name of the account of the Azure Storage account to persist checkpoints data on | `"accountName"` | | storageAccountKey | Y | Output | The account key for the Azure Storage account to persist checkpoints data on | `"accountKey"` | | storageContainerName | Y | Output | The name of the container in the Azure Storage account to persist checkpoints data on | `"contianerName"` | @@ -60,16 +60,16 @@ This component supports **output binding** with the following operations: ## Input Binding to Azure IoT Hub Events -Azure IoT Hub provides an [endpoint that is compatible with Event Hubs](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-read-builtin#read-from-the-built-in-endpoint), so Dapr apps can create input bindings to read Azure IoT Hub events using the Event Hubs bindings component. +Azure IoT Hub provides an [endpoint that is compatible with Event Hubs](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messages-read-builtin#read-from-the-built-in-endpoint), so Dapr apps can create input bindings to read Azure IoT Hub events using the Event Hubs bindings component. -The device-to-cloud events created by Azure IoT Hub devices will contain additional [IoT Hub System Properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-construct#system-properties-of-d2c-iot-hub-messages), and the Azure Event Hubs binding for Dapr will return the following as part of the response metadata: +The device-to-cloud events created by Azure IoT Hub devices will contain additional [IoT Hub System Properties](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messages-construct#system-properties-of-d2c-iot-hub-messages), and the Azure Event Hubs binding for Dapr will return the following as part of the response metadata: | System Property Name | Description & Routing Query Keyword | |----------------------|:------------------------------------| -| `iothub-connection-auth-generation-id` | The **connectionDeviceGenerationId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | +| `iothub-connection-auth-generation-id` | The **connectionDeviceGenerationId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | | `iothub-connection-auth-method` | The **connectionAuthMethod** used to authenticate the device that sent the message. | -| `iothub-connection-device-id` | The **deviceId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | -| `iothub-connection-module-id` | The **moduleId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | +| `iothub-connection-device-id` | The **deviceId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | +| `iothub-connection-module-id` | The **moduleId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | | `iothub-enqueuedtime` | The **enqueuedTime** in RFC3339 format that the device-to-cloud message was received by IoT Hub. | | `message-id` | The user-settable AMQP **messageId**. | diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/redis.md b/daprdocs/content/en/reference/components-reference/supported-bindings/redis.md index e07ec5d5e..a1facc8eb 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/redis.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/redis.md @@ -119,7 +119,7 @@ You can use [Helm](https://helm.sh/) to quickly create a Redis instance in our K {{% /codetab %}} {{% codetab %}} -[Azure Redis](https://docs.microsoft.com/en-us/azure/azure-cache-for-redis/quickstart-create-redis) +[Azure Redis](https://docs.microsoft.com/azure/azure-cache-for-redis/quickstart-create-redis) {{% /codetab %}} {{< /tabs >}} diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/signalr.md b/daprdocs/content/en/reference/components-reference/supported-bindings/signalr.md index e840a91d9..62d4ffdd5 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/signalr.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/signalr.md @@ -73,7 +73,7 @@ Applications publishing to an Azure SignalR output binding should send a message } ``` -For more information on integration Azure SignalR into a solution check the [documentation](https://docs.microsoft.com/en-us/azure/azure-signalr/) +For more information on integration Azure SignalR into a solution check the [documentation](https://docs.microsoft.com/azure/azure-signalr/) ## Related links diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md index 4fa681081..1af3cd062 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md @@ -46,10 +46,10 @@ The above example uses secrets as plain strings. It is recommended to use a secr ## Create an Azure Event Hub -Follow the instructions [here](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-create) on setting up Azure Event Hubs. -Since this implementation uses the Event Processor Host, you will also need an [Azure Storage Account](https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal). Follow the instructions [here](https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage) to manage the storage account access keys. +Follow the instructions [here](https://docs.microsoft.com/azure/event-hubs/event-hubs-create) on setting up Azure Event Hubs. +Since this implementation uses the Event Processor Host, you will also need an [Azure Storage Account](https://docs.microsoft.com/azure/storage/common/storage-account-create?tabs=azure-portal). Follow the instructions [here](https://docs.microsoft.com/azure/storage/common/storage-account-keys-manage) to manage the storage account access keys. -See [here](https://docs.microsoft.com/en-us/azure/event-hubs/authorize-access-shared-access-signature) on how to get the Event Hubs connection string. Note this is not the Event Hubs namespace. +See [here](https://docs.microsoft.com/azure/event-hubs/authorize-access-shared-access-signature) on how to get the Event Hubs connection string. Note this is not the Event Hubs namespace. ### Create consumer groups for each subscriber @@ -60,16 +60,16 @@ Note: Dapr passes the name of the Consumer group to the EventHub and so this is ## Subscribing to Azure IoT Hub Events -Azure IoT Hub provides an [endpoint that is compatible with Event Hubs](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-read-builtin#read-from-the-built-in-endpoint), so the Azure Event Hubs pubsub component can also be used to subscribe to Azure IoT Hub events. +Azure IoT Hub provides an [endpoint that is compatible with Event Hubs](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messages-read-builtin#read-from-the-built-in-endpoint), so the Azure Event Hubs pubsub component can also be used to subscribe to Azure IoT Hub events. -The device-to-cloud events created by Azure IoT Hub devices will contain additional [IoT Hub System Properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-construct#system-properties-of-d2c-iot-hub-messages), and the Azure Event Hubs pubsub component for Dapr will return the following as part of the response metadata: +The device-to-cloud events created by Azure IoT Hub devices will contain additional [IoT Hub System Properties](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messages-construct#system-properties-of-d2c-iot-hub-messages), and the Azure Event Hubs pubsub component for Dapr will return the following as part of the response metadata: | System Property Name | Description & Routing Query Keyword | |----------------------|:------------------------------------| -| `iothub-connection-auth-generation-id` | The **connectionDeviceGenerationId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | +| `iothub-connection-auth-generation-id` | The **connectionDeviceGenerationId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | | `iothub-connection-auth-method` | The **connectionAuthMethod** used to authenticate the device that sent the message. | -| `iothub-connection-device-id` | The **deviceId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | -| `iothub-connection-module-id` | The **moduleId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | +| `iothub-connection-device-id` | The **deviceId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | +| `iothub-connection-module-id` | The **moduleId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). | | `iothub-enqueuedtime` | The **enqueuedTime** in RFC3339 format that the device-to-cloud message was received by IoT Hub. | | `message-id` | The user-settable AMQP **messageId**. | diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md index ee3def3da..a15c2c309 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md @@ -116,11 +116,11 @@ In addition to the [settable metadata listed above](#sending-a-message-with-meta - `metadata.EnqueuedTimeUtc` - `metadata.SequenceNumber` -To find out more details on the purpose of any of these metadata properties, please refer to [the official Azure Service Bus documentation](https://docs.microsoft.com/en-us/rest/api/servicebus/message-headers-and-properties#message-headers). +To find out more details on the purpose of any of these metadata properties, please refer to [the official Azure Service Bus documentation](https://docs.microsoft.com/rest/api/servicebus/message-headers-and-properties#message-headers). ## Create an Azure Service Bus -Follow the instructions [here](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-topics-subscriptions-portal) on setting up Azure Service Bus Topics. +Follow the instructions [here](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-quickstart-topics-subscriptions-portal) on setting up Azure Service Bus Topics. ## Related links - [Basic schema for a Dapr component]({{< ref component-schema >}}) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md index 9b5787a98..f313296da 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md @@ -117,7 +117,7 @@ You can use [Helm](https://helm.sh/) to quickly create a Redis instance in our K {{% /codetab %}} {{% codetab %}} -[Azure Redis](https://docs.microsoft.com/en-us/azure/azure-cache-for-redis/quickstart-create-redis) +[Azure Redis](https://docs.microsoft.com/azure/azure-cache-for-redis/quickstart-create-redis) {{% /codetab %}} {{< /tabs >}} diff --git a/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md index 06cd6e730..086b36a75 100644 --- a/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md @@ -265,7 +265,7 @@ To use a **certificate**: ## References - [Authenticating to Azure]({{< ref authenticating-azure.md >}}) -- [Azure CLI: keyvault commands](https://docs.microsoft.com/en-us/cli/azure/keyvault?view=azure-cli-latest#az-keyvault-create) +- [Azure CLI: keyvault commands](https://docs.microsoft.com/cli/azure/keyvault?view=azure-cli-latest#az-keyvault-create) - [Secrets building block]({{< ref secrets >}}) - [How-To: Retrieve a secret]({{< ref "howto-secrets.md" >}}) - [How-To: Reference secrets in Dapr components]({{< ref component-secrets.md >}}) diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-blobstorage.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-blobstorage.md index b51aae9d8..9f054ddca 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-blobstorage.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-blobstorage.md @@ -50,7 +50,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr ## Setup Azure Blob Storage -[Follow the instructions](https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal) from the Azure documentation on how to create an Azure Storage Account. +[Follow the instructions](https://docs.microsoft.com/azure/storage/common/storage-account-create?tabs=azure-portal) from the Azure documentation on how to create an Azure Storage Account. If you wish to create a container for Dapr to use, you can do so beforehand. However, the Blob Storage state provider will create one for you automatically if it doesn't exist. @@ -155,7 +155,7 @@ This creates the blob file in the container with `key` as filename and `value` a ## Concurrency -Azure Blob Storage state concurrency is achieved by using `ETag`s according to [the Azure Blob Storage documentation](https://docs.microsoft.com/en-us/azure/storage/common/storage-concurrency#managing-concurrency-in-blob-storage). +Azure Blob Storage state concurrency is achieved by using `ETag`s according to [the Azure Blob Storage documentation](https://docs.microsoft.com/azure/storage/common/storage-concurrency#managing-concurrency-in-blob-storage). ## Related links diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-cosmosdb.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-cosmosdb.md index 1fb20d5d5..db53ee78b 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-cosmosdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-cosmosdb.md @@ -54,7 +54,7 @@ If you wish to use CosmosDb as an actor store, append the following to the yaml. ## Setup Azure Cosmos DB -[Follow the instructions](https://docs.microsoft.com/en-us/azure/cosmos-db/how-to-manage-database-account) from the Azure documentation on how to create an Azure CosmosDB account. The database and collection must be created in CosmosDB before Dapr can use it. +[Follow the instructions](https://docs.microsoft.com/azure/cosmos-db/how-to-manage-database-account) from the Azure documentation on how to create an Azure CosmosDB account. The database and collection must be created in CosmosDB before Dapr can use it. **Note : The partition key for the collection must be named "/partitionKey". Note: this is case-sensitive.** diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-tablestorage.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-tablestorage.md index 42f881cb4..b4ddc309f 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-tablestorage.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-tablestorage.md @@ -43,7 +43,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr ## Setup Azure Table Storage -[Follow the instructions](https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal) from the Azure documentation on how to create an Azure Storage Account. +[Follow the instructions](https://docs.microsoft.com/azure/storage/common/storage-account-create?tabs=azure-portal) from the Azure documentation on how to create an Azure Storage Account. If you wish to create a table for Dapr to use, you can do so beforehand. However, Table Storage state provider will create one for you automatically if it doesn't exist. @@ -79,7 +79,7 @@ will create the following record in a table: ## Concurrency -Azure Table Storage state concurrency is achieved by using `ETag`s according to [the official documentation]( https://docs.microsoft.com/en-us/azure/storage/common/storage-concurrency#managing-concurrency-in-table-storage). +Azure Table Storage state concurrency is achieved by using `ETag`s according to [the official documentation]( https://docs.microsoft.com/azure/storage/common/storage-concurrency#managing-concurrency-in-table-storage). ## Related links From e29e938067b8f1e483d6dcf0bfdd7ab3315b2f5f Mon Sep 17 00:00:00 2001 From: Bernd Verst <4535280+berndverst@users.noreply.github.com> Date: Thu, 4 Nov 2021 15:50:24 -0700 Subject: [PATCH 069/102] Update azure-keyvault.md --- .../supported-secret-stores/azure-keyvault.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md index 5a00a4c37..2666158a9 100644 --- a/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md @@ -263,7 +263,7 @@ To use **Azure managed identity**: 1. Ensure your AKS cluster has managed identity enabled and follow the [guide for using managed identities](https://docs.microsoft.com/azure/aks/use-managed-identity). 2. Create an `azurekeyvault.yaml` component file. - The component yaml refers to the Kubernetes secretstore using `auth` property and `secretKeyRef` refers to the certificate stored in the Kubernetes secret store. + The component yaml refers to a particular KeyVault name. The managed identity you will use in a later step must be given read access to this particular KeyVault instance. ```yaml apiVersion: dapr.io/v1alpha1 From 2e14892b6801cd73b79cf3d51a59624f74114596 Mon Sep 17 00:00:00 2001 From: Will Tsai Date: Thu, 4 Nov 2021 16:19:52 -0700 Subject: [PATCH 070/102] cupdating for newly stable components --- .../components-reference/supported-pubsub/_index.md | 8 ++++---- .../supported-secret-stores/_index.md | 6 +++--- .../components-reference/supported-state-stores/_index.md | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md index 27c54f551..dea6d87a3 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md @@ -22,12 +22,12 @@ Table captions: | Name | Status | Component version | Since | |-------------------------------------------------------|--------| -----| ------------- | -| [Apache Kafka]({{< ref setup-apache-kafka.md >}}) | Beta | v1 | 1.0 | +| [Apache Kafka]({{< ref setup-apache-kafka.md >}}) | Stable | v1 | 1.5 | | [Hazelcast]({{< ref setup-hazelcast.md >}}) | Alpha | v1 | 1.0 | | [MQTT]({{< ref setup-mqtt.md >}}) | Alpha | v1 | 1.0 | -| [NATS Streaming]({{< ref setup-nats-streaming.md >}}) | Beta | v1 | 1.0 | -| [In Memory]({{< ref setup-inmemory.md >}}) | Alpha | v1 | 1.4 | -| [JetStream]({{< ref setup-jetstream.md >}}) | Alpha | v1 | 1.4 | +| [NATS Streaming]({{< ref setup-nats-streaming.md >}}) | Beta | v1 | 1.0 | +| [In Memory]({{< ref setup-inmemory.md >}}) | Alpha | v1 | 1.4 | +| [JetStream]({{< ref setup-jetstream.md >}}) | Alpha | v1 | 1.4 | | [Pulsar]({{< ref setup-pulsar.md >}}) | Alpha | v1 | 1.0 | | [RabbitMQ]({{< ref setup-rabbitmq.md >}}) | Alpha | v1 | 1.0 | | [Redis Streams]({{< ref setup-redis-pubsub.md >}}) | Stable | v1 | 1.0 | diff --git a/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md index 2d38e5662..16dc4879f 100644 --- a/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md @@ -23,8 +23,8 @@ Table captions: | Name | Status | Component version | Since | |-------------------------------------------------------------------|------------------------------| ---------------- |-- | -| [Local environment variables]({{< ref envvar-secret-store.md >}}) | Beta | v1 | 1.0 | -| [Local file]({{< ref file-secret-store.md >}}) | Beta | v1 | 1.0 | +| [Local environment variables]({{< ref envvar-secret-store.md >}}) | Beta | v1 | 1.0 | +| [Local file]({{< ref file-secret-store.md >}}) | Beta | v1 | 1.0 | | [HashiCorp Vault]({{< ref hashicorp-vault.md >}}) | Alpha | v1 | 1.0 | | [Kubernetes secrets]({{< ref kubernetes-secret-store.md >}}) | Stable | v1 | 1.0 | @@ -45,4 +45,4 @@ Table captions: | Name | Status | Component version | Since | |---------------------------------------------------------------------------------------|--------| ---- |--------------| -| [Azure Key Vault]({{< ref azure-keyvault.md >}}) | Stable | v1 | 1.0 | +| [Azure Key Vault]({{< ref azure-keyvault.md >}}) | Stable | v1 | 1.0 | diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md index dd718f67c..d258df768 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md @@ -59,5 +59,5 @@ The following stores are supported, at various levels, by the Dapr state managem |------------------------------------------------------------------|------|---------------------|------|-----|--------|-----|-----|-------| | [Azure Blob Storage]({{< ref setup-azure-blobstorage.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Stable | v1 | 1.0 | | [Azure CosmosDB]({{< ref setup-azure-cosmosdb.md >}}) | ✅ | ✅ | ✅ | ✅ | ✅ | Stable | v1 | 1.0 | -| [Azure SQL Server]({{< ref setup-sqlserver.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Alpha | v1 | 1.0 | +| [Azure SQL Server]({{< ref setup-sqlserver.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Stable | v1 | 1.5 | | [Azure Table Storage]({{< ref setup-azure-tablestorage.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Alpha | v1 | 1.0 | From 9295daa2cd1a56a54f811ead605f33fd13b137ff Mon Sep 17 00:00:00 2001 From: Will Date: Thu, 4 Nov 2021 16:22:35 -0700 Subject: [PATCH 071/102] minor spacing change --- .../components-reference/supported-state-stores/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md index d258df768..8be6ac46f 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md @@ -59,5 +59,5 @@ The following stores are supported, at various levels, by the Dapr state managem |------------------------------------------------------------------|------|---------------------|------|-----|--------|-----|-----|-------| | [Azure Blob Storage]({{< ref setup-azure-blobstorage.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Stable | v1 | 1.0 | | [Azure CosmosDB]({{< ref setup-azure-cosmosdb.md >}}) | ✅ | ✅ | ✅ | ✅ | ✅ | Stable | v1 | 1.0 | -| [Azure SQL Server]({{< ref setup-sqlserver.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Stable | v1 | 1.5 | +| [Azure SQL Server]({{< ref setup-sqlserver.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Stable | v1 | 1.5 | | [Azure Table Storage]({{< ref setup-azure-tablestorage.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Alpha | v1 | 1.0 | From 5aaa5ae62a1f0715442a19497a50d9a449da8db3 Mon Sep 17 00:00:00 2001 From: Simon Leet Date: Thu, 4 Nov 2021 16:04:36 -0700 Subject: [PATCH 072/102] Update MQTT docs - Add missing `backOffMaxRetries` to metadata table and examples in MQTT bindings. - Add missing `consumerID` to metadata table in MQTT bindings and pubsub. - Clarify TLS metadata properties and examples in MQTT bindings and pubsub. - Address Markdown linter issues. - Minor edits for clarity. --- .../supported-bindings/mqtt.md | 52 +++++++++++------ .../supported-pubsub/setup-mqtt.md | 58 ++++++++++++------- 2 files changed, 71 insertions(+), 39 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/mqtt.md b/daprdocs/content/en/reference/components-reference/supported-bindings/mqtt.md index e4457b0bc..c9f8c0add 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/mqtt.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/mqtt.md @@ -11,7 +11,6 @@ aliases: To setup MQTT binding create a component of type `bindings.mqtt`. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a binding configuration. - ```yaml apiVersion: dapr.io/v1alpha1 kind: Component @@ -25,14 +24,17 @@ spec: - name: url value: "tcp://[username][:password]@host.domain[:port]" - name: topic - value: "topic1" + value: "mytopic" - name: qos value: 1 - name: retain value: "false" - name: cleanSession - value: "false" + value: "true" + - name: backOffMaxRetries + value: "0" ``` + {{% 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 %}} @@ -41,19 +43,20 @@ The above example uses secrets as plain strings. It is recommended to use a secr | Field | Required | Binding support | Details | Example | |--------------------|:--------:|---------|---------|---------| -| url | Y | Input/Output | Address of the MQTT broker | Use `**tcp://**` scheme for non-TLS communication. Use`**ssl://**` scheme for TLS communication.
"tcp://[username][:password]@host.domain[:port]" -| topic | Y | Input/Output | The topic to listen on or send events to | `"mytopic"` | -| qos | N | Input/Output | Indicates the Quality of Service Level (QoS) of the message. Default 0|`1` -| retain | N | Input/Output | Defines whether the message is saved by the broker as the last known good value for a specified topic. Default `"false"` | `"true"`, `"false"` -| cleanSession | N | Input/Output | will set the "clean session" in the connect message when client connects to an MQTT broker. Default `"true"` | `"true"`, `"false"` -| caCert | Required for using TLS | Input/Output | Certificate authority certificate. Can be `secretKeyRef` to use a secret reference | `0123456789-0123456789` -| clientCert | Required for using TLS | Input/Output | Client certificate. Can be `secretKeyRef` to use a secret reference | `0123456789-0123456789` -| clientKey | Required for using TLS | Input/Output | Client key. Can be `secretKeyRef` to use a secret reference | `012345` +| url | Y | Input/Output | Address of the MQTT broker. Can be `secretKeyRef` to use a secret reference.
Use the **`tcp://`** URI scheme for non-TLS communication.
Use the **`ssl://`** URI scheme for TLS communication. | `"tcp://[username][:password]@host.domain[:port]"` +| topic | Y | Input/Output | The topic to listen on or send events to. | `"mytopic"` | +| consumerID | N | Input/Output | The client ID used to connect to the MQTT broker. Defaults to the Dapr app ID. | `"myMqttClientApp"` +| qos | N | Input/Output | Indicates the Quality of Service Level (QoS) of the message. Defaults to `0`. |`1` +| retain | N | Input/Output | Defines whether the message is saved by the broker as the last known good value for a specified topic. Defaults to `"false"`. | `"true"`, `"false"` +| cleanSession | N | Input/Output | Sets the `clean_session` flag in the connection message to the MQTT broker if `"true"`. Defaults to `"true"`. | `"true"`, `"false"` +| caCert | Required for using TLS | Input/Output | Certificate Authority (CA) certificate in PEM format for verifying server TLS certificates. | `"-----BEGIN CERTIFICATE-----\n\n-----END CERTIFICATE-----"` +| clientCert | Required for using TLS | Input/Output | TLS client certificate in PEM format. Must be used with `clientKey`. | `"-----BEGIN CERTIFICATE-----\n\n-----END CERTIFICATE-----"` +| clientKey | Required for using TLS | Input/Output | TLS client key in PEM format. Must be used with `clientCert`. Can be `secretKeyRef` to use a secret reference. | `"-----BEGIN RSA PRIVATE KEY-----\n\n-----END RSA PRIVATE KEY-----"` +| backOffMaxRetries | N | Input | The maximum number of retries to process the message before returning an error. Defaults to `"0"`, which means that no retries will be attempted. `"-1"` can be specified to indicate that messages should be retried indefinitely until they are successfully processed or the application is shutdown. The component will wait 5 seconds between retries. | `"3"` ### Communication using TLS -To configure communication using TLS, ensure mosquitto broker is configured to support certificates. -Pre-requisite includes `certficate authority certificate`, `ca issued client certificate`, `client private key`. -Here is an example. + +To configure communication using TLS, ensure that the MQTT broker (e.g. mosquitto) is configured to support certificates and provide the `caCert`, `clientCert`, `clientKey` metadata in the component configuration. For example: ```yaml apiVersion: dapr.io/v1alpha1 @@ -75,23 +78,31 @@ spec: value: "false" - name: cleanSession value: "false" + - name: backoffMaxRetries + value: "0" - name: caCert - value: '' + value: ${{ myLoadedCACert }} - name: clientCert - value: '' + value: ${{ myLoadedClientCert }} - name: clientKey - value: '' + secretKeyRef: + name: myMqttClientKey + key: myMqttClientKey +auth: + secretStore: ``` +Note that while the `caCert` and `clientCert` values may not be secrets, they can be referenced from a Dapr secret store as well for convenience. + ### Consuming a shared topic -When consuming a shared topic, each consumer must have a unique identifier. By default, the application Id is used to uniquely identify each consumer and publisher. In self-hosted mode, running each Dapr run with a different application Id is sufficient to have them consume from the same shared topic. However on Kubernetes, a pod with multiple application instances shares the same application Id, prohibiting all instances from consuming the same topic. To overcome this, configure the component's `ConsumerID` metadata with a `{uuid}` tag, making each instance to have a randomly generated `ConsumerID` value on start up. For example: +When consuming a shared topic, each consumer must have a unique identifier. By default, the application ID is used to uniquely identify each consumer and publisher. In self-hosted mode, invoking each `dapr run` with a different application ID is sufficient to have them consume from the same shared topic. However, on Kubernetes, multiple instances of an application pod will share the same application ID, prohibiting all instances from consuming the same topic. To overcome this, configure the component's `consumerID` metadata with a `{uuid}` tag, which will give each instance a randomly generated `consumerID` value on start up. For example: ```yaml apiVersion: dapr.io/v1alpha1 kind: Component metadata: - name: messagebus + name: mqtt-binding namespace: default spec: type: bindings.mqtt @@ -109,6 +120,8 @@ spec: value: "false" - name: cleanSession value: "false" + - name: backoffMaxRetries + value: "0" ``` {{% alert title="Warning" color="warning" %}} @@ -122,6 +135,7 @@ This component supports both **input and output** binding interfaces. This component supports **output binding** with the following operations: - `create` + ## Related links - [Basic schema for a Dapr component]({{< ref component-schema >}}) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-mqtt.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-mqtt.md index ffbbfe839..11e353f01 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-mqtt.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-mqtt.md @@ -28,26 +28,32 @@ spec: - name: retain value: "false" - name: cleanSession - value: "false" + value: "true" + - name: backOffMaxRetries + value: "0" ``` + +{{% 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 | Required | Details | Example | |--------------------|:--------:|---------|---------| -| url | Y | Address of the MQTT broker | Use `**tcp://**` scheme for non-TLS communication. Use`**tcps://**` scheme for TLS communication.
"tcp://[username][:password]@host.domain[:port]" -| qos | N | Indicates the Quality of Service Level (QoS) of the message. Default 0|`1` -| retain | N | Defines whether the message is saved by the broker as the last known good value for a specified topic. Default `"false"` | `"true"`, `"false"` -| cleanSession | N | will set the "clean session" in the connect message when client connects to an MQTT broker. Default `"true"` | `"true"`, `"false"` -| caCert | Required for using TLS | Certificate authority certificate. Can be `secretKeyRef` to use a secret reference | `0123456789-0123456789` -| clientCert | Required for using TLS | Client certificate. Can be `secretKeyRef` to use a secret reference | `0123456789-0123456789` -| clientKey | Required for using TLS | Client key. Can be `secretKeyRef` to use a secret reference | `012345` -| backOffMaxRetries | N | The maximum number of retries to process the message before returning an error. Defaults to `"0"` which means the component will not retry processing the message. `"-1"` will retry indefinitely until the message is processed or the application is shutdown. And positive number is treated as the maximum retry count. The component will wait 5 seconds between retries. | `"3"` - +| url | Y | Address of the MQTT broker. Can be `secretKeyRef` to use a secret reference.
Use the **`tcp://`** URI scheme for non-TLS communication.
Use the **`ssl://`** URI scheme for TLS communication. | `"tcp://[username][:password]@host.domain[:port]"` +| consumerID | N | The client ID used to connect to the MQTT broker. Defaults to the Dapr app ID. | `"myMqttClientApp"` +| qos | N | Indicates the Quality of Service Level (QoS) of the message. Defaults to `0`. |`1` +| retain | N | Defines whether the message is saved by the broker as the last known good value for a specified topic. Defaults to `"false"`. | `"true"`, `"false"` +| cleanSession | N | Sets the `clean_session` flag in the connection message to the MQTT broker if `"true"`. Defaults to `"true"`. | `"true"`, `"false"` +| caCert | Required for using TLS | Certificate Authority (CA) certificate in PEM format for verifying server TLS certificates. | `"-----BEGIN CERTIFICATE-----\n\n-----END CERTIFICATE-----"` +| clientCert | Required for using TLS | TLS client certificate in PEM format. Must be used with `clientKey`. | `"-----BEGIN CERTIFICATE-----\n\n-----END CERTIFICATE-----"` +| clientKey | Required for using TLS | TLS client key in PEM format. Must be used with `clientCert`. Can be `secretKeyRef` to use a secret reference. | `"-----BEGIN RSA PRIVATE KEY-----\n\n-----END RSA PRIVATE KEY-----"` +| backOffMaxRetries | N | The maximum number of retries to process the message before returning an error. Defaults to `"0"`, which means that no retries will be attempted. `"-1"` can be specified to indicate that messages should be retried indefinitely until they are successfully processed or the application is shutdown. The component will wait 5 seconds between retries. | `"3"` ### Communication using TLS -To configure communication using TLS, ensure mosquitto broker is configured to support certificates. -Pre-requisite includes `certficate authority certificate`, `ca issued client certificate`, `client private key`. -Here is an example. + +To configure communication using TLS, ensure that the MQTT broker (e.g. mosquitto) is configured to support certificates and provide the `caCert`, `clientCert`, `clientKey` metadata in the component configuration. For example: ```yaml apiVersion: dapr.io/v1alpha1 @@ -60,30 +66,38 @@ spec: version: v1 metadata: - name: url - value: "tcps://host.domain[:port]" + value: "ssl://host.domain[:port]" - name: qos value: 1 - name: retain value: "false" - name: cleanSession value: "false" + - name: backoffMaxRetries + value: "0" - name: caCert - value: '' + value: ${{ myLoadedCACert }} - name: clientCert - value: '' + value: ${{ myLoadedClientCert }} - name: clientKey - value: '' + secretKeyRef: + name: myMqttClientKey + key: myMqttClientKey +auth: + secretStore: ``` +Note that while the `caCert` and `clientCert` values may not be secrets, they can be referenced from a Dapr secret store as well for convenience. + ### Consuming a shared topic -When consuming a shared topic, each consumer must have a unique identifier. By default, the application Id is used to uniquely identify each consumer and publisher. In self-hosted mode, running each Dapr run with a different application Id is sufficient to have them consume from the same shared topic. However on Kubernetes, a pod with multiple application instances shares the same application Id, prohibiting all instances from consuming the same topic. To overcome this, configure the component's `ConsumerID` metadata with a `{uuid}` tag, making each instance to have a randomly generated `ConsumerID` value on start up. For example: +When consuming a shared topic, each consumer must have a unique identifier. By default, the application ID is used to uniquely identify each consumer and publisher. In self-hosted mode, invoking each `dapr run` with a different application ID is sufficient to have them consume from the same shared topic. However, on Kubernetes, multiple instances of an application pod will share the same application ID, prohibiting all instances from consuming the same topic. To overcome this, configure the component's `consumerID` metadata with a `{uuid}` tag, which will give each instance a randomly generated `consumerID` value on start up. For example: ```yaml apiVersion: dapr.io/v1alpha1 kind: Component metadata: - name: messagebus + name: mqtt-pubsub namespace: default spec: type: pubsub.mqtt @@ -99,13 +113,14 @@ spec: value: "false" - name: cleanSession value: "false" + - name: backoffMaxRetries + value: "0" ``` {{% 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 %}} - ## Create a MQTT broker {{< tabs "Self-Hosted" "Kubernetes">}} @@ -116,6 +131,7 @@ You can run a MQTT broker [locally using Docker](https://hub.docker.com/_/eclips ```bash docker run -d -p 1883:1883 -p 9001:9001 --name mqtt eclipse-mosquitto:1.6.9 ``` + You can then interact with the server using the client port: `mqtt://localhost:1883` {{% /codetab %}} @@ -171,12 +187,14 @@ spec: name: websocket protocol: TCP ``` + You can then interact with the server using the client port: `tcp://mqtt-broker.default.svc.cluster.local:1883` {{% /codetab %}} {{< /tabs >}} ## Related links + - [Basic schema for a Dapr component]({{< ref component-schema >}}) - Read [this guide]({{< ref "howto-publish-subscribe.md#step-2-publish-a-topic" >}}) for instructions on configuring pub/sub components - [Pub/Sub building block]({{< ref pubsub >}}) From 3a375aaaa874e58373e0dd57ad1acf2694c474ac Mon Sep 17 00:00:00 2001 From: Bernd Verst <4535280+berndverst@users.noreply.github.com> Date: Thu, 4 Nov 2021 15:39:29 -0700 Subject: [PATCH 073/102] Localization Check in Links Validation Checks to ensure Microsoft Docs links aren't pinned to a particular localization --- .github/workflows/link_validation.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/link_validation.yaml b/.github/workflows/link_validation.yaml index e0bcbfae7..6aecd050d 100644 --- a/.github/workflows/link_validation.yaml +++ b/.github/workflows/link_validation.yaml @@ -27,3 +27,11 @@ jobs: - name: Check Markdown Files run: | for name in `find . -name "*.md"`; do echo -e "------\n$name" ; mm.py -l $name || exit 1 ;done + - name: Check Microsoft URLs do not pin localized versions + run: | + localized=$(find . -name '*.md' | xargs grep -ol "\.microsoft\.com/[[:alpha:]]\{2\}-[[:alnum:]]\{2\}/") + if [[ $(echo $localized) ]]; then + echo "The following files contain links to Microsoft Docs that pin a localized version:" + echo $localized + exit 1 + fi From c53caffc9c100c669ba0323361102c12e378a493 Mon Sep 17 00:00:00 2001 From: Bernd Verst <4535280+berndverst@users.noreply.github.com> Date: Thu, 4 Nov 2021 15:40:22 -0700 Subject: [PATCH 074/102] Update link_validation.yaml --- .github/workflows/link_validation.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/link_validation.yaml b/.github/workflows/link_validation.yaml index 6aecd050d..2c91fe6fb 100644 --- a/.github/workflows/link_validation.yaml +++ b/.github/workflows/link_validation.yaml @@ -29,7 +29,7 @@ jobs: for name in `find . -name "*.md"`; do echo -e "------\n$name" ; mm.py -l $name || exit 1 ;done - name: Check Microsoft URLs do not pin localized versions run: | - localized=$(find . -name '*.md' | xargs grep -ol "\.microsoft\.com/[[:alpha:]]\{2\}-[[:alnum:]]\{2\}/") + localized=$(find . -name '*.md' | xargs grep -ol "\.microsoft\.com/[[:alpha:]]\{2\}-[[:alpha:]]\{2\}/") if [[ $(echo $localized) ]]; then echo "The following files contain links to Microsoft Docs that pin a localized version:" echo $localized From 9e82ab7e772739a8ae4c8b5bdb89ea04e12467e4 Mon Sep 17 00:00:00 2001 From: Bernd Verst <4535280+berndverst@users.noreply.github.com> Date: Thu, 4 Nov 2021 23:50:02 +0000 Subject: [PATCH 075/102] Add succes message for msft docs --- .github/workflows/link_validation.yaml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/link_validation.yaml b/.github/workflows/link_validation.yaml index 2c91fe6fb..3571c0c4a 100644 --- a/.github/workflows/link_validation.yaml +++ b/.github/workflows/link_validation.yaml @@ -16,6 +16,16 @@ jobs: PYTHON_VER: 3.7 steps: - uses: actions/checkout@v2 + - name: Check Microsoft URLs do not pin localized versions + run: | + localized=$(find . -name '*.md' | xargs grep -ol "\.microsoft\.com/[[:alpha:]]\{2\}-[[:alpha:]]\{2\}/") || true + if [ -z "$localized" ]; then + echo "All Microsoft Docs links ok." + else + echo "The following files contain links to Microsoft Docs that pin a localized version:" + echo $localized + exit 1 + fi - name: Set up Python ${{ env.PYTHON_VER }} uses: actions/setup-python@v2 with: @@ -27,11 +37,4 @@ jobs: - name: Check Markdown Files run: | for name in `find . -name "*.md"`; do echo -e "------\n$name" ; mm.py -l $name || exit 1 ;done - - name: Check Microsoft URLs do not pin localized versions - run: | - localized=$(find . -name '*.md' | xargs grep -ol "\.microsoft\.com/[[:alpha:]]\{2\}-[[:alpha:]]\{2\}/") - if [[ $(echo $localized) ]]; then - echo "The following files contain links to Microsoft Docs that pin a localized version:" - echo $localized - exit 1 - fi + From 887a526959d22c4e9bc25122ffc725bd3d29ed8f Mon Sep 17 00:00:00 2001 From: Sergey Krutsko Date: Fri, 5 Nov 2021 11:19:04 +0300 Subject: [PATCH 076/102] add version field --- .../supported-pubsub/setup-apache-kafka.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index 277b738bf..209945e3a 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -39,6 +39,8 @@ spec: value: 1024 - name: consumeRetryInterval # Optional. value: 200ms + - name: version + value: 0.10.2.0 ``` ## Spec metadata fields @@ -54,6 +56,7 @@ spec: | initialOffset | N | The initial offset to use if no offset was previously committed. Should be "newest" or "oldest". Defaults to "newest". | `"oldest"` | maxMessageBytes | N | The maximum size in bytes allowed for a single Kafka message. Defaults to 1024. | `2048` | consumeRetryInterval | N | The interval between retries when attempting to consume topics. Treats numbers without suffix as milliseconds. Defaults to 100ms. | `200ms` +| version | N | Kafka cluster version. Defaults to `2.0.0.0` | `0.10.2.0` ## Per-call metadata fields From d0dbd3fc37a5166100a0b4388f077959b374a99a Mon Sep 17 00:00:00 2001 From: Sergey Krutsko Date: Fri, 5 Nov 2021 11:22:37 +0300 Subject: [PATCH 077/102] version is optional --- .../components-reference/supported-pubsub/setup-apache-kafka.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index 209945e3a..aff7ecb8a 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -39,7 +39,7 @@ spec: value: 1024 - name: consumeRetryInterval # Optional. value: 200ms - - name: version + - name: version # Optional. value: 0.10.2.0 ``` From 993a0e82c010f4c937cab91497ce5adf143c1ef4 Mon Sep 17 00:00:00 2001 From: richgo Date: Fri, 5 Nov 2021 18:07:59 +0000 Subject: [PATCH 078/102] Update middleware-opa.md (#1833) added body to struct and updated HTTPRequest docs to reflect. Co-authored-by: Yaron Schneider --- .../supported-middleware/middleware-opa.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-opa.md b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-opa.md index 6d7fb81fa..3ecf58332 100644 --- a/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-opa.md +++ b/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-opa.md @@ -99,7 +99,7 @@ This middleware supplies a [`HTTPRequest`](#httprequest) as input. ### HTTPRequest -The `HTTPRequest` input contains all the relevant information about an incoming HTTP Request except it's body. +The `HTTPRequest` input contains all the relevant information about an incoming HTTP Request. ```go type Input struct { @@ -123,6 +123,8 @@ type HTTPRequest struct { headers map[string]string // The request scheme (e.g. http, https) scheme string + // The request body (e.g. http, https) + body string } ``` From 62589d034809f9b15e9dca5d7d28c8bbe9bfdd72 Mon Sep 17 00:00:00 2001 From: yellow chicks Date: Sat, 6 Nov 2021 07:00:43 +0800 Subject: [PATCH 079/102] Update setup-pulsar.md --- .../components-reference/supported-pubsub/setup-pulsar.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md index 5f4baf959..2c4a25a23 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md @@ -42,15 +42,8 @@ These optional parameter names are `metadata.deliverAt` or `metadata.deliverAfte - `deliverAt`: Delay message to deliver at a specified time (RFC3339 format), e.g. `"2021-09-01T10:00:00Z"` - `deliverAfter`: Delay message to deliver after a specified amount of time, e.g.`"4h5m3s"` -| Field | Required | Details | Example | -|--------------------|:--------:|---------|---------| -| deliverAt | N | delay queue configuration param. use time RFC3339, Default is empty | `"2021-09-01T10:00:00Z"`| -| deliverAfter | N | delay queue configuration param. Default is empty | `"4h5m3s"`| - - Examples: - ```shell curl -X POST http://localhost:3500/v1.0/publish/myPulsar/myTopic?metadata.deliverAt='2021-09-01T10:00:00Z' \ -H "Content-Type: application/json" \ From c45ecde24f02ee2cd6f69e9e6e00adf1ffd70960 Mon Sep 17 00:00:00 2001 From: zhangchao Date: Sat, 6 Nov 2021 17:03:18 +0800 Subject: [PATCH 080/102] fix review --- .../supported-pubsub/setup-apache-kafka.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index da92f59b3..8152f0e1e 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -51,15 +51,15 @@ spec: | saslPassword | N | The SASL password used for authentication. Can be `secretKeyRef` to use a [secret reference]({{< ref component-secrets.md >}}). Only required if `authRequired` is set to `"true"`. | `""`, `"KeFg23!"` | initialOffset | N | The initial offset to use if no offset was previously committed. Should be "newest" or "oldest". Defaults to "newest". | `"oldest"` | maxMessageBytes | N | The maximum size in bytes allowed for a single Kafka message. Defaults to 1024. | `2048` -| caCert | N | Certificate authority certificate, required for using TLS. Can be `secretKeyRef` to use a secret reference | `0123456789-0123456789` -| clientCert | N | Client certificate, required for using TLS. Can be `secretKeyRef` to use a secret reference | `0123456789-0123456789` -| clientKey | N | Client key, required for using TLS. Can be `secretKeyRef` to use a secret reference | `012345` +| caCert | N | Certificate authority certificate, required for using TLS. Can be `secretKeyRef` to use a secret reference | `"-----BEGIN CERTIFICATE-----\n\n-----END CERTIFICATE-----"` +| clientCert | N | Client certificate, required for using TLS. Can be `secretKeyRef` to use a secret reference | `"-----BEGIN CERTIFICATE-----\n\n-----END CERTIFICATE-----"` +| clientKey | N | Client key, required for using TLS. Can be `secretKeyRef` to use a secret reference | `"-----BEGIN RSA PRIVATE KEY-----\n\n-----END RSA PRIVATE KEY-----"` | skipVerify | N | Skip TLS verification, this is not recommended using in production. Defaults to `"false"` | `"true"`, `"false"` | ### Communication using TLS -To configure communication using TLS, ensure kafka broker is configured to support certificates. +To configure communication using TLS, ensure the Kafka broker is configured to support certificates. Pre-requisite includes `certficate authority certificate`, `ca issued client certificate`, `client private key`. -Here is an example. +Below is an example of a Kafka pubsub component configured to use TLS: ```yaml apiVersion: dapr.io/v1alpha1 @@ -99,6 +99,8 @@ spec: secretKeyRef: name: kafka-tls key: clientKey +auth: + secretStore: ``` ## Per-call metadata fields From 119e0358bdd6acd50868f30d772e574a89cff98d Mon Sep 17 00:00:00 2001 From: zhangchao Date: Sat, 6 Nov 2021 17:30:08 +0800 Subject: [PATCH 081/102] add consumeRetryInterval to tls example yaml --- .../components-reference/supported-pubsub/setup-apache-kafka.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index 5b3126d91..214aefafd 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -84,6 +84,8 @@ spec: value: "true" - name: saslUsername # Required if authRequired is `true`. value: "adminuser" + - name: consumeRetryInterval # Optional. + value: 200ms - name: saslPassword # Required if authRequired is `true`. secretKeyRef: name: kafka-secrets From 5038c92b2b31f4e378444e248106b4750bbb5914 Mon Sep 17 00:00:00 2001 From: zhangchao Date: Sat, 6 Nov 2021 17:53:17 +0800 Subject: [PATCH 082/102] add secret store refrence --- .../components-reference/supported-pubsub/setup-apache-kafka.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index 214aefafd..371260e38 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -108,6 +108,8 @@ auth: secretStore: ``` +The `secretKeyRef` above is using a secret store to access the tls information, if you don't know how to use secret store, you can read [secret store components]({{< ref setup-secret-store.md >}}) and [Kubernetes secrets store]({{< ref kubernetes-secret-store.md >}}) and [how to reference secrets in Dapr components]({{< ref component-secrets.md >}}) for more information. + ## Per-call metadata fields ### Partition Key From 91fe55b023cc592f3e0f28cac420c5a43085d7a4 Mon Sep 17 00:00:00 2001 From: Dmitry Shmulevich Date: Mon, 8 Nov 2021 10:13:29 -0800 Subject: [PATCH 083/102] Added documentation for StateStore Query API (#1874) Reworked this overview to make this more consistent and include recent updates from releases. --- .../state-management/howto-state-query-api.md | 421 ++++++++++++++++++ .../query-api-examples/components/mongodb.yml | 10 + .../query-api-examples/dataset.json | 112 +++++ .../query-api-examples/query1.json | 13 + .../query-api-examples/query2.json | 7 + .../query-api-examples/query3-token.json | 34 ++ .../query-api-examples/query3.json | 33 ++ .../state-management-overview.md | 68 +-- .../content/en/reference/api/state_api.md | 126 ++++++ .../supported-state-stores/_index.md | 54 +-- .../images/state-management-overview.png | Bin 90196 -> 194564 bytes ...state-management-query-mongodb-dataset.png | Bin 0 -> 210308 bytes 12 files changed, 820 insertions(+), 58 deletions(-) create mode 100644 daprdocs/content/en/developing-applications/building-blocks/state-management/howto-state-query-api.md create mode 100644 daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/components/mongodb.yml create mode 100644 daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/dataset.json create mode 100644 daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query1.json create mode 100644 daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query2.json create mode 100644 daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query3-token.json create mode 100644 daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query3.json create mode 100644 daprdocs/static/images/state-management-query-mongodb-dataset.png diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-state-query-api.md b/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-state-query-api.md new file mode 100644 index 000000000..c539a454f --- /dev/null +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-state-query-api.md @@ -0,0 +1,421 @@ +--- +type: docs +title: "How-To: Query state" +linkTitle: "How-To: Query state" +weight: 250 +description: "API for querying state stores" +--- + +{{% alert title="alpha" color="warning" %}} +The state query API is in **alpha** stage. +{{% /alert %}} + +## Introduction + +The state query API provides a way of querying the key/value data stored in state store components. This query API is not a replacement for a complete query language, and is focused on retrieving, filtering and sorting key/value data that you have saved through the state management APIs. + +Even though the state store is a key/value store, the `value` might be a JSON document with its own hierarchy, keys, and values. +The query API allows you to use those keys and values to retrive corresponding documents. + +This query API does not support querying of actor state stored in a state store. For that you need to use the query API for the specific database. +See [querying actor state]({{< ref "state-management-overview.md#querying-actor-state" >}}). + +You can find additional information in the [related links]({{< ref "#related-links" >}}) section. + +## Querying the state + +You submit query requests via HTTP POST/PUT or gRPC. +The body of the request is the JSON map with 3 entries: `filter`, `sort`, and `pagination`. + +The `filter` is an optional section. It specifies the query conditions in the form of a tree of key/value operations, where the key is the operator and the value is the operands. + +The following operations are supported: +| Operator | Operands | Description | +|----------|-------------|--------------| +| `EQ` | key:value | key == value | +| `IN` | key:[]value | key == value[0] OR key == value[1] OR ... OR key == value[n] | +| `AND` | []operation | operation[0] AND operation[1] AND ... AND operation[n] | +| `OR` | []operation | operation[0] OR operation[1] OR ... OR operation[n] | + +If `filter` section is omitted, the query returns all entries. + +The `sort` is an optional section and is an ordered array of `key:order` pairs, where `key` is a key in the state store, and the `order` is an optional string indicating sorting order: `"ASC"` for ascending and `"DESC"` for descending. If omitted, ascending order is the default. + +The `pagination` is an optional section containing `limit` and `token` parameters. `limit` sets the page size. `token` is an iteration token returned by the component, and is used in subsequent queries. + +For some background understanding, this query request is translated into the native query language and executed by the state store component. + +## Example data and query + +Let's look at some real examples, starting with simple and progressing towards more complex ones. + +As a dataset, let's consider a [collection of with employee records](../query-api-examples/dataset.json) containing employee ID, organization, state, and city. +Notice that this dataset is an array of key/value pairs where `key` is the unique ID, and the `value` is the JSON object with employee record. +To better illustrate functionality, let's have organization name (org) and employee ID (id) as a nested JSON person object. + +First, you need to create an instance of MongoDB, which is your state store. +```bash +docker run -d --rm -p 27017:27017 --name mongodb mongo:5 +``` + +Next is to start a Dapr application. Refer to this [component configuration file](../query-api-examples/components/mongodb.yml), which instructs Dapr to use MongoDB as its state store. +```bash +dapr run --app-id demo --dapr-http-port 3500 --components-path query-api-examples/components +``` + +Now populate the state store with the employee dataset, so you can then query it later. +```bash +curl -X POST -H "Content-Type: application/json" -d @query-api-examples/dataset.json http://localhost:3500/v1.0/state/statestore +``` + +Once populated, you can examine the data in the state store. The image below a section of the MongoDB UI displaying employee records. +
+ Sample dataset +
+ +Each entry has the `_id` member as a concatenated object key, and the `value` member containing the JSON record. + +The query API allows you to select records from this JSON structure. + +Now you can run the queries. + +### Example 1. + +First, let's find all employees in the state of California and sort them by their employee ID in descending order. + +This is the [query](../query-api-examples/query1.json): +```json +{ + "query": { + "filter": { + "EQ": { "value.state": "CA" } + }, + "sort": [ + { + "key": "value.person.id", + "order": "DESC" + } + ] + } +} +``` + +An equivalent of this query in SQL is: +```sql +SELECT * FROM c WHERE + value.state = "CA" +ORDER BY + value.person.id DESC +``` + +Execute the query with the following command: +{{< tabs "HTTP API (Bash)" "HTTP API (PowerShell)" >}} +{{% codetab %}} +```bash +curl -s -X POST -H "Content-Type: application/json" -d @query-api-examples/query1.json http://localhost:3500/v1.0-alpha1/state/statestore/query | jq . +``` +{{% /codetab %}} +{{% codetab %}} +```powershell +Invoke-RestMethod -Method Post -ContentType 'application/json' -InFile query-api-examples/query1.json -Uri 'http://localhost:3500/v1.0-alpha1/state/statestore/query' +``` +{{% /codetab %}} +{{< /tabs >}} + +The query result is an array of matching key/value pairs in the requested order: +```json +{ + "results": [ + { + "key": "3", + "data": { + "person": { + "org": "Finance", + "id": 1071 + }, + "city": "Sacramento", + "state": "CA" + }, + "etag": "44723d41-deb1-4c23-940e-3e6896c3b6f7" + }, + { + "key": "7", + "data": { + "city": "San Francisco", + "state": "CA", + "person": { + "id": 1015, + "org": "Dev Ops" + } + }, + "etag": "0e69e69f-3dbc-423a-9db8-26767fcd2220" + }, + { + "key": "5", + "data": { + "state": "CA", + "person": { + "org": "Hardware", + "id": 1007 + }, + "city": "Los Angeles" + }, + "etag": "f87478fa-e5c5-4be0-afa5-f9f9d75713d8" + }, + { + "key": "9", + "data": { + "person": { + "org": "Finance", + "id": 1002 + }, + "city": "San Diego", + "state": "CA" + }, + "etag": "f5cf05cd-fb43-4154-a2ec-445c66d5f2f8" + } + ] +} +``` + +### Example 2. + +Let's now find all employees from the "Dev Ops" and "Hardware" organizations. + +This is the [query](../query-api-examples/query2.json): +```json +{ + "query": { + "filter": { + "IN": { "value.person.org": [ "Dev Ops", "Hardware" ] } + } + } +} +``` + +An equivalent of this query in SQL is: +```sql +SELECT * FROM c WHERE + value.person.org IN ("Dev Ops", "Hardware") +``` + +Execute the query with the following command: +{{< tabs "HTTP API (Bash)" "HTTP API (PowerShell)" >}} +{{% codetab %}} +```bash +curl -s -X POST -H "Content-Type: application/json" -d @query-api-examples/query2.json http://localhost:3500/v1.0-alpha1/state/statestore/query | jq . +``` +{{% /codetab %}} +{{% codetab %}} +```powershell +Invoke-RestMethod -Method Post -ContentType 'application/json' -InFile query-api-examples/query2.json -Uri 'http://localhost:3500/v1.0-alpha1/state/statestore/query' +``` +{{% /codetab %}} +{{< /tabs >}} + +Similar to the previous example, the result is an array of matching key/value pairs. + +### Example 3. + +In this example let's find all employees from the "Dev Ops" department +and those employees from the "Finance" departing residing in the states of Washington and California. + +In addition, let's sort the results first by state in descending alphabetical order, and then by employee ID in ascending order. +Also, let's process up to 3 records at a time. + +This is the [query](../query-api-examples/query3.json): + +```json +{ + "query": { + "filter": { + "OR": [ + { + "EQ": { "value.person.org": "Dev Ops" } + }, + { + "AND": [ + { + "EQ": { "value.person.org": "Finance" } + }, + { + "IN": { "value.state": [ "CA", "WA" ] } + } + ] + } + ] + }, + "sort": [ + { + "key": "value.state", + "order": "DESC" + }, + { + "key": "value.person.id" + } + ], + "pagination": { + "limit": 3 + } + } +} +``` + +An equivalent of this query in SQL is: +```sql +SELECT * FROM c WHERE + value.person.org = "Dev Ops" OR + (value.person.org = "Finance" AND value.state IN ("CA", "WA")) +ORDER BY + value.state DESC, + value.person.id ASC +LIMIT 3 +``` + +Execute the query with the following command: +{{< tabs "HTTP API (Bash)" "HTTP API (PowerShell)" >}} +{{% codetab %}} +```bash +curl -s -X POST -H "Content-Type: application/json" -d @query-api-examples/query3.json http://localhost:3500/v1.0-alpha1/state/statestore/query | jq . +``` +{{% /codetab %}} +{{% codetab %}} +```powershell +Invoke-RestMethod -Method Post -ContentType 'application/json' -InFile query-api-examples/query3.json -Uri 'http://localhost:3500/v1.0-alpha1/state/statestore/query' +``` +{{% /codetab %}} +{{< /tabs >}} + +Upon successful execution, the state store returns a JSON object with a list of matching records and the pagination token: +```json +{ + "results": [ + { + "key": "1", + "data": { + "person": { + "org": "Dev Ops", + "id": 1036 + }, + "city": "Seattle", + "state": "WA" + }, + "etag": "6f54ad94-dfb9-46f0-a371-e42d550adb7d" + }, + { + "key": "4", + "data": { + "person": { + "org": "Dev Ops", + "id": 1042 + }, + "city": "Spokane", + "state": "WA" + }, + "etag": "7415707b-82ce-44d0-bf15-6dc6305af3b1" + }, + { + "key": "10", + "data": { + "person": { + "org": "Dev Ops", + "id": 1054 + }, + "city": "New York", + "state": "NY" + }, + "etag": "26bbba88-9461-48d1-8a35-db07c374e5aa" + } + ], + "token": "3" +} +``` + +The pagination token is used "as is" in the [subsequent query](../query-api-examples/query3-token.json) to get the next batch of records: + +```json +{ + "query": { + "filter": { + "OR": [ + { + "EQ": { "value.person.org": "Dev Ops" } + }, + { + "AND": [ + { + "EQ": { "value.person.org": "Finance" } + }, + { + "IN": { "value.state": [ "CA", "WA" ] } + } + ] + } + ] + }, + "sort": [ + { + "key": "value.state", + "order": "DESC" + }, + { + "key": "value.person.id" + } + ], + "pagination": { + "limit": 3, + "token": "3" + } + } +} +``` +And the result of this query is: +```json +{ + "results": [ + { + "key": "9", + "data": { + "person": { + "org": "Finance", + "id": 1002 + }, + "city": "San Diego", + "state": "CA" + }, + "etag": "f5cf05cd-fb43-4154-a2ec-445c66d5f2f8" + }, + { + "key": "7", + "data": { + "city": "San Francisco", + "state": "CA", + "person": { + "id": 1015, + "org": "Dev Ops" + } + }, + "etag": "0e69e69f-3dbc-423a-9db8-26767fcd2220" + }, + { + "key": "3", + "data": { + "person": { + "org": "Finance", + "id": 1071 + }, + "city": "Sacramento", + "state": "CA" + }, + "etag": "44723d41-deb1-4c23-940e-3e6896c3b6f7" + } + ], + "token": "6" +} +``` +That way you can update the pagination token in the query and iterate through the results until no more records are returned. + +## Related links + - [Query API reference ]({{< ref "state_api.md#state-query" >}}), + - [State store components with those that implement query support]({{< ref supported-state-stores.md >}}), + - [State store query API implementation guide](https://github.com/dapr/components-contrib/blob/master/state/Readme.md#implementing-state-query-api). diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/components/mongodb.yml b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/components/mongodb.yml new file mode 100644 index 000000000..82c96d187 --- /dev/null +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/components/mongodb.yml @@ -0,0 +1,10 @@ +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: statestore +spec: + type: state.mongodb + version: v1 + metadata: + - name: host + value: localhost:27017 diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/dataset.json b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/dataset.json new file mode 100644 index 000000000..69935f9bd --- /dev/null +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/dataset.json @@ -0,0 +1,112 @@ +[ + { + "key": "1", + "value": { + "person": { + "org": "Dev Ops", + "id": 1036 + }, + "city": "Seattle", + "state": "WA" + } + }, + { + "key": "2", + "value": { + "person": { + "org": "Hardware", + "id": 1028 + }, + "city": "Portland", + "state": "OR" + } + }, + { + "key": "3", + "value": { + "person": { + "org": "Finance", + "id": 1071 + }, + "city": "Sacramento", + "state": "CA" + } + }, + { + "key": "4", + "value": { + "person": { + "org": "Dev Ops", + "id": 1042 + }, + "city": "Spokane", + "state": "WA" + } + }, + { + "key": "5", + "value": { + "person": { + "org": "Hardware", + "id": 1007 + }, + "city": "Los Angeles", + "state": "CA" + } + }, + { + "key": "6", + "value": { + "person": { + "org": "Finance", + "id": 1094 + }, + "city": "Eugene", + "state": "OR" + } + }, + { + "key": "7", + "value": { + "person": { + "org": "Dev Ops", + "id": 1015 + }, + "city": "San Francisco", + "state": "CA" + } + }, + { + "key": "8", + "value": { + "person": { + "org": "Hardware", + "id": 1077 + }, + "city": "Redmond", + "state": "WA" + } + }, + { + "key": "9", + "value": { + "person": { + "org": "Finance", + "id": 1002 + }, + "city": "San Diego", + "state": "CA" + } + }, + { + "key": "10", + "value": { + "person": { + "org": "Dev Ops", + "id": 1054 + }, + "city": "New York", + "state": "NY" + } + } +] diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query1.json b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query1.json new file mode 100644 index 000000000..816246e90 --- /dev/null +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query1.json @@ -0,0 +1,13 @@ +{ + "query": { + "filter": { + "EQ": { "value.state": "CA" } + }, + "sort": [ + { + "key": "value.person.id", + "order": "DESC" + } + ] + } +} diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query2.json b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query2.json new file mode 100644 index 000000000..47f3be7b4 --- /dev/null +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query2.json @@ -0,0 +1,7 @@ +{ + "query": { + "filter": { + "IN": { "value.person.org": [ "Dev Ops", "Hardware" ] } + } + } +} diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query3-token.json b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query3-token.json new file mode 100644 index 000000000..3506d6445 --- /dev/null +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query3-token.json @@ -0,0 +1,34 @@ +{ + "query": { + "filter": { + "OR": [ + { + "EQ": { "value.person.org": "Dev Ops" } + }, + { + "AND": [ + { + "EQ": { "value.person.org": "Finance" } + }, + { + "IN": { "value.state": [ "CA", "WA" ] } + } + ] + } + ] + }, + "sort": [ + { + "key": "value.state", + "order": "DESC" + }, + { + "key": "value.person.id" + } + ], + "pagination": { + "limit": 3, + "token": "3" + } + } +} diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query3.json b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query3.json new file mode 100644 index 000000000..3621acd5d --- /dev/null +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-api-examples/query3.json @@ -0,0 +1,33 @@ +{ + "query": { + "filter": { + "OR": [ + { + "EQ": { "value.person.org": "Dev Ops" } + }, + { + "AND": [ + { + "EQ": { "value.person.org": "Finance" } + }, + { + "IN": { "value.state": [ "CA", "WA" ] } + } + ] + } + ] + }, + "sort": [ + { + "key": "value.state", + "order": "DESC" + }, + { + "key": "value.person.id" + } + ], + "pagination": { + "limit": 3 + } + } +} 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 07a9af8b9..645b43927 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 @@ -8,39 +8,37 @@ description: "Overview of the state management building block" ## Introduction -Using state management, your application can store data as key/value pairs in the [supported state stores]({{< ref supported-state-stores.md >}}). +Using state management, your application can store and query data as key/value pairs in the [supported state stores]({{< ref supported-state-stores.md >}}). This enables you to build stateful, long running applications that can save and retrieve their state, for example a shopping cart or a game's session state. -When using state management your application can leverage features that would otherwise be complicated and error-prone to build yourself such as: +When using state management, your application can leverage features that would otherwise be complicated and error-prone to build yourself such as: -- Distributed concurrency and data consistency -- Bulk [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) operations +- Setting the choices on concurrency control and data consistency. +- Performing bulk update operations [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) including multiple transactional operations. +- Querying and filtering the key/value data. -Your application can use Dapr's state management API to save and read key/value pairs using a state store component, as shown in the diagram below. For example, by using HTTP POST you can save key/value pairs and by using HTTP GET you can read a key and have its value returned. +Your application can use Dapr's state management API to save, read and query key/value pairs using a state store component, as shown in the diagram below. For example, by using HTTP POST you can save or query key/value pairs and by using HTTP GET you can read a specific key and have its value returned. - ## Features +These are the features available as part of the state management API: ### Pluggable state stores - Dapr data stores are modeled as components, which can be swapped out without any changes to your service code. See [supported state stores]({{< ref supported-state-stores >}}) to see the list. -### Configurable state store behavior - -Dapr allows developers to attach additional metadata to a state operation request that describes how the request is expected to be handled. You can attach: +### Configurable state store behaviors +Dapr allows you to include additional metadata in a state operation request that describes how the request is expected to be handled. You can attach: - Concurrency requirements - Consistency requirements By default, your application should assume a data store is **eventually consistent** and uses a **last-write-wins** concurrency pattern. -[Not all stores are created equal]({{< ref supported-state-stores.md >}}). To ensure portability of your application you can query the capabilities of the store and make your code adaptive to different store capabilities. +[Not all stores are created equal]({{< ref supported-state-stores.md >}}). To ensure portability of your application you can query the metadata capabilities of the store and make your code adaptive to different store capabilities. ### Concurrency +Dapr supports Optimistic Concurrency Control (OCC) using ETags. When a state value is requested, Dapr always attaches an ETag property to the returned state. When the user code tries to update or delete a state, it’s expected to attach the ETag either through the request body for updates or the `If-Match` header for deletes. The write operation can succeed only when the provided ETag matches with the ETag in the state store. -Dapr supports optimistic concurrency control (OCC) using ETags. When a state is requested, Dapr always attaches an ETag property to the returned state. When the user code tries to update or delete a state, it’s expected to attach the ETag either through the request body for updates or the `If-Match` header for deletes. The write operation can succeed only when the provided ETag matches with the ETag in the state store. - -Dapr chooses OCC because in many applications, data update conflicts are rare because clients are naturally partitioned by business contexts to operate on different data. However, if your application chooses to use ETags, a request may get rejected because of mismatched ETags. It's recommended that you use a retry policy to compensate for such conflicts when using ETags. +Dapr chooses OCC because in many applications, data update conflicts are rare because clients are naturally partitioned by business contexts to operate on different data. However, if your application chooses to use ETags, a request may get rejected because of mismatched ETags. It's recommended that you use a retry policy in your code to compensate for such conflicts when using ETags. If your application omits ETags in writing requests, Dapr skips ETag checks while handling the requests. This essentially enables the **last-write-wins** pattern, compared to the **first-write-wins** pattern with ETags. @@ -50,14 +48,7 @@ For stores that don't natively support ETags, it's expected that the correspondi Read the [API reference]({{< ref state_api.md >}}) to learn how to set concurrency options. -### Automatic encryption - -Dapr supports automatic client encryption of application state with support for key rotations. This is a preview feature and it is supported on all Dapr state stores. - -For more info, read the [How-To: Encrypt application state]({{< ref howto-encrypt-state.md >}}) section. - ### Consistency - Dapr supports both **strong consistency** and **eventual consistency**, with eventual consistency as the default behavior. When strong consistency is used, Dapr waits for all replicas (or designated quorums) to acknowledge before it acknowledges a write request. When eventual consistency is used, Dapr returns as soon as the write request is accepted by the underlying data store, even if this is a single replica. @@ -66,25 +57,40 @@ Read the [API reference]({{< ref state_api.md >}}) to learn how to set consisten ### Bulk operations -Dapr supports two types of bulk operations - **bulk** or **multi**. You can group several requests of the same type into a bulk (or a batch). Dapr submits requests in the bulk as individual requests to the underlying data store. In other words, bulk operations are not transactional. On the other hand, you can group requests of different types into a multi-operation, which is handled as an atomic transaction. +Dapr supports two types of bulk operations: **bulk** or **multi**. You can group several requests of the same type into a bulk (or a batch). Dapr submits requests in bulk operations as individual requests to the underlying data store. In other words, bulk operations are not transactional. On the other hand, you can group requests of different types into a multi-operation, which is then handled as an atomic transaction. Read the [API reference]({{< ref state_api.md >}}) to learn how use bulk and multi options. +### State encryption +Dapr supports automatic client encryption of application state with support for key rotations. This is supported on all Dapr state stores. For more info, read the [How-To: Encrypt application state]({{< ref howto-encrypt-state.md >}}) topic. + +### Shared state between applications +Different applications might have different needs when it comes to sharing state. For example, in one scenario you may want to encapsulate all state within a given application and have Dapr manage the access for you. In a different scenario, you may need to have two applications working on the same state be able to get and save the same keys. Dapr enable states to be isolated to an application, shared in a state store between applications or have multiple applications share state across different state stores. For more details read [How-To: Share state between applications]({{< ref howto-share-state.md >}}), + ### 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. 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 >}}) +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 state store 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 +### Querying state +There are two ways to query the state: + * Using the [state management query API]({{< ref "#state-query-api" >}}) provided in Dapr runtime. + * Querying state store [directly]({{< ref "#query-state-store-directly" >}}) with the store's native SDK. +#### Query API +The query API provides a way of querying the key/value data saved using state management in state stores regardless of underlying database or storage technology. It is an optional state management API. Using the state management query API you can filter, sort and paginate the key/value data. For more details read [How-To: Query state]({{< ref howto-state-query-api.md >}}). + +#### Querying state store directly Dapr saves and retrieves state values without any transformation. You can query and aggregate state directly from the [underlying state store]({{< ref query-state-store >}}). - For example, to get all state keys associated with an application ID "myApp" in Redis, use: ```bash KEYS "myApp*" ``` -#### Querying actor state +{{% alert title="Note on direct queries" color="primary" %}} +Direct queries of the state store are not governed by Dapr concurrency control, since you are not calling through the Dapr runtime. What you see are snapshots of committed data which are acceptable for read-only queries across multiple actors, however writes should be done via the Dapr state management or actors APIs. +{{% /alert %}} +##### Querying actor state If the data store supports SQL queries, you can query an actor's state using SQL queries. For example use: ```sql @@ -97,20 +103,20 @@ You can also perform aggregate queries across actor instances, avoiding the comm SELECT AVG(value) FROM StateTable WHERE Id LIKE '||||*||temperature' ``` -{{% alert title="Note on direct queries" color="primary" %}} -Direct queries of the state store are not governed by Dapr concurrency control, since you are not calling through the Dapr runtime. What you see are snapshots of committed data which are acceptable for read-only queries across multiple actors, however writes should be done via the Dapr state management or actors APIs. -{{% /alert %}} +### State Time-to-Live (TTL) +Dapr enables per state set request time-to-live (TTL). This means that applications can set time-to-live per state stored, and these states cannot be retrieved after expiration. ### State management API - -The API for state management can be found in the [state management API reference]({{< ref state_api.md >}}) which describes how to retrieve, save and delete state values by providing keys. +The state management API can be found in the [state management API reference]({{< ref state_api.md >}}) which describes how to retrieve, save, delete and query state values by providing keys. ## Next steps * Follow these guides on: * [How-To: Save and get state]({{< ref howto-get-save-state.md >}}) * [How-To: Build a stateful service]({{< ref howto-stateful-service.md >}}) * [How-To: Share state between applications]({{< ref howto-share-state.md >}}) + * [How-To: Query state]({{< ref howto-state-query-api.md >}}) * [How-To: Encrypt application state]({{< ref howto-encrypt-state.md >}}) + * [State Time-to-Live]({{< ref state-store-ttl.md >}}) * Try out the [hello world quickstart](https://github.com/dapr/quickstarts/blob/master/hello-world/README.md) which shows how to use state management or try the samples in the [Dapr SDKs]({{< ref sdks >}}) * List of [state store components]({{< ref supported-state-stores.md >}}) * Read the [state management API reference]({{< ref state_api.md >}}) diff --git a/daprdocs/content/en/reference/api/state_api.md b/daprdocs/content/en/reference/api/state_api.md index 1a3b0559e..229cce96a 100644 --- a/daprdocs/content/en/reference/api/state_api.md +++ b/daprdocs/content/en/reference/api/state_api.md @@ -292,6 +292,132 @@ None. curl -X "DELETE" http://localhost:3500/v1.0/state/starwars/planet -H "If-Match: xxxxxxx" ``` +## Query state + +This endpoint lets you query the key/value state. + +{{% alert title="alpha" color="warning" %}} +This API is in alpha stage. +{{% /alert %}} + +### HTTP Request + +``` +POST/PUT http://localhost:/v1.0-alpha/state//query +``` + +#### URL Parameters + +Parameter | Description +--------- | ----------- +daprPort | the Dapr port +storename | ```metadata.name``` field in the user configured state store component yaml. Refer to the Dapr state store configuration structure mentioned above. +metadata | (optional) metadata as query parameters to the state store + +> Note, all URL parameters are case-sensitive. + +#### Response Codes + +Code | Description +---- | ----------- +200 | State query successful +400 | State store is missing or misconfigured +500 | State query failed + +#### Response Body +An array of JSON-encoded values + +### Example + +```shell +curl http://localhost:3500/v1.0-alpha/state/myStore/query \ + -H "Content-Type: application/json" \ + -d '{ + "query": { + "filter": { + "OR": [ + { + "EQ": { "value.person.org": "Dev Ops" } + }, + { + "AND": [ + { + "EQ": { "value.person.org": "Finance" } + }, + { + "IN": { "value.state": [ "CA", "WA" ] } + } + ] + } + ] + }, + "sort": [ + { + "key": "value.state", + "order": "DESC" + }, + { + "key": "value.person.id" + } + ], + "pagination": { + "limit": 3 + } + } + }' +``` + +> The above command returns an array of objects along with a token: + +```json +{ + "results": [ + { + "key": "1", + "data": { + "person": { + "org": "Dev Ops", + "id": 1036 + }, + "city": "Seattle", + "state": "WA" + }, + "etag": "6f54ad94-dfb9-46f0-a371-e42d550adb7d" + }, + { + "key": "4", + "data": { + "person": { + "org": "Dev Ops", + "id": 1042 + }, + "city": "Spokane", + "state": "WA" + }, + "etag": "7415707b-82ce-44d0-bf15-6dc6305af3b1" + }, + { + "key": "10", + "data": { + "person": { + "org": "Dev Ops", + "id": 1054 + }, + "city": "New York", + "state": "NY" + }, + "etag": "26bbba88-9461-48d1-8a35-db07c374e5aa" + } + ], + "token": "3" +} +``` +To pass metadata as query parammeter: + +``` +POST http://localhost:3500/v1.0-alpha/state/myStore/query?metadata.partitionKey=mypartitionKey +``` + ## State transactions Persists the changes to the state store as a multi-item transaction. diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md index 8be6ac46f..1adb11fc8 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md @@ -26,38 +26,38 @@ The following stores are supported, at various levels, by the Dapr state managem ### Generic -| Name | CRUD | Transactional | ETag | [TTL]({{< ref state-store-ttl.md >}}) | [Actors]({{< ref howto-actors.md >}}) | Status | Component version | Since | -|----------------------------------------------------------------|------|---------------------|------|-----|------|--------| -------|------| -| [Aerospike]({{< ref setup-aerospike.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Alpha | v1 | 1.0 | -| [Apache Cassandra]({{< ref setup-cassandra.md >}}) | ✅ | ❌ | ❌ | ✅ | ❌ | Alpha | v1 | 1.0 | -| [Cloudstate]({{< ref setup-cloudstate.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Alpha | v1 | 1.0 | -| [Couchbase]({{< ref setup-couchbase.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Alpha | v1 | 1.0 | -| [Hashicorp Consul]({{< ref setup-consul.md >}}) | ✅ | ❌ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | -| [Hazelcast]({{< ref setup-hazelcast.md >}}) | ✅ | ❌ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | -| [Memcached]({{< ref setup-memcached.md >}}) | ✅ | ❌ | ❌ | ✅ | ❌ | Alpha | v1 | 1.0 | -| [MongoDB]({{< ref setup-mongodb.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Stable | v1 | 1.0 | -| [MySQL]({{< ref setup-mysql.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Alpha | v1 | 1.0 | -| [PostgreSQL]({{< ref setup-postgresql.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Alpha | v1 | 1.0 | -| [Redis]({{< ref setup-redis.md >}}) | ✅ | ✅ | ✅ | ✅ | ✅ | Stable | v1 | 1.0 | -| [RethinkDB]({{< ref setup-rethinkdb.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Alpha | v1 | 1.0 | -| [Zookeeper]({{< ref setup-zookeeper.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Alpha | v1 | 1.0 | +| Name |CRUD|Transactional|ETag| [TTL]({{< ref state-store-ttl.md >}}) | [Actors]({{< ref howto-actors.md >}}) | [Query]({{< ref howto-state-query-api.md >}}) | Status | Component version | Since | +|----------------------------------------------------|----|-------------|----|----|----|----|-------|----|-----| +| [Aerospike]({{< ref setup-aerospike.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | +| [Apache Cassandra]({{< ref setup-cassandra.md >}}) | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | Alpha | v1 | 1.0 | +| [Cloudstate]({{< ref setup-cloudstate.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | +| [Couchbase]({{< ref setup-couchbase.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | +| [Hashicorp Consul]({{< ref setup-consul.md >}}) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | +| [Hazelcast]({{< ref setup-hazelcast.md >}}) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | +| [Memcached]({{< ref setup-memcached.md >}}) | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | Alpha | v1 | 1.0 | +| [MongoDB]({{< ref setup-mongodb.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | Stable | v1 | 1.0 | +| [MySQL]({{< ref setup-mysql.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | Alpha | v1 | 1.0 | +| [PostgreSQL]({{< ref setup-postgresql.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | Alpha | v1 | 1.0 | +| [Redis]({{< ref setup-redis.md >}}) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | Stable | v1 | 1.0 | +| [RethinkDB]({{< ref setup-rethinkdb.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | Alpha | v1 | 1.0 | +| [Zookeeper]({{< ref setup-zookeeper.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | ### Amazon Web Services (AWS) -| Name | CRUD | Transactional | ETag | [TTL]({{< ref state-store-ttl.md >}}) | [Actors]({{< ref howto-actors.md >}}) | Status | Component version | Since | -|------------------------------------------------------------------|------|---------------------|------|-----|--------|-----|-----|-------| -| [AWS DynamoDB]({{< ref setup-dynamodb.md>}}) | ✅ | ❌ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | +| Name |CRUD|Transactional|ETag| [TTL]({{< ref state-store-ttl.md >}}) | [Actors]({{< ref howto-actors.md >}}) | [Query]({{< ref howto-state-query-api.md >}}) | Status | Component version | Since | +|----------------------------------------------------|----|-------------|----|----|----|----|------|----|-----| +| [AWS DynamoDB]({{< ref setup-dynamodb.md>}}) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | ### Google Cloud Platform (GCP) -| Name | CRUD | Transactional | ETag | [TTL]({{< ref state-store-ttl.md >}}) | [Actors]({{< ref howto-actors.md >}}) | Status | Component version | Since | -|------------------------------------------------------------------|------|---------------------|------|-----|--------|-----|-----|-------| -| [GCP Firestore]({{< ref setup-firestore.md >}}) | ✅ | ❌ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | +| Name |CRUD|Transactional|ETag| [TTL]({{< ref state-store-ttl.md >}}) | [Actors]({{< ref howto-actors.md >}}) | [Query]({{< ref howto-state-query-api.md >}}) | Status | Component version | Since | +|----------------------------------------------------|------|---------------|----|----|----|----|------|----|-----| +| [GCP Firestore]({{< ref setup-firestore.md >}}) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | ### Microsoft Azure -| Name | CRUD | Transactional | ETag | [TTL]({{< ref state-store-ttl.md >}}) | [Actors]({{< ref howto-actors.md >}}) | Status | Component version | Since | -|------------------------------------------------------------------|------|---------------------|------|-----|--------|-----|-----|-------| -| [Azure Blob Storage]({{< ref setup-azure-blobstorage.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Stable | v1 | 1.0 | -| [Azure CosmosDB]({{< ref setup-azure-cosmosdb.md >}}) | ✅ | ✅ | ✅ | ✅ | ✅ | Stable | v1 | 1.0 | -| [Azure SQL Server]({{< ref setup-sqlserver.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | Stable | v1 | 1.5 | -| [Azure Table Storage]({{< ref setup-azure-tablestorage.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | Alpha | v1 | 1.0 | +| Name |CRUD|Transactional|ETag| [TTL]({{< ref state-store-ttl.md >}}) | [Actors]({{< ref howto-actors.md >}}) | [Query]({{< ref howto-state-query-api.md >}}) | Status | Component version | Since | +|------------------------------------------------------------------|----|-------------|----|----|----|----|-------|----|-----| +| [Azure Blob Storage]({{< ref setup-azure-blobstorage.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | Stable | v1 | 1.0 | +| [Azure CosmosDB]({{< ref setup-azure-cosmosdb.md >}}) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Stable | v1 | 1.0 | +| [Azure SQL Server]({{< ref setup-sqlserver.md >}}) | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | Stable | v1 | 1.5 | +| [Azure Table Storage]({{< ref setup-azure-tablestorage.md >}}) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | Alpha | v1 | 1.0 | diff --git a/daprdocs/static/images/state-management-overview.png b/daprdocs/static/images/state-management-overview.png index 5c8e181cbd25262c78117950d759646edd649dc7..6b29551d30fe3bf456fe2c33e82f835ecde3f181 100644 GIT binary patch literal 194564 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 z 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

knbWmcehJJ(ibj8~pv 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 literal 90196 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 MA$KuFOw0BE08ZE@sQ>@~ diff --git a/daprdocs/static/images/state-management-query-mongodb-dataset.png b/daprdocs/static/images/state-management-query-mongodb-dataset.png new file mode 100644 index 0000000000000000000000000000000000000000..cf57fb5ed193599d19404e067d9a62503583bfdd GIT binary patch literal 210308 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%0A#Nu?+Qd2J4mS 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޽uol4ukyX979(P1&LwrEj$-d3`Ey_~UjMou&d*9MG|btxa+9r7BXJp36n z{JP`QJ5V#MeLBa($GGt{H8xqajYTf~VUe(r&E8lui*Lxr-heK?`R3ln^U@dFwt+!s z4}K^%hw#iwo>8~AXSWG6R^mkaDW1>O@ySRrCO5{|rgFMTMJ3NM#@cDR=k=&$ON6Gq zrOGLa00LvbUE1%4LqBY+-UWBRFO*iz(Y%yBME8C+D1@tnpr@t%!07cJ=w|+kJLB3D z$|pCX%30(Yd^^Ty@PB+@2GK!tChEgX98T2=jaIIQRWX-LAH=L{TT-t?Q;3Dipnq%Y z*{&1Ja#)_QdsK~Gu`xOQt!YM_W!=|@OXR-!J4hrE#qD5~rV0yMa^64`D?xTs%-lxv z7gmDFt$~{!6?W3qz7gz-Vv~x~6@iIj-$wM$R9``28E!SU6#K#Nlo9iUOgY1)bk>-r z$`vd2%rq1A{FiEn09kAT_-w6>+W6$Dn9@iUw?wObPk*&xXOApynbA0s>Ff}?S-pq^ zhdO4!&DhI&er(P?V5BFZ!bwAqB8k#IA`!<_Cc1Jluom45mzhblb&Fvk%K_u4XJgYsMvpPn& zy&B^*`MKH4a=n3JznD{Gcnvw8%L+3esWRa3BlB!%j&jGQ zRfzk};-kPHuIl3bmrwwKWKp5TL9T;IxWCHf&}7>iV2P2F;KFBRvI@@Yg#*B@hlzdH-1qvSK@j_pZ&PSk1{#4Mo*idbIrHNk zOcfAPcV{Wwzj}%<_0csBtI}AZB>r~qo$nIpSkp}6BJKs9yZc-m&lknAdDnmxm z)lNr-+2Ah5)ODUL3G;6;e8NJn?Vf`CWc$U|RShg3)n?fk4(nSnoK%jt4bqH9oy4+d z%b7;yIhJWw=cFtD0Zd`cXyJB7^Ry&>&{xcd7dNRNpG5Y++0$_ z*!l{)bf5XyUXTK(jCGpVm(@po&teCYRIF^Wl%-mzc=k1wA1wXwVB*8s?eR%>9A)U_ zL^&U**K#@4lqKrCF&=xuNxn?Fuui^A!p4Qm)zn*W6Hc9IzhLN}d)Aa*M|KoT{b#v+ z!YnO+z1iolL3b3*%kCW#KO*6(Tz6HV4I_}Ql%qPV61en!U+J0|3;vc~u(v?k`t63r zhjs7oaLMfdj3U~}|6%Bcbuhxf$1s?vKa;w#Y*X&=(#p*0>1T$t-vF@Mj=1jb3czZ5yuohNpWnlHUcXsIW&z$tb;kO2U3oGypR^ z!~NAO(T5LX!R1J67W}gcjrxKC11eSB^QhoNBFZlbuMeD-#%iT?BJ?=rpxL_$P?t?- zhhhazV&LF}Ks^G(@Buj)S!-4U_3HecjhHpUY8fqw?;kGcdX`;ROJ!`j+Vh>1zlKDj z+q=L>T_rup;qvu(o9|;JAwP(u(H^)B_T~R%GE{cbsub3gBS7D1Yd=twR6{>lN~tRCp?)>DqQ|Jc%z+>+Xs*^TUP#h{j9E>(TUEWIXTJU z&?iHwd6M~>_U)$kzrI^bpGo5MQh5z9M1by<&AAh$L589a+1%Kxr0Z98gESX=ihhQt zjAFH567wuiPRFhGRnIVMFL-H7PRUbgd!pwRQmIMJi=I_b(rGXQWu9^7yk$$oDpqPmEFK&8{N zwzU|utcjp|5v4H|`~Fq6uOi6a??`kx5jYX`e+u;hq^Sl8Asshln}X;@9u7k=7vRKu<;RXBzqBGvQ((ke;X|K{*;iK3WL*ZPTrv_3b_-C)9!}bKrsJH{hIZ`^;|Ab-IX+N_h9ll-;+Mj+3abdiPT@ zs)ExdA{Na0zn)dj;9X4UnI`7cwXKk69n`Kp8%olm_=2i9mSe!!;!-RT3P$)&bzhGE zLb~(1-5q|bLdd0}0^`z!`0~>QiHF-P#80E;#rSH(stLtz;Iq#z>^-#5S>zRzP_SU4LOdHsrRpvM457Dez8n`2^csa z#dcF6?}zP*9-_{+iz7S;qEU6{?Nm{kJYQAGv%WY)CFzq&-nr?Mj>?%vZ|5sB zr*oZnh1o^#n~02uh>4C9CC!goZxIz~D0YpMr=P~+L_aO5{ypFX{%Hrre5vlN@vQxq zHggJ=krBx!70@{P6!QxeXfb-B2$oTmH?rqZow<(;~pBTfIZ!=Uj|{xcG--NEax zl{G_uWPSYHEUr6OC0|AoX2sWkk9NC1Mt38wbzKyd@1Pb3A@6>3< z)bNkf4=*Mx?zG@z&hdseJX7-h(YVtX&eNG=D{8Z<+vngbTW-HSD=8YxmbB}h5e%6<@t1)J4_*R_!f_!t) zqkC~X%I@i7Yl;yOPQr>L``~;sXHdfYL}TfS%YD8QQs*lt^*r;nJq?^^n->%J56Uc; zU^*^d!`=Fp@B4t^iKS09dar{FkHt+>k-_5l96ny*Y@d#f5@It|!^SV37{fw4j!T{i zg13B79T^}<>ySEx{LsotltSpPz|&C>rOgs`hqJd03vh~aJo_OdP~$PyeFMslK`~AT zDt%l;U6~|27&2d;7eOA6@TMKOd*?nrWviDAn6fyel_&>2-@`+2ilaUwGv5L=wIuLp z=LiU)S0Mw|OCS*W#er+$h$ET|wb_JuCa;=HD5g-K)&Vzsq=!_5mECy#)@ZK?bI;!A zA9$}?tIou#_A;1tJ;#-tDcdtE!X~C#cNj{ZVd%{TtVrO2z#0R)TE0G;-3LLc@Un0k zA@kQS33!IOS@PfT5~ID$3Ko#B6s0Bgd#8g&Cp3Q{d?7CTeZK491-9pVc^@+wD7quBa3NlF!Z ze`AMQUnl(HdX_!=%+JzhI15 zx8?XIYV(AjLVMNNbCl*TnS_I&*}Ke+y+ppK-3C~kX{Na4RxG8bd&K(9ga#dM%TxOs zJy4@mvinB3&$~0XxosNPp2Iua)tB&f%_9$&y|#zh1~*j2>|?;F=-lM;*Pwe6s0sxX zJBo$aJHo@28o# z8l;hyk}i?%lziuPKlk3x-p_xG_ltuuKv>sWbIp0iasCe6eZjLEJ+TiCZb){_YxXu$ zmpYj{%2QVN46*=6qVQ#Ftc9Bi?p_2G=7ci0N*tmQP9O+%$Qam1!CUD$g0T!P#p@5F z@vp*&_}!JR!}>mxD;x2bWjA_Y}()WCKYJg^{4NMW+OV4Jd;a0?m8if+B|3Ft-mx0EOxRPMtq>waT z8Q1OGVUQwh;SNoZe?Gvis2whf>Q(T(_uu~=-Q?awY;78TSb+70e8)+BqW8rpL#jQ0 z?(Lt$#Oc=wWxb@;r9K|sz6Yr;7WmUnd9xVXO~ptQacf(p-}PHmXMW^<+=q1M>bQ;h znlyX+5-I{a>Suj|<4_yJ_QG)V9Fs2R5PT;xYs0J~W02iJA87|ZB+71@1h5N~u2Ul! zg(Wbq8uy~U0)WcfYG2v~<9Xj*>8ymN=t%)tofxz0^{SggbR3w;_u9kWGB)6*aanf0xajJ6nBx zBS9B*NJad@*-l;FY=5Z&J9fRzr?I&2HD3jLnC#EF=>#p<1?W;4xQ%zRA& zVL0exp}l9|eEx}hH?Tt#4fWCk*{ST{`_Hd{;Zh|24dcPfxKnVG!>(z~4d2gTLh7Yo zSlkDM6HZY6^<$C`;d(Yv9P?(z2fEBs$hp#Hw`VjI!Zo_HPxW!;}027^c;w{ zsm0O+U<)*;defo&0j);6ACae`lSHl;JCl&P;Pw|V64NsI2dkY1T!@lgmO{43=>xI& zY?9+)exLQ*=|Img6_6r_XmY$M41E6-Su>{pJQEBY2Y_CwG7*l@SxA!+n3Cx@ZTl{n zmIGCqCt<9$62qITwILvbbNRgr3f9AsFW*pt`6`miKE9}2Qk2`CHFUb$$=o$Nw%c7@ zm7Xr|Ww?1BY}wXtY?lx&&!KbXJ6Q5kE#VxZSA2Q;gGV_bHrJ(v@`Ue;De!hb-?p!d z4k1Pk((D(;=Em2KyMC8mxGn3ZB-o8YDb7IfAGd?)x?GnX^&PAeX zfqLn7u3Qn5$ElPU?CUD&m`sT{FYz%OZN_I?sWsf6B-ZkCxUVP2Fm4KHKJKaIg


zEjkOUYQVJ=SUfU#sX9dZNPepWyr6vSlO05sn}K)mwph5W4>O|#nFa-hctz-H=Zbgc z!~J)&AI&>(75B~!4{%{dM6jQx=OtNCp;eHR!=HaEt`DSSv{bi$L4Q6;sHR%gwz+WWWTt75-J4cl}f!n>eZyupRY_53&ow7zAi zm)is)pH=2MtMP(nwL}uP5$UuD?ND;N&JuB$7M!OXzR(v-xyeZy{wTABsrSq@}=dU9! z)%+s`#DrrCWg=8l`b)H;f4yzu`zTmS%cj~DVnni1s-^wWF5wNHuOk|LZs1h@P1el9ErJ;E=dnU=11KE!($j%JospTmz5#>f+pm0Ht@35wCXk$a8Gv-z%O8)`6)j-F)UU`7p zEAXRY+>5K}5tOY5@F#^*7b&*)`{@z|=tT5Jk;ar>-z1n}Qlj=gC@E6;3>8?<$5lCh z+tX|5e=t&y_YO;{*eZ)pDy0W9Z;%L))SeDeV#CKwGD0v&UJ*+|LF4%jR)1* zTavTrq6(O?FH6=$tb0cn7xsJ4e#8?+JTD;Kl`sq39!i9hW^nN(D6j0C#c3J}8OIA< z?BXu5{BEOXtOFK|;G}^sXvn8%`|kVn$4Na?tsk>ZgE5mHn4{;SSpwnIHmSTb3w2|f zU||zWm^!g0ngsk^`CBUh2%2sEebSs}(mk5$H{+Pc<9BnZ!@CNlExq>qIg;JrrLqTd zCdca4FE^}xj(vY05p1VuhR9>Azy(IZXQmmL~2bOS*(VYJHQm9i*Vk zThVTOtohtS$5>-ltKVAF>pGWx8znH!=^w>6ed=eH#LH)By&b6mjRyz~>2fJnmKUSR zM<=Etm9y#yIg)HfP8i<#*WH$Bd6n*Y9xkEbHdP zso=XwZQYPypx80{CPnk$00fC0(d*)jx-+ac;(O7!^k;Oh!I197c^c_A9-#^j&&KbtaOieE}!= zPOkv)`(jLa@Hk<=eenUJW@GM8d3*U797MBymNKyfXAwSNop&<}4sJvVb1LV)_+P<<@I8gUzhl_tOrW=Khy(owb>luk5tnE2WuZ@~^jQ zs+ncHw@-dQ+cae4Bi8NdVgJ1J$d{z@`q?<9v>`Wn1D3E2veet<33`04#tB~238~9z z`J@4^DzK_Y zgW2FI92c_s7IxsO4}^J@J;d;L?jTm(9x_9_ z0xanK3WUJ-&hKuNvat7$VP}*B%vZ|mGokQA_Yq<88hhA==9jE+R-+f3!q;5C{E(K0@3f;?Y?qi!;P4~HHwgb zhYtTuC8xJF{~sJRgtSGT;QUY3G+`_%p+YD9_qCP8U9) z3%AOEv++}bSzJ}ESxy;mc(@%^dnSs(+E7R;&;j6{<6UEmy=XhP_Q)_KZ5*<^&17_O zx?JfY5c?#gabN@*u`w_f1D7E(zf7h-8?L!sw2Grr-nM9^9&cC9H0m64l$s*e#M#mn zegDBHciFR8dAm+t;qYhUV@4a{a4V7$i|=njj$yodZIYN^X#`!G3%lYH!id_F{6}P} zLaW2Nls_>vVyf86)7d&)_+UEl1K#wD^m)`Vns?$V zo}K$Yi0ucEm~8JKKWCMHwaJbY_^WKMKFpJs4d3HZbT4PqLd@lzr*}4sLfs_MbZPqs z^}EASsF`K3gB`o~9*;_2wk9g0o(8W?Yjuijnj_tc<_opDXcZoymHv_dh%e;_TT6nn^ve8vAK%X#3NZ%(BF;ZVoPS7fd}r3r%dWnZCPJ2>o_<7k%@YZEOu z7*+bsLFh%Rt3JvHzS!vV!G4?Nm$1Y5e-JDE&Y80Sl)?e%S<3Isb-P2L5>Uu@F>bSb z!Av;g?-w4295beS%AC3;lJ(GZtb4QNMT{e|NsvB1UeqE#FOt$^Auh*PaI|4xh%_=i zV&ocEs!&ddjGAH36ym!17^w6Nwb^rIqOh*#GvVLL#N6G>BV$`D$L&1pap10aUq52I zF=RJ${Gltj?^fZVu;a_5N`W?%(Bn1_0HpWX0pay#_E^?c67 z+ccr@NGR~FT0v1-e&F9BR()ENe0IxCVJP0sF2zyO-`4Ly*T26*QpKiAcuqmc4l};f z0=3pZC?)1Qvnq1up{x_OD$PFW%5Gl5H(+{@S|PPmBmTaro=`FSULoDZq0zt{ebiD} zCo)6q9el&Ys$z6Z457cJr(lr*a#)1}mvEm95s#reCp(X1r&qMaUTIrNsI%yl>Atv3 z>~FA`mAV>1cYRLKdrls@AmSKcVlEsw0|ElcpKXDVh#;tTAV@y(#4*@E=;d&*M+1w%wFF>LeZy*^VXJG96qqDB)JclV@Yr3L|fW=N@vEO z@Ad%yE=tN7S2%aQ^i!FLMAf`!BVxPK35|5PffC`;&tCQ2+bs05o3v>$@3<*Ng9u@;5fz^rejo=m?f^f zq?*wVQrE#L(p3u<#QW;I1Li?u1Vo3AQ>$tsSzzkySn#pKG$tT(s z;g2Qn6BBsNyh0afngsOpEHGxU4TCSD4;$>37c|8&G)+3W-g|QY3jbPvqs{q3HXBdA zsD|&#q-8x;p#N=OmeoFWj-`4S-=K70;A0HlIeT&6AZ>Jq&off97qNC(V<{r8nx+v| z${lgJI5W!|M*}F=PAi?Eavo@GL01}P@S@y6{{2| zF5`Eb>Tglj>w_K5s_u^0MG0}2#u)woK~+46oFmcWS<}Q6=ULtgfytfR3MZfSSxA~->8#%C=-;Jd>h>t7A%Z!v+6kImR+5J1>@Tl= zvly*1qhQ+UZ+Jyf4@s`N?mxI*yZs=B-#_H`6x_N-Ew{Su@Yj}2Vxjw{ zLtQblyQ3I&k2FXZYb-DloxS#p)B-KzDl@LSgkjFd*>UPyM_T7(FYa5oc-@H%IIe}M zBH8UxH7C6n;WH2w%;j!G2H!OR7<~se+hvJVRls2)636E!>f~iL7;&6stewAXKnw6Nu*etDW9A3@+)x;Er-& zz>5*x9{D3*0y#?$@2&wLu(Em)#U{x#`%bvQAZa2%gZ)GaD!`3i7Xq}nx%sGC(m^|0 zfeQr`jl;=}JGFEEXuZhRF$B)4I|Xt~xVqb7`DESYQNO7l-qTH9G3Jhz9j3)==mLzN zE5qnnQpBp{xm+Bh33yQy1EYLjD5iXK+TjW}GN+jC8R-@|;f;K{&L4F>k%QxaqRMGIf3NgtMj>wK|Ft`ThFsiUxP2pk&nkd5o>pYdi z0CcIwws6^!c6stS#@71C(KobWp&5nF1C=qZD&wbi^(*Rez})VKW3CJ6{^ohtG}yQO zQvQCS0+v%cA#h{px_kZ+v`G3~YsPoD_ICPX;#HA1B|d_V%$8RqAp#y<&m#=cJ{y+x zI$sQVS@Z(`zF-mpEXESqrw5bKp4!m(TEb2~#W%tn*1eVE#IXa3#?--e~#|||wJseb*9ze_h z&DDF7)@#w%VYoD3YpqFlAG?^-<7zOLq{Jbf?y|uMTe1`DBuk~)9YZjksRLh{&21>~ ze&)mmA@a~~F|Mg%^%_|%=19Uru~DTguVvJ|!qAf6*$>RXB>)ke1eitGs#5zP@FKhs zvg!`YA{P0~*=JCZkbXeF!lDTY4c%i=U^#lt`jE}@f%?112FULy-04*c!_jDiz#tKj zfzFr|G3vKzLI_i-phA;F#Vp}B9bEo;2H;vQo!)4CPU3ah8wAyFm#&E7R$9RNn?072 zl#~HHHWxO7ktiRriRg|hJe!w2>kam+`b?WKekWmDpt3$$K>#cz?Ya+QF8fW1v420l z+Bpu3!o1+>mOu`SFDl1plEF=8hR02m6zSJP!45=LF|~71XO7)ztrn2G2};Lb`X-4* zTKUGNzac?0i$*tiM6X$li?FeJ^28M1#31@n^Li%P@olmk>|MTgz;3|w*K(5{iSMO~ zgp07h`s7@3AZlo}JU(U_88sd= zS$%!+XSl_RGM$9C{B00E<1Z!INOFE=g@gZaMmebIVFXa-gODfe7;F%3Gpl}v&0xn?zce&!cE!wLY-T=(o7G5OX z=&gLOd&9Uri>i(%Zk&BW^s8Z`k;yoe&o<=%kS+PXwZN$Q;A_O(JGJMlLaNUVygwV3 z=%AOb);99R4!X|By=+YXZ%f-uYbntrz0#Uoc}h_Nw|Xxd@|!PlILtZHcX{^+Z5qnI`5Jp4JD0sf zNWY>$kkWwh&W?9nX?Yn?f_5Xg{vmqxyY?QNmVOrcQbYGK)Z=3=#{^We19S1R0m_G^ zq=8E;yZ!<&u&v{8*drQn1ED^32-_X5vEg;Vb4^q(C_o+#r7}xKSUVGiBHu_?QX|^LAY1as>50Cf|ZF zkA07m@&7VnXXX7)3I2nKt$t=Ty{C}Q{#pjxa0EB;$7emhcA$n0w1u6n&CBgaaBEVN z2rDAD4(!Gdd&ZUa8Pof1lv*Q&aqX zmra-rDGo_uMuJLY>pq8XF-9CjdburL>me=!sZcKm0y|PoeE;ao8E$g4#fc;5JOj-c z=4uxaNn;eBAWH4nOco{>&1kmB-02qBa^zt^l*KSrxKx8A{TZbqxB46!5(XA`feSU9 zmv82ma{r?R)8A|ah098>5SeK9^O`T~FgH9#B$hK7RKT85dZ)RMX0l7Zhajk!Wfd7(}o{;=+dF#Ocnv-ND7Q zXcAz^{e1T1?Hao?xoZXu#9L_I*lK_t0>dQ@1QK%Ig zU3C7nY?QpKQnM%wZ}+GPQcMhlXCKG9&`2gr_K2^sF;Uo85xd^`@E)}2zFQUGZwjKp z_DdC*p}h1_oy*4P(bR~Ar)U}vIWtY%fD3e{)}6~ntPcr``ee{_d$fKGjitS%tbh2a zLspa1iIZM8@>kE3PMd`jm&PRpQ5*uI-y4>3+cef41n7Ih(^LlFG0v3LE#}T|S`sg8 z3_Q)#e;zx~SEC1_=TUYL@PBkYMUv#QaMxRwT?E50Mn)=?nk-qmi1}Q3a}nttr&)iy z-|b=v+o4ltiJL9}$U_1ng1$!rIrwd+b{tGEVAsAKf}<4eNg_)Xv^R(oAy~d@pTp_0 zM6`2`yBmeSoV0~u5JjMp5tPiFI21=WpZWzrPR!_w^D})p*Ah@DIQgc2q|auugdk6q;sF zj}J~~zuqp-0>uDq^9Y#r{SF4p^D|okURR~bVV(96aT3B*20)pq5;WkT14fYsL8I0T z#N{nj5F;!wX%qY@ec%HqA*;=K^$}I;Hd82O^T$K{(Shul|H|UkUsiqp`Q$$XARgUE zqWq&q0C@*vgro!DI_#Dc!Vt(a#8};SzHSJBaW<@|KbOpZwa-zl)SPToem@Fv>;cy4 zMFM#Q5UL&kF(g4hdv0kCG43`G{{u$qWq>0WwzW0m_A&sJu)kkWrJ$hDU4Zy^06g0V ztIg;CzK{rTAz4SEIopu=7|3+1;IPos{VNE{268BRUhL%cy%bj${nQG72{M{^uoC7K za&Z9q-YWxOmCMtJ0m6U{mMz>X+?!7mbg4}N6y!&_+8YR)9ZFkNUC74z!;V*YC(Xiib8^vD#X4u)0XD zfl;FVvBvsW<*PU71>k^W81QChiY{pzRK86Q1>#a`^^c@Nobs~(r&I-CB|Kl+eel3w zwO}e%SIU{K=ROY2q4jc^;M@SI9}&%_BgVg0N;ne?^s$Hl;7k3$VIiE`=o=Yq9sp)F zE}~SGX5uN!U}k{t*wtII`DIf1e5+eEW4o~{y;hyL(icgecozf~nf~1AA#g*@0QgV^ zFmnIg9e2vRrMejil*;%cwbi?OoPDRb$FUJR4ZNQH3C?O4PLrfL5sEyp3+$=T%UB{| zaROY9nBeWst0@766-;a7*c#v(j@(xJ$a+~LLcn2NXaHQ5PUoz+8UOWq_3{Mxc zU-T&{gj{*U-d-KP0q$WbU<}Woy4_jmwz~5%0We&m&gyvgD)PsHrp>us-ZZAKMSc4R zb#Y%&u-M3c+m-qjSpAfLzq z8_}%HK*#H|LhgMe1VD>EdI*;guZr=3+JEmrlD_2cnsFaJEUI0V=>VV{egc${L|hX55)F1w|PdrTR`V*|k0 zywsMNekv3Yf(|a2tCDwXXl9z2{$|)%j96j}q?Yt`tx9*6eu3 z=rEkopC;qqM{yE25;nFc^6=Zp`{KqA8HsHkgt+IMSgx-8MZo~rLTw55wN zMcq5Y6IG3PdP$wD_Z)Eo)s*ZJn6(S6fPp}OECNIN1{N z048&lNs&me-|!RL{pKX^>Qg@dFsMYlhCr48&22|q`h=aAu&v}IA9Um1#cj>acRb$O zNO3c_C7zskuo~3g7{{>8l7<0MJaC947Rx)32gf$-c_OfKrS4xT!c}+<4 zOpKQGcM6M%WIHv!nOP^>V0GW4*Th=1Hie^^@)GG#G`zh&uZPT4z%Xmy}sheA>4(y_afV933z;s5tfi<39e)@Eq1|iohp`} zGOFYr2Wj0K+Reb|9`5JaD*zD4ppXSe*YCvG7pQas*-S@zG<#5#W8|6;-aP^p_-L8I z&2qRE3cKrpCS?4}z+KM%nIY;P@YOI~YH}oDd+Eg&d-$&{B5nelu-La~uoHj4kQfaF z)dvD0S%Ar&O9P3%1mK=mNKo)@jikMcdWXQ4RKSwgj1f$$wrMAs+w!%bK|Y>BLN|Rq zxz|(HeN6esbEB%C{XB6*$Q#poxyJsWAh55(W1`Br^f~-w`7BjGUCabZ zk+^T0NaF|Rc)@hvvB5x`f|q{0<}hjAIs$|K7uz(n(-5wioKP&;HD7?2JG{KwZsz9v z_h~`}oKl+#hiav}p2M!0g>s`JB2Mn>zh|aW2>91i^`-y;GB&jKea{Xf?#jP(j6L%nv~OsW66B(TFCKmxwcZlUKC{|Hh36PHm+ z0u%IzWe5F#pPnE;_?ZmiQ@vx9ZHa$eE;uQKVcteV!C7OquD9v_D^>u%ujUO%0$Nw_ z$D;o46(rz+8%XKe;;~ zhr(@l0FMC;y$GOilL8zpOmvIw*Z(|qvQwep_Rg_P{B$t!z-|rkK>>D5)Q|vwy6oM5 z91*}#kq9Bif%X2LW3`t#4ZPG=v(KKR!~xIJq2tacMpOd!iBuc{0y?m|zVw*^=$~>r z=X*MUK4d&k6Y}e5u$dbxiuu=>dj-sEtv}v%Y4s*RwV4p}I>$knd45k1B~p-C4S=)M z1cVnV(2}SnN(=LNr3BJq9$-fxm&L0Fk^^#37EaO7_mFVw1Y&7mt}?oqceQLFRZxnwTm9 z43X92%oHEYvwJ`O*>=rz6(0YONjU(o6Ynj8<_9=QzL)|hjy0`zzo(A(pBVrhj(3_6 zrUm@1FKM{{3eDHDz(R84T*8Ke9m^JY1Mxfn^+I5_VsjC_&Je`>a5_M`1zve%{|bc4 z*RFfhZ^5bc3LxuVxW6_6J_K?69%qAqm1O&Yg-RwV4r~;|kU2o(zR3TdzZ7>t4bVd{ zlkC8GPQV2F3YjT~>1_i2Z~_3wSjC4Z%>dP-l-Cvl6@+x>Qo3VP-A)a%@W?NncVi&Q z7zVghXHlB)(n_uR7PrYoP?c~xTH+D;X$$PP;qn@rW_J!iSnCAxfx{tsjnA1^wvuzJ zKC56dy^)5U_v0q85HbVCSO0;B=LmI@z*b#(S^&k;{xkdDetsgYYTUJUE5W~ zT_yQbvfGM>6bOrPi5VAaO{8K>!QxuTDDTaq*KL}BOT>y<;6p-xUAH(}t|rT9&_S>H zH4WHQrZF1@UUlT>u$WQ+6i;q&@V}u%spKG#*^@l+r5f~O_Xsq{@xp|pz}Ou zMO}Q+_up_hy>A=>xMmGNM8P{c&U3$Lu)Wdr&yCVi3=#wSYTg-xIQFcF@Q%_6Mlv^D zg&iFKiJ*?PUm@vUahCfXSc|w=($+x}LfT4lncT_*Tz2#zZhx^QG1Cfujs`5U*&;bI zviQoOPnf0OP4))KTEXxR%LbMS;QJ~kmCO)PQ14<}H;E>BB0Z^%cj&TCf}KGvtXA|! zl(Jwtwidt{z5}NO*t|i2EOiODd!SMtSgtJoS)2$6rolLYd8vuNNIWiS*y1Z70fh^EF_dCBC>KTF2q2_^g>t~_ z%Yo;4w%WAL12Bh&b-F-5HPyYXsf4C|(3Ugtn#zutDuyc3|{8 zvbra$xz}g%e2|>2HaISw+N(Zy{O8FS&_w>9kMzdf^Q1?=ipM!GkXgnQKZIKtk0u5- zT3F3S1a3v{I#`+-8pGOx5oFKL#5Qt32XIF_2NZ-pya<=>4T7gS%I38Qh&(aMoSG-I zCRYI`M8GRIwVgt0+$vjWjy z0ih}I#EdcZBkUwY6T zNeqFUHL9BsE^qJg*;43r;JZk8umsB~-{xacOYpqnFF*NG0e}s?JEh764JQ#l=Bx6+ zHectmuP#-AS&A?f61J)ll!~J-AKcZgN1BKC2_b z!{b1MDdM|txeXhPfNy4gF#PNpxlwd$2|cqNx&{6mtT9$8tws<*4nR$$fHAiHDMCyH zrt3XpzO0C;k~(!1xP$r+oU>d~ZZo788~*{`{G#@$uH*R@ zD%vNW5BdN5WaFk0!G8L39BNvAn#o;dT_6A)MONdlyI-B=$3r2AZ;NDc*=OrlhaZoD zor1_{UAo&Wfs%Yat~_H8dj$6~wg=`2zW|%CA7!#)UZNe{x;JM(N z=lSq64m!YMLjO9-tHY@0`P7KpKZ8U*Y-tn{)$=6i6_uArWd;|S1a#hR)N7+bY)cDe7GB+) z4Krm>KYac^vg4W@@KeR6PVWj8pH=+$jX_77EW3!Phf=aqgQ}j!{wUXK!*ma2YIFZ( zsLV-WHJEdX+|T17`A3xRpM!8u3IzrA^t6BY27Dn51(}FBScX?sm0Ep%B87?Z@+ER) z`*moo&Gb)MEE9V?d3I%!gNRzmn5{<2tDpJ(cE(ZtBwkS`tWge`Jfv{ zR!j4z#Td)M3ai`E@mcn{;K))MCDX$*QH(GuGo)1RHUcII=yw5toMHs(+Q1~8onJs8 zp4ChSn3|wGJ>D^amKL+c7!fc~o4lYrTm%lSlfadzQs*lgi0}G9Z0(H8+>}b#!!u9%A}ff&lpO@y>px1C-#)Y?@nIHURSH6Ne2> zTYEbTnAC&tfs{r;okj`dTfi`m7*Mt(fc?(2&-?j0iAFBKbBY@W<0f30Q&l=#kV5st zKBy2IwLY#d+IRMWs#^J@571ZM{>FQ%)NQV-ONj&?_E8{Z?`s-6p^I}J|HSePXp(wB z+(o)#wDiC5DOy8W7%ZjDvm6{4O^R`<7z|LpKY!hW;H7-CA+cF$Yr!!VdIt<>-#J&* z?z90j_fi`xzqpzmcM|dcr3+y^!Myz$WG(B*XsA=kkb9kL_p=7NNG3TDhc_Ou8-X=t z_lB&H_YDSUHi#)HVF0_b7!c2P&CkzooHOt!El{=BgR=d*FpJ?7dA)%?strs8pjPDe zxn=)VvSa}MJVUc?Ch;qCkj_ZP67i6=m(9`xc~aPgZj=cChgN#Lp8bb^4TdZXN@*?Z zkTq7QKZz39E}vI%aTu|uS4F4z->(aI?*bV51lad1XTBx=gC(>9oEkXn+C3WGaSVZJ zF+4_CDye`cJ7|d%elA75RukBYjg8#_sH+(-`^^(hkJo=Ajp9mS@szM{WOfoUi#&p)2vW*pE3 zVmwEXeFISdEO;{YYbYfDfH(m%c5gD&Gi%+q=e++Hj)aj1z7fp7^na`ffb|CzxFU@o zZD{|OGA&LEzCn)e_P=nq|M@(^x`@oV{mJarV*mSq|A)zqiNu^MIoOl+|NLzYaK9a? zM)&_8%u+D;2IiRq4cvzQ8b~9XoOcsi96*0*?cg99G*~tPo!7z5O$wmZHanDA+BN`U zX>ET$3jAmRXk{TFA$5b|v|1IYD2LofRi9l*Krybk7cv@EuqN7d0#aEGGSiUH;J036zN7O5kW{Xh2d22k^pDp!QY+ zf<;0b$6urIN-bccRxMY3yDSA9`;b;Zp8AQ^45`KKn8brhop|)ibJI&`_(=R)}c-v4xkN*Idz(d&=hrjQ*`}@`9 z{q2_utC{_Jr@uZ{J|lS2E^OH%&=p9aF9EBsuRj<^{tWDOGmY8}mI1(dt(1%=fH4mO z6GZ|^tjK@1I_bM2F3lrFn6I$MH*_7o&^xT2X)X6mKIvp$)Lgba4$vRw?xTp(mQOy| zPkoWs`ht9?pf9#bKsDK7m&QCQ==6xw&-C;8M-(gOKX>LvR|D72y^u=16m@&1g5u%h;D$knXESGys79sTH#;$F46fdO>Id=~n^#9OHMF z{#nEyQH$nl-fceDXr1WiKSJAi#n98T;p&aLQeEU3`~0oDjiwA3m)yhi*tklwjdxj6 z>I|1fY$rUwEppOENrEX~=ev0@wgK@;@)rQ_!@}mfZGpvxF0h*80qXAZ^Ka0^Rn-C6 zb9LY@D9KEIIlRjz%jk$uipdc218|iMtTS6#D?dxTnz;pdUvy>cE43sc>7Od@>;J?Hh=)3YsEe)kioGL<3~ zu>@jb;!%=TP;Z(pS3?F>Q1MpR!)X@QgKKc2X<$=JIHU61fI7g*`MDSRPQ?gW zA5#hXkocDgH7Kd=_V{MZor#|>6v>x=tn$C*yaU6DiXyHr4;T8@7Rm-2X<1Ndb7R0P6!$P?w)5mItClaQ?73{gMXx z<)p2BLGV}5_chu2p1kn%+Rvu60TgE9^yk1KhxcWd6jZQ^LKnZs>EL_v8Fj;sq;nvr zG8xRGEB8bKQxU71&wg=+uX|!H=R+?K&(7<|1$%&{uvy#N%Y>`lDR_|Vih`_urUM-R zMxZcw1Heymv8WFcq8{LaPJWLP&gfg&*rr~3jc-VFz3JgAVqMY*w2Y~PQ?B#3I<}L0 zR*pid-*{Na`R)YUl4q*$*H{9HiI=Z=-QnF^KP#hY4S8$IZ|_$Yo^hAYtY4ocuXBIE zCV6|jepWSbdR(@T;CsG$9PFFmt8hn(OVOP8${f|M>NxN*`?p5Sn*!Gm(a=LZsiy!6 z57vqmDW3w(pr z*u?n|Khmp5bo@~4Msym+m2by>r0gR#^mnX<@*(=~1w{igkNU$11jluoar@59SmZ3J zQdptY?>@dE(@Q@IYR`l5{R>G*rT~Yhw3(EFTOfRZ%jJWoep0{typ*CzbUaR5 zyijyfw6r*Bn8IM0_8n+7Pj)j_>RrraX4(O1`@=YLvF?l9?3N2M7VgoW^`p@(}A z8$nBeOrIxFefYF+JKZb(;X;(>HMWivVZbQp_gLa7FsYmH$UCrU)i*$^s&1^C#NwE1T$z4+H%pOEqKa7fW06+2V343#Me_a&qQ&PGE-h9` zPj;!tFZkP^g_MppeXI0_=ULM7(!lR}aQQ=WAm|EL(E0EJE4?V|fx24R=rU%OP{`hr zkDG_rlKd(Hsolv(%UJ6BRZl9j&5WR_%y#*L8BxOAAy1G5A=;}p5>>0j3qxK@*-mMM z6yCxH0%ml^u~=$>Qm55tB@b1h?C1|I0Z2=GhKE9L8uT|_E-E<8;}Hi7{TE`12)tJ~ z0)&J)S3BT9fF25ZYNbjZpo$MHR)=B5S1gj<-X1SC7o@nwo9SQV!>j&bB)Uh9k9_czWafei)g6Ruk&bi7GF> z67iL;Noo|cNoFcdS=@b+AWmXTA_gb?Op5J%OvEaO+Ht#}#}(G{Kvfst;qoMlHu~pa zn@ub&;bfB{w`)HEf^Vajoq1n=!<2V0z6bl&#MaX))l9XElox4Z^_MRdZJ{mF8NXz@ z+5a|{LDT?uWnGZ(OC}7R^LK)>I=Lv6VGa#2%oGat;|eYRqEuBTPvPWi)$7AWiyy6Y ziIiCaUh47 zM1I2`LAM~<Uuv-0dz-%Q1iRroc`^Yu{W>cUL>|IRBt7z!3Up3ljqUESEko@M2hf~$ESEqg(Svh#na~Q@LJmN{D6;JYe<4+G-YwQ94 z(O-dLmn+D>-fwHwP`wDR^MCwosSB%`rmVTbm;5%t^ZJOmxC*88`0WUsDn4r~h?{3N z>BPLnQhy?qqG#XaZQmp>P>RKBGT)z1q$;n9!KL!U!UAjns*ME>9cZ`Ds9*{solu%%aBIC;y$wAd&u zLeukAB0zEugEHq$jl`~*5h#y~ZJu>8)(Ti5ue68$tr27T{f=C1Z|LZZiEegchE zRXub>l0B-LN}v=AkBXa@`a@TOGO?(^a~h`Qz9-)&snOty@r^g|Ln@qZjVsD&SsE#Z z@!9fPp5{}J=hjV58MkIN_c@!Es_m58vmTv{m9R#Ly+8J~YsKvnZQweP`u(kJX868h zj&9hzMK4zcmw?KIlA)Vv@K-J?JpuAP#M{%_(^3W|}S21ni2 z)>Z@jy|6vC-avri))~z%O7dt5YXNg%lF6)f zqvu4DA245fkX}|`%Fd9#yW^Pilz2yo=2tix{Duu~_{89KKeQV9;5=JvnVXiB^MfYw ztNLwUKG$aL4vAUx!}*pLqbs8ay}4oz0n|J-g#@F1A)DjRGKzICJQU}e=6<@T;mbbT z%hBf6Z+r;W1||~9o8@g&=Hge^*I^a=cle>3do6#Z&|TRe&N%$Dd%l7l(xqYG69WA6 z#G6K$`06NkR;8Qk|~A@ci2vkraa|K9-0Y3vRb-jywq5v zUi>i8{p%_pOKGe3^V8ik!SQ?LDrZ4w8!h=6s&(h3z$*8bFHk&6rZjZirnz%JFZg2l zJ${fQCggRv%Bmr7BN0%$iyn{P+-hSl(^V~1*x!S}k8O3|G@3c5yLP@>@bOkHhHBw_ zQp#d_ick>tIr-JB4e;~GbE{v4X3QIRbca zRA^NIe4e$drkCp8X6;{<0!>gBu};JOnD0M|1R^s8pwkSzC1Nc0Nd!!W?_*C~|79CYHWLo2V8_q@HZ;#fS+6$v6E*PIneF0wVTSKt8po3hKe z2d>33dgOZdQ)AHBr5OiV6>J)_AD(U{p?k~8{sKm)XoKmcz|KXkpuI#}^fFy=+8q8UuPTwwCUcBnNxPa+ zTcGrIsE%^1tr1?eY3}QgqE=Aj9{itazK*lU_qItrVdw?m(&H}uiYg5{Nl*#X(Z*wA z_G|vG=*WRrRbJrc|6}hh!?N1D?omaN1|^ji5CK6D1f@ZwM5J3nQW`JpqopEmOWsV%PT8#1Z>M3$Aw5sEm#f{~m%-j@a{ey^8hCo_ zL|P^vMv*rP*X2&Y#t9i@kMTRL3qitylNqk{2Do$Mke`cJxqP=;`7C<np3D}>uwJnjd4hOI9=S*!QtGbhe|^9=rq+#!H+ zzn*Ud62-*qHOo;Q$dKlpAsocm6X28 zDVYNLUy1@Gt1pk>vVk{v|!wljy>8aUV9IoZRoChMe>otJi zUNP>bTmL%vamtE>grqkMh{d`+DRKiv=42-QS(yPKlz$Zp&KA}#E-ov0*zcPcFRn}t zN`*DX5f!$OJk5cej32tOhNwuRU)+cLThQHC4YTF{f;1vSiYa&5@znb-c>}k?hg*j0tDr4~y9KwepFl_N!PV4|#D^2)vjZvk zFUcudU)B2mI8bG4v><+5oR(Y@Ab4H_MWpfR=|=#;*9;G96qW<{teUHf3XpC9Ffe_b zS*?Nh?|Q{-fDQOh7e*#&hR?_eg;RoQSGF!xDrWmK$&&h^J>YfPEh;LiB$({H`OLDz znmMu;#hb_Wv`(ch^mMz8Kob8ZWb{HDA2-rON^!-u$WE?`8hTLfhxR$L~SQ;&3S z+xA4L)}6ze{%zd>8X}=J{Wg!gLn}?OA*nVNBU^I)jB344q-e1h=$vvU491jO50|@cx zmt=>50z~>~Yp!0yYwc<`8k`X60bwtP*3KnWn-r|L+6=xVSIY zH93-GV&oUsHn4;`;#8<-H^_)&v8J2#ulrH`db3KXTnr6^PvB6+4?wmjT?H?O%Uphu z0{THP-vHbr24tg5H@q{bJy13SktNjY4$IWdk*wK6ArOfme6Gr3la2aEHlEdXFW={} zhzIxbXU<=#Tw3%~OWzbdE30D09{|~U{Ed~7*-53^q%Zspg<78l?bFQxRD0v3ERBmk z(}JhaH(t+A_0Up@g39R&C%Nrxt2C1Bq(!v*S!yVAm__1sw=ep!zDpP8c2Q?J@RNwS z8t^laju#?FV8`=ZP!g3o3F@A~e2&%<$nluPBTBV-i9hm;bcnv>{shI^R1*Q8>kgrX zg@wuEWhgwFY*O@`7xC2r-c^a~E?1sWzi+CEsP8`5-4FprD?diN(*Xx~5E$KZPAJ@L z5VegPwNbxCrj=e7FG|0p(!*}p+`7bG6x6n92BsIk~`k~|3 zZp%V;+x&wyLxQJ5(8EJ5Vmw@6oEXglz3R8lbIef+x{Wx5M(Z0xghxNz z>be54I5t^Cl>3Ev-^*XBgJuWZ35v zfX;S%v*8QLT<~*-_)+IQ>`Hev)CPT!>{8_o#dvC%HS&x?{Bq)bExZkjRB_*)7kjR2 z5;0pH@33BgzIJ2qAdcXc1^$=q{{rov!3SsBz;7e6-+nKvaq?~B&rWoMQ9N)Z~OzSr6(>b9)FF`8c zoQV0h%{088jfIcLG?bc!v`gT9i+1ItKb28N18UYY;oJ(f_b+R4eofCSWP0X|*R%*KJ*sZ{10dwYZxD4>Mnd_0%U(qqd} z885of3$E856c+LMSNEM5Qe9Az_RUH>l|vap4{^r#FESmMI+1qUN)a5H zpxS&x+Ki5X{2YlXs$yw9u-ngvGI8I}A5_o3Ni2If>U!$gHA>~m7pu5wVFodQpR;4% zcIMqNzM46gdPBeEV68{soZCY1dH)@=Ju0^PrZ_5q(=vZ3lEj-u6wgIz3<0- z3xuN;FVknbCP@2Uy-SATvOA$rkfKT2X5twA6>s0*-HymW&Q^v~$9fF0Qtra6fw^^( zv&o`@+7~gyZG&HKJe$mrhIPoqZM~X3xjuew@U*t$)aO>5VvXf* zBi3Jj>!H_-PLQsm3uWIh)s|Yg(soMC(zcnZ+-iIsM`=rFkzaA}H(R2wU}fE_700*4 zD~G8{Dr+FI1lzdhYxOFw$*eBkaiu<{a89Y%!mZmH_eGox2FzK^xudfEBSN_!tl%DO z?Fvdjl4Xc(W}p+YCEma?@KlfF+jwZ&hpw!9+_eHWR8yb&EE|{`K9U@tSLGIGW$&@C zdns*FH11W(e$R(ENbR?a1F7UKgwD8LyoD^JXV0*ZqOT)Kq09GGdSd7_dc>@`w!NZP zm?3S}{@K*}{3Z7%W{)k$({&z_=AOi-q$rrE$YOkXCD)Q;F;@1XNXz>9Qm85#=YQ?v zG#j%XNBLqxK+&{3elWC~E~!7!i{8wcX=GQ^QyqNO7{8T#fYex1+7Gj3`Sa4n{bb*r z1A!5&rr1%|F#_T65z(Jzc>H9DJYTzHR4_Udb9VNJEIDqAU=!UZ?D~B*88aQY+}D7figZ2IJK@bki66KZ_HaFkXpVjQ z^vR^7KE%Um-;4G+O{6wty`?=VINh#-J5#Z);Jr1 zS-okQN<}##b67*|!flqTet7la=?DS?!!gtaT+!5abk@dSAv?7v%q)E;T7#iN%}XGI zU=cC-eEu+2J@W$YKj4t}PAx;+_F5vC1|1hy3ub9%eO$vUuNf z25}Bq4d;GER-1zzl0))}WA=+BZ#bn=gB;fP%=Z#;Cd0cm7Wi2-=-#?rUmw3zYxVK1 zwDADtj>v;W9&HoT*YgGmT;5Ag=BKnV%GmWwtWzsG`*Pn^h4x#0?$#{)dRsd?nn9Z{ z(hbx77mK4DIeW^*+sW>9CAzQlkA1W+|`kE()^1+Bug{_AfYWeQlqxvl!I-DuNuhAH?<~1ZaE(on(yZY z6@mNbkKD`|h&F{YZ#$feojq%6gn;>f5_)mPzl|)73sIOZEDnkLlSk-5J5KDo1h(II1F`IcoG+}`s}t8PsH(*^N|&lj|opHd`q zJZ*OB=cWB`4($x7TH)5%u~ET4{(=nh$HHK=cZR>7{-5;k*B$hK)KA=$25vqY!jyo{ zXG};w9UL6Sq3|pM?Mbhd&jh|Xk|mpgg?O(aB`O&{kteXq;)Og>=-*1H#H75SW}&w0qg*iNU(Vbixt@JJ~z6QhyU+5G$4{az8JL{=C#$O06ULXA( za2f3NrNWIdEETe{Vq-UKMHdtlyj$UL1{I6AU{9a&D7$IE2k;JQzEfN@Z-6tWdH3$} z=As6XJc#5|d}MMII5LB$8z8ZLfZg7rCO!^5FbryWbgN(5p1~$ppP|VJ|FI(fol{WT zOjB}HbG(ZI{xnqDE-R>zBRzuh`-ffwM~Wk9KQ%Gn2YP2hl|IDPfPeT3!a;$v?d;Y2 zvU{99Do4lhH47kj<~*(|IIi7*G>>VVAif0iHNQ*I=Zrm;owq7|4?hDF%HZE z#N0r-iTf^&!Jgs{zApB!LB5$!o|^8>2Zd0ptD>boWyy zjN%Xf#*-5|UXBl|I=vyb#IkQ}j0z6EddPmUukk?N3k2P@%dx+btA8eHm#)FxK0~(02sRYQOSuycLBvQ!Hzn_zyp8jEGS?I{e zYIxuW`alTo0W%v&Ge2A!r2yXJ2bgD;vK^>*$$@_mpYtYmUVsU#MHZeww4-28AF{av zE}8o4dBPaH2F5n@q%wnpw^>(j!}D|AAaRhQhpaD1wh%JoYa7SYN8fN49w67UnRHTk z9HL?XvT|}Vndi1dB9y#Fn!zn4$&g7^~Is(4@5gU-#?!L%@dxxw!fbQ zFc(p{kyuPTv6sSaSs3d-@n%(fbZm5IXi%U6o6Yj>UZ0#^Q~KCY3HC2v2OSF|b- z>&uNnL!A}HOQRFZgBtVBZ`L6?;XL88xA)+CpI%`miHo`unCHU+X zLk!)3*r%}1#(RB+vvPcD$_EI?I-po`zdH#7goB9E7X@v;V1q10!u&|S5uO0JE2(A* zmW6*P6j2=JHu*;UvdjhCAItRWuEmWn4%^@7Shn}MPvp8{EZUQOw=SvK(G+id?%A>0 zB7MnFnn%wFy5Cp}BXJXhis51unceW7pRIGdPM2@(y&>)mKjOx)cFtBijp60pF|-`x zL&t~PNhqX>j3(U`Mc!Z11+QPtlEcqji16IIq6^Xf{EIl}Yr+AoPj&5pX;(pv6Tb6xpV1k$lx?m7Joe`tTCY>+111O2jp~~!V7JV~G zi-EjS;DbvDXSIoIl2u7+Mx_4>)q7#AtQEB#X)W(-mSegu9radL=+!I<&axLgb}O-O z>Y}IYUsSW&#jw`fi`Tpq38;Wtvs$&_be zbt=fRu-3Zk-sOxJ8E}BoM1!7^Fx=}pV$HYe7|eh&zdT6x;M>p%m;Nl`W}=oS|7Es7 zq|sSv#7(e_9sBVL@k0MmhTmplfhZ6G^k4Y;)JVsS;$0&D9l)F1C;m(mKU7wmm8inz z`hl__Q=8a7t(uBvzk2NO-IHhbY&JTk&`$Dxiu)Xj$*wvBgxF02j@1tu*KH+2u41@R z_1&rLH?bBXce^Kq>ZVzRhF}&c7I8H00bB0(?_YB`J|h3NCd{pEa@lxU{>NUYJ9Ye2 zPu()%;x^@fpxndR&f`F%RKnk}>W8~S{iVE569%K4~>z3;S z3fbu@giR^AOJOTLhYfHS@u!H2HRtb}dgfkwkQJ{z zGrDC3724T~}mTs`mBqi3iu25^(6k?8Q&nz}NJH-p=y? zH9=`Ex4BNfTOexCc49{aIB$g3PDu*VqwcGu?It23yw@^ck9kcP=^roLVokSNTH$zT zDo4~S&}eyG#y7HEtC9+>W2C0so*nh$uDnpp%T(v|dBclz(beCmxxVqf^`&e%Jq3hH z-Gz70n2s&X#Ke$GY<^G@;s;i&tIiHNnW>W>KGYnEknqZ19VI7&Cc-zyIi8a z1*y~oZ7=m#23tk!9OmG2ijj+3sR1hO2;Tbnt)SgL0aLa7M_xYuX zgWTyCn4LK3gjkxW)j!h-Pjon|Xs0IH>zF!0_)kJeI+llXzAy6`Qtj!+V&qSC-`^lX zLOcoCFzc@aS2hIFEzWbCsQwty|Cj;%XtcFi>=WY%MmwOS)ZMuTaiNwX9Nb9%1oogb zl;U4}grwXTnD&WqpbwPUn!ecY8q5JzSC`eMi}Q+e{t*|P$SEii6_he!382>TBwXL? z0%QGBc5{-5x4WjFcol2VH4QOEhG48FiqMH9;`ji~5^ut$ST=~7%+IEkOY-`kFwv1^ zqq{5l`0^W;VC(6CVs-Z9{fpBHek}Z9(TciXo;|R9F#Ac)5l!j+X59x~MYeEz+v!n# z$4Cu47pv)_V)Y$^mr))}3AVXhHaY8BB>jd05u+bPj4bbma#X$-H^5AheDi!bd4KVQ zAnV8}jM_YMSwKDkx@U1I6uf-5WJPwN6vrdid!=;m_D?`XR|+b2MRaO1UT0ohv!vv) z`!K1K9$x6;4hhBs{5!OmDF})Iwe?;`c28&w3{>214Py+| z^50?PuhuMkc*QK#gGpE^!arDRq%#>B*i|c?3NgFlTsO6|)n+GOuWClj1P?wk2uX!f ztPV&_$Z>ySY7iroH7F%kE4ol#j-?H1~Q#G;~wC zd-(braoW&(t-x`Ubz1Ob9RgaqOggbjLu04Xx%Va`HrF=-HHTU&mwF8FUX^0Z^2iD&*lTLQ$i(hqN*snHwHx)jI%PNv6CYg)GbX88BJ>!g~NA)?{&IX znvnVmkCn_M#^#H~)G(YQ4%i;46ZZN(PjOMnl|4VNyleH^85WMjV!t1JMZ$O?Gbk+8 z`_e2xo%i72pfQ4lOkXvfS@a{ck24g13h^+xn=0^7#c9MA$-%S;(vkC`SPCf@Prd-_ug&_ zFG&~nF;@ZgF|`tH!3aNSV?mr)cKW(aWl5~~Wd+mLcFK|ZWr2C3#r+;(^`-oL;=3PY z=&!S1#!jgx{keQRIALFArnZ!s-x-HwIz=^?=4EW`#LUcFH?hLtKJ1k4h&+Rq&yZvP z!x0XAGg<|jO?m@4_vZJ9guPGA#Sl!(@W+4YbduC8NGN43G%%#|xz%9+;n~@d)T*Z4 zB(yuGwK|bsWm|e1bF^&?zD2tiK5@GoFIR}47O5yGhL^JXYW{H+Rm?im=tp|VvbE(@ zQn47d7-q(YxrRcnJ2c1e=|39Zd!T+8LC^obJD?FIZ6!pYezEW33wAAU+qNtP)v`GT zfi9_rYMJJkdmw|e4b~%a2{%xIvp}uxUtlMsnQw># zjnx@Ww;({uGGugH6N~ZZQn~El>^un>YnmUYy1xwd#ku3X7fNaGz9cWiun#dMI7m_y zQMwe~=&i{3Qu>>I?J?8sz_D$O+~(^}`Y@WOIvVXvn(8H`>kl=MP)t!i;fH#8NW za-NtEwkc-Qa=y6k{eEyo#4l%IMvPb%8Z#aJKoX4i9_Kecr!;!G?yVNvDJRzolbRBH zHNi;aqWZ~(%z*sc#Qa{Lr2-1lvH)#{a?sxgeo}(!=J|F);r66Z9}Ix&{2q|gW=AW_ zon{I^EzIPNuA11zToV5HTS3^BxM`)%{bNMZw-GLLvQfTp_-m8Lmb1G7#zL{3ZyECp zoTzj*?p3qrhE%*ID`SiIC7!VVk#uB0GnNU9TAyhs3Ola_6jl*3I-kq7?8Y6j!UQ>- z6j0Ep0h}b~!K7H@*QyA_xBRvFaM8T$Amm^Zz?D$W-@KI)VHG33V7M2_`F-g#L%JUM@rB8 zFG4`u?C)jX_N%@Dq+ji#)Z?jah{}ZO^@#MiSr334?txqJJjJIMedj)| zC6dZcJLM}c)&e>F^aMMH8f@;e7;Qs(p5q&D2V<;&WXG8sbem28?%oOSpzaUrnrg1q zP-yF8rC1rJw{7msCW}ugx||;7s-8VpAZVX>pAxUIK9w1bW6_V;ByR5_P|D_qZT6V* zjI3)LE#gvaWwk4D>z@-jKLB94QD3S5o4}I|52k9%yrd9jn*yD8C>yT|C&Ym1^Is@i z4vBAJOGA4MCAT#lwaII?p060=QBWGhW)z&&B8)n$)(5+3{}L78FSmsRG;Y? zS&@HxyP3{30TDt(Rl;}#Olmn1cY`)1n`uz4YXk+y`NeR`Hz11;#muYs?d7c5aG7oT zz3(wV3Q4#6HamMZHcfZ&C6FAU&*^LiOE^tsDge4SAK{k<-PPclo|<;PZa2Xte?R|t zOZU|Tznpsg$Jsr*Yws6>X4LXs&QEo`I@57NYvOA!n$_(H!u_FsE>n2MjvIr)BaBfz z^_-%sY$A?+9Yc?8`l(W;wQre*UT_q2O?Bc(4{v`

lG>?_uW=E0)A&9FF{_=S;nk`@d0|)=1Fw8T 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 Date: Mon, 8 Nov 2021 13:35:53 -0800 Subject: [PATCH 084/102] minor updates --- .../state-management/howto-state-query-api.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-state-query-api.md b/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-state-query-api.md index c539a454f..d4b55b06e 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-state-query-api.md +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-state-query-api.md @@ -79,7 +79,7 @@ The query API allows you to select records from this JSON structure. Now you can run the queries. -### Example 1. +### Example 1 First, let's find all employees in the state of California and sort them by their employee ID in descending order. @@ -178,7 +178,7 @@ The query result is an array of matching key/value pairs in the requested order: } ``` -### Example 2. +### Example 2 Let's now find all employees from the "Dev Ops" and "Hardware" organizations. @@ -215,7 +215,7 @@ Invoke-RestMethod -Method Post -ContentType 'application/json' -InFile query-api Similar to the previous example, the result is an array of matching key/value pairs. -### Example 3. +### Example 3 In this example let's find all employees from the "Dev Ops" department and those employees from the "Finance" departing residing in the states of Washington and California. @@ -416,6 +416,6 @@ And the result of this query is: That way you can update the pagination token in the query and iterate through the results until no more records are returned. ## Related links - - [Query API reference ]({{< ref "state_api.md#state-query" >}}), - - [State store components with those that implement query support]({{< ref supported-state-stores.md >}}), - - [State store query API implementation guide](https://github.com/dapr/components-contrib/blob/master/state/Readme.md#implementing-state-query-api). + - [Query API reference ]({{< ref "state_api.md#state-query" >}}) + - [State store components with those that implement query support]({{< ref supported-state-stores.md >}}) + - [State store query API implementation guide](https://github.com/dapr/components-contrib/blob/master/state/Readme.md#implementing-state-query-api) From 535603894e75fbbd955af51dcb8c5c3747399074 Mon Sep 17 00:00:00 2001 From: zhangchao Date: Tue, 9 Nov 2021 09:22:50 +0800 Subject: [PATCH 085/102] fix review --- .../components-reference/supported-pubsub/setup-apache-kafka.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index 371260e38..362dce039 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -108,7 +108,7 @@ auth: secretStore: ``` -The `secretKeyRef` above is using a secret store to access the tls information, if you don't know how to use secret store, you can read [secret store components]({{< ref setup-secret-store.md >}}) and [Kubernetes secrets store]({{< ref kubernetes-secret-store.md >}}) and [how to reference secrets in Dapr components]({{< ref component-secrets.md >}}) for more information. +The `secretKeyRef` above is referencing a [kubernetes secrets store]({{< ref kubernetes-secret-store.md >}}) to access the tls information. Visit [here]({{< ref setup-secret-store.md >}}) to learn more about how to configure a secret store component. ## Per-call metadata fields From 57f24b82a7976d4235041bf435717c06e60253ce Mon Sep 17 00:00:00 2001 From: Dmitry Shmulevich Date: Mon, 8 Nov 2021 18:17:29 -0800 Subject: [PATCH 086/102] updated diagram (#1921) --- .../state-management/howto-state-query-api.md | 1 + .../images/state-management-overview.png | Bin 194564 -> 195219 bytes 2 files changed, 1 insertion(+) diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-state-query-api.md b/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-state-query-api.md index d4b55b06e..011d8a7d8 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-state-query-api.md +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-state-query-api.md @@ -30,6 +30,7 @@ The body of the request is the JSON map with 3 entries: `filter`, `sort`, and `p The `filter` is an optional section. It specifies the query conditions in the form of a tree of key/value operations, where the key is the operator and the value is the operands. The following operations are supported: + | Operator | Operands | Description | |----------|-------------|--------------| | `EQ` | key:value | key == value | diff --git a/daprdocs/static/images/state-management-overview.png b/daprdocs/static/images/state-management-overview.png index 6b29551d30fe3bf456fe2c33e82f835ecde3f181..6f5d029ccadd5e83b2be9cd826957a3245979197 100644 GIT binary patch literal 195219 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�!pZMdSyH*}m!JyO<; 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�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 EKj#aFIsgCw literal 194564 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 z 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

knbWmcehJJ(ibj8~pv z&Hs#q_^Dp~s2R&X4oMEoiL>|o8bq@?=5Ln#uYU!1@S^x%K+>4Ena+JHq?@IqqL6$v zT5VdpOQu1(zEQS*m~VHjeOUTb)$_$?vSx%JH4U(0)OpHD&o z3+ug%h~uga?a9czkoK%h0BI?oGacUg{WpdTBVulg-31&uBhrESUph6Hc%kLa1{$N- z>ySnHaIXc#8B>~!xRP%kb#nXblHfAY320!Ojb?;B_Y1qF*x4f>{Y9wcS~4RPc|`VhzC7QKRC)jcQc1fLpsmbwg@?T^kwYvOOP5u zK%5vZ%{T8m#LGwE{&PGh`p76O6o3Dy@m-#-Pck1qLDftFS;~J}@S9J5J`HF->e$N~ z*PsYs(54?pSQ$^LS0`+z3;;NzgJl-xe!T2M>J{_>PF2N9uZ4)^2@RURkVNsd7Imwt z1UR-myNs6h8)fy=K2;4av(8*oiArs_ZgFT_-}%WZcLT{f>Jgz@%DXfDEbIlPqdSZN zt)h~vO4sYkjh~XXPAouwSi&lA*g?ujfpf9?<<~f>pYQ!9hQumU>Wy4g6I>SyE|)>4 z8ozYZgY~z;qi@0MD7wiGA-$=>D~wXu-mp5o5S8$$(I-CV2i~hSN;gW@=_X}Gk;}hZ z<@u^2q;e`E>&F zv7uniBJ-|XM7j_7Vc6LUDlCHPfd)Fzm|O!r`y2$DHeF~5LK&cG_z7qS-$p^y86YNz zP!S?!GSy}Ofs_PH}mxu(V zXa0kTtTX?G(LZNF<#QNO^mIc6r6V`y+-%=ZPEiq=_=diDnBZXYCNyzRQisVqp1-LM zUp_D3Y^y4i3Md9S7GR>u@ zJx^Gsibip}Fu`>fY`kZhY73rRY?)Yyu$OHmKF9Nh@nmusS!7j-bsdyL^5l&8Yy7xh z(=`yGV?^^TQ{P8I5Se~5MKwe;K|Ih2fz`pRZ->=s(xxC9g)rw|bRP?~TI5B7>gn!i zweaxHUGM!5k`Ikj^hK#r|7olAarSRw@4ofLJnRO3X5-5vk#Bt)Yi`?7f>Rd_WGzmV zOn%Xi8|oZ{kFg8qztIz4e=8Woaxvq2Abq9=dYz9M6}Qvrx`?%)5aOSx-`y3OW2(0T znZdVml>GfIIIwI!EpH;c%#bs36&m|A+aZSJkqkp*d zXeQyjLvY4$$t1=LYmFErjN}*&T!lPQbp1{vU4*mtfVcc}pl_mS)KajSN%>^b4{JVB9XulUM^*SN6HW23q%}$yv9KSFh z>nW7B;k(t8wwd(?*F{chV%zHN4wJVqPanCn*roRMu%cOM-3NQOIl>ommN3 zXacYjIv&R3U4cNN7@nM}@F=MZx6-*Ap>-kpWaL98!0R%ubP(N@{EMm=r8Go`>c`Oq zG(?y}3)yMAHub#wi~yV+j6zgzv7oAm=*$lsdn)i(yHJn~#qh92R&s!$ua1^Z^~0StEzMaeU{qAkhC;2vQc!&(VEU#YDXC?Lc){E0 z+r^GKRs#|~)`;#Sb85a02=}%DjOB~$G{{tk08o-zVDUS$h;(S3ZVrfVGdTeo`2H@T zAUnp79A}`YiF5#1l(s~q4kMEkRIm}U}&o_A>btAMO#>r z!SOl=BA_<}<*5fR{3S2Nua}@nbF7qVt{H;nlPCZsVLV8Be?RP97jTMhUjrh)*{%x( zEreMxU{)6%@3*nj`#4+D)SX}Vbv&*B!IJS=Ot)5}m#a?}PSy(Ae`0B%2y(dUn;g;S;sppTbg5_wQzAPJAXV-E%mTC|$U`4I zvP#{SkVZ{AUl>_uaj zsf!l@o%Yc`9bWAZ=q5z`m8cP`@`q?6gfXDzC|zSyDLC`kP_OISlu&f{%5xpI9MXK>n=Dt7^%y>O;TmAR?O zF}8sG?xX3m^b^a}KDKY$>-6C}d4#s{sa0 zb}h#kE>!+IUp~S9%Z3Zj>BcmINCd{l2_eT@;nC)|OiwvYa^THiH)R+GCRwl}XgDY# zhUhQESvHGB{yCIP0BTp`WoG*N1@Jx5!IJ0OMNr!7(Ysy96Tc9xtOI=UR!BuKw!HnD@S0i2}j5!Do`W7CmpZ0-ZMSOG~~4sw9Hh36diZ zztivaSZGlR-UfOxNpl5AJMTabb8&^o>;rwQi44H%@H1{3a65iRER$vtyj-Mi=|i0OX`R*5OrIu+RVgT6Ci*oYd`~lHNZp+U{U(;BSKXk?-gDLk zz)d|_hB6JH)m#WHq#ycz$p^QDx4*}ol+r*xAJG8yvCe7$UU)sHh>lsa);qNBJm+O8NQ*w{s#q!bTtgggwq*6q3H&?cT=wmc)M?V zkPU$dYzCL2D@f8C?@4)o)@4GquZgrY^9dk5dc30+mva~5@|64!pGgIk!lZON;}}>? z&V%`##nG1^kH1m(dk0G}Y8{NV3r-)ZLB-Bq->w|N7A7GQt2j^(N6+-8NF+|MRLcV? z$VS#;R=J>)8x|bWS+#S)Ei>AKhT>A6+Xe^#00?#v#^?6U%Eub?Jn;!KE)Wg|21q0T zKoMnP0zEmxDYbd*rFHeWAf4$xtO!uv;0Q4aK&XqOr(cQQJ-9b$*yJwH7_7?H*P_IK z?zhb|?=o0`D*;fsKTvro?f=Cn@zg=wCG zFlf2n@*NO=Q-BZ`C;h-Ymw8iwHXQ;7paW6u?;^6LZN`r)VofX|tq~DWYnbJQVW#Le zu;~Vn-+N|s$oR!GZUQ9)8#a8^tnw)y%MeC&5r zG#4vAV|qN0bm7zdLn0GM^8rDE}=<}2!%bc3mcK%}% zK|HWe@8m1fkW@9BI&PlQyrKnGA2SdAJRO_PLdS>s=ohPiAu{uE1gsfrrF?0Npa7Yo zhuz{ynH3@1(I+5-49e-Cfe-eS_`<^;omGStDKj1envj7>aGoR(;rzz0+a&<5Lo#sx zw(`h-b|pxeH?db^V1xi70z*4ph|L}}jmU?lyYglTEH|i*09j!eZyfIhQbA{wZBztYWw*GM3}*np8B`a25Wx`um=mnpFNnatMxrH-b^L@K z;MvEyV6DEj0xMSiBj5=9=hXLZv&_Heo4m#_ai>o}ZMh^8(mwG&vLZD#1RX2#RN{(-~lR+yf& z@QNNa2RwI*rSkxlLSvVmV56*fCAkAQe!{Dbk2~q)l5i}U2ZDOM%ky+*azy1$glCh> z>YDMzg`-ulz!G4x3$H`}11E!m<~xVKfF5!T!KnjEAYi4zYz!H{X_x$uy$Jdlglimf z97--*E(w+{NLje>eKg_%0JVXkp$pu6#p7U}w{&@|)jmUDKI_*jZxeshuW>ivAQ?adnVGl*%QbAtLqrr{^@_R;fp zAgGn>aold+9P?G(EqGXjO$C@r!Svp`cKYF)B{{~JMqfI$I6_<*N1 z_*eDtRtz^UN4JK`p$efO*klkt5$9S1Cg2$2IKn2o zSIk5p9~MvC!iv6X(XGz628#l@PZ9i8QmGGkp?<60jBWp2_95Zme?Ew4M{5Y&Mc zKZ@8<5Hjd^P+%1{gk3AdW;xUX{{fh>yvqDK3>EyIFCq39Y73;Ji9cUQS0T`{u#Wgt zg|RC-Udf~Fu>YOQ&N^rbTn_MU;1?qUrKeAWiWGz8@o+s?BB!QQO zc(UVMYb)TD#l4m8iK-v7w;#GgphJBRcLk+|ABML}E}QyaMSyOq5nM$S{>rbEpYosJ z>Vx_yRMG>+CG-D5Qlc67p6~awpExnpi|#W2j(XLXMQ9E{RILS3_8tp}?Eu71O|=Gb zBcvb}K8mo=L2GLAK>rgJPqQfW}&9`>cYULn3`V(S6kD}m2WD$ z8R5<&@p1A>?}O*QMl8L%Oh8#FX;7IZ&hj3;q?U2SGNr!Ny6GxI!ttPwgVt){)^4Bo zYo>R!h;LsmcD;z3R$6M)r!iKut%&ZioB{)Gv?!;)~r3 zl+q#cS2}MHx1*R+r2`?pcrh-4JA?s#B=~Y@2u@AB>HnUHfZ)n7m@`l+wu#LEcjPt9 zH~5iWPAqOC0(}|H&z2x;8R`fc>a@UWf+>fv0s>phG@ee$>ou{FzJ47@bo;F=PEHzqKKM)-f)OwCsT{iF)Vf^l%^qEn19V8H=jd+m5C#NVp17|f(5OJ@}_cX?P( zO;?Zif(<+MgDo_5bczxpi?II<=I{2?ChsQ%mwj|f)nImQ$fq;Xf!Y_$XegNb#Nnk6{q7lR#%ektU z0tf|W90#1I2K5Qs>y3g6UaD*pqh~D7^1m=TVz!67mZ*#GT%H{d7Qvn|lSk0a!z zZ~VQvnUM^FJ2&j_WJQqm?ab7#fqTt)GeW+A1nz-ukcwIC1b`G0OybauUNt-N+VTsVS=V{L6y$Ewlzgf)zkZ{ucV{}rhkN`0| z?iJ3of$!VEV8mH{Z43moTfGsdMT#G`8B22AwStr^gaYsRj{38Kbb8KPkL1 z3jqn`n~;rh>Znmv`Fd64H!oZczt44+a}FRkm%^r!8O~P& zP#3YJpib#;>1@@}zAiYXU;*wRcdbhNP*=+HA&>@bg}4@knzI|6hdCA6VuirCCq8%r zA$0*j3U@{U*<}gBwLR*};UN&029O9WP0A)q{Ki>A%!i=ouk!{RuBn<`NX!dq(Z0LD zL^Xss`;glz{|=1wv>vc3zytIe0q`K~;3+e`bOPkCi$ygQ+F5gGB7>&0zj?_x_X9xt z6}C71bL9G1q%GrzJq-MY3cAkLZ=1g|!2XgOi7;jETdB7Ptj*dTVEqLArX~^{bhPY_ zr>S9^%7W&%a!r6e0Vs!_tpXOu5Hk=w{5K(M5P!9UR3$=90#L~kL~77et2Nkfl3{O( zsx=6#6d+MR0692Y4#^k7vuySle1D7a&=r1Q%+&xgU(j`mQX)e(Dr5pGkgSAlqd3$= zkq&9NEa1@R%ohm^BOsMReg;WB33Bl^sj&*OSsy@fhDh$B!^?jU`ZlSLOp7~`{uG{g z3CV*MupO?hOl~ZpZwW-={0?%Xv!CwT4lPA>vNdTjpR`nbIP7+b~3b z8F^)ZErC-ALUi~RIhllDU?47av>?Ho4oPbpz(WW@QtwhBZIoJyqJU)Kb%FYyS7>~W z3hSD|D~&Wr0!ha;PoWX9144SCH3Gd}mncL^}fGz65F&_=H6_uwc zjZGBXqNxxKMa*3DwF=%MD+p^qf=#Rr=+m7bLe3*cMU|(JD`^eb=_+)g3z*wUJ}t5c zgcG*A%of?6(ycSwocl zknNqU2yVyUn@Ai4F-xG`eMPv*#YBgYhypOsfc^e?O8^a&^H<;vO?Bp&Hbe-46VL^l z4T37*laC=ObO>U?BsB=mUFWHD0WXl{qYIKIgf)dEm;ej8fuz&-U1R%5CeZ3xA2l@f zg)W0jA9x|{BW^IUaPpa&-K)18_7L&415!;V>Fht$oo)Fgo!z6?u~2XL1cGT$R}Rg6=^E;{ zOLhZ*P9>1)aZQdB3s6|#z_#zP3+~b7bJCs`1#a{gs2Ny=ngNmZJ7BAG*~7jI8b*Rm zpGrK!rAHtX;n7S;-9a3tgR9LtQ0Eo1_kqjg zgvk7buLuf5LMm=0=+ii{OZ>Y(;OP2_99>BEwgJ@TD~DjZb2ei|=6O9qm`dx#_uWV` zzGJ^l*VH0xRV0%FIiZ=&ypWHSjZN@~N@$d>pHeK1#yH!KJjY5YIk)+nu<_Vm`G-jq z4WaFaS#(G@X+nbBnVSAdQZ+;QR;EMwbc*Ung9j5QCZBcZ7g`g72Dt=K4gh#Nr8a>+ z#pCIv{?z8Z2d$BMVH8s_A_03WC!Y=|Cn!`hybdT!0iT%1qPrbHV37On1D6Mwr!|Oa z2VFX!-ghI^J+S(!dJG&ChhG=K2?8m!0xn**hUbdU%w91E6?8hJ`3p;2CW-ctl@WHB z{!J}|z?bUyQ!)8~iLbhESe+GaG6Hg%qy<){`mkgS5dx8tT^c_mU2_VVmz;q@1Udbg zODN_le;x?jpZ|*9T;?}+ZJIB3`~)ykx`LUKsivig(KXoqRA4do?xs*ncbFS?h0_l* zC~(6*1QsaAbjHiV^SoTZ!@>|oYoI3|RS7k{o2nkcOgcJzL0vbl zF%IXp|32bzQHnGQ+V=1X)fO z3tUs^u%UiY8;a{TP8t!+Fv8e169gy~ljQ;GSga+7)iQop%sgW;8;c;uI@`_sA%6j5 zLjF{L76!caw?aU3g5m(enM#1BDLnJ1+6W_bCg~s;1)rw`H^7t-xn!w^~jzhep&|zX6ja@kRSdEVeDJW*UPW`W72M~cK3Peji}au_6F=wHN z-|h^UC@Cu|d-w+QBH%yJ3wr-9D9>V;FH3&mLq>)&9 z1Yy~&CH~zDufFT9;EcFf{KFC1T|D$Tj;p`!Fza+e&bPmmcg%4ruhoOp#o*wF%^`(X z2r|5Zz~0okJKFj%%b8UpO8q5IG4hJsUF(tbh`H)cnvbm778 z_o?H>|2XOx`pp0IyD)l&|MW(|JC45IxLRT1S}no!#_> zC-vAXKwu~YnwItv5ng{H;jeBzVWF%5p;Y~Jfc`&rYMq4y71c9|Xbw1vp*83T96#x< zJ09vR=}@R6CbgHK&neSgmH&)W#mvrxP!%cex+906S&! z21Dq%r844E&RP(mxp+BN4W;FA9ZUm(7B7QpA#LP`a{q-Na>R9mr-2pOjVk6l596ZJ zgKutsEzKo2?S;6-A=XgST)KV~g&HXaZ_@0^ISQ24BmTzg1*K5gvJ64>caXDoTP{77 zIj|1NlbN(#sM}}ZL5lZ;z^58GKirBkP_PNsE9NP1PE1HA|;6w385=ZLI43F3ZV!IEfOWPq3;Q}bM5}} z{RMkn`Q_xw$@@I_^WOJ!&hxha#{381w*3DL`X53EUH*T4h|jV)yKEH4icgxV_n=n& zNs;sBRP3+qd}1R(V*g3On~5KXA?wSZl}C?%@;BYBYO?Nw@NZroihbyROCnv3yiiwk z`|*TQ9?DdxVnPrA#O*7G`Q)Y9qs&1?+#2}a3g-2C4vIfze{+>Xv7iREH|YQ^?q^L& zd`)uYYZ4fs>y>Ni7SvTyklEh?fBS)dxrdR(IF zd(spf0{Crt5xDo=fv`(Wd;t#kpus1vfqP7lrf%TZIc{5$|(#nTjm?k5db9K`6PNU_5jA;PExGu{$;E1e7NN zUILbe9!Lw#sNPhkzL&G0ct#UucHur^HOy{xDBQ=zNw~z6FR8s(Wk*!mGxRcR-cAFA z;*w!<8Fc>JsOj)bNYy~#Zk)tv(pMd}43ZCTVHTV#kmCk6`LV{L8f{6{{px}O2( zPFOr-qRyhyA;G%~R~vQUJ|*3@l51PwQ05UQOHFxmHMVV~Z4(%wrm)q8_Bi3bJpDYl zPvp%Cm%PEgIyYBwU{WRga-`t&Z!}$jnm93ff?A_qei=df-b|{Ku*&yPs<35#n1Hb( zwOP{@ESD_Qa@@Yz;@vu*=}R*a1ZKLDYcGhWE`f=w*$?k?NN{!yA`2Dp$nF9?sc^R{ zS2>MY2BENC_VQzO2G*~rs3#(~Fbsiqx@c`|j%r&_r43z%Vv4_WV(q2Z#2p%Owg&?B z@&+*zA2UpkLQt>H2GSIa({<7YArvrE0==gE2=tyZ+dBV*NinCg6Co5u{_iKDDdoEN zN1O;uuyn%(=R5|`BG$e*=qkZ|b~l~}A`ulzg21=4dQH2ss{^nA8gUB8!)*>Y2gu(W zP%BpChe=a7=Qofzr_30|M+PHfB-X{@T%9kpGNEV2ZFQ*m^&>#^F%3)2GNWeEJ-2t@ zKwS=G{Zo}^usK!9r6B|E(oQ8r^)gJln~4YG6d6#cS?|6A4zpW zS=j0Aqnu<>txaHNhwm)nA<$t+aBi^lsWL&%clLCR-0y!jKvpC$KYY1E+X1VPjU*}# zwG2(01-oc(UXJm|%u3b1N2rkX^zIAx-5Ur;*;#+W@D+-6-(A`cc=Y%_|S+fe#S+zGj$*TkFFj1qL^|bo_M22P{y`x+?yYY7W0vr zxr0{psN018<7HoX@>H$(`la8)u4-j3D@6VM>)=u!JM%j=GEkns;E!}iCAoGr`qL7^ zWn>Y>xj0)hX;SRR13qr5HJ4+`5d`LJU)}{v>c+WlFcO|p0iI*SHVcm5HP2q~Yh~}u zwqlI`tuZ*yzsXS=&f8wVWe-Mx(@yx}3Mw;STyAJXVWG!*1;W zz~nz79`2Ck?Oxd8ZC~r5*S;vgx!vhX91+fhy~Up{`E2XPx8Bo^4`>+9a~x*2K1XY@ z(}HM=g>SAmgS)y|{#|w?12v1YQzgIs%IS`hro{KJO@4as#O0-@bz(;0-14@%+mR}i z0|2)@u+Iie1}`I5?_YmlN#$f_@g;ME-JK3LO0u&ZlRSu}|I%f_1N#KMMF!2VyKa64fmV(M4G{U z(nfxduPrm97B@Ne(eKz@Rl(W|(*?Iz_vNH)cbm8AYDcmn-X(@dEKRke`OnHQc5idV z_DoOKxxEe)Legt=U%s%KRVY+Qu)VjEF!Lq1Yl)dUOIN3mo~!c{)B*V|;L3|o4W`EM zsCVUb$HWtBH$*<&;L=Vc0DNm{s+|YJMb?Yj-FAUs%83j>ol8k zm~*e#inD>zWZef;*YN&p{A4`o#WAR_HTnt989u)K@T?lQN86{%u302eZi$>8b?<;s z_E==()rx}Zfof6pD_c|TacFa@VU)X8kW)HmKUN!q_kYaUQ1dSHhcOoPJ5|O$TgI2q z1_tE}{8uBr$II!ayB@TjyIWId+`Ae#+nJB1>Sk;&9B6*G<*&AJcrSUlye+(n?9v$a z70j}I^Qqc<9Xt+$%xJFANxH&8?Mw8{*c6)aT={G;#kiyBu1TXGiK@%uQ#Th(PbzHE zd3#JaD0<^?A8LgVXX+p_yI~sy>|piK%hP2xL?zdz1_uAXQKHa){M!+eY@Ta+lqLBp zL8w^l__rtiml-^qPJS*fos~^e1sGNS=HTK zmfcF8AM!hkiqV;UHRrN-EwH4mE`(1%ombg@GT!p$C#xYJ8D!TBcxF9=8Rnv^o#3QI zlCc;&(Aa*ZJE^UX=!iGEL7J?39YR@pdii&+dao3Z=zNnq9Wvh{hW02|aBoF|_+_HH z?{w=r1ehXf6vw}UL#Toe#8JI?qP_VWQ1f#3+U>DY^n=||uaWwvnZY^!Ih>l4cu%QF{_0O%ogWho&c zf!LTw2B)tVUq4(ZF0Ub{MHBN+0gW=9GdrzdxcPJU3vGA&ep)mt9x;1^IaSU=`)_2` zx>q!g_?zmT485v*k7h1U!rDiCJa9H`ain^v>~saVxMB>gzx&6ua{vPpj0hO4SM&4a zn`8L94;49>AT~0Nw|sagdYQ5JHL@VTj)xzr04l+lvt?ZMchE&Byhd z=rB&Fw5tLH*G7*BlL^LZ)5q4J$}3Q<6|)FJ5&&qF2F!}Xa?e1@s%`7!9WtbxvXuFl z{ghU8TY94Z>DIk>N^%Bzd9okekJk@8^Ohd}7-QU~z4@vcm)|^up4;01fDktrgDdev zhD^M*+cTBbj9POW`~yZnZ|c4~SaKA&OhpjR9rNZUMBUR0${Os$wB!WUAN3IpzURXl z_D%5>1U|;^?)`BRarD|hC6=B)H?p=ylzXJqLWU%avkOm9P}1$F6@M0P71Kulf^!aC zGwZ4+c%po%eNC&Bop{H?;Ko>UMzG|}g_b&Yc3JrqO>aN^Z4;%%_4}FvHQlM&4Ccm0 z7+r0-)LA0GR>loH6}OGqg^bAXEn0y-EZB&ZlS>Sv-IDL*m?kG#LkP0ey)XMrV#f}d~C>7B*=V*He4P$?q>g=Bf@Hppwm zo{K?6$WbDldDRZ8-t;2Rg@grjMs62^eS8ZavwQE!%BRv+aChkZi}MEeOOJRP1xx>& za<{8W{V#)$)P8`6{n#vqX0zmDTtn%{l4Vl|uRyVyCzt$2f^<*#erXLC?w|M=yL$nw zd8#o&g9`%ujHK~r;YqQh*6cBldT#CBAD#M%1SXn9B?LLm9GVlY^*k>@)wchubIb$7ZdV3lUgnNe3Y3rpV6PP~YC7r>>a!ybupCr8YACq6Dv1 zUaI>50JZSW!D4P{%7riIj6;SVmAtW9N|Q1B#dfTCU2YpSgY8s3%Jk-Sg}=_V#l&4a zO_o!MwZ}ZYXhcqINSu1b+TGd`*>nP5+m68w#iZVmQ|Y%CqRe+ydrYnU>fN3B`ZOs9 zvJNgjfH?-JfiEvTspz^Hyuas|j31mr_=ooS-YZJ0jeP!@D+kI8@KGNq5X<>g>^s~B zDM<~x6q^>Vtlv8*sboe^6;YeVHK19MU@sZnJ^JLXgB0I>r_Mo15A3i>aPgY~cfyqn zzVRc{Yo(j0No*(PBvB06zJ0fZfUTbLlAJ*d8(fNQW!~Xxp!Rlp1a^pEmF7rJ^fj6? zHp3^r4Oy!C7*~m?swsDH`n=f}wY#j$ZVKw@d6CtD5WEJbsQDRMTsX$P{8Pg!;s~%c z?4cZ}BJg9Z!S#g#akxfomTK=Ok`STDY5=yHA;??WHUnk(!?dUxd#+kBNjez2Mb9C0 z;H5^8b<+Uw@WqiiaafUJaix`W2|3k%HdPGNw1%Kl!qqJ; zeiaw>7YStOnMtNGyAu5EH%DtHe3e%A>_O=cJ@2>vUMr;Wf$73h4c~e?o_N2hUiHtIhTls{9P5o*2882d>o#-XqG>vnzmggUZg0M5B zmlrBZm1gZ$Gg8Q-bb|CL!Gv0Yx++1_ap?N) z=sMHbr<|p?uSFIsdtjn{U_=;?wP=-S&j>R!ORM&Psr6`8X?SG4Ft1FThOFm$`y8e) zhijAT=bfBb_(Rb-994TMaY?P@79%eyEzE`a=V4|zgU2)^Z%7AeZPpy_{3Yalk5f9+ zm`n5xGm61-Rl&MLT4HIwDF>-PlpdL-WoH$pRYTjb>8&(Ltg+pB+zo*y%2m+!`>Zin z0Y!;ePv1NTZZYQxI~McE%@~T8x`@Q}nlbTL;YB5bBGp*3E;}vQF~F3RQI@CS!}2ki z7?Y$N2fo-s-xSo}nai-B8P!Q+8N#HlU{s9@ifm@4lb2G<;=A0tu*)vV!C&hg-0)v_ ztqer~K;P7GsMvxeA(AF1A6q?o|CNc7tew_dnuG1}*A_jpMS_;{6=JJ*xDpiW%`-cP z!Feg^uwzO=O5j;yQXa;4WHcFg1uUL@v-+Y#)E}Q?z;|nA<4jtEs$JLVfYsOj7ojI2 zT;rH3z^een(Ku2}ewo_=ZpO)%ji*>fbsjc(*-8+q5h+c+4=P8EX(CFjGk0Fk!Hxiv z=YuR1telgNnqrIJ4?LKs-~v28Oi1i)0^aZPZJB@IbfN;?V%$o+XB2oYp%d?NSftG} zF-@!2qtF2GOsQD&n$!zFi=Hm z(z_fYsuO6*4Lak@SXB#!N?eAr>;(8d~kZ{=MaslMKM|+0+$GKE z!gg=hPK3;z6WzoMkGTQB_Te1cxL$I8)dM49@sw4dM`ZSR_le=^$a~^`L>~A!k}jI= z8`>GUmGA34H;P!H{2$Pw7<5VzCKhv?CXw^0U#rLnPJj%VRYNVQ>>70nOHNu?VMpfL zxc275GZ9q)z*zPel2!@4BTxmi`de`!tI~Hk$+Cw$^SiTz@TKMH$mx9F-{!Jh0+SB` z-+m5sRDd-<>8+G_o%T##ZGm?MLoPq&uo0p=kbMkmQ z__7Ut*kC8R!V;potz-#=ew`b2Sm`+oIQOO7q_@3)tWrLd{1@Z2w(?X}eeosK>c$49 zp@DUubB-NR==)ngNY)l|sXNEO^V55(MiG0sC649lpsxoTgM~RdD5)xbdG#|8omZl^ uWN?iAK3}UyU;9Q(>Vm|bsLlDkLlG3`xtYVeCg8vtV0_)efOPftKmP?f=b4BA From 411694bb15b6182d1cbfc9d070276b53ec93f652 Mon Sep 17 00:00:00 2001 From: Loong Date: Tue, 9 Nov 2021 13:02:23 +0000 Subject: [PATCH 087/102] feedback Signed-off-by: Loong --- daprdocs/content/en/reference/arguments-annotations-overview.md | 2 +- daprdocs/content/en/reference/cli/dapr-run.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/reference/arguments-annotations-overview.md b/daprdocs/content/en/reference/arguments-annotations-overview.md index 5e5ab2db3..cd318d5a8 100644 --- a/daprdocs/content/en/reference/arguments-annotations-overview.md +++ b/daprdocs/content/en/reference/arguments-annotations-overview.md @@ -27,7 +27,7 @@ This table is meant to help users understand the equivalent options for running | `--enable-metrics` | not supported | | configuration spec | Enable prometheus metric (default true) | | `--enable-mtls` | not supported | | configuration spec | Enables automatic mTLS for daprd to daprd communication channels | | `--enable-profiling` | `--enable-profiling` | | `dapr.io/enable-profiling` | Enable profiling | -| `--enable-domain-socket` | not supported | | not supported | Enable listen with Unix domain socket | +| `--unix-domain-socket` | `--unix-domain-socket` | `-u` | not supported | Enables listening with unix domain sockets for lower latency and greater throughput when an app calls into the Dapr sidecar. Not available on Windows OS | | `--log-as-json` | not supported | | `dapr.io/log-as-json` | Setting this parameter to `true` outputs logs in JSON format. Default is `false` | | `--log-level` | `--log-level` | | `dapr.io/log-level` | Sets the log level for the Dapr sidecar. Allowed values are `debug`, `info`, `warn`, `error`. Default is `info` | | `--app-max-concurrency` | `--app-max-concurrency` | | `dapr.io/app-max-concurrency` | Limit the concurrency of your application. A valid value is any number larger than `0` diff --git a/daprdocs/content/en/reference/cli/dapr-run.md b/daprdocs/content/en/reference/cli/dapr-run.md index 0b4b74868..df69f9105 100644 --- a/daprdocs/content/en/reference/cli/dapr-run.md +++ b/daprdocs/content/en/reference/cli/dapr-run.md @@ -47,7 +47,7 @@ dapr run [flags] [command] # Run a .NET application dapr run --app-id myapp --app-port 5000 -- dotnet run -# Run a .Net application with socket +# Run a .Net application with unix domain sockets dapr run --app-id myapp --app-port 5000 --unix-domain-socket /tmp -- dotnet run # Run a Java application From 3306c749aa98515746c7a03109116cb36c534d42 Mon Sep 17 00:00:00 2001 From: Loong Date: Tue, 9 Nov 2021 13:11:20 +0000 Subject: [PATCH 088/102] update Signed-off-by: Loong --- daprdocs/content/en/reference/cli/dapr-run.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/cli/dapr-run.md b/daprdocs/content/en/reference/cli/dapr-run.md index df69f9105..ed5b32b3a 100644 --- a/daprdocs/content/en/reference/cli/dapr-run.md +++ b/daprdocs/content/en/reference/cli/dapr-run.md @@ -38,7 +38,7 @@ dapr run [flags] [command] | `--log-level` | | `info` | The log verbosity. Valid values are: `debug`, `info`, `warn`, `error`, `fatal`, or `panic` | | `--metrics-port` | `DAPR_METRICS_PORT` | `9090` | The port that Dapr sends its metrics information to | | `--profile-port` | | `7777` | The port for the profile server to listen on | -| `--unix-domain-socket`, `-u` | | | Path to a unix domain socket dir mount. If specified, Dapr API servers will use Unix Domain Sockets | +| `--unix-domain-socket`, `-u` | | | Path to a unix domain socket dir mount. If specified, Dapr API servers will use unix domain sockets for lower latency and greater throughput when an app calls into the Dapr sidecar. Not available on Windows OS | | `--dapr-http-max-request-size` | | `4` | Max size of request body in MB. | ### Examples From 9c34a02b7315b1b19b1f91c88f9008b3108a92ac Mon Sep 17 00:00:00 2001 From: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Date: Tue, 9 Nov 2021 15:05:12 -0800 Subject: [PATCH 089/102] Update arguments-annotations-overview.md --- daprdocs/content/en/reference/arguments-annotations-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/arguments-annotations-overview.md b/daprdocs/content/en/reference/arguments-annotations-overview.md index cd318d5a8..e1c1cb2c3 100644 --- a/daprdocs/content/en/reference/arguments-annotations-overview.md +++ b/daprdocs/content/en/reference/arguments-annotations-overview.md @@ -27,7 +27,7 @@ This table is meant to help users understand the equivalent options for running | `--enable-metrics` | not supported | | configuration spec | Enable prometheus metric (default true) | | `--enable-mtls` | not supported | | configuration spec | Enables automatic mTLS for daprd to daprd communication channels | | `--enable-profiling` | `--enable-profiling` | | `dapr.io/enable-profiling` | Enable profiling | -| `--unix-domain-socket` | `--unix-domain-socket` | `-u` | not supported | Enables listening with unix domain sockets for lower latency and greater throughput when an app calls into the Dapr sidecar. Not available on Windows OS | +| `--unix-domain-socket` | `--unix-domain-socket` | `-u` | not supported | On Linux, when communicating with the Dapr sidecar, use unix domain sockets for lower latency and greater throughput compared to TCP ports. Not available on Windows OS | | `--log-as-json` | not supported | | `dapr.io/log-as-json` | Setting this parameter to `true` outputs logs in JSON format. Default is `false` | | `--log-level` | `--log-level` | | `dapr.io/log-level` | Sets the log level for the Dapr sidecar. Allowed values are `debug`, `info`, `warn`, `error`. Default is `info` | | `--app-max-concurrency` | `--app-max-concurrency` | | `dapr.io/app-max-concurrency` | Limit the concurrency of your application. A valid value is any number larger than `0` From 1c72e0977c1f24f9a773a3062ce07786113e8f87 Mon Sep 17 00:00:00 2001 From: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Date: Tue, 9 Nov 2021 15:06:55 -0800 Subject: [PATCH 090/102] Update dapr-run.md --- daprdocs/content/en/reference/cli/dapr-run.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/cli/dapr-run.md b/daprdocs/content/en/reference/cli/dapr-run.md index ed5b32b3a..066b615c1 100644 --- a/daprdocs/content/en/reference/cli/dapr-run.md +++ b/daprdocs/content/en/reference/cli/dapr-run.md @@ -38,7 +38,7 @@ dapr run [flags] [command] | `--log-level` | | `info` | The log verbosity. Valid values are: `debug`, `info`, `warn`, `error`, `fatal`, or `panic` | | `--metrics-port` | `DAPR_METRICS_PORT` | `9090` | The port that Dapr sends its metrics information to | | `--profile-port` | | `7777` | The port for the profile server to listen on | -| `--unix-domain-socket`, `-u` | | | Path to a unix domain socket dir mount. If specified, Dapr API servers will use unix domain sockets for lower latency and greater throughput when an app calls into the Dapr sidecar. Not available on Windows OS | +| `--unix-domain-socket`, `-u` | | | Path to a unix domain socket dir mount. If specified, communication with the Dapr sidecar uses unix domain sockets for lower latency and greater throughput when compared to using TCP ports. Not available on Windows OS | | `--dapr-http-max-request-size` | | `4` | Max size of request body in MB. | ### Examples From a38d26a13c87cdcb7b7f2b1559f845d6197ef0c8 Mon Sep 17 00:00:00 2001 From: Nick Greenfield Date: Tue, 9 Nov 2021 15:24:44 -0800 Subject: [PATCH 091/102] Release v1.5 (Day of release changes to v1.5) --- .github/workflows/website-root.yml | 4 ++-- README.md | 4 ++-- daprdocs/config.toml | 13 +++++++----- .../support/support-release-policy.md | 21 ++++++++++++------- .../shortcodes/dapr-latest-version.html | 2 +- 5 files changed, 27 insertions(+), 17 deletions(-) diff --git a/.github/workflows/website-root.yml b/.github/workflows/website-root.yml index 10277109f..818cf8c2d 100644 --- a/.github/workflows/website-root.yml +++ b/.github/workflows/website-root.yml @@ -3,11 +3,11 @@ name: Azure Static Web App Root on: push: branches: - - v1.4 + - v1.5 pull_request: types: [opened, synchronize, reopened, closed] branches: - - v1.4 + - v1.5 jobs: build_and_deploy_job: diff --git a/README.md b/README.md index f89b015f6..06c19fff9 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ The following branches are currently maintained: | Branch | Website | Description | | ------------------------------------------------------------ | -------------------------- | ------------------------------------------------------------------------------------------------ | -| [v1.4](https://github.com/dapr/docs) (primary) | https://docs.dapr.io | Latest Dapr release documentation. Typo fixes, clarifications, and most documentation goes here. | -| [v1.5](https://github.com/dapr/docs/tree/v1.5) (pre-release) | https://v1-5.docs.dapr.io/ | Pre-release documentation. Doc updates that are only applicable to v1.5+ go here. | +| [v1.5](https://github.com/dapr/docs) (primary) | https://docs.dapr.io | Latest Dapr release documentation. Typo fixes, clarifications, and most documentation goes here. | +| [v1.6](https://github.com/dapr/docs/tree/v1.6) (pre-release) | https://v1-6.docs.dapr.io/ | Pre-release documentation. Doc updates that are only applicable to v1.6+ go here. | For more information visit the [Dapr branch structure](https://docs.dapr.io/contributing/contributing-docs/#branch-guidance) document. diff --git a/daprdocs/config.toml b/daprdocs/config.toml index 976699036..225bb62af 100644 --- a/daprdocs/config.toml +++ b/daprdocs/config.toml @@ -1,5 +1,5 @@ # Site Configuration -baseURL = "https://v1-5.docs.dapr.io/" +baseURL = "https://docs.dapr.io/" title = "Dapr Docs" theme = "docsy" disableFastRender = true @@ -160,17 +160,20 @@ github_subdir = "daprdocs" github_branch = "v1.5" # Versioning -version_menu = "v1.5 (preview)" +version_menu = "v1.5 (latest)" version = "v1.5" archived_version = false url_latest_version = "https://docs.dapr.io" [[params.versions]] - version = "v1.5 (preview)" + version = "v1.6 (preview)" + url = "https://v1-6.docs.dapr.io" +[[params.versions]] + version = "v1.5 (latest)" url = "#" [[params.versions]] - version = "v1.4 (latest)" - url = "https://docs.dapr.io" + version = "v1.4" + url = "https://v1-4.docs.dapr.io" [[params.versions]] version = "v1.3" url = "https://v1-3.docs.dapr.io" diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index a07e40e4e..f90947f34 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -39,13 +39,14 @@ The table below shows the versions of Dapr releases that have been tested togeth | May 26th 2021 | 1.2.0
| 1.2.0 | Java 1.1.0
Go 1.1.0
PHP 1.1.0
Python 1.1.0
.NET 1.2.0 | 0.6.0 | Unsupported | | Jun 16th 2021 | 1.2.1
| 1.2.0 | Java 1.1.0
Go 1.1.0
PHP 1.1.0
Python 1.1.0
.NET 1.2.0 | 0.6.0 | Unsupported | | Jun 16th 2021 | 1.2.2
| 1.2.0 | Java 1.1.0
Go 1.1.0
PHP 1.1.0
Python 1.1.0
.NET 1.2.0 | 0.6.0 | Unsupported | -| Jul 26th 2021 | 1.3
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Supported | -| Sep 14th 2021 | 1.3.1
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Supported | -| Sep 15th 2021 | 1.4
| 1.4.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | -| Sep 22nd 2021 | 1.4.1
| 1.4.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported -| Sep 24th 2021 | 1.4.2
| 1.4.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | -| Oct 7th 2021 | 1.4.3
| 1.4.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported (current) | - +| Jul 26th 2021 | 1.3
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Unsupported | +| Sep 14th 2021 | 1.3.1
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Unsupported | +| Sep 15th 2021 | 1.4
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | +| Sep 22nd 2021 | 1.4.1
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported +| Sep 24th 2021 | 1.4.2
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | +| Oct 7th 2021 | 1.4.3
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | +| Nov 11th 2021 | 1.5.0
| 1.5.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.4.0
.NET 1.5.0 | 0.8.0 | Supported (current) | + ## Upgrade paths After the 1.0 release of the runtime there may be situations where it is necessary to explicitly upgrade through an additional release to reach the desired target. For example an upgrade from v1.0 to v1.2 may need go pass through v1.1 @@ -59,15 +60,21 @@ General guidance on upgrading can be found for [self hosted mode]({{ Date: Wed, 10 Nov 2021 09:57:16 -0800 Subject: [PATCH 092/102] Update daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md Co-authored-by: Will --- .../components-reference/supported-pubsub/setup-apache-kafka.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index 362dce039..5a59f8309 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -57,7 +57,7 @@ spec: | caCert | N | Certificate authority certificate, required for using TLS. Can be `secretKeyRef` to use a secret reference | `"-----BEGIN CERTIFICATE-----\n\n-----END CERTIFICATE-----"` | clientCert | N | Client certificate, required for using TLS. Can be `secretKeyRef` to use a secret reference | `"-----BEGIN CERTIFICATE-----\n\n-----END CERTIFICATE-----"` | clientKey | N | Client key, required for using TLS. Can be `secretKeyRef` to use a secret reference | `"-----BEGIN RSA PRIVATE KEY-----\n\n-----END RSA PRIVATE KEY-----"` -| skipVerify | N | Skip TLS verification, this is not recommended using in production. Defaults to `"false"` | `"true"`, `"false"` | +| skipVerify | N | Skip TLS verification, this is not recommended for use in production. Defaults to `"false"` | `"true"`, `"false"` | ### Communication using TLS To configure communication using TLS, ensure the Kafka broker is configured to support certificates. From eb831e834d18e584da9b191ff21071b146306c71 Mon Sep 17 00:00:00 2001 From: Will Tsai Date: Thu, 11 Nov 2021 10:39:05 -0800 Subject: [PATCH 093/102] updating references to Alicloud Tablestore in v1.5, see #1932 --- .../reference/components-reference/supported-bindings/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md index 65cd66e3e..2c0e2625e 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md @@ -50,7 +50,7 @@ Table captions: |------|:----------------:|:-----------------:|--------| ------ |----------| | [Alibaba Cloud DingTalk]({{< ref alicloud-dingtalk.md >}}) | ✅ | ✅ | Alpha | v1 | 1.2 | | [Alibaba Cloud OSS]({{< ref alicloudoss.md >}}) | | ✅ | Alpha | v1 | 1.0 | -| [Alibaba Cloud Tablestore]({{< ref alicloudtablestore.md >}}) | | ✅ | Alpha | v1 | 1.4 | +| [Alibaba Cloud Tablestore]({{< ref alicloudtablestore.md >}}) | | ✅ | Alpha | v1 | 1.5 | ### Amazon Web Services (AWS) From 632ab379dcd868cc27511875606171ccdb465581 Mon Sep 17 00:00:00 2001 From: Yaron Schneider Date: Thu, 11 Nov 2021 11:07:45 -0800 Subject: [PATCH 094/102] add configuration api how-to and overview placeholder (#1928) * add configuration api how-to and overview placeholder * fix code tab * change format * add docs * Updated to text * Update building-blocks-concept.md * Minor updates * Update to overview Co-authored-by: Mark Fussell --- .../en/concepts/building-blocks-concept.md | 3 +- .../building-blocks/configuration/_index.md | 7 ++ .../app-configuration-overview.md | 18 +++ .../howto-manage-configuration.md | 114 ++++++++++++++++++ 4 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 daprdocs/content/en/developing-applications/building-blocks/configuration/_index.md create mode 100644 daprdocs/content/en/developing-applications/building-blocks/configuration/app-configuration-overview.md create mode 100644 daprdocs/content/en/developing-applications/building-blocks/configuration/howto-manage-configuration.md diff --git a/daprdocs/content/en/concepts/building-blocks-concept.md b/daprdocs/content/en/concepts/building-blocks-concept.md index 574cbb553..182457c3a 100644 --- a/daprdocs/content/en/concepts/building-blocks-concept.md +++ b/daprdocs/content/en/concepts/building-blocks-concept.md @@ -26,4 +26,5 @@ The following are the building blocks provided by Dapr: | [**Resource bindings**]({{}}) | `/v1.0/bindings` | A binding provides a bi-directional connection to an external cloud/on-premise service or system. Dapr allows you to invoke the external service through the Dapr binding API, and it allows your application to be triggered by events sent by the connected service. | [**Actors**]({{}}) | `/v1.0/actors` | An actor is an isolated, independent unit of compute and state with single-threaded execution. Dapr provides an actor implementation based on the Virtual Actor pattern which provides a single-threaded programming model and where actors are garbage collected when not in use. | [**Observability**]({{}}) | `N/A` | Dapr system components and runtime emit metrics, logs, and traces to debug, operate and monitor Dapr system services, components and user applications. -| [**Secrets**]({{}}) | `/v1.0/secrets` | Dapr offers a secrets building block API and integrates with secret stores such as Azure Key Vault and Kubernetes to store the secrets. Service code can call the secrets API to retrieve secrets out of the Dapr supported secret stores. +| [**Secrets**]({{}}) | `/v1.0/secrets` | Dapr provides a secrets building block API and integrates with secret stores such as Hashicorp valut, local files, Azure Key Vault and Kubernetes to store the secrets. Services can call the secrets API to retrieve secrets, for example to get a connection string to a database. +| [**Configuration**]({{}}) | `/v1.0/configuration` | Dapr provides a Configuration API that enables you to retrieve and subscribe to application configuration items for Dapr supported configuration stores. This enables an application to set specific configuration information for example at start up or when configuration changes are made in the stores. diff --git a/daprdocs/content/en/developing-applications/building-blocks/configuration/_index.md b/daprdocs/content/en/developing-applications/building-blocks/configuration/_index.md new file mode 100644 index 000000000..4965ac035 --- /dev/null +++ b/daprdocs/content/en/developing-applications/building-blocks/configuration/_index.md @@ -0,0 +1,7 @@ +--- +type: docs +title: "Configuration" +linkTitle: "Configuration" +weight: 30 +description: Manage application configuration +--- diff --git a/daprdocs/content/en/developing-applications/building-blocks/configuration/app-configuration-overview.md b/daprdocs/content/en/developing-applications/building-blocks/configuration/app-configuration-overview.md new file mode 100644 index 000000000..a368c615b --- /dev/null +++ b/daprdocs/content/en/developing-applications/building-blocks/configuration/app-configuration-overview.md @@ -0,0 +1,18 @@ +--- +type: docs +title: "Configuration overview" +linkTitle: "Configuration overview" +weight: 1000 +description: "Use Dapr to get and watch application configuration" +--- + +Consuming application configuration is a common task when writing applications and frequently configuration stores are used to manage this configuration data. A configuration item is often dynamic in nature and is tightly coupled to the needs of the application that consumes it. For example, common uses for application configuration include names of secrets that need to be retrieved, different identifiers, partition or consumer IDs, names of databased to connect to etc. These configuration items are typically stored as key-value items in a database. + +Dapr provides a [State Management API]({{}})) that is based on key-value stores. However, application configuration can be changed by either developers or operators at runtime and the developer needs to be notified of these changes in order to take the required action and load the new configuration. Also the configuration data may want to be read only. Dapr's Configuration API allows developers to consume configuration items that are returned as key/value pair and subscribe to changes whenever a configuration item changes. + +*This API is currently in `Alpha state` and only available on gRPC. An HTTP1.1 supported version with this URL `/v1.0/configuration` will be available before the API becomes stable. * + +## References + +- [How-To: Manage application configuration]({{< ref howto-manage-configuration.md >}}) + diff --git a/daprdocs/content/en/developing-applications/building-blocks/configuration/howto-manage-configuration.md b/daprdocs/content/en/developing-applications/building-blocks/configuration/howto-manage-configuration.md new file mode 100644 index 000000000..7a8383940 --- /dev/null +++ b/daprdocs/content/en/developing-applications/building-blocks/configuration/howto-manage-configuration.md @@ -0,0 +1,114 @@ +--- +type: docs +title: "How-To: Manage application configuration" +linkTitle: "How-To: Manage application configuration" +weight: 2000 +description: "Learn how to get application configuration and watch for changes" +--- + +## Introduction + +Consuming application configuration is a common task when writing applications and frequently configuration stores are used to manage this configuration data. A configuration item is often dynamic in nature and is tightly coupled to the needs of the application that consumes it. For example, common uses for application configuration include names of secrets that need to be retrieved, different identifiers, partition or consumer IDs, names of databased to connect to etc. These configuration items are typically stored as key-value items in a database. + +Dapr provides a [State Management API]({{}})) that is based on key-value stores. However, application configuration can be changed by either developers or operators at runtime and the developer needs to be notified of these changes in order to take the required action and load the new configuration. Also the configuration data may want to be read only. Dapr's Configuration API allows developers to consume configuration items that are returned as key/value pair and subscribe to changes whenever a configuration item changes. + +*This API is currently in `Alpha state` and only available on gRPC. An HTTP1.1 supported version with this URL `/v1.0/configuration` will be available before the API becomes stable. * + +This HowTo uses the Redis configuration store component as an exmaple to retrieve a configuration item. + +## Step 1: Save a configuration item + +First, create a configuration item in a supported configuration store. This can be a simple key-value item, with any key of your choice. For this example, we'll use the Redis configuration store component + +### Run Redis with Docker + +``` +docker run --name my-redis -p 6379:6379 -d redis +``` + +### Save an item + +Using the [Redis CLI](https://redis.com/blog/get-redis-cli-without-installing-redis-server/), connect to the Redis instance: + +``` +redis-cli -p 6379 +``` + +Save a configuration item: + +``` +set myconfig "wookie" +``` + +### Configure a Dapr configuration store + +Save the following file component file, for example to the default components folder on your machine. You can use this as the Dapr component YAML for Kubernetes using kubectl or when running with the Dapr CLI. Hint: The Redis configuration component has identical metadata to the Redis statestore component, so you can simply copy and change the component type if you already have a Redis statestore YAML file. + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: redisconfiguration +spec: + type: configuration.redis + metadata: + - name: host + value: localhost:6379 +``` + +### Get configuration items using gRPC API + +Using your [favorite language](https://grpc.io/docs/languages/), create a Dapr gRPC client from the [Dapr proto](https://github.com/dapr/dapr/blob/master/dapr/proto/runtime/v1/dapr.proto). The following examples show Java, C#, Python and Javascript clients. + +{{< tabs Java Dotnet Python Javascript >}} + +{{% codetab %}} +```java + +Dapr.ServiceBlockingStub stub = Dapr.newBlockingStub(channel); +stub.GetConfigurationAlpha1(new GetConfigurationRequest{ StoreName = "redisconfig", Keys = new String[]{"myconfig"} }); +``` +{{% /codetab %}} + +{{% codetab %}} +```csharp + +var call = client.GetConfigurationAlpha1(new GetConfigurationRequest { StoreName = "redisconfig", Keys = new String[]{"myconfig"} }); +``` +{{% /codetab %}} + +{{% codetab %}} +```python +response = stub.GetConfigurationAlpha1(request={ StoreName: 'redisconfig', Keys = ['myconfig'] }) +``` +{{% /codetab %}} + +{{% codetab %}} +```javascript +client.GetConfigurationAlpha1({ StoreName: 'redisconfig', Keys = ['myconfig'] }) +``` +{{% /codetab %}} + +{{< /tabs >}} + +### Watch configuration items + +Using your [favorite language](https://grpc.io/docs/languages/), create a Dapr gRPC client from the [Dapr proto](https://github.com/dapr/dapr/blob/master/dapr/proto/runtime/v1/dapr.proto). +Use the proto method `SubscribeConfigurationAlpha1` on your client stub to start subscribing to events. The method accepts the following request object: + +```proto +message SubscribeConfigurationRequest { + // The name of configuration store. + string store_name = 1; + + // Optional. The key of the configuration item to fetch. + // If set, only query for the specified configuration items. + // Empty list means fetch all. + repeated string keys = 2; + + // The metadata which will be sent to configuration store components. + map metadata = 3; +} +``` + +Using this method, you can subscribe to changes in specific keys for a given configuration store. gRPC streaming varies widely based on language - see the [gRPC examples here](https://grpc.io/docs/languages/) for usage. From b30d8594c78f1116827a4db7e090d802a12d2eb5 Mon Sep 17 00:00:00 2001 From: Will Tsai Date: Thu, 11 Nov 2021 14:49:17 -0800 Subject: [PATCH 095/102] add iARM64 Mac support --- .../content/en/getting-started/install-dapr-cli.md | 13 +++++++++---- .../operations/support/support-preview-features.md | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/daprdocs/content/en/getting-started/install-dapr-cli.md b/daprdocs/content/en/getting-started/install-dapr-cli.md index 41201aef1..ab571330c 100644 --- a/daprdocs/content/en/getting-started/install-dapr-cli.md +++ b/daprdocs/content/en/getting-started/install-dapr-cli.md @@ -48,6 +48,11 @@ This command installs the latest darwin Dapr CLI to `/usr/local/bin`: ```bash curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | /bin/bash ``` +#### Note for ARM64 Macs +Support for ARM64 Macs is available as a Preview feature. When installing from the terminal, native ARM64 binaries are downloaded when available. For older releases, AMD64 binaries are downloaded, which must be run with Rosetta2 emulation enabled. To install Rosetta emulation: +```bash +softwareupdate --install-rosetta +``` ### Install from Homebrew You can install via [Homebrew](https://brew.sh): @@ -55,11 +60,11 @@ You can install via [Homebrew](https://brew.sh): brew install dapr/tap/dapr-cli ``` -#### Note for M1 Macs -For M1 Macs, homebrew is not supported. You will need to use the dapr install script and have the rosetta amd64 compatibility layer installed. If you do not have it installed already, you can run the following: +#### Note for ARM64 Macs +For ARM64 Macs, only Homebrew 3.0 and higher versions are supported. Please update Homebrew to 3.0.0 or higher and then run the command below: ```bash -softwareupdate --install-rosetta +arch -arm64 brew install dapr/tap/dapr-cli ``` ### Install without `sudo` @@ -132,4 +137,4 @@ Flags: Use "dapr [command] --help" for more information about a command. ``` -{{< button text="Next step: Initialize Dapr >>" page="install-dapr-selfhost" >}} +{{< button text="Next step: Initialize Dapr >>" page="install-dapr-selfhost" >}} \ No newline at end of file diff --git a/daprdocs/content/en/operations/support/support-preview-features.md b/daprdocs/content/en/operations/support/support-preview-features.md index 202eb22e0..a72db3dc2 100644 --- a/daprdocs/content/en/operations/support/support-preview-features.md +++ b/daprdocs/content/en/operations/support/support-preview-features.md @@ -16,3 +16,4 @@ Preview features in Dapr are considered experimental when they are first release | **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]({{}}) | +| **ARM64 Mac Support** | Dapr CLI, sidecar, and Dashboard are now natively compiled for ARM64 Macs, along with Dapr CLI installation via Homebrew. | N/A | [Install the Dapr CLI]({{}}) | \ No newline at end of file From 9a2c7cb616c2308944828b6923ccc78c5c92aceb Mon Sep 17 00:00:00 2001 From: Will Date: Thu, 11 Nov 2021 15:18:05 -0800 Subject: [PATCH 096/102] Update daprdocs/content/en/operations/support/support-release-policy.md --- .../content/en/operations/support/support-release-policy.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index f90947f34..bb14701a2 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -74,7 +74,8 @@ General guidance on upgrading can be found for [self hosted mode]({{ Date: Thu, 11 Nov 2021 16:03:16 -0800 Subject: [PATCH 097/102] remove DaprCon card in main page --- daprdocs/content/en/_index.md | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/daprdocs/content/en/_index.md b/daprdocs/content/en/_index.md index fd2858b3d..0196626cc 100644 --- a/daprdocs/content/en/_index.md +++ b/daprdocs/content/en/_index.md @@ -2,23 +2,6 @@ type: docs no_list: true --- - -

- -

# Dapr Docs Welcome to the Dapr documentation site! From 80da31e790a7ec49ee63797deeddfc958797e05e Mon Sep 17 00:00:00 2001 From: Mukundan Sundararajan Date: Fri, 12 Nov 2021 22:40:08 +0530 Subject: [PATCH 098/102] fix alpha1 typo for query state api ref (#1945) --- daprdocs/content/en/reference/api/state_api.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/reference/api/state_api.md b/daprdocs/content/en/reference/api/state_api.md index 229cce96a..e0df6724b 100644 --- a/daprdocs/content/en/reference/api/state_api.md +++ b/daprdocs/content/en/reference/api/state_api.md @@ -303,7 +303,7 @@ This API is in alpha stage. ### HTTP Request ``` -POST/PUT http://localhost:/v1.0-alpha/state//query +POST/PUT http://localhost:/v1.0-alpha1/state//query ``` #### URL Parameters @@ -330,7 +330,7 @@ An array of JSON-encoded values ### Example ```shell -curl http://localhost:3500/v1.0-alpha/state/myStore/query \ +curl http://localhost:3500/v1.0-alpha1/state/myStore/query \ -H "Content-Type: application/json" \ -d '{ "query": { @@ -415,7 +415,7 @@ curl http://localhost:3500/v1.0-alpha/state/myStore/query \ To pass metadata as query parammeter: ``` -POST http://localhost:3500/v1.0-alpha/state/myStore/query?metadata.partitionKey=mypartitionKey +POST http://localhost:3500/v1.0-alpha1/state/myStore/query?metadata.partitionKey=mypartitionKey ``` ## State transactions From 3e5952f717bbc0499a686c14dbe5e3f3a094c9a8 Mon Sep 17 00:00:00 2001 From: Mark Fussell Date: Fri, 12 Nov 2021 09:17:18 -0800 Subject: [PATCH 099/102] Adding the JS SDK to the list for 1.5.0 release --- .../en/operations/support/support-release-policy.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index bb14701a2..f71307d21 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -39,13 +39,13 @@ The table below shows the versions of Dapr releases that have been tested togeth | May 26th 2021 | 1.2.0
| 1.2.0 | Java 1.1.0
Go 1.1.0
PHP 1.1.0
Python 1.1.0
.NET 1.2.0 | 0.6.0 | Unsupported | | Jun 16th 2021 | 1.2.1
| 1.2.0 | Java 1.1.0
Go 1.1.0
PHP 1.1.0
Python 1.1.0
.NET 1.2.0 | 0.6.0 | Unsupported | | Jun 16th 2021 | 1.2.2
| 1.2.0 | Java 1.1.0
Go 1.1.0
PHP 1.1.0
Python 1.1.0
.NET 1.2.0 | 0.6.0 | Unsupported | -| Jul 26th 2021 | 1.3
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Unsupported | -| Sep 14th 2021 | 1.3.1
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Unsupported | +| Jul 26th 2021 | 1.3
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Unsupported | +| Sep 14th 2021 | 1.3.1
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Unsupported | | Sep 15th 2021 | 1.4
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | | Sep 22nd 2021 | 1.4.1
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported -| Sep 24th 2021 | 1.4.2
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | +| Sep 24th 2021 | 1.4.2
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | | Oct 7th 2021 | 1.4.3
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | -| Nov 11th 2021 | 1.5.0
| 1.5.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.4.0
.NET 1.5.0 | 0.8.0 | Supported (current) | +| Nov 11th 2021 | 1.5.0
| 1.5.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.4.0
.NET 1.5.0
JS 1.0.2 | 0.8.0 | Supported (current) | ## Upgrade paths After the 1.0 release of the runtime there may be situations where it is necessary to explicitly upgrade through an additional release to reach the desired target. For example an upgrade from v1.0 to v1.2 may need go pass through v1.1 From 64b027317c96db6754b555815ee179d322e787e5 Mon Sep 17 00:00:00 2001 From: Yaron Schneider Date: Fri, 12 Nov 2021 09:49:53 -0800 Subject: [PATCH 100/102] Update howto-manage-configuration.md (#1947) --- .../building-blocks/configuration/howto-manage-configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/configuration/howto-manage-configuration.md b/daprdocs/content/en/developing-applications/building-blocks/configuration/howto-manage-configuration.md index 7a8383940..edc00de13 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/configuration/howto-manage-configuration.md +++ b/daprdocs/content/en/developing-applications/building-blocks/configuration/howto-manage-configuration.md @@ -52,7 +52,7 @@ metadata: spec: type: configuration.redis metadata: - - name: host + - name: redisHost value: localhost:6379 ``` From e23e7cf745e99fa08730cbcaa6f987e16e60ddfc Mon Sep 17 00:00:00 2001 From: Will Tsai Date: Fri, 12 Nov 2021 10:00:23 -0800 Subject: [PATCH 101/102] make corrections to PHP and Dashboard versions --- .../en/operations/support/support-release-policy.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index bb14701a2..6216754d7 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -41,11 +41,11 @@ The table below shows the versions of Dapr releases that have been tested togeth | Jun 16th 2021 | 1.2.2
| 1.2.0 | Java 1.1.0
Go 1.1.0
PHP 1.1.0
Python 1.1.0
.NET 1.2.0 | 0.6.0 | Unsupported | | Jul 26th 2021 | 1.3
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Unsupported | | Sep 14th 2021 | 1.3.1
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Unsupported | -| Sep 15th 2021 | 1.4
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | -| Sep 22nd 2021 | 1.4.1
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported -| Sep 24th 2021 | 1.4.2
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | -| Oct 7th 2021 | 1.4.3
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.2.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | -| Nov 11th 2021 | 1.5.0
| 1.5.0 | Java 1.3.0
Go 1.3.0
PHP 1.2.0
Python 1.4.0
.NET 1.5.0 | 0.8.0 | Supported (current) | +| Sep 15th 2021 | 1.4
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | +| Sep 22nd 2021 | 1.4.1
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported +| Sep 24th 2021 | 1.4.2
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | +| Oct 7th 2021 | 1.4.3
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Supported | +| Nov 11th 2021 | 1.5.0
| 1.5.0 | Java 1.3.0
Go 1.3.0
PHP 1.1.0
Python 1.4.0
.NET 1.5.0 | 0.9.0 | Supported (current) | ## Upgrade paths After the 1.0 release of the runtime there may be situations where it is necessary to explicitly upgrade through an additional release to reach the desired target. For example an upgrade from v1.0 to v1.2 may need go pass through v1.1 From a17563f437296639783b317e2e4f7433080c3120 Mon Sep 17 00:00:00 2001 From: Will Tsai Date: Fri, 12 Nov 2021 10:55:37 -0800 Subject: [PATCH 102/102] update azure static web app version in workflow config --- .github/workflows/website-v1-5.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/website-v1-5.yml b/.github/workflows/website-v1-5.yml index 0e030ecd5..c83cf8e8c 100644 --- a/.github/workflows/website-v1-5.yml +++ b/.github/workflows/website-v1-5.yml @@ -1,4 +1,4 @@ -name: Azure Static Web App v1.4 +name: Azure Static Web App v1.5 on: push:

Zw_Pc0rt!M<+qUf!FzT`AFv z@xVHh__p7|)M(AeE@gf2_1ks(#p7D{w^l#R6e7%Svmy74H?4z+a4 z$WH}cXIJ3-i8XH`N6T2pSk{u3lYH`)*r;f)RGxm5Y`oBM?6Yjg*su2A?K+XRA`s<* zwB**u+!kn&)r^YT0*y4^MPT}wXxt2?l;lnFhoV9)bhY8k)PM1VP%UlCI(bI*eHrry zg0Tw-k&t|w>1@98QtdmAYXzNWbxUy6ZoGlmm0s%OEUzBEY;phr$&${{D!;?T;jL`^ z)Iv2sGIvFM96@Ho0mD6Eyp;OkZqt0ij-%@qdOux%x$S=VGDn=@M{Z$ukS(SbD<@bOAfWg~rOp!}IpG zwm4gg#xVsmfJ&Eul8;hkMCrphd>|E}VPHR*a21Lwne98FT@f+u$k%NuVjlb6HXxIt z+s0W%qe}Ef()#!8$GnMl ze&mN1z>hoOUla^GWsl-7)GG#QJABemBX;z^g>gH<Rv?IT&yk#W-M_-F%4pgH895?0>}7KBW=tJK|CD)c^$2>k6u_a+#%0 zd)p80f(WF!Dby+}NJpH;pF#gi8jiu!DGxn%w3ihRNj!z$NyIX7KmD@uILB4^o#kor zJz~IG#2xNFw5x*7QNNB+`L~A99>Ax@QPa>t1za@cVQ7~Tnh(1>%)wK{=lA23-9-vq zOEYofOK$&zOBpIZ`gxDAe13U5xw5B~L<-`O{UGKoaz{1Psa+RibvG2R3 z#e;A1IyKF*2DP4N^leoQl)6Th;F5b6aHcndPDSJ;9{dg2<2#yE6(7Cyi*8#mXfp7s z_wF9Ul?;u3ng3vn`)or9hu)fRt5lQN1hm{?ZfE7ds7?OHBBKZQRY$(_Z}QA|8Jx zGv;SHS*Bvf>q(>$XnLOG+%4ip%*d%b*WD(#v`(H(a9O!K+q*-1{l2gYYiQ)+`-9N_ z_3V3YU!bxGw~3g#N+jE^({l|^U=4QV%8B-5DxS2b;und-SURL;w@istah+6I zCqx4kS808`o>2>UX8siAOj3YDkDvQ?DH)gpFQCHzL;HbA5;}0t5E3RGNLpqVJ{{#? zuB?S5vZ&c0$zIO)X0_wmDNv}evazX!WPD}NC@ujMBL+Z6St-lZIGMzPudXwSEa)RG zMg5jZ#vP3uz$)%nzA`5Z6HPR^a62tzoauPqAmce-TZ?!np=pn|tSD^T{kF@{FdV1E z`h;tv+nfVE+Jmmqdrr5weUX1O|p3iCx2 ztx7S!glE+JS zfUi$ILJEYyJS}(!06AWJvFnoEQ24NdM$$%oVfLFPz!(G$q`A*E(ohf5vuDxIDKC8f z>;)y8bUQ!$+}X|eTiGet{h%&!8Jev8Kt4Hr%ci!x-H*!cF{lSj4i#?I-i7o4DmfoO zK*i;|pHv@8*Q9?7$yj}t z4!BDE2PX=5f<|6Jf9!OKqoOOqxs3l5go^I8e=5HadfM0a*W&b43-{>^vF|@xH&#g7 znIfI*PU>{BB1>D^!~6CALWHPVJ7_+2)77VmG3)Y#pubq8K-MHhiEN&%yTWnpG)vOC zqI2#JAX?rCvSJjkak_B24rX*$Sz%Y7hqm=A0wYuTTy)A5**I&QgOpt)sY~8?0_a`z z*6gJbcQvr=4Q2Mn4iDZ2^!jc`f3mcg1Rc&B@C(-dQ118H14*ebxGKYlWN#3Vgh@9| zJ+%ixWaUE+O9dW?pD6Y>12gF{aaAoZv)Hgv#sERyR-KXv#kHkfpWCVx{B<)?)%Rjt z2CTy4YjXuqDKMcyVT_ey)or~?+@x;^x;|e+G;rN%ox!mE zW$FeKPfEw?D+@CswR-VUwQwy(#?{L?>-F_2UCtb)VJse(566Z{%UCoH_ybE#@lwvY z?z+o~F9xKb*+TI|wRi?Qx{vu$gslL&CdDsw@i?X`L@~XXDH+{%sC49IWo2oS0T6ci z0n^3LIKxL$tw@ZOT`H$_kGVZdQ%awIn;PYo?3OAuI%5W! z-uK3UJgmqTF_D|MnL-#9FX4Mps?=eHru`+i_l-xGspo8a>kkhD`&yoX%s43*XvCiY z866b@ip7E4+9VwI+xFYb6Uu7V;$F*u8ih^37$~0Ry2=zF*s7XK!W*cC%YhN{fMZ=U z%-TRQ@BzP|LOHbcEv}^Nq-~_V|I|h_>3mH&ABC*{H@>L{%8%M=q1B^4k|5-nE(2RMEI6%tv0yvNPFDLX^SL$XGVt5@qqN5#W0=+V*b z?(U{$&=yG}YA-51i^=@fs$?G9J;wE}jT6-n z$L+8Ig+Ja#D(iJ3^>b7QuZa>Mzv`+RDo^@B}kEJv$E zfy>6(vQ$8&o`wZLrMt5-2Va4c^1Bu0E)` z|LN(Yu9f^-hD-N$C!}5!novERZu6q5&dLseT&W5dfsCC@^N;Te;0awYe>0{v^t}3K zX9~oK51{v))V{AG#2=$ko_Y21+x0ii>hbdW+e>it-pjfuzo|hgTR3QczV@NP{Uu1^ zrxZi+HI6I!GD``COTL6Ii-d@lE2TkQk+;H`QnfS_rJsD6+^ICmwc0-)#`+2iP|)bg z>|WkGp95JM3N{qhj2BX>mW*+syizA(Wbrxj!>|&CH&35v6Uty~U&HT1mW$MOTHR)jh_BJjw6DXNJi7xktqI}Bet+_|xgRZrg5aI<0oG4{~MN0qV-~&On zft#_yTvd+-04Xj~GJ(q7Tf;5RQE0ansM`Xbw->frQG@kPGyijFD@#?NS6PbW@rkav zb=$XN6jEQxcysT(`-+SE&+7p@1qrPKK}f4{*^})*_y|Z(yl55X`q^{@k-VxJ90JWX z83GgN60G_VfA#D}=Z!q~Y3LN)94oiS>)vHriu6@kmkiLKBU1DFP;&bP+i|FdD#hq? zzW_yf(k10MgS}#vVdXcreb5hvb zd6)UHqBorcdVRmzo!dtXF$oowrW%l!4x_t1fvTALw!=pWxz40b!fvFO-8HPYaEo$C z{Bbtdr2}c9Vs-8F0~Q1;197YyECivRN{& z*^M_^Pgb56LBr*>iY3N|7Sd$-h|8LoYJN&pmcvCjP-;{TWtg*_6@(BpJ>ppt7$m53 zDD{!|N`Yk6s7dH|3Ck?dk;zIiFoe$fQ)g{>6E0}^xIx=RaplAl)~{qd7=f$W|yGuXnd}R4^tGiq|*&DF0;o#P(2TdJr3K; z=ZTqB<9#=qgVZp>>rE5pZ5w^WL8naaxSZ2O-|Xb#-!O2M#R$Rw zYyn-H&_tK+!Bp#Jz_0xM;yd>BLj6poD79^n!e9WuHlB+jzSt({c^TnlAbcBkd4J5T z5dS`)k(qt>Gog%3Cm|IJI+3!WS0%ThuPhI9+-X;LRpCaJk0wToJfchnUU46in$N~v z%3lh2S&pG%;Y{lu@H|DklmRroawi)N$hqyYK<}ugvmIw5c%oV|hXymnve2m0y;&Ve z&p=p2?}gpvpHK@Z@7N;H`$Ef*`E4QJZvZ1`q4Ht)LN}&j@|N7D)LHCo305;eca_+B z1A}wu31~OKyK5}zMs`L%lT?jFuwK#@wCCoUJRx%}$;k*;2au-LaR<$@LuqIY8mZES zn1?Ss1bt78RO_k-!OJ6w;&?9EfT3Tp6trIoHSab_iZIop4E1q2vc?A}XBpOQM z<&;s6?4K9W&p#r=lb*MdnR$9XcHVd??11FXvakI3m1Axt*&Zbdhrbfgg z5=Z+^%ol5SXXiCst%iXZu6Jgapzw0tZSOi=4p^ixzqi*mm|cRK)@r7mg6J{yiX=Kc z7U@4nHU^jyy_5J*WGM_X{{fHyGQb8Wt;wB7 z!#{HH9}i944iho?@+HY1U3EgoZQyObDE^)*{tGaCMr1A8n;eCIzzjdW^8du2n4Ix~ zquVz-n-$1CXiz8wB`^%z`JN|n^~-5LXZGJ0Z-sOzT3GUVOrBxeQ^*8jM%006n+pMA zsQFJ`%72ImbrnK`lM)EXCd0>nowW_}g1Aq3gxdbUUR8wy@3Pry4}~aNK55q z%`&>jcKN|aW=7~UU^LPr9oI(6%OPn4g@T^w6p-ge$l!8?CQ2@c`&$#QYAKF<=oo4S zBkTxiO|mQv!_`<&d;@kO&UfZy2!4=~FHUi^bmD)L`S0}O=fjZex|N+7(SYma3a}K3 zZb1&5>Ld$iGVOKm@*{5y7cvN)^p;g|sqF%tq=%gYqz8i%s^E$#XtK+bJMu6du1MQk z|C+Kr@S_1`N279GKV$cG;GQ2!g~5@bsX@r9<}0bHrP2tx0zJIvLunz%9Bo$7+c@%_ z$55FO8hIL*_`UlphDV;)(+7qlnk`P_xdv3hjiHGP1$xbH zz>MnNrMmRvwD@-<7)~p|ih6-b-?;{PbXr6hbfe)y>HUS!l2_YNzASzyGH6cG#G@@x znCoG#5)cqT0NLnkmKGCHe9w<8zIcxf*fp6(rV5<)-$u>>kOICD=iqY45vM4fKvY`SD$(5E43b`QAD-wgU9x4Z=APYx_Wj_PkO1OFNpH;iHF}8L(e^`{GUy ziyz%6HFx0W7pH{RxPFqE{#^kBWl%`X6g*$_M^EyvM$BL2{ePw_#}>AchWiaOs-s)x zI4=^2hoZIp@k9(d3vk*N9rz3g9GPwp6nJ_MlZ$xK#Yc(LvNe6M5Zd?>AnDYDW>$$P z_6vM`e6l50_rThj6xNzyz!&;IzKifN4m=jeQz%D%fa6YjbE+j059IfKV`5^O?A(64 zE&koK1Msjo4Of8w4GrSgp{p6;Py+ynRKU;jJiLG1$m%y7=D&mKCX6jgC4fYUz&&M3 z0on0ZFAfLvKgI#`Cek>Ba%GNlA9@%%-^x&dZ4fK*%XcD2=N9nEG#DA;$B5hp!jggf z{Ul(NSncEI|5)w}rE?x!lGc2m5SkF+1uN*0wWVb7WJP0{grY72E7L$;r#wbz$M;w zb#-~={|~PZo#wqL5PfN-o^vsRlMPfIQ?wMnbGsk7V6}hw>)mvozzV!@Yv>BE-B%$n z*qT^aNN-of|pAOGk#h z3t8+!ED(JH*Xtd?q~qVdS-d;P=W}$|A47f31dH5L6%LymqYg?lke-Dqdd^?csqmF@ z2z^}$F(G+z{Q(UCQNEz#{=Yt_IyIN=ydv=6Pk>;iYQg>B|C_}Cx}TuNF93;?mu1!W zQ+ch}zlE#+t?eq9gmWJOIMM+UdXSnk>)n$0h!+p6tZJa>B?qn(97a|If3Ea8MVRX6 z@z~RFt}=o(1qMVJgiMO)P#zKoh22*2HtD~ngAAr4H=&W|ugy>oe{qFgANBwL#E%No z>HpWqYEN*p{X~1}Ytu=;QRgLQisQ%Ux(SmLJs7%$pFU0Tph4-5p+GWxGn+W)9x^o=Rcdp1t<*V=+o=5>+AsC;f81x_{~myI z$~@lFuik&U%=~9+LaYCO;)j;sqoxU-Y7_WfLH^%=eoYDHIVtwij$(g~#c4(i*?6($ zmU`ho4L*f>zzv9WBa5-)@t>nagP0jfI1XOF|GP9h^3RW*z~U)!lymyr?=B>WWvEaR zIDe8dvXY@m|7iy#7kCWSq^JB1AMIaX7Y1KPJ8du-f5cb~u@Rd;6EEcN)E{Pa^Utpf z4ynN+Nx}Hs@GLC;?9!`?z>8f==j9d;cEx_Yv@71FHs0e}5k(K3JNbCQScxn2uriu)yHvOt*~w`N|$A z`Ctg=&oe0hZJvs*0bV@!S|Tg|oW)}p4v0;wh-}7D6DZ_~P8Y%J)<&>8{||<+LB~+j z{Nh!Aw^D&oM+V*uUe}jJd-FFx-2Yy0{5+U9;R)xG{xz^d1Ms>y8dYC^TJiq-W$ z2s}BZmoDd@bN~O%M5zmbbg(eEE1d^&RRjQsQb1R`0B%TS^#H|9L2zchJ}ajY3u?Y< z>T4{2y@>}aj9J`AUbnpxa-N40&pzT`xHaIDN_!W*7le_FgQGz#83P^ND&u{}-;=I& zI$p>Xw@p&yx`c6FJ69~OEm!A={BgoEZ%^rQ(JiuUG(MEi(fLtKtm#Ev1Fe&|+CV7+miSl0dm-8)1ji{dQCyI`nf3wzGv(r^9wY#t;hX)1+)-=8i1 z_7gM@7jKMU^Z;GuR@uY3DL|`H?8iXUNg=*0xheL~F+c5u608-!37{M`HDXl^`C2aR zX^`ELe8pE<_l!ga#C9x-J661TJ$ayQac&?t5n6G?5JMqg1SAUCo^1SUWscK&O0dep zH!(uihS&s4>gdE%1i);V*pGmij|6CJeBI=Bvm#7!-C6H)r3Bw#Kqu*d{~iL{=oU!# z*eW#a1njSH{55Stv&axR9Ui!{+|K19)Ln)8LbT9RLPk3HEs!sh^py1{xEP?p9^ggb z1#owAnKXor2Jk<`iCBXwV8fhu+xPGFa|sy+ARXQWMWM{Z1xh{#Su}PO40MGIA|Uw} z(n$mfQL}#{GV)pj0*m@O;tB?(MFxlcgWV6Gw`jpT&;p2f zr9nt69CzjQH$%|2(XD%Y=Jj>a6ZT#Nm+NM+<_y7&EL}9ae8=h7p5I?jNUeDCwU5vv ztGdISBv7f+I)O;^6}_a1KXZVW>O*%uSltjdW}e-mI-_P;frc1Tjp8ng`Oh04Gko5a;;z@5X@t#5!&?r;|^nvEGLD z1!oRAa~^2GhX4R=Jh6~f#X6~@@#m@QpoSa*)vMo5&cM-;1nr#i0GP(25lN5qx~o;+ z=Cl0s6U&c~o$MsRc!FdCv*`5dBs87x*^ZrHY=%f#ftErT5z5>S12#Hq^94uI`QS*O#kN^CK?K>VQ8{D1Miu(e>nUWnV=q!XcmQp3p*Xd?cjCyKY1S|HIKD8?RnP% zFy;z~-rS0jMGT99exo^~Rtd$;JI0}KtaHOLl8jdMyGb+RfOs5#8Ls)XMVr%1 zP;Y-8_kafa0F2))=p^-CoILgCm{A{J0@p^KiBtAtz?g0VnChVrouX%pC2;62Kts^b zhki*8i$A><;g>w&m++Pc!v0z(HSTaa?l*++|9RGcPrDEV0B8)Ul%_BWDDQQdTF4yu8a zg260@v0-PKrsY=l)c7n&f|&$dnXJFO=X^qT@lDe0=+49h$B$n|z5T2g+Fd0hu2+4T z{wAbiIU0PTp<{uml>Kc4p(H`$3P(9%zLoZ z<}D$!YG+>u$X6C@`xCQ7kCfZX=r#nf7&M0k+b;AqIWJXS1aFDFUYx*d`}Hglntmu3 z>?3-*XY%c*a`B^Z%AS)Xf1FCRmy+!5&UWBqM$h_ENiXH)kZS;Kk(9;HB#6%EJvczM zF$h{xS6sP&|5eeTBb#jBA|I1@$6a}v?XvM*za`N$eT-zW!9Drho0Lz^&^qPlQ3}`! zSM7ectgJL`VOlk5$7Xk3;fku%eM|S8O5AOsi$Rsl;@@rX@1N*oNF-Xzd1KQF%vhRU zTuG!Hh7)O!{KgdgyU;{8$cME95eV+-fe%QAD!C}yE$A4m^wZuPo9MSb0vL< zA)NNWRiXR+Lx9@4fre$pe^GT^to<$vPC9XDv}HwF!|ML_g`u=-Wm2w^ujr~8CL!ox zmDTigS)EFC5m?46eYhA=kg;E;$P{%=wU_IJVdI8|y@B975kSeG)^LBs4TNmZgB;&;wn^VYl1Ue^k=CMm z_JCKz`{_PZ6~aNktqGXX>)ZarOTf($!45f@5a4#cJ6Ee~%%CHfdTwoj=KEgls{FS? z@-pX=*I6S@5^pwlC0>i$yWh^Ju5j5es#Ej~zNuvX$-QitGbQKLD;|5LtQ4*s`Zv_=EWiMK_jU;Ebh*m7aswSIBSyBMnljYu0y zIgaf2Q~JFxl3H5%=Tzc?T^X9l4IMhdl3lL*okAM2XU_NcTd#eQmV{bDj>YLm{hD0>lO9ixdxpVYr>QVG7*^xmT2ee1oiDpR8rM3+%WE@+v^vco(? zEpJhN%JSA_qNJuUwHEv4=NE>PG}6XI1Jsv?1?S|Jz6@a|t)JXW~btt#O!^hnA6tM&rwoJBx7 zXKrq|Rc+Y-uE=4CnMv%ID?~UXG(-(IqRGQb55Gk)Vin&HMq4?Bwcr>YVDKSAWJq*# z!)vgB+79*oKjW0N=K08e_u%8|%qoTT(mPsXjYAxYjON~flHc=h>OCZrKjeJeOXlFe6f~=4Gq0?mO| zXIQaLnkt=1*bMi0XlK5h&@lVm#C6*BT;GIiELD%H>==u-5UJ9otc4DFiyV#!vq&CG zq7b}GL|w!69mCYm`WEvsda`|6yB$S??NH}b$g!-;X&NroEhkk;7dF~v5Rm2?4>^6T zFAzPJVsPuaNL}q>@dlc~blYpfR9`&pU-$;~Yh+UHtI$35Z$Ou^zg(qyEs91I)APa_ zSSN+BC%eA7MeTU*EAGpLk%jWRp zNzpXdV7p*>lIbRMo%KzEl(Pia&+}w&kY~CaU8}z~NQ| zsz%ggGe5U6$>yHoWG~xR?T{2o4NdA=DH{twSK9i@NQ%|6xUt?ozrtMOqpZ5Ts$~5-CaPlrHIRL?nmqF6piT=@bEJ3CZ6%_rCAF zz4rb-&wm`()DCHP%om#ETTdP} zE)l1fQAOpZn*NZ-X)rUaHC;fTa<90QaUoWXA4ndv)Xm8MdQA`cL3gv%vBt52>PDmN zkN~6^L%`7Bj5Pzs54(?~G5|9{4TvV`;hF0^=A)MyIbAdhP;H*f`Fzmro&YoAwNIDm zZ~OB}OiTVtrOcsel3{aj^FMuInd;IiV!!Uih0ZchJu;lxe6e-vvGw)+8kx(NkGgyL zB8+tHI(Fd+tjlQArz|wKp1h(76xoH(c?Qkq2%4YsC~BmoY8iN?J>9e!Nus{IGDFP1 zGG15x?z38x;K3_C&kr>U-alo9DYc)$bp5^BF-iFnKusbC&R6e)Wb*%RWMevpTj8{$TBKeSXPYJ9U;?aQao@rThZYWQCT*vOd8-`vsBLyw)A*|w zHFs3+ggrEod9Fb1b0XJn8AoOC{^?3}<@;TgUA?!M5%Gmunfqw~9V9vd_;ESzUf zGHcx(reo9T4}LR1S0}SyZufK|NrrHn%7QDGo=OTWlhPSnNshNLeP(^G^ctI^{G~Z4 zWecj?rX?w2gnTAjYyxwJ{<8u(hA{lz_?(E@w|Bd(j(S_KWQtS$3}KTuP}7sGRtF`1 zZ-A1KT=tqe`;+eB^>-g?4|@I?L1No8{D-v4rAxea%X+$L&;_F~5-y{U!0)06s2R{w zWt=Lp+u!k<;8{_~y?p%mvAnqWM|iXq7|T)Pkgn;+5SjhXwtm}vu;IaUyxtoZ_vcZb zd#UPR_zfhj#5n}Y`eC2)8nX5-*4I7wA zcO7ORC$G2tI-3Vtr#hR_Wj7YSQX3JQDNxG_lDJLGtG7o}h@`cA{q{Q~F~S1fu>wu> zeMg$5mzeR=tDW)B0T?9D`$H(c|JBwT*n&2S^Wx0a{Tw{Ni9m7Pw0PKH3R<9(9%4fQ zTdXs42)8jkJ5U+Il|0k?QVVeZlmCZOz)K3$kwS6RX&C8>uPrk2~0Nw{Ohq2KiKMsJzx_PJ+W#rqTI(G9O$;)~CDN~zy$N1!EGTy0`A9^Y%2@m@F1{?d=Vo%rFu ze!fy!?VkZ%O%l~mmH1ddAcxnmyS%+`FBZbpV`l_>eUpHonSK5D#_XsH^u*rUDWE|1;tI zs00ot@2!mJYo?}u|LXtswJ*3B&xqyDrT)5&{%di$ ziVsFF*+-S!|MxYt!(VvBTe_dy;FJb3ITDdcu)>hbS4e#e#GHW$Q8z z1rK8!7>Ml!040+?7{$_nz}PClENR^b#^nTHuLv4jomNrGYNe4NF5lZA_NK4?7XDPq zg#sg?`GQh@J~;(TaU6|%FLB?FwV7^jUX?bV$k)}x(HXzUe(8LAE}|l5Os{eyAbN%$OJdmOql?!Y zLF-`BhjCU>23m7urL5VNkVWmOhWFUE;6KOBRRa3?Ml?BmvSZDEC>u_PDw)`PF%Vzi z_~K{WRaExWMY=TV`tAo7L%ISw&BI%jBXViE3@VB?Nn_0e5jUp#gT>^xyZj`y9!}BG zr@xE(3D5L9L32S)%>R>@ZCTX2r&y>KpobueVxxS z&*GM!K6y_Y_LR2CiImq6D@%YA3_cRU0EF=Ud$;}+FrT?;-ml1LcT^LDz5~OI@U}Ra zT}?K!_3pi>M+IhEu0L0LVTqbrMu_1`K^qbeJjbY0pM&ioxyHl zCdducJrQ>YM*gVn3%{PK$p@`Bf`00?LR}DTo`+O