You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Changelog.md
+28-25
Original file line number
Diff line number
Diff line change
@@ -1,51 +1,54 @@
1
1
# FOSSA CLI Changelog
2
2
3
+
## v3.9.8
4
+
- Reachability: Users may now provide custom locations for the JAR files emitted by projects and used for reachability analysis ([#1382](https://github.com/fossas/fossa-cli/pull/1382)).
5
+
3
6
## v3.9.7
4
7
- Add preflight permission checks to validate token type, subscription type, project permissions, and release group permissions [#1383](https://github.com/fossas/fossa-cli/pull/1383)
5
8
6
9
## v3.9.6
7
10
- Add debug logs for build warnings in `analyze` commands [#1386](https://github.com/fossas/fossa-cli/pull/1386)
-`--detect-dynamic`: Safely ignores scenarios in ldd output parsing where we run into not found error. ([#1376](https://github.com/fossas/fossa-cli/pull/1376))
26
+
-`--detect-dynamic`: Safely ignores scenarios in ldd output parsing where we run into not found error ([#1376](https://github.com/fossas/fossa-cli/pull/1376)).
24
27
25
28
## v3.9.0
26
-
- Emits a warning instead of an error when no analysis targets are found ([#1375](https://github.com/fossas/fossa-cli/pull/1375))
29
+
- Emits a warning instead of an error when no analysis targets are found ([#1375](https://github.com/fossas/fossa-cli/pull/1375)).
27
30
28
31
## 3.8.37
29
32
30
-
- Container Scans: Bugfix for some registry scans that fail with an STM error. ([#1370](https://github.com/fossas/fossa-cli/pull/1370))
33
+
- Container Scans: Bugfix for some registry scans that fail with an STM error. ([#1370](https://github.com/fossas/fossa-cli/pull/1370)).
31
34
32
35
## v3.8.36
33
-
-`fossa feedback`: Allow users to provide feedback on their cli experience ([#1368](https://github.com/fossas/fossa-cli/pull/1368))
34
-
- Add preflight checks to validate API key, connection to FOSSA app, and ability to write to temp directory in relevant commands
36
+
-`fossa feedback`: Allow users to provide feedback on their cli experience ([#1368](https://github.com/fossas/fossa-cli/pull/1368)).
37
+
- Add preflight checks to validate API key, connection to FOSSA app, and ability to write to temp directory in relevant commands.
35
38
36
39
37
40
## v3.8.35
38
41
- Running `fossa analyze --detect-vendored` no longer fails if there are no detected vendored dependencies ([#1373](https://github.com/fossas/fossa-cli/pull/1373)).
39
42
40
43
## v3.8.34
41
-
- Add color and update formatting in cli help commands ([#1367](https://github.com/fossas/fossa-cli/pull/1367))
44
+
- Add color and update formatting in cli help commands ([#1367](https://github.com/fossas/fossa-cli/pull/1367)).
42
45
43
46
## v3.8.33
44
-
- Removes warnings and tracebacks to stderr [#1358](https://github.com/fossas/fossa-cli/pull/1358)
47
+
- Removes warnings and tracebacks to stderr ([#1358](https://github.com/fossas/fossa-cli/pull/1358)).
45
48
46
49
## v3.8.32
47
50
48
-
- Options: Add a `--static-only-analysis` option. ([#1362](https://github.com/fossas/fossa-cli/pull/1362))
51
+
- Options: Add a `--static-only-analysis` option ([#1362](https://github.com/fossas/fossa-cli/pull/1362)).
49
52
50
53
## v3.8.31
51
54
@@ -55,33 +58,33 @@
55
58
56
59
## v3.8.30
57
60
58
-
- Fix an issue with long-option syntax for older versions of `sbt` ([#1356](https://github.com/fossas/fossa-cli/pull/1356))
59
-
- Debug: add more logging for debugging missing dependencies. ([#1360](https://github.com/fossas/fossa-cli/pull/1360))
61
+
- Fix an issue with long-option syntax for older versions of `sbt` ([#1356](https://github.com/fossas/fossa-cli/pull/1356)).
62
+
- Debug: add more logging for debugging missing dependencies ([#1360](https://github.com/fossas/fossa-cli/pull/1360)).
60
63
61
64
## v3.8.29
62
-
- Prevents showing SCM warnings in fossa analyze, test, and report [#1354](https://github.com/fossas/fossa-cli/pull/1354)
63
-
- Pathfinder: Pathfinder has been deprecated and removed. ([#1350](https://github.com/fossas/fossa-cli/pull/1350))
65
+
- Prevents showing SCM warnings in fossa analyze, test, and report ([#1354](https://github.com/fossas/fossa-cli/pull/1354)).
66
+
- Pathfinder: Pathfinder has been deprecated and removed ([#1350](https://github.com/fossas/fossa-cli/pull/1350)).
64
67
65
68
## v3.8.28
66
-
- VSI: no longer reports paths inside of extracted archives with the `!_fossa.virtual_!` literal [#1345](https://github.com/fossas/fossa-cli/pull/1345)
69
+
- VSI: no longer reports paths inside of extracted archives with the `!_fossa.virtual_!` literal ([#1345](https://github.com/fossas/fossa-cli/pull/1345)).
67
70
68
71
## v3.8.27
69
-
- Maven: Fix a bug that broke maven analysis if the build directory was in a non-standard location ([#1343](https://github.com/fossas/fossa-cli/pull/1343))
72
+
- Maven: Fix a bug that broke maven analysis if the build directory was in a non-standard location ([#1343](https://github.com/fossas/fossa-cli/pull/1343)).
70
73
71
74
## v3.8.26
72
-
- Maven: add support for maven submodule filtering [#1339](https://github.com/fossas/fossa-cli/pull/1339)
75
+
- Maven: add support for maven submodule filtering ([#1339](https://github.com/fossas/fossa-cli/pull/1339)).
73
76
74
77
## v3.8.25
75
-
- Maven: add support for maven scope filtering ([#1331](https://github.com/fossas/fossa-cli/pull/1331))
76
-
-`fossa init`: adds new `fossa init` command which creates `.fossa.yml.example`, and `fossa-deps.yml.example` file. ([#1323](https://github.com/fossas/fossa-cli/pull/1323))
78
+
- Maven: add support for maven scope filtering ([#1331](https://github.com/fossas/fossa-cli/pull/1331)).
79
+
-`fossa init`: adds new `fossa init` command which creates `.fossa.yml.example`, and `fossa-deps.yml.example` file. ([#1323](https://github.com/fossas/fossa-cli/pull/1323)).
77
80
78
81
## v3.8.24
79
82
80
-
- Python: use `pip` to determine transitive dependencies for setuptool projects that contain a req*.txt or setup.py file. ([#1334](https://github.com/fossas/fossa-cli/pull/1334))
81
-
- Container Scanning: warn and exclude rpm packages that are missing attributes. ([#1335](https://github.com/fossas/fossa-cli/pull/1335))
83
+
- Python: use `pip` to determine transitive dependencies for setuptool projects that contain a req*.txt or setup.py file. ([#1334](https://github.com/fossas/fossa-cli/pull/1334)).
84
+
- Container Scanning: warn and exclude rpm packages that are missing attributes ([#1335](https://github.com/fossas/fossa-cli/pull/1335)).
82
85
83
86
## v3.8.23
84
-
- Custom License Scans: Support full-file uploads for custom license scans ([#1333](https://github.com/fossas/fossa-cli/pull/1333))
87
+
- Custom License Scans: Support full-file uploads for custom license scans ([#1333](https://github.com/fossas/fossa-cli/pull/1333)).
Copy file name to clipboardExpand all lines: docs/features/vuln_reachability.md
+50-7
Original file line number
Diff line number
Diff line change
@@ -2,16 +2,16 @@
2
2
3
3
### What is Reachability?
4
4
5
-
Reachability Analysis is a security offering designed to enhance FOSSA's security analysis by providing context on vulnerable packages. It alleviates the constraints of traditional CVE assessments through the static analysis of application and dependency code, confirming the presence of vulnerable call paths.
5
+
Reachability Analysis is a security offering designed to enhance FOSSA's security analysis by providing context on vulnerable packages. It alleviates the constraints of traditional CVE assessments through the static analysis of application and dependency code, confirming the presence of vulnerable call paths.
6
6
7
7
### Limitations
8
8
9
-
- Reachability currently supports all Maven and Gradle projects dynamically analyzed by FOSSA CLI.
9
+
- Reachability currently supports all Maven and Gradle projects dynamically analyzed by FOSSA CLI.
10
10
- The target jar of the project must exist, prior to the analysis. If the jar artifact is not present, or FOSSA CLI fails to
11
11
associate this jar with project, FOSSA CLI will not perform reachability analysis.
12
12
- Reachability requires that `java` is present in PATH, and `java` version must be greater than `1.8` (jdk8+).
13
13
14
-
For example,
14
+
For example,
15
15
- if you are using maven, you should run `mvn package` to ensure jar artifact exists, prior to running `fossa analyze`
16
16
- if you are using gradle, you should run `gradlew build` to ensure jar artifact exists, prior to running `fossa analyze`
17
17
@@ -23,6 +23,50 @@ For Maven projects, FOSSA CLI performs an analysis to infer dependencies. If FOS
23
23
24
24
For Gradle projects, FOSSA CLI invokes `./gradlew -I jsonpaths.gradle jsonPaths`. Where [jsonpaths.gradle](./../../scripts/jarpaths.gradle) is gradle script, which uses `java` plugin, and `jar` task associated with gradle to infer path of the built jar file. If neither of those are present, FOSSA CLI won't be able to identify jar artifacts for analysis.
25
25
26
+
### Custom JAR locations
27
+
28
+
For both Gradle and Maven, it is possible to choose different locations for output JAR files, or to move them before FOSSA CLI runs.
29
+
For these cases, you can configure the locations directly.
30
+
31
+
First, run `fossa list-targets` inside your project. For example:
32
+
```sh
33
+
❯ fossa list-targets
34
+
Found project: gradle@./
35
+
Found target: gradle@./::app
36
+
```
37
+
38
+
This output specifies that a Gradle project was found at the root of the current directory (at `./`).
39
+
Note for which project(s) you wish to provide the paths to the built JAR files, we'll need these later.
40
+
41
+
Now, create a `.fossa.yml` file if one does not already exist ([more information here](../references/files/fossa-yml.md)).
42
+
Add the following keys to it:
43
+
```yml
44
+
reachability:
45
+
jvmOutputs:
46
+
```
47
+
48
+
Inside the `jvmOutputs` object, create a map that describes, for each project path (noted down earlier) the paths to the JAR files that the project output.
49
+
50
+
For example, let's say that the Gradle project at the root of my scan directory (at `./`) produces a JAR file named `app.jar`, and that I configured Gradle such that when it builds the project that `app.jar` file is also written to the root of my scan directory (so its path is `./app.jar`, relative to the scan root).
51
+
My config file would look like this:
52
+
53
+
```yml
54
+
reachability:
55
+
jvmOutputs:
56
+
'./':
57
+
- './app.jar'
58
+
```
59
+
60
+
You can also provide the absolute paths to make this more clear, if desired. For example, if my project was at `~/projects/example-project` and I wanted to use absolute paths in the config file, the file would look like this:
61
+
```yml
62
+
reachability:
63
+
jvmOutputs:
64
+
'/Users/me/projects/example-project':
65
+
- '/Users/me/projects/example-project/app.jar'
66
+
```
67
+
68
+
With this configuration, when FOSSA CLI analyzes a Maven or Gradle project at the specified path (in this case `/Users/me/projects/example-project`) instead of attempting to query the build tool for the location of the built JAR files it will instead use the values provided for that path (in this case `/Users/me/projects/example-project/app.jar`).
0 commit comments