package schema // RedisNode Represents a Node. type RedisNode struct { Host string `mapstructure:"host"` Port int `mapstructure:"port"` } // RedisHighAvailabilityConfiguration holds configuration variables for Redis Cluster/Sentinel. type RedisHighAvailabilityConfiguration struct { SentinelName string `mapstructure:"sentinel_name"` SentinelPassword string `mapstructure:"sentinel_password"` Nodes []RedisNode `mapstructure:"nodes"` RouteByLatency bool `mapstructure:"route_by_latency"` RouteRandomly bool `mapstructure:"route_randomly"` } // RedisSessionConfiguration represents the configuration related to redis session store. type RedisSessionConfiguration struct { Host string `mapstructure:"host"` Port int `mapstructure:"port"` Username string `mapstructure:"username"` Password string `mapstructure:"password"` DatabaseIndex int `mapstructure:"database_index"` MaximumActiveConnections int `mapstructure:"maximum_active_connections"` MinimumIdleConnections int `mapstructure:"minimum_idle_connections"` TLS *TLSConfig `mapstructure:"tls"` HighAvailability *RedisHighAvailabilityConfiguration `mapstructure:"high_availability"` } // SessionConfiguration represents the configuration related to user sessions. type SessionConfiguration struct { Name string `mapstructure:"name"` Domain string `mapstructure:"domain"` SameSite string `mapstructure:"same_site"` Secret string `mapstructure:"secret"` Expiration string `mapstructure:"expiration"` Inactivity string `mapstructure:"inactivity"` RememberMeDuration string `mapstructure:"remember_me_duration"` Redis *RedisSessionConfiguration `mapstructure:"redis"` } // DefaultSessionConfiguration is the default session configuration. var DefaultSessionConfiguration = SessionConfiguration{ Name: "authelia_session", Expiration: "1h", Inactivity: "5m", RememberMeDuration: "1M", SameSite: "lax", }