Upgrades
Corsa publishes new HYOK releases for security fixes and features. Upgrading is optional:- There’s no support window. Older releases keep working, and Corsa never blocks decryption because your stack runs an older release.
- Each release is labeled Security or Feature. Corsa emails your workspace Owners and shows an in-app notification when a release ships, and sends reminders for security releases.
- You decide when to upgrade, and you run the upgrade yourself.
Stack managed with Terraform? Corsa hides Upgrade stack and shows Get Terraform template instead. See Install HYOK with Terraform → Upgrade.
1
See that an update is available
Settings → Encryption shows the installed and latest releases, with the latest release’s label and changelog, under Update available.
2
Review the source diff
Open the diff in Source audit to see the files added, removed, and changed since your installed release. You can also check the new release with the verification kit.
3
Click Upgrade stack
Corsa verifies the new release again (its digest, signature, and every file’s SHA-256), then prepares the update for your workspace, your identity provider settings, and the new release. Your stack already authenticates to Corsa with its signing key, so there’s no new callback token. Corsa records the upgrade as pending and opens the CloudFormation change set page for your stack, in its account and region.The link expires after a few hours. If it does, click Upgrade stack again.
4
Create the change set
Keep the existing parameter values and create the change set. Don’t execute it yet.
5
Run the pre-upgrade check
Copy the pre-upgrade command from the app and run it in AWS CloudShell, in the stack’s account and region. The check fails if the change set would replace your HYOK key, your stack’s signing key, or your Cognito users. If the check fails, don’t execute the change set. Delete it and contact Corsa. The stack’s built-in protection blocks such a change anyway.
6
Execute the change set
Execute the change set in the console and wait for
UPDATE_COMPLETE. The stack downloads the new release once and checks it before it installs anything.7
Wait for completion
When the update finishes, the stack sends its signed details to Corsa. When the reported release digest matches the pending upgrade, Settings → Encryption shows the new release as installed. Any other digest shows as release mismatch drift.
8
Verify
Run the running-stack check for the new release, then open an encrypted field to confirm that decryption works.
Roll back
If the update fails, CloudFormation rolls the stack back automatically. The stack keeps a copy of the previously installed release in your account and reinstalls it from there, without downloading anything. An expired release link can’t block the rollback. If the update completed but you want the previous release back:1
Click Roll back
In Settings → Encryption, click Roll back. Corsa prepares an update to the release you ran immediately before the current one.
2
Check and execute the change set
Follow the same steps as an upgrade: create the change set, run the pre-upgrade check, and execute it. The stack restores the previous release from the copy it keeps in your account.
3
Verify
Run the running-stack check for the previous release digest.
Health checks
Your stack exposes a public health endpoint. Settings → Encryption shows its URL. You can call it yourself:
The response carries
X-Corsa-Timestamp and X-Corsa-Signature headers: an ECDSA-SHA256 signature by your stack’s signing key over <timestamp>.<body>. Corsa polls the endpoint every 5 minutes, verifies the signature against the key your stack registered, and rejects responses more than 5 minutes old. The result appears in Settings → Encryption and as healthStatus and lastHealthAt in the encryption configuration. A false for stackPolicy or codeSigning also appears as drift.
The health endpoint reveals no keys, users, or data.
Drift
Corsa compares what your stack reports with what it expects and shows any difference as a drift badge in Settings → Encryption. Drift doesn’t stop decryption. It tells you that your stack no longer matches the release and guardrails you installed.Control access to decryption
While decryption is paused, Corsa keeps working on everything else. Exact search and exact-match screening also keep working, because they use the keyed index rather than decryption.