chainloop

module
v0.143.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 16, 2024 License: Apache-2.0

README

Chainloop

OpenSSF Scorecard Go Report Card Test passing Chat on Slack

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.

What is it?

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.

Getting started

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.

Command Line Interface (CLI) installation

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
Deploy Chainloop (optional)

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.

Configure CLI (optional)

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
Authentication

Authenticate to the Control Plane by running

$ chainloop auth login
Finishing the setup

Once you've been logged in, follow these instructions to learn how to set up your account.

How does it work?

Compliant Single Source of Truth

Craft and store attestation metadata and artifacts via a single integration point regardless of your CI/CD provider choice.

Chainloop Overview

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.

Declarative, contract-based attestation

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.

Chainloop Contracts

We meet you where you are with third-party integrations

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.

Chainloop Overview

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.

Role-tailored experience

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 :)

Supported Pieces of Evidence / Materials

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

Documentation

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.

Community / Discussion / Support

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:

Contributing

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.

Changelog

Take a look at the list of releases to stay tuned for the latest features and changes.

License

Chainloop is released under the Apache License, Version 2.0. Please see the LICENSE file for more information.

Directories

Path Synopsis
app
cli
internal
pkg
credentials/vault
KeyVal V2 secrets implementation for Hashicorp Vault
KeyVal V2 secrets implementation for Hashicorp Vault

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL