config

package
v1.6.37 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2024 License: MIT Imports: 15 Imported by: 21

Documentation

Overview

Package config is responsible for reading all environment variables and set up the base configuration for a functional application

Index

Constants

View Source
const Activated string = "yes"

Activated - "yes" keyword to activate a service

View Source
const PrefixJtiBlacklist string = "gorest-blacklist-jti:"

PrefixJtiBlacklist - to manage JWT blacklist in Redis database

Variables

This section is empty.

Functions

func Config

func Config() (err error)

Config - load all the configurations

func Env added in v1.6.6

func Env() error

Env - load the configurations from .env

func InvalidateJWT added in v1.6.9

func InvalidateJWT() bool

InvalidateJWT returns true when this feature is enabled in .env

func Is2FA added in v1.6.9

func Is2FA() bool

Is2FA returns true when two-factor authentication is enabled in .env

func Is2FADoubleHash added in v1.6.18

func Is2FADoubleHash() bool

Is2FADoubleHash returns true when double hashing is enabled in .env

func IsAuthCookie added in v1.6.9

func IsAuthCookie() bool

IsAuthCookie returns true when auth cookie is enabled in .env

func IsBasicAuth added in v1.6.9

func IsBasicAuth() bool

IsBasicAuth returns true when basic auth is enabled in .env

func IsCORS added in v1.6.9

func IsCORS() bool

IsCORS returns true when CORS is enabled in .env

func IsCipher added in v1.6.18

func IsCipher() bool

IsCipher returns true when encryption at rest is enabled in .env

func IsEmailService added in v1.6.9

func IsEmailService() bool

IsEmailService returns true when email service is enabled in .env

func IsEmailVerificationCodeUUIDv4 added in v1.6.25

func IsEmailVerificationCodeUUIDv4() bool

IsEmailVerificationCodeUUIDv4 returns true when it is enabled in .env

func IsEmailVerificationService added in v1.6.9

func IsEmailVerificationService() bool

IsEmailVerificationService returns true when it is enabled in .env

func IsHashPass added in v1.6.9

func IsHashPass() bool

IsHashPass returns true when password hashing is enabled in .env

func IsJWT added in v1.6.9

func IsJWT() bool

IsJWT returns true when JWT is enabled in .env

func IsMongo added in v1.6.9

func IsMongo() bool

IsMongo returns true when Mongo is enabled in .env

func IsOriginCheck added in v1.6.27

func IsOriginCheck() bool

IsOriginCheck returns true when origin check is enabled in .env

func IsPassRecoveryService added in v1.6.9

func IsPassRecoveryService() bool

IsPassRecoveryService returns true when it is enabled in .env

func IsPasswordRecoverCodeUUIDv4 added in v1.6.25

func IsPasswordRecoverCodeUUIDv4() bool

IsPasswordRecoverCodeUUIDv4 returns true when it is enabled in .env

func IsProd added in v1.6.23

func IsProd() bool

IsProd returns true when app is running in production mode

func IsRDBMS added in v1.6.9

func IsRDBMS() bool

IsRDBMS returns true when RDBMS is enabled in .env

func IsRateLimit added in v1.6.27

func IsRateLimit() bool

IsRateLimit returns true when rate limiting is enabled in .env

func IsRedis added in v1.6.9

func IsRedis() bool

IsRedis returns true when Redis is enabled in .env

func IsSentry added in v1.6.9

func IsSentry() bool

IsSentry returns true when sentry logger is enabled in .env

func IsTemplatingEngine added in v1.6.9

func IsTemplatingEngine() bool

IsTemplatingEngine returns true when serving HTML is enabled in .env

func IsWAF added in v1.6.9

func IsWAF() bool

IsWAF returns true when app firewall 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

func GetConfig added in v1.6.1

func GetConfig() *Configuration

GetConfig - return all the config variables

type DatabaseConfig

type DatabaseConfig struct {
	// relational database
	RDBMS RDBMS

	// redis database
	REDIS REDIS

	// mongo database
	MongoDB MongoDB
}

DatabaseConfig - all database variables

type EmailConfig added in v1.6.1

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 added in v1.2.4

type LoggerConfig struct {
	Activate           string
	SentryDsn          string
	PerformanceTracing string
	TracesSampleRate   string
}

LoggerConfig ...

type MongoDB added in v1.4.3

type MongoDB struct {
	Activate string
	Env      struct {
		AppName  string
		URI      string
		PoolSize uint64
		PoolMon  string
		ConnTTL  int
	}
}

MongoDB - mongo database variables

type RDBMS added in v1.4.3

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 added in v1.4.3

type REDIS struct {
	Activate string
	Env      struct {
		Host string
		Port string
	}
	Conn struct {
		PoolSize int
		ConnTTL  int
	}
}

REDIS - redis database variables

type SecurityConfig added in v1.3.0

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 Status2FA added in v1.6.1

type Status2FA struct {
	Verified string
	On       string
	Off      string
	Invalid  string
}

Status2FA - user's 2FA statuses

type ViewConfig added in v1.5.0

type ViewConfig struct {
	Activate  string
	Directory string
}

ViewConfig - HTML renderer

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL