backend/models/config.go
2025-03-13 23:58:00 +02:00

62 lines
1.7 KiB
Go

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 {
HashingAlgorithm string `yaml:"hashing_algorithm"`
Salt string `yaml:"salt"`
}
type AuthorizationConfig struct {
Type string `yaml:"type"`
Oidc OidcAuthConfig `yaml:"oidc"`
UserPass UserPassAuthConfig `yaml:"user_pass"`
}
type AuthentikDBConfig struct {
}
type ServersDatabaseConfig struct {
Type string `yaml:"type"`
Mongo *MongoDBConfig `yaml:"mongo"`
}
type UsersDatabaseConfig struct {
Type string `yaml:"type"`
Mongo *MongoDBConfig `yaml:"mongo"`
Authentik *AuthentikDBConfig `yaml:"authentik"`
}
type GlobalConfig struct {
Email EmailConfig `yaml:"email"`
Signing SigningConfig `yaml:"signing"`
ServersDatabase ServersDatabaseConfig `yaml:"servers_database"`
UsersDatabase UsersDatabaseConfig `yaml:"users_database"`
Domain string `yaml:"domain"`
Auth AuthorizationConfig `yaml:"auth"`
}