list

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2025 License: Apache-2.0 Imports: 63 Imported by: 3

Documentation

Overview

Package list provides a public list of SCALIBR-internal extraction plugins.

Index

Constants

This section is empty.

Variables

View Source
var (

	// C++ source extractors.
	CppSource = InitMap{conanlock.Name: {conanlock.New}}
	// Java source extractors.
	JavaSource = InitMap{
		gradlelockfile.Name:                {gradlelockfile.New},
		gradleverificationmetadataxml.Name: {gradleverificationmetadataxml.New},

		pomxml.Name:    {pomxml.New},
		pomxmlnet.Name: {pomxmlnet.NewDefault},
	}
	// Java artifact extractors.
	JavaArtifact = InitMap{
		javaarchive.Name: {javaarchive.NewDefault},
	}
	// Javascript source extractors.
	JavascriptSource = InitMap{
		packagejson.Name:     {packagejson.NewDefault},
		packagelockjson.Name: {packagelockjson.NewDefault},
		pnpmlock.Name:        {pnpmlock.New},
		yarnlock.Name:        {yarnlock.New},
		bunlock.Name:         {bunlock.New},
	}
	// Javascript artifact extractors.
	JavascriptArtifact = InitMap{
		packagejson.Name: {packagejson.NewDefault},
	}
	// Python source extractors.
	PythonSource = InitMap{
		requirements.Name: {requirements.NewDefault},
		setup.Name:        {setup.NewDefault},
		pipfilelock.Name:  {pipfilelock.New},
		pdmlock.Name:      {pdmlock.New},
		poetrylock.Name:   {poetrylock.New},
		condameta.Name:    {condameta.NewDefault},
		uvlock.Name:       {uvlock.New},
	}
	// Python artifact extractors.
	PythonArtifact = InitMap{
		wheelegg.Name: {wheelegg.NewDefault},
	}
	// Go source extractors.
	GoSource = InitMap{
		gomod.Name: {gomod.New},
	}
	// Go artifact extractors.
	GoArtifact = InitMap{
		gobinary.Name: {gobinary.NewDefault},
	}
	// Dart source extractors.
	DartSource = InitMap{pubspec.Name: {pubspec.New}}
	// Erlang source extractors.
	ErlangSource = InitMap{mixlock.Name: {mixlock.New}}
	// Elixir source extractors.
	ElixirSource = InitMap{elixir.Name: {elixir.NewDefault}}
	// Haskell source extractors.
	HaskellSource = InitMap{
		stacklock.Name: {stacklock.NewDefault},
		cabal.Name:     {cabal.NewDefault},
	}
	// R source extractors
	RSource = InitMap{renvlock.Name: {renvlock.New}}
	// Ruby source extractors.
	RubySource = InitMap{
		gemspec.Name:     {gemspec.NewDefault},
		gemfilelock.Name: {gemfilelock.New},
	}
	// Rust source extractors.
	RustSource = InitMap{
		cargolock.Name:      {cargolock.New},
		cargoauditable.Name: {cargoauditable.NewDefault},
		cargotoml.Name:      {cargotoml.New},
	}
	// SBOM extractors.
	SBOM = InitMap{
		cdx.Name:  {cdx.New},
		spdx.Name: {spdx.New},
	}
	// Dotnet (.NET) source extractors.
	DotnetSource = InitMap{
		depsjson.Name:         {depsjson.NewDefault},
		packagesconfig.Name:   {packagesconfig.NewDefault},
		packageslockjson.Name: {packageslockjson.NewDefault},
	}
	// Dotnet (.NET) artifact extractors.
	DotnetArtifact = InitMap{
		dotnetpe.Name: {dotnetpe.NewDefault},
	}
	// PHP Source extractors.
	PHPSource = InitMap{composerlock.Name: {composerlock.New}}
	// Swift source extractors.
	SwiftSource = InitMap{
		packageresolved.Name: {packageresolved.NewDefault},
		podfilelock.Name:     {podfilelock.NewDefault},
	}

	// Container extractors.
	Containers = InitMap{containerd.Name: {containerd.NewDefault}} // Wordpress extractors.

	// OS extractors.
	OS = InitMap{
		dpkg.Name:     {dpkg.NewDefault},
		apk.Name:      {apk.NewDefault},
		rpm.Name:      {rpm.NewDefault},
		cos.Name:      {cos.NewDefault},
		snap.Name:     {snap.NewDefault},
		nix.Name:      {nix.New},
		module.Name:   {module.NewDefault},
		vmlinuz.Name:  {vmlinuz.NewDefault},
		pacman.Name:   {pacman.NewDefault},
		portage.Name:  {portage.NewDefault},
		flatpak.Name:  {flatpak.NewDefault},
		homebrew.Name: {homebrew.New},
		macapps.Name:  {macapps.NewDefault},
	}

	// Misc extractors.
	Misc = InitMap{
		vscodeextensions.Name: {vscodeextensions.New},
		wordpressplugins.Name: {wordpressplugins.NewDefault},
		chromeextensions.Name: {chromeextensions.New},
	}

	// SourceCode extractors find packages in source code contexts (e.g. lockfiles).
	SourceCode = concat(
		CppSource,
		JavaSource,
		JavascriptSource,
		PythonSource,
		GoSource,
		DartSource,
		ErlangSource,
		ElixirSource,
		HaskellSource,
		PHPSource,
		RSource,
		RubySource,
		RustSource,
		DotnetSource,
		SwiftSource,
	)

	// Artifact extractors find packages on built systems (e.g. parsing
	// descriptors of installed packages).
	Artifact = concat(
		JavaArtifact,
		JavascriptArtifact,
		PythonArtifact,
		GoArtifact,
		DotnetArtifact,
		SBOM,
		OS,
		Misc,
		Containers,
	)

	// Default extractors that are recommended to be enabled.
	Default = concat(
		JavaSource, JavaArtifact,
		JavascriptSource, JavascriptArtifact,
		PythonSource, PythonArtifact,
		GoSource, GoArtifact,
		OS,
	)
	// All extractors available from SCALIBR.
	All = concat(
		SourceCode,
		Artifact,
	)
)

LINT.IfChange

Functions

func ExtractorFromName

func ExtractorFromName(name string) (filesystem.Extractor, error)

ExtractorFromName returns a single extractor based on its exact name.

func ExtractorsFromNames

func ExtractorsFromNames(names []string) ([]filesystem.Extractor, error)

ExtractorsFromNames returns a deduplicated list of extractors from a list of names.

func FilterByCapabilities added in v0.1.4

func FilterByCapabilities(exs []filesystem.Extractor, capabs *plugin.Capabilities) []filesystem.Extractor

FilterByCapabilities returns all extractors from the given list that can run under the specified capabilities (OS, direct filesystem access, network access, etc.) of the scanning environment.

func FromCapabilities added in v0.1.3

func FromCapabilities(capabs *plugin.Capabilities) []filesystem.Extractor

FromCapabilities returns all extractors that can run under the specified capabilities (OS, direct filesystem access, network access, etc.) of the scanning environment.

Types

type InitFn added in v0.1.7

type InitFn func() filesystem.Extractor

InitFn is the extractor initializer function.

type InitMap added in v0.1.7

type InitMap map[string][]InitFn

InitMap is a map of extractor names to their initers.

Jump to

Keyboard shortcuts

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