reputation

package
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2026 License: AGPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Path string
}

Config holds reputation database configuration

type Database

type Database struct {
	DB                   *sql.DB
	EventsRepo           repository.EventsRepository
	ScoresRepo           repository.ScoresRepository
	WarmUpRepo           repository.WarmUpRepository
	CircuitBreakerRepo   repository.CircuitBreakerRepository
	HistoricalScoresRepo repository.HistoricalScoresRepository
	SendingIPRepo        repository.SendingIPRepository
	TelemetryService     *service.TelemetryService
	AuditorService       *service.AuditorService
	// contains filtered or unexported fields
}

Database represents the reputation database connection and repositories

func InitDatabase

func InitDatabase(cfg Config, logger *zap.Logger) (*Database, error)

InitDatabase initializes the reputation database and creates all tables

func (*Database) Close

func (d *Database) Close() error

Close closes the reputation database connection

func (*Database) GetCircuitBreakerRepo

func (d *Database) GetCircuitBreakerRepo() repository.CircuitBreakerRepository

GetCircuitBreakerRepo returns the circuit breaker repository

func (*Database) GetEventRepo

func (d *Database) GetEventRepo() repository.EventsRepository

GetEventRepo returns the events repository

func (*Database) GetScoresRepo

func (d *Database) GetScoresRepo() repository.ScoresRepository

GetScoresRepo returns the scores repository

type DomainProvider

type DomainProvider interface {
	// GetActiveDomains returns all active domain names for reputation tracking
	GetActiveDomains(ctx context.Context) ([]string, error)
}

DomainProvider provides a list of active domains for reputation tracking

type IPProvider

type IPProvider interface {
	// GetActiveIPs returns all active sending IP addresses
	GetActiveIPs(ctx context.Context) ([]string, error)
}

IPProvider provides a list of sending IP addresses for reputation tracking

type Scheduler

type Scheduler struct {
	// contains filtered or unexported fields
}

Scheduler handles periodic reputation management tasks

func NewScheduler

func NewScheduler(
	telemetryService *service.TelemetryService,
	circuitBreakerSvc *service.CircuitBreakerService,
	warmUpSvc *service.WarmUpService,
	logger *zap.Logger,
) *Scheduler

NewScheduler creates a new reputation scheduler

func (*Scheduler) SetDataProviders

func (s *Scheduler) SetDataProviders(
	scoresRepo repository.ScoresRepository,
	sendingIPRepo repository.SendingIPRepository,
)

SetDataProviders sets the domain and IP providers for scheduled tasks

func (*Scheduler) SetDomainProvider

func (s *Scheduler) SetDomainProvider(provider DomainProvider)

SetDomainProvider sets a custom domain provider

func (*Scheduler) SetIPProvider

func (s *Scheduler) SetIPProvider(provider IPProvider)

SetIPProvider sets a custom IP provider

func (*Scheduler) SetPhase5Services

func (s *Scheduler) SetPhase5Services(
	gmailPostmasterSvc *service.GmailPostmasterService,
	microsoftSNDSSvc *service.MicrosoftSNDSService,
	arfParserSvc *service.ARFParserService,
	dmarcAnalyzerSvc *service.DMARCAnalyzerService,
	predictionsSvc *service.PredictionsService,
	providerLimitsSvc *service.ProviderRateLimitsService,
	alertsSvc *service.AlertsService,
)

SetPhase5Services sets Phase 5 services for advanced automation

func (*Scheduler) Start

func (s *Scheduler) Start(ctx context.Context) error

Start begins the reputation scheduler goroutines

func (*Scheduler) Stop

func (s *Scheduler) Stop() error

Stop gracefully stops the reputation scheduler

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL