Skip to content
    Changelog

    What shipped, and when.

    Each entry is dated the day it shipped, and says what changed for the people using Opafra.

    1. 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.

    2. 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.

    3. 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.

    4. 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.

    5. Fixed

      Connection tests go through the bastion

      A connection test now reaches a server through its bastion, the same way a run does.

    6. 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.

    7. 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.

    8. 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.

    9. 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.

    10. Added

      Run-to-run diff

      Compare any two runs of the same plan and see what changed between them, per step and per host.

    11. 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.

    12. 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.

    13. 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.

    14. 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.

    15. Added

      Dry run against real hosts

      See what every step would change before anything runs, connecting to the actual targets rather than simulating them.

    16. 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.

    Shipped, and shipping.