components-contrib/bindings
Alessandro (Ale) Segala 899f4407dd
[Metadata] Clarify that MySQL components work with MariaDB too (#2866)
2023-05-26 15:19:40 -07:00
..
alicloud Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
apns Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
aws AWS S3 Bindings Certification Tests (#2536) 2023-04-27 22:17:01 +00:00
azure Add component metadata YAML for Azure Event Grid input/output binding. (#2783) 2023-04-24 09:58:37 -07:00
cloudflare/queues Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
commercetools Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
cron Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
dubbo Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
gcp Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
graphql Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
http Tls renegotiation (#2822) 2023-05-01 11:39:18 -07:00
huawei/obs Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
influx Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
kafka Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
kitex Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
kubemq Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
kubernetes Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
localstorage Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
mqtt3 Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
mysql [Metadata] Clarify that MySQL components work with MariaDB too (#2866) 2023-05-26 15:19:40 -07:00
nacos Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
postgres Add component metadata YAML for Postgres binding (#2802) 2023-04-24 09:53:57 -07:00
postmark Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
rabbitmq RabbitMQ Bindings: Support for mTLS and external authentication with SASL (#2656) 2023-05-03 22:07:50 +00:00
redis Makes Redis7 (v9 client) match the Redis6 (v8 client) behavior (#2833) 2023-05-11 14:43:56 -07:00
rethinkdb/statechange Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
rocketmq Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
smtp Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
twilio Add dynamic template support to Twilio Sendgrid binding (#2844) 2023-05-17 15:04:24 +00:00
wasm Changes wasm middleware and output binding config to url instead of path (#2817) 2023-05-02 00:48:01 +00:00
zeebe Remove native/transactional BulkSet/BulkDelete from state stores (#2834) 2023-05-17 14:56:34 -07:00
README.md middleware: changes wasm basic to use waPC (#1833) 2022-09-13 17:12:59 -07:00
bindings.go Components' init functions should return interfaces (#1997) 2022-08-25 18:27:45 -07:00
input_binding.go Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
metadata.go Define common metadata across components (#1994) 2022-08-25 10:10:53 -07:00
output_binding.go Refactor of Metadata parsing in Bindings (#2720) 2023-04-05 22:19:08 +00:00
requests.go update license to Apache v2.0 (#1406) 2022-01-04 19:53:31 -08:00
responses.go Added ContentType to pubsub/binding/state request-response (#1376) 2022-01-28 10:17:04 -08:00

README.md

Bindings

Bindings provide a common way to trigger an application with events from external systems, or invoke an external system with optional data payloads. Bindings are great for event-driven, on-demand compute and help reduce boilerplate code.

To get started with bindings visit the How To Guide.

To view all the currently supported bindings visit: Dapr bindings.

For detailed binding specs visit Dapr binding specs.

Implementing a new binding

A compliant binding needs to implement at least one interface, depending on the type of binding (Input, Output, or both):

Input binding implement the InputBinding interface defined in input_binding.go

Output binding implement the OutputBinding interface defined in output_binding.go

An output binding can be used to invoke an external system and also to return data from it. Each output binding can decide which operations it supports. This information is communicated to the caller via the Operations() method.

When creating an Output Binding, a list of OperationKind items needs to be returned. For example, if running a component that takes in a SQL query and returns a result set, the OperationKind can be query.

While components are not restricted to a list of supported operations, it's best to use common ones if the operation kind falls under that operation definition. The list of common operations can be found in requests.go.

After implementing a binding, the specification docs need to be updated via a Pull Request: Dapr docs.