ae141c62ba
generateToken() now returns (string, error) instead of panicking on crypto/rand failure. All json.Unmarshal calls for alert settings now check and propagate errors instead of silently ignoring them. Adds Close() to Store interface for graceful shutdown support. Skips malformed notification entries during Kuma import.
71 lines
2.0 KiB
Go
71 lines
2.0 KiB
Go
package store
|
|
|
|
import (
|
|
"go-upkeep/internal/models"
|
|
)
|
|
|
|
type Store interface {
|
|
Init() error
|
|
|
|
// Sites
|
|
GetSites() ([]models.Site, error)
|
|
AddSite(site models.Site) error
|
|
UpdateSite(site models.Site) error
|
|
UpdateSitePaused(id int, paused bool) error
|
|
DeleteSite(id int) error
|
|
|
|
// Alerts
|
|
GetAllAlerts() ([]models.AlertConfig, error)
|
|
GetAlert(id int) (models.AlertConfig, error)
|
|
AddAlert(name, aType string, settings map[string]string) error
|
|
UpdateAlert(id int, name, aType string, settings map[string]string) error
|
|
DeleteAlert(id int) error
|
|
|
|
// Declarative config support
|
|
GetSiteByName(name string) (models.Site, error)
|
|
GetAlertByName(name string) (models.AlertConfig, error)
|
|
AddSiteReturningID(site models.Site) (int, error)
|
|
AddAlertReturningID(name, aType string, settings map[string]string) (int, error)
|
|
|
|
// Users
|
|
GetAllUsers() ([]models.User, error)
|
|
AddUser(username, publicKey, role string) error
|
|
UpdateUser(id int, username, publicKey, role string) error
|
|
DeleteUser(id int) error
|
|
|
|
// History
|
|
SaveCheck(siteID int, latencyNs int64, isUp bool) error
|
|
SaveCheckFromNode(siteID int, nodeID string, latencyNs int64, isUp bool) error
|
|
LoadAllHistory(limit int) (map[int][]models.CheckRecord, error)
|
|
|
|
// Nodes
|
|
RegisterNode(node models.ProbeNode) error
|
|
GetNode(id string) (models.ProbeNode, error)
|
|
GetAllNodes() ([]models.ProbeNode, error)
|
|
UpdateNodeLastSeen(id string) error
|
|
DeleteNode(id string) error
|
|
|
|
// Logs
|
|
SaveLog(message string) error
|
|
LoadLogs(limit int) ([]string, error)
|
|
|
|
// Maintenance Windows
|
|
GetActiveMaintenanceWindows() ([]models.MaintenanceWindow, error)
|
|
GetAllMaintenanceWindows(limit int) ([]models.MaintenanceWindow, error)
|
|
AddMaintenanceWindow(mw models.MaintenanceWindow) error
|
|
EndMaintenanceWindow(id int) error
|
|
DeleteMaintenanceWindow(id int) error
|
|
IsMonitorInMaintenance(monitorID int) (bool, error)
|
|
|
|
// Preferences
|
|
GetPreference(key string) (string, error)
|
|
SetPreference(key, value string) error
|
|
|
|
// Backup & Restore
|
|
ExportData() (models.Backup, error)
|
|
ImportData(data models.Backup) error
|
|
|
|
// Lifecycle
|
|
Close() error
|
|
}
|