1+ # yaml-language-server: $schema=../../component-metadata-schema.json
2+ schemaVersion : v1
3+ type : bindings
4+ name : kafka
5+ version : v1
6+ status : stable
7+ title : " Apache Kafka"
8+ urls :
9+ - title : Reference
10+ url : https://docs.dapr.io/reference/components-reference/supported-bindings/kafka/
11+ binding :
12+ output : true
13+ input : true
14+ operations :
15+ - name : create
16+ description : " Publish a new message in the topic."
17+ authenticationProfiles :
18+ - title : " OIDC Authentication"
19+ description : |
20+ Authenticate using OpenID Connect.
21+ metadata :
22+ - name : authType
23+ type : string
24+ required : true
25+ description : |
26+ Authentication type.
27+ This must be set to "oidc" for this authentication profile.
28+ example : ' "oidc"'
29+ allowedValues :
30+ - " oidc"
31+ - name : oidcTokenEndpoint
32+ type : string
33+ required : true
34+ description : |
35+ URL of the OAuth2 identity provider access token endpoint.
36+ example : ' "https://identity.example.com/v1/token"'
37+ - name : oidcClientID
38+ description : |
39+ The OAuth2 client ID that has been provisioned in the identity provider.
40+ example : ' "my-client-id"'
41+ type : string
42+ required : true
43+ - name : oidcClientSecret
44+ type : string
45+ required : true
46+ sensitive : true
47+ description : |
48+ The OAuth2 client secret that has been provisioned in the identity provider.
49+ example : ' "KeFg23!"'
50+ - name : oidcScopes
51+ type : string
52+ description : |
53+ Comma-delimited list of OAuth2/OIDC scopes to request with the access token.
54+ Although not required, this field is recommended.
55+ example : ' "openid,kafka-prod"'
56+ default : ' "openid"'
57+ - title : " SASL Authentication"
58+ description : |
59+ Authenticate using SASL.
60+ metadata :
61+ - name : authType
62+ type : string
63+ required : true
64+ description : |
65+ Authentication type.
66+ This must be set to "password" for this authentication profile.
67+ example : ' "password"'
68+ allowedValues :
69+ - " password"
70+ - name : saslUsername
71+ type : string
72+ required : true
73+ description : |
74+ The SASL username.
75+ example : ' "myuser"'
76+ - name : saslPassword
77+ type : string
78+ required : true
79+ sensitive : true
80+ description : |
81+ The SASL password.
82+ example : ' "mypassword"'
83+ - name : saslMechanism
84+ type : string
85+ required : true
86+ description : |
87+ The SASL authentication mechanism to use.
88+ example : ' "SHA-512"'
89+ default : ' "PLAINTEXT"'
90+ allowedValues :
91+ - " SHA-512"
92+ - " SHA-256"
93+ - " PLAINTEXT"
94+ - title : " mTLS Authentication"
95+ description : |
96+ Authenticate using mTLS.
97+ metadata :
98+ - name : authType
99+ type : string
100+ required : true
101+ description : |
102+ Authentication type.
103+ This must be set to "mtls" for this authentication profile.
104+ example : ' "mtls"'
105+ allowedValues :
106+ - " mtls"
107+ - name : caCert
108+ type : string
109+ required : true
110+ description : " Certificate authority certificate."
111+ example : " -----BEGIN CERTIFICATE-----\n <base64-encoded DER>\n -----END CERTIFICATE-----"
112+ - name : clientCert
113+ required : true
114+ description : " Client certificate."
115+ example : " -----BEGIN CERTIFICATE-----\n <base64-encoded DER>\n -----END CERTIFICATE-----"
116+ type : string
117+ - name : clientKey
118+ type : string
119+ required : true
120+ sensitive : true
121+ description : " Client key."
122+ example : " -----BEGIN RSA PRIVATE KEY-----\n <base64-encoded DER>\n -----END RSA PRIVATE KEY-----"
123+ - title : " No Authentication"
124+ description : |
125+ Do not perform authentication.
126+ metadata :
127+ - name : authType
128+ type : string
129+ required : true
130+ description : |
131+ Authentication type.
132+ This must be set to "none" for this authentication profile.
133+ example : ' "none"'
134+ allowedValues :
135+ - " none"
136+ metadata :
137+ - name : topics
138+ type : string
139+ description : |
140+ A comma-separated list of topics to subscribe to.
141+ example : ' "mytopic1,topic2"'
142+ binding :
143+ input : true
144+ - name : brokers
145+ type : string
146+ required : true
147+ description : |
148+ A comma-separated list of Kafka brokers.
149+ example : ' "localhost:9092,dapr-kafka.myapp.svc.cluster.local:9093"'
150+ binding :
151+ output : true
152+ input : true
153+ - name : publishTopic
154+ type : string
155+ required : true
156+ description : |
157+ The topic to publish to.
158+ example : ' "mytopic"'
159+ binding :
160+ output : true
161+ - name : consumerGroup
162+ type : string
163+ description : |
164+ A kafka consumer group to listen on. Each record published
165+ to a topic is delivered to one consumer within each consumer
166+ group subscribed to the topic.
167+ example : ' "group1"'
168+ binding :
169+ input : true
170+ - name : clientID
171+ type : string
172+ description : |
173+ A user-provided string sent with every request to
174+ the Kafka brokers for logging, debugging, and auditing purposes.
175+ example : ' "my-dapr-app"'
176+ default : ' "sarama"'
177+ - name : initialOffset
178+ type : string
179+ description : |
180+ The initial offset to use if no offset was previously committed.
181+ example : ' "oldest"'
182+ default : ' "newest"'
183+ allowedValues :
184+ - " newest"
185+ - " oldest"
186+ binding :
187+ input : true
188+ - name : maxMessageBytes
189+ type : number
190+ description : |
191+ The maximum size in bytes allowed for a single Kafka message.
192+ example : ' 2048'
193+ default : ' 1024'
194+ - name : consumeRetryInterval
195+ type : duration
196+ description : |
197+ The interval between retries when attempting to consume topics.
198+ example : ' "200ms"'
199+ default : ' "100ms"'
200+ - name : consumeRetryEnabled
201+ type : bool
202+ description : |
203+ Disables consumer retry by setting this to "false".
204+ example : ' "true"'
205+ default : ' "false"'
206+ - name : version
207+ type : string
208+ description : |
209+ Kafka cluster version.
210+ Note that this must be set to "1.0.0" if you are using Azure Event Hubs with Kafka.
211+ example : ' "0.10.2.0"'
212+ default : ' "2.0.0.0"'
213+ - name : skipVerify
214+ required : false
215+ description : |
216+ Skip TLS verification.
217+ This is potentially insecure and not recommended for use in production.
218+ example : " true"
219+ default : " false"
220+ type : bool
221+ - name : disableTls
222+ required : false
223+ description : |
224+ Disable TLS for transport security.
225+ This is potentially insecure and not recommended for use in production.
226+ example : " true"
227+ default : " false"
228+ type : bool
0 commit comments