diff --git a/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml b/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml new file mode 100644 index 000000000..3c14f7651 --- /dev/null +++ b/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml @@ -0,0 +1,53 @@ +name: Azure Static Web Apps CI/CD + +on: + push: + branches: + - v1.1 + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - v1.1 + +jobs: + build_and_deploy_job: + if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + - name: Setup Docsy + run: cd daprdocs && git submodule update --init --recursive && sudo npm install -D --save autoprefixer && sudo npm install -D --save postcss-cli + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v0.0.1-preview + env: + HUGO_ENV: production + HUGO_VERSION: "0.74.3" + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_BAY_0E9E0E81E }} + repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) + skip_deploy_on_missing_secrets: true + action: "upload" + ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### + # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig + app_location: "/daprdocs" # App source code path + api_location: "api" # Api source code path - optional + output_location: "public" # Built app content directory - optional + app_build_command: "hugo" + ###### End of Repository/Build Configurations ###### + + close_pull_request_job: + if: github.event_name == 'pull_request' && github.event.action == 'closed' + runs-on: ubuntu-latest + name: Close Pull Request Job + steps: + - name: Close Pull Request + id: closepullrequest + uses: Azure/static-web-apps-deploy@v0.0.1-preview + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_BAY_0E9E0E81E }} + skip_deploy_on_missing_secrets: true + action: "close" diff --git a/README.md b/README.md index c203d9d9c..5b3b6deb2 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ The following branches are currently maintained: | Branch | Website | Description | |--------|---------|-------------| -| [v1.0](https://github.com/dapr/docs) (primary) | https://docs.dapr.io | Latest Dapr release documentation. Typo fixes, clarifications, and most documentation goes here. -| [v1.1](https://github.com/dapr/docs/tree/v1.1) (pre-release) | https://v1-1.docs.dapr.io/ | Pre-release documentation. Doc updates that are only applicable to v1.1+ go here. +| [v1.1](https://github.com/dapr/docs) (primary) | https://docs.dapr.io | Latest Dapr release documentation. Typo fixes, clarifications, and most documentation goes here. +| [v1.2](https://github.com/dapr/docs/tree/v1.2) (pre-release) | https://v1-2.docs.dapr.io/ | Pre-release documentation. Doc updates that are only applicable to v1.2+ go here. For more information visit the [Dapr branch structure](https://docs.dapr.io/contributing/contributing-docs/#branch-guidance) document. diff --git a/daprdocs/.gitignore b/daprdocs/.gitignore new file mode 100644 index 000000000..c2658d7d1 --- /dev/null +++ b/daprdocs/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/daprdocs/assets/icons/logo-black.svg b/daprdocs/assets/icons/logo-black.svg new file mode 100644 index 000000000..6816cf01b --- /dev/null +++ b/daprdocs/assets/icons/logo-black.svg @@ -0,0 +1,15 @@ + + + + dark on white + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/daprdocs/assets/icons/logo-blue.svg b/daprdocs/assets/icons/logo-blue.svg new file mode 100644 index 000000000..f87fe64c3 --- /dev/null +++ b/daprdocs/assets/icons/logo-blue.svg @@ -0,0 +1,15 @@ + + + + logo large + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/daprdocs/config.toml b/daprdocs/config.toml index 9b4b6c6b1..c01bf3e32 100644 --- a/daprdocs/config.toml +++ b/daprdocs/config.toml @@ -1,5 +1,5 @@ # Site Configuration -baseURL = "https://v1-1.docs.dapr.io/" +baseURL = "https://docs.dapr.io/" title = "Dapr Docs" theme = "docsy" disableFastRender = true @@ -136,16 +136,17 @@ github_subdir = "daprdocs" github_branch = "v1.1" # Versioning -version_menu = "v1.1 (edge)" +version_menu = "v1.1 (latest)" version = "v1.1" archived_version = false +url_latest_version = "https://docs.dapr.io" [[params.versions]] - version = "v1.1 (edge)" + version = "v1.1 (latest)" url = "#" [[params.versions]] - version = "v1.0 (latest)" - url = "https://docs.dapr.io" + version = "v1.0" + url = "https://v1-0.docs.dapr.io" [[params.versions]] version = "v0.11" url = "https://v0-11.docs.dapr.io" diff --git a/daprdocs/content/en/concepts/building-blocks-concept.md b/daprdocs/content/en/concepts/building-blocks-concept.md index 111c8fc16..f310910ce 100644 --- a/daprdocs/content/en/concepts/building-blocks-concept.md +++ b/daprdocs/content/en/concepts/building-blocks-concept.md @@ -24,6 +24,6 @@ The following are the building blocks provided by Dapr: | [**State management**]({{}}) | `/v1.0/state` | Application state is anything an application wants to preserve beyond a single session. Dapr provides a key/value-based state API with pluggable state stores for persistence. | [**Publish and subscribe**]({{}}) | `/v1.0/publish` `/v1.0/subscribe`| Pub/Sub is a loosely coupled messaging pattern where senders (or publishers) publishes messages to a topic, to which subscribers subscribe. Dapr supports the pub/sub pattern between applications. | [**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. See [Actor Overview](./actors#understanding-actors) +| [**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. diff --git a/daprdocs/content/en/concepts/faq.md b/daprdocs/content/en/concepts/faq.md index 8106ef646..1c291d447 100644 --- a/daprdocs/content/en/concepts/faq.md +++ b/daprdocs/content/en/concepts/faq.md @@ -6,27 +6,8 @@ weight: 1000 description: "Common questions asked about Dapr" --- -## Networking and service meshes - -### Understanding how Dapr works with service meshes - -Dapr is a distributed application runtime. Unlike a service mesh which is focused on networking concerns, Dapr is focused on providing building blocks that make it easier for developers to build microservices. Dapr is developer-centric versus service meshes being infrastructure-centric. - -Dapr can be used alongside any service mesh such as Istio and Linkerd. A service mesh is a dedicated network infrastructure layer designed to connect services to one another and provide insightful telemetry. A service mesh doesn’t introduce new functionality to an application. - -That is where Dapr comes in. Dapr is a language agnostic programming model built on http and gRPC that provides distributed system building blocks via open APIs for asynchronous pub-sub, stateful services, service discovery and invocation, actors and distributed tracing. Dapr introduces new functionality to an app’s runtime. Both service meshes and Dapr run as side-car services to your application, one giving network features and the other distributed application capabilities. - -Watch this [video](https://www.youtube.com/watch?v=xxU68ewRmz8&feature=youtu.be&t=140) on how Dapr and service meshes work together. - -### Understanding how Dapr interoperates with the service mesh interface (SMI) - -SMI is an abstraction layer that provides a common API surface across different service mesh technology. Dapr can leverage any service mesh technology including SMI. - -### Differences between Dapr, Istio and Linkerd - -Read [How does Dapr work with service meshes?](https://github.com/dapr/dapr/wiki/FAQ#how-does-dapr-work-with-service-meshes) Istio is an open source service mesh implementation that focuses on Layer7 routing, traffic flow management and mTLS authentication between services. Istio uses a sidecar to intercept traffic going into and out of a container and enforces a set of network policies on them. - -Istio is not a programming model and does not focus on application level features such as state management, pub-sub, bindings etc. That is where Dapr comes in. +## How does Dapr compare to service meshes such as Istio, Linkerd or OSM? +Dapr is not a service mesh. While service meshes focus on fine grained network control, Dapr is focused on helping developers build distributed applications. Both Dapr and service meshes use the sidecar pattern and run alongside the application and they do have some overlapping features but also offer unique benefits. For more information please read the [Dapr & service meshes]({{}}) concept page. ## Performance Benchmarks The Dapr project is focused on performance due to the inherent discussion of Dapr being a sidecar to your application. See [here]({{< ref perf-service-invocation.md >}}) for updated performance numbers. diff --git a/daprdocs/content/en/concepts/security-concept.md b/daprdocs/content/en/concepts/security-concept.md index dd097337e..4eef5676b 100644 --- a/daprdocs/content/en/concepts/security-concept.md +++ b/daprdocs/content/en/concepts/security-concept.md @@ -112,7 +112,7 @@ Threat modeling is a process by which potential threats, such as structural vuln ### February 2021 -In February 2021, Dapr has gone a 2nd security audit targetting it's 1.0 release by Cure53. +In February 2021, Dapr has gone through a 2nd security audit targetting it's 1.0 release by Cure53. The test focused on the following: * Dapr runtime code base evaluation since last audit diff --git a/daprdocs/content/en/concepts/service-mesh.md b/daprdocs/content/en/concepts/service-mesh.md new file mode 100644 index 000000000..342aa1049 --- /dev/null +++ b/daprdocs/content/en/concepts/service-mesh.md @@ -0,0 +1,45 @@ +--- +type: docs +title: "Dapr and service meshes" +linkTitle: "Service meshes" +weight: 700 +description: > + How Dapr compares to, and works with service meshes +--- + +Dapr uses a sidecar architecture, running as a separate process alongside the application and includes features such as, service invocation, network security and distributed tracing. This often raises the question - how does Dapr compare to service mesh solutions such as Linkerd, Istio and Open Service Mesh (OSM)? + +## How Dapr and service meshes compare +While Dapr and service meshes do offer some overlapping capabilities, **Dapr is not a service mesh** where a service mesh, is defined as a *networking* service mesh. Unlike a service mesh which is focused on networking concerns, Dapr is focused on providing building blocks that make it easier for developers to build applications as microservices. Dapr is developer-centric versus service meshes being infrastructure-centric. + +In most cases, developers do not need to be aware that the application they are building will be deployed in an environment which includes a service mesh since a service mesh intercepts network traffic. Service meshes are mostly managed and deployed by system operators. However, Dapr building block APIs are intended to be used by developers explicitly in their code. + +Some common capabilities that Dapr shares with service meshes include: +- Secure service-to-service communication with mTLS encryption +- Service-to-service metric collection +- Service-to-service distributed tracing +- Resiliency through retries + + Importantly Dapr provides service discovery and invocation via names which is a developer centric concern. This means that through Dapr's service invocation API, developers call a method on a service name, whereas service meshes deal with network concepts such as IPs and DNS addresses. However, Dapr does not provide capabilities for traffic behavior such as routing or traffic splitting. Traffic routing is often addressed with ingress proxies to an application and does not have to use a service mesh. In addition, Dapr does provides other application level building blocks for state management, pub/sub messaging, actors and more. + +Another difference between Dapr and service meshes is with observability (tracing and metrics). Service meshes operate at the network level and trace the network calls between services. Dapr does this with service invocation, however Dapr also provides observability (tracing and metrics) over pub/sub calls using trace ids written into the Cloud Events envelope. This means that the metrics and tracing with Dapr is more extensive than with a service mesh for applications that use both service-to-service invocation and pub/sub to communicate. + +The illustration below captures the overlapping features and unique capabilities that Dapr and service meshes offer: + + + +## Using Dapr with a service mesh +Dapr does work with service meshes. In the case where both are deployed together, both Dapr and service mesh sidecars are running in the application environment. In this case, it is recommended to configure only Dapr or only the service mesh to perform mTLS encryption and distributed tracing. + +Watch these recordings from the Dapr community calls showing presentations on running Dapr together with different service meshes: +- General overview and a demo of [Dapr and Linkerd](https://youtu.be/xxU68ewRmz8?t=142) +- Demo of running [Dapr and Istio](https://youtu.be/ngIDOQApx8g?t=335) + +## When to choose using Dapr, a service mesh or both +Should you be using Dapr, a service mesh or both? The answer depends on your requirements. If, for example, you are looking to use Dapr for one or more building blocks such as state management or pub/sub and considering using a service mesh just for network security or observability, you may find that Dapr is a good fit and a service mesh is not required. + +Typically you would use a service mesh with Dapr where there is a corporate policy that traffic on the network needs to be encrypted regardless for all applications. For example, you may be using Dapr in only part of your application and other services and processes that are not using Dapr in your application also need encrypted traffic. In this scenario a service mesh is the better option and most likely you should use mTLS and distributed tracing on the service mesh and disable this on Dapr. + +If you need traffic splitting for A/B testing scenarios you would benefit from using a service mesh, since Dapr does not provide these capabilities. + +In some cases, where you require capabilities that are unique to both you will find it useful to leverage both Dapr and a service mesh - as mentioned above, there is no limitation for using them together. diff --git a/daprdocs/content/en/contributing/contributing-docs.md b/daprdocs/content/en/contributing/contributing-docs.md index 3fa66cbe5..c782e6300 100644 --- a/daprdocs/content/en/contributing/contributing-docs.md +++ b/daprdocs/content/en/contributing/contributing-docs.md @@ -127,6 +127,10 @@ As an example, for this specific section the complete reference to the page and {{}} ``` +## Shortcodes + +The following are useful shortcodes for writing Dapr documentation + ### Images The markdown spec used by Docsy and Hugo does not give an option to resize images using markdown notation. Instead, raw HTML is used. @@ -230,6 +234,46 @@ The shortcode would be: {{}} ``` +### Buttons + +To create a button in a webpage, use the `button` shortcode. + +#### Link to an external page + +``` +{{}} +``` + +{{< button text="My Button" link="https://example.com" >}} + +#### Link to another docs page + +You can also reference pages in your button as well: +``` +{{}} +``` + +{{< button text="My Button" page="contributing" >}} + +#### Button colors + +You can customize the colors using the Bootstrap colors: +``` +{{}} +{{}} +{{}} +{{}} +{{}} +{{}} +``` + +{{< button text="My Button" link="https://example.com" color="primary" >}} +{{< button text="My Button" link="https://example.com" color="secondary" >}} +{{< button text="My Button" link="https://example.com" color="success" >}} +{{< button text="My Button" link="https://example.com" color="danger" >}} +{{< button text="My Button" link="https://example.com" color="warning" >}} +{{< button text="My Button" link="https://example.com" color="info" >}} + ### References - [Docsy authoring guide](https://www.docsy.dev/docs/adding-content/) diff --git a/daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-publish-subscribe.md b/daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-publish-subscribe.md index 0e848db1c..654c30d05 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-publish-subscribe.md +++ b/daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-publish-subscribe.md @@ -367,7 +367,7 @@ dapr run --app-id testpubsub --dapr-http-port 3500 Then publish a message to the `deathStarStatus` topic: ```bash -dapr publish --publish-app-id testpubapp --pubsub pubsub --topic deathStarStatus --data '{"status": "completed"}' +dapr publish --publish-app-id testpubsub --pubsub pubsub --topic deathStarStatus --data '{"status": "completed"}' ``` {{% /codetab %}} diff --git a/daprdocs/content/en/developing-applications/building-blocks/secrets/howto-secrets.md b/daprdocs/content/en/developing-applications/building-blocks/secrets/howto-secrets.md index 964cfdb20..b3c08f27c 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/secrets/howto-secrets.md +++ b/daprdocs/content/en/developing-applications/building-blocks/secrets/howto-secrets.md @@ -42,7 +42,7 @@ spec: Make sure to replace `` with the path to the JSON file you just created. -To configure a different kind of secret store see the guidance on [how to configure a secret store]({{}}) and review [supported secret stores]({{}}) to see specific details required for different secret store solutions. +To configure a different kind of secret store see the guidance on [how to configure a secret store]({{}}) and review [supported secret stores]({{}}) to see specific details required for different secret store solutions. ## Get a secret Now run the Dapr sidecar (with no application) @@ -173,7 +173,7 @@ $app->run(function(\Dapr\SecretManager $secretManager, \Psr\Log\LoggerInterface - [Dapr secrets overview]({{}}) - [Secrets API reference]({{}}) -- [Configure a secret store]({{}}) -- [Supported secrets]({{}}) +- [Configure a secret store]({{}}) +- [Supported secrets]({{}}) - [Using secrets in components]({{}}) - [Secret stores quickstart](https://github.com/dapr/quickstarts/tree/master/secretstore) diff --git a/daprdocs/content/en/developing-applications/building-blocks/secrets/secrets-scopes.md b/daprdocs/content/en/developing-applications/building-blocks/secrets/secrets-scopes.md index a2126d710..d9f2598c4 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/secrets/secrets-scopes.md +++ b/daprdocs/content/en/developing-applications/building-blocks/secrets/secrets-scopes.md @@ -11,7 +11,7 @@ You can read [guidance on setting up secret store components]({{< ref setup-secr To limit the secrets to which the Dapr application has access to, you can can define secret scopes by adding a secret scope policy to the application configuration with restrictive permissions. Follow [these instructions]({{< ref configuration-concept.md >}}) to define an application configuration. -The secret scoping policy applies to any [secret store]({{< ref supported-secret-stores.md >}}), whether that is a local secret store, a Kubernetes secret store or a public cloud secret store. For details on how to set up a [secret stores]({{< ref secret-stores-overview.md >}}) read [How To: Retrieve a secret]({{< ref howto-secrets.md >}}) +The secret scoping policy applies to any [secret store]({{< ref supported-secret-stores.md >}}), whether that is a local secret store, a Kubernetes secret store or a public cloud secret store. For details on how to set up a [secret stores]({{< ref setup-secret-store.md >}}) read [How To: Retrieve a secret]({{< ref howto-secrets.md >}}) Watch this [video](https://youtu.be/j99RN_nxExA?start=2272) for a demo on how to use secret scoping with your application. @@ -95,6 +95,6 @@ Scenarios | defaultAccess | allowedSecrets | deniedSecrets | permission ## Related links * List of [secret stores]({{< ref supported-secret-stores.md >}}) -* Overview of [secret stores]({{< ref secret-stores-overview.md >}}) +* Overview of [secret stores]({{< ref setup-secret-store.md >}}) howto-secrets/ \ No newline at end of file diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-stateful-service.md b/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-stateful-service.md index d25b7fbe6..e53a50108 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-stateful-service.md +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-stateful-service.md @@ -24,7 +24,7 @@ To change the state store being used, replace the YAML under `/components` with ### Kubernetes -See the instructions [here]({{}}) on how to setup different state stores on Kubernetes. +See the instructions [here]({{}}) on how to setup different state stores on Kubernetes. ## Strong and Eventual consistency diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/query-state-store/_index.md b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-state-store/_index.md index 489c77675..665334824 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/state-management/query-state-store/_index.md +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-state-store/_index.md @@ -6,4 +6,4 @@ weight: 500 description: "Guides for working with specific backend states stores" --- -Explore the **Operations** section to see a list of [supported state stores]({{}}) and how to setup [state store components]({{}}). \ No newline at end of file +Explore the **Operations** section to see a list of [supported state stores]({{}}) and how to setup [state store components]({{}}). \ No newline at end of file diff --git a/daprdocs/content/en/getting-started/_index.md b/daprdocs/content/en/getting-started/_index.md index bfcf1a98f..f82e9faca 100644 --- a/daprdocs/content/en/getting-started/_index.md +++ b/daprdocs/content/en/getting-started/_index.md @@ -22,5 +22,4 @@ The following steps in this guide are: 1. Configure a component 1. Explore Dapr quickstarts -First step: Install the Dapr CLI >> - +{{< button text="First step: Install the Dapr CLI >>" page="install-dapr-cli" >}} diff --git a/daprdocs/content/en/getting-started/get-started-api.md b/daprdocs/content/en/getting-started/get-started-api.md index b795de4f0..1e684538d 100644 --- a/daprdocs/content/en/getting-started/get-started-api.md +++ b/daprdocs/content/en/getting-started/get-started-api.md @@ -101,4 +101,4 @@ Exit the redis-cli with: exit ``` -Next step: Define a component >> +{{< button text="Next step: Define a component >>" page="get-started-component" >}} diff --git a/daprdocs/content/en/getting-started/get-started-component.md b/daprdocs/content/en/getting-started/get-started-component.md index 73c13bdfd..4c026f242 100644 --- a/daprdocs/content/en/getting-started/get-started-component.md +++ b/daprdocs/content/en/getting-started/get-started-component.md @@ -90,4 +90,4 @@ You should see output with the secret you stored in the JSON file. {"my-secret":"I'm Batman"} ``` -Next step: Explore Dapr quickstarts >> +{{< button text="Next step: Explore Dapr quickstarts >>" page="quickstarts" >}} diff --git a/daprdocs/content/en/getting-started/install-dapr-cli.md b/daprdocs/content/en/getting-started/install-dapr-cli.md index f6ea8a6be..30a7cc743 100644 --- a/daprdocs/content/en/getting-started/install-dapr-cli.md +++ b/daprdocs/content/en/getting-started/install-dapr-cli.md @@ -110,5 +110,4 @@ Flags: Use "dapr [command] --help" for more information about a command. ``` -Next step: Initialize Dapr >> - +{{< button text="Next step: Initialize Dapr >>" page="install-dapr-selfhost" >}} diff --git a/daprdocs/content/en/getting-started/install-dapr-selfhost.md b/daprdocs/content/en/getting-started/install-dapr-selfhost.md index 476b81c71..deafe843c 100644 --- a/daprdocs/content/en/getting-started/install-dapr-selfhost.md +++ b/daprdocs/content/en/getting-started/install-dapr-selfhost.md @@ -52,8 +52,8 @@ dapr --version Output should look like this: ``` -CLI version: 1.0.0 -Runtime version: 1.0.1 +CLI version: 1.1.0 +Runtime version: 1.1.1 ``` ### Step 4: Verify containers are running @@ -109,5 +109,4 @@ You will see the Dapr config, Dapr binaries directory, and the default component {{< /tabs >}} -Next step: Use the Dapr API >> - +{{< button text="Next step: Use the Dapr API >>" page="get-started-api" >}} diff --git a/daprdocs/content/en/operations/components/component-scopes.md b/daprdocs/content/en/operations/components/component-scopes.md index 0e82cba04..4dc36243d 100644 --- a/daprdocs/content/en/operations/components/component-scopes.md +++ b/daprdocs/content/en/operations/components/component-scopes.md @@ -1,7 +1,7 @@ --- type: docs title: "How-To: Scope components to one or more applications" -linkTitle: "How-To: Set component scopes" +linkTitle: "Scope access to components" weight: 300 description: "Limit component access to particular Dapr instances" --- diff --git a/daprdocs/content/en/operations/components/component-secrets.md b/daprdocs/content/en/operations/components/component-secrets.md index f494b89bd..00e3c763d 100644 --- a/daprdocs/content/en/operations/components/component-secrets.md +++ b/daprdocs/content/en/operations/components/component-secrets.md @@ -1,7 +1,7 @@ --- type: docs title: "How-To: Reference secrets in components" -linkTitle: "How-To: Reference secrets" +linkTitle: "Reference secrets in components" weight: 400 description: "How to securly reference secrets from a component definition" --- diff --git a/daprdocs/content/en/operations/components/setup-bindings.md b/daprdocs/content/en/operations/components/setup-bindings.md new file mode 100644 index 000000000..0e6c88a51 --- /dev/null +++ b/daprdocs/content/en/operations/components/setup-bindings.md @@ -0,0 +1,85 @@ +--- +type: docs +title: "Bindings components" +linkTitle: "Bindings" +description: "Guidance on setting up Dapr bindings components" +weight: 4000 +--- + +Dapr integrates with external resources to allow apps to both be triggered by external events and interact with the resources. Each binding component has a name and this name is used when interacting with the resource. + +As with other building block components, binding components are extensible and can be found in the [components-contrib repo](https://github.com/dapr/components-contrib). + +A binding in Dapr is described using a `Component` file with the following fields: + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: + namespace: +spec: + type: bindings. + version: v1 + metadata: + - name: + value: + - name: + value: +... +``` + +The type of binding is determined by the `type` field, and things like connection strings and other metadata are put in the `.metadata` section. + +Different [supported bindings]({{< ref supported-bindings >}}) will have different specific fields that would need to be configured. For example, when configuring a binding for [Azure Blob Storage]({{< ref blobstorage>}}), the file would look like this: + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: + namespace: +spec: + type: bindings.azure.blobstorage + version: v1 + metadata: + - name: storageAccount + value: myStorageAccountName + - name: storageAccessKey + value: *********** + - name: container + value: container1 + - name: decodeBase64 + value: + - name: getBlobRetryCount + value: +``` + +## Apply the configuration + +Once you have created the component's YAML file, follow these instructions to apply it based on your hosting environment: + + +{{< tabs "Self-Hosted" "Kubernetes" >}} + +{{% codetab %}} +To run locally, create a `components` dir containing the YAML file and provide the path to the `dapr run` command with the flag `--components-path`. +{{% /codetab %}} + +{{% codetab %}} +To deploy in Kubernetes, assuming your component file is named `mybinding.yaml`, run: + +```bash +kubectl apply -f mybinding.yaml +``` +{{% /codetab %}} + +{{< /tabs >}} + +## Supported bindings + +Visit the [bindings reference]({{< ref supported-bindings >}}) for a full list of supported resources. + +## Related links +- [Bindings building block]({{< ref bindings >}}) +- [Supported bindings]({{}}) \ No newline at end of file diff --git a/daprdocs/content/en/operations/components/setup-bindings/_index.md b/daprdocs/content/en/operations/components/setup-bindings/_index.md deleted file mode 100644 index ad369a646..000000000 --- a/daprdocs/content/en/operations/components/setup-bindings/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -type: docs -title: "Bindings components" -linkTitle: "Bindings" -description: "Guidance on setting up Dapr bindings components" -weight: 4000 ---- \ No newline at end of file diff --git a/daprdocs/content/en/operations/components/setup-pubsub/_index.md b/daprdocs/content/en/operations/components/setup-pubsub/_index.md index 502d39d8c..c7fbe3188 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/_index.md +++ b/daprdocs/content/en/operations/components/setup-pubsub/_index.md @@ -4,4 +4,53 @@ title: "Pub/Sub brokers" linkTitle: "Pub/sub brokers" description: "Guidance on setting up different message brokers for Dapr Pub/Sub" weight: 2000 +aliases: + - "/operations/components/setup-pubsub/setup-pubsub-overview/" --- + +Dapr integrates with pub/sub message buses to provide applications with the ability to create event-driven, loosely coupled architectures where producers send events to consumers via topics. + +Dapr supports the configuration of multiple, named, pub/sub components *per application*. Each pub/sub component has a name and this name is used when publishing a message topic. Read the [API reference]({{< ref pubsub_api.md >}}) for details on how to publish and subscribe to topics. + +Pub/sub components are extensible. A list of support pub/sub components is [here]({{< ref supported-pubsub >}}) and the implementations can be found in the [components-contrib repo](https://github.com/dapr/components-contrib). + +## Component files + +A pub/sub is described using a `Component` file: + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: pubsub + namespace: default +spec: + type: pubsub. + version: v1 + metadata: + - name: + value: + - name: + value: +... +``` + +The type of pub/sub is determined by the `type` field, and properties such as connection strings and other metadata are put in the `.metadata` section. +Even though metadata values can contain secrets in plain text, it is recommended you use a [secret store]({{< ref component-secrets.md >}}) using a `secretKeyRef`. + +{{% alert title="Topic creation" color="primary" %}} +Depending on the pub/sub message bus you are using and how it is configured, topics may be created automatically. Even if the message bus supports automatic topic creation, it is a common governance practice to disable it in production environments. You may still need to use a CLI, admin console, or request form to manually create the topics required by your application. +{{% /alert %}} + +Visit [this guide]({{< ref "howto-publish-subscribe.md#step-3-publish-a-topic" >}}) for instructions on configuring and using pub/sub components. + +## Related links + +- Overview of the Dapr [Pub/Sub building block]({{< ref pubsub-overview.md >}}) +- Try the [Pub/Sub quickstart sample](https://github.com/dapr/quickstarts/tree/master/pub-sub) +- Read the [guide on publishing and subscribing]({{< ref howto-publish-subscribe.md >}}) +- Learn about [topic scoping]({{< ref pubsub-scopes.md >}}) +- Learn about [message time-to-live]({{< ref pubsub-message-ttl.md >}}) +- Learn [how to configure Pub/Sub components with multiple namespaces]({{< ref pubsub-namespaces.md >}}) +- List of [pub/sub components]({{< ref supported-pubsub >}}) +- Read the [API reference]({{< ref pubsub_api.md >}}) diff --git a/daprdocs/content/en/operations/components/setup-pubsub/setup-pubsub-overview.md b/daprdocs/content/en/operations/components/setup-pubsub/setup-pubsub-overview.md deleted file mode 100644 index 6447140e5..000000000 --- a/daprdocs/content/en/operations/components/setup-pubsub/setup-pubsub-overview.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -type: docs -title: "Overview" -linkTitle: "Overview" -description: "Overview on setting up of pub/sub components for Dapr" -weight: 10000 -type: docs ---- - -Dapr integrates with pub/sub message buses to provide applications with the ability to create event-driven, loosely coupled architectures where producers send events to consumers via topics. - -Dapr supports the configuration of multiple, named, pub/sub components *per application*. Each pub/sub component has a name and this name is used when publishing a message topic. Read the [API reference]({{< ref pubsub_api.md >}}) for details on how to publish and subscribe to topics. - -Pub/sub components are extensible. A list of support pub/sub components is [here]({{< ref supported-pubsub >}}) and the implementations can be found in the [components-contrib repo](https://github.com/dapr/components-contrib). - -## Component files - -A pub/sub is described using a `Component` file: - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: pubsub - namespace: default -spec: - type: pubsub. - version: v1 - metadata: - - name: - value: - - name: - value: -... -``` - -The type of pub/sub is determined by the `type` field, and properties such as connection strings and other metadata are put in the `.metadata` section. -Even though metadata values can contain secrets in plain text, it is recommended you use a [secret store]({{< ref component-secrets.md >}}) using a `secretKeyRef`. - -{{% alert title="Topic creation" color="primary" %}} -Depending on the pub/sub message bus you are using and how it is configured, topics may be created automatically. Even if the message bus supports automatic topic creation, it is a common governance practice to disable it in production environments. You may still need to use a CLI, admin console, or request form to manually create the topics required by your application. -{{% /alert %}} - -Visit [this guide]({{< ref "howto-publish-subscribe.md#step-3-publish-a-topic" >}}) for instructions on configuring and using pub/sub components. - -## Related links - -- Overview of the Dapr [Pub/Sub building block]({{< ref pubsub-overview.md >}}) -- Try the [Pub/Sub quickstart sample](https://github.com/dapr/quickstarts/tree/master/pub-sub) -- Read the [guide on publishing and subscribing]({{< ref howto-publish-subscribe.md >}}) -- Learn about [topic scoping]({{< ref pubsub-scopes.md >}}) -- Learn about [message time-to-live]({{< ref pubsub-message-ttl.md >}}) -- Learn [how to configure Pub/Sub components with multiple namespaces]({{< ref pubsub-namespaces.md >}}) -- List of [pub/sub components]({{< ref supported-pubsub >}}) -- Read the [API reference]({{< ref pubsub_api.md >}}) diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-gcp-pubsub.md b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-gcp-pubsub.md deleted file mode 100644 index 07767d8da..000000000 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-gcp-pubsub.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -type: docs -title: "GCP Pub/Sub" -linkTitle: "GCP Pub/Sub" -description: "Detailed documentation on the GCP Pub/Sub component" -aliases: - - "/operations/components/setup-pubsub/supported-pubsub/setup-gcp/" ---- - -## Create a Dapr component - -To setup GCP pubsub create a component of type `pubsub.gcp.pubsub`. See [this guide]({{< ref "howto-publish-subscribe.md#step-1-setup-the-pubsub-component" >}}) on how to create and apply a pubsub configuration - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: gcp-pubsub - namespace: default -spec: - type: pubsub.gcp.pubsub - version: v1 - metadata: - - name: type - value: service_account - - name: project_id - value: # replace - - name: private_key_id - value: #replace - - name: client_email - value: #replace - - name: client_id - value: # replace - - name: auth_uri - value: https://accounts.google.com/o/oauth2/auth - - name: token_uri - value: https://oauth2.googleapis.com/token - - name: auth_provider_x509_cert_url - value: https://www.googleapis.com/oauth2/v1/certs - - name: client_x509_cert_url - value: https://www.googleapis.com/robot/v1/metadata/x509/.iam.gserviceaccount.com #replace PROJECT_NAME - - name: private_key - value: # replace x509 cert - - name: disableEntityManagement - value: "false" -``` -{{% alert title="Warning" color="warning" %}} -The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here]({{< ref component-secrets.md >}}). -{{% /alert %}} - -## Spec metadata fields - -| Field | Required | Details | Example | -|--------------------|:--------:|---------|---------| -| type | Y | GCP credentials type | `service_account` -| project_id | Y | GCP project id| `projectId` -| private_key_id | Y | GCP private key id | `"privateKeyId"` -| private_key | Y | GCP credentials private key. Replace with x509 cert | `12345-12345` -| client_email | Y | GCP client email | `"client@email.com"` -| client_id | Y | GCP client id | `0123456789-0123456789` -| auth_uri | Y | Google account OAuth endpoint | `https://accounts.google.com/o/oauth2/auth` -| token_uri | Y | Google account token uri | `https://oauth2.googleapis.com/token` -| auth_provider_x509_cert_url | Y | GCP credentials cert url | `https://www.googleapis.com/oauth2/v1/certs` -| client_x509_cert_url | Y | GCP credentials project x509 cert url | `https://www.googleapis.com/robot/v1/metadata/x509/.iam.gserviceaccount.com` -| disableEntityManagement | N | When set to `"true"`, topics and subscriptions do not get created automatically. Default: `"false"` | `"true"`, `"false"` - -## Create a GCP Pub/Sub - -Follow the instructions [here](https://cloud.google.com/pubsub/docs/quickstart-console) on setting up Google Cloud Pub/Sub system. - -## 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 diff --git a/daprdocs/content/en/operations/components/setup-secret-store/secret-stores-overview.md b/daprdocs/content/en/operations/components/setup-secret-store.md similarity index 77% rename from daprdocs/content/en/operations/components/setup-secret-store/secret-stores-overview.md rename to daprdocs/content/en/operations/components/setup-secret-store.md index 43405461e..5c22efe73 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/secret-stores-overview.md +++ b/daprdocs/content/en/operations/components/setup-secret-store.md @@ -1,13 +1,14 @@ --- type: docs -title: "Overview" -linkTitle: "Overview" -description: "General overview on set up of secret stores for Dapr" -weight: 10000 -type: docs +title: "Secret store components" +linkTitle: "Secret stores" +description: "Guidance on setting up different secret store components" +weight: 3000 +aliases: + - "/operations/components/setup-state-store/secret-stores-overview/" --- -Dapr integrates with secret stores to provide apps and other components with secure store and access to secrets such as access keys and passwords. Each secret store component has a name and this name is used when accessing a secret. +Dapr integrates with secret stores to provide apps and other components with secure storage and access to secrets such as access keys and passwords. Each secret store component has a name and this name is used when accessing a secret. As with other building block components, secret store components are extensible and can be found in the [components-contrib repo](https://github.com/dapr/components-contrib). @@ -75,8 +76,12 @@ kubectl apply -f secret-store.yaml {{< /tabs >}} +## Supported secret stores + +Visit the [secret stores reference]({{< ref supported-secret-stores >}}) for a full list of supported secret stores. + ## Related links - [Supported secret store components]({{< ref supported-secret-stores >}}) -- [Secrets building block]({{< ref secrets >}}) \ No newline at end of file +- [Secrets building block]({{< ref secrets >}}) diff --git a/daprdocs/content/en/operations/components/setup-secret-store/_index.md b/daprdocs/content/en/operations/components/setup-secret-store/_index.md deleted file mode 100644 index e603b0126..000000000 --- a/daprdocs/content/en/operations/components/setup-secret-store/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -type: docs -title: "Secret store components" -linkTitle: "Secret stores" -description: "Guidance on setting up different secret store components" -weight: 3000 -type: docs ---- diff --git a/daprdocs/content/en/operations/components/setup-state-store/setup-state-store-overview.md b/daprdocs/content/en/operations/components/setup-state-store.md similarity index 74% rename from daprdocs/content/en/operations/components/setup-state-store/setup-state-store-overview.md rename to daprdocs/content/en/operations/components/setup-state-store.md index 35d8fc1c6..5f3f2308c 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/setup-state-store-overview.md +++ b/daprdocs/content/en/operations/components/setup-state-store.md @@ -1,9 +1,11 @@ --- type: docs -title: "Overview" -linkTitle: "Overview" -description: "Guidance on set up for state management components" -weight: 10000 +title: "State stores components" +linkTitle: "State stores" +description: "Guidance on setting up different state stores for Dapr state management" +weight: 1000 +aliases: + - "/operations/components/setup-state-store/setup-state-store-overview/" --- Dapr integrates with existing databases to provide apps with state management capabilities for CRUD operations, transactions and more. It also supports the configuration of multiple, named, state store components *per application*. @@ -34,7 +36,12 @@ Even though metadata values can contain secrets in plain text, it is recommended Visit [this guide]({{< ref "howto-get-save-state.md#step-1-setup-a-state-store" >}}) on how to configure a state store component. +## Supported state stores + +Visit [this reference]({{< ref supported-state-stores >}}) to see all of the supported state stores in Dapr. + ## Related topics - [Component concept]({{< ref components-concept.md >}}) - [State management overview]({{< ref state-management >}}) - [State management API specification]({{< ref state_api.md >}}) +- [Supported state stores]({{< ref supported-state-stores >}}) diff --git a/daprdocs/content/en/operations/components/setup-state-store/_index.md b/daprdocs/content/en/operations/components/setup-state-store/_index.md deleted file mode 100644 index d86cfa777..000000000 --- a/daprdocs/content/en/operations/components/setup-state-store/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -type: docs -title: "State stores components" -linkTitle: "State stores" -description: "Guidance on setting up different state stores for Dapr state management" -weight: 1000 ---- \ No newline at end of file diff --git a/daprdocs/content/en/operations/hosting/kubernetes/cluster/_index.md b/daprdocs/content/en/operations/hosting/kubernetes/cluster/_index.md index 6a67e6a10..ce3cad39c 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/cluster/_index.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/cluster/_index.md @@ -2,7 +2,7 @@ type: docs title: "Kubernetes cluster setup" linkTitle: "How-to: Setup clusters" -weight: 70000 +weight: 80000 description: > How to create a Kubernetes cluster --- \ No newline at end of file diff --git a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md new file mode 100644 index 000000000..5a7b7607c --- /dev/null +++ b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md @@ -0,0 +1,55 @@ +--- +type: docs +title: "Setup a Google Kubernetes Engine cluster" +linkTitle: "Google Kubernetes Engine" +weight: 3000 +description: "Setup a Google Kubernetes Engine cluster" +--- + +### Prerequisites + +- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [Google Cloud SDK](https://cloud.google.com/sdk) + +## Create a new cluster +```bash +$ gcloud services enable container.googleapis.com && \ + gcloud container clusters create $CLUSTER_NAME \ + --zone $ZONE \ + --project $PROJECT_ID +``` +For more options refer to the [Google Cloud SDK docs](https://cloud.google.com/sdk/gcloud/reference/container/clusters/create), or instead create a cluster through the [Cloud Console](https://console.cloud.google.com/kubernetes) for a more interactive experience. + +{{% alert title="For private GKE clusters" color="warning" %}} +Sidecar injection will not work for private clusters without extra steps. An automatically created firewall rule for master access does not open port 4000. This is needed for Dapr sidecar injection. + +To review the relevant firewall rule: +```bash +$ gcloud compute firewall-rules list --filter="name~gke-${CLUSTER_NAME}-[0-9a-z]*-master" +``` + +To replace the existing rule and allow kubernetes master access to port 4000: +```bash +$ gcloud compute firewall-rules update --allow tcp:10250,tcp:443,tcp:4000 +``` +{{% /alert %}} + +## Retrieve your credentials for `kubectl` + +```bash +$ gcloud container clusters get-credentials $CLUSTER_NAME \ + --zone $ZONE \ + --project $PROJECT_ID +``` + +## (optional) Install Helm v3 + +1. [Install Helm v3 client](https://helm.sh/docs/intro/install/) + +> **Note:** The latest Dapr helm chart no longer supports Helm v2. Please migrate from helm v2 to helm v3 by following [this guide](https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/). + +2. In case you need permissions the kubernetes dashboard (i.e. configmaps is forbidden: User "system:serviceaccount:kube-system:kubernetes-dashboard" cannot list configmaps in the namespace "default", etc.) execute this command + +```bash +kubectl create clusterrolebinding kubernetes-dashboard -n kube-system --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard +``` 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 4c9f5deff..8222d7f0b 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md @@ -2,7 +2,7 @@ type: docs title: "Setup an Minikube cluster" linkTitle: "Minikube" -weight: 2000 +weight: 1000 description: > How to setup Dapr on a Minikube cluster. --- diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-annotations.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-annotations.md index 12d501411..47e0c3a88 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-annotations.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-annotations.md @@ -20,7 +20,7 @@ The following table shows all the supported pod Spec annotations supported by Da | `dapr.io/api-token-secret` | Tells Dapr which Kubernetes secret to use for token based API authentication. By default this is not set. | `dapr.io/app-protocol` | Tells Dapr which protocol your application is using. Valid options are `http` and `grpc`. Default is `http` | `dapr.io/app-max-concurrency` | Limit the concurrency of your application. A valid value is any number larger than `0` -| `dapr.io/app-ssl` | Tells Dapr to invoke the app over an insecure SSL connection. Applies to both HTTP and gRPC. Default is `false`. +| `dapr.io/app-ssl` | Tells Dapr to invoke the app over an insecure SSL connection. Applies to both HTTP and gRPC. Traffic between your app and the Dapr sidecar is encrypted with a certificate issued by a non-trusted certificate authority, which is considered insecure. Default is `false`. | `dapr.io/metrics-port` | Sets the port for the sidecar metrics server. Default is `9090` | `dapr.io/sidecar-cpu-limit` | Maximum amount of CPU that the Dapr sidecar can use. See valid values [here](https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/). By default this is not set | `dapr.io/sidecar-memory-limit` | Maximum amount of Memory that the Dapr sidecar can use. See valid values [here](https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/). By default this is not set diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md index fd7d385a9..c9ab45a4d 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md @@ -122,7 +122,7 @@ The latest Dapr helm chart no longer supports Helm v2. Please migrate from Helm ```bash helm upgrade --install dapr dapr/dapr \ - --version=1.0.1 \ + --version=1.1.1 \ --namespace dapr-system \ --create-namespace \ --wait @@ -132,7 +132,7 @@ The latest Dapr helm chart no longer supports Helm v2. Please migrate from Helm ```bash helm upgrade --install dapr dapr/dapr \ - --version=1.0.1 \ + --version=1.1.1 \ --namespace dapr-system \ --create-namespace \ --set global.ha.enabled=true \ diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md new file mode 100644 index 000000000..6691c742c --- /dev/null +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md @@ -0,0 +1,62 @@ +--- +type: docs +title: "Running Dapr with a Kubernetes Job" +linkTitle: "Kubernetes Jobs" +weight: 70000 +description: "Use Dapr API in a Kubernetes Job context" +type: docs +--- + +# Kubernetes Job + +The Dapr sidecar is designed to be a long running process, in the context of a [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) this behaviour can block your job completion. +To address this issue the Dapr sidecar has an endpoint to `Shutdown` the sidecar. + +When running a basic [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) you will need to call the `/shutdown` endpoint for the sidecar to gracefully stop and the job will be considered `Completed`. + +When a job is finish without calling `Shutdown` your job will be in a `NotReady` state with only the `daprd` container running endlessly. + +Be sure and use the *POST* HTTP verb when calling the shutdown API. + +```yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: job-with-shutdown +spec: + template: + metadata: + annotations: + dapr.io/enabled: "true" + dapr.io/app-id: "with-shutdown" + spec: + containers: + - name: job + image: alpine + command: ["/bin/sh", "-c", "apk --no-cache add curl && sleep 20 && curl -X POST localhost:3500/v1.0/shutdown"] + restartPolicy: Never +``` + +You can also call the `Shutdown` from any of the Dapr SDK + +```go +package main + +import ( + "context" + "log" + "os" + + dapr "github.com/dapr/go-sdk/client" +) + +func main() { + client, err := dapr.NewClient() + if err != nil { + log.Panic(err) + } + defer client.Close() + defer client.Shutdown() + // Job +} +``` diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md index 87febadc4..781050e26 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md @@ -10,7 +10,7 @@ description: "Overview of how to get Dapr running on your Kubernetes cluster" Dapr can be configured to run on any Kubernetes cluster. To achieve this, Dapr begins by deploying the `dapr-sidecar-injector`, `dapr-operator`, `dapr-placement`, and `dapr-sentry` Kubernetes services. These provide first-class integration to make running applications with Dapr easy. - **dapr-operator:** Manages [component]({{< ref components >}}) updates and Kubernetes services endpoints for Dapr (state stores, pub/subs, etc.) -- **dapr-sidecar-injector:** Injects Dapr into [annotated](#adding-dapr-to-a-kubernetes-cluster) deployment pods and adds the environment variables `DAPR_HTTP_PORT` and `DAPR_GRPC_PORT` to enable user-defined applications to easily communicate with Dapr without hard-coding Dapr port values. +- **dapr-sidecar-injector:** Injects Dapr into [annotated](#adding-dapr-to-a-kubernetes-deployment) deployment pods and adds the environment variables `DAPR_HTTP_PORT` and `DAPR_GRPC_PORT` to enable user-defined applications to easily communicate with Dapr without hard-coding Dapr port values. - **dapr-placement:** Used for [actors]({{< ref actors >}}) only. Creates mapping tables that map actor instances to pods - **dapr-sentry:** Manages mTLS between services and acts as a certificate authority. For more information read the [security overview]({{< ref "security-concept.md" >}}). @@ -22,7 +22,7 @@ Read [this guide]({{< ref kubernetes-deploy.md >}}) to learn how to deploy Dapr ## Adding Dapr to a Kubernetes deployment -Deploying and running a Dapr enabled application into your Kubernetes cluster is a simple as adding a few annotations to the deployment schemes. To give your service an `id` and `port` known to Dapr, turn on tracing through configuration and launch the Dapr sidecar container, you annotate your Kubernetes deployment like this. +Deploying and running a Dapr enabled application into your Kubernetes cluster is as simple as adding a few annotations to the deployment schemes. To give your service an `id` and `port` known to Dapr, turn on tracing through configuration and launch the Dapr sidecar container, you annotate your Kubernetes deployment like this. For more information check [dapr annotations]({{< ref kubernetes-annotations.md >}}) ```yml annotations: diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md index bea7913b2..4d3f1643f 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md @@ -55,7 +55,7 @@ Example settings for the dapr sidecar in a production-ready setup: *Note: Since Dapr is intended to do much of the I/O heavy lifting for your app, it's expected that the resources given to Dapr enable you to drastically reduce the resource allocations for the application* -The CPU and memory limits above account for the fact that Dapr is intended to a high number of I/O bound operations. It is strongly recommended that you use a tool monitoring tool to baseline the sidecar (and app) containers and tune these settings based on those baselines. +The CPU and memory limits above account for the fact that Dapr is intended to a high number of I/O bound operations. It is strongly recommended that you use a monitoring tool to baseline the sidecar (and app) containers and tune these settings based on those baselines. ## Highly-available mode diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md index 9077c673a..af60f9bdc 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md @@ -11,20 +11,40 @@ description: "Follow these steps to upgrade Dapr on Kubernetes and ensure a smoo - [Dapr CLI]({{< ref install-dapr-cli.md >}}) - [Helm 3](https://github.com/helm/helm/releases) (if using Helm) -## Upgrade existing cluster to 1.0.1 +## Upgrade existing cluster to 1.1.1 There are two ways to upgrade the Dapr control plane on a Kubernetes cluster using either the Dapr CLI or Helm. ### Dapr CLI -The example below shows how to upgrade to version 1.0.1: +The example below shows how to upgrade to version 1.1.1: ```bash - dapr upgrade -k --runtime-version=1.0.1 + dapr upgrade -k --runtime-version=1.1.1 ``` You can provide all the available Helm chart configurations using the Dapr CLI. See [here](https://github.com/dapr/cli#supplying-helm-values) for more info. +#### Troubleshooting upgrade using the CLI + +There is a known issue running upgrades on clusters that may have previously had a version prior to 1.0.0-rc.2 installed on a cluster. + +Most users should not encounter this issue, but there are a few upgrade path edge cases that may leave an incompatible CustomResourceDefinition installed on your cluster. The error message for this case looks like this: + +``` +❌ Failed to upgrade Dapr: Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply +The CustomResourceDefinition "configurations.dapr.io" is invalid: spec.preserveUnknownFields: Invalid value: true: must be false in order to use defaults in the schema + +``` + +To resolve this issue please run the follow command to upgrade the CustomResourceDefinition to a compatible version: + +``` +kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/5a15b3e0f093d2d0938b12f144c7047474a290fe/charts/dapr/crds/configuration.yaml +``` + +Then proceed with the `dapr upgrade --runtime-version 1.1.1 -k` command as above. + ### Helm From version 1.0.0 onwards, upgrading Dapr using Helm is no longer a disruptive action since existing certificate values will automatically be re-used. @@ -64,4 +84,4 @@ From version 1.0.0 onwards, upgrading Dapr using Helm is no longer a disruptive ## Next steps - [Dapr on Kubernetes]({{< ref kubernetes-overview.md >}}) -- [Dapr production guidelines]({{< ref kubernetes-production.md >}}) \ No newline at end of file +- [Dapr production guidelines]({{< ref kubernetes-production.md >}}) diff --git a/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-no-docker.md b/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-no-docker.md index 355452b3a..cfc816865 100644 --- a/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-no-docker.md +++ b/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-no-docker.md @@ -51,7 +51,7 @@ INFO[0001] leader is established. instance=Nicoletaz-L10. ``` -From here on you can follow the sample example created for the [java-sdk](https://github.com/dapr/java-sdk/tree/master/examples/src/main/java/io/dapr/examples/actors), [python-sdk](https://github.com/dapr/python-sdk/tree/master/examples/demo_actor) or [dotnet-sdk]({{< ref "dotnet-actor-howto.md" >}}) for running an application with Actors enabled. +From here on you can follow the sample example created for the [java-sdk](https://github.com/dapr/java-sdk/tree/master/examples/src/main/java/io/dapr/examples/actors), [python-sdk](https://github.com/dapr/python-sdk/tree/master/examples/demo_actor) or [dotnet-sdk]({{< ref "dotnet-actors-howto.md" >}}) for running an application with Actors enabled. Update the state store configuration files to have the Redis host and password match the setup that you have. Additionally to enable it as a actor state store have the metadata piece added similar to the [sample Java Redis component](https://github.com/dapr/java-sdk/blob/master/examples/components/state/redis.yaml) definition. diff --git a/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-upgrade.md b/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-upgrade.md index 0befb2e4a..f7fd22ffc 100644 --- a/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-upgrade.md +++ b/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-upgrade.md @@ -25,11 +25,11 @@ description: "Follow these steps to upgrade Dapr in self-hosted mode and ensure dapr init ``` -1. Ensure you are using the latest version of Dapr (1.0.1) with: +1. Ensure you are using the latest version of Dapr (v1.1.1) with: ```bash $ dapr --version - CLI version: 1.0.0 - Runtime version: 1.0.1 + CLI version: 1.1.0 + Runtime version: 1.1.1 ``` diff --git a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md index 7e1d3a045..e9d0b51bc 100644 --- a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md +++ b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md @@ -3,7 +3,7 @@ type: docs title: "Metrics" linkTitle: "Metrics" weight: 4000 -description: "Observing Dapr metrics" +description: "Observing Dapr metrics in Kubernetes" --- Dapr exposes a [Prometheus](https://prometheus.io/) metrics endpoint that you can scrape to gain a greater understanding of how Dapr is behaving and to setup alerts for specific conditions. @@ -12,9 +12,40 @@ Dapr exposes a [Prometheus](https://prometheus.io/) metrics endpoint that you ca The metrics endpoint is enabled by default, you can disable it by passing the command line argument `--enable-metrics=false` to Dapr system processes. -The default metrics port is `9090`. This can be overridden by passing the command line argument `--metrics-port` to Daprd. +The default metrics port is `9090`. This can be overridden by passing the command line argument `--metrics-port` to Daprd. Additionally, the metrics exporter can be disabled for a specific application by setting the `dapr.io/enable-metrics: "false"` annotation to your application deployment. With the metrics exporter disabled, `daprd` will not open the metrics listening port. -To disable the metrics in the Dapr side car, you can use the `metric` spec configuration and set `enabled: false` to disable the metrics in the Dapr runtime. +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nodeapp + labels: + app: node +spec: + replicas: 1 + selector: + matchLabels: + app: node + template: + metadata: + labels: + app: node + annotations: + dapr.io/enabled: "true" + dapr.io/app-id: "nodeapp" + dapr.io/app-port: "3000" + dapr.io/enable-metrics: "true" + dapr.io/metrics-port: "9090" + spec: + containers: + - name: node + image: dapriosamples/hello-k8s-node:latest + ports: + - containerPort: 3000 + imagePullPolicy: Always +``` + +To disable the metrics collection in the Dapr side cars running in a specific namespace, you can use the `metric` spec configuration and set `enabled: false` to disable the metrics in the Dapr runtime. ```yaml apiVersion: dapr.io/v1alpha1 @@ -26,7 +57,7 @@ spec: tracing: samplingRate: "1" metric: - enabled: false + enabled: true ``` ## Metrics diff --git a/daprdocs/content/en/operations/monitoring/tracing/setup-tracing.md b/daprdocs/content/en/operations/monitoring/tracing/setup-tracing.md index 6d481dc19..85db1cd4a 100644 --- a/daprdocs/content/en/operations/monitoring/tracing/setup-tracing.md +++ b/daprdocs/content/en/operations/monitoring/tracing/setup-tracing.md @@ -16,7 +16,7 @@ the cloud or on-premises. The `tracing` section under the `Configuration` spec contains the following properties: ```yml -tracing: +spec: tracing: samplingRate: "1" zipkin: diff --git a/daprdocs/content/en/operations/monitoring/tracing/supported-tracing-backends/newrelic.md b/daprdocs/content/en/operations/monitoring/tracing/supported-tracing-backends/newrelic.md index d2cb50fb3..11d382240 100644 --- a/daprdocs/content/en/operations/monitoring/tracing/supported-tracing-backends/newrelic.md +++ b/daprdocs/content/en/operations/monitoring/tracing/supported-tracing-backends/newrelic.md @@ -12,7 +12,7 @@ description: "Set-up New Relic for distributed tracing" ## Configure Dapr tracing -Dapr natively captures metrics and traces that can be send directly to New Relic. The easiest way to export these is by configuring Dapr to send the traces to [New Relic's Trace API](https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/trace-api/report-zipkin-format-traces-trace-api#existing-zipkin) using the Zipkin trace format. +Dapr natively captures metrics and traces that can be send directly to New Relic. The easiest way to export these is by configuring Dapr to send the traces to [New Relic's Trace API](https://docs.newrelic.com/docs/distributed-tracing/trace-api/report-zipkin-format-traces-trace-api/) using the Zipkin trace format. In order for the integration to send data to New Relic [Telemetry Data Platform](https://newrelic.com/platform/telemetry-data-platform), you need a [New Relic Insights Insert API key](https://docs.newrelic.com/docs/apis/get-started/intro-apis/types-new-relic-api-keys#insights-insert-key). @@ -108,8 +108,7 @@ All the data that is collected from Dapr, Kubernetes or any services that run on * [New Relic Account Signup](https://newrelic.com/signup) * [Telemetry Data Platform](https://newrelic.com/platform/telemetry-data-platform) * [Distributed Tracing](https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/get-started/introduction-distributed-tracing) -* [New Relic Trace API](https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/trace-api) -* [New Relic Metric API](https://docs.newrelic.com/docs/telemetry-data-platform/get-data/apis/introduction-metric-api) +* [New Relic Trace API](https://docs.newrelic.com/docs/distributed-tracing/trace-api/introduction-trace-api/) * [Types of New Relic API keys](https://docs.newrelic.com/docs/apis/get-started/intro-apis/types-new-relic-api-keys) * [New Relic OpenTelemetry User Experience](https://blog.newrelic.com/product-news/opentelemetry-user-experience/) * [Alerts and Applied Intelligence](https://docs.newrelic.com/docs/alerts-applied-intelligence) diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index e77cf8c0b..30c76d10e 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -31,17 +31,25 @@ The table below shows the versions of Dapr releases that have been tested togeth | Release date | Runtime | CLI | SDKs | Dashboard | Status | |--------------------|:--------:|:--------|---------|---------|---------| -| Feb 17th 2021 | 1.0.1
(Mar 4th 2021) | 1.0.0 | Java 1.0.0
Go 1.0.0
PHP 1.0.0
Python 1.0.0
.NET 1.0.0 | 0.6.0 | Supported (current) | +| Feb 17th 2021 | 1.0.0
| 1.0.0 | Java 1.0.0
Go 1.0.0
PHP 1.0.0
Python 1.0.0
.NET 1.0.0 | 0.6.0 | Supported | +| Mar 4th 2021 | 1.0.1
| 1.0.1 | Java 1.0.2
Go 1.0.0
PHP 1.0.0
Python 1.0.0
.NET 1.0.0 | 0.6.0 | Supported | +| Apr 1st 2021 | 1.1.0
| 1.1.0 | Java 1.0.2
Go 1.1.0
PHP 1.0.0
Python 1.1.0
.NET 1.1.0 | 0.6.0 | Supported | +| Apr 6th 2021 | 1.1.1
| 1.1.0 | Java 1.0.2
Go 1.1.0
PHP 1.0.0
Python 1.1.0
.NET 1.1.0 | 0.6.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 The table below shows the tested upgrade paths for the Dapr runtime. For example you are able to upgrade from 1.0-rc4 to the 1.0 release. Any other combinations of upgrades have not been tested. -| Current Runtime version | Must upgrade through | Target Runtime version | Notes -|--------------------------|-----------------------|------------------------- |------------------------- | -| 0.11 | N/A | 1.0.0 | Use Dapr CLI to upgrade for both self hosted and Kubernetes -| 1.0-rc1 to 1.0-rc4 | N/A | 1.0.0 | See Dapr 1.0 release notes +General guidance on upgrading can be found for [self hosted mode]({{}}) and [Kubernetes]({{}}) deployments. It is best to review the target version release notes for specific guidance. + +| Current Runtime version | Must upgrade through | Target Runtime version | +|--------------------------|-----------------------|------------------------- | +| 0.11 | N/A | 1.0.1 | +| | 1.0.1 | 1.1.1 | +| 1.0-rc1 to 1.0-rc4 | N/A | 1.0.1 | +| 1.0.0 or 1.0.1 | N/A | 1.1.1 | +| 1.1.0 | N/A | 1.1.1 | ## Feature and deprecations There is a process for announcing feature deprecations. Deprecations are applied two (2) releases after the release in which they were announced. For example Feature X is announced to be deprecated in the 1.0.0 release notes and will then be removed in 1.2.0. @@ -62,4 +70,4 @@ Here is an example, using a hypothetical 1.1.0 as the deprecation announcement r Dapr can support multiple hosting platforms for production. With the 1.0 release the two supported platforms are Kubernetes and physical machines. For Kubernetes upgrades see [Production guidelines on Kubernetes]({{< ref kubernetes-production.md >}}) ## Related links -* Read the [Versioning policy]({{< ref support-versioning.md >}}) \ No newline at end of file +* Read the [Versioning policy]({{< ref support-versioning.md >}}) diff --git a/daprdocs/content/en/operations/troubleshooting/common_issues.md b/daprdocs/content/en/operations/troubleshooting/common_issues.md index 0d3c8a186..581a041ff 100644 --- a/daprdocs/content/en/operations/troubleshooting/common_issues.md +++ b/daprdocs/content/en/operations/troubleshooting/common_issues.md @@ -47,6 +47,8 @@ If your pod spec template is annotated correctly and you still don't see the sid If this is the case, restarting the pods will fix the issue. +If you are deploying Dapr on a private GKE cluster, sidecar injection does not work without extra steps. See [Setup a Google Kubernetes Engine cluster]({{< ref setup-gke.md >}}). + In order to further diagnose any issue, check the logs of the Dapr sidecar injector: ```bash @@ -202,4 +204,4 @@ This is usually due to one of the following issues - You may have defined the `NAMESPACE` environment variable locally or deployed your components into a different namespace in Kubernetes. Check which namespace your app and the components are deployed to. Read [scoping components to one or more applications]({{< ref "component-scopes.md" >}}) for more information. - You may have not provided a `--components-path` with the Dapr `run` commands or not placed your components into the default components folder for your OS. Read [define a component]({{< ref "get-started-component.md" >}}) for more information. -- You may have a syntax issue in component YAML file. Check your component YAML with the component [YAML samples]({{< ref "components.md" >}}). \ No newline at end of file +- You may have a syntax issue in component YAML file. Check your component YAML with the component [YAML samples]({{< ref "components.md" >}}). diff --git a/daprdocs/content/en/reference/cli/dapr-run.md b/daprdocs/content/en/reference/cli/dapr-run.md index 7461f8eee..f1ca6ddf3 100644 --- a/daprdocs/content/en/reference/cli/dapr-run.md +++ b/daprdocs/content/en/reference/cli/dapr-run.md @@ -30,8 +30,8 @@ dapr run [flags] [command] | `--app-ssl` | | `false` | Enable https when Dapr invokes the application | `--components-path`, `-d` | | `Linux & Mac: $HOME/.dapr/components`, `Windows: %USERPROFILE%\.dapr\components` | The path for components directory | `--config`, `-c` | | `Linux & Mac: $HOME/.dapr/config.yaml`, `Windows: %USERPROFILE%\.dapr\config.yaml` | Dapr configuration file | -| `--dapr-grpc-port` | | `3500` | The gRPC port for Dapr to listen on | -| `--dapr-http-port` | | `50001` | The HTTP port for Dapr to listen on | +| `--dapr-grpc-port` | | `50001` | The gRPC port for Dapr to listen on | +| `--dapr-http-port` | | `3500` | The HTTP port for Dapr to listen on | | `--enable-profiling` | | `false` | Enable `pprof` profiling via an HTTP endpoint | `--help`, `-h` | | | Print this help message | | `--image` | | | The image to build the code in. Input is: `repository/image` | diff --git a/daprdocs/content/en/reference/cli/dapr-upgrade.md b/daprdocs/content/en/reference/cli/dapr-upgrade.md index 34f20dd93..9ce2ace14 100644 --- a/daprdocs/content/en/reference/cli/dapr-upgrade.md +++ b/daprdocs/content/en/reference/cli/dapr-upgrade.md @@ -36,12 +36,12 @@ dapr upgrade -k ### Upgrade specified version of Dapr runtime in Kubernetes ```bash -dapr upgrade -k --runtime-version 1.0.0 +dapr upgrade -k --runtime-version 1.1.1 ``` ### Upgrade specified version of Dapr runtime in Kubernetes with value set ```bash -dapr upgrade -k --runtime-version 1.0.0 --set global.logAsJson=true +dapr upgrade -k --runtime-version 1.1.1 --set global.logAsJson=true ``` # Related links diff --git a/daprdocs/content/en/reference/components-reference/_index.md b/daprdocs/content/en/reference/components-reference/_index.md new file mode 100644 index 000000000..5456f4324 --- /dev/null +++ b/daprdocs/content/en/reference/components-reference/_index.md @@ -0,0 +1,7 @@ +--- +type: docs +title: "Dapr components reference" +linkTitle: "Component specs" +description: "Detailed information and specifications on Dapr components" +weight: 400 +--- diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md similarity index 94% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/_index.md index e07b2c3b8..0a69a3732 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md @@ -1,9 +1,11 @@ --- type: docs -title: "Supported external bindings" -linkTitle: "Supported bindings" -weight: 200 +title: "Bindings component specs" +linkTitle: "Bindings" +weight: 3000 description: The supported external bindings that interface with Dapr +aliases: + - "/operations/components/setup-bindings/supported-bindings/" no_list: true --- @@ -29,6 +31,7 @@ Table captions: | [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 | +| [Local Storage]({{< ref localstorage.md >}}) | | ✅ | Alpha | v1 | 1.1 | | [MQTT]({{< ref mqtt.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [MySQL]({{< ref mysql.md >}}) | | ✅ | Alpha | v1 | 1.0 | | [PostgreSql]({{< ref postgres.md >}}) | | ✅ | Alpha | v1 | 1.0 | diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/alicloudoss.md b/daprdocs/content/en/reference/components-reference/supported-bindings/alicloudoss.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/alicloudoss.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/alicloudoss.md index af106dea8..0318c6d19 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/alicloudoss.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/alicloudoss.md @@ -3,6 +3,8 @@ type: docs title: "Alibaba Cloud Object Storage Service binding spec" linkTitle: "Alibaba Cloud Object Storage" description: "Detailed documentation on the Alibaba Cloud Object Storage binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/alicloudoss/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/apns.md b/daprdocs/content/en/reference/components-reference/supported-bindings/apns.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/apns.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/apns.md index 625551acc..3a33ba187 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/apns.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/apns.md @@ -3,6 +3,8 @@ type: docs title: "Apple Push Notification Service binding spec" linkTitle: "Apple Push Notification Service" description: "Detailed documentation on the Apple Push Notification Service binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/apns/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/blobstorage.md b/daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md similarity index 76% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/blobstorage.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md index 409f8efe0..b48a0747b 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/blobstorage.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md @@ -3,6 +3,8 @@ type: docs title: "Azure Blob Storage binding spec" linkTitle: "Azure Blob Storage" description: "Detailed documentation on the Azure Blob Storage binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/blobstorage/" --- ## Component format @@ -52,6 +54,7 @@ This component supports **output binding** with the following operations: - `create` : [Create blob](#create-blob) - `get` : [Get blob](#get-blob) +- `delete` : [Delete blob](#delete-blob) ### Create blob @@ -199,6 +202,82 @@ To perform a get blob operation, invoke the Azure Blob Storage binding with a `P The response body contains the value stored in the blob object. +### Delete blob + +To perform a delete blob operation, invoke the Azure Blob Storage binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "delete", + "metadata": { + "blobName": "myblob" + } +} +``` + +#### Examples + +##### Delete blob + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"delete\", \"metadata\": { \"blobName\": \"myblob\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "delete", "metadata": { "blobName": "myblob" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +##### Delete blob snapshots only + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"delete\", \"metadata\": { \"blobName\": \"myblob\", \"DeleteSnapshotOptions\": \"only\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "delete", "metadata": { "blobName": "myblob", "DeleteSnapshotOptions": "only" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +##### Delete blob including snapshots + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"delete\", \"metadata\": { \"blobName\": \"myblob\", \"DeleteSnapshotOptions\": \"include\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "delete", "metadata": { "blobName": "myblob", "DeleteSnapshotOptions": "include" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +#### Response + +An HTTP 204 (No Content) and empty body will be retuned if successful. + ## Metadata information By default the Azure Blob Storage output binding auto generates a UUID as the blob filename and is not assigned any system or custom metadata to it. It is configurable in the metadata property of the message (all optional). diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/cosmosdb.md b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdb.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/cosmosdb.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdb.md index d7749960e..dd793db11 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/cosmosdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdb.md @@ -3,6 +3,8 @@ type: docs title: "Azure CosmosDB binding spec" linkTitle: "Azure CosmosDB" description: "Detailed documentation on the Azure CosmosDB binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/cosmosdb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/cron.md b/daprdocs/content/en/reference/components-reference/supported-bindings/cron.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/cron.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/cron.md index afc22a070..9d07e146a 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/cron.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/cron.md @@ -3,6 +3,8 @@ type: docs title: "Cron binding spec" linkTitle: "Cron" description: "Detailed documentation on the cron binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/cron/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/dynamodb.md b/daprdocs/content/en/reference/components-reference/supported-bindings/dynamodb.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/dynamodb.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/dynamodb.md index 86e28b457..dae8c1f8a 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/dynamodb.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/dynamodb.md @@ -3,6 +3,8 @@ type: docs title: "AWS DynamoDB binding spec" linkTitle: "AWS DynamoDB" description: "Detailed documentation on the AWS DynamoDB binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/dynamodb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/eventgrid.md b/daprdocs/content/en/reference/components-reference/supported-bindings/eventgrid.md similarity index 99% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/eventgrid.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/eventgrid.md index 426ad7d59..efa8f3bc7 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/eventgrid.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/eventgrid.md @@ -3,6 +3,8 @@ type: docs title: "Azure Event Grid binding spec" linkTitle: "Azure Event Grid" description: "Detailed documentation on the Azure Event Grid binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/eventgrid/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/eventhubs.md b/daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/eventhubs.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md index 7105347ea..5ae7949f3 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/eventhubs.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md @@ -3,6 +3,8 @@ type: docs title: "Azure Event Hubs binding spec" linkTitle: "Azure Event Hubs" description: "Detailed documentation on the Azure Event Hubs binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/eventhubs/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcpbucket.md b/daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md similarity index 58% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcpbucket.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md index e52a252cb..84b91edec 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcpbucket.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md @@ -3,6 +3,8 @@ type: docs title: "GCP Storage Bucket binding spec" linkTitle: "GCP Storage Bucket" description: "Detailed documentation on the GCP Storage Bucket binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/gcpbucket/" --- ## Component format @@ -70,6 +72,85 @@ This component supports **output binding** with the following operations: - `create` +### Create file + +To perform a create operation, invoke the GCP Storage Bucket binding with a `POST` method and the following JSON body: + +> Note: by default, a random UUID is generated. See below for Metadata support to set the name + +```json +{ + "operation": "create", + "data": "YOUR_CONTENT" +} +``` + +#### Examples + + +##### Save text to a random generated UUID file + +{{< tabs Windows Linux >}} + {{% codetab %}} + On Windows, utilize cmd prompt (PowerShell has different escaping mechanism) + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\" }" http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "Hello World" }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +##### Save text to a specific file + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\", \"metadata\": { \"name\": \"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" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + + +##### Upload a file + +To upload a file, pass the file contents as the data payload; you may want to encode this in e.g. Base64 for binary content. + +Then you can upload it as you would normally: + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"(YOUR_FILE_CONTENTS)\", \"metadata\": { \"name\": \"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" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + ## Related links - [Basic schema for a Dapr component]({{< ref component-schema >}}) diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcppubsub.md b/daprdocs/content/en/reference/components-reference/supported-bindings/gcppubsub.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcppubsub.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/gcppubsub.md index 9def7fe7c..d9bab5e81 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcppubsub.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/gcppubsub.md @@ -3,6 +3,8 @@ type: docs title: "GCP Pub/Sub binding spec" linkTitle: "GCP Pub/Sub" description: "Detailed documentation on the GCP Pub/Sub binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/gcppubsub/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/http.md b/daprdocs/content/en/reference/components-reference/supported-bindings/http.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/http.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/http.md index 0cc0fdf88..46cc781e4 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/http.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/http.md @@ -3,6 +3,8 @@ type: docs title: "HTTP binding spec" linkTitle: "HTTP" description: "Detailed documentation on the HTTP binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/http/" --- ## Setup Dapr component diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/influxdb.md b/daprdocs/content/en/reference/components-reference/supported-bindings/influxdb.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/influxdb.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/influxdb.md index dcb4f130a..88e22cfba 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/influxdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/influxdb.md @@ -3,6 +3,8 @@ type: docs title: "InfluxDB binding spec" linkTitle: "InfluxDB" description: "Detailed documentation on the InfluxDB binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/influxdb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kafka.md b/daprdocs/content/en/reference/components-reference/supported-bindings/kafka.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kafka.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/kafka.md index ddbb142e6..f9b508d9d 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/kafka.md @@ -3,6 +3,8 @@ type: docs title: "Kafka binding spec" linkTitle: "Kafka" description: "Detailed documentation on the Kafka binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/kafka/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kinesis.md b/daprdocs/content/en/reference/components-reference/supported-bindings/kinesis.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kinesis.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/kinesis.md index 1f6c375fb..cc0914486 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kinesis.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/kinesis.md @@ -3,6 +3,8 @@ type: docs title: "AWS Kinesis binding spec" linkTitle: "AWS Kinesis" description: "Detailed documentation on the AWS Kinesis binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/kinesis/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kubernetes-binding.md b/daprdocs/content/en/reference/components-reference/supported-bindings/kubernetes-binding.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kubernetes-binding.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/kubernetes-binding.md index 3ccfd0b0f..706ea8a07 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kubernetes-binding.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/kubernetes-binding.md @@ -3,6 +3,8 @@ type: docs title: "Kubernetes Events binding spec" linkTitle: "Kubernetes Events" description: "Detailed documentation on the Kubernetes Events binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/kubernetes-binding/" --- ## Component format diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/localstorage.md b/daprdocs/content/en/reference/components-reference/supported-bindings/localstorage.md new file mode 100644 index 000000000..a698d86d1 --- /dev/null +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/localstorage.md @@ -0,0 +1,268 @@ +--- +type: docs +title: "Local Storage binding spec" +linkTitle: "Local Storage" +description: "Detailed documentation on the Local Storage binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/localstorage/" +--- + +## Component format + +To set up the Local Storage binding, create a component of type `bindings.localstorage`. 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.localstorage + version: v1 + metadata: + - name: rootPath + value: +``` + +## Spec metadata fields + +| Field | Required | Binding support | Details | Example | +|--------------------|:--------:|--------|---------|---------| +| rootPath | Y | Input / Output | The root path anchor to which files can be read / saved | `"/temp/files"` | + +## Binding support + +This component supports **output binding** with the following operations: + +- `create` : [Create file](#create-file) +- `get` : [Get file](#get-file) +- `list` : [List files](#list-files) +- `delete` : [Delete file](#delete-file) + +### Create file + +To perform a create file operation, invoke the Local Storage binding with a `POST` method and the following JSON body: + +> Note: by default, a random UUID is generated. See below for Metadata support to set the name + +```json +{ + "operation": "create", + "data": "YOUR_CONTENT" +} +``` + +#### Examples + + +##### Save text to a random generated UUID file + +{{< tabs Windows Linux >}} + {{% codetab %}} + On Windows, utilize cmd prompt (PowerShell has different escaping mechanism) + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\" }" http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "Hello World" }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +##### Save text to a specific file + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\", \"metadata\": { \"fileName\": \"my-test-file.txt\" } }" \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "Hello World", "metadata": { "fileName": "my-test-file.txt" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + + +##### Save a binary file + +To upload a file, encode it as Base64. The binding should automatically detect the Base64 encoding. + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"YOUR_BASE_64_CONTENT\", \"metadata\": { \"fileName\": \"my-test-file.jpg\" } }" http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "YOUR_BASE_64_CONTENT", "metadata": { "fileName": "my-test-file.jpg" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +#### Response + +The response body will contain the following JSON: + +```json +{ + "fileName": "" +} + +``` + +### Get file + +To perform a get file operation, invoke the Local Storage binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "get", + "metadata": { + "fileName": "myfile" + } +} +``` + +#### Example + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"get\", \"metadata\": { \"fileName\": \"myfile\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "get", "metadata": { "fileName": "myfile" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +#### Response + +The response body contains the value stored in the file. + +### List files + +To perform a list files operation, invoke the Local Storage binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "list" +} +``` + +If you only want to list the files beneath a particular directory below the `rootPath`, specify the relative directory name as the `fileName` in the metadata. + +```json +{ + "operation": "list", + "metadata": { + "fileName": "my/cool/directory" + } +} +``` + +#### Example + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"list\", \"metadata\": { \"fileName\": \"my/cool/directory\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "list", "metadata": { "fileName": "my/cool/directory" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +#### Response + +The response is a JSON array of file names. + +### Delete file + +To perform a delete file operation, invoke the Local Storage binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "delete", + "metadata": { + "fileName": "myfile" + } +} +``` + +#### Example + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"delete\", \"metadata\": { \"fileName\": \"myfile\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "delete", "metadata": { "fileName": "myfile" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +#### Response + +An HTTP 204 (No Content) and empty body will be returned if successful. + +## Metadata information + +By default the Local Storage output binding auto generates a UUID as the file name. It is configurable in the metadata property of the message. + +```json +{ + "data": "file content", + "metadata": { + "fileName": "filename.txt" + }, + "operation": "create" +} +``` + +## 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 >}}) diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/mqtt.md b/daprdocs/content/en/reference/components-reference/supported-bindings/mqtt.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/mqtt.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/mqtt.md index 236eb22a8..270381a52 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/mqtt.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/mqtt.md @@ -3,6 +3,8 @@ type: docs title: "MQTT binding spec" linkTitle: "MQTT" description: "Detailed documentation on the MQTT binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/mqtt/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/mysql.md b/daprdocs/content/en/reference/components-reference/supported-bindings/mysql.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/mysql.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/mysql.md index 94cc51c08..79863e41d 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/mysql.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/mysql.md @@ -3,6 +3,8 @@ type: docs title: "MySQL binding spec" linkTitle: "MySQL" description: "Detailed documentation on the MySQL binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/mysql/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/postgres.md b/daprdocs/content/en/reference/components-reference/supported-bindings/postgres.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/postgres.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/postgres.md index 13606d2da..ad891833d 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/postgres.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/postgres.md @@ -3,6 +3,8 @@ type: docs title: "PostgreSQL binding spec" linkTitle: "PostgreSQL" description: "Detailed documentation on the PostgreSQL binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/postgres/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/postmark.md b/daprdocs/content/en/reference/components-reference/supported-bindings/postmark.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/postmark.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/postmark.md index f5a4032c0..41c08b1c8 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/postmark.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/postmark.md @@ -3,6 +3,8 @@ type: docs title: "Postmark binding spec" linkTitle: "Postmark" description: "Detailed documentation on the Postmark binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/postmark/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/rabbitmq.md b/daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/rabbitmq.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md index 9c57c2e36..ebc46d396 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/rabbitmq.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md @@ -3,6 +3,8 @@ type: docs title: "RabbitMQ binding spec" linkTitle: "RabbitMQ" description: "Detailed documentation on the RabbitMQ binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/rabbitmq/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/redis.md b/daprdocs/content/en/reference/components-reference/supported-bindings/redis.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/redis.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/redis.md index 9ca98ae0c..22b0445ef 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/redis.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/redis.md @@ -3,6 +3,8 @@ type: docs title: "Redis binding spec" linkTitle: "Redis" description: "Detailed documentation on the Redis binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/redis/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/rethinkdb.md b/daprdocs/content/en/reference/components-reference/supported-bindings/rethinkdb.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/rethinkdb.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/rethinkdb.md index b71817c85..6a62df3c5 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/rethinkdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/rethinkdb.md @@ -3,6 +3,8 @@ type: docs title: "RethinkDB binding spec" linkTitle: "RethinkDB" description: "Detailed documentation on the RethinkDB binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/rethinkdb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/s3.md b/daprdocs/content/en/reference/components-reference/supported-bindings/s3.md similarity index 51% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/s3.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/s3.md index deaaf0add..8b3fb158a 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/s3.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/s3.md @@ -3,6 +3,8 @@ type: docs title: "AWS S3 binding spec" linkTitle: "AWS S3" description: "Detailed documentation on the AWS S3 binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/s3/" --- ## Component format @@ -29,8 +31,8 @@ spec: value: ***************** - name: secretKey value: ***************** - - name: bucket - value: mybucket + - name: sessionToken + value: mysession ``` {{% alert title="Warning" color="warning" %}} @@ -54,6 +56,85 @@ This component supports **output binding** with the following operations: - `create` +### Create file + +To perform a create operation, invoke the AWS S3 binding with a `POST` method and the following JSON body: + +> Note: by default, a random UUID is generated. See below for Metadata support to set the name + +```json +{ + "operation": "create", + "data": "YOUR_CONTENT" +} +``` + +#### Examples + + +##### Save text to a random generated UUID file + +{{< tabs Windows Linux >}} + {{% codetab %}} + On Windows, utilize cmd prompt (PowerShell has different escaping mechanism) + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\" }" http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "Hello World" }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +##### Save text to a specific file + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + 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": { "key": "my-test-file.txt" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + + +##### Upload a file + +To upload a file, pass the file contents as the data payload; you may want to encode this in e.g. Base64 for binary content. + +Then you can upload it as you would normally: + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + 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": { "key": "my-test-file.jpg" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + ## Related links - [Basic schema for a Dapr component]({{< ref component-schema >}}) diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sendgrid.md b/daprdocs/content/en/reference/components-reference/supported-bindings/sendgrid.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sendgrid.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/sendgrid.md index 6c1d88ee0..215397cd7 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sendgrid.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/sendgrid.md @@ -3,6 +3,8 @@ type: docs title: "Twilio SendGrid binding spec" linkTitle: "Twilio SendGrid" description: "Detailed documentation on the Twilio SendGrid binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/sendgrid/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/servicebusqueues.md b/daprdocs/content/en/reference/components-reference/supported-bindings/servicebusqueues.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/servicebusqueues.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/servicebusqueues.md index 1de6a27c7..880e209d7 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/servicebusqueues.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/servicebusqueues.md @@ -3,6 +3,8 @@ type: docs title: "Azure Service Bus Queues binding spec" linkTitle: "Azure Service Bus Queues" description: "Detailed documentation on the Azure Service Bus Queues binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/servicebusqueues/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/signalr.md b/daprdocs/content/en/reference/components-reference/supported-bindings/signalr.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/signalr.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/signalr.md index 508ae7d2f..0878fd9ae 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/signalr.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/signalr.md @@ -3,6 +3,8 @@ type: docs title: "Azure SignalR binding spec" linkTitle: "Azure SignalR" description: "Detailed documentation on the Azure SignalR binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/signalr/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/smtp.md b/daprdocs/content/en/reference/components-reference/supported-bindings/smtp.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/smtp.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/smtp.md index 7bd2b58ab..31bfa1e11 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/smtp.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/smtp.md @@ -3,6 +3,8 @@ type: docs title: "SMTP binding spec" linkTitle: "SMTP" description: "Detailed documentation on the SMTP binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/smtp/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sns.md b/daprdocs/content/en/reference/components-reference/supported-bindings/sns.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sns.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/sns.md index 5f45d1c41..29a87bc3a 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sns.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/sns.md @@ -3,6 +3,8 @@ type: docs title: "AWS SNS binding spec" linkTitle: "AWS SNS" description: "Detailed documentation on the AWS SNS binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/sns/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sqs.md b/daprdocs/content/en/reference/components-reference/supported-bindings/sqs.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sqs.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/sqs.md index e229f1ad1..0e97802d0 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sqs.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/sqs.md @@ -3,6 +3,8 @@ type: docs title: "AWS SQS binding spec" linkTitle: "AWS SQS" description: "Detailed documentation on the AWS SQS binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/sqs/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/storagequeues.md b/daprdocs/content/en/reference/components-reference/supported-bindings/storagequeues.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/storagequeues.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/storagequeues.md index c075031cb..a4814664c 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/storagequeues.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/storagequeues.md @@ -3,6 +3,8 @@ type: docs title: "Azure Storage Queues binding spec" linkTitle: "Azure Storage Queues" description: "Detailed documentation on the Azure Storage Queues binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/storagequeues/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/twilio.md b/daprdocs/content/en/reference/components-reference/supported-bindings/twilio.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/twilio.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/twilio.md index df5994b36..9d158e72d 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/twilio.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/twilio.md @@ -3,6 +3,8 @@ type: docs title: "Twilio SMS binding spec" linkTitle: "Twilio SMS" description: "Detailed documentation on the Twilio SMS binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/twilio/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/twitter.md b/daprdocs/content/en/reference/components-reference/supported-bindings/twitter.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/twitter.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/twitter.md index 81f4ff654..66511892a 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/twitter.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/twitter.md @@ -3,6 +3,8 @@ type: docs title: "Twitter binding spec" linkTitle: "Twitter" description: "Detailed documentation on the Twitter binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/twitter/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/_index.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md similarity index 93% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/_index.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md index ef1fc71c6..5fdc1a994 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md @@ -1,9 +1,11 @@ --- type: docs -title: "Supported pub/sub brokers" -linkTitle: "Supported pub/sub brokers" -weight: 30000 +title: "Pub/sub brokers component specs" +linkTitle: "Pub/sub brokers" +weight: 2000 description: The supported pub/sub brokers that interface with Dapr +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/" no_list: true --- diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-apache-kafka.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index e2907b6ce..32381b2f6 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -3,6 +3,8 @@ type: docs title: "Apache Kafka" linkTitle: "Apache Kafka" description: "Detailed documentation on the Apache Kafka pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-apache-kafka/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-aws-snssqs.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-aws-snssqs.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-aws-snssqs.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-aws-snssqs.md index a50037643..cca8de9b9 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-aws-snssqs.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-aws-snssqs.md @@ -3,6 +3,8 @@ type: docs title: "AWS SNS/SQS" linkTitle: "AWS SNS/SQS" description: "Detailed documentation on the AWS SNS/SQS pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-aws-snssqs/" --- ## Component format @@ -142,6 +144,6 @@ Use the `AWS account ID` and `AWS account secret` and plug them into the `access - [Pub/Sub building block]({{< ref pubsub >}}) - Read [this guide]({{< ref "howto-publish-subscribe.md#step-2-publish-a-topic" >}}) for instructions on configuring pub/sub components - [AWS SQS as subscriber to SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-sqs-as-subscriber.html) -- [AWS SNS API refernce](https://docs.aws.amazon.com/sns/latest/api/Welcome.html) -- [AWS SQS API refernce](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/Welcome.html) +- [AWS SNS API reference](https://docs.aws.amazon.com/sns/latest/api/Welcome.html) +- [AWS SQS API reference](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/Welcome.html) - [Authenticating to AWS]({{< ref authenticating-aws.md >}}) diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-azure-eventhubs.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-azure-eventhubs.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md index ef16efc35..7539b9c0e 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-azure-eventhubs.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md @@ -3,6 +3,8 @@ type: docs title: "Azure Events Hub" linkTitle: "Azure Events Hub" description: "Detailed documentation on the Azure Event Hubs pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-azure-eventhubs/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-azure-servicebus.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-azure-servicebus.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md index c43196cc9..584151831 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-azure-servicebus.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md @@ -3,6 +3,8 @@ type: docs title: "Azure Service Bus" linkTitle: "Azure Service Bus" description: "Detailed documentation on the Azure Service Bus pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-azure-servicebus/" --- ## Component format diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md new file mode 100644 index 000000000..8827bc9ff --- /dev/null +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md @@ -0,0 +1,79 @@ +--- +type: docs +title: "GCP Pub/Sub" +linkTitle: "GCP Pub/Sub" +description: "Detailed documentation on the GCP Pub/Sub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-gcp/" + - "/operations/components/setup-pubsub/supported-pubsub/setup-gcp-pubsub/" +--- + +## Create a Dapr component + +To setup GCP pubsub create a component of type `pubsub.gcp.pubsub`. See [this guide]({{< ref "howto-publish-subscribe.md#step-1-setup-the-pubsub-component" >}}) on how to create and apply a pubsub configuration + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: gcp-pubsub + namespace: default +spec: + type: pubsub.gcp.pubsub + version: v1 + metadata: + - name: type + value: service_account + - name: projectId + value: # replace + - name: identityProjectId + value: # replace + - name: privateKeyId + value: #replace + - name: clientEmail + value: #replace + - name: clientId + value: # replace + - name: authUri + value: https://accounts.google.com/o/oauth2/auth + - name: tokenUri + value: https://oauth2.googleapis.com/token + - name: authProviderX509CertUrl + value: https://www.googleapis.com/oauth2/v1/certs + - name: clientX509CertUrl + value: https://www.googleapis.com/robot/v1/metadata/x509/.iam.gserviceaccount.com #replace PROJECT_NAME + - name: privateKey + value: # replace x509 cert + - name: disableEntityManagement + value: "false" +``` +{{% alert title="Warning" color="warning" %}} +The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here]({{< ref component-secrets.md >}}). +{{% /alert %}} + +## Spec metadata fields + +| Field | Required | Details | Example | +|--------------------|:--------:|---------|---------| +| type | N | GCP credentials type. Only `service_account` is supported. Defaults to `service_account` | `service_account` +| projectId | Y | GCP project id| `myproject-123` +| identityProjectId | N | If the GCP pubsub project is different from the identity project, specify the identity project using this attribute | `"myproject-123"` +| privateKeyId | N | If using explicit credentials, this field should contain the `private_key_id` field from the service account json document | `"my-private-key"` +| privateKey | N | If using explicit credentials, this field should contain the `private_key` field from the service account json | `-----BEGIN PRIVATE KEY-----MIIBVgIBADANBgkqhkiG9w0B` +| clientEmail | N | If using explicit credentials, this field should contain the `client_email` field from the service account json | `"myservice@myproject-123.iam.gserviceaccount.com"` +| clientId | N | If using explicit credentials, this field should contain the `client_id` field from the service account json | `106234234234` +| authUri | N | If using explicit credentials, this field should contain the `auth_uri` field from the service account json | `https://accounts.google.com/o/oauth2/auth` +| tokenUri | N | If using explicit credentials, this field should contain the `token_uri` field from the service account json | `https://oauth2.googleapis.com/token` +| authProviderX509CertUrl | N | If using explicit credentials, this field should contain the `auth_provider_x509_cert_url` field from the service account json | `https://www.googleapis.com/oauth2/v1/certs` +| clientX509CertUrl | N | If using explicit credentials, this field should contain the `client_x509_cert_url` field from the service account json | `https://www.googleapis.com/robot/v1/metadata/x509/myserviceaccount%40myproject.iam.gserviceaccount.com` +| disableEntityManagement | N | When set to `"true"`, topics and subscriptions do not get created automatically. Default: `"false"` | `"true"`, `"false"` + +## Create a GCP Pub/Sub +You can use either "explicit" or "implicit" credentials to configure access to your GCP pubsub instance. If using explicit, most fields are required. Implicit relies on dapr running under a Kubernetes service acccount (KSA) mapped to a Google service account (GSA) which has the necessary permissions to access pubsub. In implicit mode, only the `projectId` attribute is needed, all other are optional. + +Follow the instructions [here](https://cloud.google.com/pubsub/docs/quickstart-console) on setting up Google Cloud Pub/Sub system. + +## 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 diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-hazelcast.md similarity index 94% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-hazelcast.md index 093042659..1518dffb9 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-hazelcast.md @@ -3,6 +3,8 @@ type: docs title: "Hazelcast" linkTitle: "Hazelcast" description: "Detailed documentation on the Hazelcast pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-mqtt.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-mqtt.md index 6d039d9ce..aed40cb0b 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-mqtt.md @@ -3,6 +3,8 @@ type: docs title: "MQTT" linkTitle: "MQTT" description: "Detailed documentation on the MQTT pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-mqtt/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-nats-streaming.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-nats-streaming.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-nats-streaming.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-nats-streaming.md index e8fb5d5a5..1f691139f 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-nats-streaming.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-nats-streaming.md @@ -3,6 +3,8 @@ type: docs title: "NATS Streaming" linkTitle: "NATS Streaming" description: "Detailed documentation on the NATS Streaming pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-nats-streaming/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-pulsar.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md similarity index 92% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-pulsar.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md index 199e5e0f2..cfa6eb7c9 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-pulsar.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md @@ -3,6 +3,8 @@ type: docs title: "Pulsar" linkTitle: "Pulsar" description: "Detailed documentation on the Pulsar pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-pulsar/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-rabbitmq.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-rabbitmq.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md index 855251a94..f00eefd37 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-rabbitmq.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md @@ -3,6 +3,8 @@ type: docs title: "RabbitMQ" linkTitle: "RabbitMQ" description: "Detailed documentation on the RabbitMQ pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-rabbitmq/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md index 173952b2b..417cb5561 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md @@ -3,6 +3,8 @@ type: docs title: "Redis Streams" linkTitle: "Redis Streams" description: "Detailed documentation on the Redis Streams pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md similarity index 93% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/_index.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md index ee5692974..c6c43b74e 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md @@ -1,9 +1,11 @@ --- type: docs -title: "Supported secret stores" -linkTitle: "Supported secret stores" -weight: 30000 +title: "Secret store component specs" +linkTitle: "Secret stores" +weight: 4000 description: The supported secret stores that interface with Dapr +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/" no_list: true --- diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/aws-parameter-store.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/aws-parameter-store.md similarity index 87% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/aws-parameter-store.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/aws-parameter-store.md index 2aa797c2d..58a076196 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/aws-parameter-store.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/aws-parameter-store.md @@ -3,11 +3,13 @@ type: docs title: "AWS SSM Parameter Store" linkTitle: "AWS SSM Parameter Store" description: Detailed information on the AWS SSM Parameter Store - secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/aws-parameter-store/" --- ## Component format -To setup AWS SSM Parameter Store secret store create a component of type `secretstores.aws.parameterstore`. See [this guide]({{< ref "secret-stores-overview.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. +To setup AWS SSM Parameter Store secret store create a component of type `secretstores.aws.parameterstore`. See [this guide]({{< ref "setup-secret-store.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. See [Authenticating to AWS]({{< ref authenticating-aws.md >}}) for information about authentication-related attributes. diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/aws-secret-manager.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/aws-secret-manager.md similarity index 87% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/aws-secret-manager.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/aws-secret-manager.md index 686958735..b2a2099f8 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/aws-secret-manager.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/aws-secret-manager.md @@ -3,11 +3,13 @@ type: docs title: "AWS Secrets Manager" linkTitle: "AWS Secrets Manager" description: Detailed information on the decret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/aws-secret-manager/" --- ## Component format -To setup AWS Secrets Manager secret store create a component of type `secretstores.aws.secretmanager`. See [this guide]({{< ref "secret-stores-overview.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. +To setup AWS Secrets Manager secret store create a component of type `secretstores.aws.secretmanager`. See [this guide]({{< ref "setup-secret-store.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. See [Authenticating to AWS]({{< ref authenticating-aws.md >}}) for information about authentication-related attributes. diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault-managed-identity.md similarity index 86% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault-managed-identity.md index fa1e015fe..f42d83594 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault-managed-identity.md @@ -3,11 +3,13 @@ type: docs title: "Azure Key Vault with Managed Identities on Kubernetes" linkTitle: "Azure Key Vault w/ Managed Identity" description: How to configure Azure Key Vault and Kubernetes to use Azure Managed Identities to access secrets +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity/" --- ## Component format -To setup Azure Key Vault secret store with Managed Identies create a component of type `secretstores.azure.keyvault`. See [this guide]({{< ref "secret-stores-overview.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. +To setup Azure Key Vault secret store with Managed Identies create a component of type `secretstores.azure.keyvault`. See [this guide]({{< ref "setup-secret-store.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. In Kubernetes mode, you store the certificate for the service principal into the Kubernetes Secret Store and then enable Azure Key Vault secret store with this certificate in Kubernetes secretstore. @@ -67,13 +69,13 @@ The above example uses secrets as plain strings. It is recommended to use a loca 3. Create the managed identity(Optional) - This step is required only if the AKS Cluster is provisoned without the flag "--enable-managed-identity". If the cluster is provisioned with manahed identity, than is suggested to use the autogenerated managed identity that is associated to the Resource Group MC_*. + This step is required only if the AKS Cluster is provisoned without the flag "--enable-managed-identity". If the cluster is provisioned with managed identity, than it is suggested to use the autogenerated managed identity that is associated to the Resource Group MC_*. ```bash - $identity = az identity create -g [your resource group] -n [you managed identity name] -o json | ConvertFrom-Json + $identity = az identity create -g [your resource group] -n [your managed identity name] -o json | ConvertFrom-Json ``` - Below the command to retrieve the managed identity in the autogenerated scenario: + Below is the command to retrieve the managed identity in the autogenerated scenario: ```bash az aks show -g -n @@ -134,19 +136,19 @@ The above example uses secrets as plain strings. It is recommended to use a loca apiVersion: "aadpodidentity.k8s.io/v1" kind: AzureIdentity metadata: - name: [you managed identity name] + name: [your managed identity name] spec: type: 0 - resourceID: [you managed identity id] - clientID: [you managed identity Client ID] + resourceID: [your managed identity id] + clientID: [your managed identity Client ID] --- apiVersion: "aadpodidentity.k8s.io/v1" kind: AzureIdentityBinding metadata: - name: [you managed identity name]-identity-binding + name: [your managed identity name]-identity-binding spec: - azureIdentity: [you managed identity name] - selector: [you managed identity selector] + azureIdentity: [your managed identity name] + selector: [your managed identity selector] ``` 10. Deploy the azure-identity-config.yaml: diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md similarity index 94% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md index db83a3a7d..77480839d 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md @@ -3,6 +3,8 @@ type: docs title: "Azure Key Vault secret store" linkTitle: "Azure Key Vault" description: Detailed information on the Azure Key Vault secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault/" --- {{% alert title="Note" color="primary" %}} @@ -11,7 +13,7 @@ Azure Managed Identity can be used for Azure Key Vault access on Kubernetes. Ins ## Component format -To setup Azure Key Vault secret store create a component of type `secretstores.azure.keyvault`. See [this guide]({{< ref "secret-stores-overview.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. +To setup Azure Key Vault secret store create a component of type `secretstores.azure.keyvault`. See [this guide]({{< ref "setup-secret-store.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. See also [configure the component](#configure-the-component) guide in this page. @@ -88,7 +90,7 @@ The above example uses secrets as plain strings. It is recommended to use a loca } ``` - **Save the both the appId and tenant from the output which will be used in the next step** + **Save both the appId and tenant from the output which will be used in the next step** 4. Get the Object Id for [your_service_principal_name] diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/envvar-secret-store.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/envvar-secret-store.md similarity index 86% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/envvar-secret-store.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/envvar-secret-store.md index e1c2550b9..7a336472a 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/envvar-secret-store.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/envvar-secret-store.md @@ -3,6 +3,8 @@ type: docs title: "Local environment variables (for Development)" linkTitle: "Local environment variables" description: Detailed information on the local environment secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/envvar-secret-store/" --- This Dapr secret store component uses locally defined environment variable and does not use authentication. diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/file-secret-store.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/file-secret-store.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/file-secret-store.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/file-secret-store.md index 56acee2db..a0ae0350a 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/file-secret-store.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/file-secret-store.md @@ -3,6 +3,8 @@ type: docs title: "Local file (for Development)" linkTitle: "Local file" description: Detailed information on the local file secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/file-secret-store/" --- This Dapr secret store component reads plain text JSON from a given file and does not use authentication. diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/gcp-secret-manager.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/gcp-secret-manager.md similarity index 90% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/gcp-secret-manager.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/gcp-secret-manager.md index 5f67cadf5..0a82bca84 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/gcp-secret-manager.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/gcp-secret-manager.md @@ -3,11 +3,13 @@ type: docs title: "GCP Secret Manager" linkTitle: "GCP Secret Manager" description: Detailed information on the GCP Secret Manager secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/gcp-secret-manager/" --- ## Component format -To setup GCP Secret Manager secret store create a component of type `secretstores.gcp.secretmanager`. See [this guide]({{< ref "secret-stores-overview.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. +To setup GCP Secret Manager secret store create a component of type `secretstores.gcp.secretmanager`. See [this guide]({{< ref "setup-secret-store#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. ```yaml apiVersion: dapr.io/v1alpha1 diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/hashicorp-vault.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/hashicorp-vault.md similarity index 88% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/hashicorp-vault.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/hashicorp-vault.md index 583f80780..2463f0e2f 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/hashicorp-vault.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/hashicorp-vault.md @@ -3,11 +3,13 @@ type: docs title: "HashiCorp Vault" linkTitle: "HashiCorp Vault" description: Detailed information on the HashiCorp Vault secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/hashicorp-vault/" --- ## Create the Vault component -To setup HashiCorp Vault secret store create a component of type `secretstores.hashicorp.vault`. See [this guide]({{< ref "secret-stores-overview.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. +To setup HashiCorp Vault secret store create a component of type `secretstores.hashicorp.vault`. See [this guide]({{< ref "setup-secret-store.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. ```yaml apiVersion: dapr.io/v1alpha1 diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/kubernetes-secret-store.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/kubernetes-secret-store.md similarity index 88% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/kubernetes-secret-store.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/kubernetes-secret-store.md index 540694ee0..7fba210fa 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/kubernetes-secret-store.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/kubernetes-secret-store.md @@ -3,6 +3,8 @@ type: docs title: "Kubernetes secrets" linkTitle: "Kubernetes secrets" description: Detailed information on the Kubernetes secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/kubernetes-secret-store/" --- ## Summary diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/_index.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md index d7da25534..0dcdcd65a 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md @@ -1,9 +1,11 @@ --- type: docs -title: "Supported state stores" -linkTitle: "Supported state stores" +title: "State store component specs" +linkTitle: "State stores" description: "The supported state stores that interface with Dapr" -weight: 20000 +weight: 1000 +aliases: + - "/operations/components/setup-state-store/supported-state-stores/" no_list: true --- diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-aerospike.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-aerospike.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-aerospike.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-aerospike.md index 24bfb08c4..ea1b30dd7 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-aerospike.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-aerospike.md @@ -3,6 +3,8 @@ type: docs title: "Aerospike" linkTitle: "Aerospike" description: Detailed information on the Aerospike state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-aerospike/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-blobstorage.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-blobstorage.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-blobstorage.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-blobstorage.md index 7318b016d..5ab7d53f9 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-blobstorage.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-blobstorage.md @@ -3,6 +3,8 @@ type: docs title: "Azure Blob Storage" linkTitle: "Azure Blob Storage" description: Detailed information on the Azure Blob Store state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-azure-blobstorage/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-cosmosdb.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-cosmosdb.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-cosmosdb.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-cosmosdb.md index 8ed86ffe6..9992f8711 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-cosmosdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-cosmosdb.md @@ -3,6 +3,8 @@ type: docs title: "Azure Cosmos DB" linkTitle: "Azure Cosmos DB" description: Detailed information on the Azure CosmosDB state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-azure-cosmosdb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-tablestorage.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-tablestorage.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-tablestorage.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-tablestorage.md index d7cb3b9bc..c2a472689 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-tablestorage.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-tablestorage.md @@ -3,6 +3,8 @@ type: docs title: "Azure Table Storage " linkTitle: "Azure Table Storage " description: Detailed information on the Azure Table Storage state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-azure-tablestorage/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-cassandra.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-cassandra.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-cassandra.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-cassandra.md index f010aa401..e7d267dda 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-cassandra.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-cassandra.md @@ -3,6 +3,8 @@ type: docs title: "Cassandra" linkTitle: "Cassandra" description: Detailed information on the Cassandra state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-cassandra/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-cloudstate.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-cloudstate.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-cloudstate.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-cloudstate.md index 7f56bf636..a246a7859 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-cloudstate.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-cloudstate.md @@ -3,6 +3,8 @@ type: docs title: "Cloudstate" linkTitle: "Cloudstate" description: Detailed information on the Cloudstate state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-cloudstate/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-consul.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-consul.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-consul.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-consul.md index 7ef6b9d6f..6f3511391 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-consul.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-consul.md @@ -3,6 +3,8 @@ type: docs title: "HashiCorp Consul" linkTitle: "HashiCorp Consul" description: Detailed information on the HashiCorp Consul state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-consul/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-couchbase.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-couchbase.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-couchbase.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-couchbase.md index 489744403..170ac7c33 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-couchbase.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-couchbase.md @@ -3,6 +3,8 @@ type: docs title: "Couchbase" linkTitle: "Couchbase" description: Detailed information on the Couchbase state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-couchbase/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-dynamodb.md similarity index 90% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-dynamodb.md index 77761e65f..3aa120d6a 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-dynamodb.md @@ -3,11 +3,13 @@ type: docs title: "AWS DynamoDB" linkTitle: "AWS DynamoDB" description: Detailed information on the AWS DynamoDB state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-dynamodb/" --- ## Component format -To setup a DynamoDB state store create a component of type `state.dynamodb`. See [this guide]({{< ref "howto-get-save-state.md#step-1-setup-a-state-store" >}}) on how to create and apply a state store configuration. +To setup a DynamoDB state store create a component of type `state.aws.dynamodb`. See [this guide]({{< ref "howto-get-save-state.md#step-1-setup-a-state-store" >}}) on how to create and apply a state store configuration. ```yaml apiVersion: dapr.io/v1alpha1 @@ -16,7 +18,7 @@ metadata: name: namespace: spec: - type: state.dynamodb + type: state.aws.dynamodb version: v1 metadata: - name: table diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-firestore.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-firestore.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-firestore.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-firestore.md index de42cc4f1..9898b5c39 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-firestore.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-firestore.md @@ -3,6 +3,8 @@ type: docs title: "GCP Firestore (Datastore mode)" linkTitle: "GCP Firestore" description: Detailed information on the GCP Firestore state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-firestore/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-hazelcast.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-hazelcast.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-hazelcast.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-hazelcast.md index 742f2e1e3..6d02e8131 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-hazelcast.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-hazelcast.md @@ -3,6 +3,8 @@ type: docs title: "Hazelcast" linkTitle: "Hazelcast" description: Detailed information on the Hazelcast state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-hazelcast/" --- ## Create a Dapr component diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-memcached.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-memcached.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-memcached.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-memcached.md index 109bec178..d2df204d5 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-memcached.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-memcached.md @@ -3,6 +3,8 @@ type: docs title: "Memcached" linkTitle: "Memcached" description: Detailed information on the Memcached state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-memcached/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mongodb.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-mongodb.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mongodb.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-mongodb.md index d0d48d46f..9184b166d 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mongodb.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-mongodb.md @@ -3,6 +3,8 @@ type: docs title: "MongoDB" linkTitle: "MongoDB" description: Detailed information on the MongoDB state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-mongodb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mysql.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-mysql.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mysql.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-mysql.md index 434a7bf8f..c5986ded2 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mysql.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-mysql.md @@ -3,6 +3,8 @@ type: docs title: "MySQL" linkTitle: "MySQL" description: Detailed information on the MySQL state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-mysql/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-postgresql.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-postgresql.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-postgresql.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-postgresql.md index adc4c789e..3bc0c1fc4 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-postgresql.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-postgresql.md @@ -3,6 +3,8 @@ type: docs title: "PostgreSQL" linkTitle: "PostgreSQL" description: Detailed information on the PostgreSQL state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-postgresql/" --- ## Create a Dapr component diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-redis.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-redis.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-redis.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-redis.md index bfdd6f94a..55cb0d114 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-redis.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-redis.md @@ -3,6 +3,8 @@ type: docs title: "Redis" linkTitle: "Redis" description: Detailed information on the Redis state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-redis/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-rethinkdb.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-rethinkdb.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-rethinkdb.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-rethinkdb.md index 57f08508b..8302dc3fa 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-rethinkdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-rethinkdb.md @@ -3,6 +3,8 @@ type: docs title: "RethinkDB" linkTitle: "RethinkDB" description: Detailed information on the RethinkDB state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-rethinkdb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-sqlserver.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-sqlserver.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-sqlserver.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-sqlserver.md index 01faf8555..bf0c52c0c 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-sqlserver.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-sqlserver.md @@ -3,6 +3,8 @@ type: docs title: "SQL Server" linkTitle: "SQL Server" description: Detailed information on the SQL Server state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-sqlserver/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-zookeeper.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-zookeeper.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-zookeeper.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-zookeeper.md index aaee44354..91107848a 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-zookeeper.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-zookeeper.md @@ -3,6 +3,8 @@ type: docs title: "Zookeeper" linkTitle: "Zookeeper" description: Detailed information on the Zookeeper state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-zookeeper/" --- ## Component format diff --git a/daprdocs/layouts/partials/version-banner.html b/daprdocs/layouts/partials/version-banner.html new file mode 100644 index 000000000..0436da130 --- /dev/null +++ b/daprdocs/layouts/partials/version-banner.html @@ -0,0 +1,15 @@ + + {{ if .Site.Params.archived_version }} + {{ $color := "primary" }} + {{ $latest_version := .Site.Params.url_latest_version }} + {{ $current_version := .Site.Params.version }} +
+ {{ with $current_version }}

The documentation you are viewing is for Dapr {{ . | markdownify }} + which is an older version of Dapr. + {{ with $latest_version }}For up-to-date documentation, see the + latest version.

+ {{ end }} + {{ end }} +
+{{ end }} diff --git a/daprdocs/layouts/shortcodes/button.html b/daprdocs/layouts/shortcodes/button.html new file mode 100644 index 000000000..5ab0ddc9b --- /dev/null +++ b/daprdocs/layouts/shortcodes/button.html @@ -0,0 +1,8 @@ +{{ $color := .Get "color" | default "primary" }} +{{ $page := .Get "page" }} +{{ $link := .Get "link" | default "#" }} +{{ $text := .Get "text" }} + +{{- if $page -}}{{- $link = ref . $page -}}{{- end -}} + +{{ $text }} diff --git a/daprdocs/package-lock.json b/daprdocs/package-lock.json index f31aedfcc..8caa8959e 100644 --- a/daprdocs/package-lock.json +++ b/daprdocs/package-lock.json @@ -918,9 +918,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yargs": { diff --git a/daprdocs/static/images/service-mesh.png b/daprdocs/static/images/service-mesh.png new file mode 100644 index 000000000..f9dd4eb41 Binary files /dev/null and b/daprdocs/static/images/service-mesh.png differ diff --git a/sdkdocs/dotnet b/sdkdocs/dotnet index 5f5326b83..fadb6c265 160000 --- a/sdkdocs/dotnet +++ b/sdkdocs/dotnet @@ -1 +1 @@ -Subproject commit 5f5326b83fa52fe1965f60f2161eb18b2940cc10 +Subproject commit fadb6c2654255864438c387a1a2b862eaf3af240 diff --git a/translations/docs-zh b/translations/docs-zh index e26148b86..e86abb5f4 160000 --- a/translations/docs-zh +++ b/translations/docs-zh @@ -1 +1 @@ -Subproject commit e26148b866552f94a148c5ad6fe81e066775b804 +Subproject commit e86abb5f4cecb77fb9e08ca9dd02832e312b04a8