v0.25.0
Marching Step by Step towards v1.0 with a new release and the help of new contributors! 🚀
Automatic Git Repository Attestor
Attestations will automatically include information about the Git repository Head Commit, if available. This includes not only the commit sha but also the author and remote information. This information is in the form of resourceDescriptor annotations, which was possible after refactoring #397 (thanks, @marcelamelara, for your help!)
Multi-tenancy organization invitation
Chainloop data model root is namespaced (soft multi-tenancy) by an organization entity. Users are connected to different organizations through memberships. The management of these memberships was not exposed through an API, that changes with this release.
Now, you can invite other users (registered or not) to your organization.
For example, let's say that you have an organization like this.
$ chainloop org ls
┌──────────────────────────────────────┬──────────────────┬─────────┬─────────────────────┐
│ ORG ID │ ORG NAME │ CURRENT │ JOINED AT │
├──────────────────────────────────────┼──────────────────┼─────────┼─────────────────────┤
│ 161bd37d-6d20-444f-8847-1c6db81b2d78 │ nervous_dijkstra │ true │ 24 Mar 23 11:13 UTC │
└──────────────────────────────────────┴──────────────────┴─────────┴─────────────────────┘You can now invite any user by performing.
$ chainloop org invite create --organization 161bd37d-6d20-444f-8847-1c6db81b2d78 --receiver [email protected]
┌──────────────────────────────────────┬──────────────────┬────────────────────────────┬─────────┬─────────────────────┐
│ ID │ ORG NAME │ RECEIVER EMAIL │ STATUS │ CREATED AT │
├──────────────────────────────────────┼──────────────────┼────────────────────────────┼─────────┼─────────────────────┤
│ a03d1012-2201-4335-9cc9-1920985e4d6b │ nervous_dijkstra │ [email protected] │ pending │ 31 Oct 23 15:12 UTC │
└──────────────────────────────────────┴──────────────────┴────────────────────────────┴─────────┴─────────────────────┘If you prefer, you can also revoke the invite at any time via chainloop org invite revoke --id ...
Then, when a user with the email address [email protected] logs in to Chainloop, they will see the new organization available that they can choose from.
$ chainloop org ls
┌──────────────────────────────────────┬──────────────────────┬─────────┬─────────────────────┐
│ ORG ID │ ORG NAME │ CURRENT │ JOINED AT │
├──────────────────────────────────────┼──────────────────────┼─────────┼─────────────────────┤
│ deadbeef-853c-4ad6-9d60-8f562b123fd2 │ integrations testing │ false │ 10 Jul 23 09:23 UTC │
├──────────────────────────────────────┼──────────────────────┼─────────┼─────────────────────┤
│ deadbeef-6d20-444f-8847-1c6db81b2d78 │ nervous_dijkstra │ false │ 31 Oct 23 14:37 UTC │
├──────────────────────────────────────┼──────────────────────┼─────────┼─────────────────────┤
What's Changed
- Bump Helm Chart Version => v0.21.1 by @github-actions in #393
- chore(docs): update Helm Chart readme with Azure KeyVault info by @migmartri in #394
- chore(deployment): upgrade development deps by @migmartri in #395
- chore(api): enable request time histogram by @migmartri in #396
- refactor: migrate to intoto/attestations go library -> in-toto 1.0 bump by @migmartri in #397
- fix(secretmanager): fix error handling in ReadCredentials by @buccarel in #399
- chore(deps): Bump google.golang.org/grpc from 1.57.0 to 1.57.1 by @dependabot in #400
- feat(attestation): add annotations to subject materials by @migmartri in #398
- feat(attestation): add git repository annotations by @migmartri in #402
- chore(deps): Bump github.com/docker/docker from 24.0.5+incompatible to 24.0.7+incompatible by @dependabot in #405
- feat(controlplane): organization invite system by @migmartri in #404
New Contributors
Full Changelog: v0.21.1...v0.25.0
