Chainloop is under active development and you should expect breaking changes before the first stable release. If you are interested in contributing, please take a look at our contributor guide.
Chainloop is an open-source Software Supply Chain control plane, a single source of truth for metadata and artifacts, plus a declarative attestation process.
With Chainloop, SecOps teams can declaratively state the pieces of evidence and artifact expectations for their organization’s CI/CD workflows. At the same time, they can rest assured that the metadata will reach the desired destination for storage and analysis, always meeting the latest standards and best practices.
On the other hand, developer teams do not need to become security experts. The attestation crafting tool will guide them with guardrails and a familiar developer experience.
To learn more about the project motivation please look at our documentation and see it in action in this video.
See the getting started guide for detailed information on a) how to download and configure the Chainloop CLI and b) how to deploy Chainloop on your Kubernetes Cluster.
Alternatively, you can download the CLI from the releases pages or build it from source.
To install the latest version for macOS, Linux or Windows (using WSL) just choose one of the following installation methods.
curl -sfL https://raw.githubusercontent.com/chainloop-dev/chainloop/main/docs/static/install.sh | bash -s
you can retrieve a specific version with
curl -sfL https://raw.githubusercontent.com/chainloop-dev/chainloop/main/docs/static/install.sh | bash -s -- --version v0.8.95
and customize the install path (default to /usr/local/bin)
curl -sfL https://raw.githubusercontent.com/chainloop-dev/chainloop/main/docs/static/install.sh | bash -s -- --path /my-path
if cosign
is present in your system, in addition to the checksum check, a signature verification will be performed. This behavior can be enforced via the --force-verification
flag.
curl -sfL https://raw.githubusercontent.com/chainloop-dev/chainloop/main/docs/static/install.sh | bash -s -- --force-verification
Downloading the CLI is everything you need to give Chainloop a try, since, by default, it points to a running instance of Chainloop.
You can also run your own Chainloop instance on your Kubernetes cluster by leveraging this Helm Chart.
If you are running your own instance of the Control Plane. You can make the CLI point to your instance by using the chainloop config save
command.
chainloop config save \
--control-plane my-controlplane.acme.com \
--artifact-cas cas.acme.com
Authenticate to the Control Plane by running
$ chainloop auth login
Once you've been logged in, follow these instructions to learn how to set up your account.
Craft and store attestation metadata and artifacts via a single integration point regardless of your CI/CD provider choice.
The result is having a SLSA level 3 compliant single Source of truth for metadata, artifacts and attestations built on OSS standards such as Sigstore, in-toto, SLSA and OCI.
Chainloop also makes sure the crafting of artifacts and attestation follows best practices and meets the requirements declared in their associated Workflow Contract.
One key aspect is that in Chainloop, CI/CD integrations are declared via Workflow Contracts.
A Workflow Contract gives operators full control over what kind of data (build info, materials) must be received as part of the attestation and the environment where these workflows must be executed at. This enables an easy, and maintainable, way of propagating and enforcing requirements downstream to your organization.
You can think of it as an API for your organization's Software Supply Chain that both parties, development and SecOps teams can use to interact effectively.
Operators can set up third-party integrations such as Dependency-Track, or Guac for SBOM analysis or a storage backend such as an OCI registry, or cloud blob storage to place the received artifacts, pieces of evidence and attestation metadata.
Ops can mix and match with different integrations while not requiring developers to make any changes on their side!
To learn more and to find the list of available integrations, check our integrations page.
Chainloop makes sure to clearly define the responsibilities, experience and functional scope of the two main personas, Security/Operation (SecOps) and Development/Application teams.
SecOps are the ones in charge of defining the Workflow Contracts, setting up third-party integrations, or having access to the control plane where all the Software Supply Chain Security bells and whistles are exposed.
Development teams on the other hand, just need to integrate Chainloop's jargon-free crafting tool and follow the steps via a familiar DevExp to make sure they comply with the Workflow Contract defined by the SecOps team. No need to learn in-toto, signing, SLSA, OCI, APIs, nada :)
During the attestation process, you can attach different pieces of evidence and artifacts that will get uploaded to the Content Addressable Storage (if applicable) and referenced in a signed in-toto attestation.
Chainloop supports the collection of the following list of evidence types. For the full list please refer to this page
- CycloneDX SBOM
- SPDX SBOM
- OpenVEX
- SARIF
- Container Image Reference
- Helm Chart
- BlackDuck SCA
- ZAP DAST
- PrismaCloud Twistcli Scan
- CSAF Security Incident Report
- CSAF Informational Advisory
- CSAF Security Advisory
- CSAF VEX
- Gitlab Security report
- JUnit
- JaCoCo XML Coverage Reports
- Attestation: existing Chainloop attestations.
- Artifact Type: It represents a software artifact.
- Custom Evidence Type: Custom piece of evidence that doesn't fit in any other category, for instance, an approval report in json format, etc.
- Key-Value metadata pairs
To learn more, please visit the Chainloop project's documentation website, https://docs.chainloop.dev where you will find a getting started guide, FAQ, examples, and more.
Chainloop is developed in the open and is constantly improved by our users, contributors and maintainers. Got a question, comment, or idea? Please don't hesitate to reach out via:
Want to get involved? Contributions are welcome.
If you are ready to jump in and test, add code, or help with documentation, please follow the instructions on our Contribution page. At all times, follow our Code of Conduct.
See the issue tracker if you're unsure where to start, especially the Good first issue label.
Take a look at the list of releases to stay tuned for the latest features and changes.
Chainloop is released under the Apache License, Version 2.0. Please see the LICENSE file for more information.