This section is allowing you to manage the configuration of Neo4j as it is done via neo4j.conf file. Some of the configurations have a specific section, like Authentication, and there is a generic way to add any configuration that is whitelisted.
For the changes to be applied, the database requires a restart.
To change the Neo4j configuration for each of the mentioned options, navigate to your database Configuration tab.
Authentication to the database is enabled by default, but it can be disabled. You can use this for example in case you lose your credentials and need access to manage users. To change this setting, click on the Disabled option > then Save button.
You'll be able to see a confirmation window once the configuration is updated. If you want to enable it again, click on the Enabled option > Save button.
This managed configuration will set up dbms.security.auth_enabled to true or false.
We recommend authentication to be enabled for your databases, especially for production environments.
When the read-only mode is enabled, no insertions, updates or deletions will be performed. It is disabled by default, and to enable it, select the Enabled option > then Save button.
You'll be able to see a confirmation window once the configuration is updated. If you want to disable read-only mode, select Enabled > Save button.
If enabled read-only mode will be configured via neo4j.conf file and will set up dbms.databases.read_only to true.
Your instance memory is assigned and used by different components:
- Heap memory. The runtime data area from which memory for all class instances and arrays is allocated.
- Page cache. The page cache is used to cache the Neo4j data stored on disk. The caching of graph data and indexes into memory helps avoid costly disk access and result in optimal performance.
- Other memory used by Neo4j. This is the rest of memory that is needed for Neo4j to run correctly.
- OS memory. The memory that must be reserved for running the processes of the operating system itself.
To simplify memory configuration to the user, GrapheneDB only allows changing heap memory for your database. The value for the page cache will be automatically calculated to use the remaining available memory.
GrapheneDB shows how the rest of the memory is distributed for the sake of transparency, but heap and page cache are the two important memory settings for you to consider.
The default heap is designed for your database to work correctly, but it’s allowed to reduce it in favor of increasing Page Cache, so that more data can fit into memory and reduce disk access.
If you are running a DS1 plan, memory can't be adjusted, as the plan is already running with the minimum heap needed for Neo4j to work correctly. To see the details, please click on the Expand button in the Memory configuration section.
A bad memory configuration can have a dramatic impact on performance and even make your database unresponsive. Please make sure you know what you’re doing before you change these settings.
We allow you to add or update configuration that will end up in the neo4j.conf file. Entries need to be added one by one. If you want to enter 4 configurations, please go through this process 4 times and then restart your database, for the configuration to be applied.
If your plugin necessitates outbound traffic, for example, the APOC procedure to send data to an external ES server, you will be required to include the server's IP address in your Environment's IP Whitelist. Another option is to establish a peering connection with the external server. If neither of these alternatives is feasible, you will need to whitelist all IP addresses, meaning that you'll need to add 0.0.0.0/0 to the Environment's Whitelist.
To add these custom settings, you need to know exactly what configuration key and value you want to add to the conf file. Take into account that there is a Whitelist and not everything can be added or updated. Only configuration keys that are whitelisted will be allowed. You will get an error if you don’t enter a key that is in our whitelist.
What is Whitelisted?
- apoc.* (APOC)
- gds.* (GDS Plugin)
- com.* (Unmanaged extensions)
- graphaware.* (GraphAware plugins)
- elasticsearch.* (Elasticsearch plugin)
- dbms.transactional.timeout (Transactional timeout)
If you have additional requirements on whitelisting, please reach out to our support team, and we'll evaluate adding your request to the whitelist.
Once you are in the Configuration tab, navigate to the Custom configuration section at the bottom > click on + Add new configuration button.
The new screen will appear, where you'll need to enter a Configuration Key and Configuration Value. You can choose to encrypt the value by selecting the checkbox. We want to make sure to encrypt just secrets, thus there is a limit of 7 values that you can encrypt.
- enter the Configuration Key for which you want to map the configuration setting to a value.
- enter the Configuration Value as per Neo4j requirements. The limit of digits to be used for the value is 9 digits, for example, 300000000s (dbms.transaction.timeout).
The example of a custom configuration would be the enabling of apoc triggers. In this case, you would add apoc.trigger.enabled in the Configuration key field, and add true in the Configuration value field. Once done, please click on Confirm button.
You can also edit the existing custom configuration by clicking on the pen icon on the right-hand side of that config.
You can always find a history of the actions executed on this database if you navigate to the Activity Feed of this database.
- Make sure to test the configurations before changing your production deployment.
- Database will need to be restarted for the configuration to get applied.
- The new config line might result in the database not starting correctly. If that’s the case you can delete the added line and restart again.
Applying changes on Single Dedicated plans
The Database needs to be restarted for changes to be applied. This will result in a short downtime, which will depend on the time that the process needs to stop and start your database.
You will see the dialog box to inform you that the configuration is added, and also see the database status change to the Needs Restart status.
Applying changes on High Available plans
Before changing and applying the configuration on a cluster, all the nodes need to be available.
High Available plans will be restarted using the rolling restart strategy, meaning that you won’t experience downtime in the client while applying the configuration.