Skip to content

Add support for container SBOM report#841

Merged
pditommaso merged 32 commits into
masterfrom
scan-sbom
Aug 8, 2025
Merged

Add support for container SBOM report#841
pditommaso merged 32 commits into
masterfrom
scan-sbom

Conversation

@pditommaso

@pditommaso pditommaso commented May 21, 2025

Copy link
Copy Markdown
Collaborator

This PR adds the support for SBOM report generation to Wave scan capability.

Key Features

  • Security scan SPDX file generation: Generates Software Package Data Exchange (SPDX) files for container vulnerability scans
  • New REST endpoint: /v1alpha1/scans/{scanId}/spdx to retrieve SBOM reports in SPDX format
  • Downloadable reports: Files are downloaded with proper naming convention spdx-{scanId}.json
  • New configuration setting: wave.scan.reports.path to specify the storage location for scan reports

Changes

  • Added SPDX report generation functionality to container scanning service
  • Enhanced scan controller to serve SBOM reports via REST API
  • Implemented proper file download headers for better user experience
  • Added configuration support for customizable report storage paths

Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
@pditommaso
pditommaso marked this pull request as draft May 21, 2025 17:10
pditommaso added 12 commits May 21, 2025 19:18
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
@pditommaso
pditommaso marked this pull request as ready for review June 13, 2025 17:13
@munishchouhan

Copy link
Copy Markdown
Member

Tested locally:

(base) munish.chouhan@Munishs-MacBook-Pro sc-ed0ebf22c8ab0ee6_1 % cd ..
(base) munish.chouhan@Munishs-MacBook-Pro scans % ls
sc-ed0ebf22c8ab0ee6_1
(base) munish.chouhan@Munishs-MacBook-Pro scans % ls sc-ed0ebf22c8ab0ee6_1
spdx.json
(base) munish.chouhan@Munishs-MacBook-Pro scans % tail sc-ed0ebf22c8ab0ee6_1/spdx.json
      "relatedSpdxElement": "SPDXRef-Package-783630804122ce96",
      "relationshipType": "DEPENDS_ON"
    },
    {
      "spdxElementId": "SPDXRef-Package-fc3c7ddc0d973954",
      "relatedSpdxElement": "SPDXRef-Package-783630804122ce96",
      "relationshipType": "DEPENDS_ON"
    }
  ]
}

Screenshot 2025-07-29 at 17 43 44

Signed-off-by: munishchouhan <hrma017@gmail.com>
Signed-off-by: munishchouhan <hrma017@gmail.com>
Signed-off-by: munishchouhan <hrma017@gmail.com>
@munishchouhan

Copy link
Copy Markdown
Member

not working on dev, working on fixing it

2025-07-30 15:20:37.212	
13:20:37.212 [jobs-queue-thread-1] WARN  i.s.w.s.s.ContainerScanServiceImpl - Container scan failed - id=sc-id_1; exit=1; stdout=Error: config file "trivy --quiet image --platform linux/amd64 --timeout 15m --format json --output /efs/wave/build/sc-id_1/report.json --severity MEDIUM,HIGH,CRITICAL docker.io/library/hello-world:latest && trivy --quiet image --platform linux/amd64 --timeout 15m --format spdx-json --output /efs/wave/build/sc-id_1/spdx.json docker.io/library/hello-world:latest" loading error: open trivy --quiet image --platform linux/amd64 --timeout 15m --format json --output /efs/wave/build/sc-id_1/report.json --severity MEDIUM,HIGH,CRITICAL docker.io/library/hello-world:latest && trivy --quiet image --platform linux/amd64 --timeout 15m --format spdx-json --output /efs/wave/build/sc-id_1/spdx.json docker.io/library/hello-world:latest: no such file or directory

Signed-off-by: munishchouhan <hrma017@gmail.com>
Signed-off-by: munishchouhan <hrma017@gmail.com>
Signed-off-by: munishchouhan <hrma017@gmail.com>
@munishchouhan

Copy link
Copy Markdown
Member

tested in dev
https://wave.dev-tower.net/view/scans/sc-5680f6de54c05c54_1

(base) munish.chouhan@Munishs-MacBook-Pro tower-dev % kubectl get pods -n wave-build -w
NAME                          READY   STATUS              RESTARTS   AGE
sc-5680f6de54c05c54-1-fsjn4   0/1     ContainerCreating   0          2s
sc-5680f6de54c05c54-1-fsjn4   1/1     Running             0          7s
^C%                                                                                                                                                                                (base) munish.chouhan@Munishs-MacBook-Pro tower-dev % kubectl logs sc-5680f6de54c05c54-1-fsjn4 -n wave-build
(base) munish.chouhan@Munishs-MacBook-Pro tower-dev % kubectl get pods -n wave-build -w                     
NAME                          READY   STATUS      RESTARTS   AGE
sc-5680f6de54c05c54-1-fsjn4   0/1     Completed   0          2m28s

@munishchouhan
munishchouhan self-requested a review July 31, 2025 06:19
Signed-off-by: munishchouhan <hrma017@gmail.com>
@munishchouhan

Copy link
Copy Markdown
Member

@pditommaso this pr is ready for merge

@pditommaso

Copy link
Copy Markdown
Collaborator Author

@munishchouhan have a look at the conflict of the template, not sure how to solve it

munishchouhan and others added 5 commits August 8, 2025 09:35
Signed-off-by: munishchouhan <hrma017@gmail.com>
Signed-off-by: munishchouhan <hrma017@gmail.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
Signed-off-by: munishchouhan <hrma017@gmail.com>
@munishchouhan

Copy link
Copy Markdown
Member

in docker
Screenshot 2025-08-08 at 10 03 21

@pditommaso
pditommaso merged commit 919a401 into master Aug 8, 2025
3 checks passed
@pditommaso
pditommaso deleted the scan-sbom branch August 8, 2025 08:09
@munishchouhan

Copy link
Copy Markdown
Member

in k8s and s3:
Screenshot 2025-08-08 at 10 10 18

@pditommaso

Copy link
Copy Markdown
Collaborator Author

Nice!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants