Skip to content

Commit 2a225bf

Browse files
committed
bug:SP-2190 Fixes bug on SCANOSS settings identified ingestion
1 parent 38a4678 commit 2a225bf

File tree

5 files changed

+75
-36
lines changed

5 files changed

+75
-36
lines changed

Diff for: .gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ node_modules
77
src/**.js
88
coverage
99
*.log
10-
10+
.DS_Store

Diff for: CHANGELOG.md

+10
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
### [0.15.7](https://github.com/scanoss/scanoss.js/compare/v0.15.6...v0.15.7) (2025-03-05)
6+
7+
### [0.15.6](https://github.com/scanoss/scanoss.js/compare/v0.15.5...v0.15.6) (2025-01-08)
8+
9+
### [0.15.5](https://github.com/scanoss/scanoss.js/compare/v0.15.4...v0.15.5) (2024-12-30)
10+
11+
### [0.15.4](https://github.com/scanoss/scanoss.js/compare/v0.15.3...v0.15.4) (2024-11-27)
12+
13+
### [0.15.3](https://github.com/scanoss/scanoss.js/compare/v0.15.2...v0.15.3) (2024-11-24)
14+
515
### [0.15.2](https://github.com/scanoss/scanoss.js/compare/v0.15.1...v0.15.2) (2024-08-29)
616

717
### [0.15.1](https://github.com/scanoss/scanoss.js/compare/v0.15.0...v0.15.1) (2024-08-27)

Diff for: package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "scanoss",
3-
"version": "0.15.6",
3+
"version": "0.15.7",
44
"description": "The SCANOSS JS package provides a simple, easy to consume module for interacting with SCANOSS APIs/Engine.",
55
"main": "build/main/index.js",
66
"typings": "build/main/index.d.ts",

Diff for: src/cli/commands/scan.ts

+46-26
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,60 @@
1-
import fs from 'fs';
2-
import { Scanner } from '../../sdk/scanner/Scanner';
1+
import fs from "fs";
2+
import { Scanner } from "../../sdk/scanner/Scanner";
33
import {
44
SbomMode,
55
ScannerEvents,
66
ScannerInput,
77
ScannerResults,
8-
WinnowingMode,
9-
} from '../../sdk/scanner/ScannerTypes';
10-
import { ScannerCfg } from '../../sdk/scanner/ScannerCfg';
11-
import { Tree } from '../../sdk/tree/Tree';
12-
import cliProgress from 'cli-progress';
13-
import { DispatcherResponse } from '../../sdk/scanner/Dispatcher/DispatcherResponse';
8+
WinnowingMode
9+
} from "../../sdk/scanner/ScannerTypes";
10+
import { ScannerCfg } from "../../sdk/scanner/ScannerCfg";
11+
import { Tree } from "../../sdk/tree/Tree";
12+
import cliProgress from "cli-progress";
13+
import {
14+
DispatcherResponse
15+
} from "../../sdk/scanner/Dispatcher/DispatcherResponse";
1416
import {
1517
getProjectNameFromPath,
1618
getSettingsFilePath,
1719
isFolder
1820
} from "./helpers";
1921

20-
import { DependencyScannerCfg } from '../../sdk/Dependencies/DependencyScannerCfg';
21-
import { DependencyScanner } from '../../sdk/Dependencies/DependencyScanner';
22-
import { IDependencyResponse } from '../../sdk/Dependencies/DependencyTypes';
23-
import { ScanFilter } from '../../sdk/tree/Filters/ScanFilter';
24-
import { DependencyFilter } from '../../sdk/tree/Filters/DependencyFilter';
25-
import { Report } from '../../sdk/Report/Report';
26-
import { DataProviderManager } from '../../sdk/Report/DataLayer/DataProviderManager';
27-
import { ComponentDataProvider } from '../../sdk/Report/DataLayer/DataProviders/ComponentDataProvider';
28-
import { DependencyDataProvider } from '../../sdk/Report/DataLayer/DataProviders/DependencyDataProvider';
29-
import { LicenseDataProvider } from '../../sdk/Report/DataLayer/DataProviders/LicenseDataProvider';
30-
import { SummaryDataProvider } from '../../sdk/Report/DataLayer/DataProviders/SummaryDataProvider';
31-
import { DecompressionFilter } from '../../sdk/tree/Filters/DecompressionFilter';
32-
import { DecompressionManager } from '../../sdk/Decompress/DecompressionManager';
33-
import path from 'path';
34-
import { LicenseObligationDataProvider } from '../../sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider';
22+
import {
23+
DependencyScannerCfg
24+
} from "../../sdk/Dependencies/DependencyScannerCfg";
25+
import { DependencyScanner } from "../../sdk/Dependencies/DependencyScanner";
26+
import { IDependencyResponse } from "../../sdk/Dependencies/DependencyTypes";
27+
import { ScanFilter } from "../../sdk/tree/Filters/ScanFilter";
28+
import { DependencyFilter } from "../../sdk/tree/Filters/DependencyFilter";
29+
import { Report } from "../../sdk/Report/Report";
30+
import {
31+
DataProviderManager
32+
} from "../../sdk/Report/DataLayer/DataProviderManager";
33+
import {
34+
ComponentDataProvider
35+
} from "../../sdk/Report/DataLayer/DataProviders/ComponentDataProvider";
36+
import {
37+
DependencyDataProvider
38+
} from "../../sdk/Report/DataLayer/DataProviders/DependencyDataProvider";
39+
import {
40+
LicenseDataProvider
41+
} from "../../sdk/Report/DataLayer/DataProviders/LicenseDataProvider";
42+
import {
43+
SummaryDataProvider
44+
} from "../../sdk/Report/DataLayer/DataProviders/SummaryDataProvider";
45+
import {
46+
DecompressionFilter
47+
} from "../../sdk/tree/Filters/DecompressionFilter";
48+
import {
49+
DecompressionManager
50+
} from "../../sdk/Decompress/DecompressionManager";
51+
import path from "path";
52+
import {
53+
LicenseObligationDataProvider
54+
} from "../../sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider";
3555
import {
3656
CryptographyDataProvider
37-
} from '../../sdk/Report/DataLayer/DataProviders/CryptographyDataProvider';
57+
} from "../../sdk/Report/DataLayer/DataProviders/CryptographyDataProvider";
3858
import {
3959
Settings
4060
} from "../../sdk/scanner/ScannnerResultPostProcessor/interfaces/types";
@@ -94,8 +114,8 @@ export async function scanHandler(
94114
const settingsFilePath = await getSettingsFilePath(options.settings, rootPath);
95115
if (settingsFilePath) {
96116
try {
97-
scannerInput.settings = JSON.parse(fs.readFileSync(settingsFilePath, "utf-8")) as unknown as Settings;
98-
scannerInput.sbomMode = SbomMode.SBOM_IDENTIFY;
117+
const scanossSettings = JSON.parse(fs.readFileSync(settingsFilePath, "utf-8")) as unknown as Settings;
118+
scannerInput.settings = scanossSettings;
99119
} catch(e) {
100120
throw new Error(`SCANOSS Settings file cannot be found at: ${settingsFilePath}.`);
101121
}

Diff for: src/sdk/scanner/Scanner.ts

+17-8
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import { DispatchableItem } from './Dispatcher/DispatchableItem';
1010
import { DispatcherResponse } from './Dispatcher/DispatcherResponse';
1111
import { ScannerCfg } from './ScannerCfg';
1212
import {
13-
ContentScannerInput, ScannerComponent,
13+
ContentScannerInput, SbomMode, ScannerComponent,
1414
ScannerEvents,
1515
ScannerInput,
1616
ScannerResults
17-
} from './ScannerTypes';
17+
} from "./ScannerTypes";
1818

1919
import { WfpProvider } from './WfpProvider/WfpProvider';
2020
import { FingerprintPackage } from './WfpProvider/FingerprintPackage';
@@ -160,13 +160,22 @@ export class Scanner extends EventEmitter {
160160
this.scannerInput = scannerInput;
161161
this.settings = scannerInput[0]?.settings ? { ...scannerInput[0].settings } : null;
162162

163-
164163
if (scannerInput[0]?.settings) {
165-
validateSettingsFile(scannerInput[0].settings);
166-
const include = scannerInput[0].settings.bom.include.map((i)=> i.purl);
167-
const replace = scannerInput[0].settings.bom.replace.map((r)=> r.replace_with);
168-
const sbom = { components: [...include, ...replace] };
169-
scannerInput[0].sbom = JSON.stringify(sbom);
164+
scannerInput.forEach((si)=>{
165+
validateSettingsFile(si.settings);
166+
let components = [];
167+
const { bom } = si.settings;
168+
const sbomMode = bom?.include && bom.include.length > 0
169+
? SbomMode.SBOM_IDENTIFY : undefined;
170+
171+
// Only use ignore if include isn't present
172+
if (bom?.include?.length) {
173+
components = bom.include.map(item => ({ purl: item.purl }));
174+
}
175+
// Set legacy BOM
176+
si.sbom = JSON.stringify({ components });
177+
si.sbomMode = sbomMode;
178+
});
170179
}
171180

172181
this.reportLog(`[ SCANNER ]: Scanner instance id ${this.getScannerId()}`);

0 commit comments

Comments
 (0)