cwhub

package
v1.0.10 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2021 License: MIT Imports: 18 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://raw.githubusercontent.com/crowdsecurity/hub/%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 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 HubStatus

func HubStatus(itemType string, name string, all bool) []map[string]string

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

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

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

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

	/*if it's a collection, it not a single file*/
	Parsers       []string `yaml:"parsers,omitempty"`
	PostOverflows []string `yaml:"postoverflows,omitempty"`
	Scenarios     []string `yaml:"scenarios,omitempty"`
	Collections   []string `yaml:"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) (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 ItemVersion

type ItemVersion struct {
	Digest     string
	Deprecated bool
}

Jump to

Keyboard shortcuts

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