Skip to content

v0.30.0

Choose a tag to compare

@github-actions github-actions released this 09 Nov 12:37
· 1603 commits to main since this release
617a903

This release sets the stage for exciting new features coming to Chainloop.

Jenkins Support

@buccarel has added support to Jenkins in this new release 🙌🏼 🚀

Referrer API

You can now query Chainloop for relationship between pieces of evidence, artifacts, and associated attestations via a discover API #415

Conceptually, this is similar to what the OCI referrer API does but across all cas-backends and Chainloop organizations. In any case, we plan on propagating this index to OCI natively.

For example, let's say that you know a container image hashicorp/vault-k8s@sha256:4500e988b7ce9f10d25930ac2ea7e29fda6a0fe239e22be653a3ea0549a84a55 . You can inspect in what attestations this container image appears.

$ chainloop discover -d sha256:4500e988b7ce9f10d25930ac2ea7e29fda6a0fe239e22be653a3ea0549a84a55
{
   "digest": "sha256:4500e988b7ce9f10d25930ac2ea7e29fda6a0fe239e22be653a3ea0549a84a55",
   "kind": "CONTAINER_IMAGE",
   "downloadable": false,
   "createdAt": "2023-11-09T13:33:08.059074Z",
   "references": [
      {
         "digest": "sha256:157cb0891dd6fa4df340471ba1e834b114bf845328cb2f6bfb0aa9acc6ec6f88",
         "kind": "ATTESTATION",
         "downloadable": true,
         "createdAt": "2023-11-09T13:33:08.057887Z",
         "references": []
      }
   ]
}

As you can see, there is a reference to an attestation. Let's keep pulling the thread 🪄

$ chainloop discover -d sha256:157cb0891dd6fa4df340471ba1e834b114bf845328cb2f6bfb0aa9acc6ec6f88
{
   "digest": "sha256:157cb0891dd6fa4df340471ba1e834b114bf845328cb2f6bfb0aa9acc6ec6f88",
   "kind": "ATTESTATION",
   "downloadable": true,
   "createdAt": "2023-11-09T13:33:08.057887Z",
   "references": [
      {
         "digest": "sha1:b7d4b3a6fabdd2e6f19b834870bbc728d92f413f",
         "kind": "GIT_HEAD_COMMIT",
         "downloadable": false,
         "createdAt": "2023-11-09T13:32:18.923814Z",
         "references": []
      },
      {
         "digest": "sha256:08b98b03efba73e3d0affea9b0b321641ae7faaada72ab21fbbece5c4a9682fc",
         "kind": "ARTIFACT",
         "downloadable": true,
         "createdAt": "2023-11-09T13:33:08.052813Z",
         "references": []
      },
      {
         "digest": "sha256:285d7fb8aace379c460745a11baafdfa4f39a6234c69bcbf944caab5a442906e",
         "kind": "ARTIFACT",
         "downloadable": true,
         "createdAt": "2023-11-09T13:33:08.054857Z",
         "references": []
      },
      {
         "digest": "sha256:4500e988b7ce9f10d25930ac2ea7e29fda6a0fe239e22be653a3ea0549a84a55",
         "kind": "CONTAINER_IMAGE",
         "downloadable": false,
         "createdAt": "2023-11-09T13:33:08.059074Z",
         "references": []
      },
      {
         "digest": "sha256:cb98bdbb49e9e22d36b5baa17dde7a18956485771c8587fa59413f3d14210ed2",
         "kind": "SBOM_SPDX_JSON",
         "downloadable": true,
         "createdAt": "2023-11-09T13:33:08.056048Z",
         "references": []
      },
      {
         "digest": "sha256:d20d817bbfab6a2091e4bdd31f0466fb18af4a84be1bf43427c1c8ca8a65cd31",
         "kind": "SBOM_CYCLONEDX_JSON",
         "downloadable": true,
         "createdAt": "2023-11-09T13:33:08.060168Z",
         "references": []
      }
   ]
}

You can now see all the pieces of evidence associated with this attestation along with their content digest. These can be downloaded, too!

chainloop artifact download -d sha256:d20d817bbfab6a2091e4bdd31f0466fb18af4a84be1bf43427c1c8ca8a65cd31
INF downloading file name=cyclonedx.json to=/home/migmartri/work/chainloop/cloud/cyclonedx.json
100.00% [#################.] [202.64KB in 345.663ms; 586.23KB/s] ... 
 ... done! [202.64KB in 580ms; 349.17KB/s]

Get attestations via digest

Remember that attestation that was shown above in the discovery index? Now, you can quickly get it with the CLI by providing its digest!

$ chainloop workflow run describe --digest sha256:157cb0891dd6fa4df340471ba1e834b114bf845328cb2f6bfb0aa9acc6ec6f88 -o statement 
{             
   "type": "https://in-toto.io/Statement/v1",
   "subject": [                                                                                                                           
      {       
         "name": "chainloop.workflow.process_vac_containers",
         "digest": {
            "sha256": "117151a471d07764193ead79f38a97cf74b3815cefc8955a2a3fcbb1a4afbe06"
         }                  
      },                                      
      {                                                        
         "name": "git.head",                                   
         "digest": {
            "sha1": "b7d4b3a6fabdd2e6f19b834870bbc728d92f413f"
         },                                                                                                                               
         "annotations": {

            "date": "2023-11-09T13:30:54Z",
            "message": "temporary fix for enriched cycclonedx\n\nSigned-off-by: Daniel Liszka \u003c[email protected]\u003e\n",
...

What's Changed

  • Bump Helm Chart Version => v0.25.0 by @github-actions in #407
  • Reduce the size by stripping debug symbols by @danlishka in #410
  • chore(ci): bump chainloop CLI to v0.25.0 by @migmartri in #409
  • fix(ci): detect generated API missing by @migmartri in #412
  • fix(controlplane): bubble up authorization permission by @migmartri in #408
  • feat(runner): Integrate runner for Jenkins jobs by @buccarel in #411
  • chore: clear some unintended trailing spaces by @buccarel in #413
  • chore: display jenkins job type in runner column by @buccarel in #421
  • fix(api): remove empty properties description by @javirln in #422
  • fix(DB): cleanup items on organization deletion by @migmartri in #423
  • feat(referrers): persistence layer by @migmartri in #416
  • feat(referrers): API endpoint by @migmartri in #424
  • feat(cli): retrieve worklowRun by attestation digest by @migmartri in #425

New Contributors

Full Changelog: v0.25.0...v0.30.0