cwhub

package
v1.3.1-rc1 Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2022 License: MIT Imports: 19 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var COLLECTIONS = "collections"
View Source
var HubBranch = "master"
View Source
var HubIndexFile = ".index.json"
View Source
var MissingHubIndex = errors.New("hub index can't be found")
View Source
var PARSERS = "parsers"

managed configuration types

View Source
var PARSERS_OVFLW = "postoverflows"
View Source
var RawFileURLTemplate = "https://hub-cdn.crowdsec.net/%s/%s"
View Source
var ReferenceMissingError = errors.New("Reference(s) missing in collection")

To be used when reference(s) (is/are) missing in a collection

View Source
var SCENARIOS = "scenarios"

Functions

func AddItem added in v1.0.0

func AddItem(itemType string, item Item) error

func CollecDepsCheck

func CollecDepsCheck(v *Item) error

func DisplaySummary

func DisplaySummary()

func DownloadDataIfNeeded added in v1.2.0

func DownloadDataIfNeeded(hub *csconfig.Hub, target Item, force bool) error

func DownloadHubIdx

func DownloadHubIdx(hub *csconfig.Hub) ([]byte, error)

func GetHubIdx

func GetHubIdx(hub *csconfig.Hub) error

func GetItemMap added in v1.0.0

func GetItemMap(itemType string) map[string]Item

func GetUpstreamInstalledScenariosAsString added in v1.0.0

func GetUpstreamInstalledScenariosAsString() ([]string, error)

func GetVersionStatus added in v1.0.10

func GetVersionStatus(v *Item) int

GetVersionStatus : semver requires 'v' prefix

func ItemStatus

func ItemStatus(v Item) (string, bool, bool, bool)

returns: human-text, Enabled, Warning, Unmanaged

func LoadPkgIndex

func LoadPkgIndex(buff []byte) (map[string]map[string]Item, error)

LoadPkgIndex loads a local .index.json file and returns the map of parsers/scenarios/collections associated

func LocalSync

func LocalSync(hub *csconfig.Hub) (error, []string)

Updates the infos from HubInit() with the local state

func SyncDir added in v1.0.0

func SyncDir(hub *csconfig.Hub, dir string) (error, []string)

func UpdateHubIdx

func UpdateHubIdx(hub *csconfig.Hub) error

Types

type Item

type Item struct {
	/*descriptive info*/
	Type                 string   `yaml:"type,omitempty" json:"type,omitempty"`                                     //parser|postoverflows|scenario|collection(|enrich)
	Stage                string   `json:"stage,omitempty" yaml:"stage,omitempty,omitempty"`                         //Stage for parser|postoverflow : s00-raw/s01-...
	Name                 string   `json:"name,omitempty"`                                                           //as seen in .config.json, usually "author/name"
	FileName             string   `json:"file_name,omitempty"`                                                      //the filename, ie. apache2-logs.yaml
	Description          string   `yaml:"description,omitempty" json:"description,omitempty"`                       //as seen in .config.json
	Author               string   `json:"author,omitempty"`                                                         //as seen in .config.json
	References           []string `yaml:"references,omitempty" json:"references,omitempty"`                         //as seen in .config.json
	BelongsToCollections []string `yaml:"belongs_to_collections,omitempty" json:"belongs_to_collections,omitempty"` /*if it's part of collections, track name here*/

	/*remote (hub) infos*/
	RemoteURL  string                 `yaml:"remoteURL,omitempty" json:"remoteURL,omitempty"` //the full remote uri of file in http
	RemotePath string                 `json:"path,omitempty" yaml:"remote_path,omitempty"`    //the path relative to git ie. /parsers/stage/author/file.yaml
	RemoteHash string                 `yaml:"hash,omitempty" json:"hash,omitempty"`           //the meow
	Version    string                 `json:"version,omitempty"`                              //the last version
	Versions   map[string]ItemVersion `json:"versions,omitempty" yaml:"-"`                    //the list of existing versions

	/*local (deployed) infos*/
	LocalPath string `yaml:"local_path,omitempty" json:"local_path,omitempty"` //the local path relative to ${CFG_DIR}
	//LocalHubPath string
	LocalVersion string `json:"local_version,omitempty"`
	LocalHash    string `json:"local_hash,omitempty"` //the local meow
	Installed    bool   `json:"installed,omitempty"`
	Downloaded   bool   `json:"downloaded,omitempty"`
	UpToDate     bool   `json:"up_to_date,omitempty"`
	Tainted      bool   `json:"tainted,omitempty"` //has it been locally modified
	Local        bool   `json:"local,omitempty"`   //if it's a non versioned control one

	/*if it's a collection, it not a single file*/
	Parsers       []string `yaml:"parsers,omitempty" json:"parsers,omitempty"`
	PostOverflows []string `yaml:"postoverflows,omitempty" json:"postoverflows,omitempty"`
	Scenarios     []string `yaml:"scenarios,omitempty" json:"scenarios,omitempty"`
	Collections   []string `yaml:"collections,omitempty" json:"collections,omitempty"`
}

Item can be : parsed, scenario, collection

func DisableItem

func DisableItem(hub *csconfig.Hub, target Item, purge bool, force bool) (Item, error)

DisableItem to disable an item managed by the hub, removes the symlink if purge is true

func DownloadItem

func DownloadItem(hub *csconfig.Hub, target Item, overwrite bool) (Item, error)

func DownloadLatest

func DownloadLatest(hub *csconfig.Hub, target Item, overwrite bool, updateOnly bool) (Item, error)

DownloadLatest will download the latest version of Item to the tdir directory

func EnableItem

func EnableItem(hub *csconfig.Hub, target Item) (Item, error)

func GetItem added in v1.0.0

func GetItem(itemType string, itemName string) *Item

func GetItemByPath added in v1.0.0

func GetItemByPath(itemType string, itemPath string) (*Item, error)

GetItemByPath retrieves the item from hubIdx based on the path. To achieve this it will resolve symlink to find associated hub item.

func GetUpstreamInstalledScenarios added in v1.0.0

func GetUpstreamInstalledScenarios() ([]Item, error)

type ItemHubStatus added in v1.2.3

type ItemHubStatus struct {
	Name         string `json:"name"`
	LocalVersion string `json:"local_version"`
	LocalPath    string `json:"local_path"`
	Description  string `json:"description"`
	UTF8_Status  string `json:"utf8_status"`
	Status       string `json:"status"`
}

func GetHubStatusForItemType added in v1.2.3

func GetHubStatusForItemType(itemType string, name string, all bool) []ItemHubStatus

Returns a list of entries for packages : name, status, local_path, local_version, utf8_status (fancy)

type ItemVersion

type ItemVersion struct {
	Digest     string `json:"digest,omitempty"`
	Deprecated bool   `json:"deprecated,omitempty"`
}

Jump to

Keyboard shortcuts

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