Hey Shern !
I have the same issue/confusion you have
I would like to programmatically check if this setting is enabled in my code before I make the export call. However, when I do call dbms.listConfig()
, it shows that it is still set to "false".
The same happens for apoc.import.file.enabled=true
.
I will do a workaround to parse the apoc.conf
file for now. But my guess is this is a bug that is a result of Neo4j 3.5+ config..
I can confirm that my apoc plugin is well installed (I can see the apoc procedures when I do the following query: CALL dbms.procedures() YIELD name, signature RETURN name, signature;)
I am using the helm chart, so my apoc configs looks like this
apoc_config:
apoc.trigger.enabled: "false"
apoc.ttl.enabled: "false"
apoc.export.file.enabled: "false"
apoc.import.file.enabled: "false"
apoc.import.file.allow_read_from_filesystem: "true"
apoc.uuid.enabled: "true"
apoc.import.file.use_neo4j_config: "true"
apoc.jobs.scheduled.num_threads: "10"
apoc.jobs.pool.num_threads: "10"
I can see that it appears in the container under /config/apoc.conf (there is also a /config/neo4j.conf in there which is a symlink to /var/lib/neo4j/conf/neo4j.conf.
Now I am not sure if the neo4j binary tries to load the config from /config/ or /var/lib/neo4j/conf location.
Apoc.conf doesn't exist in /var/lib/neo4j/conf and doing "CALL dbms.listConfig();" doesn't show up my customs settings.
call dbms.listConfig("apoc");
+---------------------------------------------------------------------------------------------------------------------------+
| name | description | value | dynamic |
+---------------------------------------------------------------------------------------------------------------------------+
| "apoc.export.file.enabled" | "apoc.export.file.enabled, a boolean" | "false" | FALSE |
| "apoc.import.file.enabled" | "apoc.import.file.enabled, a boolean" | "false" | FALSE |
| "apoc.import.file.use_neo4j_config" | "apoc.import.file.use_neo4j_config, a boolean" | "true" | FALSE |
| "apoc.initializer.cypher" | "apoc.initializer.cypher, a string" | "No Value" | FALSE |
| "apoc.jobs.pool.num_threads" | "apoc.jobs.pool.num_threads, a long" | "No Value" | FALSE |
| "apoc.jobs.queue.size" | "apoc.jobs.queue.size, a long" | "No Value" | FALSE |
| "apoc.jobs.scheduled.num_threads" | "apoc.jobs.scheduled.num_threads, a long" | "No Value" | FALSE |
| "apoc.trigger.enabled" | "apoc.trigger.enabled, a boolean" | "false" | FALSE |
| "apoc.ttl.enabled" | "switches TTL feature on or off" | "false" | FALSE |
| "apoc.ttl.limit" | "maximum number of nodes to be deleted during one iteration" | "1000" | FALSE |
| "apoc.ttl.schedule" | "how often does TTL expiry check run in background" | "1m" | FALSE |
| "apoc.uuid.enabled" | "apoc.uuid.enabled, a boolean" | "false" | FALSE |
+---------------------------------------------------------------------------------------------------------------------------+
Are the settings loaded ? are they not ? Shouldn't it be be more straight forward ?