Releases

Changes to your models and configuration are staged as drafts. A release moves them into production together, now or at a time you set.

What is staged as a draft

Editing a model or pushing your config file writes a draft. Production traffic is served the published copy until a release carries the change. Releases cover models, operations, hooks, schedules, sign-in providers, roles for your users, locales, the variant catalogue, context dimensions, design tokens and project settings. Credentials and secrets sit outside them and take effect immediately.

What goes out without waiting

A brand-new model or operation is released as it is created, and so is a model update that only adds optional fields. Everything else waits for a release.

Releasing now or at a set time

A release carries every pending draft, or a subset you name, and publishes them in one transaction. You run one from the console, with foir release publish, or as part of a push with foir push --publish. It takes an optional time, so it can be scheduled. Once a release has run, the public schema changes for every consumer within seconds.

The diff and the rollback

A release that carries a breaking change, such as a rename, a removed field or a narrowed type, shows a diff of exactly what it carries before it goes out. Rolling the last release back republishes the previous set.

Releasing alongside content

Record content keeps its own drafts, versions and schedules, separate from releases. To ship both at once, a rollout can name a scheduled release to go out first. The release ships at the rollout's moment, all or nothing, and if it is refused or fails the rollout does not start.

Read the detail

The schema publishing guide explains the draft and published channels, what waits for a release, and the diff and rollback.