mirror of https://github.com/dapr/docs.git
				
				
				
			Merge branch 'v1.3' into v1.3
This commit is contained in:
		
						commit
						2b6c3fa34d
					
				| 
						 | 
				
			
			@ -32,6 +32,15 @@ Deploying and running a Dapr enabled application into your Kubernetes cluster is
 | 
			
		|||
    dapr.io/config: "tracing"
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Pulling container images from private registries
 | 
			
		||||
 | 
			
		||||
Dapr works seamlessly with any user application container image, regardless of its origin. Simply init Dapr and add the [Dapr annotations]({{< ref kubernetes-annotations >}}) to your Kubernetes definition to add the Dapr sidecar.
 | 
			
		||||
 | 
			
		||||
The Dapr control-plane and sidecar images come from the [daprio Docker Hub](https://hub.docker.com/u/daprio) container registry, which is a public registry.
 | 
			
		||||
 | 
			
		||||
For information about pulling your application images from a private registry, reference the [Kubernetes documentation](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/). If you are using Azure Container Registry with Azure Kubernetes Service, reference the [AKS documentation](https://docs.microsoft.com/en-us/azure/aks/cluster-container-registry-integration).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Quickstart
 | 
			
		||||
 | 
			
		||||
You can see some examples [here](https://github.com/dapr/quickstarts/tree/master/hello-kubernetes) in the Kubernetes getting started quickstart.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,7 @@ Table captions:
 | 
			
		|||
|------|:----------------:|:-----------------:|--------|-------- | ---------|
 | 
			
		||||
| [Apple Push Notifications (APN)]({{< ref apns.md >}}) |  | ✅ | Alpha | v1 | 1.0 |
 | 
			
		||||
| [Cron (Scheduler)]({{< ref cron.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 |
 | 
			
		||||
| [GraphQL]({{< ref graghql.md >}})           |    | ✅ | Alpha | v1 | 1.0 |
 | 
			
		||||
| [HTTP]({{< ref http.md >}})           |    | ✅ | GA | v1 | 1.0 |
 | 
			
		||||
| [InfluxDB]({{< ref influxdb.md >}})       |    | ✅ | Alpha | v1 | 1.0 |
 | 
			
		||||
| [Kafka]({{< ref kafka.md >}})         | ✅ | ✅ | Alpha | v1 | 1.0 |
 | 
			
		||||
| 
						 | 
				
			
			@ -84,4 +85,4 @@ Table captions:
 | 
			
		|||
| Name | Input<br>Binding | Output<br>Binding | Status | Component version | Since | 
 | 
			
		||||
|------|:----------------:|:-----------------:|--------| --------- | ---------- |
 | 
			
		||||
| [Zeebe Command]({{< ref zeebe-command.md >}})            |    | ✅ | Alpha | v1 | 1.2 |
 | 
			
		||||
| [Zeebe Job Worker]({{< ref zeebe-jobworker.md >}})       | ✅ |    | Alpha | v1 | 1.2 |
 | 
			
		||||
| [Zeebe Job Worker]({{< ref zeebe-jobworker.md >}})       | ✅ |    | Alpha | v1 | 1.2 |
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,6 +58,40 @@ This component supports **output binding** with the following operations:
 | 
			
		|||
 | 
			
		||||
- `create`
 | 
			
		||||
 | 
			
		||||
## Input Binding to Azure IoT Hub Events
 | 
			
		||||
 | 
			
		||||
Azure IoT Hub provides an [endpoint that is compatible with Event Hubs](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-read-builtin#read-from-the-built-in-endpoint), so Dapr apps can create input bindings to read Azure IoT Hub events using the Event Hubs bindings component.
 | 
			
		||||
 | 
			
		||||
The device-to-cloud events created by Azure IoT Hub devices will contain additional [IoT Hub System Properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-construct#system-properties-of-d2c-iot-hub-messages), and the Azure Event Hubs binding for Dapr will return the following as part of the response metadata:
 | 
			
		||||
 | 
			
		||||
| System Property Name | Description |
 | 
			
		||||
|--------------------|:--------|
 | 
			
		||||
| `iothub-connection-auth-generation-id` | The **connectionDeviceGenerationId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). |
 | 
			
		||||
| `iothub-connection-auth-method` | The authentication method used to authenticate the device that sent the message. |
 | 
			
		||||
| `iothub-connection-device-id` | The **deviceId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). |
 | 
			
		||||
| `iothub-connection-module-id` | The **moduleId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). |
 | 
			
		||||
| `iothub-enqueuedtime` | The date and time in RFC3339 format that the device-to-cloud message was received by IoT Hub. |
 | 
			
		||||
 | 
			
		||||
For example, the headers of a HTTP `Read()` response would contain:
 | 
			
		||||
 | 
			
		||||
```nodejs
 | 
			
		||||
{
 | 
			
		||||
  'user-agent': 'fasthttp',
 | 
			
		||||
  'host': '127.0.0.1:3000',
 | 
			
		||||
  'content-type': 'application/json',
 | 
			
		||||
  'content-length': '120',
 | 
			
		||||
  'iothub-connection-device-id': 'my-test-device',
 | 
			
		||||
  'iothub-connection-auth-generation-id': '637618061680407492',
 | 
			
		||||
  'iothub-connection-auth-method': '{"scope":"module","type":"sas","issuer":"iothub","acceptingIpFilterRule":null}',
 | 
			
		||||
  'iothub-connection-module-id': 'my-test-module-a',
 | 
			
		||||
  'iothub-enqueuedtime': '2021-07-13T22:08:09Z',
 | 
			
		||||
  'x-opt-sequence-number': '35',
 | 
			
		||||
  'x-opt-enqueued-time': '2021-07-13T22:08:09Z',
 | 
			
		||||
  'x-opt-offset': '21560',
 | 
			
		||||
  'traceparent': '00-4655608164bc48b985b42d39865f3834-ed6cf3697c86e7bd-01'
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Related links
 | 
			
		||||
 | 
			
		||||
- [Basic schema for a Dapr component]({{< ref component-schema >}})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,74 @@
 | 
			
		|||
---
 | 
			
		||||
type: docs
 | 
			
		||||
title: "GraphQL binding spec"
 | 
			
		||||
linkTitle: "GraphQL"
 | 
			
		||||
description: "Detailed documentation on the GraphQL binding component"
 | 
			
		||||
aliases:
 | 
			
		||||
  - "/operations/components/setup-bindings/supported-bindings/graphql/"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## Component format
 | 
			
		||||
 | 
			
		||||
To setup GraphQL binding create a component of type `bindings.graphql`. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a binding configuration. To separate normal config settings (e.g. endpoint) from headers, "header:" is used a prefix on the header names.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
apiVersion: dapr.io/v1alpha1
 | 
			
		||||
kind: Component
 | 
			
		||||
metadata:
 | 
			
		||||
  name: example.bindings.graphql
 | 
			
		||||
spec:
 | 
			
		||||
  type: bindings.graphql
 | 
			
		||||
  version: v1
 | 
			
		||||
  metadata:
 | 
			
		||||
    - name: endpoint
 | 
			
		||||
      value:  http://localhost:8080/v1/graphql     
 | 
			
		||||
    - name: header:x-hasura-access-key
 | 
			
		||||
      value: adminkey
 | 
			
		||||
    - name: header:Cache-Control
 | 
			
		||||
      value: no-cache
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
{{% alert title="Warning" color="warning" %}}
 | 
			
		||||
The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here]({{< ref component-secrets.md >}}).
 | 
			
		||||
{{% /alert %}}
 | 
			
		||||
 | 
			
		||||
## Spec metadata fields
 | 
			
		||||
 | 
			
		||||
| Field              | Required | Binding support |  Details | Example |
 | 
			
		||||
|--------------------|:--------:|------------|-----|---------|
 | 
			
		||||
| endpoint | Y | Output | GraphQL endpoint string See [here](#url-format) for more details | `"http://localhost:4000/graphql/graphql"` |
 | 
			
		||||
| header:[HEADERKEY] | N | Output | GraphQL header. Specify the header key in the `name`, and the header value in the `value`. | `"no-cache"` (see above) |
 | 
			
		||||
 | 
			
		||||
### Endpoint and Header format
 | 
			
		||||
 | 
			
		||||
The GraphQL binding uses [GraphQL client](https://github.com/machinebox/graphql) internally.
 | 
			
		||||
 | 
			
		||||
## Binding support
 | 
			
		||||
 | 
			
		||||
This component supports **output binding** with the following operations:
 | 
			
		||||
 | 
			
		||||
- `query`
 | 
			
		||||
- `mutation`
 | 
			
		||||
 | 
			
		||||
### query
 | 
			
		||||
 | 
			
		||||
The `query` operation is used for `query` statements, which returns the metadata along with data in a form of an array of row values.
 | 
			
		||||
 | 
			
		||||
**Request**
 | 
			
		||||
 | 
			
		||||
```golang
 | 
			
		||||
in := &dapr.InvokeBindingRequest{
 | 
			
		||||
Name:      "example.bindings.graphql",
 | 
			
		||||
Operation: "query",
 | 
			
		||||
Metadata: map[string]string{ "query": `query { users { name } }`},
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 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 >}})
 | 
			
		||||
| 
						 | 
				
			
			@ -58,6 +58,40 @@ For example, a Dapr app running on Kubernetes with `dapr.io/app-id: "myapp"` wil
 | 
			
		|||
 | 
			
		||||
Note: Dapr passes the name of the Consumer group to the EventHub and so this is not supplied in the metadata.
 | 
			
		||||
 | 
			
		||||
## Subscribing to Azure IoT Hub Events
 | 
			
		||||
 | 
			
		||||
Azure IoT Hub provides an [endpoint that is compatible with Event Hubs](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-read-builtin#read-from-the-built-in-endpoint), so the Azure Event Hubs pubsub component can also be used to subscribe to Azure IoT Hub events.
 | 
			
		||||
 | 
			
		||||
The device-to-cloud events created by Azure IoT Hub devices will contain additional [IoT Hub System Properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-construct#system-properties-of-d2c-iot-hub-messages), and the Azure Event Hubs pubsub component for Dapr will return the following as part of the response metadata:
 | 
			
		||||
 | 
			
		||||
| System Property Name | Description |
 | 
			
		||||
|--------------------|:--------|
 | 
			
		||||
| `iothub-connection-auth-generation-id` | The **connectionDeviceGenerationId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). |
 | 
			
		||||
| `iothub-connection-auth-method` | The authentication method used to authenticate the device that sent the message. |
 | 
			
		||||
| `iothub-connection-device-id` | The **deviceId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). |
 | 
			
		||||
| `iothub-connection-module-id` | The **moduleId** of the device that sent the message. See [IoT Hub device identity properties](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-identity-registry#device-identity-properties). |
 | 
			
		||||
| `iothub-enqueuedtime` | The date and time in RFC3339 format that the device-to-cloud message was received by IoT Hub. |
 | 
			
		||||
 | 
			
		||||
For example, the headers of a delivered HTTP subscription message would contain:
 | 
			
		||||
 | 
			
		||||
```nodejs
 | 
			
		||||
{
 | 
			
		||||
  'user-agent': 'fasthttp',
 | 
			
		||||
  'host': '127.0.0.1:3000',
 | 
			
		||||
  'content-type': 'application/json',
 | 
			
		||||
  'content-length': '120',
 | 
			
		||||
  'iothub-connection-device-id': 'my-test-device',
 | 
			
		||||
  'iothub-connection-auth-generation-id': '637618061680407492',
 | 
			
		||||
  'iothub-connection-auth-method': '{"scope":"module","type":"sas","issuer":"iothub","acceptingIpFilterRule":null}',
 | 
			
		||||
  'iothub-connection-module-id': 'my-test-module-a',
 | 
			
		||||
  'iothub-enqueuedtime': '2021-07-13T22:08:09Z',
 | 
			
		||||
  'x-opt-sequence-number': '35',
 | 
			
		||||
  'x-opt-enqueued-time': '2021-07-13T22:08:09Z',
 | 
			
		||||
  'x-opt-offset': '21560',
 | 
			
		||||
  'traceparent': '00-4655608164bc48b985b42d39865f3834-ed6cf3697c86e7bd-01'
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue