Description
A validation check in Connect's REST API that was added to validate that the connector class name in the config matches the connector class name in the request's URL is too strict by not considering both the simple and the canonical name of the connector class. For instance, the following example request:
PUT /connector-plugins/FileStreamSinkConnector/config/validate/ HTTP/1.1 Host: connect.example.com Accept: application/json { "connector.class": "org.apache.kafka.connect.file.FileStreamSinkConnector", "tasks.max": "1", "topics": "test-topic" }
returns a "Bad Request" response with error code "400".
Currently the reasonable workaround is to exactly match the connector class name in both places. The following will work:
PUT /connector-plugins/org.apache.kafka.connect.file.FileStreamSinkConnector/config/validate/ HTTP/1.1 Host: connect.example.com Accept: application/json { "connector.class": "org.apache.kafka.connect.file.FileStreamSinkConnector", "tasks.max": "1", "topics": "test-topic" }
However, this is not flexible enough and also breaks several examples in documentation. Validation should take into account both simple and canonical class names.
Attachments
Issue Links
- is related to
-
KAFKA-5012 Refactor plugin discovery in Connect to offer a global index for plugins and transformations
- Open
- links to