Documentation
¶
Index ¶
- Variables
- type AppConfig
- type CacheDriverProvider
- type CacheType
- type CipherProvider
- type CookieConfig
- type DB
- type Defaults
- type Encryption
- type HTTP
- type KeyDeriverProvider
- type Logging
- type Option
- type ServerSpec
- type Session
- type SessionStore
- type SessionStoreProvider
- type SessionStoreType
- type SessionTokens
- type Storage
- type StorageProvider
- type WithConfigFilePath
Constants ¶
This section is empty.
Variables ¶
View Source
var AppDefaults = MergeDefaults( LoggingDefaults, HTTPDefaults, DBDefaults, EncryptionDefaults, SessionDefaults, CacheDefaults, )
View Source
var CacheDefaults = Defaults{ "cache.type": CacheTypeNone, "cache.ttl": 15 * time.Minute, }
View Source
var DBDefaults = Defaults{ "db.url": "sqlite://file::memory:?cache=shared", "db.driver": ports.DriverSQLite, }
View Source
var EncryptionDefaults = Defaults{ "encryption.hash.type": encryption.AlgorithmArgon2ID, "encryption.hash.iterations": uint32(3), "encryption.hash.threads": uint8(3), "encryption.hash.memory": uint32(64 * 1024), "encryption.cipher.type": encryption.AlgorithmXChaCha20Poly1305, }
View Source
var HTTPDefaults = Defaults{ "http.server.hostname": "", "http.server.port": 3498, "http.server.readheadertimeout": 5 * time.Second, "http.csrf.secret": mustDefaultSecret(), "http.csrf.secure": true, "http.csrf.samesite": csrf.SameSiteStrictMode, "http.cookie.secure": true, }
View Source
var LoggingDefaults = Defaults{ "logging.level": logging.Var{}, "logging.addsource": false, }
View Source
var SessionDefaults = Defaults{ "session.tokens.issuer": "gophershare", "session.tokens.audience": "gophershare", "session.tokens.lifetime": 1 * time.Hour, "session.tokens.maxskew": 30 * time.Second, "session.store.type": SessionStoreTypeNone, "session.store.ttl": 15 * time.Minute, }
Functions ¶
This section is empty.
Types ¶
type AppConfig ¶
type AppConfig struct { Logging Logging HTTP HTTP DB DB Session Session Encryption Encryption Storage Storage Cache CacheDriverProvider }
type CacheDriverProvider ¶
type CacheDriverProvider interface {
Driver() (ports.CacheDriver, error)
}
type CipherProvider ¶
type CookieConfig ¶
type CookieConfig struct {
Secure bool
}
type Defaults ¶
func MergeDefaults ¶
type Encryption ¶
type Encryption struct { Hash KeyDeriverProvider Cipher CipherProvider }
type HTTP ¶
type HTTP struct { Server ServerSpec CSRF struct { Secret string Secure bool SameSite csrf.SameSiteMode } Cookie CookieConfig }
type KeyDeriverProvider ¶
type KeyDeriverProvider interface {
KeyDeriver() (ports.KeyDeriver, error)
}
type Logging ¶
type Logging struct { Level logging.Var AddSource bool HTTP struct { IncludeRequestHeaders bool IncludeResponseHeaders bool } }
func (*Logging) ConfigureLogging ¶
func (l *Logging) ConfigureLogging()
type ServerSpec ¶
func (ServerSpec) Address ¶
func (s ServerSpec) Address() string
type Session ¶
type Session struct { Tokens SessionTokens Store SessionStoreProvider }
type SessionStore ¶
type SessionStore struct {
Type SessionStoreType
}
type SessionStoreProvider ¶
type SessionStoreProvider interface {
Store() (ports.SessionStore, error)
}
type SessionStoreType ¶
type SessionStoreType string
const ( SessionStoreTypeNone SessionStoreType = "" SessionStoreTypeBadger SessionStoreType = "badger" SessionStoreTypeRedis SessionStoreType = "redis" )
type SessionTokens ¶
type SessionTokens struct { KeySet ports.KeySetManager ActiveKeyID string Issuer string Audience string Lifetime time.Duration MaxSkew time.Duration }
func (SessionTokens) Requirements ¶
func (st SessionTokens) Requirements() authmiddleware.TokenRequirements
func (SessionTokens) TokenBuilder ¶
func (st SessionTokens) TokenBuilder() ports.SessionTokenBuilder
type Storage ¶
type Storage struct {
// contains filtered or unexported fields
}
func (Storage) Thumbnails ¶
func (s Storage) Thumbnails() (ports.FileSystem, error)
type StorageProvider ¶
type StorageProvider interface {
Storage() (ports.FileSystem, error)
}
type WithConfigFilePath ¶
type WithConfigFilePath string
func (WithConfigFilePath) Apply ¶
func (w WithConfigFilePath) Apply(v *viper.Viper)
Click to show internal directories.
Click to hide internal directories.