65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
// FILE: lixenwraith/config/constant.go
|
|
package config
|
|
|
|
import "time"
|
|
|
|
// Timing constants for production use
|
|
const (
|
|
SpinWaitInterval = 5 * time.Millisecond
|
|
MinPollInterval = 100 * time.Millisecond
|
|
ShutdownTimeout = 100 * time.Millisecond
|
|
DefaultDebounce = 500 * time.Millisecond
|
|
DefaultPollInterval = time.Second
|
|
DefaultReloadTimeout = 5 * time.Second
|
|
)
|
|
|
|
// Network validation limits
|
|
const (
|
|
MaxIPv6Length = 45 // Maximum IPv6 address string length
|
|
MaxCIDRLength = 49 // Maximum IPv6 CIDR string length
|
|
MaxURLLength = 2048 // Maximum URL string length
|
|
MinPortNumber = 1
|
|
MaxPortNumber = 65535
|
|
)
|
|
|
|
// File system permissions
|
|
const (
|
|
DirPermissions = 0755
|
|
FilePermissions = 0644
|
|
)
|
|
|
|
// Format identifiers
|
|
const (
|
|
FormatTOML = "toml"
|
|
FormatJSON = "json"
|
|
FormatYAML = "yaml"
|
|
FormatAuto = "auto"
|
|
)
|
|
|
|
// Watch event types
|
|
const (
|
|
EventFileDeleted = "file_deleted"
|
|
EventPermissionsChanged = "permissions_changed"
|
|
EventReloadError = "reload_error"
|
|
EventReloadTimeout = "reload_timeout"
|
|
EventPrecedenceChanged = "precedence"
|
|
)
|
|
|
|
// Channel and resource limits
|
|
const (
|
|
DefaultMaxWatchers = 100
|
|
WatchChannelBuffer = 10
|
|
MaxValueSize = 1024 * 1024 // 1MB
|
|
)
|
|
|
|
// Network defaults
|
|
const (
|
|
IPv4Any = "0.0.0.0"
|
|
IPv6Any = "::"
|
|
)
|
|
|
|
// File discovery defaults
|
|
var (
|
|
DefaultConfigExtensions = []string{".toml", ".conf", ".config"}
|
|
XDGSystemPaths = []string{"/etc/xdg", "/etc"}
|
|
) |