components-contrib/bindings
Sam 1e295a7056
fix: make sure region field is required on other components (#3625)
Signed-off-by: Samantha Coyle <sam@diagrid.io>
2024-12-06 14:00:34 -08:00
..
alicloud Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
apns Interfaces: Update all component interfaces to implement io.Closer (#3542) 2024-09-19 08:53:22 -07:00
aws feat(kafka): iam roles anywhere + assume role auth profiles (#3606) 2024-11-27 14:48:18 -08:00
azure Enable eventhubs binding to read all message properties (#3615) 2024-11-26 11:50:50 -08:00
cloudflare/queues Chore: use a single package for all Feature structs (#3278) 2024-01-08 09:07:10 -08:00
commercetools Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
cron Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
dubbo Interfaces: Update all component interfaces to implement io.Closer (#3542) 2024-09-19 08:53:22 -07:00
gcp Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
graphql Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
http http binding fix nilpointer (#3536) 2024-10-25 16:43:22 -07:00
huawei/obs Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
influx Switch to Go 1.21, Updates linter, updates workflows, adds sarama 1.42.1 (#3251) 2023-11-28 18:13:09 -08:00
kafka fix: make sure region field is required on other components (#3625) 2024-12-06 14:00:34 -08:00
kitex Interfaces: Update all component interfaces to implement io.Closer (#3542) 2024-09-19 08:53:22 -07:00
kubemq Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
kubernetes Switch to Go 1.21, Updates linter, updates workflows, adds sarama 1.42.1 (#3251) 2023-11-28 18:13:09 -08:00
localstorage Interfaces: Update all component interfaces to implement io.Closer (#3542) 2024-09-19 08:53:22 -07:00
mqtt3 Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
mysql Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
postgres fix: make sure region field is required on other components (#3625) 2024-12-06 14:00:34 -08:00
postmark Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
rabbitmq Metadata TryGetTTL: adds time.ParseDuration support (#3122) 2024-01-16 10:15:55 -08:00
redis Adds EntraID auth support to all Redis Components (#3470) 2024-07-01 17:20:29 -07:00
rethinkdb/statechange Switch to Go 1.21, Updates linter, updates workflows, adds sarama 1.42.1 (#3251) 2023-11-28 18:13:09 -08:00
rocketmq Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
sftp sftp binding component (#3505) 2024-10-25 16:56:14 -07:00
smtp Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
twilio Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
wasm Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
zeebe Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -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 Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
metadata.go Define common metadata across components (#1994) 2022-08-25 10:10:53 -07:00
output_binding.go Merge 1.14 into master (#3579) 2024-10-24 16:52:48 -07:00
requests.go
responses.go

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.