Safety 3.0.0 is a significant update to Safety CLI from 2.x versions, including enhancements to core features, new capabilities, and breaking changes from 2.x.
Safety 3.0.0 is a significant update to Safety CLI from 2.x versions, including enhancements to core features, new capabilities, and breaking changes from 2.x.
Added scan command, which scans a project’s directory for all Python dependencies and includes many improvements over the check command, including automatic Python project scanning, native support for Poetry and Pipenv files, Python virtual environment folders, and more granular configuration options.
Added auth commands, enabling new browser-based authentication of Safety CLI.
An updated safety policy file schema to support new scan and system-scan commands. This policy file schema is a breaking change from the policy schema used for safety check. To migrate a Safety 2.x policy, see Migrating from Safety 2.x to Safety CLI 3.
Updated screen output to modern interactive interface, with new help interfaces.
Updated to new JSON output structure to support new scan command, other ecosystems, and other security findings.
Added a supporting safety-schemas project dependency, also published and maintained by Safety, which defines Safety vulnerability database file, Safety CLI policy file, and Safety CLI JSON output schemas as pydantic models, formalizing these into testable and versioned schemas.
New scan command:
New scan command: scans a Python project directory for Python dependencies and security vulnerabilities. Safety scan replaces safety check with a more powerful and easier to use command. The scan command:
Finds and scans Python dependency files and virtual environments inside the target directory without needing to specify file or environment locations.
Adds native scanning and reporting for Poetry and Pipenv manifest files, and Python virtual environment folders.
Adds configuration of scanning rules to;
exclude files and folders from the scan using Unix shell-style wildcards only
Include files to be scanned
Max folder depth setting
Reporting configuration rules
Reporting rules defining which types and specific vulnerabilities to include or ignore stay the same as safety 2.x, although now in a slightly different structure.
Failing rules
Adds ability to configure rules for when safety should return a non-zero (failing) exit code, which can be different from reporting rules under the report field.
Auto-updating rules
Adds ability to easily update insecure package versions in pip requirements files.
Other new commands:
Added auth command: manages Safety CLI’s authentication in development environments, allowing easy authentication via the browser.
auth login - adds ability to authenticate safety cli via the browser
auth register - adds ability to register for a Safety account via the CLI, and get scanning within minutes
auth status -
auth logout -
safety check command can still be used with the API key --key argument, and scan and system-scan commands should also be
Added configure command: configures safety cli using a config.ini file, either saved to the user settings or system settings. This can be used to configure safety’s authentication methods and global proxy details.
Added system-scan command (beta): Adds the system-scan command, which scans a machine for Python files and environments, reporting these to screen output. system-scan is an experimental beta feature that can scan an entire drive or machine for Python dependency files and Python virtual environments, reporting on packages found and their associated security vulnerabilities.
Added check-updates command: Check for version updates to Safety CLI, and supports screen and JSON format outputs. Can be used in organizations to test and rollout new version updates as recommended by Safety Cybersecurity.
New policy file schema for scan and system-scan commands
You can trigger a rebase of this PR by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
Bumps safety from 2.3.5 to 3.1.0.
Release notes
Sourced from safety's releases.
Changelog
Sourced from safety's changelog.
... (truncated)
Commits
eb7a23e
Safety 3.1.09cb3d3f
fix: support pydantic2 by using safety_schemas 0.0.2 (#509)4fbb211
feat: add headless auth (#508)1958c25
Safety 3.0.1 (#499)69dab0b
fix: add back the license legacy cmd (#498)dd43359
Merge pull request #497 from pyupio/perf/dependencies2f9859e
perf: unpin authlib and remove jwte9bf977
Merge pull request #493 from pyupio/fix/links-readmeea1feca
update readme links to the new Github action615ef36
Merge pull request #491 from pyupio/release/3.0.0You can trigger a rebase of this PR by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show