53 lines
1.7 KiB
Go
53 lines
1.7 KiB
Go
package schema
|
|
|
|
import "time"
|
|
|
|
// LocalStorageConfiguration represents the configuration when using local storage.
|
|
type LocalStorageConfiguration struct {
|
|
Path string `koanf:"path"`
|
|
}
|
|
|
|
// SQLStorageConfiguration represents the configuration of the SQL database.
|
|
type SQLStorageConfiguration struct {
|
|
Host string `koanf:"host"`
|
|
Port int `koanf:"port"`
|
|
Database string `koanf:"database"`
|
|
Username string `koanf:"username"`
|
|
Password string `koanf:"password"`
|
|
Timeout time.Duration `koanf:"timeout"`
|
|
}
|
|
|
|
// MySQLStorageConfiguration represents the configuration of a MySQL database.
|
|
type MySQLStorageConfiguration struct {
|
|
SQLStorageConfiguration `koanf:",squash"`
|
|
}
|
|
|
|
// PostgreSQLStorageConfiguration represents the configuration of a Postgres database.
|
|
type PostgreSQLStorageConfiguration struct {
|
|
SQLStorageConfiguration `koanf:",squash"`
|
|
SSLMode string `koanf:"sslmode"`
|
|
}
|
|
|
|
// StorageConfiguration represents the configuration of the storage backend.
|
|
type StorageConfiguration struct {
|
|
Local *LocalStorageConfiguration `koanf:"local"`
|
|
MySQL *MySQLStorageConfiguration `koanf:"mysql"`
|
|
PostgreSQL *PostgreSQLStorageConfiguration `koanf:"postgres"`
|
|
|
|
EncryptionKey string `koanf:"encryption_key"`
|
|
}
|
|
|
|
// DefaultPostgreSQLStorageConfiguration represents the default PostgreSQL configuration.
|
|
var DefaultPostgreSQLStorageConfiguration = PostgreSQLStorageConfiguration{
|
|
SQLStorageConfiguration: SQLStorageConfiguration{
|
|
Timeout: 5 * time.Second,
|
|
},
|
|
}
|
|
|
|
// DefaultMySQLStorageConfiguration represents the default MySQL configuration.
|
|
var DefaultMySQLStorageConfiguration = MySQLStorageConfiguration{
|
|
SQLStorageConfiguration: SQLStorageConfiguration{
|
|
Timeout: 5 * time.Second,
|
|
},
|
|
}
|