Documentation ¶
Index ¶
- Constants
- Variables
- func AlertPredicatesFromFilter(filter map[string][]string) ([]predicate.Alert, error)
- func BuildAlertRequestFromFilter(alerts *ent.AlertQuery, filter map[string][]string) (*ent.AlertQuery, error)
- func BuildDecisionRequestWithFilter(query *ent.DecisionQuery, filter map[string][]string) (*ent.DecisionQuery, error)
- func GetIpsFromIpRange(host string) (int64, int64, error)
- func IP2Int(ip net.IP) uint32
- func Int2ip(nn uint32) net.IP
- func IsIpv4(host string) bool
- func LastAddress(n *net.IPNet) net.IP
- type Client
- func (c *Client) AlertsCountPerScenario(filters map[string][]string) (map[string]int, error)
- func (c *Client) BulkDeleteDecisions(DecisionsToDelete []*ent.Decision, softDelete bool) (int, error)
- func (c *Client) CountDecisionsByValue(decisionValue string) (int, error)
- func (c *Client) CountDecisionsSinceByValue(decisionValue string, since time.Time) (int, error)
- func (c *Client) CreateAlert(machineID string, alertList []*models.Alert) ([]string, error)
- func (c *Client) CreateAlertBulk(machineId string, alertList []*models.Alert) ([]string, error)
- func (c *Client) CreateBouncer(name string, ipAddr string, apiKey string, authType string) (*ent.Bouncer, error)
- func (c *Client) CreateMachine(machineID *string, password *strfmt.Password, ipAddress string, ...) (*ent.Machine, error)
- func (c *Client) CreateOrUpdateAlert(machineID string, alertItem *models.Alert) (string, error)
- func (c *Client) DeleteAlertByID(id int) error
- func (c *Client) DeleteAlertGraph(alertItem *ent.Alert) error
- func (c *Client) DeleteAlertGraphBatch(alertItems []*ent.Alert) (int, error)
- func (c *Client) DeleteAlertWithFilter(filter map[string][]string) (int, error)
- func (c *Client) DeleteBouncer(name string) error
- func (c *Client) DeleteDecisionById(decisionId int) ([]*ent.Decision, error)
- func (c *Client) DeleteDecisionsWithFilter(filter map[string][]string) (string, []*ent.Decision, error)
- func (c *Client) DeleteWatcher(name string) error
- func (c *Client) FlushAgentsAndBouncers(agentsCfg *csconfig.AuthGCCfg, bouncersCfg *csconfig.AuthGCCfg) error
- func (c *Client) FlushAlerts(MaxAge string, MaxItems int) error
- func (c *Client) FlushOrphans()
- func (c *Client) GetAlertByID(alertID int) (*ent.Alert, error)
- func (c *Client) GetConfigItem(key string) (*string, error)
- func (c *Client) IsMachineRegistered(machineID string) (bool, error)
- func (c *Client) ListBouncers() ([]*ent.Bouncer, error)
- func (c *Client) ListMachines() ([]*ent.Machine, error)
- func (c *Client) QueryAlertWithFilter(filter map[string][]string) ([]*ent.Alert, error)
- func (c *Client) QueryAllDecisionsWithFilters(filters map[string][]string) ([]*ent.Decision, error)
- func (c *Client) QueryDecisionCountByScenario(filters map[string][]string) ([]*DecisionsByScenario, error)
- func (c *Client) QueryDecisionWithFilter(filter map[string][]string) ([]*ent.Decision, error)
- func (c *Client) QueryExpiredDecisionsSinceWithFilters(since time.Time, filters map[string][]string) ([]*ent.Decision, error)
- func (c *Client) QueryExpiredDecisionsWithFilters(filters map[string][]string) ([]*ent.Decision, error)
- func (c *Client) QueryMachineByID(machineID string) (*ent.Machine, error)
- func (c *Client) QueryNewDecisionsSinceWithFilters(since time.Time, filters map[string][]string) ([]*ent.Decision, error)
- func (c *Client) QueryPendingMachine() ([]*ent.Machine, error)
- func (c *Client) SelectBouncer(apiKeyHash string) (*ent.Bouncer, error)
- func (c *Client) SelectBouncerByName(bouncerName string) (*ent.Bouncer, error)
- func (c *Client) SetConfigItem(key string, value string) error
- func (c *Client) SoftDeleteDecisionByID(decisionID int) (int, []*ent.Decision, error)
- func (c *Client) SoftDeleteDecisionsWithFilter(filter map[string][]string) (string, []*ent.Decision, error)
- func (c *Client) StartFlushScheduler(config *csconfig.FlushDBCfg) (*gocron.Scheduler, error)
- func (c *Client) TotalAlerts() (int, error)
- func (c *Client) UpdateBouncerIP(ipAddr string, ID int) error
- func (c *Client) UpdateBouncerLastPull(lastPull time.Time, ID int) error
- func (c *Client) UpdateBouncerTypeAndVersion(bType string, version string, ID int) error
- func (c *Client) UpdateCommunityBlocklist(alertItem *models.Alert) (int, int, int, error)
- func (c *Client) UpdateMachineIP(ipAddr string, ID int) error
- func (c *Client) UpdateMachineLastHeartBeat(machineID string) error
- func (c *Client) UpdateMachineLastPush(machineID string) error
- func (c *Client) UpdateMachineScenarios(scenarios string, ID int) error
- func (c *Client) UpdateMachineVersion(ipAddr string, ID int) error
- func (c *Client) ValidateMachine(machineID string) error
- type DecisionsByScenario
Constants ¶
const CapiListsMachineID = types.ListOrigin
const CapiMachineID = types.CAPIOrigin
Variables ¶
var ( UserExists = errors.New("user already exist") UserNotExists = errors.New("user doesn't exist") HashError = errors.New("unable to hash") InsertFail = errors.New("unable to insert row") QueryFail = errors.New("unable to query") UpdateFail = errors.New("unable to update") DeleteFail = errors.New("unable to delete") ItemNotFound = errors.New("object not found") ParseTimeFail = errors.New("unable to parse time") ParseDurationFail = errors.New("unable to parse duration") MarshalFail = errors.New("unable to marshal") UnmarshalFail = errors.New("unable to unmarshal") BulkError = errors.New("unable to insert bulk") ParseType = errors.New("unable to parse type") InvalidIPOrRange = errors.New("invalid ip address / range") InvalidFilter = errors.New("invalid filter") )
Functions ¶
func BuildAlertRequestFromFilter ¶
func BuildAlertRequestFromFilter(alerts *ent.AlertQuery, filter map[string][]string) (*ent.AlertQuery, error)
func BuildDecisionRequestWithFilter ¶
func BuildDecisionRequestWithFilter(query *ent.DecisionQuery, filter map[string][]string) (*ent.DecisionQuery, error)
func LastAddress ¶
Stolen from : https://github.com/llimllib/ipaddress/ Return the final address of a net range. Convert to IPv4 if possible, otherwise return an ipv6
Types ¶
type Client ¶
type Client struct { Ent *ent.Client CTX context.Context Log *log.Logger CanFlush bool Type string WalMode *bool }
func (*Client) AlertsCountPerScenario ¶
func (*Client) BulkDeleteDecisions ¶
func (c *Client) BulkDeleteDecisions(DecisionsToDelete []*ent.Decision, softDelete bool) (int, error)
BulkDeleteDecisions set the expiration of a bulk of decisions to now() or hard deletes them. We are doing it this way so we can return impacted decisions for sync with CAPI/PAPI
func (*Client) CountDecisionsByValue ¶
func (*Client) CountDecisionsSinceByValue ¶
func (*Client) CreateAlert ¶
func (*Client) CreateAlertBulk ¶
func (*Client) CreateBouncer ¶
func (*Client) CreateMachine ¶
func (*Client) CreateOrUpdateAlert ¶
CreateOrUpdateAlert is specific to PAPI : It checks if alert already exists, otherwise inserts it if alert already exists, it checks it associated decisions already exists if some associated decisions are missing (ie. previous insert ended up in error) it inserts them
func (*Client) DeleteAlertByID ¶
func (*Client) DeleteAlertGraphBatch ¶
func (*Client) DeleteAlertWithFilter ¶
func (*Client) DeleteBouncer ¶
func (*Client) DeleteDecisionById ¶
func (*Client) DeleteDecisionsWithFilter ¶
func (*Client) DeleteWatcher ¶
func (*Client) FlushAgentsAndBouncers ¶
func (*Client) FlushOrphans ¶
func (c *Client) FlushOrphans()
func (*Client) IsMachineRegistered ¶
func (*Client) QueryAlertWithFilter ¶
func (*Client) QueryAllDecisionsWithFilters ¶
func (*Client) QueryDecisionCountByScenario ¶
func (c *Client) QueryDecisionCountByScenario(filters map[string][]string) ([]*DecisionsByScenario, error)
func (*Client) QueryDecisionWithFilter ¶
func (*Client) QueryExpiredDecisionsSinceWithFilters ¶
func (*Client) QueryExpiredDecisionsWithFilters ¶
func (*Client) QueryMachineByID ¶
func (*Client) QueryNewDecisionsSinceWithFilters ¶
func (*Client) SelectBouncer ¶
func (*Client) SelectBouncerByName ¶
func (*Client) SoftDeleteDecisionByID ¶
SoftDeleteDecisionByID set the expiration of a decision to now()
func (*Client) SoftDeleteDecisionsWithFilter ¶
func (c *Client) SoftDeleteDecisionsWithFilter(filter map[string][]string) (string, []*ent.Decision, error)
SoftDeleteDecisionsWithFilter updates the expiration time to now() for the decisions matching the filter, and returns the updated items
func (*Client) StartFlushScheduler ¶
func (*Client) TotalAlerts ¶
func (*Client) UpdateBouncerLastPull ¶
func (*Client) UpdateBouncerTypeAndVersion ¶
func (*Client) UpdateCommunityBlocklist ¶
UpdateCommunityBlocklist is called to update either the community blocklist (or other lists the user subscribed to) it takes care of creating the new alert with the associated decisions, and it will as well deleted the "older" overlapping decisions: 1st pull, you get decisions [1,2,3]. it inserts [1,2,3] 2nd pull, you get decisions [1,2,3,4]. it inserts [1,2,3,4] and will try to delete [1,2,3,4] with a different alert ID and same origin