Search
ctrl/
Ask AI
Light
Dark
System

Server configuration

EdgeDB exposes a number of configuration parameters that affect its behavior. In this section we review the ways to change the server configuration, as well as detail each available configuration parameter.

The configure command can be used to set the configuration parameters using EdgeQL. For example:

Copy
edgedb> 
configure instance set listen_addresses := {'127.0.0.1', '::1'};
CONFIGURE: OK

The edgedb configure command allows modifying the system configuration from a terminal:

Copy
$ 
edgedb configure set listen_addresses 127.0.0.1 ::1

Below is an overview of available settings. a full reference of settings is available at Standard Library > Config.

listen_addresses -> multi str

The TCP/IP address(es) on which the server is to listen for connections from client applications.

listen_port -> int16

The TCP port the server listens on; defaults to 5656.

New
cors_allow_origins -> multi str

Origins that will be calling the server that need Cross-Origin Resource Sharing (CORS) support. Can use * to allow any origin. When HTTP clients make a preflight request to the server, the origins allowed here will be added to the Access-Control-Allow-Origin header in the response.

effective_io_concurrency -> int64

The number of concurrent disk I/O operations that can be executed simultaneously.

query_work_mem -> cfg::memory

The amount of memory used by internal query operations such as sorting.

shared_buffers -> cfg::memory

The amount of memory used for shared memory buffers.

http_max_connections -> int64

The maximum number of concurrent outbound HTTP connections to allow.

default_statistics_target -> int64

The default data statistics target for the planner.

effective_cache_size -> cfg::memory

An estimate of the effective size of the disk cache available to a single query.

allow_bare_ddl -> cfg::AllowBareDDL

Allows for running bare DDL outside a migration. Possible values are cfg::AllowBareDDL.AlwaysAllow and cfg::AllowBareDDL.NeverAllow.

When you create an instance, this is set to cfg::AllowBareDDL.AlwaysAllow until you run a migration. At that point it is set to cfg::AllowBareDDL.NeverAllow because it’s generally a bad idea to mix migrations with bare DDL.

apply_access_policies -> bool

Determines whether access policies should be applied when running queries. Setting this to false effectively puts you into super-user mode, ignoring any access policies that might otherwise limit you on the instance.

This setting can also be conveniently accessed via the “Config” dropdown menu at the top of the EdgeDB UI (accessible by running the CLI command edgedb ui from within a project). The setting will apply only to your UI session, so you won’t have to remember to re-enable it when you’re done.

session_idle_timeout -> std::duration

How long client connections can stay inactive before being closed by the server. Defaults to 60 seconds; set to <duration>'0' to disable the mechanism.

session_idle_transaction_timeout -> std::duration

How long client connections can stay inactive while in a transaction. Defaults to 10 seconds; set to <duration>'0' to disable the mechanism.

For session_idle_transaction_timeout and query_execution_timeout, values under 1ms are rounded down to zero, which will disable the timeout. In order to set a timeout, please set a duration of 1ms or greater.

session_idle_timeout can take values below 1ms.

query_execution_timeout -> std::duration

How long an individual query can run before being aborted. A value of <duration>'0' disables the mechanism; it is disabled by default.

For session_idle_transaction_timeout and query_execution_timeout, values under 1ms are rounded down to zero, which will disable the timeout. In order to set a timeout, please set a duration of 1ms or greater.

session_idle_timeout can take values below 1ms.