n8n-nodes-kafka-batch-consumer 1.0.8 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"KafkaBatchConsumer.node.d.ts","sourceRoot":"","sources":["../../../src/nodes/KafkaBatchConsumer/KafkaBatchConsumer.node.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAErB,MAAM,cAAc,CAAC;AAItB;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAClD,WAAW,EAAE,oBAAoB,CAoG/B;IAEF;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA4MxE"}
1
+ {"version":3,"file":"KafkaBatchConsumer.node.d.ts","sourceRoot":"","sources":["../../../src/nodes/KafkaBatchConsumer/KafkaBatchConsumer.node.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAErB,MAAM,cAAc,CAAC;AAItB;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAClD,WAAW,EAAE,oBAAoB,CAmF/B;IAEF;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA4MxE"}
@@ -24,32 +24,15 @@ class KafkaBatchConsumer {
24
24
  },
25
25
  inputs: ['main'],
26
26
  outputs: ['main'],
27
- // Credentials reference - same as Kafka Trigger and Producer nodes
28
- // Optional: allows unauthenticated connections
27
+ // Credentials reference - required for brokers and clientId configuration
29
28
  credentials: [
30
29
  {
31
30
  name: 'kafka',
32
- required: false,
31
+ required: true,
33
32
  },
34
33
  ],
35
34
  // Define all Kafka configuration properties
36
35
  properties: [
37
- {
38
- displayName: 'Brokers',
39
- name: 'brokers',
40
- type: 'string',
41
- default: 'localhost:9092',
42
- required: true,
43
- description: 'Comma-separated list of Kafka broker addresses',
44
- },
45
- {
46
- displayName: 'Client ID',
47
- name: 'clientId',
48
- type: 'string',
49
- default: 'n8n-kafka-batch-consumer',
50
- required: true,
51
- description: 'Unique identifier for this Kafka client',
52
- },
53
36
  {
54
37
  displayName: 'Group ID',
55
38
  name: 'groupId',
@@ -119,11 +102,8 @@ class KafkaBatchConsumer {
119
102
  * Handles the complete workflow: credentials, connection, consumption, and error handling
120
103
  */
121
104
  async execute() {
122
- const items = this.getInputData();
123
105
  const returnData = [];
124
106
  // Get all node parameters from N8N configuration
125
- const brokers = this.getNodeParameter('brokers', 0);
126
- const clientId = this.getNodeParameter('clientId', 0);
127
107
  const groupId = this.getNodeParameter('groupId', 0);
128
108
  const topic = this.getNodeParameter('topic', 0);
129
109
  const batchSize = this.getNodeParameter('batchSize', 0);
@@ -132,53 +112,52 @@ class KafkaBatchConsumer {
132
112
  const options = this.getNodeParameter('options', 0);
133
113
  const readTimeout = options.readTimeout || 60000;
134
114
  const parseJson = options.parseJson !== undefined ? options.parseJson : true;
135
- // Parse comma-separated brokers string to array
136
- const brokerList = brokers.split(',').map((b) => b.trim());
137
115
  /**
138
116
  * Step 2: Credentials Retrieval and Kafka Configuration
139
117
  * Build KafkaJS configuration with optional authentication
140
118
  * Supports SASL (PLAIN, SCRAM-SHA-256, SCRAM-SHA-512) and SSL/TLS
119
+ * Brokers and clientId are now taken from credentials
141
120
  */
142
- // Build base Kafka configuration
143
- const kafkaConfig = {
144
- clientId,
145
- brokers: brokerList,
146
- };
147
- // Attempt to retrieve optional Kafka credentials
121
+ // Attempt to retrieve Kafka credentials (required for brokers and clientId)
148
122
  let credentials = null;
149
123
  try {
150
124
  credentials = await this.getCredentials('kafka');
151
125
  }
152
126
  catch (error) {
153
- // Credentials are optional, continue without them for unauthenticated connections
127
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Kafka credentials are required to get brokers and clientId configuration');
154
128
  }
129
+ // Build base Kafka configuration from credentials
130
+ const kafkaConfig = {
131
+ clientId: credentials.clientId || 'n8n-kafka-batch-consumer',
132
+ brokers: credentials.brokers ?
133
+ (typeof credentials.brokers === 'string' ?
134
+ credentials.brokers.split(',').map((b) => b.trim()) :
135
+ credentials.brokers) :
136
+ ['localhost:9092'],
137
+ };
155
138
  // Map N8N credential fields to KafkaJS authentication format
156
- // Add authentication if credentials are provided
157
- if (credentials) {
158
- // Add SASL authentication for secure connections
159
- // Supports mechanisms: plain, scram-sha-256, scram-sha-512
160
- if (credentials.authentication) {
161
- kafkaConfig.sasl = {
162
- mechanism: credentials.authentication, // PLAIN, SCRAM-SHA-256, or SCRAM-SHA-512
163
- username: credentials.username,
164
- password: credentials.password,
165
- };
139
+ // Add SASL authentication if provided
140
+ if (credentials.authentication) {
141
+ kafkaConfig.sasl = {
142
+ mechanism: credentials.authentication, // PLAIN, SCRAM-SHA-256, or SCRAM-SHA-512
143
+ username: credentials.username,
144
+ password: credentials.password,
145
+ };
146
+ }
147
+ // Add SSL/TLS configuration for encrypted connections
148
+ if (credentials.ssl !== undefined) {
149
+ kafkaConfig.ssl = {
150
+ rejectUnauthorized: credentials.ssl, // Validate server certificates
151
+ };
152
+ // Add optional SSL certificates for mutual TLS authentication
153
+ if (credentials.ca) {
154
+ kafkaConfig.ssl.ca = credentials.ca; // Certificate Authority
166
155
  }
167
- // Add SSL/TLS configuration for encrypted connections
168
- if (credentials.ssl !== undefined) {
169
- kafkaConfig.ssl = {
170
- rejectUnauthorized: credentials.ssl, // Validate server certificates
171
- };
172
- // Add optional SSL certificates for mutual TLS authentication
173
- if (credentials.ca) {
174
- kafkaConfig.ssl.ca = credentials.ca; // Certificate Authority
175
- }
176
- if (credentials.cert) {
177
- kafkaConfig.ssl.cert = credentials.cert; // Client certificate
178
- }
179
- if (credentials.key) {
180
- kafkaConfig.ssl.key = credentials.key; // Client private key
181
- }
156
+ if (credentials.cert) {
157
+ kafkaConfig.ssl.cert = credentials.cert; // Client certificate
158
+ }
159
+ if (credentials.key) {
160
+ kafkaConfig.ssl.key = credentials.key; // Client private key
182
161
  }
183
162
  }
184
163
  /**
@@ -224,8 +203,9 @@ class KafkaBatchConsumer {
224
203
  * Start message consumption
225
204
  * eachMessage callback processes messages one by one
226
205
  * Collects until batch size or timeout reached
206
+ * Note: consumer.run() starts the consumer but doesn't block
227
207
  */
228
- await consumer.run({
208
+ consumer.run({
229
209
  eachMessage: async ({ topic, partition, message }) => {
230
210
  /**
231
211
  * Step 6: Output Format
@@ -1 +1 @@
1
- {"version":3,"file":"KafkaBatchConsumer.node.js","sourceRoot":"","sources":["../../../src/nodes/KafkaBatchConsumer/KafkaBatchConsumer.node.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;AAE9B,+CAMsB;AAEtB,qCAA8D;AAE9D;;;;;GAKG;AACH,MAAa,kBAAkB;IAA/B;QACE,gBAAW,GAAyB;YAClC,WAAW,EAAE,sBAAsB;YACnC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE;gBACR,IAAI,EAAE,sBAAsB;aAC7B;YACD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,mEAAmE;YACnE,+CAA+C;YAC/C,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,4CAA4C;YAC5C,UAAU,EAAE;gBACV;oBACE,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,gBAAgB;oBACzB,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,gDAAgD;iBAC9D;gBACD;oBACE,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,0BAA0B;oBACnC,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,yCAAyC;iBACvD;gBACD;oBACE,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,oBAAoB;oBAC7B,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,2BAA2B;iBACzC;gBACD;oBACE,WAAW,EAAE,OAAO;oBACpB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,6BAA6B;iBAC3C;gBACD;oBACE,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD;oBACE,WAAW,EAAE,gBAAgB;oBAC7B,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,iDAAiD;iBAC/D;gBACD;oBACE,WAAW,EAAE,iBAAiB;oBAC9B,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;gBACD;oBACE,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,YAAY;oBACzB,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE;wBACP;4BACE,WAAW,EAAE,cAAc;4BAC3B,IAAI,EAAE,aAAa;4BACnB,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,mDAAmD;yBACjE;wBACD;4BACE,WAAW,EAAE,YAAY;4BACzB,IAAI,EAAE,WAAW;4BACjB,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,IAAI;4BACb,WAAW,EAAE,yCAAyC;yBACvD;qBACF;iBACF;aACF;SACF,CAAC;IAkNJ,CAAC;IAhNC;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAyB,EAAE,CAAC;QAE5C,iDAAiD;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAW,CAAC;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAW,CAAC;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAW,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAW,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAW,CAAC;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAY,CAAC;QAC3E,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAW,CAAC;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAGjD,CAAC;QAEF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;QACjD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7E,gDAAgD;QAChD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3D;;;;WAIG;QACH,iCAAiC;QACjC,MAAM,WAAW,GAAQ;YACvB,QAAQ;YACR,OAAO,EAAE,UAAU;SACpB,CAAC;QAEF,iDAAiD;QACjD,IAAI,WAAW,GAAQ,IAAI,CAAC;QAC5B,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kFAAkF;QACpF,CAAC;QAED,6DAA6D;QAC7D,iDAAiD;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,iDAAiD;YACjD,2DAA2D;YAC3D,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;gBAC/B,WAAW,CAAC,IAAI,GAAG;oBACjB,SAAS,EAAE,WAAW,CAAC,cAAc,EAAE,yCAAyC;oBAChF,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ;iBAC/B,CAAC;YACJ,CAAC;YAED,sDAAsD;YACtD,IAAI,WAAW,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAClC,WAAW,CAAC,GAAG,GAAG;oBAChB,kBAAkB,EAAE,WAAW,CAAC,GAAG,EAAE,+BAA+B;iBACrE,CAAC;gBAEF,8DAA8D;gBAC9D,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;oBACnB,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,wBAAwB;gBAC/D,CAAC;gBACD,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;oBACrB,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,qBAAqB;gBAChE,CAAC;gBACD,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;oBACpB,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,qBAAqB;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC;QAED;;;;WAIG;QACH,oDAAoD;QACpD,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,WAAW,CAAC,CAAC;QACrC,oDAAoD;QACpD,MAAM,QAAQ,GAAa,KAAK,CAAC,QAAQ,CAAC;YACxC,OAAO,EAAE,0DAA0D;YACnE,cAAc,EAAE,kCAAkC;SACnD,CAAC,CAAC;QAEH,4CAA4C;QAC5C,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,IAAI,CAAC;YACH,wCAAwC;YACxC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;YACzB,iBAAiB,GAAG,IAAI,CAAC;YAEzB,mCAAmC;YACnC,sEAAsE;YACtE,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YAEnD;;;;eAIG;YACH,sCAAsC;YACtC,MAAM,QAAQ,GAAyB,EAAE,CAAC;YAC1C,IAAI,aAAa,GAA0B,IAAI,CAAC;YAChD,IAAI,cAAc,GAAmC,IAAI,CAAC;YAE1D,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACtD,cAAc,GAAG,OAAO,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,+CAA+C;YAC/C,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,cAAc,EAAE,CAAC;oBACnB,cAAc,EAAE,CAAC,CAAC,wCAAwC;gBAC5D,CAAC;YACH,CAAC,EAAE,WAAW,CAAC,CAAC;YAEhB;;;;eAIG;YACH,MAAM,QAAQ,CAAC,GAAG,CAAC;gBACjB,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAsB,EAAE,EAAE;oBACvE;;;;uBAIG;oBACH,kEAAkE;oBAClE,IAAI,KAAK,GAAQ,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oBAEjD,qCAAqC;oBACrC,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;wBACvB,IAAI,CAAC;4BACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,6BAA6B;wBAC1D,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,sDAAsD;wBACxD,CAAC;oBACH,CAAC;oBAED,gEAAgE;oBAChE,MAAM,WAAW,GAAuB;wBACtC,IAAI,EAAE;4BACJ,KAAK;4BACL,SAAS;4BACT,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,IAAI;4BACpC,KAAK;4BACL,SAAS,EAAE,OAAO,CAAC,SAAS;4BAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;yBAC/B;qBACF,CAAC;oBAEF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAE3B,8BAA8B;oBAC9B,IAAI,QAAQ,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;wBACjC,IAAI,aAAa,EAAE,CAAC;4BAClB,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB;wBAChD,CAAC;wBACD,IAAI,cAAc,EAAE,CAAC;4BACnB,cAAc,EAAE,CAAC,CAAC,4BAA4B;wBAChD,CAAC;oBACH,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YAEH;;;;eAIG;YACH,MAAM,iBAAiB,CAAC;YAExB,uDAAuD;YACvD,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC5B,iBAAiB,GAAG,KAAK,CAAC;YAE1B,wCAAwC;YACxC,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kCAAkC;YAClC,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC9B,CAAC;gBAAC,OAAO,eAAe,EAAE,CAAC;oBACzB,2BAA2B;gBAC7B,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,IAAI,iCAAkB,CAC1B,IAAI,CAAC,OAAO,EAAE,EACd,gBAAgB,YAAY,EAAE,EAC9B,EAAE,WAAW,EAAE,YAAY,EAAE,CAC9B,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;CACF;AAvTD,gDAuTC"}
1
+ {"version":3,"file":"KafkaBatchConsumer.node.js","sourceRoot":"","sources":["../../../src/nodes/KafkaBatchConsumer/KafkaBatchConsumer.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
2
+ <path fill="currentColor" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-13h2v6h-2zm0 8h2v2h-2z"/>
3
+ </svg>
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "n8n-nodes-kafka-batch-consumer",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "description": "N8N node for consuming Kafka messages in batches",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
7
- "build": "tsc",
7
+ "build": "tsc && npm run copy:icons",
8
+ "copy:icons": "cp -r src/nodes/KafkaBatchConsumer/*.svg dist/nodes/KafkaBatchConsumer/",
8
9
  "test": "jest",
9
10
  "test:coverage": "jest --coverage",
10
11
  "lint": "eslint . --ext .ts"
@@ -292,23 +292,25 @@ describe('KafkaBatchConsumer', () => {
292
292
  });
293
293
  });
294
294
 
295
- it('should handle SSL with rejectUnauthorized false', async () => {
295
+ /**
296
+ * Test plaintext connection (no SSL)
297
+ * When ssl is false or undefined, no SSL configuration should be added
298
+ */
299
+ it('should handle plaintext connection without SSL', async () => {
296
300
  mockExecuteFunctions.getCredentials.mockResolvedValue({
297
301
  brokers: 'localhost:9092',
298
302
  clientId: 'test-client',
299
- ssl: false,
303
+ ssl: false, // Explicitly disable SSL
300
304
  });
301
305
 
302
- mockConsumer.run.mockImplementation(async () => Promise.resolve());
306
+ mockConsumer.run.mockImplementation(async () => new Promise(() => {}));
303
307
 
304
308
  await kafkaBatchConsumer.execute.call(mockExecuteFunctions);
305
309
 
310
+ // Should NOT include ssl config when ssl: false
306
311
  expect(Kafka).toHaveBeenCalledWith({
307
312
  clientId: 'test-client',
308
313
  brokers: ['localhost:9092'],
309
- ssl: {
310
- rejectUnauthorized: false,
311
- },
312
314
  });
313
315
  });
314
316
 
@@ -162,9 +162,10 @@ export class KafkaBatchConsumer implements INodeType {
162
162
  }
163
163
 
164
164
  // Add SSL/TLS configuration for encrypted connections
165
- if (credentials.ssl !== undefined) {
165
+ // Only enable SSL if explicitly set to true or if SSL certificates are provided
166
+ if (credentials.ssl === true || credentials.ca || credentials.cert || credentials.key) {
166
167
  kafkaConfig.ssl = {
167
- rejectUnauthorized: credentials.ssl, // Validate server certificates
168
+ rejectUnauthorized: credentials.ssl !== false, // Default to true if SSL is enabled
168
169
  };
169
170
 
170
171
  // Add optional SSL certificates for mutual TLS authentication