package config import "strconv" const ( KeyUploadMaxFileSizeBytes = "upload.max_file_size_bytes" KeyUploadMultiMaxFiles = "upload.multi.max_files" KeyUploadMaxHours = "upload.max_hours" KeyRateLimitLoginPerMinute = "ratelimit.login.per_minute" KeyRateLimitApiPerMinute = "ratelimit.api.per_minute" KeyRateLimitApiBurst = "ratelimit.api.burst" KeyRateLimitLoginBurst = "ratelimit.login.burst" KeyUseNtfy = "use_ntfy" KeyNtfyUrl = "ntfy.url" KeyNtfyTopic = "ntfy.topic" ) // Defaults (used when DB does not have an override) const ( DefaultUploadMaxFileSizeBytes int64 = 10 << 30 // 10 GiB (matches MaxMultipartMemory intent) DefaultUploadMultiMaxFiles = 50 DefaultUploadMaxHours = 24 * 7 // 7 days DefaultRateLimitLoginPerMinute = 5 DefaultRateLimitLoginBurst = 10 DefaultRateLimitApiPerMinute = 60 DefaultRateLimitApiBurst = 30 DefaultUseNtfy = 0 DefaultNtfyUrl = "" DefaultNtfyTopic = "" ) // DefaultKeyValues returns a map of config keys to their default string values, for use when initializing the database. // Code duplication be dammed func DefaultKeyValues() map[string]string { return map[string]string{ KeyUploadMaxFileSizeBytes: strconv.FormatInt(DefaultUploadMaxFileSizeBytes, 10), KeyUploadMultiMaxFiles: strconv.Itoa(DefaultUploadMultiMaxFiles), KeyUploadMaxHours: strconv.Itoa(DefaultUploadMaxHours), KeyRateLimitLoginPerMinute: strconv.Itoa(DefaultRateLimitLoginPerMinute), KeyRateLimitLoginBurst: strconv.Itoa(DefaultRateLimitLoginBurst), KeyRateLimitApiPerMinute: strconv.Itoa(DefaultRateLimitApiPerMinute), KeyRateLimitApiBurst: strconv.Itoa(DefaultRateLimitApiBurst), KeyUseNtfy: strconv.Itoa(DefaultUseNtfy), KeyNtfyUrl: DefaultNtfyUrl, KeyNtfyTopic: DefaultNtfyTopic, } }