Config​

The cfg module contains a set of types and scalars used for configuring EdgeDB.

Type

Description

cfg::Config

The base type for all configuration objects. The properties of this type define the set of configuruation settings supported by EdgeDB.

cfg::Auth

An object type representing an authentication profile.

cfg::AuthMethod

An abstract object type representing a method of authentication

cfg::Trust

A subclass of AuthMethod indicating an “always trust” policy (no authentication).

cfg::SCRAM

A subclass of AuthMethod indicating password-based authentication.

cfg::memory

A scalar type for storing a quantity of memory storage.

Available Configuration Parameters​

Connection settings​

listen_addresses -> multi str

Specifies the TCP/IP address(es) on which the server is to listen for connections from client applications. If the list is empty, the server does not listen on any IP interface at all, in which case only Unix-domain sockets can be used to connect to it.

listen_port -> int16

The TCP port the server listens on; 5656 by default. Note that the same port number is used for all IP addresses the server listens on.

Resource usage​

effective_io_concurrency -> int64

Sets the number of concurrent disk I/O operations that can be executed simultaneously. Corresponds to the PostgreSQL configuration parameter of the same name.

query_work_mem -> cfg::memory

The amount of memory used by internal query operations such as sorting. Corresponds to the PostgreSQL work_mem configuration parameter.

shared_buffers -> cfg::memory

The amount of memory the database uses for shared memory buffers. Corresponds to the PostgreSQL configuration parameter of the same name. Changing this value requires server restart.

Query planning​

default_statistics_target -> int64

Sets the default data statistics target for the planner. Corresponds to the PostgreSQL configuration parameter of the same name.

effective_cache_size -> cfg::memory

Sets the planner’s assumption about the effective size of the disk cache that is available to a single query. Corresponds to the PostgreSQL configuration parameter of the same name.

Client connections​

session_idle_timeout -> std::duration

Sets the timeout for how long client connections can stay inactive before being forcefully closed by the server.

Time spent on waiting for query results doesn’t count as idling. E.g. if the session idle timeout is set to 1 minute it would be OK to run a query that takes 2 minutes to compute; to limit the query execution time use the query_execution_timeout setting.

The default is 60 seconds. Setting it to <duration>'0' disables the mechanism. Setting the timeout to less than 2 seconds is not recommended.

Note that the actual time an idle connection can live can be up to two times longer than the specified timeout.

This is a system-level config setting.

session_idle_transaction_timeout -> std::duration

Sets the timeout for how long client connections can stay inactive while in a transaction.

The default is 10 seconds. Setting it to <duration>'0' disables the mechanism.

query_execution_timeout -> std::duration

Sets a time limit on how long a query can be run.

Setting it to <duration>'0' disables the mechanism. The timeout isn’t enabled by default.

type

cfg::Config

Config - 图1

Config

An abstract type representing the configuration of an instance or database.

The properties of this object type represent the set of configuration options supported by EdgeDB (listed above).

type

cfg::Auth

Config - 图2

Auth

An object type designed to specify a client authentication profile.

  1. configure instance insert
  2. Auth {priority := 0, method := (insert Trust)};
  1. OK: CONFIGURE INSTANCE

Below are the properties of the Auth class.

priority -> int64

The priority of the authentication rule. The lower this number, the higher the priority.

user -> multi str

The name(s) of the database role(s) this rule applies to. If set to '*', then it applies to all roles.

method -> cfg::AuthMethod

The name of the authentication method type. Expects an instance of cfg::AuthMethod; Valid values are: Trust for no authentication and SCRAM for SCRAM-SHA-256 password authentication.

comment -> optional str

An optional comment for the authentication rule.

type

cfg::AuthMethod

Config - 图3

AuthMethod

An abstract object class that represents an authentication method.

It currently has two concrete subclasses, each of which represent an available authentication method: cfg::Trust and cfg::SCRAM.

type

cfg::Trust

Config - 图4

Trust

The cfg::Trust indicates an “always-trust” policy.

When active, it disables password-based authentication.

  1. configure instance insert
  2. Auth {priority := 0, method := (insert Trust)};
  1. OK: CONFIGURE INSTANCE

type

cfg::SCRAM

Config - 图5

SCRAM

The cfg::SCRAM indicates password-based authentication.

This policy is implemented via SCRAM-SHA-256.

  1. configure instance insert
  2. Auth {priority := 0, method := (insert Scram)};
  1. OK: CONFIGURE INSTANCE

type

cfg::memory

Config - 图6

memory

A scalar type representing a quantity of memory storage.

As with uuid, datetime, and several other types, cfg::memory values are declared by casting from an appropriately formatted string.

  1. select <cfg::memory>'1B'; # 1 byte
  1. {<cfg::memory>'1B'}
  1. select <cfg::memory>'5KiB'; # 5 kibibytes
  1. {<cfg::memory>'5KiB'}
  1. select <cfg::memory>'128MiB'; # 128 mebibytes
  1. {<cfg::memory>'128MiB'}

The numerical component of the value must be a non-negative integer; the units must be one of B|KiB|MiB|GiB|TiB|PiB. We’re using the explicit KiB unit notation (1024 bytes) instead of kB (which is ambiguous, and may mean 1000 or 1024 bytes).