What shipped, and when.
Each entry is dated the day it shipped, and says what changed for the people using Opafra.
- Security
An SSH certificate authority per organization
Each organization now has its own certificate authority. Runs and the browser terminal connect with a fresh key and a certificate that lasts five minutes and carries one principal for your organization, so a certificate signed for another organization does not open your hosts. Certificates are ed25519, and certificate login works end to end.
- Security
Host keys pinned and checked on every connection
Opafra records each host's SSH key on first contact and checks it on every connection after that, bastion hops included. A different key is refused and recorded until an Admin or the Owner accepts it.
- Security
Approvers need access to the environment
Approving a run into a protected environment now needs access to that environment, not only the Operator role. Anyone whose role allows it can still reject. Only the Owner can grant access to themselves.
- Security
Append-only audit log, enforced by the database
The database now refuses to change or delete an audit entry. Changes to secrets Opafra stores are recorded by name, without the value.
- Fixed
Connection tests go through the bastion
A connection test now reaches a server through its bastion, the same way a run does.
- Added
Audit log export
Admins can export the audit log as CSV or NDJSON, or let a SIEM read it over the API. Every sign-in, successful or failed, is recorded.
- Added
Accessibility conformance report
Color contrast and component semantics are now verified on every build, in both themes, and a WCAG 2.2 AA conformance report is available on request.
- Added
Production access matrix
See at a glance who can view, run and manage a protected environment, including which grants are time-boxed and when they expire.
- Improved
Approvals are pinned to a plan revision
An approval now records the exact revision it was granted against. Editing the plan afterwards invalidates the approval rather than silently carrying it forward.
- Added
Run-to-run diff
Compare any two runs of the same plan and see what changed between them, per step and per host.
- Added
Environment derived from the targets
The environment is inferred from the hosts a run targets, so production values cannot be applied to staging by picking the wrong dropdown.
- Improved
Connection checks that tell you what to fix
A failed check now names the likely cause and the next step, instead of surfacing the raw SSH error.
- Added
Time-limited access grants
Grant someone operator access to production for a fixed window. The grant expires on its own and the expiry is in the audit record.
- AddedAI
Conversational plan refinement
Refine a composed plan by describing the change, rather than editing steps one at a time. The plan stays reviewable and gated throughout.
- Added
Dry run against real hosts
See what every step would change before anything runs, connecting to the actual targets rather than simulating them.
- AddedAI
AI plan composer
Describe the change you want and get back a plan with typed steps and named targets, ready to dry-run and send through approval.