MCPcopy
hub / github.com/crowdsecurity/crowdsec / DataSource

Interface DataSource

pkg/acquisition/types/types.go:19–45  ·  view source on GitHub ↗

DataSource is the common interface implemented by all acquisition modules. A DataSource can always be configured from YAML.

Source from the content-addressed store, hash-verified

17//
18// A DataSource can always be configured from YAML.
19type DataSource interface {
20 // identity, lifecycle
21
22 // GetMode returns the operating mode of the datasource (e.g. TAIL, CAT, SERVER).
23 GetMode() string
24
25 // GetName returns the module name (e.g. "file", "journalctl", "docker").
26 GetName() string
27
28 // GetUuid returns a unique identifier for this datasource instance.
29 GetUuid() string
30
31 Dump() any
32
33 // CanRun reports whether the datasource can run on the current platform/environment
34 // (e.g. journalctl not available on some systems like BSD).
35 CanRun() error
36
37 // configuration
38
39 // UnmarshalConfig decodes and pre-validates the YAML datasource configuration.
40 // Implementations should validate everything that can be checked without I/O.
41 UnmarshalConfig(yamlConfig []byte) error
42
43 // Configure completes datasource configuration and performs runtime checks.
44 Configure(ctx context.Context, yamlConfig []byte, logger *log.Entry, metricsLevel metrics.AcquisitionMetricsLevel) error
45}
46
47// DataSourceFactory constructs a new unconfigured DataSource instance.
48type DataSourceFactory func() DataSource

Callers 21

acquireSourceFunction · 0.65
TestConfigureByDSNFunction · 0.65
GetMetricsFunction · 0.65
acquireSourceFunction · 0.65
StartAcquisitionFunction · 0.65
assertMetricsFunction · 0.65
AppsecEventGenerationFunction · 0.65
NotifyMethod · 0.65
NotifyMethod · 0.65
StartAcquisitionFunction · 0.65
TestDataSourceConfigureFunction · 0.65

Implementers 15

MockSourcepkg/acquisition/acquisition_test.go
MockCatpkg/acquisition/acquisition_test.go
MockTailpkg/acquisition/acquisition_test.go
MockSourceByDSNpkg/acquisition/acquisition_test.go
TailModeNoTailerpkg/acquisition/acquisition_test.go
CatModeNoFetcherpkg/acquisition/acquisition_test.go
Sourcepkg/acquisition/modules/kinesis/source
Sourcepkg/acquisition/modules/http/source.go
Sourcepkg/acquisition/modules/wineventlog/so
Sourcepkg/acquisition/modules/journalctl/sou
Sourcepkg/acquisition/modules/s3/source.go
Sourcepkg/acquisition/modules/kafka/source.g

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…