components-contrib/pubsub/pulsar/metadata.yaml

179 lines
6.3 KiB
YAML

# yaml-language-server: $schema=../../component-metadata-schema.json
schemaVersion: v1
type: pubsub
name: pulsar
version: v1
status: stable
title: "Apache Pulsar"
urls:
- title: Reference
url: https://docs.dapr.io/reference/components-reference/supported-pubsub/setup-pulsar/
authenticationProfiles:
- title: "Shared token"
description: "Authenticate using a shared token"
metadata:
- name: token
description: "Shared JWT token for authentication"
type: string
sensitive: true
url:
title: "JWT Token Authentication"
url: "https://pulsar.apache.org/docs/3.0.x/security-jwt/#generate-tokens"
- title: "OAuth2"
description: "Authenticate using OAuth2 or OpenID Connect"
metadata:
- name: oauth2Audiences
type: string
description: |
The OAuth 2.0 "resource server" identifier for a Pulsar cluster.
- name: oauth2ClientSecret
type: string
sensitive: true
description: |
The OAuth Client Secret.
- name: oauth2TokenCAPEM
type: string
description: |
The OAuth Token Certificate Authority PEM.
- name: oauth2ClientID
type: string
description: |
The OAuth Client ID.
- name: oauth2TokenURL
type: string
description: |
The OAuth Client URL.
- name: oauth2Scopes
type: string
description: |
The scope of an access request. For more information, see Access Token Scope.
url:
title: "Access Token Scope"
url: "https://datatracker.ietf.org/doc/html/rfc6749#section-3.3"
metadata:
- name: host
type: string
required: true
sensitive: true
description: "Address of the Pulsar broker."
example: |
"localhost:6650", "http://pulsar-pj54qwwdpz4b-pulsar.ap-sg.public.pulsar.com:8080"
- name: consumerID
type: string
description: "Used to set the subscription name or consumer ID."
example: '"channel1"'
- name: namespace
description: |
The administrative unit of the topic, which acts as a grouping mechanism for related topics.
type: string
default: '"default"'
example: '"default"'
- name: enableTLS
type: bool
description: |
Enable TLS.
default: 'false'
example: '"true", "false"'
- name: tenant
description: |
The topic tenant within the instance. Tenants are essential to multi-tenancy in Pulsar, and spread
across clusters.
type: string
default: '"public"'
example: '"public"'
- name: disableBatching
type: bool
description: |
When enabled, the producer will send messages in a batch.
default: 'false'
example: '"true", "false"'
- name: batchingMaxPublishDelay
type: duration
description: |
If batching is enabled, this sets the time window within messages are batched.
If set to a non-zero value, messages will be queued until this time interval has passed, or the batchingMaxMessages or batchingMaxSize conditions have been met.
default: '"10ms"'
example: '"10ms"'
- name: batchingMaxMessages
type: number
description: |
Sets the maximum number of messages permitted in a batch.
If set to a value greater than 1, messages will be queued until this threshold is reached, batchingMaxSize has been reached, or the batch interval has elapsed.
default: '"1000"'
example: '"1000"'
- name: batchingMaxSize
description: |
Sets the maximum number of bytes permitted in a batch
If set to a value greater than 1, messages will be queued until this threshold is reached, batchingMaxMessages has been reached, or the batch interval has elapsed.
type: number
default: '"131072" (128 KB)'
example: '"131072"'
- name: publicKey
type: string
description: |
A public key to be used for publisher and consumer encryption. Value can be one of two options:
file path for a local PEM cert, or the cert data string value.
example: |
"-----BEGIN PUBLIC KEY-----\n<base64-encoded DER>\n-----END PUBLIC KEY-----" or "/path/to/key.pem"
- name: privateKey
type: string
description: |
A private key to be used for consumer encryption. Value can be one of two options: file path for
a local PEM cert, or the cert data string value.
example: |
"-----BEGIN PRIVATE KEY-----\n<base64-encoded DER>\n-----END PRIVATE KEY-----" or "/path/to/key.pem"
- name: keys
type: string
description: |
A comma delimited string containing names of Pulsar session keys. Used in conjunction with publicKey
for publisher encryption.
- name: persistent
type: bool
description: |
Pulsar supports two kinds of topics: persistent and non-persistent.
With persistent topics, all messages are durably persisted on disks (if the broker is not standalone, messages are durably persisted on multiple disks), whereas data for non-persistent topics is not persisted to storage disks.
url:
title: "Pulsar Persistent Storage"
url: "https://pulsar.apache.org/docs/3.0.x/concepts-architecture-overview/#persistent-storage"
default: '"true"'
example: '"true", "false"'
- name: redeliveryDelay
type: duration
description: |
Specifies the delay after which to redeliver the messages that failed to be processed.
default: '"30s"'
example: '"30s"'
- name: "<topic-name>.avroschema"
type: string
description: |
Enforces Avro schema validation for the configured topic. The value is a string containing a JSON object.
example: |
{
"type": "record",
"name": "Example",
"namespace": "test",
"fields": [
{"name": "ID","type": "int"},
{"name": "Name","type": "string"}
]
}
- name: "<topic-name>.jsonschema"
type: string
description: |
Enforces JSON schema validation for the configured topic. The value is a string containing a JSON object.
example: |
{
"type": "record",
"name": "Example",
"namespace": "test",
"fields": [
{"name": "ID","type": "int"},
{"name": "Name","type": "string"}
]
}
- name: maxConcurrentHandlers
type: number
description: |
Sets the maximum number of concurrent messages sent to the application. Default is 100.
default: '"100"'
example: '"100"'