Add LibreDB Studio (org.libredb.Studio) - #158
Conversation
Open-source SQL IDE for PostgreSQL, MySQL, SQLite, SQL Server, Oracle, MongoDB and Redis, packaged from the upstream GUI Debian package as extra-data. Submitted by the LibreDB project, which maintains the application itself.
LibreDB Studio is submitted and maintained by the LibreDB project itself, which is the approved-by-construction case. The row cites this PR, since the PR is the evidence. check-approvals.sh reports the doc and the registry flags in sync.
The upstream PR is open (flatpark/flatpark#158) with catalog.upstream_approved set and its matching approvals row, so the staged copy's comment saying the flag was deliberately not set yet had become false. Records the PR as the channel's first_pr and notes what the submission actually carries.
There was a problem hiding this comment.
Thanks for a genuinely well-prepared submission — the packaging notes made this fast to verify. I checked out the branch and re-ran everything from scratch rather than taking the PR body's word for it. Summary: technically clean and ready — verified below. (Merged; the metainfo wording was adjusted before merge.)
Verified locally (not just re-quoted from the PR)
| Check | Result |
|---|---|
read-descriptor.mjs / audit-descriptor.mjs |
OK, exit 0 |
check-approvals.sh |
approvals doc ↔ registry flag in sync |
resolve-update.sh |
resolves to the exact version + URL pinned in the manifest |
sha256 dc9ff0af… |
byte-for-byte match against upstream's published .deb.sha256 |
release 0.9.62 |
tagged, and libredb-studio-desktop_0.9.62_amd64.deb really exists |
check-apply-extra.sh |
passes as root with all caps dropped (the real system-install path) |
.deb contents |
the three asserted payload pieces are present; the Node binary ships as libredb-studio-node, not node, so it can't claim a distro-owned path |
| icon | 256×256 PNG, matches the hicolor/256x256 install path |
What I liked
- Clean sandbox:
--share=ipc --share=network, wayland + fallback-x11,--device=dri, and no--filesystemat all;dangerous_permissions: []. The three optional grants (SQLite file, Unix socket,~/.ssh:ro) are documented asflatpak overrideinstead of pre-granted — exactly the scoping we want. apply_extra.shis above average: thepipefailsubshell probe,--no-same-owner,LC_ALL=Cto silence the bsdtar locale noise, and the three payload assertions before the tree is committed. The whole-usr-tree staging is the correct handling for a Tauri app whose resources resolve relative to<exe dir>/../lib/<product>.WEBKIT_DISABLE_DMABUF_RENDERER=1matches our established WebKitGTK convention.
|
@cevheri — separately from the review above, I just wanted to say thank you. FlatPark is a small, solo-funded project, so having an upstream maintainer show up, do the packaging properly, and disclose everything openly — the pending Flathub submission included — means a lot to me. You clearly read the existing packages and the guide before writing yours, and it shows in every file. That kind of care is exactly what makes this project worth running. Thanks for the trust, and for the work. I'll be glad to have LibreDB Studio in the catalog. 🙏 |
Supplementary verification — org.libredb.Studio (PR #158)Following up on the earlier review with a strict, static-only pass of the Verdict: PASS. No hard-fail rows. Tier 2 (official upstream prebuilt), Filled runbook templateLegend: ✅ pass ·
Local-machine verification (installed copy — beyond the static runbook)The runbook is deliberately static and never launches the app; these checks are
Note on the earlier reviewThe conclusion stands (PASS), but for the record the first pass executed |
|
Thank you — and the supplementary pass is genuinely useful to read. Catching that your own first review had executed PR-supplied scripts, and then re-deriving every safety row without them, is a level of rigour I did not expect from a solo project. Noted for our own reviews. One thing I can close properly: row 5.5, the bundled Node runtime trusted transitively rather than independently re-hashed. You do not have to take our word for it. The digests are pinned in-repo at Those match The native addons ( Two smaller notes, in case they are useful for the ledger:
I have installed from On the pending Flathub submission — nothing has moved there, and the offer stands unchanged: if it is ever accepted, say the word and we will withdraw or de-list here rather than have LibreDB Studio sitting in two catalogs against your guidance. |
…rs at it flatpark/flatpark#158 merged and dl.flatpark.org now serves org.libredb.Studio with the developer-approved badge. Verified on the published path rather than assumed: installed from the flatpark remote, version 0.9.62, and the enforced sandbox carries no filesystems= line at all. Flips the channel to live, gives README the real install command in place of the in-submission note, and drops the not-live caveat from the guide. FlatPark's bot owns the pin from here on, which is why the entry still declares no pin - a released version reaching their catalog is their CI's job, not a gate of ours. Also flips the desktop release-assets channel to live. Its own note said to do that with the first release shipping the artifacts; the AppImage has shipped since 0.9.60 and the GUI .deb since 0.9.62, so it was simply stale.
|
Thanks — the in-repo pinned digests close row 5.5 properly. Digests written into the build script rather than read out of a downloaded The last paragraph is the part I want to correct, though. There is no such requirement, and no such guidance from me. "Not on Flathub" is a filter I apply to myself when deciding whether a new app is worth the work — everything here installs with A small number of FlatPark apps do overlap with Flathub, deliberately:
The cases where I actually de-list are: upstream does not permit redistribution, or the app has gone unmaintained for a long time. Neither applies to you. Being trusted like this is an honour, and having FlatPark listed in your official docs alongside the AppImage and the |
What
LibreDB Studio is an open-source (MIT) SQL IDE for PostgreSQL, MySQL/MariaDB, SQLite, SQL Server, Oracle, MongoDB and Redis, with optional AI query assistance using the user's own API key. The desktop build is a Tauri v2 / WebKitGTK shell that starts the same server every other channel ships as a local sidecar on a loopback port and shows it in a native window. Everything stays on the machine.
Packaged from the official
libredb-studio-desktop_<version>_amd64.debasextra-data, unpacked unmodified.I am upstream — this is submitted by the LibreDB project, which builds and publishes the
.debbeing pinned. Happy to follow whatever you prefer forcatalog.upstream_approvedand thedocs/upstream-approvals.mdrow; per the "approved by construction" precedent (io.github.todevelopers.GseProfiler,dev.adonm.zuko) I can add both in a follow-up commit here now that this PR exists, or leave it to you.Why this fills a gap
Not on Flathub:
https://flathub.org/api/v2/appstream/org.libredb.Studioreturns 404, there is noflathub/org.libredb.Studiorepository, and Flathub search returns nothing.Full disclosure: we have a Flathub submission open at flathub/flathub#9538. Its test build is green on both arches; it is blocked on a policy question about AI-assisted development that has not been answered. I am not trying to slip past your not-already-on-Flathub gate — you may well consider a pending submission differently from a merged one, and I would rather you make that call with the facts. If it is accepted later, tell us and we will withdraw or de-list here without argument.
Practically, this also unblocks a channel Flathub cannot serve for us today: we ship an AppImage, which FlatPark does not accept, and the GUI
.debthis PR pins was added specifically so a FlatPark package was possible.Packaging notes
bsdtar, notar—org.gnome.Platformhas noarand nodpkg; verified by probing the runtime.usrtree is kept, not just the binary: the shell resolves its resources as<exe dir>/../lib/<product name>, sousr/binhas to stay next tousr/lib/libredb-studio-desktop.payload/server.js. A partially unpacked tree that still launches would fail every query instead of failing loudly.pipefailis enabled behind a subshell probe. The unpack is a pipeline and plainset -eonly inspects its last command. Flatpak verifies the extra-data digest beforeapply_extraruns, so a corrupt download cannot reach it, but a full disk mid-unpack can.WEBKIT_DISABLE_DMABUF_RENDERER=1in the wrapper — without it the window paints blank under many drivers.packaging/linux/fetch-node.shin our repo, which verifies it against sha256 digests checked into the repo and cross-checked against nodejs.org's SHASUMS. It ships aslibredb-studio-node, notnode, so the.debcannot claim a path the distribution'snodejspackage owns..debtoo, so adding a second source later is cheap if you ever want it.Sandbox
--share=ipc --share=network --socket=wayland --socket=fallback-x11 --device=dri, and nothing else. No--filesystemat all.networkis the core function: it connects to databases over TCP, including one on the host at127.0.0.1, and to an AI provider only if the user configures one.policy.dangerous_permissionsis empty.The metainfo documents the three opt-in grants as
flatpak overridecommands rather than pre-granting them: a SQLite file path, a database on a Unix socket, and~/.ssh:rofor the SSH-tunnel feature. Those paths are typed into the connection form rather than chosen through the file-chooser portal, which is why they need an explicit grant — I have described that accurately rather than claiming a portal flow the app does not have.One deliberate deviation from the playbook: the metainfo does not describe this as a community package, because that would be false — we maintain it. The required "repackages the official upstream build unmodified" wording is kept verbatim. Happy to change it if you would rather every entry read the same.
Verification
All four mandatory checks, run locally on Linux/X11 with
org.gnome.Platform//50:appstreamcli validatepasses with one pedantic hint,cid-contains-uppercase-letter. The id is intentional and matches our other channels.Exercised on a real session, installing the built ref and launching it:
SELECT 1returns rows; a multi-row query returns 3 rows~/.var/app/org.libredb.Studio/and nowhere elselddreports zero missing libraries inside the sandbox for both the shell and the sidecarapply_extradeletes the 77 MB.debafter unpackingNot exercised: Wayland (tested under X11 only), the arm64 build, and the AI features (they need a third-party API key). The SSH-tunnel and local-SQLite paths were not tested through a
flatpak override, only reasoned about from the sandbox definition.