Built-in Material Types
Chainloop supports the following pieces of evidence types that can be attached during the attestation process.| Name | ID | Description | |
|---|---|---|---|
| Artifact Type | ARTIFACT | It represents a software artifact. | |
| Attestation | ATTESTATION | Existing Chainloop attestations. | |
| BlackDuck SCA | BLACKDUCK_SCA_JSON | ||
| Container Image Reference | CONTAINER_IMAGE | A reference to a container image. It will get resolved and referenced by its sha | |
| CSAF Informational Advisory | CSAF_INFORMATIONAL_ADVISORY | ||
| CSAF Security Advisory | CSAF_SECURITY_ADVISORY | ||
| CSAF Security Incident Report | CSAF_SECURITY_INCIDENT_RESPONSE | ||
| CSAF VEX | CSAF_VEX | ||
| Custom Evidence Type | EVIDENCE | Custom piece of evidence that doesn’t fit in any other category, for instance, an approval report in json format, etc. | |
| GitHub Advanced Security Code scans | GHAS_CODE_SCAN | ||
| GitHub Advanced Security Dependency scans | GHAS_DEPENDENCY_SCAN | ||
| GitHub Advanced Security Secret scans | GHAS_SECRET_SCAN | ||
| GitLab Security report | GITLAB_SECURITY_REPORT | GitLab Security reports in JSON format | |
| Gitleaks Secret Scan | GITLEAKS_JSON | Gitleaks secrets detection report in JSON format | |
| Helm Chart | HELM_CHART | A released Helm chart in tarball format | |
| JaCoCo XML Report | JACOCO_XML | ||
| JUnit | JUNIT_XML | ||
| OpenVEX | OPENVEX | Open Vulnerability and Exposure eXchange (OpenVEX) format | |
| SARIF | SARIF | ||
| CycloneDX SBOM | SBOM_CYCLONEDX_JSON | A CycloneDX Software Bill of Materials (SBOM) in JSON format | |
| SPDX SBOM | SBOM_SPDX_JSON | An SPDX Software Bill of Materials (SBOM) in JSON format | |
| Key-Value metadata pairs | STRING | ||
| PrismaCloud Twistcli Scan | TWISTCLI_SCAN_JSON | ||
| ZAP DAST zip report | ZAP_DAST_ZIP | Zap DAST report in zip format that matches the format returned from Zap’s GitHub Action | |
| SLSA provenance attestation | SLSA_PROVENANCE | SLSA provenance file generated by GitHub or upstream slsa-generator | |
| Chainloop Runner Context | CHAINLOOP_RUNNER_CONTEXT | Represents the runner context in which the attestation is crafted in a JSON format | |
| Pull request metadata from GitHub or GitLab | CHAINLOOP_PR_INFO | Gathered automatically by the Chainloop CLI when a pull request or merge request is detected | |
| AI Agent Configuration | CHAINLOOP_AI_AGENT_CONFIG | AI agent configuration files gathered automatically via the --collectors aiagent option |
skynet.contract.yaml
Custom Material Types
When your data doesn’t fit any of the built-in types listed above, use theEVIDENCE material type. This is a general-purpose type that lets you attest arbitrary JSON data and run policies against it.
Common use cases include security scanner results (e.g. SonarQube, custom SAST tools), approval reports, deployment manifests, or any structured data relevant to your supply chain.
Structure Guidelines
We recommend that custom evidence follows these conventions:- It must be in JSON format, since the policy engine only supports JSON.
- The document should have an identifier and a clear separation between metadata and data.
Example: Importing Issues from the SonarQube API
This example shows how to extract issues from SonarQube’s API and send them to Chainloop as custom evidence. The end result is a JSON file that wraps the SonarQube API response in the recommended evidence format:Step 1: Export issues from the SonarQube API
Use the SonarQube Issues Search API to export issues for your project. You can filter by severity, status, and other parameters:Step 2: Wrap the response in evidence format
Wrap the API response using the recommended structure with a descriptive identifier:Step 3: Add it to your contract and attest
In your workflow contract, declare the material asEVIDENCE and use the built-in sast-scan-present and sast policies to validate it:
sast-scan-present policy checks that a SAST scan material is present in the attestation, while the sast policy evaluates the actual findings against a severity threshold.
Then attach the evidence during attestation:
