Using File ConfigProvider with Mongodb Kafka Connector

Hi

We are trying to avoid exposing secrets of the Mongodb connection url using the File config provider. We have the connection url stored in a secrets.properties file.

In the connector configuration

We added the following lines in connect-distributed.properties file

config.providers=file
config.providers.file.class=org.apache.kafka.common.config.provider.FileConfigProvider

And in the connector configuration we add the following line

{
  "name": "MarketPlaceSourceConnector",
  "config": {
    "connector.class": "com.mongodb.kafka.connect.MongoSourceConnector",
    "pipeline": "[{\"$match\":{\"$or\":[{\"operationType\":\"insert\"},{\"operationType\":\"update\"}]}}]",
    "database": "markk",
    "publish.full.document.only": "false",
    "change.stream.full.document": "updateLookup",
    "tasks.max": "1",
    "connection.url": "${file:/opt/secrets.properties:mongodb-connection-uri}",
    "value.converter": "org.apache.kafka.connect.json.JsonConverter",
    "collection": "marketplace",
    "key.converter": "org.apache.kafka.connect.json.JsonConverter"
  }
}

But the config failed to load with a timeout to connect.

I have issue on same topic . If I try to set the source connector configuration with wrong password in the file specified it does give authentication error so file permission is not an issue but when i provide correct password it does give following error

Source Connector Configuration:-
{“name”: “mongo-source-passwd”,
“config”: {
“connector.class”: “com.mongodb.kafka.connect.MongoSourceConnector”,
“connection.uri”: “${file:/data/kafka-poc/db-connect.properties:db-url}”,
“database”: “kafka-poc-source”,
“collection”: “other1”,
“pipeline”: “[]”,
“prefix”: “”
}
}

With wrong password in data/kafka-poc/db-connect.properties (POST Source connector Configuration throws following error) :-
{“error_code”:400,“message”:"Connector configuration is invalid and contains the following 1 error(s):\nInvalid user permissions authentication failed. Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName=‘kafka_admin’, source=‘admin’, password=, mechanismProperties=}\nYou can also find the above list of errors at the endpoint /connector-plugins/{connectorType}/config/validate"}

With correct Password (POST Source connector Configuration throws following error) :-
{“error_code”:500,“message”:“Could not read properties from file /data/kafka-poc/db-connect.properties”}

File has this entry below (removed password and server name):-
db-url=mongodb://kafka_admin:@mongodb server27017/?authSource=admin

FYI , nothing wrong in the configuration above , when i restarted the KAFKA connect on all nodes which was part of a cluster it fixed the issue. I did restarted the KAFKA connect on one node when I did create MongoDB Source connector instance as explained above . Still not sure why we have to restart all KAFKA workers if new MongoDB source connector instance is added as it does not make sense to every time restart KAFKA workers if new MongoDB source/sink instance is added.