Documentation ¶
Overview ¶
Package config is responsible for reading all environment variables and set up the base configuration for a functional application
Index ¶
- Constants
- func Config() (err error)
- func Env() error
- func InvalidateJWT() bool
- func Is2FA() bool
- func Is2FADoubleHash() bool
- func IsAuthCookie() bool
- func IsBasicAuth() bool
- func IsCORS() bool
- func IsCipher() bool
- func IsEmailService() bool
- func IsEmailVerificationCodeUUIDv4() bool
- func IsEmailVerificationService() bool
- func IsHashPass() bool
- func IsJWT() bool
- func IsMongo() bool
- func IsOriginCheck() bool
- func IsPassRecoveryService() bool
- func IsPasswordRecoverCodeUUIDv4() bool
- func IsProd() bool
- func IsRDBMS() bool
- func IsRateLimit() bool
- func IsRedis() bool
- func IsSentry() bool
- func IsTemplatingEngine() bool
- func IsWAF() bool
- type Configuration
- type DatabaseConfig
- type EmailConfig
- type LoggerConfig
- type MongoDB
- type RDBMS
- type REDIS
- type SecurityConfig
- type ServerConfig
- type Status2FA
- type ViewConfig
Constants ¶
const Activated string = "yes"
Activated - "yes" keyword to activate a service
const PrefixJtiBlacklist string = "gorest-blacklist-jti:"
PrefixJtiBlacklist - to manage JWT blacklist in Redis database
Variables ¶
This section is empty.
Functions ¶
func InvalidateJWT ¶
func InvalidateJWT() bool
InvalidateJWT returns true when this feature is enabled in .env
func Is2FADoubleHash ¶
func Is2FADoubleHash() bool
Is2FADoubleHash returns true when double hashing is enabled in .env
func IsAuthCookie ¶
func IsAuthCookie() bool
IsAuthCookie returns true when auth cookie is enabled in .env
func IsBasicAuth ¶
func IsBasicAuth() bool
IsBasicAuth returns true when basic auth is enabled in .env
func IsCipher ¶
func IsCipher() bool
IsCipher returns true when encryption at rest is enabled in .env
func IsEmailService ¶
func IsEmailService() bool
IsEmailService returns true when email service is enabled in .env
func IsEmailVerificationCodeUUIDv4 ¶
func IsEmailVerificationCodeUUIDv4() bool
IsEmailVerificationCodeUUIDv4 returns true when it is enabled in .env
func IsEmailVerificationService ¶
func IsEmailVerificationService() bool
IsEmailVerificationService returns true when it is enabled in .env
func IsHashPass ¶
func IsHashPass() bool
IsHashPass returns true when password hashing is enabled in .env
func IsOriginCheck ¶
func IsOriginCheck() bool
IsOriginCheck returns true when origin check is enabled in .env
func IsPassRecoveryService ¶
func IsPassRecoveryService() bool
IsPassRecoveryService returns true when it is enabled in .env
func IsPasswordRecoverCodeUUIDv4 ¶
func IsPasswordRecoverCodeUUIDv4() bool
IsPasswordRecoverCodeUUIDv4 returns true when it is enabled in .env
func IsRateLimit ¶
func IsRateLimit() bool
IsRateLimit returns true when rate limiting is enabled in .env
func IsTemplatingEngine ¶
func IsTemplatingEngine() bool
IsTemplatingEngine returns true when serving HTML is enabled in .env
Types ¶
type Configuration ¶
type Configuration struct { Version string Database DatabaseConfig EmailConf EmailConfig Logger LoggerConfig Server ServerConfig Security SecurityConfig ViewConfig ViewConfig }
Configuration - server and db configuration variables
type DatabaseConfig ¶
type DatabaseConfig struct { // relational database RDBMS RDBMS // redis database REDIS REDIS // mongo database MongoDB MongoDB }
DatabaseConfig - all database variables
type EmailConfig ¶
type EmailConfig struct { Activate string Provider string APIToken string AddrFrom string TrackOpens bool TrackLinks string DeliveryType string // for templated email EmailVerificationTemplateID int64 PasswordRecoverTemplateID int64 EmailUpdateVerifyTemplateID int64 EmailVerificationCodeUUIDv4 bool EmailVerificationCodeLength uint64 PasswordRecoverCodeUUIDv4 bool PasswordRecoverCodeLength uint64 EmailVerificationTag string PasswordRecoverTag string HTMLModel string EmailVerifyValidityPeriod uint64 // in seconds PassRecoverValidityPeriod uint64 // in seconds }
EmailConfig - for external email services
type LoggerConfig ¶
type LoggerConfig struct { Activate string SentryDsn string PerformanceTracing string TracesSampleRate string }
LoggerConfig ...
type MongoDB ¶
type MongoDB struct { Activate string Env struct { AppName string URI string PoolSize uint64 PoolMon string ConnTTL int } }
MongoDB - mongo database variables
type RDBMS ¶
type RDBMS struct { Activate string Env struct { Driver string Host string Port string TimeZone string } Access struct { DbName string User string Pass string } Ssl struct { Sslmode string MinTLS string RootCA string ServerCert string ClientCert string ClientKey string } Conn struct { MaxIdleConns int MaxOpenConns int ConnMaxLifetime time.Duration } Log struct { LogLevel int } }
RDBMS - relational database variables
type REDIS ¶
type REDIS struct { Activate string Env struct { Host string Port string } Conn struct { PoolSize int ConnTTL int } }
REDIS - redis database variables
type SecurityConfig ¶
type SecurityConfig struct { UserPassMinLength int MustBasicAuth string BasicAuth struct { Username string Password string } MustJWT string JWT middleware.JWTParameters InvalidateJWT string // when user logs off, invalidate the tokens AuthCookieActivate bool AuthCookiePath string AuthCookieDomain string AuthCookieSecure bool AuthCookieHTTPOnly bool AuthCookieSameSite http.SameSite ServeJwtAsResBody bool MustHash string HashPass lib.HashPassConfig HashSec string // optional secret for argon2id hashing // data encryption at rest MustCipher bool CipherKey []byte // for 256-bit ChaCha20-Poly1305 Blake2bSec []byte // optional secret for blake2b hashing VerifyEmail bool RecoverPass bool MustFW string Firewall struct { ListType string IP string } MustCORS string CORS []middleware.CORSPolicy CheckOrigin string RateLimit string TrustedPlatform string Must2FA string TwoFA struct { Issuer string Crypto crypto.Hash Digits int Status Status2FA PathQR string DoubleHash bool } }
SecurityConfig ...
type ServerConfig ¶
type ServerConfig struct { ServerHost string ServerPort string // public port of server ServerEnv string }
ServerConfig ...
type ViewConfig ¶
ViewConfig - HTML renderer