Skip to content

Commit 4f3d676

Browse files
committed
docs: correct remaining reachability reference gaps (post-2.4.3)
Layered on top of the v2.4.3 --exclude-paths work (#227). Fixes the reachability-reference items #227 left: - Document the uv + Enterprise-plan prerequisites the CLI enforces before running reachability (exit 3), and that per-ecosystem build toolchains are the analysis engine's runtime check, not a CLI pre-check. - Correct --reach-min-severity values to info/low/moderate/high/critical. - Document --reach-enable-analysis-splitting, --reach-detailed-analysis-log-file, --reach-lazy-mode, --reach-use-only-pregenerated-sboms. - Clarify --only-facts-file submits only the facts file when creating the full scan (no pre-existing scan required). - Note --reach creates a tier-1 full-application scan (scan_type=socket_tier1). Docs-only; the 2.4.3->2.4.4 bump + uv.lock are mandated by the sync-version hook.
1 parent 80741b7 commit 4f3d676

5 files changed

Lines changed: 36 additions & 10 deletions

File tree

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# Changelog
22

3+
## 2.4.4
4+
5+
### Docs: reachability reference corrections
6+
7+
- Documented the `uv` and Enterprise-plan prerequisites the CLI enforces **before** running
8+
reachability (exit code 3 if unmet), and clarified that per-ecosystem build toolchains
9+
(JDK / .NET / Go / a compatible Python interpreter) are checked by the analysis engine at
10+
runtime, not pre-checked by the CLI.
11+
- Corrected the `--reach-min-severity` values to `info, low, moderate, high, critical`.
12+
- Documented the previously-undocumented reachability flags: `--reach-enable-analysis-splitting`,
13+
`--reach-detailed-analysis-log-file`, `--reach-lazy-mode`, and `--reach-use-only-pregenerated-sboms`.
14+
- Clarified that `--only-facts-file` submits only the facts file when **creating** the full scan
15+
(it does not require a pre-existing scan).
16+
- Documentation-only; no functional code changes.
17+
318
## 2.4.3
419

520
### Added: unified `--exclude-paths` for manifest discovery and reachability

docs/cli-reference.md

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,8 @@ socketcli [-h] [--api-token API_TOKEN] [--repo REPO] [--workspace WORKSPACE] [--
154154
[--ignore-commit-files] [--disable-blocking] [--disable-ignore] [--enable-diff] [--scm SCM] [--timeout TIMEOUT] [--include-module-folders]
155155
[--reach] [--reach-version REACH_VERSION] [--reach-analysis-timeout REACH_ANALYSIS_TIMEOUT]
156156
[--reach-analysis-memory-limit REACH_ANALYSIS_MEMORY_LIMIT] [--reach-concurrency REACH_CONCURRENCY] [--reach-ecosystems REACH_ECOSYSTEMS]
157-
[--reach-min-severity {low,medium,high,critical}] [--reach-skip-cache] [--reach-disable-analytics] [--reach-debug] [--reach-disable-external-tool-checks]
157+
[--reach-min-severity <level>] [--reach-skip-cache] [--reach-disable-analytics] [--reach-enable-analysis-splitting] [--reach-detailed-analysis-log-file]
158+
[--reach-lazy-mode] [--reach-use-only-pregenerated-sboms] [--reach-debug] [--reach-disable-external-tool-checks]
158159
[--reach-output-file REACH_OUTPUT_FILE] [--only-facts-file] [--version]
159160
````
160161

@@ -238,25 +239,35 @@ If you don't want to provide the Socket API Token every time then you can use th
238239
#### Reachability Analysis
239240
| Parameter | Required | Default | Description |
240241
|:---------------------------------|:---------|:--------|:---------------------------------------------------------------------------------------------------------------------------|
241-
| `--reach` | False | False | Enable reachability analysis to identify which vulnerable functions are actually called by your code |
242+
| `--reach` | False | False | Enable reachability analysis to identify which vulnerable functions are actually called by your code. Creates a tier-1 full-application reachability scan (`scan_type=socket_tier1`). |
242243
| `--reach-version` | False | latest | Version of @coana-tech/cli to use for analysis |
243244
| `--reach-analysis-timeout` | False | *coana* | Timeout in seconds for the reachability analysis. Omitted by default, so coana applies its own (currently 600s). Alias: `--reach-timeout` |
244245
| `--reach-analysis-memory-limit` | False | *coana* | Memory limit in MB for the reachability analysis. Omitted by default, so coana applies its own (currently 8192). Alias: `--reach-memory-limit` |
245246
| `--reach-concurrency` | False | *coana* | Control parallel analysis execution (must be >= 1). Omitted by default, so coana applies its own (currently 1) |
246247
| `--reach-additional-params` | False | | Pass custom parameters to the coana CLI tool |
247248
| `--reach-ecosystems` | False | | Comma-separated list of ecosystems to analyze (e.g., "npm,pypi"). If not specified, all supported ecosystems are analyzed |
248-
| `--reach-min-severity` | False | | Minimum severity level for reporting reachability results (low, medium, high, critical) |
249+
| `--reach-min-severity` | False | | Minimum severity level for reporting reachability results (info, low, moderate, high, critical) |
249250
| `--reach-skip-cache` | False | False | Skip cache and force fresh reachability analysis |
250251
| `--reach-disable-analytics` | False | False | Disable analytics collection during reachability analysis |
252+
| `--reach-enable-analysis-splitting` | False | False | Enable analysis splitting/bucketing (a legacy performance feature). Splitting is disabled by default. |
253+
| `--reach-detailed-analysis-log-file` | False | False | Write a detailed analysis log file; its path is printed to stdout |
254+
| `--reach-lazy-mode` | False | False | Enable lazy mode (experimental performance feature) |
255+
| `--reach-use-only-pregenerated-sboms` | False | False | Build the scan only from pre-generated CycloneDX (CDX) and SPDX files in your project (requires --reach) |
251256
| `--reach-debug` | False | False | Enable coana debug output (`--debug`) for the analysis, independent of the global `--enable-debug` |
252257
| `--reach-disable-external-tool-checks` | False | False | Disable coana's external tool availability checks (passes `--disable-external-tool-checks`) |
253258
| `--reach-output-file` | False | .socket.facts.json | Path where reachability analysis results should be saved |
254259
| `--reach-exclude-paths` | False | | **[DEPRECATED — use `--exclude-paths`]** Comma-separated paths to exclude from reachability analysis. Still honored (unioned with `--exclude-paths`) but will be hidden in a future release |
255-
| `--only-facts-file` | False | False | Submit only the .socket.facts.json file to an existing scan (requires --reach and a prior scan) |
260+
| `--only-facts-file` | False | False | Submit only the .socket.facts.json file when creating the full scan (requires --reach) |
256261
257262
**Reachability Analysis Requirements:**
258-
- `npm` - Required to install and run @coana-tech/cli
259-
- `npx` - Required to execute @coana-tech/cli
263+
264+
The Python CLI verifies the following **up front** (before invoking the analysis engine) and exits with code **3** if any are unmet:
265+
- `npm` - Required to install and run `@coana-tech/cli` (the analysis engine)
266+
- `npx` - Required to execute `@coana-tech/cli`
267+
- `uv` - Required by the analysis engine
268+
- An **Enterprise** Socket organization plan (any `enterprise*` plan, including Enterprise trials)
269+
270+
Separately, the analysis engine (coana) needs the **per-ecosystem build toolchain** for whatever languages your project uses — e.g. a compatible Python interpreter (3.11+, or PyPy) for Python, a JDK for Java/Kotlin/Scala, .NET 6+ for C#, the matching Go toolchain for Go, etc. These are validated by the engine **at analysis time** (the CLI does not pre-check them) and that validation can be skipped with `--reach-disable-external-tool-checks`.
260271
261272
## Config file support
262273
@@ -302,7 +313,7 @@ Sample config files:
302313
303314
For CI-specific examples and guidance, see [`ci-cd.md`](ci-cd.md).
304315
305-
The CLI will automatically install `@coana-tech/cli` if not present. Use `--reach` to enable reachability analysis during a full scan, or use `--only-facts-file` with `--reach` to submit reachability results to an existing scan.
316+
The CLI will automatically install `@coana-tech/cli` if not present. Use `--reach` to enable reachability analysis during a full scan, or add `--only-facts-file` (with `--reach`) to submit only the reachability facts file (`.socket.facts.json`) when creating the full scan.
306317
307318
#### Advanced Configuration
308319
| Parameter | Required | Default | Description |

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
66

77
[project]
88
name = "socketsecurity"
9-
version = "2.4.3"
9+
version = "2.4.4"
1010
requires-python = ">= 3.11"
1111
license = {"file" = "LICENSE"}
1212
dependencies = [

socketsecurity/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
__author__ = 'socket.dev'
2-
__version__ = '2.4.3'
2+
__version__ = '2.4.4'
33
USER_AGENT = f'SocketPythonCLI/{__version__}'

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)