Add an auto-cleanup worker

This commit is contained in:
nemunaire 2025-10-18 12:25:27 +07:00
commit 4304784796
5 changed files with 136 additions and 7 deletions

View file

@ -37,6 +37,7 @@ func declareFlags(o *Config) {
flag.DurationVar(&o.Analysis.DNSTimeout, "dns-timeout", o.Analysis.DNSTimeout, "Timeout when performing DNS query")
flag.DurationVar(&o.Analysis.HTTPTimeout, "http-timeout", o.Analysis.HTTPTimeout, "Timeout when performing HTTP query")
flag.Var(&StringArray{&o.Analysis.RBLs}, "rbl", "Append a RBL (use this option multiple time to append multiple RBLs)")
flag.DurationVar(&o.ReportRetention, "report-retention", o.ReportRetention, "How long to keep reports (e.g., 720h, 30d). 0 = keep forever")
// Others flags are declared in some other files likes sources, storages, ... when they need specials configurations
}

View file

@ -35,11 +35,12 @@ import (
// Config represents the application configuration
type Config struct {
DevProxy string
Bind string
Database DatabaseConfig
Email EmailConfig
Analysis AnalysisConfig
DevProxy string
Bind string
Database DatabaseConfig
Email EmailConfig
Analysis AnalysisConfig
ReportRetention time.Duration // How long to keep reports. 0 = keep forever
}
// DatabaseConfig contains database connection settings
@ -65,8 +66,9 @@ type AnalysisConfig struct {
// DefaultConfig returns a configuration with sensible defaults
func DefaultConfig() *Config {
return &Config{
DevProxy: "",
Bind: ":8080",
DevProxy: "",
Bind: ":8080",
ReportRetention: 0, // Keep reports forever by default
Database: DatabaseConfig{
Type: "sqlite",
DSN: "happydeliver.db",