Massdriver Platform Update: November 2026 Massdriver's November 2026 platform release introduces runtimes, letting a platform team write the infrastructure-as-code for how applications run once while developers ship each application as a single massdriver.yaml file, with `mass bundle build`, `lint` and `publish` resolving the newest runtime in a declared version range and merging the application onto it. The release also adds OIDC cloud credentials for deployments, custom default tags, proposal review in the config form, cloud resource import from Claude Code and opencode, search and sort for SCIM-synced members and groups, inspectable and deletable CI service accounts, projects copied from an environment, and config forms that collapse long lists and validate input before deploy. The Platform Engineering Podcast also moved to massdriver.cloud/podcast, where all 52 episodes now live with show notes and full transcripts. Upcoming Workshop: Citizen Developer Agentic Software Factory on AWS 11.4.26 @ 12PM PST Register Here https://streamyard.com/watch/umMggUFkVMNu The Platform Engineering Podcast moves to massdriver.cloud, applications that run on runtimes your platform team owns, OIDC cloud credentials for deployments, custom default tags, proposal review in the config form, cloud resource import from Claude Code and opencode, search and sort for members and groups, service accounts you can inspect and delete, projects copied from an environment, and config forms that collapse long lists and check your input before you deploy. The Platform Engineering Podcast has a new home at massdriver.cloud/podcast https://www.massdriver.cloud/podcast , with new artwork. All 52 episodes are there, with show notes and full transcripts. Links to platformengineeringpod.com open the same episode on the new site, and your podcast app subscription keeps working. New episodes air soon. If you have an idea for a show or a guest, email cory@massdriver.cloud mailto:cory@massdriver.cloud . If you like the show, please rate it on Apple Podcasts https://podcasts.apple.com/us/podcast/platform-engineering-podcast/id1729594542 and Spotify https://open.spotify.com/show/5VDRu9cn4flUpCaVWOZalW . October made seats follow your identity provider. This release adds runtimes: your platform team writes the IaC for how applications run once, and developers ship an application as one massdriver.yaml . It also makes large organizations easier to manage. You can search the people and groups that SCIM syncs in, see who belongs to what, and inspect and delete the CI service accounts you no longer use. Write how applications run once. Ship each application as one file. A runtime is a bundle that defines how applications run on a cloud, for example a Lambda function, a Kubernetes deployment, or an ECS service. Its IaC decides scheduling, networking, IAM, and logging. Developers cannot change it. An application is a bundle that runs on a runtime. It has no IaC of its own. It adds only its name and version, the dependencies it needs, the environment variables and secrets it reads, and the resources it emits. A runtime declares provides: runtime and an app block that its IaC reads: name: lambda version: 1.2.7 provides: runtime app: envs: LOG LEVEL: .params.log level An application names the runtime with a version range: name: billing-api version: 0.1.0 dependencies: db: resource type: postgres@~1 required: true resources: billing: resource type: billing-api@1.0.0 required: true steps: - path: src resources: billing: template: | { url: .outputs.function url, region: .params.region } app: runtime: lambda@~1.2 envs: DB HOST: .dependencies.db.host secrets: STRIPE KEY: required: true mass bundle build , lint , and publish resolve the newest runtime in the range, pull it, and merge the application onto it. The result publishes as an ordinary bundle, so it deploys, versions, and upgrades the same as every other bundle. bash $ mass bundle publish --development Using runtime lambda@1.2.7 ~1.2, sha256:... ... ✓ Provides check passed. How the merge works: steps , params , ui , its own resources , and the IaC. dependencies , app.envs , and app.secrets to the runtime's. If a name is used in both, the build fails. template . Massdriver renders the template after that step applies. lambda@~1.2 is published as lambda@1.2.7 , so a later runtime release does not change a published application. Publish the application again to move it to the newer runtime. Publish checks both sides: provides accepts only runtime today, and each value once app block app.runtime lambda@1.2.7 does not provide a runtime. Add runtime to provides in its massdriver.yaml and republish. On the API, Bundle.provides returns RUNTIME for a runtime. Runtimes need CLI 2.5.0 or later. Runtimes and applications https://docs.massdriver.cloud/bundle-development/runtimes-and-applications in the docs covers the full merge rules. Deployments can sign in to your cloud with short-lived OIDC tokens. Massdriver is now an OIDC identity provider for deployments. Each deployment gets four signed tokens, one for each level: organization, project, environment, and instance. Your cloud trusts Massdriver's public keys and gives a role to the tokens that match your rules. The provisioner gets cloud credentials for the deployment, and you do not store a long-lived key in Massdriver. Each level's subject adds to its parent's subject: org:acme org:acme:project:ecomm org:acme:project:ecomm:env:prod org:acme:project:ecomm:env:prod:instance:db You pick the level in your trust rule. A project-level rule lets developers fork environments and make preview environments with no new cloud credential. An instance-level rule gives a role to one instance only. Every token has aud set to massdriver: