45 lines
967 B
Go
45 lines
967 B
Go
package system
|
|
|
|
import "time"
|
|
|
|
type JWTSettings struct {
|
|
SigningKey string
|
|
Issuer string
|
|
Expires time.Duration
|
|
Buffer time.Duration
|
|
}
|
|
|
|
type CaptchaSettings struct {
|
|
KeyLong int
|
|
ImageWidth int
|
|
ImageHeight int
|
|
StoreExpiration time.Duration
|
|
}
|
|
|
|
type MediaSettings struct {
|
|
SessionTTL int
|
|
MaxFileSize int64
|
|
ChunkDir string
|
|
}
|
|
|
|
const DefaultMaxMediaFileSize int64 = 100 << 20
|
|
const UploadBodyOverhead int64 = 1 << 20
|
|
|
|
func (s MediaSettings) EffectiveMaxFileSize() int64 {
|
|
if s.MaxFileSize > 0 {
|
|
return s.MaxFileSize
|
|
}
|
|
return DefaultMaxMediaFileSize
|
|
}
|
|
|
|
// RuntimeSettings exposes only the active values needed by the application.
|
|
// The data implementation resolves every call from config.Store so hot reloads
|
|
// take effect without rebuilding services.
|
|
type RuntimeSettings interface {
|
|
RouterPrefix() string
|
|
JWTSettings() JWTSettings
|
|
CaptchaSettings() CaptchaSettings
|
|
MediaSettings() MediaSettings
|
|
UseMultipoint() bool
|
|
}
|