Splitgraph has been acquired by EDB! Read the blog post.

Introduction

The sgr configuration file is usually stored in the user's home directory (~/.splitgraph/.sgconfig). If there's a configuration file in the current working directory or the environment variable SG_CONFIG_FILE is set, that file is used instead.

It's possible to generate a configuration file with defaults by doing:

$ sgr config -sc > ~/.splitgraph/.sgconfig

Note that the .sgconfig file gets edited automatically by sgr and any values there that are equal to their default values get deleted.

It's also possible to override various other configuration flags using environment variables. You can inspect the current configuration in use by sgr by running

$ sgr config

In-engine configuration

Note that the sgr library that's running inside the engine also needs configuration. This is mostly required for layered querying, in which case sgr inside the engine connects to the engine itself to read object metadata and needs credentials to the remote engine in order to download the actual objects.

It's often the case that connection parameters used by the engine to connect to itself are different than ones used by sgr to connect to the engine. This happens with engines managed by sgr engine that run the PostgreSQL server on port 5432 but use Docker's port forwarding to publish the service on a different port on the host.

When the engine connects to itself, SG_ENGINE_FDW_HOST/PORT connection parameters are used.

If the engine is managed by sgr engine, the configuration file gets reinjected into it by most sgr operations that change it, for example, sgr engine add, sgr cloud register or sgr cloud login. However, if there is any out-of-band change to .sgconfig or issues with running layered queries, the configuration file can be reinjected into the engine by running sgr engine configure.

If the engine is managed manually or through Docker Compose, the configuration file can be bind-mounted into the engine. See this example Compose file for reference.

Adding a new remote

The default section in the configuration file contains flags in use by the default sgr engine. When the engine is switched to a different global engine using the SG_ENGINE flag or when sgr is connecting to that engine for a push/pull, the configuration flags in that section take precedence.

By default, sgr adds a remote data.splitgraph.com to the configuration file when the client registers or logs in to Splitgraph. To add another remote, add this to the .sgconfig file:

[remote: other_engine]
SG_ENGINE_ADMIN_USER=sgr
SG_ENGINE_ADMIN_PWD=supersecure
SG_ENGINE_POSTGRES_DB_NAME=splitgraph
SG_ENGINE_HOST=localhost
SG_ENGINE_PORT=5431
SG_ENGINE_USER=sgr
SG_ENGINE_PWD=supersecure
SG_ENGINE_DB_NAME=splitgraph

See the engine-to-engine sync example for a setup showcasing pushing data between two sgr engines.

Configuration flag reference

The configuration flag reference page lists all flags supported by the configuration file.