101 lines
2.9 KiB
Go
101 lines
2.9 KiB
Go
|
|
package config
|
||
|
|
|
||
|
|
type Source string
|
||
|
|
|
||
|
|
const (
|
||
|
|
SourceDefault Source = "default"
|
||
|
|
SourceEnv Source = "environment"
|
||
|
|
SourceDB Source = "db override"
|
||
|
|
)
|
||
|
|
|
||
|
|
type AdminEnabledMode string
|
||
|
|
|
||
|
|
const (
|
||
|
|
AdminEnabledAuto AdminEnabledMode = "auto"
|
||
|
|
AdminEnabledTrue AdminEnabledMode = "true"
|
||
|
|
AdminEnabledFalse AdminEnabledMode = "false"
|
||
|
|
)
|
||
|
|
|
||
|
|
const (
|
||
|
|
SettingGuestUploadsEnabled = "guest_uploads_enabled"
|
||
|
|
SettingAPIEnabled = "api_enabled"
|
||
|
|
SettingZipDownloadsEnabled = "zip_downloads_enabled"
|
||
|
|
SettingOneTimeDownloadsEnabled = "one_time_downloads_enabled"
|
||
|
|
SettingOneTimeDownloadExpirySecs = "one_time_download_expiry_seconds"
|
||
|
|
SettingOneTimeDownloadRetryFail = "one_time_download_retry_on_failure"
|
||
|
|
SettingRenewOnAccessEnabled = "renew_on_access_enabled"
|
||
|
|
SettingRenewOnDownloadEnabled = "renew_on_download_enabled"
|
||
|
|
SettingDefaultGuestExpirySecs = "default_guest_expiry_seconds"
|
||
|
|
SettingMaxGuestExpirySecs = "max_guest_expiry_seconds"
|
||
|
|
SettingGlobalMaxFileSizeBytes = "global_max_file_size_bytes"
|
||
|
|
SettingGlobalMaxBoxSizeBytes = "global_max_box_size_bytes"
|
||
|
|
SettingDefaultUserMaxFileBytes = "default_user_max_file_size_bytes"
|
||
|
|
SettingDefaultUserMaxBoxBytes = "default_user_max_box_size_bytes"
|
||
|
|
SettingSessionTTLSeconds = "session_ttl_seconds"
|
||
|
|
SettingBoxPollIntervalMS = "box_poll_interval_ms"
|
||
|
|
SettingThumbnailBatchSize = "thumbnail_batch_size"
|
||
|
|
SettingThumbnailIntervalSeconds = "thumbnail_interval_seconds"
|
||
|
|
SettingDataDir = "data_dir"
|
||
|
|
)
|
||
|
|
|
||
|
|
type SettingType string
|
||
|
|
|
||
|
|
const (
|
||
|
|
SettingTypeBool SettingType = "bool"
|
||
|
|
SettingTypeInt64 SettingType = "int64"
|
||
|
|
SettingTypeInt SettingType = "int"
|
||
|
|
SettingTypeText SettingType = "text"
|
||
|
|
)
|
||
|
|
|
||
|
|
type SettingDefinition struct {
|
||
|
|
Key string
|
||
|
|
EnvName string
|
||
|
|
Label string
|
||
|
|
Type SettingType
|
||
|
|
Editable bool
|
||
|
|
HardLimit bool
|
||
|
|
Minimum int64
|
||
|
|
}
|
||
|
|
|
||
|
|
type SettingRow struct {
|
||
|
|
Definition SettingDefinition
|
||
|
|
Value string
|
||
|
|
Source Source
|
||
|
|
}
|
||
|
|
|
||
|
|
type Config struct {
|
||
|
|
DataDir string
|
||
|
|
UploadsDir string
|
||
|
|
DBDir string
|
||
|
|
|
||
|
|
AdminPassword string
|
||
|
|
AdminUsername string
|
||
|
|
AdminEmail string
|
||
|
|
AdminEnabled AdminEnabledMode
|
||
|
|
AdminCookieSecure bool
|
||
|
|
AllowAdminSettingsOverride bool
|
||
|
|
|
||
|
|
GuestUploadsEnabled bool
|
||
|
|
APIEnabled bool
|
||
|
|
ZipDownloadsEnabled bool
|
||
|
|
OneTimeDownloadsEnabled bool
|
||
|
|
OneTimeDownloadExpirySeconds int64
|
||
|
|
OneTimeDownloadRetryOnFailure bool
|
||
|
|
RenewOnAccessEnabled bool
|
||
|
|
RenewOnDownloadEnabled bool
|
||
|
|
|
||
|
|
DefaultGuestExpirySeconds int64
|
||
|
|
MaxGuestExpirySeconds int64
|
||
|
|
GlobalMaxFileSizeBytes int64
|
||
|
|
GlobalMaxBoxSizeBytes int64
|
||
|
|
DefaultUserMaxFileSizeBytes int64
|
||
|
|
DefaultUserMaxBoxSizeBytes int64
|
||
|
|
SessionTTLSeconds int64
|
||
|
|
BoxPollIntervalMS int
|
||
|
|
ThumbnailBatchSize int
|
||
|
|
ThumbnailIntervalSeconds int
|
||
|
|
|
||
|
|
sources map[string]Source
|
||
|
|
values map[string]string
|
||
|
|
}
|