Code signing policy
Who can sign a release, and how
LibreDB Studio publishes Windows binaries from public CI. This page states who is trusted to change the source, who approves a release for signing, and what the software does on the network — the three questions a certificate authority asks before it lends its name to a binary, and the three a cautious user should ask before running one.
Current state — unsigned
Windows builds are not signed yet
The Windows portable zip, and the winget, Chocolatey and Scoop packages that install it, ship unsigned, so SmartScreen will warn on first run. That warning is correct and you should treat it as correct: verify the checksum published with the release before running the binary. An application for free open-source code signing is open; this page is written so that when it is granted, nothing about who approves a release has to change.
Team roles
Who holds which trust
The definitions are the ones a signing foundation uses. The members are the repository’s actual permissions rather than a list assembled for this page — if the two ever disagree, the repository is right and this page is a bug.
-
Authors
People trusted to modify the source code in the version control system without an additional review.
Admin access on the repository, held by all three. Everyone else, including the fourth organisation member, has read access and lands changes only through a pull request.
-
Reviewers
Each change proposed by someone who is not a committer is reviewed by a team member.
Rules on main require a pull request and three passing checks before a merge: lint, typecheck and build; the unit and integration tests; and a secret scan. They require no approving review, and they are not enforced on administrators: organisation admins (cevheri and kaya-abdullah) can bypass them, and release commits and some small changes are pushed to main directly. By policy, not by a rule, an outside pull request is read by one of the people above before it lands.
-
Approvers
Each signing request is approved by a team member trusted by the entire team.
Three approvers, so a release is never gated on one person being available. A release is a tag pushed by hand. No signing happens yet; once it does, the policy is that each signing request is approved individually and none is automatic.
How a release is approved
Nothing signs itself
-
Built from a tag, in public
Every release artifact is built by GitHub Actions, triggered by a pushed release tag or the release published from it, using workflows anyone can read in the repository. Nothing is built on a maintainer’s machine and uploaded.
-
Multi-factor authentication, enforced
Two-factor authentication is required for every member of the GitHub organisation, enforced at the organisation level rather than requested. It was enabled on 2026-09-01 and applies to all four members.
-
Each signing request approved by hand
This is the policy for when signing starts, since nothing is signed today: a release is never signed as a side effect of a merge, and an Approver authorises each request individually, after the release assets are built and verified.
-
A release is never rewritten
Published releases and package versions are immutable here by policy, and GitHub’s immutable releases setting is on for the repository: a bad release is replaced by the next patch version, never re-uploaded under the same one. A signature therefore always describes the bytes it was made for.
What the software sends
Where data goes, and on whose instruction
This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it.
LibreDB Studio is self-hosted and ships no telemetry or analytics; the container disables the framework’s own telemetry as well. It connects to the databases you configure, and to a model provider only if you configure one — both are outbound connections you set up, and the second is documented as a limit rather than a feature, because it means query content leaves the machine.
The site's own cookie and analytics handling is a separate matter, covered in the privacy policy. Where those guarantees stop is set out in the security model.