feat(web): allow using `sql-studio` as database browser
SQL Studio is an excellent new SQLite browser written in Rust, which has a nice interface, some interesting out-of-the-box visualisations for the database, support for a number of other platforms, as well as being built as a single static binary.
As a static binary, this simplifies the ability to deploy dmd-web
with
a more batteries-included SQLite browser than the embedded one.
SQL Studio is built with a Javascript heavy frontend, whereas the embedded browser and Datasette have very little Javascript, so can be run as server-side applications, so this may not be applicable for everyone.
We shouldn't make this mutually exclusive with Datasette, as it may be useful to run both - for instance on the demo site.
We should provide a fallback page when the SQL studio URLs aren't wired in, especially in cases that the application was once enabled with SQL Studio and then it was disabled.
This requires a minimum of sql-studio
v0.1.17.
By providing the --base-path
argument, client-side requests (i.e. to
the API endpoint) will go through the "public facing" URL i.e. how
dependency-management-data's /sql-studio
path. The base application is
not served from that location, so we need to make sure we use the
Director
functionality to rewrite the request URL to strip that
prefix.
Closes #588 (closed).