🧩 Configuring Vet
vet
comes with super powers 🚀, this section will help you to understand and explore some of them so that you can take your open source security to next level 😎
API Key
vet
uses control plane API for the insights required to enrich the information of dependencies, and its information.
Generating an API key
- You can run the following command with your email address to receive an API key. After running the following command, you will receive an email with the API key.
vet auth trial --email john.doe@example.com
Configuring an API key
- You can configure the api key using the following command
vet auth configure
- You can also pass the API key through environment variable using the variable
VET_API_KEY
Renewing an API key
- To renew an API key, you can re-register using the email. Even reach out to us at contact@safedep.io and we would be happy to work with you
Using Community Mode
- You can use community endpoint for Insights API without API key
vet auth configure --community
- For CI job, set environment variable
VET_COMMUNITY_MODE=true
to enable community runtime mode
Scanning
Scanning Directories
- If you wanted to scan the whole directory & automatically parse the dependencies/lockfile, you can use the
-D
or--directory
flag.
vet scan -D your-code/directory/path/
info
If you do not specify any directory, by default it takes present working directory as the input.
Scanning Files
- If you wanted to scan the specific file
lockfile
you can use the-L
or--lockfiles
flag.
vet scan -D your-code/directory/path/
info
If you do not specify any directory, by default it takes present working directory as the input.
Scanning Non-standard files
- Sometimes you might have non-standard filenames for the dependencies, lockfiles. You can scan them as a supported package manifest with a non-standard name using the following command
vet scan --lockfiles /path/to/gradle-compileOnly.lock --lockfile-as gradle.lockfile
Scanning Multiple files
vet scan --lockfiles /path/to/gradle.lockfile --lockfiles requirements.txt
Scanning Parsers
vet
currently has 10 scanning parsers for various dependencies formats including Go, Python, Java, etc.
❯ vet scan parsers
Available Lockfile Parsers
==========================
[0] buildscript-gradle.lockfile
[1] go.mod
[2] gradle.lockfile
[3] package-lock.json
[4] Pipfile.lock
[5] pnpm-lock.yaml
[6] poetry.lock
[7] pom.xml
[8] requirements.txt
[9] yarn.lock
Scan Options
Silent scan
vet
supports silent scan to prevent rendering UI using the following command with-s
or--silent
flag
vet scan -s --lockfiles demo-client-java/gradle.lockfile
Scan concurrency
- By default it set to
5
, you can increase or decrease using the--concurrency
or-C
flag
❯ vet scan -C 10 --lockfiles demo-client-java/gradle.lockfile
Scanning packages ... done! [115 in 5.87s]
Scanning manifests ... done! [1 in 5.87s]
- You can see the difference between the above and below scan time with same file(s)
❯ vet scan -C 1 --lockfiles demo-client-java/gradle.lockfile
Scanning packages ... done! [115 in 10.567s]
Scanning manifests ... done! [1 in 10.567s]
Scanning transitive dependencies
- You can perform the transitive dependencies scan by running the following command with
--transitive
flag
vet scan --transitive --lockfiles demo-client-java/gradle.lockfile
- As you can see the above scan has found issues across
201
libraries
Configuring transitive dependencies depth level
- You can change the transitive dependencies scan depth by running the following command with
--transitive-depth
flag
vet scan --transitive --transitive-depth 5 --lockfiles demo-client-java/gradle.lockfile
- As you can see the above scan has found issues across
237
libraries
info
By default if you don't specify the flag it takes 2
as depth