package models type EmailConfig struct { FromEmail string `yaml:"from_email"` Username string `yaml:"username"` Password string `yaml:"password"` Server string `yaml:"server"` } type SigningConfig struct { Key string `yaml:"key"` Algorithm string `yaml:"algorithm"` } type MongoDBConfig struct { Url string `yaml:"url"` Username string `yaml:"username"` Password string `yaml:"password"` Database string `yaml:"database"` Collection string `yaml:"collection"` } type OidcAuthConfig struct { IssuerUrl string `yaml:"issuer_url"` ClientId string `yaml:"client_id"` ClientSecret string `yaml:"client_secret"` } type UserPassAuthConfig struct { Type DatabaseType `yaml:"type"` Mongo *MongoDBConfig `yaml:"mongo"` } type AuthenticationConfig struct { Type AuthMode `yaml:"type"` Oidc OidcAuthConfig `yaml:"oidc"` UserPass UserPassAuthConfig `yaml:"user_pass"` } type UsersDatabaseConfig struct { Type DatabaseType `yaml:"type"` Mongo *MongoDBConfig `yaml:"mongo"` } type ServersInstanceManagerConfig struct { Type InstanceManagerType } type ServersDatabaseConfig struct { Type DatabaseType `yaml:"type"` Mongo *MongoDBConfig `yaml:"mongo"` } type ServersAuthorizationDatabaseConfig struct { Type DatabaseType `yaml:"type"` Mongo *MongoDBConfig `yaml:"mongo"` } type GlobalConfig struct { // Features Configs Email EmailConfig `yaml:"email"` Domain string `yaml:"domain"` Signing SigningConfig `yaml:"signing"` Authentication AuthenticationConfig `yaml:"authentication"` // Database Configs ServersDatabase ServersDatabaseConfig `yaml:"servers_database"` UsersDatabase UsersDatabaseConfig `yaml:"users_database"` ServersAuthorizationDatabase ServersAuthorizationDatabaseConfig `yaml:"servers_authorization_database"` }