39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
// Package barkfile parses, validates, and watches Barkfile configuration.
|
|
package barkfile
|
|
|
|
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
|
|
}
|