components-contrib/bindings
Joni Collinge 382f84f30c
Add support for Azure Service Bus sessions for topics (#2346)
* WIP: ASB sessions

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* WIP: Support ASB sessions

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Add metadata

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* remove dead code

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* lint

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Add sessionIdleTimeoutInSec md

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Support blank session IDs

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* If require sessions and no session id, set blank

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* move session config to per subscription metadata

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* add some unit tests

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* lint

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* remove auto blank session id

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* go mod tidy

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* add basic cert test

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* update comment

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* remove dead code

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* remove dead code

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Update certification test

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Add comment

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Add cert test for roundrobin

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* go mod tidy

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Update readme

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Use struct for NewSubscription to simplify parameters

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Address feedback

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Address feedback

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Only async receive

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* isTruthy on map without check

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Use if not select for context check

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* Feedback

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

* lint

Signed-off-by: Joni Collinge <jonathancollinge@live.com>

Signed-off-by: Joni Collinge <jonathancollinge@live.com>
Signed-off-by: Bernd Verst <4535280+berndverst@users.noreply.github.com>
Co-authored-by: Yaron Schneider <schneider.yaron@live.com>
Co-authored-by: Bernd Verst <4535280+berndverst@users.noreply.github.com>
Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com>
2023-01-06 09:59:26 -08:00
..
alicloud Upgrade linter and fix linter issues 2022-11-11 13:19:57 -08:00
apns Components' init functions should return interfaces (#1997) 2022-08-25 18:27:45 -07:00
aws Add AWS S3 standalone presign operation (#2138) 2022-09-28 16:01:30 -07:00
azure Add support for Azure Service Bus sessions for topics (#2346) 2023-01-06 09:59:26 -08:00
cloudflare/queues Configurable timeouts 2022-12-19 17:46:54 +00:00
commercetools update commercetools to v1.1.0 2022-10-11 14:55:15 -07:00
cron fix flaky tests (#2338) 2022-12-03 13:59:42 -08:00
gcp Upgrade linter and fix linter issues 2022-11-11 13:19:57 -08:00
graphql Components' init functions should return interfaces (#1997) 2022-08-25 18:27:45 -07:00
http Fix naming to make ci-linter happy 2022-11-29 14:56:06 -08:00
huawei/obs Use standardized metadata parser 2022-09-12 18:50:05 -07:00
influx Use standardized metadata parser 2022-09-12 18:50:05 -07:00
kafka feature: add context to lock&pubsub API 2022-12-14 19:37:24 +08:00
kubemq update for gofumpt 2022-11-11 23:41:09 +02:00
kubernetes Go 1.19 support and linter fixes (#1975) 2022-08-18 00:45:23 -07:00
localstorage Use standardized metadata parser 2022-09-12 18:50:05 -07:00
mqtt Components' init functions should return interfaces (#1997) 2022-08-25 18:27:45 -07:00
mysql Updated depguard linter config (#2245) 2022-11-03 22:19:21 -07:00
postgres upgrade to v5 of jackc/pgx 2022-10-10 15:08:07 -07:00
postmark Update many libraries again 2022-11-01 16:00:27 -07:00
rabbitmq Misc refactorings 2022-11-17 16:29:29 +00:00
redis Add support for Redis 7 in all Dapr Components (#2228) 2022-12-16 14:12:11 -08:00
rethinkdb/statechange Upgrade linter and fix linter issues 2022-11-11 13:19:57 -08:00
smtp Components' init functions should return interfaces (#1997) 2022-08-25 18:27:45 -07:00
twilio Components' init functions should return interfaces (#1997) 2022-08-25 18:27:45 -07:00
twitter pin latest dapr 2022-12-13 17:10:10 -08:00
zeebe revert zeebe duration type 2022-09-12 18:57:13 -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 Go 1.19 support and linter fixes (#1975) 2022-08-18 00:45:23 -07:00
metadata.go Define common metadata across components (#1994) 2022-08-25 10:10:53 -07:00
output_binding.go Go 1.19 support and linter fixes (#1975) 2022-08-18 00:45:23 -07: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.