403 with the code enterprise_plan_required on other plans.
How a scan works
- Strix resolves the image reference to a manifest digest and a platform.
- Strix pulls the image layers with the registry credential on the trusted orchestrator. The credential never enters the scan sandbox.
- The scan sandbox receives the image as a read-only OCI layout and runs the package, secret, and configuration checks.
- Strix stores each finding in the same vulnerability list that the rest of the workspace uses. Findings that appear in a new scan of the same image keep their history. Findings that no longer appear are marked as fixed.
Connect a registry
Public Docker Hub images do not need a registry. For a private registry, create a registry connection first.provider field accepts ghcr, dockerhub, ecr, and generic. The auth_kind field accepts basic_token, aws_assume_role, and none. For ghcr, use basic_token with your GitHub username and a personal access token that has the read:packages scope.
Strix encrypts the secret value and never returns it. Strix verifies the connection when you create it. Call POST /containers/registries/{registryId}/verify to check the connection again.
Required scope: containers:write
Only workspace admins can create, verify, or delete a registry.
Add an image
reference field accepts name:tag or name@sha256:<digest>. Set registry_id to null for a public Docker Hub image. Set platform to null to use linux/amd64. Strix stores the platform on the image. A later scan uses the stored platform if the scan request does not specify a platform.
Set scan to true to start the first scan when the image is added. The default is false. The response contains the stored image, the resolved digest, and the first scan when scan is true. If the first scan cannot start, the response contains a scan_error message and the image stays in the inventory.
Required scope: containers:write
Workspace admins and analysts can add, update, scan, and delete images.
Watch tags
Setwatch_tags to a tag pattern when you add an image, or change it later with PATCH /containers/images/{imageId}. Set watch_tags to null to stop watching tags.
Start a scan
tag, the scan resolves the tag from the latest scan. If the image has no tag, the scan resolves the digest from the add request. If the request has no platform, the scan uses the platform stored on the image.
Each image has one queued or running scan at a time. A second request returns 409 while that scan runs. List the scan history with GET /containers/images/{imageId}/scans.
Each scan has a cost limit. If a scan reaches the limit before the analysis is complete, the scan completes with stop_reason set to budget_exceeded. If the model provider limits the run, stop_reason is rate_limited. Strix keeps the findings that the scan filed before the stop. Strix does not mark findings as fixed after a stopped scan. The scan history shows the scan as Stopped early.
Required scope: containers:write
Read findings
type:known_vulnerability,malicious_package,secret,misconfiguration, orbase_image_outdatedseverity: one severity levelstate:open,fixed, orignored
verification verdict, the verified_by explanation, and verified_at:
active: the credential’s own provider accepted it. Rotate it now.inactive: the provider rejected it. The credential is revoked or rotated.valid_unverified: an offline proof succeeded, for example a private key that signs and verifies, but there is no provider to ask.unverified: Strix could not prove or disprove that the credential is real.verified_bysays what Strix checked.
inactive. Strix does not file example, fixture, or placeholder values.
Required scope: containers:read
Read the software bill of materials
scan_id to read the components of an earlier scan.
To download the same inventory as a standard document, request the export route with format=spdx or format=cyclonedx:
scan_id to export an earlier scan. The dashboard uses the same route for the Export SBOM… menu on the SBOM tab.
GET /containers/images/{imageId} returns the image with its scans, layers, image configuration, findings, and components in one response. GET /containers/summary returns the workspace counts of images, critical findings, reachable findings, and secrets.
Required scope: containers:read
Delete an image or a registry
409. Wait until the scan finishes, or cancel the scan, and then send the delete request again.
Required scope: containers:write