{
    "tasks.max": "{{ env['MAX_TASKS'] }}",
    "neo4j.authentication.type": "BASIC",

    "neo4j.uri": "{{ env['NEO4J_SERVER_URI'] }}",
    "neo4j.database": "{{ env['NEO4J_DATABASE_NAME'] }}",
    {% if env['AWS_SECRETS_MANAGER'] == 'true' -%}
    "neo4j.authentication.basic.username": "${aws:{{ env['Environment'] }}/{{ env['SERVICE_NAME'] }}/NEO4J_CREDENTIALS:username}",
    "neo4j.authentication.basic.password": "${aws:{{ env['Environment'] }}/{{ env['SERVICE_NAME'] }}/NEO4J_CREDENTIALS:password}",
    "config.providers": "aws",
    "config.providers.aws.class": "io.lenses.connect.secrets.providers.AWSSecretProvider",
    "config.providers.aws.param.aws.auth.method": "default",
    "config.providers.aws.param.aws.access.key": "dummy-client-key",
    "config.providers.aws.param.aws.secret.key": "dummy-secret-key",
    "config.providers.aws.param.aws.region": "{{ env['AWS_REGION'] }}",
    {% else -%}
    "neo4j.authentication.basic.username": "{{ env['NEO4J_USERNAME'] }}",
    "neo4j.authentication.basic.password": "{{ env['NEO4J_PASSWORD'] }}",
    {% endif -%}

    "neo4j.encryption.enabled": "{{ env['NEO4J_ENCRYPTION_ENABLED'] }}",
    "neo4j.enforce.schema": "{{ env['NEO4J_ENFORCE_SCHEMA'] }}",
    "key.converter": "{{ env['NEO4J_KEY_CONVERTER'] }}",
    "value.converter": "{{ env['NEO4J_VALUE_CONVERTER'] }}",
    "key.converter.schemas.enable": "{{ env['NEO4J_KEY_CONVERTER_SCHEMAS_ENABLE'] }}",
    "value.converter.schemas.enable": "{{ env['NEO4J_VALUE_CONVERTER_SCHEMAS_ENABLE'] }}",
    {% if env['CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL'] -%}
    "value.converter.schema.registry.url": "{{ env['CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL'] }}",
    {% endif -%}

    "neo4j.max-retry-time": "10m",
    "errors.retry.timeout": "-1",
    "errors.retry.delay.max.ms": "1000",
    "errors.tolerance": "all",
    "neo4j.connection-timeout": "{{ env['NEO4J_CONNECTION_TIMEOUT'] }}",
    "neo4j.pool.connection-acquisition-timeout": "{{ env['NEO4J_CONNECTION_ACQUISITION_TIMEOUT'] }}",
    {% if env['DLQ_TOPIC_NAME'] -%}
    "errors.deadletterqueue.topic.name": "{{ env['DLQ_TOPIC_NAME'] }}",
    "errors.deadletterqueue.context.headers.enable": "true",
    {% else -%}
    "errors.log.enable": true,
    "errors.log.include.messages": true,
    {% endif -%}
    "connector.class": "org.neo4j.connectors.kafka.source.Neo4jConnector",
    "neo4j.batch-size": "{{ env['NEO4J_BATCH_SIZE'] }}",
    "neo4j.source-strategy": "CDC",
    "neo4j.ignore-stored-offset": "{{ env['NEO4J_IGNORE_STORED_OFFSET'] }}",

    {% if not env['OVERRIDE_CONFIGS'] or env['OVERRIDE_CONFIGS'] == '{}' -%}
    {% for mapping in env_to_props('TOPIC_MAPPING_', '').values() -%}
    {% set parts = mapping.split('|') -%}
    {% set topic_name = parts[0] -%}
    {% set pattern = parts[1] -%}
    {% set key_strategy = parts[2] if parts | length > 2 else env['NEO4J_KEY_STRATEGY'] -%}
    "neo4j.cdc.topic.{{ env['TOPIC_PREFIX'] }}{{topic_name}}.patterns": "{{ pattern }}",
    "neo4j.cdc.topic.{{ env['TOPIC_PREFIX'] }}{{topic_name}}.key-strategy": "{{ key_strategy }}",
    {% endfor -%}
    {% endif -%}
    "neo4j.start-from": "{{ env['NEO4J_START_FROM'] }}",
    {% if env['NEO4J_START_FROM'] == 'USER_PROVIDED' -%}
    "neo4j.start-from.value": "{{ env['NEO4J_START_FROM_VALUE'] }}",
    {% endif -%}
    "neo4j.cdc.poll-interval": "{{ env['NEO4J_POLL_INTERVAL'] }}"
}
