Three versions, one deploy
Every Fjall deploy involves three independently versioned pieces:
Your application pins its constructs version, but the CLI that runs the deploy is chosen separately — on your machine or in CI. If the engine is older than the constructs that synthesised your infrastructure, the deploy can go wrong silently: services dropped from the build set, images built without the options your runtime needs, or permissions that no longer line up.
Fjall closes this gap with an engine-compatibility check. At synthesis, your constructs stamp the minimum engine version they require into the deployment artefact. Before building, pushing, or touching CloudFormation, the engine reads that constraint and refuses loudly if it cannot honour it — for application deploys and organisation-level deploys and destroys alike. A refusal always happens before anything in AWS is changed.
Newer engines deploying older applications are always supported. Upgrading
fjall never locks you out of redeploying an app synthesised by an earlier
version. The check only bites in the unsafe direction: an old engine driving
newer infrastructure code.The refusal messages and their cures
Applications created before Fjall 4.3 carry no constraint; they deploy exactly as before.
Upgrading from 5.x to 6
When your application moves to@fjall/components-infrastructure 6.x, upgrade the engine everywhere a deploy runs:
Emergency override
If you have verified an engine/constructs pairing yourself and need to push a deploy through anyway, set:Next steps
CI/CD Integration
Pin or auto-derive the engine version in your pipelines
CLI Installation
Install or upgrade the fjall CLI