Repository navigation
v1.7.0 - Maintainer release notes #317
cairncms-dev
announced in
Announcements
Replies: 1 comment
|
I forgot to mention that the CairnCMS demo at https://demo.cairncms.dev has Formatter installed, and although it is a read-only demo, you are able to click through the operation options in some of the seeded Flows.
|
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment

Uh oh!
There was an error while loading. Please reload this page.
v1.7.0 - Maintainer release notes
CairnCMS v1.7.0 brings schema into the config-as-code workflow and introduces a more structured compatibility and deprecation policy. It also introduces Formatter, a new first-party extension, available for both CairnCMS and Directus.
📁 Schema and Configuration Together
This release adds the data model to config-as-code. Collections, fields, relations, and their metadata can now travel alongside configuration in one reviewable tree.
New config trees include schema by default. Existing version 1 and 2 directories retain their current scope until you opt in. Schema previews and applies require matching source and target releases unless explicitly overridden.
The rewritten documentation includes a guide for adopting the workflow from existing configuration trees or standalone schema files.
Read the new config-as-code documentation.
Migrate to the unified workflow.
🧭 Compatibility and Deprecations
I care about CairnCMS being something you can maintain over the long term. Iterating quickly comes with a responsibility to keep upgrade work manageable for users. I will always make a best effort to preserve compatibility and minimize breaking changes.
Modernizing the codebase and addressing security issues has required breaking changes that do not fit strict Semantic Versioning. I'm comfortable enough with the progress now to commit to a more structured policy, with clearer expectations for everyone maintaining a deployment, including myself.
Planned removals will be announced in a stable minor release. The feature stays supported during the notice period, and removal can happen only in a later minor release, at least 30 calendar days after the announcement is published. Some changes, like retiring a major Node.js version, may have a much longer transition period where both versions are supported and tested in CI. Each deprecation notice explains what is changing, what to use instead (if applicable), and the earliest removal version and date.
It's possible that urgent security fixes may introduce breaking changes without a notice period. This is the nature of keeping things secure in 2026. Routine feature removals will go through the deprecation process.
This release starts notices for the hash utilities, the empty legacy permissions endpoint, standalone schema deployment commands, and the version 1 schema snapshot default. The changelog explains the scope and alternatives for each notice.
Read the compatibility and deprecation policy.
🧹 New First-Party Extension: Formatter
Formatter brings common data cleanup and presentation tasks into your automations, such as normalizing phone numbers, formatting text, creating slugs, rounding numbers, and formatting currencies and dates for a locale. It offers 20 transforms, with modes for formatting selected fields in a data object or returning a single value for another flow step.
Formatter is part of a broader plan to overhaul Flows, and it is a candidate for a core feature. I am releasing it as an extension first to gather feedback from the community.
It exists because, while scoping changes to the Flows subsystem, I audited my own usage across many projects. In particular, I was interested in understanding what I was using the Run Script operation for. As you may know, Run Script allows you to run arbitrary JavaScript in a flow step. What I noticed in my own projects is that Run Script is often used for very trivial formatting tasks. There are a number of reasons why this isn't ideal, including security and performance considerations.
I intend to move Run Script onto CairnCMS's confined runtime, which may limit some functionality that existing scripts depend on, including JavaScript's locale APIs. To be clear, Formatter is not replacing Run Script. Formatter simply removes the need to use Run Script for many trivial tasks, so that Run Script is reserved for actual unique business logic or project logic, and formatting can be done consistently across all of your automations.
Formatter is being released simultaneously for both CairnCMS and Directus, since both communities may benefit from the extension, and I am happy to support both.
Install Formatter separately using the links below. I'd like to hear which tasks it replaces in your flows and what is still missing. Additionally, if you have any Flows feedback in general or if you want to share how automations are used in your projects, please open a discussion with me any time via email / GitHub / Reddit.
Install Formatter for CairnCMS.
Install Formatter for Directus.
cairncms-dev
All reactions