components-contrib/pubsub/rabbitmq/metadata.yaml

196 lines
6.2 KiB
YAML

# yaml-language-server: $schema=../../component-metadata-schema.json
schemaVersion: v1
type: pubsub
name: rabbitmq
version: v1
status: stable
title: "RabbitMQ"
urls:
- title: Reference
url: https://docs.dapr.io/reference/components-reference/supported-pubsub/setup-rabbitmq/
capabilities:
- ttl
authenticationProfiles:
- title: "Connection string"
description: "Authenticate using a connection string."
metadata:
- name: connectionString
required: true
sensitive: true
description: "The RabbitMQ host address."
example: '"amqp://[username][:password]@host.domain[:port]" "amqps://[username][:password]@host.domain[:port]"'
- title: "Authenticate Using RabbitMQ properties"
description: "RabbitMQ authentication by providing hostname, username and password."
metadata:
- name: hostname
type: string
description: |
The RabbitMQ hostname.
example: '"localhost"'
- name: protocol
description: |
The RabbitMQ protocol.
type: string
example: '"amqp", "amqps"'
- name: username
type: string
description: |
The RabbitMQ username.
example: '"username"'
- name: password
type: string
sensitive: true
description: |
The RabbitMQ password.
example: '"password"'
- title: "Authenticate Using Connection string and External Sasl and TLS"
description: "Authenticate using a connection string along with Exteranl Sasl and TLS."
metadata:
- name: connectionString
required: true
sensitive: true
description: "The RabbitMQ host address."
example: '"amqp://[username][:password]@host.domain[:port]" "amqps://[username][:password]@host.domain[:port]"'
- name: caCert
type: string
required: true
description: |
Certificate authority certificate, required for using TLS.
example: "-----BEGIN CERTIFICATE-----\n<base64-encoded DER>\n-----END CERTIFICATE-----"
- name: clientCert
type: string
required: true
sensitive: true
description: |
Client certificate, Required for using TLS.
example: "-----BEGIN CERTIFICATE-----\n<base64-encoded DER>\n-----END CERTIFICATE-----"
- name: clientKey
type: string
required: true
sensitive: true
description: |
Client key, required for using TLS.
example: "-----BEGIN RSA PRIVATE KEY-----\n<base64-encoded DER>\n-----END RSA PRIVATE KEY-----"
- name: saslExternal
type: bool
description: |
With TLS, should the username be taken
from an additional field (e.g. CN.)
See RabbitMQ Authentication Mechanisms.
url:
title: "RabbitMQ Authentication Mechanisms"
url: "https://www.rabbitmq.com/access-control.html#mechanisms"
default: '"false"'
example: '"true"'
metadata:
- name: durable
type: bool
description: |
Whether or not to use durable queues.
default: '"false"'
example: '"true", "false"'
- name: publisherConfirm
type: bool
description: |
If enabled, client waits for publisher confirmation after publishing
a message.
default: '"false"'
example: '"true", "false"'
- name: maxLen
type: number
description: |
The maximum number of messages of a queue and its dead letter queue
(if dead letter enabled by `enableDeadLetter`). If both `maxLen` and `maxLenBytes` are set then
both will apply; whichever limit is hit first will be enforced.
example: '1000'
- name: maxLenBytes
type: number
description: |
Maximum length in bytes of a queue and its dead letter queue (if dead
letter enabled by `enableDeadLetter`). If both `maxLen` and `maxLenBytes` are set then both will
apply; whichever limit is hit first will be enforced.
example: '1048576'
- name: concurrency
type: string
description: |
Allows processing multiple messages in
parallel (limited by the app-max-concurrency annotation, if configured).
Set to single to disable parallel processing. In most situations there's
no reason to change this.
example: '"parallel", "single"'
default: '"parallel"'
allowedValues:
- "parallel"
- "single"
- name: enableDeadLetter
type: bool
description: |
Enable forwarding messages that cannot be handled to a dead-letter
topic.
default: '"false"'
example: '"true", "false"'
- name: prefetchCount
type: number
description: |
Number of messages to prefetch. Consider changing this to a non-zero
value for production environments. The value of "0" means that
all available messages will be pre-fetched.
default: '0'
example: '2'
- name: exchangeKind
type: string
description: |
Exchange kind of the rabbitmq exchange.
default: '"fanout"'
allowedValues:
- "fanout"
- "topic"
example: '"fanout","topic"'
- name: deliveryMode
type: number
description: |
Persistence mode when publishing messages.
RabbitMQ treats "2" as persistent, all other numbers as non-persistent.
default: '0'
example: '2'
- name: autoAck
type: bool
description: |
Whether or not the queue consumer should auto-ack messages.
default: '"false"'
example: '"true", "false"'
- name: deletedWhenUnused
type: bool
description: |
Whether or not the queue should be configured to auto-delete.
default: '"true"'
example: '"true", "false"'
- name: requeueInFailure
description: |
Whether or not to requeue when sending a negative acknowledgement
in case of a failure.
type: bool
default: '"false"'
example: '"true", "false"'
- name: reconnectWaitSeconds
description: |
Reconnect wait in Seconds.
type: duration
default: '"3s"'
example: '"10s"'
- name: ttlInSeconds
description: |
Default Queue TTL.
type: duration
example: '"10"'
- name: clientName
type: string
description:
The client/connection name.
example: '"my_client_name"'
- name: heartBeat
type: duration
description:
The heartbeat used for the connection.
default: '"10s"'
example: '"30s"'