Three versions, one deploy
Every Fjall deploy involves three independently versioned pieces:
Your application pins its constructs version. 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.
How the check runs
- At synth, the constructs stamp an
engineCompatblock into the cloud assembly (cdk.out/fjall-manifest.json). It carries the minimum deploy-engine version and the minimum bundled AWS CDK CLI version those constructs need. - After the final synth, before any build, push, or CloudFormation call, the engine reads that block and classifies the pairing.
- Incompatible pairings refuse loudly. A refusal always happens before anything in AWS is changed.
Newer engines deploying older applications are always supported. The
constructs deliberately never stamp an upper bound, so upgrading
fjall
cannot lock you out of redeploying an application synthesised by an earlier version.
The check only bites in the unsafe direction: an old engine driving newer
infrastructure code.Refusal messages and their cures
One more verdict never refuses. An engine newer than an assembly’s declared maximum is warned about and then proceeds. That verdict is dormant by design, not by accident: capping a newer engine would break the ordinary upgrade-then-redeploy path, so the constructs never emit an upper bound and no Fjall-synthesised application can reach this state. It exists for reading a foreign assembly that stamped a maximum by hand.
Keep the engine and constructs in step
The rule is a floor, not an equality: the engine major must be at least the constructs major. A 34.x engine deploys every 34.x application and every older application; a 33.x engine cannot deploy a 34.x application. Fjall never refuses a newer engine. When your application moves to@fjall/components-infrastructure 34.x, upgrade the engine everywhere a deploy runs:
cli-version input:
The same steps apply to any earlier major move, 32.x to 33 and so on.
Emergency override
If you have verified an engine and constructs pairing yourself and need to push a deploy through anyway, set:FJALL_ALLOW_ENGINE_SKEW="" from a CI env-file leaves the refusal in place.
Next Steps
CI/CD Integration
Pin or auto-derive the engine version in your pipelines
Install the Fjall CLI
Install or upgrade the fjall CLI
Deploy Application
Run a deploy and read the approval gate
Boot Gates & Deployment Safety
The other gates Fjall puts in front of a bad task