syft-adapter | INFO: 172.18.0.9:50010 - "GET /api/v1/metadata HTTP/1.1" 200 OK
registry | 172.18.0.9 - - [19/Mar/2026:09:19:36 +0000] "GET / HTTP/1.1" 200 0 "" "Go-http-client/1.1"
harbor-portal | 172.18.0.9 - - [19/Mar/2026:09:19:36 +0000] "GET / HTTP/1.1" 200 785 "-" "Go-http-client/1.1"
registryctl | 172.18.0.9 - - [19/Mar/2026:09:19:36 +0000] "GET /api/health HTTP/1.1" 200 9
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/jobservice/worker/cworker/c_worker.go:77]: Job incoming: {"name":"IMAGE_SCAN","id":"49702c511a9666c0f9861ded","t":1773911974,"args":null}
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/jobservice/worker/cworker/c_worker.go:77]: Job incoming: {"name":"IMAGE_SCAN","id":"7d8c1ea3b0709fc3c5e955dd","t":1773911974,"args":null}
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/config/rest/rest.go:47]: get configuration from url: http://core:8080/api/v2.0/internalconfig
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/config/rest/rest.go:47]: get configuration from url: http://core:8080/api/v2.0/internalconfig
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/config/rest/rest.go:47]: get configuration from url: http://core:8080/api/v2.0/internalconfig
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/config/rest/rest.go:47]: get configuration from url: http://core:8080/api/v2.0/internalconfig
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/scan/job.go:396]: {
harbor-jobservice | "uuid": "4b7d6b72-22b7-11f1-8b6d-5265ac2ef9fe",
harbor-jobservice | "name": "Syft",
harbor-jobservice | "description": "Syft scanner specif to SBOM binary based analysis",
harbor-jobservice | "url": "http://syft-adapter:8080",
harbor-jobservice | "disabled": false,
harbor-jobservice | "is_default": false,
harbor-jobservice | "health": "healthy",
harbor-jobservice | "auth": "",
harbor-jobservice | "access_credential": "[HIDDEN]",
harbor-jobservice | "skip_certVerify": false,
harbor-jobservice | "use_internal_addr": true,
harbor-jobservice | "adapter": "Syft+Trivy",
harbor-jobservice | "vendor": "Anchore+Aqua",
harbor-jobservice | "version": "syft:v1.19.0 trivy:0.69.3",
harbor-jobservice | "create_time": "2026-03-18T10:43:26.606801Z",
harbor-jobservice | "update_time": "2026-03-18T14:37:08.733957Z"
harbor-jobservice | }
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/scan/job.go:396]: {
harbor-jobservice | "registry": {
harbor-jobservice | "url": "http://core:8080",
harbor-jobservice | "authorization": "[HIDDEN]",
harbor-jobservice | "insecure": false
harbor-jobservice | },
harbor-jobservice | "artifact": {
harbor-jobservice | "namespace_id": 2,
harbor-jobservice | "repository": "<NAME_OF_MY_COMPANY>/sauron/api",
harbor-jobservice | "tag": "v1.0.5",
harbor-jobservice | "digest": "sha256:b07f85224bc5c030fc28565575fe086754c1fa0d5a374b6b29c3bf3a4bb0b17a",
harbor-jobservice | "mime_type": "application/vnd.docker.distribution.manifest.v2+json",
harbor-jobservice | "size": 310382174
harbor-jobservice | },
harbor-jobservice | "enabled_capabilities": [
harbor-jobservice | {
harbor-jobservice | "type": "vulnerability",
harbor-jobservice | "produces_mime_types": [
harbor-jobservice | "application/vnd.security.vulnerability.report; version=1.1"
harbor-jobservice | ],
harbor-jobservice | "parameters": null
harbor-jobservice | }
harbor-jobservice | ]
harbor-jobservice | }
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/scan/job.go:172]: Report mime types: [application/vnd.security.vulnerability.report; version=1.1 application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0]
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/scan/job.go:396]: {
harbor-jobservice | "uuid": "4b7d6b72-22b7-11f1-8b6d-5265ac2ef9fe",
harbor-jobservice | "name": "Syft",
harbor-jobservice | "description": "Syft scanner specif to SBOM binary based analysis",
harbor-jobservice | "url": "http://syft-adapter:8080",
harbor-jobservice | "disabled": false,
harbor-jobservice | "is_default": false,
harbor-jobservice | "health": "healthy",
harbor-jobservice | "auth": "",
harbor-jobservice | "access_credential": "[HIDDEN]",
harbor-jobservice | "skip_certVerify": false,
harbor-jobservice | "use_internal_addr": true,
harbor-jobservice | "adapter": "Syft+Trivy",
harbor-jobservice | "vendor": "Anchore+Aqua",
harbor-jobservice | "version": "syft:v1.19.0 trivy:0.69.3",
harbor-jobservice | "create_time": "2026-03-18T10:43:26.606801Z",
harbor-jobservice | "update_time": "2026-03-18T14:37:08.733957Z"
harbor-jobservice | }
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/scan/job.go:396]: {
harbor-jobservice | "registry": {
harbor-jobservice | "url": "http://core:8080",
harbor-jobservice | "authorization": "[HIDDEN]",
harbor-jobservice | "insecure": false
harbor-jobservice | },
harbor-jobservice | "artifact": {
harbor-jobservice | "namespace_id": 2,
harbor-jobservice | "repository": "<NAME_OF_MY_COMPANY>/sauron/api",
harbor-jobservice | "tag": "v1.0.5",
harbor-jobservice | "digest": "sha256:b07f85224bc5c030fc28565575fe086754c1fa0d5a374b6b29c3bf3a4bb0b17a",
harbor-jobservice | "mime_type": "application/vnd.docker.distribution.manifest.v2+json",
harbor-jobservice | "size": 310382174
harbor-jobservice | },
harbor-jobservice | "enabled_capabilities": [
harbor-jobservice | {
harbor-jobservice | "type": "sbom",
harbor-jobservice | "produces_mime_types": [
harbor-jobservice | "application/vnd.security.sbom.report+json; version=1.0"
harbor-jobservice | ],
harbor-jobservice | "parameters": {
harbor-jobservice | "sbom_media_types": [
harbor-jobservice | "application/spdx+json"
harbor-jobservice | ]
harbor-jobservice | }
harbor-jobservice | }
harbor-jobservice | ]
harbor-jobservice | }
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/scan/job.go:172]: Report mime types: [application/vnd.security.sbom.report+json; version=1.0 application/vnd.cyclonedx+json application/spdx+json]
syft-adapter | INFO:app.main:Scan request: registry.url='http://core:8080' authorization_present=True capabilities=['vulnerability']
syft-adapter | INFO:app.main:Scan request: registry.url='http://core:8080' authorization_present=True capabilities=['sbom']
syft-adapter | INFO:app.main:Scan submitted: scan_id=66d41b27-c3d9-409b-97f7-a389cf317c27 type=vulnerability artifact=<NAME_OF_MY_COMPANY>/sauron/api@sha256:b07f85224bc5c030fc28565575fe086754c1fa0d5a374b6b29c3bf3a4bb0b17a
syft-adapter | INFO: 172.18.0.11:39304 - "POST /api/v1/scan HTTP/1.1" 202 Accepted
syft-adapter | INFO:app.main:Running trivy cmd: trivy image --format json --quiet --image-src remote --severity UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL --vuln-type os,library --insecure --skip-db-update --skip-java-db-update core:8080/<NAME_OF_MY_COMPANY>/sauron/api@sha256:b07f85224bc5c030fc28565575fe086754c1fa0d5a374b6b29c3bf3a4bb0b17a
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/scan/job.go:229]: Get report for mime type: application/vnd.security.vulnerability.report; version=1.1
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/scan/job.go:229]: Get report for mime type: application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0
syft-adapter | INFO:app.main:Scan submitted: scan_id=b332bd02-c1a9-44b6-85df-38b04a7750ea type=sbom artifact=<NAME_OF_MY_COMPANY>/sauron/api@sha256:b07f85224bc5c030fc28565575fe086754c1fa0d5a374b6b29c3bf3a4bb0b17a
syft-adapter | INFO:app.main:Running syft on core:8080/<NAME_OF_MY_COMPANY>/sauron/api@sha256:b07f85224bc5c030fc28565575fe086754c1fa0d5a374b6b29c3bf3a4bb0b17a
syft-adapter | INFO: 172.18.0.11:39318 - "POST /api/v1/scan HTTP/1.1" 202 Accepted
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/scan/job.go:229]: Get report for mime type: application/spdx+json
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/scan/job.go:229]: Get report for mime type: application/vnd.security.sbom.report+json; version=1.0
harbor-jobservice | 2026-03-19T09:19:38Z [INFO] [/pkg/scan/job.go:229]: Get report for mime type: application/vnd.cyclonedx+json
registry | time="2026-03-19T09:19:39.134509934Z" level=info msg="authorized request" go.version=go1.24.11 http.request.host="core:8080" http.request.id=644f97c5-c564-42e2-8e93-f00b8e2f82b9 http.request.method=GET http.request.remoteaddr=172.18.0.8 http.request.uri="/v2/<NAME_OF_MY_COMPANY>/sauron/api/manifests/sha256:b07f85224bc5c030fc28565575fe086754c1fa0d5a374b6b29c3bf3a4bb0b17a" http.request.useragent="trivy/0.69.3" vars.name="<NAME_OF_MY_COMPANY>/sauron/api" vars.reference="sha256:b07f85224bc5c030fc28565575fe086754c1fa0d5a374b6b29c3bf3a4bb0b17a"
"Originally reported in goharbor/harbor#23014 by me"
Describe my issue
I want to add a custom scanner using hybrid : syft for sbom; trivy for vulnerabilities.
Syft appears to find more package in the sbom since it search for binaries in the image, so that's the reason we want to use it.
Here's the configuration of my new scanner :
🧰 Harbor Interrogation Services Configuration for this scanner
🐳 Docker configuration for scanner services
🗄️ Some evidence on the db that show artifact accessory
🗞️ Some logs of the syft adapter started on the harbror instance :
🗞️ Some logs of the syft adapter treating scan :
Logs showing error on the scan
Main error seems to be at PostScan :
I can't really know what I'm doing wrong but the SBOM never get avaialble trhough the UI...
The vulnerability scan worked though !