This demo follows Joonas's deeper dive into the theory of Workflow Identity in wasmCloud. Recommend catching up with that, and the notes, before diving into this hands-on demo.
This week, Joonas shows us the theory working in practice. As always, it's really difficult to express the beauty of the demo, please check out the recording below for the full details.
At a high level. We propose wasmCloud adopts SPIFFE as the industry standard. If you don't want to run the back-end yourself there are a ton of new services building on SPIFFE.
We are proposing this as an update, not a hard requirememt. You can enable this for your deployment but it is not a requirement when running wasmCloud.
Joonas takes us through the process of getting started and how this would work in practice.
Check out the recording below for the demo and wider Q&A.
We are interested to hear your views here, so continue the conversation on Slack.
DISCUSSION: Proposing JSONSchema for CloudEvents and structs
We identified some gaps relating to how we standardize our field names and correct inconsistencies when specifying host IDs. We also don't have our CloudEvents and protocols specified in a way that is usable outside of the wasmCloud project.
CloudEvents act as an observability layer inside the wasmcloud ecosystem. Currently defined inside the wasmcloud Rust codebase as JSON objects. The structures for what CloudEvents we use should always match our documentation (see repo/events/components scaled example response).
This is a chore in other languages and a problem if we make a change to a event. For example, when depricating a new field or adding a new event, we need to update documentation automatically. This is partucularly important where we have many contributors.
The main aim is to ensure CloudEvents are code-generated and auto-updated in docs. We have options:
WIT (language agnostic IDL which defines structs, enum etc). We can wit-bindgen to specific languages.
Protobuf (well known IDL extending into the world of using gRPC to manage services) - this offers some nice functionality.
After some research, we propose not committing to a specific IDL at this stage. We propose something similar to what we do in Wadm. Structures written in Rust, struct deserializes from YAML, Rust derives into structs that use a JSON schema.
Masoud: CloudEvents now has mapping for NATS which handles language translation - encapsulating as a NATS message which may simplify this process.
Brooks then moves on to an example of using this in practice - check out the recording below for the full demo.
DISCUSSION: Automatic PR labeler + release.yml for better release notes
On the roadmap! We started looking into some of the ways we can improve our commit process.
When we open a PR, we write a conventional commit (scope etc, API, breaking change etc). What we have now, is a script in a github action that can auto-add labels to the PR regarding the type, scope and whether it is a breaking change).
All this culminates in an updated PR after the commit is validated. Afterwards, we look at the commits in the PR, scan them for impact (breaking, feature, CI etc).
We can also use this in github's automatic changelog feature to change the way the release notes are formatted. We can include or exclude certain labels, remove or add contribitors.
This means we can exclude dependabot which removes complexity. We can also auto-organize our release notes.
This is a really nice balance of being able to use conventional commits, and using some of the new functionality in github actions.
This will make sure we are prioritizing breaking changes, and that they are easier to identify. We'll start to see the benefits in the next major provider SDK action.
Hopefully this will be super helpful for maintainers who want to make the day-to-day maintenance experience a little better.
wasmCloud Innovation Day sessions are currently being uploaded to the Platform Engineering playlist on our YouTube channel! There are already some great sessions listed in this playlist check it out and keep an eye on the blog for related posts.
The schedule for KubeCon + CloudNativeCon Europe 2025 is now live! Take a look and make a note of our sessions. We are looking forward to seeing you in London.