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
Scan pipeline: `runtimePreparation → subprojectDiscovery → preResolveHooks → detect (per-package-manager chains) → scopeFilter → consolidate → match (license enrichment on the consolidated graph) → audit → postResolveHooks → format`.
47
47
48
48
Runtime preparation is owned by `internal/engine`: build the filtered registry once, index the execution target with that same registry, and reuse the prepared runtime for `scan`, `diff`, `explain`, license enrichment, and auditing. The CLI resolves raw execution targets and flags, but it must not discover subprojects with a separate registry.
Runtime preparation is owned by `internal/engine` and is reached through CLI option helpers before pipeline execution. The CLI resolves raw targets and flags but must not discover subprojects with a separate registry.
Copy file name to clipboardExpand all lines: docs/ARCHITECTURE.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,9 +28,8 @@ flowchart TD
28
28
E --> F[Run detector chains]
29
29
F --> G[Consolidate graph]
30
30
G --> H[Optional package enrichment]
31
-
H --> I[Command-specific processing]
32
-
I --> J[Optional policy evaluation]
33
-
J --> K[Render report or SBOM]
31
+
H --> I[Optional policy evaluation]
32
+
I --> J[Render report or SBOM]
34
33
```
35
34
36
35
## Execution Targets
@@ -53,7 +52,7 @@ flowchart LR
53
52
A[Runtime preparation]
54
53
B[Subproject discovery]
55
54
C[Detector chains]
56
-
D[Scope filtering and command processing]
55
+
D[Scope filtering]
57
56
E[Graph consolidation]
58
57
F[Matchers]
59
58
G[Auditors]
@@ -67,13 +66,14 @@ Stage summary:
67
66
1. Runtime preparation builds the filtered registry and execution plan.
68
67
2. Subproject discovery finds supported package-manager roots for the target.
69
68
3. Detector chains resolve dependency graphs per package manager.
70
-
4.Command processing applies scope filtering or focused queries when needed.
69
+
4.Scope filtering applies requested dependency scopes before consolidation.
71
70
5. Consolidation merges subproject graphs into a unified view.
72
71
6. Matchers enrich packages with additional metadata such as licenses, EOL status, and vulnerability records.
73
-
7. Command processing applies focused graph transforms such as scope filtering or explain-path selection.
74
-
8. Auditors evaluate policy against whatever vulnerability data is already present on packages and create findings when `--audit` is enabled.
75
-
9. Users combine `--enrich --audit` when they want external matcher data to feed policy evaluation in the same run.
76
-
10. Output rendering emits text, JSON, SARIF, or SBOM documents.
72
+
7. Auditors evaluate policy against whatever vulnerability data is already present on packages and create findings when `--audit` is enabled.
73
+
8. Users combine `--enrich --audit` when they want external matcher data to feed policy evaluation in the same run.
74
+
9. Output rendering emits text, JSON, SARIF, or SBOM documents.
75
+
76
+
`bomly explain` reuses the same resolution, scope filtering, consolidation, and matching stages, then performs dependency path selection in its explain orchestration before optional component audit.
0 commit comments