# check=skip=SecretsUsedInArgOrEnv
FROM 086679231553.dkr.ecr.us-east-1.amazonaws.com/docker-parent-images:kafka-connect79

USER root

# Install Plugin
ENV NEO4J_SINK_CONNECTOR_VERSION='5.4.1'
RUN confluent-hub install --no-prompt --verbose -- neo4j/kafka-connect-neo4j:${NEO4J_SINK_CONNECTOR_VERSION}

# Install Lenses secret provider
ENV LENSES_SECRET_PROVIDER_VERSION='2.3.0'
RUN curl -L -o secret-provider-${LENSES_SECRET_PROVIDER_VERSION}-all.jar https://github.com/lensesio/secret-provider/releases/download/${LENSES_SECRET_PROVIDER_VERSION}/secret-provider-${LENSES_SECRET_PROVIDER_VERSION}-all.jar &&\
    mkdir -p /usr/share/java/secret-providers/ &&\
    mv secret-provider-${LENSES_SECRET_PROVIDER_VERSION}-all.jar /usr/share/java/secret-providers/

# Install Plugin Neo4j Source connector
COPY plugins /tmp/connect-plugins

COPY entry_point.sh /usr/local/bin/entry_point.sh
RUN chmod +x /usr/local/bin/entry_point.sh

# Sync manifests to enable faster service_load discovery (KIP-898), until plugin owners support it themselves
RUN /bin/connect-plugin-path sync-manifests --plugin-path "/usr/share/java/secret-providers,/tmp/connect-plugins,/usr/share/confluent-hub-components/"

# Add config template
COPY config.template.json /tmp/

USER appuser

ENV CONNECTOR_NAME='neo4j_cdc_sink'
ENV CONNECT_KEY_CONVERTER='org.apache.kafka.connect.json.JsonConverter'
ENV CONNECT_VALUE_CONVERTER='org.apache.kafka.connect.json.JsonConverter'
ENV CONNECT_PLUGIN_PATH='/usr/share/java/secret-providers,/tmp/connect-plugins,/usr/share/confluent-hub-components/'
ENV CONNECT_PLUGIN_DISCOVERY='service_load'
ENV OFFSET_FLUSH_TIMEOUT="60000"
ENV OFFSET_FLUSH_INTERVAL="60000"
ENV NEO4J_KEY_CONVERTER="org.apache.kafka.connect.json.JsonConverter"
ENV NEO4J_VALUE_CONVERTER="org.apache.kafka.connect.json.JsonConverter"
ENV NEO4J_KEY_CONVERTER_SCHEMAS_ENABLE="false"
ENV NEO4J_VALUE_CONVERTER_SCHEMAS_ENABLE="false"
ENV NEO4J_ENCRYPTION_ENABLED="true"
ENV SYNC_SCHEMA_TOPICS=""
ENV SYNC_SOURCE_ID_TOPICS=""
ENV CHANGE_OPERATION=""
ENV START_READING_RECORDS_FROM="latest"
ENV NEO4J_RETRY_TIME="30s"
ENV NEO4J_BATCH_SIZE="1000"
ENV NEO4J_BATCH_EXEC_TIMEOUT="0s"
ENV NEO4J_DATABASE_NAME="graph.db"
# For CDC strategy only
ENV NEO4J_MAX_BATCHED_QUERIES="50"

EXPOSE ${CONNECT_REST_PORT}

ENTRYPOINT  ["/usr/local/bin/entry_point.sh"]

