v0.4.0
Changelog
Added
config— storeapi-url,api-key,proxyandca-certin
~/.scanoss/settings.jsoninstead of repeating flags:config set,get,list,unset,
path. The API key is never displayed. Every setting resolves as
flag >SCANOSS_<KEY>> config file > default.--proxyand--ca-certon every command that reaches the API.--proxyoverrides
HTTP_PROXY/HTTPS_PROXYfor one run and honoursNO_PROXY;--ca-certadds a PEM file's
certificates to the system pool, verification still on. PAC is not supported.scanoss.NewHTTPClientbuilds an*http.Clientwith the same proxy and CA settings.--min-size/--max-sizeonscanandwfp, and--all-hiddento include dotfiles
(version-control metadata stays excluded).--default-filters,--gitignoreand--settingsonwfp, so it collects files exactly
the wayscandoes.--settingsondependencieslikewise.- SDK:
filter.FingerprintOptions,filter.DependencyOptions,filter.HiddenSource,
settings.FingerprintFilter(),settings.DependencyFilter().
Changed
- Files under 100 bytes are no longer skipped.
pkg/filteris the single source of filtering rules, applied once during collection. The
fingerprint layer no longer filters, soGenerateWFPandGenerateFingerprintfingerprint
whatever they are given — a caller passing a list that did not come from collection now gets
every file. This is the only change here that fails silently rather than at compile time.- SDK, breaking — removed:
wfp.ShouldSkipFile,filter.NewMatcher,
filter.DefaultSkippedDirs,filter.IngestOptions, andfilter.Defaults'
MinSize/MaxSize. Usefilter.Build(filter.DefaultSource(filter.StdDefaults()))plus
manifests.Isto compose rules;filter.CommonSkippedDirs/ScanOnlySkippedDirs
/DependencyOnlySkippedDirs;filter.DependencyOptions; andfilter.Options.MinSize/MaxSize.
Callers starting fromDefaultOptions/ScanOptionsneed no change.
Fixed
- Version-control metadata is never collected.
.gitcould be fingerprinted and uploaded when
the built-in filters and the hidden rule were both off — including.git/config, which can carry
credentials. - License identifiers are validated against the SPDX list. A non-canonical id is normalised;
an unrecognised one, or a malformed expression, becomes a declaredLicenseRefinstead of
producing an SBOM that fails validation. - SBOM packages carry the component name, not the full PURL. CycloneDX gained a
serialNumber, and the tool version moved to its own field. resultsreturns the same inventory asscan, so a resumed scan can be rendered and
converted. It accepts--formatand--include.--default-filters=falsereally disables them — extension-skipped files were dropped anyway
by a second, uncounted filter in the fingerprint layer.dependencieshonoursscanoss.jsonand reports what it filtered;scan --include deps
anddependenciesno longer disagree overexamples/. Askiprule now also overrules the
manifest exemption, so excluding a manifest by name works.--min-size/--max-sizewere ignored together with--default-filters=false.- Zero-byte files and symbolic links are no longer fingerprinted, and the raw format emits
"components": []rather thannullwhen nothing matched.
Install
Prebuilt binary: download the archive for your platform below, extract it,
and move scanoss-cli onto your PATH. On Linux (amd64):
tar xzf scanoss-cli-linux-amd64.tar.gz
sudo mv scanoss-cli /usr/local/bin/Verify a download against checksums.txt:
sha256sum -c --ignore-missing checksums.txtGo:
go install github.com/scanoss/scanoss.go/cmd/scanoss-cli@latestSee the README and
CLIENT_HELP.md
to get started.