// Package config defines PawSQL's declarative runtime configuration. package config import "time" // Config is the typed representation of a Barkfile. type Config struct { Listen string TLS TLSConfig Databases []DatabaseConfig } // TLSConfig identifies the certificate material used to terminate client TLS. type TLSConfig struct { CertFile string KeyFile string } // DatabaseConfig describes one PostgreSQL database. Hostname is optional: // clients without TLS SNI route by the database's configured Name. Exactly one // of Upstream and Postgres must be configured. type DatabaseConfig struct { Name string Hostname string Upstream string Postgres *PostgresConfig } // PostgresConfig declares a PawSQL-managed PostgreSQL container. IdleTimeout // starts after the last proxied client session closes. TrafficIdleTimeout // applies to open sessions with no proxied bytes. Zero disables either timeout. type PostgresConfig struct { Image string Volume string PasswordEnv string IdleTimeout time.Duration TrafficIdleTimeout time.Duration }