database

package
v1.6.1 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2024 License: MIT Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CAPIPullLockTimeout = 10
	CapiPullLockName    = "pullCAPI"
)
View Source
const CapiListsMachineID = types.ListOrigin
View Source
const CapiMachineID = types.CAPIOrigin

Variables

View Source
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 AlertPredicatesFromFilter added in v1.4.2

func AlertPredicatesFromFilter(filter map[string][]string) ([]predicate.Alert, error)

func BuildAlertRequestFromFilter added in v1.0.0

func BuildAlertRequestFromFilter(alerts *ent.AlertQuery, filter map[string][]string) (*ent.AlertQuery, error)

func BuildDecisionRequestWithFilter added in v1.0.0

func BuildDecisionRequestWithFilter(query *ent.DecisionQuery, filter map[string][]string) (*ent.DecisionQuery, error)

func GetIpsFromIpRange added in v1.0.0

func GetIpsFromIpRange(host string) (int64, int64, error)

func IP2Int added in v1.0.0

func IP2Int(ip net.IP) uint32

func Int2ip added in v1.0.0

func Int2ip(nn uint32) net.IP

func IsIpv4 added in v1.0.0

func IsIpv4(host string) bool

func LastAddress added in v1.0.0

func LastAddress(n *net.IPNet) net.IP

Stolen from : https://github.com/llimllib/ipaddress/ Return the final address of a net range. Convert to IPv4 if possible, otherwise return an ipv6

func ParseDuration added in v1.5.3

func ParseDuration(d string) (time.Duration, error)

Types

type Client added in v1.0.0

type Client struct {
	Ent      *ent.Client
	CTX      context.Context
	Log      *log.Logger
	CanFlush bool
	Type     string
	WalMode  *bool
	// contains filtered or unexported fields
}

func NewClient added in v1.0.0

func NewClient(config *csconfig.DatabaseCfg) (*Client, error)

func (*Client) AcquireLock added in v1.6.1

func (c *Client) AcquireLock(name string) error

func (*Client) AcquirePullCAPILock added in v1.6.1

func (c *Client) AcquirePullCAPILock() error

func (*Client) AlertsCountPerScenario added in v1.4.0

func (c *Client) AlertsCountPerScenario(filters map[string][]string) (map[string]int, error)

func (*Client) BulkDeleteBouncers added in v1.5.3

func (c *Client) BulkDeleteBouncers(bouncers []*ent.Bouncer) (int, error)

func (*Client) BulkDeleteDecisions added in v1.5.0

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) BulkDeleteWatchers added in v1.5.3

func (c *Client) BulkDeleteWatchers(machines []*ent.Machine) (int, error)

func (*Client) CountDecisionsByValue added in v1.4.0

func (c *Client) CountDecisionsByValue(decisionValue string) (int, error)

func (*Client) CountDecisionsSinceByValue added in v1.4.0

func (c *Client) CountDecisionsSinceByValue(decisionValue string, since time.Time) (int, error)

func (*Client) CreateAlert added in v1.0.0

func (c *Client) CreateAlert(machineID string, alertList []*models.Alert) ([]string, error)

func (*Client) CreateBouncer added in v1.0.0

func (c *Client) CreateBouncer(name string, ipAddr string, apiKey string, authType string) (*ent.Bouncer, error)

func (*Client) CreateMachine added in v1.0.0

func (c *Client) CreateMachine(machineID *string, password *strfmt.Password, ipAddress string, isValidated bool, force bool, authType string) (*ent.Machine, error)

func (*Client) CreateOrUpdateAlert added in v1.5.0

func (c *Client) CreateOrUpdateAlert(machineID string, alertItem *models.Alert) (string, error)

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 added in v1.4.2

func (c *Client) DeleteAlertByID(id int) error

func (*Client) DeleteAlertGraph added in v1.0.0

func (c *Client) DeleteAlertGraph(alertItem *ent.Alert) error

func (*Client) DeleteAlertGraphBatch added in v1.2.1

func (c *Client) DeleteAlertGraphBatch(alertItems []*ent.Alert) (int, error)

func (*Client) DeleteAlertWithFilter added in v1.0.0

func (c *Client) DeleteAlertWithFilter(filter map[string][]string) (int, error)

func (*Client) DeleteBouncer added in v1.0.0

func (c *Client) DeleteBouncer(name string) error

func (*Client) DeleteDecisionById added in v1.0.0

func (c *Client) DeleteDecisionById(decisionId int) ([]*ent.Decision, error)

func (*Client) DeleteDecisionsWithFilter added in v1.0.0

func (c *Client) DeleteDecisionsWithFilter(filter map[string][]string) (string, []*ent.Decision, error)

func (*Client) DeleteWatcher added in v1.0.0

func (c *Client) DeleteWatcher(name string) error

func (*Client) FlushAgentsAndBouncers added in v1.4.0

func (c *Client) FlushAgentsAndBouncers(agentsCfg *csconfig.AuthGCCfg, bouncersCfg *csconfig.AuthGCCfg) error

func (*Client) FlushAlerts added in v1.0.0

func (c *Client) FlushAlerts(MaxAge string, MaxItems int) error

func (*Client) FlushOrphans added in v1.1.0

func (c *Client) FlushOrphans()

func (*Client) GetAlertByID added in v1.0.0

func (c *Client) GetAlertByID(alertID int) (*ent.Alert, error)

func (*Client) GetConfigItem added in v1.5.0

func (c *Client) GetConfigItem(key string) (*string, error)

func (*Client) IsLocked added in v1.6.1

func (c *Client) IsLocked(err error) bool

func (*Client) IsMachineRegistered added in v1.0.0

func (c *Client) IsMachineRegistered(machineID string) (bool, error)

func (*Client) ListBouncers added in v1.0.0

func (c *Client) ListBouncers() ([]*ent.Bouncer, error)

func (*Client) ListMachines added in v1.0.0

func (c *Client) ListMachines() ([]*ent.Machine, error)

func (*Client) QueryAlertWithFilter added in v1.0.0

func (c *Client) QueryAlertWithFilter(filter map[string][]string) ([]*ent.Alert, error)

func (*Client) QueryAllDecisionsWithFilters added in v1.1.0

func (c *Client) QueryAllDecisionsWithFilters(filters map[string][]string) ([]*ent.Decision, error)

func (*Client) QueryBouncersLastPulltimeLT added in v1.5.3

func (c *Client) QueryBouncersLastPulltimeLT(t time.Time) ([]*ent.Bouncer, error)

func (*Client) QueryDecisionCountByScenario added in v1.4.0

func (c *Client) QueryDecisionCountByScenario(filters map[string][]string) ([]*DecisionsByScenario, error)

func (*Client) QueryDecisionWithFilter added in v1.0.0

func (c *Client) QueryDecisionWithFilter(filter map[string][]string) ([]*ent.Decision, error)

func (*Client) QueryExpiredDecisionsSinceWithFilters added in v1.1.0

func (c *Client) QueryExpiredDecisionsSinceWithFilters(since time.Time, filters map[string][]string) ([]*ent.Decision, error)

func (*Client) QueryExpiredDecisionsWithFilters added in v1.1.0

func (c *Client) QueryExpiredDecisionsWithFilters(filters map[string][]string) ([]*ent.Decision, error)

func (*Client) QueryLastValidatedHeartbeatLT added in v1.5.3

func (c *Client) QueryLastValidatedHeartbeatLT(t time.Time) ([]*ent.Machine, error)

func (*Client) QueryMachineByID added in v1.0.0

func (c *Client) QueryMachineByID(machineID string) (*ent.Machine, error)

func (*Client) QueryNewDecisionsSinceWithFilters added in v1.1.0

func (c *Client) QueryNewDecisionsSinceWithFilters(since time.Time, filters map[string][]string) ([]*ent.Decision, error)

func (*Client) QueryPendingMachine added in v1.0.0

func (c *Client) QueryPendingMachine() ([]*ent.Machine, error)

func (*Client) ReleaseLock added in v1.6.1

func (c *Client) ReleaseLock(name string) error

func (*Client) ReleaseLockWithTimeout added in v1.6.1

func (c *Client) ReleaseLockWithTimeout(name string, timeout int) error

func (*Client) ReleasePullCAPILock added in v1.6.1

func (c *Client) ReleasePullCAPILock() error

func (*Client) SelectBouncer added in v1.0.0

func (c *Client) SelectBouncer(apiKeyHash string) (*ent.Bouncer, error)

func (*Client) SelectBouncerByName added in v1.4.0

func (c *Client) SelectBouncerByName(bouncerName string) (*ent.Bouncer, error)

func (*Client) SetConfigItem added in v1.5.0

func (c *Client) SetConfigItem(key string, value string) error

func (*Client) SoftDeleteDecisionByID added in v1.0.0

func (c *Client) SoftDeleteDecisionByID(decisionID int) (int, []*ent.Decision, error)

SoftDeleteDecisionByID set the expiration of a decision to now()

func (*Client) SoftDeleteDecisionsWithFilter added in v1.0.0

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 added in v1.0.0

func (c *Client) StartFlushScheduler(config *csconfig.FlushDBCfg) (*gocron.Scheduler, error)

func (*Client) TotalAlerts added in v1.0.0

func (c *Client) TotalAlerts() (int, error)

func (*Client) UpdateBouncerIP added in v1.0.0

func (c *Client) UpdateBouncerIP(ipAddr string, id int) error

func (*Client) UpdateBouncerLastPull added in v1.0.0

func (c *Client) UpdateBouncerLastPull(lastPull time.Time, id int) error

func (*Client) UpdateBouncerTypeAndVersion added in v1.0.0

func (c *Client) UpdateBouncerTypeAndVersion(bType string, version string, id int) error

func (*Client) UpdateCommunityBlocklist added in v1.2.0

func (c *Client) UpdateCommunityBlocklist(alertItem *models.Alert) (int, int, int, error)

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

func (*Client) UpdateMachineIP added in v1.0.0

func (c *Client) UpdateMachineIP(ipAddr string, ID int) error

func (*Client) UpdateMachineLastHeartBeat added in v1.4.0

func (c *Client) UpdateMachineLastHeartBeat(machineID string) error

func (*Client) UpdateMachineLastPush added in v1.3.0

func (c *Client) UpdateMachineLastPush(machineID string) error

func (*Client) UpdateMachineScenarios added in v1.0.0

func (c *Client) UpdateMachineScenarios(scenarios string, ID int) error

func (*Client) UpdateMachineVersion added in v1.0.0

func (c *Client) UpdateMachineVersion(ipAddr string, ID int) error

func (*Client) ValidateMachine added in v1.0.0

func (c *Client) ValidateMachine(machineID string) error

type DecisionsByScenario added in v1.4.0

type DecisionsByScenario struct {
	Scenario string
	Count    int
	Origin   string
	Type     string
}

Directories

Path Synopsis
ent

Jump to

Keyboard shortcuts

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