Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The configuration file

corium transactor --config <path> reads storage selection and read-only discovery credentials from one EDN file. A flag on the command line overrides the value in the file.

The file holds one EDN map. Keys are plain keywords without a namespace. An unknown key is an error, and the message names the key.

Example

{:store :s3
 :data-dir "/srv/corium"
 :s3-bucket "corium-prod"
 :s3-prefix "corium/"
 :s3-region "us-east-1"
 :s3-read-only-role-arn "arn:aws:iam::123456789012:role/corium-reader"
 :s3-read-only-role-duration-seconds 900}
corium transactor --config /etc/corium/transactor.edn

Keys

KeyTypeEquivalent flag
:storeKeyword: :mem, :fs, :postgres, :turso, :s3--store
:data-dirString--data-dir
:turso-pathString--turso-path
:postgres-urlString--postgres-url
:postgres-read-only-urlString--postgres-read-only-url
:plugin-read-only-configString holding a JSON object--plugin-read-only-config
:s3-bucketString--s3-bucket
:s3-prefixString--s3-prefix
:s3-regionString--s3-region
:s3-endpoint-urlString--s3-endpoint-url
:s3-read-only-access-key-idString--s3-read-only-access-key-id
:s3-read-only-secret-access-keyString--s3-read-only-secret-access-key
:s3-read-only-session-tokenString--s3-read-only-session-token
:s3-read-only-role-arnString--s3-read-only-role-arn
:s3-read-only-role-session-nameString--s3-read-only-role-session-name
:s3-read-only-role-duration-secondsInteger--s3-read-only-role-duration-seconds
:s3-read-only-role-external-idString--s3-read-only-role-external-id

What the file does not hold

The file covers storage only. It does not hold the listen address, the owner identity, or the lease values. It does not hold the index pacing, the garbage collection schedule, the authentication flags, or the storage keys.

:store names a built-in backend only. A plugin backend needs --store <kind>:<json> on the command line, and the file carries no plugin paths. See storage plugins.

Put those on the command line, or in the unit file of the service manager.

Not implemented. There is no configuration file for the peer server, the PostgreSQL wire server, or the client commands. They take flags and environment variables only.

Protecting the file

The file can hold static secrets. Two rules apply.

  • Set the file mode so that only the transactor user can read it. For example, run chmod 600 /etc/corium/transactor.edn.
  • Prefer the file, or the environment variables listed in environment variables, over process arguments. Process arguments are visible to every user on the host.