Add experimental cataloger capabilities command (#4317)

* add info command from generated capabilities

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* correct gentoo and arch ecosystems

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* rename os pkg types

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* better binary cataloger description

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* expose metadata and pacakge types in json

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* expose json schema types

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* add completeness tests for metadata types

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* latest generation

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* fix linting

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* improve testing a docs

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* fix tests and linting

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* restore goreleaser config

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* tweak diagram

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* fix pdm

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* chore: java binary data

Signed-off-by: Keith Zantow <kzantow@gmail.com>

* new capability descriptions for gguf and python

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* correct poetry lock integrity hash claim

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* fix compile error

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* fix: remove purl version from overrides

Signed-off-by: Keith Zantow <kzantow@gmail.com>

* fix lua deps ref

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* keep gguf as ai ecosystem

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* split packages.yaml to multiple files by go package

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* ensure tests do not use go test cache

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* sort json output for info command

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* docs: fix ocaml, php, and portage capabilities yaml

Signed-off-by: Will Murphy <willmurphyscode@users.noreply.github.com>

* chore: update erlang capabilities

Signed-off-by: Keith Zantow <kzantow@gmail.com>

* chore: update java capabilities

Signed-off-by: Keith Zantow <kzantow@gmail.com>

* chore: update javascript capabilities

Signed-off-by: Keith Zantow <kzantow@gmail.com>

* chore: update linux kernel capabilities

Signed-off-by: Keith Zantow <kzantow@gmail.com>

* remove missing tests

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* fix package.yaml references

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* revert license list change

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* check for drift in capability descriptions

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* regenerate capabilities

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* test cleanup

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* use fixture cache in static analysis

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* claim fixtures pre-req for cap generation

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* update documentation with correct regeneration procedure

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* chore: ruby-gemspec-cataloger finds no dependencies

Signed-off-by: Will Murphy <willmurphyscode@users.noreply.github.com>

* chore: fix python docs and config comment

Signed-off-by: Will Murphy <willmurphyscode@users.noreply.github.com>

* chore: commit re-generated java yaml

Signed-off-by: Will Murphy <willmurphyscode@users.noreply.github.com>

* add cataloger selection to caps command

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* re-generate cap yamls

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* fix tests for cataloger selection

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* fix cli test

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* add missing tests

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* fix linting

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* rename cmd to `cataloger info`

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* [wip] change capability description locations

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* [wip] continued

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* [wip] adjust for import cycles

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* correct docs

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* fix linting

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

---------

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>
Signed-off-by: Keith Zantow <kzantow@gmail.com>
Signed-off-by: Will Murphy <willmurphyscode@users.noreply.github.com>
Co-authored-by: Keith Zantow <kzantow@gmail.com>
Co-authored-by: Will Murphy <willmurphyscode@users.noreply.github.com>
This commit is contained in:
Alex Goodman
2025-12-22 19:34:10 +00:00
committed by GitHub
co-authored by Keith Zantow Will Murphy
parent ae1a247f3d
commit b3c70da3ea
116 changed files with 17277 additions and 139 deletions
+46
View File
@@ -0,0 +1,46 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: ai # MANUAL
name: gguf-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/ai/cataloger.go
function: NewGGUFCataloger
selectors: # AUTO-GENERATED
- ai
- directory
- gguf
- image
- ml
- model
- package
parsers: # AUTO-GENERATED structure
- function: parseGGUFModel
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/*.gguf'
metadata_types: # AUTO-GENERATED
- pkg.GGUFFileHeader
package_types: # AUTO-GENERATED
- model
json_schema_types: # AUTO-GENERATED
- GgufFileHeader
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- GGUFFileHeader.MetadataKeyValuesHash
@@ -0,0 +1,54 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: alpine # MANUAL
name: apk-db-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/alpine/cataloger.go
function: NewDBCataloger
selectors: # AUTO-GENERATED
- alpine
- apk
- directory
- image
- installed
- linux
- os
- package
parsers: # AUTO-GENERATED structure
- function: parseApkDB
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/lib/apk/db/installed'
metadata_types: # AUTO-GENERATED
- pkg.ApkDBEntry
package_types: # AUTO-GENERATED
- apk
json_schema_types: # AUTO-GENERATED
- ApkDbEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: true
evidence:
- ApkDBEntry.Files
- name: package_manager.files.digests
default: true
evidence:
- ApkDBEntry.Files[].Digest
- name: package_manager.package_integrity_hash
default: true
evidence:
- ApkDBEntry.Checksum
+53
View File
@@ -0,0 +1,53 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: alpm # MANUAL
name: alpm-db-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/arch/cataloger.go
function: NewDBCataloger
selectors: # AUTO-GENERATED
- alpm
- archlinux
- directory
- image
- installed
- linux
- os
- package
- pacman
parsers: # AUTO-GENERATED structure
- function: parseAlpmDB
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/var/lib/pacman/local/**/desc'
metadata_types: # AUTO-GENERATED
- pkg.AlpmDBEntry
package_types: # AUTO-GENERATED
- alpm
json_schema_types: # AUTO-GENERATED
- AlpmDbEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: true
evidence:
- AlpmDBEntry.Files
- name: package_manager.files.digests
default: true
evidence:
- AlpmDBEntry.Files[].Digests
- name: package_manager.package_integrity_hash
default: false
+801
View File
@@ -0,0 +1,801 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: binary # MANUAL
name: binary-classifier-cataloger # AUTO-GENERATED
type: custom # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/binary/classifier_cataloger.go
function: NewClassifierCataloger
selectors: # AUTO-GENERATED
- binary
- declared
- directory
- image
- installed
- package
detectors: # AUTO-GENERATED
- method: glob
criteria:
- '**/python*'
packages:
- class: python-binary
name: python
purl: pkg:generic/python
cpes:
- cpe:2.3:a:python_software_foundation:python:*:*:*:*:*:*:*:*
- cpe:2.3:a:python:python:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/libpython*.so*'
packages:
- class: python-binary-lib
name: python
purl: pkg:generic/python
cpes:
- cpe:2.3:a:python_software_foundation:python:*:*:*:*:*:*:*:*
- cpe:2.3:a:python:python:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/libpypy*.so*'
packages:
- class: pypy-binary-lib
name: pypy
purl: pkg:generic/pypy
cpes: []
type: BinaryPkg
- method: glob
criteria:
- '**/go'
packages:
- class: go-binary
name: go
purl: pkg:generic/go
cpes:
- cpe:2.3:a:golang:go:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/libjulia-internal.so'
packages:
- class: julia-binary
name: julia
purl: pkg:generic/julia
cpes:
- cpe:2.3:a:julialang:julia:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/helm'
packages:
- class: helm
name: helm
purl: pkg:golang/helm.sh/helm
cpes:
- cpe:2.3:a:helm:helm:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/redis-server'
packages:
- class: redis-binary
name: redis
purl: pkg:generic/redis
cpes:
- cpe:2.3:a:redislabs:redis:*:*:*:*:*:*:*:*
- cpe:2.3:a:redis:redis:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/node'
packages:
- class: nodejs-binary
name: node
purl: pkg:generic/node
cpes:
- cpe:2.3:a:nodejs:node.js:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/VERSION*'
packages:
- class: go-binary-hint
name: go
purl: pkg:generic/go
cpes:
- cpe:2.3:a:golang:go:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/busybox'
packages:
- class: busybox-binary
name: busybox
purl: pkg:generic/busybox
cpes:
- cpe:2.3:a:busybox:busybox:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/getopt'
packages:
- class: util-linux-binary
name: util-linux
purl: pkg:generic/util-linux
cpes:
- cpe:2.3:a:kernel:util-linux:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/haproxy'
packages:
- class: haproxy-binary
name: haproxy
purl: pkg:generic/haproxy
cpes:
- cpe:2.3:a:haproxy:haproxy:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/perl'
packages:
- class: perl-binary
name: perl
purl: pkg:generic/perl
cpes:
- cpe:2.3:a:perl:perl:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/composer*'
packages:
- class: php-composer-binary
name: composer
purl: pkg:generic/composer
cpes:
- cpe:2.3:a:getcomposer:composer:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/httpd'
packages:
- class: httpd-binary
name: httpd
purl: pkg:generic/httpd
cpes:
- cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/memcached'
packages:
- class: memcached-binary
name: memcached
purl: pkg:generic/memcached
cpes:
- cpe:2.3:a:memcached:memcached:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/traefik'
packages:
- class: traefik-binary
name: traefik
purl: pkg:generic/traefik
cpes:
- cpe:2.3:a:traefik:traefik:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/arangosh'
packages:
- class: arangodb-binary
name: arangodb
purl: pkg:generic/arangodb
cpes:
- cpe:2.3:a:arangodb:arangodb:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/postgres'
packages:
- class: postgresql-binary
name: postgresql
purl: pkg:generic/postgresql
cpes:
- cpe:2.3:a:postgresql:postgresql:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/mysql'
packages:
- class: mysql-binary
name: mysql
purl: pkg:generic/mysql
cpes:
- cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/mysql'
packages:
- class: mysql-binary
name: percona-server
purl: pkg:generic/percona-server
cpes:
- cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*
- cpe:2.3:a:percona:percona_server:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/mysql'
packages:
- class: mysql-binary
name: percona-xtradb-cluster
purl: pkg:generic/percona-xtradb-cluster
cpes:
- cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*
- cpe:2.3:a:percona:percona_server:*:*:*:*:*:*:*:*
- cpe:2.3:a:percona:xtradb_cluster:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/xtrabackup'
packages:
- class: xtrabackup-binary
name: percona-xtrabackup
purl: pkg:generic/percona-xtrabackup
cpes:
- cpe:2.3:a:percona:xtrabackup:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/{mariadb,mysql}'
packages:
- class: mariadb-binary
name: mariadb
purl: pkg:generic/mariadb
cpes:
- cpe:2.3:a:mariadb:mariadb:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/libstd-????????????????.so'
packages:
- class: rust-standard-library-linux
name: rust
purl: pkg:generic/rust
cpes:
- cpe:2.3:a:rust-lang:rust:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/libstd-????????????????.dylib'
packages:
- class: rust-standard-library-macos
name: rust
purl: pkg:generic/rust
cpes:
- cpe:2.3:a:rust-lang:rust:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/ruby'
packages:
- class: ruby-binary
name: ruby
purl: pkg:generic/ruby
cpes:
- cpe:2.3:a:ruby-lang:ruby:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/erlexec'
packages:
- class: erlang-binary
name: erlang
purl: pkg:generic/erlang
cpes:
- cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/beam.smp'
packages:
- class: erlang-alpine-binary
name: erlang
purl: pkg:generic/erlang
cpes:
- cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/liberts_internal.a'
packages:
- class: erlang-library
name: erlang
purl: pkg:generic/erlang
cpes:
- cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/swipl'
packages:
- class: swipl-binary
name: swipl
purl: pkg:generic/swipl
cpes:
- cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/dart'
packages:
- class: dart-binary
name: dart
purl: pkg:generic/dart
cpes:
- cpe:2.3:a:dart:dart_software_development_kit:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/ghc*'
packages:
- class: haskell-ghc-binary
name: haskell/ghc
purl: pkg:generic/haskell/ghc
cpes:
- cpe:2.3:a:haskell:ghc:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/cabal'
packages:
- class: haskell-cabal-binary
name: haskell/cabal
purl: pkg:generic/haskell/cabal
cpes:
- cpe:2.3:a:haskell:cabal:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/stack'
packages:
- class: haskell-stack-binary
name: haskell/stack
purl: pkg:generic/haskell/stack
cpes:
- cpe:2.3:a:haskell:stack:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/consul'
packages:
- class: consul-binary
name: consul
purl: pkg:golang/github.com/hashicorp/consul
cpes:
- cpe:2.3:a:hashicorp:consul:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/vault'
packages:
- class: hashicorp-vault-binary
name: github.com/hashicorp/vault
purl: pkg:golang/github.com/hashicorp/vault
cpes:
- cpe:2.3:a:hashicorp:vault:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/nginx'
packages:
- class: nginx-binary
name: nginx
purl: pkg:generic/nginx
cpes:
- cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*
- cpe:2.3:a:nginx:nginx:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/bash'
packages:
- class: bash-binary
name: bash
purl: pkg:generic/bash
cpes:
- cpe:2.3:a:gnu:bash:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/openssl'
packages:
- class: openssl-binary
name: openssl
purl: pkg:generic/openssl
cpes:
- cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/gcc'
packages:
- class: gcc-binary
name: gcc
purl: pkg:generic/gcc
cpes:
- cpe:2.3:a:gnu:gcc:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/fluent-bit'
packages:
- class: fluent-bit-binary
name: fluent-bit
purl: pkg:github/fluent/fluent-bit
cpes:
- cpe:2.3:a:treasuredata:fluent_bit:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/wp'
packages:
- class: wordpress-cli-binary
name: wp-cli
purl: pkg:generic/wp-cli
cpes:
- cpe:2.3:a:wp-cli:wp-cli:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/curl'
packages:
- class: curl-binary
name: curl
purl: pkg:generic/curl
cpes:
- cpe:2.3:a:haxx:curl:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/lighttpd'
packages:
- class: lighttpd-binary
name: lighttpd
purl: pkg:generic/lighttpd
cpes:
- cpe:2.3:a:lighttpd:lighttpd:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/proftpd'
packages:
- class: proftpd-binary
name: proftpd
purl: pkg:generic/proftpd
cpes:
- cpe:2.3:a:proftpd:proftpd:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/zstd'
packages:
- class: zstd-binary
name: zstd
purl: pkg:generic/zstd
cpes:
- cpe:2.3:a:facebook:zstandard:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/xz'
packages:
- class: xz-binary
name: xz
purl: pkg:generic/xz
cpes:
- cpe:2.3:a:tukaani:xz:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/gzip'
packages:
- class: gzip-binary
name: gzip
purl: pkg:generic/gzip
cpes:
- cpe:2.3:a:gnu:gzip:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/sqlcipher'
packages:
- class: sqlcipher-binary
name: sqlcipher
purl: pkg:generic/sqlcipher
cpes:
- cpe:2.3:a:zetetic:sqlcipher:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/jq'
packages:
- class: jq-binary
name: jq
purl: pkg:generic/jq
cpes:
- cpe:2.3:a:jqlang:jq:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/chrome'
packages:
- class: chrome-binary
name: chrome
purl: pkg:generic/chrome
cpes:
- cpe:2.3:a:google:chrome:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/ffmpeg'
packages:
- class: ffmpeg-binary
name: ffmpeg
purl: pkg:generic/ffmpeg
cpes:
- cpe:2.3:a:ffmpeg:ffmpeg:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/libav*'
packages:
- class: ffmpeg-library
name: ffmpeg
purl: pkg:generic/ffmpeg
cpes:
- cpe:2.3:a:ffmpeg:ffmpeg:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/libswresample*'
packages:
- class: ffmpeg-library
name: ffmpeg
purl: pkg:generic/ffmpeg
cpes:
- cpe:2.3:a:ffmpeg:ffmpeg:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/elixir'
packages:
- class: elixir-binary
name: elixir
purl: pkg:generic/elixir
cpes:
- cpe:2.3:a:elixir-lang:elixir:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/elixir/ebin/elixir.app'
packages:
- class: elixir-library
name: elixir
purl: pkg:generic/elixir
cpes:
- cpe:2.3:a:elixir-lang:elixir:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/java'
packages:
- class: java-binary
name: ""
purl: pkg:/
cpes: []
type: BinaryPkg
- class: java-binary-graalvm
name: graalvm
purl: pkg:generic/oracle/graalvm
cpes:
- cpe:2.3:a:oracle:graalvm:*:*:*:*:*:*:*:*
type: BinaryPkg
- class: java-binary-openjdk-zulu
name: zulu
purl: pkg:generic/azul/zulu
cpes:
- cpe:2.3:a:azul:zulu:*:*:*:*:*:*:*:*
type: BinaryPkg
- class: java-binary-openjdk-with-update
name: openjdk
purl: pkg:generic/oracle/openjdk
cpes:
- cpe:2.3:a:oracle:openjdk:{{.primary}}:update{{.update}}:*:*:*:*:*:*
type: BinaryPkg
- class: java-binary-openjdk
name: openjdk
purl: pkg:generic/oracle/openjdk
cpes:
- cpe:2.3:a:oracle:openjdk:*:*:*:*:*:*:*:*
type: BinaryPkg
- class: java-binary-ibm
name: java
purl: pkg:generic/ibm/java
cpes:
- cpe:2.3:a:ibm:java:*:*:*:*:*:*:*:*
type: BinaryPkg
- class: java-binary-openjdk-fallthrough
name: jre
purl: pkg:generic/oracle/jre
cpes:
- cpe:2.3:a:oracle:jre:*:*:*:*:*:*:*:*
type: BinaryPkg
- class: java-binary-oracle
name: jre
purl: pkg:generic/oracle/jre
cpes:
- cpe:2.3:a:oracle:jre:*:*:*:*:*:*:*:*
type: BinaryPkg
- method: glob
criteria:
- '**/jdb'
packages:
- class: java-jdb-binary
name: ""
purl: pkg:/
cpes: []
type: BinaryPkg
- class: java-binary-graalvm
name: graalvm
purl: pkg:generic/oracle/graalvm
cpes:
- cpe:2.3:a:oracle:graalvm_for_jdk:*:*:*:*:*:*:*:*
type: BinaryPkg
- class: jdb-binary-openjdk-zulu
name: zulu
purl: pkg:generic/azul/zulu
cpes:
- cpe:2.3:a:azul:zulu:*:*:*:*:*:*:*:*
type: BinaryPkg
- class: java-jdb-binary-openjdk
name: openjdk
purl: pkg:generic/oracle/openjdk
cpes:
- cpe:2.3:a:oracle:openjdk:*:*:*:*:*:*:*:*
type: BinaryPkg
- class: java-sdk-binary-ibm
name: java_sdk
purl: pkg:generic/ibm/java_sdk
cpes:
- cpe:2.3:a:ibm:java_sdk:*:*:*:*:*:*:*:*
type: BinaryPkg
- class: java-binary-openjdk-fallthrough
name: openjdk
purl: pkg:generic/oracle/openjdk
cpes:
- cpe:2.3:a:oracle:openjdk:*:*:*:*:*:*:*:*
type: BinaryPkg
- class: java-binary-jdk
name: jdk
purl: pkg:generic/oracle/jdk
cpes:
- cpe:2.3:a:oracle:jdk:*:*:*:*:*:*:*:*
type: BinaryPkg
metadata_types: # AUTO-GENERATED
- pkg.BinarySignature
package_types: # AUTO-GENERATED
- binary
json_schema_types: # AUTO-GENERATED
- BinarySignature
capabilities: # MANUAL - edit capabilities here
- name: license
default: false
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: binary # MANUAL
name: elf-binary-package-cataloger # AUTO-GENERATED
type: custom # AUTO-GENERATED
source: # AUTO-GENERATED
file: ""
function: ""
selectors: # AUTO-GENERATED
- binary
- declared
- directory
- elf
- elf-package
- image
- installed
- package
detectors: # MANUAL - edit detectors here
- method: mimetype
criteria:
- application/x-executable
- application/x-mach-binary
- application/x-elf
- application/x-sharedlib
- application/vnd.microsoft.portable-executable
metadata_types: # AUTO-GENERATED
- pkg.ELFBinaryPackageNoteJSONPayload
package_types: # AUTO-GENERATED
- apk
- binary
- rpm
json_schema_types: # AUTO-GENERATED
- ElfBinaryPackageNoteJsonPayload
capabilities: # MANUAL - edit capabilities here
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: binary # MANUAL
name: pe-binary-package-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/binary/pe_package_cataloger.go
function: NewPEPackageCataloger
selectors: # AUTO-GENERATED
- binary
- declared
- directory
- dll
- exe
- image
- installed
- package
- pe
- pe-package
parsers: # AUTO-GENERATED structure
- function: parsePE
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/*.dll'
- '**/*.exe'
metadata_types: # AUTO-GENERATED
- pkg.PEBinary
package_types: # AUTO-GENERATED
- binary
json_schema_types: # AUTO-GENERATED
- PeBinary
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
@@ -0,0 +1,46 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: bitnami # MANUAL
name: bitnami-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/bitnami/cataloger.go
function: NewCataloger
selectors: # AUTO-GENERATED
- bitnami
- image
- installed
- package
parsers: # AUTO-GENERATED structure
- function: parseSBOM
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- /opt/bitnami/**/.spdx-*.spdx
metadata_types: # AUTO-GENERATED
- pkg.BitnamiSBOMEntry
package_types: # AUTO-GENERATED
- bitnami
json_schema_types: # AUTO-GENERATED
- BitnamiSbomEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: true
evidence:
- BitnamiSBOMEntry.Files
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+14
View File
@@ -0,0 +1,14 @@
package cataloger
import (
"embed"
"github.com/anchore/syft/internal/capabilities"
)
//go:embed */capabilities.yaml
var catalogerFiles embed.FS
func init() {
capabilities.RegisterCatalogerFiles(catalogerFiles)
}
@@ -0,0 +1,51 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: conda # MANUAL
name: conda-meta-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/conda/cataloger.go
function: NewCondaMetaCataloger
selectors: # AUTO-GENERATED
- conda
- directory
- installed
- package
parsers: # AUTO-GENERATED structure
- function: parseCondaMetaJSON
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/conda-meta/*.json'
metadata_types: # AUTO-GENERATED
- pkg.CondaMetaPackage
package_types: # AUTO-GENERATED
- conda
json_schema_types: # AUTO-GENERATED
- CondaMetadataEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: true
evidence:
- CondaMetaPackage.Files
- CondaMetaPackage.PathsData.Paths
- name: package_manager.files.digests
default: true
evidence:
- CondaMetaPackage.PathsData.Paths.SHA256
- name: package_manager.package_integrity_hash
default: true
evidence:
- CondaMetaPackage.MD5
- CondaMetaPackage.SHA256
+122
View File
@@ -0,0 +1,122 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: c++ # MANUAL
name: conan-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/cpp/cataloger.go
function: NewConanCataloger
selectors: # AUTO-GENERATED
- conan
- cpp
- declared
- directory
- language
- package
parsers: # AUTO-GENERATED structure
- function: parseConanLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/conan.lock'
metadata_types: # AUTO-GENERATED
- pkg.ConanV1LockEntry
- pkg.ConanV2LockEntry
package_types: # AUTO-GENERATED
- conan
json_schema_types: # AUTO-GENERATED
- CConanLockEntry
- CConanLockV2Entry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- build
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- ConanV1LockEntry.Ref
- ConanV2LockEntry.RecipeRevision
- function: parseConanfile
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/conanfile.txt'
metadata_types: # AUTO-GENERATED
- pkg.ConanfileEntry
package_types: # AUTO-GENERATED
- conan
json_schema_types: # AUTO-GENERATED
- CConanFileEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: c++ # MANUAL
name: conan-info-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/cpp/cataloger.go
function: NewConanInfoCataloger
selectors: # AUTO-GENERATED
- conan
- cpp
- image
- installed
- language
- package
parsers: # AUTO-GENERATED structure
- function: parseConaninfo
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/conaninfo.txt'
metadata_types: # AUTO-GENERATED
- pkg.ConaninfoEntry
package_types: # AUTO-GENERATED
- conan
json_schema_types: # AUTO-GENERATED
- CConanInfoEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: flat
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+88
View File
@@ -0,0 +1,88 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: dart # MANUAL
name: dart-pubspec-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/dart/cataloger.go
function: NewPubspecCataloger
selectors: # AUTO-GENERATED
- dart
- declared
- directory
- language
- package
parsers: # AUTO-GENERATED structure
- function: parsePubspec
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/pubspec.yml'
- '**/pubspec.yaml'
metadata_types: # AUTO-GENERATED
- pkg.DartPubspec
package_types: # AUTO-GENERATED
- dart-pub
json_schema_types: # AUTO-GENERATED
- DartPubspec
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: dart # MANUAL
name: dart-pubspec-lock-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/dart/cataloger.go
function: NewPubspecLockCataloger
selectors: # AUTO-GENERATED
- dart
- declared
- directory
- language
- package
parsers: # AUTO-GENERATED structure
- function: parsePubspecLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/pubspec.lock'
metadata_types: # AUTO-GENERATED
- pkg.DartPubspecLockEntry
package_types: # AUTO-GENERATED
- dart-pub
json_schema_types: # AUTO-GENERATED
- DartPubspecLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+100
View File
@@ -0,0 +1,100 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: dpkg # MANUAL
name: dpkg-db-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/debian/cataloger.go
function: NewDBCataloger
selectors: # AUTO-GENERATED
- debian
- directory
- dpkg
- image
- installed
- linux
- os
- package
parsers: # AUTO-GENERATED structure
- function: parseDpkgDB
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/lib/dpkg/status'
- '**/lib/dpkg/status.d/*'
- '**/lib/opkg/info/*.control'
- '**/lib/opkg/status'
metadata_types: # AUTO-GENERATED
- pkg.DpkgDBEntry
package_types: # AUTO-GENERATED
- deb
json_schema_types: # AUTO-GENERATED
- DpkgDbEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: true
evidence:
- DpkgDBEntry.Files
- name: package_manager.files.digests
default: true
evidence:
- DpkgDBEntry.Files[].Digest
- name: package_manager.package_integrity_hash
default: false
- ecosystem: dpkg # MANUAL
name: deb-archive-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/debian/cataloger.go
function: NewArchiveCataloger
selectors: # AUTO-GENERATED
- deb
- debian
- declared
- directory
- linux
- os
- package
parsers: # AUTO-GENERATED structure
- function: parseDebArchive
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/*.deb'
metadata_types: # AUTO-GENERATED
- pkg.DpkgArchiveEntry
package_types: # AUTO-GENERATED
- deb
json_schema_types: # AUTO-GENERATED
- DpkgArchiveEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: true
evidence:
- DpkgArchiveEntry.Files
- name: package_manager.files.digests
default: true
evidence:
- DpkgArchiveEntry.Files[].Digest
- name: package_manager.package_integrity_hash
default: false
+189
View File
@@ -0,0 +1,189 @@
# Cataloger capabilities. See ../README.md for documentation.
configs: # AUTO-GENERATED - config structs and their fields
dotnet.CatalogerConfig:
fields:
- key: DepPackagesMustHaveDLL
description: DepPackagesMustHaveDLL allows for deps.json packages to be included only if there is a DLL on disk for that package.
app_key: dotnet.dep-packages-must-have-dll
- key: DepPackagesMustClaimDLL
description: DepPackagesMustClaimDLL allows for deps.json packages to be included only if there is a runtime/resource DLL claimed in the deps.json targets section. This does not require such claimed DLLs to exist on disk. The behavior of this
app_key: dotnet.dep-packages-must-claim-dll
- key: PropagateDLLClaimsToParents
description: PropagateDLLClaimsToParents allows for deps.json packages to be included if any child (transitive) package claims a DLL. This applies to both the claims configuration and evidence-on-disk configurations.
app_key: dotnet.propagate-dll-claims-to-parents
- key: RelaxDLLClaimsWhenBundlingDetected
description: RelaxDLLClaimsWhenBundlingDetected will look for indications of IL bundle tooling via deps.json package names and, if found (and this config option is enabled), will relax the DepPackagesMustClaimDLL value to `false` only in those cases.
app_key: dotnet.relax-dll-claims-when-bundling-detected
- key: ExcludeProjectReferences
description: ExcludeProjectReferences excludes packages with type "project" from deps.json output. These are internal project references, not external NuGet packages.
app_key: dotnet.exclude-project-references
catalogers:
- ecosystem: dotnet # MANUAL
name: dotnet-deps-binary-cataloger # AUTO-GENERATED
type: custom # AUTO-GENERATED
source: # AUTO-GENERATED
file: ""
function: ""
selectors: # AUTO-GENERATED
- c#
- directory
- dotnet
- image
- installed
- language
- package
detectors: # MANUAL - edit detectors here
- method: glob
criteria:
- '**/*.deps.json'
- '**/*.dll'
- '**/*.exe'
metadata_types: # AUTO-GENERATED
- pkg.DotnetDepsEntry
- pkg.DotnetPortableExecutableEntry
package_types: # AUTO-GENERATED
- dotnet
- npm
json_schema_types: # AUTO-GENERATED
- DotnetDepsEntry
- DotnetPortableExecutableEntry
capabilities: # MANUAL - edit capabilities here
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: dotnet # MANUAL
name: dotnet-deps-cataloger # AUTO-GENERATED
type: custom # AUTO-GENERATED
source: # AUTO-GENERATED
file: ""
function: ""
selectors: # AUTO-GENERATED
- deprecated
- package
detectors: # MANUAL - edit detectors here
- method: glob
criteria:
- '**/*.deps.json'
metadata_types: # AUTO-GENERATED
- pkg.DotnetDepsEntry
package_types: # AUTO-GENERATED
- dotnet
json_schema_types: # AUTO-GENERATED
- DotnetDepsEntry
capabilities: # MANUAL - edit capabilities here
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: dotnet # MANUAL
name: dotnet-packages-lock-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/dotnet/cataloger.go
function: NewDotnetPackagesLockCataloger
selectors: # AUTO-GENERATED
- c#
- declared
- directory
- dotnet
- image
- language
- package
parsers: # AUTO-GENERATED structure
- function: parseDotnetPackagesLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/packages.lock.json'
metadata_types: # AUTO-GENERATED
- pkg.DotnetPackagesLockEntry
package_types: # AUTO-GENERATED
- dotnet
json_schema_types: # AUTO-GENERATED
- DotnetPackagesLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- dev
- build
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- DotnetPackagesLockEntry.ContentHash
- ecosystem: dotnet # MANUAL
name: dotnet-portable-executable-cataloger # AUTO-GENERATED
type: custom # AUTO-GENERATED
source: # AUTO-GENERATED
file: ""
function: ""
config: dotnet.CatalogerConfig # AUTO-GENERATED
selectors: # AUTO-GENERATED
- deprecated
- package
detectors: # MANUAL - edit detectors here
- method: glob
criteria:
- '**/*.dll'
- '**/*.exe'
metadata_types: # AUTO-GENERATED
- pkg.DotnetPortableExecutableEntry
package_types: # AUTO-GENERATED
- dotnet
json_schema_types: # AUTO-GENERATED
- DotnetPortableExecutableEntry
capabilities: # MANUAL - edit capabilities here
- name: license
default: false
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
@@ -0,0 +1,49 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: elixir # MANUAL
name: elixir-mix-lock-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/elixir/cataloger.go
function: NewMixLockCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- elixir
- language
- package
parsers: # AUTO-GENERATED structure
- function: parseMixLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/mix.lock'
metadata_types: # AUTO-GENERATED
- pkg.ElixirMixLockEntry
package_types: # AUTO-GENERATED
- hex
json_schema_types: # AUTO-GENERATED
- ElixirMixLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- ElixirMixLockEntry.PkgHash
- ElixirMixLockEntry.PkgHashExt
@@ -0,0 +1,88 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: erlang # MANUAL
name: erlang-otp-application-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/erlang/cataloger.go
function: NewOTPCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- erlang
- language
- otp
- package
parsers: # AUTO-GENERATED structure
- function: parseOTPApp
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/*.app'
package_types: # AUTO-GENERATED
- erlang-otp
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: erlang # MANUAL
name: erlang-rebar-lock-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/erlang/cataloger.go
function: NewRebarLockCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- erlang
- language
- package
parsers: # AUTO-GENERATED structure
- function: parseRebarLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/rebar.lock'
metadata_types: # AUTO-GENERATED
- pkg.ErlangRebarLockEntry
package_types: # AUTO-GENERATED
- hex
json_schema_types: # AUTO-GENERATED
- ErlangRebarLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- ErlangRebarLockEntry.PkgHash
- ErlangRebarLockEntry.PkgHashExt
@@ -0,0 +1,49 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: portage # MANUAL
name: portage-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/gentoo/cataloger.go
function: NewPortageCataloger
selectors: # AUTO-GENERATED
- directory
- gentoo
- image
- installed
- linux
- os
- package
- portage
parsers: # AUTO-GENERATED structure
- function: parsePortageContents
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/var/db/pkg/*/*/CONTENTS'
metadata_types: # AUTO-GENERATED
- pkg.PortageEntry
package_types: # AUTO-GENERATED
- portage
json_schema_types: # AUTO-GENERATED
- PortageDbEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: true
evidence:
- PortageEntry.Files
- name: package_manager.files.digests
default: true
evidence:
- PortageEntry.Files[].Digest
- name: package_manager.package_integrity_hash
default: false
@@ -0,0 +1,110 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: github-actions # MANUAL
name: github-action-workflow-usage-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/githubactions/cataloger.go
function: NewWorkflowUsageCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- github
- github-actions
- package
parsers: # AUTO-GENERATED structure
- function: parseWorkflowForWorkflowUsage
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/.github/workflows/*.yaml'
- '**/.github/workflows/*.yml'
metadata_types: # AUTO-GENERATED
- pkg.GitHubActionsUseStatement
package_types: # AUTO-GENERATED
- github-action-workflow
json_schema_types: # AUTO-GENERATED
- GithubActionsUseStatement
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: github-actions # MANUAL
name: github-actions-usage-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/githubactions/cataloger.go
function: NewActionUsageCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- github
- github-actions
- package
parsers: # AUTO-GENERATED structure
- function: parseCompositeActionForActionUsage
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/.github/actions/*/action.yml'
- '**/.github/actions/*/action.yaml'
metadata_types: # AUTO-GENERATED
- pkg.GitHubActionsUseStatement
package_types: # AUTO-GENERATED
- github-action
json_schema_types: # AUTO-GENERATED
- GithubActionsUseStatement
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- function: parseWorkflowForActionUsage
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/.github/workflows/*.yaml'
- '**/.github/workflows/*.yml'
metadata_types: # AUTO-GENERATED
- pkg.GitHubActionsUseStatement
package_types: # AUTO-GENERATED
- github-action
json_schema_types: # AUTO-GENERATED
- GithubActionsUseStatement
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+147
View File
@@ -0,0 +1,147 @@
# Cataloger capabilities. See ../README.md for documentation.
configs: # AUTO-GENERATED - config structs and their fields
golang.CatalogerConfig:
fields:
- key: SearchLocalModCacheLicenses
description: SearchLocalModCacheLicenses enables searching for go package licenses in the local GOPATH mod cache.
app_key: golang.search-local-mod-cache-licenses
- key: LocalModCacheDir
description: LocalModCacheDir specifies the location of the local go module cache directory. When not set, syft will attempt to discover the GOPATH env or default to $HOME/go.
app_key: golang.local-mod-cache-dir
- key: SearchLocalVendorLicenses
description: SearchLocalVendorLicenses enables searching for go package licenses in the local vendor directory relative to the go.mod file.
app_key: golang.search-local-vendor-licenses
- key: LocalVendorDir
description: LocalVendorDir specifies the location of the local vendor directory. When not set, syft will search for a vendor directory relative to the go.mod file.
app_key: golang.local-vendor-dir
- key: SearchRemoteLicenses
description: SearchRemoteLicenses enables downloading go package licenses from the upstream go proxy (typically proxy.golang.org).
app_key: golang.search-remote-licenses
- key: Proxies
description: Proxies is a list of go module proxies to use when fetching go module metadata and licenses. When not set, syft will use the GOPROXY env or default to https://proxy.golang.org,direct.
app_key: golang.proxy
- key: NoProxy
description: NoProxy is a list of glob patterns that match go module names that should not be fetched from the go proxy. When not set, syft will use the GOPRIVATE and GONOPROXY env vars.
app_key: golang.no-proxy
catalogers:
- ecosystem: go # MANUAL
name: go-module-binary-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/golang/cataloger.go
function: NewGoModuleBinaryCataloger
config: golang.CatalogerConfig # AUTO-GENERATED
selectors: # AUTO-GENERATED
- binary
- directory
- go
- golang
- gomod
- image
- installed
- language
- package
parsers: # AUTO-GENERATED structure
- function: parseGoBinary
detector: # AUTO-GENERATED
method: mimetype # AUTO-GENERATED
criteria: # AUTO-GENERATED
- application/x-executable
- application/x-mach-binary
- application/x-elf
- application/x-sharedlib
- application/vnd.microsoft.portable-executable
- application/x-executable
metadata_types: # AUTO-GENERATED
- pkg.GolangBinaryBuildinfoEntry
package_types: # AUTO-GENERATED
- go-module
json_schema_types: # AUTO-GENERATED
- GoModuleBuildinfoEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
conditions:
- when:
SearchLocalModCacheLicenses: true
value: true
- when:
SearchRemoteLicenses: true
value: true
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: flat
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- GolangBinaryBuildinfoEntry.H1Digest
- ecosystem: go # MANUAL
name: go-module-file-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/golang/cataloger.go
function: NewGoModuleFileCataloger
config: golang.CatalogerConfig # AUTO-GENERATED
selectors: # AUTO-GENERATED
- declared
- directory
- go
- golang
- gomod
- language
- package
parsers: # AUTO-GENERATED structure
- function: parseGoModFile
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/go.mod'
metadata_types: # AUTO-GENERATED
- pkg.GolangModuleEntry
- pkg.GolangSourceEntry
package_types: # AUTO-GENERATED
- go-module
json_schema_types: # AUTO-GENERATED
- GoModuleEntry
- GoSourceEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
conditions:
- when:
SearchLocalModCacheLicenses: true
value: true
- when:
SearchRemoteLicenses: true
value: true
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: flat
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- GolangModuleEntry.H1Digest
- GolangSourceEntry.H1Digest
@@ -0,0 +1,107 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: haskell # MANUAL
name: haskell-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/haskell/cataloger.go
function: NewHackageCataloger
selectors: # AUTO-GENERATED
- cabal
- declared
- directory
- hackage
- haskell
- language
- package
parsers: # AUTO-GENERATED structure
- function: parseCabalFreeze
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/cabal.project.freeze'
package_types: # AUTO-GENERATED
- hackage
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- function: parseStackLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/stack.yaml.lock'
metadata_types: # AUTO-GENERATED
- pkg.HackageStackYamlLockEntry
package_types: # AUTO-GENERATED
- hackage
json_schema_types: # AUTO-GENERATED
- HaskellHackageStackLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- HackageStackYamlLockEntry.PkgHash
- function: parseStackYaml
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/stack.yaml'
metadata_types: # AUTO-GENERATED
- pkg.HackageStackYamlEntry
package_types: # AUTO-GENERATED
- hackage
json_schema_types: # AUTO-GENERATED
- HaskellHackageStackEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- HackageStackYamlEntry.PkgHash
@@ -0,0 +1,43 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: homebrew # MANUAL
name: homebrew-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/homebrew/cataloger.go
function: NewCataloger
selectors: # AUTO-GENERATED
- directory
- homebrew
- image
- installed
- package
parsers: # AUTO-GENERATED structure
- function: parseHomebrewFormula
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/Cellar/*/*/.brew/*.rb'
- '**/Library/Taps/*/*/Formula/*.rb'
metadata_types: # AUTO-GENERATED
- pkg.HomebrewFormula
package_types: # AUTO-GENERATED
- homebrew
json_schema_types: # AUTO-GENERATED
- HomebrewFormula
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+289
View File
@@ -0,0 +1,289 @@
# Cataloger capabilities. See ../README.md for documentation.
configs: # AUTO-GENERATED - config structs and their fields
java.ArchiveCatalogerConfig:
fields:
- key: IncludeIndexedArchives
description: IncludeIndexedArchives indicates whether to search within indexed archive files (e.g., .zip).
- key: IncludeUnindexedArchives
description: IncludeUnindexedArchives indicates whether to search within unindexed archive files (e.g., .tar*).
- key: UseNetwork
description: UseNetwork enables network operations for java package metadata enrichment, such as fetching parent POMs and license information.
app_key: java.use-network
- key: UseMavenLocalRepository
description: UseMavenLocalRepository enables searching the local maven repository (`~/.m2/repository` by default) for parent POMs and other metadata.
app_key: java.use-maven-local-repository
- key: MavenLocalRepositoryDir
description: MavenLocalRepositoryDir specifies the location of the local maven repository. When not set, defaults to `~/.m2/repository`.
app_key: java.maven-local-repository-dir
- key: MavenBaseURL
description: MavenBaseURL specifies the base URL(s) to use for fetching POMs and metadata from maven central or other repositories. When not set, defaults to `https://repo1.maven.org/maven2`.
app_key: java.maven-url
- key: MaxParentRecursiveDepth
description: MaxParentRecursiveDepth limits how many parent POMs will be fetched recursively before stopping. This prevents fetching excessively deep parent graphs.
app_key: java.max-parent-recursive-depth
- key: ResolveTransitiveDependencies
description: ResolveTransitiveDependencies enables resolving transitive dependencies for java packages found within archives.
app_key: java.resolve-transitive-dependencies
catalogers:
- ecosystem: java # MANUAL
name: java-archive-cataloger # AUTO-GENERATED
type: custom # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/java/cataloger.go
function: NewArchiveCataloger
config: java.ArchiveCatalogerConfig # AUTO-GENERATED
selectors: # AUTO-GENERATED
- directory
- image
- installed
- java
- language
- maven
- package
detectors: # MANUAL - edit detectors here
- method: glob
criteria:
- '**/*.jar'
- '**/*.war'
- '**/*.ear'
- '**/*.par'
- '**/*.sar'
- '**/*.nar'
- '**/*.jpi'
- '**/*.hpi'
- '**/*.kar'
- '**/*.lpkg'
comment: JAR-based archives - always active
- method: glob
criteria:
- '**/*.zip'
conditions:
- when:
IncludeIndexedArchives: true
comment: ZIP archives require indexed archive support
- method: glob
criteria:
- '**/*.tar'
- '**/*.tar.gz'
- '**/*.tgz'
- '**/*.tar.bz'
- '**/*.tar.bz2'
- '**/*.tbz'
- '**/*.tbz2'
- '**/*.tar.br'
- '**/*.tbr'
- '**/*.tar.lz4'
- '**/*.tlz4'
- '**/*.tar.sz'
- '**/*.tsz'
- '**/*.tar.xz'
- '**/*.txz'
- '**/*.tar.zst'
- '**/*.tzst'
- '**/*.tar.zstd'
- '**/*.tzstd'
conditions:
- when:
IncludeUnindexedArchives: true
comment: TAR archives require unindexed archive support
metadata_types: # AUTO-GENERATED
- pkg.JavaArchive
package_types: # AUTO-GENERATED
- java-archive
json_schema_types: # AUTO-GENERATED
- JavaArchive
capabilities: # MANUAL - edit capabilities here
- name: license
default: true
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- JavaArchive.ArchiveDigests
- ecosystem: java # MANUAL
name: java-gradle-lockfile-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/java/cataloger.go
function: NewGradleLockfileCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- gradle
- java
- language
- package
parsers: # AUTO-GENERATED structure
- function: parseGradleLockfile
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/gradle.lockfile*'
metadata_types: # AUTO-GENERATED
- pkg.JavaArchive
package_types: # AUTO-GENERATED
- java-archive
json_schema_types: # AUTO-GENERATED
- JavaArchive
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: java # MANUAL
name: java-pom-cataloger # AUTO-GENERATED
type: custom # AUTO-GENERATED
source: # AUTO-GENERATED
file: ""
function: ""
selectors: # AUTO-GENERATED
- declared
- directory
- java
- language
- maven
- package
detectors: # MANUAL - edit detectors here
- method: glob
criteria:
- '*pom.xml'
metadata_types: # AUTO-GENERATED
- pkg.JavaArchive
package_types: # AUTO-GENERATED
- java-archive
json_schema_types: # AUTO-GENERATED
- JavaArchive
capabilities: # MANUAL - edit capabilities here
- name: license
default: true
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: java # MANUAL
name: java-jvm-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/java/cataloger.go
function: NewJvmDistributionCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- image
- installed
- java
- jdk
- jre
- jvm
- package
parsers: # AUTO-GENERATED structure
- function: parseJVMRelease
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/release'
metadata_types: # AUTO-GENERATED
- pkg.JavaVMInstallation
package_types: # AUTO-GENERATED
- binary
json_schema_types: # AUTO-GENERATED
- JavaJvmInstallation
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default: null
- name: dependency.edges
default: ""
- name: dependency.kinds
default: null
- name: package_manager.files.listing
default: true
evidence:
- JavaVMInstallation.Files
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: java # MANUAL
name: graalvm-native-image-cataloger # AUTO-GENERATED
type: custom # AUTO-GENERATED
source: # AUTO-GENERATED
file: ""
function: ""
selectors: # AUTO-GENERATED
- directory
- image
- installed
- java
- language
- package
detectors: # MANUAL - edit detectors here
- method: mimetype
criteria:
- application/x-executable
- application/x-mach-binary
- application/x-elf
- application/x-sharedlib
- application/vnd.microsoft.portable-executable
package_types: # AUTO-GENERATED
- graalvm-native-image
capabilities: # MANUAL - edit capabilities here
- name: license
default: true
- name: dependency.depth
default:
- direct
- indirect
comment: the dependencies ultimately depends on the quality of the embedded SBOM
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+4 -4
View File
@@ -14,19 +14,19 @@ type ArchiveCatalogerConfig struct {
// app-config: java.use-network
UseNetwork bool `yaml:"use-network" json:"use-network" mapstructure:"use-network"`
// UseMavenLocalRepository enables searching the local maven repository (~/.m2/repository by default) for parent POMs and other metadata.
// UseMavenLocalRepository enables searching the local maven repository (`~/.m2/repository` by default) for parent POMs and other metadata.
// app-config: java.use-maven-local-repository
UseMavenLocalRepository bool `yaml:"use-maven-localrepository" json:"use-maven-localrepository" mapstructure:"use-maven-localrepository"`
// MavenLocalRepositoryDir specifies the location of the local maven repository. When not set, defaults to ~/.m2/repository.
// MavenLocalRepositoryDir specifies the location of the local maven repository. When not set, defaults to `~/.m2/repository`.
// app-config: java.maven-local-repository-dir
MavenLocalRepositoryDir string `yaml:"maven-localrepository-dir" json:"maven-localrepository-dir" mapstructure:"maven-localrepository-dir"`
// MavenBaseURL specifies the base URL(s) to use for fetching POMs and metadata from maven central or other repositories. When not set, defaults to https://repo1.maven.org/maven2.
// MavenBaseURL specifies the base URL(s) to use for fetching POMs and metadata from maven central or other repositories. When not set, defaults to `https://repo1.maven.org/maven2`.
// app-config: java.maven-url
MavenBaseURL string `yaml:"maven-base-url" json:"maven-base-url" mapstructure:"maven-base-url"`
// MaxParentRecursiveDepth limits how many parent POMs will be fetched recursively before stopping. This prevents infinite loops or excessively deep parent chains.
// MaxParentRecursiveDepth limits how many parent POMs will be fetched recursively before stopping. This prevents fetching excessively deep parent graphs.
// app-config: java.max-parent-recursive-depth
MaxParentRecursiveDepth int `yaml:"max-parent-recursive-depth" json:"max-parent-recursive-depth" mapstructure:"max-parent-recursive-depth"`
@@ -0,0 +1,167 @@
# Cataloger capabilities. See ../README.md for documentation.
configs: # AUTO-GENERATED - config structs and their fields
javascript.CatalogerConfig:
fields:
- key: SearchRemoteLicenses
description: SearchRemoteLicenses enables querying the NPM registry API to retrieve license information for packages that are missing license data in their local metadata.
app_key: javascript.search-remote-licenses
- key: NPMBaseURL
description: NPMBaseURL specifies the base URL for the NPM registry API used when searching for remote license information.
app_key: javascript.npm-base-url
- key: IncludeDevDependencies
description: IncludeDevDependencies controls whether development dependencies should be included in the catalog results, in addition to production dependencies.
app_key: javascript.include-dev-dependencies
catalogers:
- ecosystem: javascript # MANUAL
name: javascript-lock-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/javascript/cataloger.go
function: NewLockCataloger
config: javascript.CatalogerConfig # AUTO-GENERATED
selectors: # AUTO-GENERATED
- declared
- directory
- javascript
- language
- node
- npm
- package
parsers: # AUTO-GENERATED structure
- function: parsePnpmLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/pnpm-lock.yaml'
metadata_types: # AUTO-GENERATED
- pkg.PnpmLockEntry
package_types: # AUTO-GENERATED
- npm
json_schema_types: # AUTO-GENERATED
- JavascriptPnpmLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
- function: parseYarnLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/yarn.lock'
metadata_types: # AUTO-GENERATED
- pkg.YarnLockEntry
package_types: # AUTO-GENERATED
- npm
json_schema_types: # AUTO-GENERATED
- JavascriptYarnLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- YarnLockEntry.Integrity
- function: parsePackageLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/package-lock.json'
metadata_types: # AUTO-GENERATED
- pkg.NpmPackageLockEntry
package_types: # AUTO-GENERATED
- npm
json_schema_types: # AUTO-GENERATED
- JavascriptNpmPackageLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- NpmPackageLockEntry.Integrity
- ecosystem: javascript # MANUAL
name: javascript-package-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/javascript/cataloger.go
function: NewPackageCataloger
selectors: # AUTO-GENERATED
- image
- installed
- javascript
- language
- node
- package
parsers: # AUTO-GENERATED structure
- function: parsePackageJSON
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/package.json'
metadata_types: # AUTO-GENERATED
- pkg.NpmPackage
package_types: # AUTO-GENERATED
- npm
json_schema_types: # AUTO-GENERATED
- JavascriptNpmPackage
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
@@ -0,0 +1,58 @@
# Cataloger capabilities. See ../README.md for documentation.
configs: # AUTO-GENERATED - config structs and their fields
kernel.LinuxKernelCatalogerConfig:
fields:
- key: CatalogModules
description: CatalogModules enables cataloging linux kernel modules (`*.ko` files) in addition to the kernel itself.
app_key: linux-kernel.catalog-modules
catalogers:
- ecosystem: linux # MANUAL
name: linux-kernel-cataloger # AUTO-GENERATED
type: custom # AUTO-GENERATED
source: # AUTO-GENERATED
file: ""
function: ""
config: kernel.LinuxKernelCatalogerConfig # AUTO-GENERATED
selectors: # AUTO-GENERATED
- declared
- directory
- image
- installed
- kernel
- linux
- package
detectors: # MANUAL - edit detectors here
- method: glob
criteria:
- '**/kernel'
- '**/kernel-*'
- '**/vmlinux'
- '**/vmlinux-*'
- '**/vmlinuz'
- '**/vmlinuz-*'
- '**/lib/modules/**/*.ko'
metadata_types: # AUTO-GENERATED
- pkg.LinuxKernel
- pkg.LinuxKernelModule
package_types: # AUTO-GENERATED
- linux-kernel
- linux-kernel-module
json_schema_types: # AUTO-GENERATED
- LinuxKernelArchive
- LinuxKernelModule
capabilities: # MANUAL - edit capabilities here
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+1 -1
View File
@@ -17,7 +17,7 @@ import (
var _ pkg.Cataloger = (*linuxKernelCataloger)(nil)
type LinuxKernelCatalogerConfig struct {
// CatalogModules enables cataloging linux kernel modules (*.ko files) in addition to the kernel itself.
// CatalogModules enables cataloging linux kernel modules (`*.ko` files) in addition to the kernel itself.
// app-config: linux-kernel.catalog-modules
CatalogModules bool `yaml:"catalog-modules" json:"catalog-modules" mapstructure:"catalog-modules"`
}
+43
View File
@@ -0,0 +1,43 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: lua # MANUAL
name: lua-rock-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/lua/cataloger.go
function: NewPackageCataloger
selectors: # AUTO-GENERATED
- directory
- image
- installed
- language
- lua
- package
parsers: # AUTO-GENERATED structure
- function: parseRockspec
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/*.rockspec'
metadata_types: # AUTO-GENERATED
- pkg.LuaRocksPackage
package_types: # AUTO-GENERATED
- lua-rocks
json_schema_types: # AUTO-GENERATED
- LuarocksPackage
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+101
View File
@@ -0,0 +1,101 @@
# Cataloger capabilities. See ../README.md for documentation.
configs: # AUTO-GENERATED - config structs and their fields
nix.Config:
fields:
- key: CaptureOwnedFiles
description: CaptureOwnedFiles determines whether to record the list of files owned by each Nix package discovered in the store. Recording owned files provides more detailed information but increases processing time and memory usage.
app_key: nix.capture-owned-files
catalogers:
- ecosystem: nix # MANUAL
name: nix-cataloger # AUTO-GENERATED
type: custom # AUTO-GENERATED
source: # AUTO-GENERATED
file: ""
function: ""
selectors: # AUTO-GENERATED
- directory
- image
- installed
- language
- nix
- package
detectors: # MANUAL - edit detectors here
- method: glob
criteria:
- '**/nix/var/nix/db/db.sqlite'
- '**/nix/store/*'
- '**/nix/store/*.drv'
metadata_types: # AUTO-GENERATED
- pkg.NixStoreEntry
package_types: # AUTO-GENERATED
- nix
json_schema_types: # AUTO-GENERATED
- NixStoreEntry
capabilities: # MANUAL - edit capabilities here
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: true
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- NixStoreEntry.OutputHash
- ecosystem: nix # MANUAL
name: nix-store-cataloger # AUTO-GENERATED
type: custom # AUTO-GENERATED
source: # AUTO-GENERATED
file: ""
function: ""
config: nix.Config # AUTO-GENERATED
selectors: # AUTO-GENERATED
- deprecated
- package
detectors: # MANUAL - edit detectors here
- method: glob
criteria:
- '**/nix/store/*'
- '**/nix/store/*.drv'
metadata_types: # AUTO-GENERATED
- pkg.NixStoreEntry
package_types: # AUTO-GENERATED
- nix
json_schema_types: # AUTO-GENERATED
- NixStoreEntry
capabilities: # MANUAL - edit capabilities here
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
conditions:
- when:
CaptureOwnedFiles: true
value: true
evidence:
- NixStoreEntry.Files
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- NixStoreEntry.OutputHash
@@ -0,0 +1,43 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: ocaml # MANUAL
name: opam-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/ocaml/cataloger.go
function: NewOpamPackageManagerCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- language
- ocaml
- opam
- package
parsers: # AUTO-GENERATED structure
- function: parseOpamPackage
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/*opam'
metadata_types: # AUTO-GENERATED
- pkg.OpamPackage
package_types: # AUTO-GENERATED
- opam
json_schema_types: # AUTO-GENERATED
- OpamPackage
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+215
View File
@@ -0,0 +1,215 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: php # MANUAL
name: php-composer-installed-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/php/cataloger.go
function: NewComposerInstalledCataloger
selectors: # AUTO-GENERATED
- composer
- image
- installed
- language
- package
- php
parsers: # AUTO-GENERATED structure
- function: parseInstalledJSON
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/installed.json'
metadata_types: # AUTO-GENERATED
- pkg.PhpComposerInstalledEntry
package_types: # AUTO-GENERATED
- php-composer
json_schema_types: # AUTO-GENERATED
- PhpComposerInstalledEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: php # MANUAL
name: php-composer-lock-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/php/cataloger.go
function: NewComposerLockCataloger
selectors: # AUTO-GENERATED
- composer
- declared
- directory
- language
- package
- php
parsers: # AUTO-GENERATED structure
- function: parseComposerLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/composer.lock'
metadata_types: # AUTO-GENERATED
- pkg.PhpComposerLockEntry
package_types: # AUTO-GENERATED
- php-composer
json_schema_types: # AUTO-GENERATED
- PhpComposerLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
- ecosystem: php # MANUAL
name: php-interpreter-cataloger # AUTO-GENERATED
type: custom # AUTO-GENERATED
source: # AUTO-GENERATED
file: ""
function: ""
selectors: # AUTO-GENERATED
- binary
- declared
- directory
- image
- installed
- package
- php
detectors: # MANUAL - edit detectors here
- method: glob
criteria:
- '**/php*'
- '**/php*/**/*.so'
- '**/php-fpm*'
- '**/apache*/**/libphp*.so'
metadata_types: # AUTO-GENERATED
- pkg.BinarySignature
package_types: # AUTO-GENERATED
- binary
json_schema_types: # AUTO-GENERATED
- BinarySignature
capabilities: # MANUAL - edit capabilities here
- name: license
default: false
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: flat
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: php # MANUAL
name: php-pear-serialized-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/php/cataloger.go
function: NewPearCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- image
- language
- package
- pear
- php
parsers: # AUTO-GENERATED structure
- function: parsePear
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/php/.registry/**/*.reg'
metadata_types: # AUTO-GENERATED
- pkg.PhpPearEntry
package_types: # AUTO-GENERATED
- php-pear
json_schema_types: # AUTO-GENERATED
- PhpPearEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: true
- name: package_manager.files.digests
default: true
- name: package_manager.package_integrity_hash
default: false
- ecosystem: php # MANUAL
name: php-pecl-serialized-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/php/cataloger.go
function: NewPeclCataloger
selectors: # AUTO-GENERATED
- deprecated
- package
parsers: # AUTO-GENERATED structure
- function: parsePecl
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/php/.registry/.channel.*/*.reg'
metadata_types: # AUTO-GENERATED
- pkg.PhpPeclEntry
package_types: # AUTO-GENERATED
- php-pecl
json_schema_types: # AUTO-GENERATED
- PhpPeclEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+255
View File
@@ -0,0 +1,255 @@
# Cataloger capabilities. See ../README.md for documentation.
configs: # AUTO-GENERATED - config structs and their fields
python.CatalogerConfig:
fields:
- key: GuessUnpinnedRequirements
description: GuessUnpinnedRequirements attempts to infer package versions from version constraints when no explicit version is specified in requirements files.
app_key: python.guess-unpinned-requirements
- key: SearchRemoteLicenses
description: SearchRemoteLicenses enables querying the PyPI registry API to retrieve license information for packages that are missing license data in their local metadata.
app_key: python.search-remote-licenses
- key: PypiBaseURL
description: PypiBaseURL specifies the base URL for the Pypi registry API used when searching for remote license information.
app_key: python.pypi-base-url
catalogers:
- ecosystem: python # MANUAL
name: python-installed-package-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/python/cataloger.go
function: NewInstalledPackageCataloger
selectors: # AUTO-GENERATED
- directory
- image
- installed
- language
- package
- python
parsers: # AUTO-GENERATED structure
- function: parseWheelOrEgg
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/*.egg-info'
- '**/*dist-info/METADATA'
- '**/*egg-info/PKG-INFO'
- '**/*DIST-INFO/METADATA'
- '**/*EGG-INFO/PKG-INFO'
metadata_types: # AUTO-GENERATED
- pkg.PythonPackage
package_types: # AUTO-GENERATED
- python
json_schema_types: # AUTO-GENERATED
- PythonPackage
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: true
evidence:
- PythonPackage.Files
- name: package_manager.files.digests
default: true
evidence:
- PythonPackage.Files[].Digest
- name: package_manager.package_integrity_hash
default: false
- ecosystem: python # MANUAL
name: python-package-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/python/cataloger.go
function: NewPackageCataloger
config: python.CatalogerConfig # AUTO-GENERATED
selectors: # AUTO-GENERATED
- declared
- directory
- language
- package
- python
parsers: # AUTO-GENERATED structure
- function: parsePdmLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/pdm.lock'
metadata_types: # AUTO-GENERATED
- pkg.PythonPdmLockEntry
package_types: # AUTO-GENERATED
- python
json_schema_types: # AUTO-GENERATED
- PythonPdmLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- dev
- optional
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- function: parseUvLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/uv.lock'
metadata_types: # AUTO-GENERATED
- pkg.PythonUvLockEntry
package_types: # AUTO-GENERATED
- python
json_schema_types: # AUTO-GENERATED
- PythonUvLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- dev
- optional
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- function: parseSetupFile
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/setup.py'
package_types: # AUTO-GENERATED
- python
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- any
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- function: parsePipfileLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/Pipfile.lock'
metadata_types: # AUTO-GENERATED
- pkg.PythonPipfileLockEntry
package_types: # AUTO-GENERATED
- python
json_schema_types: # AUTO-GENERATED
- PythonPipfileLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: true
evidence:
- PythonPipfileLockEntry.Hashes
- name: package_manager.package_integrity_hash
default: false
- function: parsePoetryLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/poetry.lock'
metadata_types: # AUTO-GENERATED
- pkg.PythonPoetryLockEntry
package_types: # AUTO-GENERATED
- python
json_schema_types: # AUTO-GENERATED
- PythonPoetryLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- dev
- optional
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- function: parseRequirementsTxt
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/*requirements*.txt'
metadata_types: # AUTO-GENERATED
- pkg.PythonRequirementsEntry
package_types: # AUTO-GENERATED
- python
json_schema_types: # AUTO-GENERATED
- PythonPipRequirementsEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- any
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+50 -3
View File
@@ -14,7 +14,7 @@ import (
"github.com/anchore/syft/syft/pkg/cataloger/internal/pkgtest"
)
func Test_PackageCataloger(t *testing.T) {
func Test_InstalledPackageCataloger(t *testing.T) {
ctx := context.TODO()
tests := []struct {
name string
@@ -402,10 +402,57 @@ func Test_PackageCataloger(t *testing.T) {
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
(pkgtest.NewCatalogTester().
pkgtest.NewCatalogTester().
FromDirectory(t, test.fixture).
Expects(test.expectedPackages, nil).
TestCataloger(t, NewInstalledPackageCataloger()))
TestCataloger(t, NewInstalledPackageCataloger())
})
}
}
func Test_PackageCataloger(t *testing.T) {
tests := []struct {
name string
fixture string
expectedPackages []string
expectedRelationships []string
}{
{
name: "pdm",
fixture: "test-fixtures/pdm-lock",
expectedPackages: []string{
"certifi @ 2025.1.31 (pdm.lock)",
"chardet @ 3.0.4 (pdm.lock)",
"charset-normalizer @ 2.0.12 (pdm.lock)",
"colorama @ 0.3.9 (pdm.lock)",
"idna @ 2.7 (pdm.lock)",
"py @ 1.4.34 (pdm.lock)",
"pytest @ 3.2.5 (pdm.lock)",
"requests @ 2.27.1 (pdm.lock)",
"setuptools @ 39.2.0 (pdm.lock)",
"urllib3 @ 1.26.20 (pdm.lock)",
},
expectedRelationships: []string{
"certifi @ 2025.1.31 (pdm.lock) [dependency-of] requests @ 2.27.1 (pdm.lock)",
"chardet @ 3.0.4 (pdm.lock) [dependency-of] requests @ 2.27.1 (pdm.lock)",
"charset-normalizer @ 2.0.12 (pdm.lock) [dependency-of] requests @ 2.27.1 (pdm.lock)",
"colorama @ 0.3.9 (pdm.lock) [dependency-of] pytest @ 3.2.5 (pdm.lock)",
"idna @ 2.7 (pdm.lock) [dependency-of] requests @ 2.27.1 (pdm.lock)",
"py @ 1.4.34 (pdm.lock) [dependency-of] pytest @ 3.2.5 (pdm.lock)",
"setuptools @ 39.2.0 (pdm.lock) [dependency-of] pytest @ 3.2.5 (pdm.lock)",
"urllib3 @ 1.26.20 (pdm.lock) [dependency-of] requests @ 2.27.1 (pdm.lock)",
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
pkgtest.NewCatalogTester().
FromDirectory(t, tt.fixture).
ExpectsPackageStrings(tt.expectedPackages).
ExpectsRelationshipStrings(tt.expectedRelationships).
TestCataloger(t, NewPackageCataloger(DefaultCatalogerConfig()))
})
}
}
+1 -1
View File
@@ -6,7 +6,7 @@ type CatalogerConfig struct {
// GuessUnpinnedRequirements attempts to infer package versions from version constraints when no explicit version is specified in requirements files.
// app-config: python.guess-unpinned-requirements
GuessUnpinnedRequirements bool `yaml:"guess-unpinned-requirements" json:"guess-unpinned-requirements" mapstructure:"guess-unpinned-requirements"`
// SearchRemoteLicenses enables querying the NPM registry API to retrieve license information for packages that are missing license data in their local metadata.
// SearchRemoteLicenses enables querying the PyPI registry API to retrieve license information for packages that are missing license data in their local metadata.
// app-config: python.search-remote-licenses
SearchRemoteLicenses bool `json:"search-remote-licenses" yaml:"search-remote-licenses" mapstructure:"search-remote-licenses"`
// PypiBaseURL specifies the base URL for the Pypi registry API used when searching for remote license information.
+43
View File
@@ -0,0 +1,43 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: r # MANUAL
name: r-package-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/r/cataloger.go
function: NewPackageCataloger
selectors: # AUTO-GENERATED
- directory
- image
- installed
- language
- package
- r
parsers: # AUTO-GENERATED structure
- function: parseDescriptionFile
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/DESCRIPTION'
metadata_types: # AUTO-GENERATED
- pkg.RDescription
package_types: # AUTO-GENERATED
- R-package
json_schema_types: # AUTO-GENERATED
- RDescription
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+126
View File
@@ -0,0 +1,126 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: rpm # MANUAL
name: rpm-archive-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/redhat/cataloger.go
function: NewArchiveCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- linux
- os
- package
- redhat
- rpm
parsers: # AUTO-GENERATED structure
- function: parseRpmArchive
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/*.rpm'
metadata_types: # AUTO-GENERATED
- pkg.RpmArchive
package_types: # AUTO-GENERATED
- rpm
json_schema_types: # AUTO-GENERATED
- RpmArchive
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: true
evidence:
- RpmArchive.Files
- name: package_manager.files.digests
default: true
evidence:
- RpmArchive.Files[].Digest
- name: package_manager.package_integrity_hash
default: false
- ecosystem: rpm # MANUAL
name: rpm-db-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/redhat/cataloger.go
function: NewDBCataloger
selectors: # AUTO-GENERATED
- directory
- image
- installed
- linux
- os
- package
- redhat
- rpm
parsers: # AUTO-GENERATED structure
- function: parseRpmManifest
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/var/lib/rpmmanifest/container-manifest-2'
metadata_types: # AUTO-GENERATED
- pkg.RpmDBEntry
package_types: # AUTO-GENERATED
- rpm
json_schema_types: # AUTO-GENERATED
- RpmDbEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- function: parseRpmDB
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/{var/lib,usr/share,usr/lib/sysimage}/rpm/{Packages,Packages.db,rpmdb.sqlite}'
metadata_types: # AUTO-GENERATED
- pkg.RpmDBEntry
package_types: # AUTO-GENERATED
- rpm
json_schema_types: # AUTO-GENERATED
- RpmDbEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: true
evidence:
- RpmDBEntry.Files
- name: package_manager.files.digests
default: true
evidence:
- RpmDBEntry.Files[].Digest
- name: package_manager.package_integrity_hash
default: false
+133
View File
@@ -0,0 +1,133 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: ruby # MANUAL
name: ruby-gemfile-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/ruby/cataloger.go
function: NewGemFileLockCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- gem
- language
- package
- ruby
parsers: # AUTO-GENERATED structure
- function: parseGemFileLockEntries
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/Gemfile.lock'
- '**/Gemfile.next.lock'
package_types: # AUTO-GENERATED
- gem
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- dev
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: ruby # MANUAL
name: ruby-gemspec-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/ruby/cataloger.go
function: NewGemSpecCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- gem
- gemspec
- language
- package
- ruby
parsers: # AUTO-GENERATED structure
- function: parseGemSpecEntries
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/*.gemspec'
metadata_types: # AUTO-GENERATED
- pkg.RubyGemspec
package_types: # AUTO-GENERATED
- gem
json_schema_types: # AUTO-GENERATED
- RubyGemspec
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: true
evidence:
- RubyGemspec.Files
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: ruby # MANUAL
name: ruby-installed-gemspec-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/ruby/cataloger.go
function: NewInstalledGemSpecCataloger
selectors: # AUTO-GENERATED
- gem
- gemspec
- image
- installed
- language
- package
- ruby
parsers: # AUTO-GENERATED structure
- function: parseGemSpecEntries
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/specifications/**/*.gemspec'
metadata_types: # AUTO-GENERATED
- pkg.RubyGemspec
package_types: # AUTO-GENERATED
- gem
json_schema_types: # AUTO-GENERATED
- RubyGemspec
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: true
evidence:
- RubyGemspec.Files
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+99
View File
@@ -0,0 +1,99 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: rust # MANUAL
name: cargo-auditable-binary-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/rust/cataloger.go
function: NewAuditBinaryCataloger
selectors: # AUTO-GENERATED
- binary
- directory
- image
- installed
- language
- package
- rust
parsers: # AUTO-GENERATED structure
- function: parseAuditBinary
detector: # AUTO-GENERATED
method: mimetype # AUTO-GENERATED
criteria: # AUTO-GENERATED
- application/x-executable
- application/x-mach-binary
- application/x-elf
- application/x-sharedlib
- application/vnd.microsoft.portable-executable
- application/x-executable
metadata_types: # AUTO-GENERATED
- pkg.RustBinaryAuditEntry
package_types: # AUTO-GENERATED
- rust-crate
json_schema_types: # AUTO-GENERATED
- RustCargoAuditEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- ecosystem: rust # MANUAL
name: rust-cargo-lock-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/rust/cataloger.go
function: NewCargoLockCataloger
selectors: # AUTO-GENERATED
- cargo
- declared
- directory
- language
- package
- rust
parsers: # AUTO-GENERATED structure
- function: parseCargoLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/Cargo.lock'
metadata_types: # AUTO-GENERATED
- pkg.RustCargoLockEntry
package_types: # AUTO-GENERATED
- rust-crate
json_schema_types: # AUTO-GENERATED
- RustCargoLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: complete
- name: dependency.kinds
default:
- runtime
- dev
- build
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- RustCargoLockEntry.Checksum
-10
View File
@@ -16,7 +16,6 @@ func TestNewAuditBinaryCataloger(t *testing.T) {
Name: "argh",
Version: "0.1.12",
PURL: "pkg:cargo/argh@0.1.12",
FoundBy: "cargo-auditable-binary-cataloger",
Locations: locations,
Language: pkg.Rust,
Type: pkg.RustPkg,
@@ -31,7 +30,6 @@ func TestNewAuditBinaryCataloger(t *testing.T) {
Name: "argh_derive",
Version: "0.1.12",
PURL: "pkg:cargo/argh_derive@0.1.12",
FoundBy: "cargo-auditable-binary-cataloger",
Locations: locations,
Language: pkg.Rust,
Type: pkg.RustPkg,
@@ -46,7 +44,6 @@ func TestNewAuditBinaryCataloger(t *testing.T) {
Name: "argh_shared",
Version: "0.1.12",
PURL: "pkg:cargo/argh_shared@0.1.12",
FoundBy: "cargo-auditable-binary-cataloger",
Locations: locations,
Language: pkg.Rust,
Type: pkg.RustPkg,
@@ -61,7 +58,6 @@ func TestNewAuditBinaryCataloger(t *testing.T) {
Name: "hello_world",
Version: "0.1.0",
PURL: "pkg:cargo/hello_world@0.1.0",
FoundBy: "cargo-auditable-binary-cataloger",
Locations: locations,
Language: pkg.Rust,
Type: pkg.RustPkg,
@@ -76,7 +72,6 @@ func TestNewAuditBinaryCataloger(t *testing.T) {
Name: "proc-macro2",
Version: "1.0.92",
PURL: "pkg:cargo/proc-macro2@1.0.92",
FoundBy: "cargo-auditable-binary-cataloger",
Locations: locations,
Language: pkg.Rust,
Type: pkg.RustPkg,
@@ -91,7 +86,6 @@ func TestNewAuditBinaryCataloger(t *testing.T) {
Name: "quote",
Version: "1.0.37",
PURL: "pkg:cargo/quote@1.0.37",
FoundBy: "cargo-auditable-binary-cataloger",
Locations: locations,
Language: pkg.Rust,
Type: pkg.RustPkg,
@@ -106,7 +100,6 @@ func TestNewAuditBinaryCataloger(t *testing.T) {
Name: "serde",
Version: "1.0.215",
PURL: "pkg:cargo/serde@1.0.215",
FoundBy: "cargo-auditable-binary-cataloger",
Locations: locations,
Language: pkg.Rust,
Type: pkg.RustPkg,
@@ -121,7 +114,6 @@ func TestNewAuditBinaryCataloger(t *testing.T) {
Name: "serde_derive",
Version: "1.0.215",
PURL: "pkg:cargo/serde_derive@1.0.215",
FoundBy: "cargo-auditable-binary-cataloger",
Locations: locations,
Language: pkg.Rust,
Type: pkg.RustPkg,
@@ -136,7 +128,6 @@ func TestNewAuditBinaryCataloger(t *testing.T) {
Name: "syn",
Version: "2.0.90",
PURL: "pkg:cargo/syn@2.0.90",
FoundBy: "cargo-auditable-binary-cataloger",
Locations: locations,
Language: pkg.Rust,
Type: pkg.RustPkg,
@@ -151,7 +142,6 @@ func TestNewAuditBinaryCataloger(t *testing.T) {
Name: "unicode-ident",
Version: "1.0.14",
PURL: "pkg:cargo/unicode-ident@1.0.14",
FoundBy: "cargo-auditable-binary-cataloger",
Locations: locations,
Language: pkg.Rust,
Type: pkg.RustPkg,
+49
View File
@@ -0,0 +1,49 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: sbom # MANUAL
name: sbom-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/sbom/cataloger.go
function: NewCataloger
selectors: # AUTO-GENERATED
- package
- sbom
parsers: # AUTO-GENERATED structure
- function: parseSBOM
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/*.syft.json'
- '**/*.bom.*'
- '**/*.bom'
- '**/bom'
- '**/*.sbom.*'
- '**/*.sbom'
- '**/sbom'
- '**/*.cdx.*'
- '**/*.cdx'
- '**/*.spdx.*'
- '**/*.spdx'
metadata_types: # AUTO-GENERATED
- pkg.ApkDBEntry
package_types: # AUTO-GENERATED
- apk
json_schema_types: # AUTO-GENERATED
- ApkDbEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
+146
View File
@@ -0,0 +1,146 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: snap # MANUAL
name: snap-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/snap/cataloger.go
function: NewCataloger
selectors: # AUTO-GENERATED
- directory
- image
- installed
- package
- snap
parsers: # AUTO-GENERATED structure
- function: parseSnapdSnapcraft
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/snap/snapcraft.yaml'
metadata_types: # AUTO-GENERATED
- pkg.SnapEntry
package_types: # AUTO-GENERATED
- deb
json_schema_types: # AUTO-GENERATED
- SnapEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- function: parseSystemManifest
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/snap/manifest.yaml'
metadata_types: # AUTO-GENERATED
- pkg.SnapEntry
package_types: # AUTO-GENERATED
- deb
json_schema_types: # AUTO-GENERATED
- SnapEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- function: parseKernelChangelog
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/doc/linux-modules-*/changelog.Debian.gz'
metadata_types: # AUTO-GENERATED
- pkg.SnapEntry
package_types: # AUTO-GENERATED
- deb
json_schema_types: # AUTO-GENERATED
- SnapEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- function: parseBaseDpkgYaml
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/usr/share/snappy/dpkg.yaml'
metadata_types: # AUTO-GENERATED
- pkg.SnapEntry
package_types: # AUTO-GENERATED
- deb
json_schema_types: # AUTO-GENERATED
- SnapEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
- function: parseSnapYaml
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/meta/snap.yaml'
metadata_types: # AUTO-GENERATED
- pkg.SnapEntry
package_types: # AUTO-GENERATED
- deb
json_schema_types: # AUTO-GENERATED
- SnapEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
@@ -0,0 +1,92 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: swift # MANUAL
name: cocoapods-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/swift/cataloger.go
function: NewCocoapodsCataloger
selectors: # AUTO-GENERATED
- cocoapods
- declared
- directory
- language
- package
- swift
parsers: # AUTO-GENERATED structure
- function: parsePodfileLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/Podfile.lock'
metadata_types: # AUTO-GENERATED
- pkg.CocoaPodfileLockEntry
package_types: # AUTO-GENERATED
- pod
json_schema_types: # AUTO-GENERATED
- CocoaPodfileLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- CocoaPodfileLockEntry.Checksum
- ecosystem: swift # MANUAL
name: swift-package-manager-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/swift/cataloger.go
function: NewSwiftPackageManagerCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- language
- package
- spm
- swift
parsers: # AUTO-GENERATED structure
- function: parsePackageResolved
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/Package.resolved'
- '**/.package.resolved'
metadata_types: # AUTO-GENERATED
- pkg.SwiftPackageManagerResolvedEntry
package_types: # AUTO-GENERATED
- swift
json_schema_types: # AUTO-GENERATED
- SwiftPackageManagerLockEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- indirect
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
@@ -0,0 +1,43 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: prolog # MANUAL
name: swipl-pack-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/swipl/cataloger.go
function: NewSwiplPackCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- language
- pack
- package
- swipl
parsers: # AUTO-GENERATED structure
- function: parsePackPackage
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/pack.pl'
metadata_types: # AUTO-GENERATED
- pkg.SwiplPackEntry
package_types: # AUTO-GENERATED
- swiplpack
json_schema_types: # AUTO-GENERATED
- SwiplpackPackage
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
@@ -0,0 +1,45 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: terraform # MANUAL
name: terraform-lock-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/terraform/cataloger.go
function: NewLockCataloger
selectors: # AUTO-GENERATED
- declared
- directory
- package
- terraform
parsers: # AUTO-GENERATED structure
- function: parseTerraformLock
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/.terraform.lock.hcl'
metadata_types: # AUTO-GENERATED
- pkg.TerraformLockProviderEntry
package_types: # AUTO-GENERATED
- terraform
json_schema_types: # AUTO-GENERATED
- TerraformLockProviderEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: false
- name: dependency.depth
default:
- direct
- name: dependency.edges
default: ""
- name: dependency.kinds
default:
- runtime
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- TerraformLockProviderEntry.Hashes
@@ -0,0 +1,41 @@
# Cataloger capabilities. See ../README.md for documentation.
catalogers:
- ecosystem: wordpress # MANUAL
name: wordpress-plugins-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
file: syft/pkg/cataloger/wordpress/cataloger.go
function: NewWordpressPluginCataloger
selectors: # AUTO-GENERATED
- directory
- image
- package
- wordpress
parsers: # AUTO-GENERATED structure
- function: parseWordpressPluginFiles
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
criteria: # AUTO-GENERATED
- '**/wp-content/plugins/*/*.php'
metadata_types: # AUTO-GENERATED
- pkg.WordpressPluginEntry
package_types: # AUTO-GENERATED
- wordpress-plugin
json_schema_types: # AUTO-GENERATED
- WordpressPluginEntry
capabilities: # MANUAL - preserved across regeneration
- name: license
default: true
- name: dependency.depth
default: []
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false