Commit Graph

1285 Commits

Author SHA1 Message Date
Sebastian Jeltsch 27ce368add Introduce a connection identiy and use it to manage subscriptions more robustely.
Ultimately names don't matter. Subscriptions only works if the update_hook is installed on the very connection the record APIs use for mutations.
2025-12-13 22:35:13 +01:00
Sebastian Jeltsch 2beab0f770 Cleanup code for change subscriptions. 2025-12-13 14:54:30 +01:00
Sebastian Jeltsch a3dc4ec2bf Prepare new release v0.22.0. v0.22.0 2025-12-12 13:09:07 +01:00
Sebastian Jeltsch dc87b658d1 Move "main" DB migrations into <traildepot>/migrations/main to follow latest best practices. 2025-12-12 13:04:02 +01:00
Sebastian Jeltsch 29daa0a683 docs: Update roadmap and add a very subtle reference :hide:. 2025-12-12 12:50:33 +01:00
Sebastian Jeltsch 69d305e149 Update to latest Rust stable v1.92 and please linter gods. 2025-12-12 12:15:28 +01:00
Sebastian Jeltsch a77ff21490 Update Rust dependencies. 2025-12-12 12:03:20 +01:00
Sebastian Jeltsch a1738ec0d8 Use quick-cache instead of mini-moka for extension where TLL and similar features are not required. 2025-12-12 12:02:48 +01:00
Sebastian Jeltsch 84254e2fed Introduce multi-DB support, i.e. Record APIs can be powered by TABLEs/VIEWs from different DBs. This can help with physical isolation and offer a path forward when locking bottlenecks are encountered.
It's still early days, e.g. the UI doesn't yet support creating new DBs. However it allows exploring, creating and altering schemas for existing DBs. For now use the config to register new DBs.

Changes:

* Config-driven life-cycle management for "extra" DBs, i.e. creation and migration-management.
* Completely rewire connection & schema access throughout, now using a ConnectionManager abstraction.
* Update SubscriptionManager to track subscriptions across multiple DBs.
* Per-DB file management.
* Improved error handling.
* Basic e2e tests including file handling.
* Update UI:
  * Explorer: show, create and alteration of schemas on non-main DBs.
  * SQL Editor: allow control over which DBs are attached to the connection.

This change is breaking: it affects how migrations are loaded from `<traildepot>/migrations/<db>/` and switches transaction default of batch endpoint to false (cheaper).

This change does not introduce a notion of multi-tenancy, i.e. create a per-tenant/user DB on the fly based on templates and corresponding traffic routing.
2025-12-12 11:48:30 +01:00
MentalGear c464279284 docs: Add config file location and schema reference. 2025-12-10 10:47:44 +01:00
MentalGear ca50b8a28b docs: Explain PK trade-offs and add an example for defining an UUID column, especially since it's not a SQLite built-in. 2025-12-10 10:28:00 +01:00
Sebastian Jeltsch f84f6f42e6 Prepare new release v0.21.11. v0.21.11 2025-12-05 16:36:30 +01:00
Sebastian Jeltsch c64885c540 Update Rust dependencies. 2025-12-05 14:58:43 +01:00
Sebastian Jeltsch eda0f9303b Update JavaScript dependencies. 2025-12-05 14:58:38 +01:00
Sebastian Jeltsch 328f2b656f Add aarch64 static linux release. Remove linux glibc release and add aarch64 support to linux install script.
Also name workflows more consistently.
2025-12-05 13:46:18 +01:00
Sebastian Jeltsch 8a1ec8b01f Avoid swallowing some errors, e.g. when table deletion fails. 2025-12-04 20:36:47 +01:00
Sebastian Jeltsch f2d404fe5a Prepare new release v0.21.10. v0.21.10 2025-12-04 16:38:39 +01:00
Sebastian Jeltsch 366991aa80 Update Rust dependencies. 2025-12-04 16:33:13 +01:00
Sebastian Jeltsch 5a912c31ea Be stricter in demo mode with respect to schema alterations/deletions. 2025-12-04 16:32:36 +01:00
Sebastian Jeltsch 82b3180668 Fix table renames in admin UI. 2025-12-04 16:21:32 +01:00
Sebastian Jeltsch 7d14f4f4fe Respect db schema when sorting tables in the admin UI. 2025-12-04 14:09:02 +01:00
Sebastian Jeltsch bde140ab26 Minor: clean up create/alter table form. 2025-12-04 11:07:24 +01:00
Sebastian Jeltsch 4e6fde888d Minor admin UI tweaks for very narrow screens. 2025-12-03 23:21:41 +01:00
Sebastian Jeltsch 247af6aea8 Prepare new release v0.21.9. v0.21.9 2025-12-03 21:15:34 +01:00
Sebastian Jeltsch df0f6894b6 Update Rust and JavaScript dependencies. 2025-12-03 20:55:02 +01:00
Sebastian Jeltsch 51c41b202a Use fully qualified table names in even more places in the admin UI. 2025-12-03 20:45:40 +01:00
Sebastian Jeltsch c423b2eff2 Fix column type updating when a foreign key table is select in admin UI. #183 2025-12-03 17:58:17 +01:00
Sebastian Jeltsch b7f130592b Use fully-qualified name (name + db schema) in more places.
Disambiguation and preparation for a multi-DB world.
2025-12-03 16:14:32 +01:00
Sebastian Jeltsch 0f6969e71c Prepare new release v0.21.8. v0.21.8 2025-12-03 13:14:30 +01:00
Sebastian Jeltsch 349fe56033 Add zoom buttons to ERD schema browser.
With latest @antv/x6 update panning finally works on mobile. Together with zoom buttons (in the absence of pinch) it becomes actually usable on mobile.
2025-12-03 13:04:43 +01:00
Sebastian Jeltsch 1eccb6aa13 Update @antv/x6. 2025-12-03 12:30:26 +01:00
Sebastian Jeltsch e90d78e23b Update JavaScript dependencies. 2025-12-03 12:30:22 +01:00
Sebastian Jeltsch 79d27050a9 Update Rust dependencies. 2025-12-03 12:04:55 +01:00
Sebastian Jeltsch b275042ab0 Fix: default value field validation in Create/AlterTableForm. #182 2025-12-03 11:52:40 +01:00
Sebastian Jeltsch afee1bf79f Create a fresh connection for query executions (from the admin UI) to cleanly separate it from the internal connection and avoid any chance of meddling, e.g. drop extra databases. 2025-12-02 14:15:21 +01:00
Sebastian Jeltsch 254de40be1 Fix overflow in admin UI's SQL editor. 2025-12-02 14:12:20 +01:00
Sebastian Jeltsch cd4b2af4cb Prepare new release v0.21.7. v0.21.7 2025-12-02 10:52:59 +01:00
Sebastian Jeltsch 7c06d60999 Update Rust dependencies. 2025-12-02 10:45:56 +01:00
Sebastian Jeltsch edb34e2c7c Move more of the migration loading logic from refinery into TB and allow controlling recursiveness in preparation for multi-DB migrations. This should be a noop for now.
Also, drive-by switch new migration tables to be STRICT SQlite tables.
2025-12-02 09:54:13 +01:00
Sebastian Jeltsch badd85c480 Fix docker alias to work correctly on Mac (probably Windows as well). Thanks @domibies #179. 2025-11-30 12:25:08 +01:00
Sebastian Jeltsch 40e7f2ff88 Explicitly target python 3.12 with the pyright static type checker. #181 2025-11-29 22:38:46 +01:00
Sebastian Jeltsch 37dd56aad3 Prepare new release v0.21.6. v0.21.6 2025-11-24 13:11:21 +01:00
Sebastian Jeltsch 8a9c944c0d Major Rust dependency update.
This update would not have been comcompatible with rustyscript->deno->swc, which is why we have to remove the V8 integration in a prior change.
2025-11-23 22:32:03 +01:00
Sebastian Jeltsch c35c2acc41 It's been a little over 6 weeks since v0.19 removing V8 from the trail binary. This change now removes the code.
I wasn't sure how long to keep the code around as an optional feature. However, the latest wasmtime release pins serde to a version, which is incompatible with the latest (somewhat stale) deno/V8/SWC dependencies. In other words, updating wasmtime right now would break the V8 build :/. The state of the rustyscript/deno dependency chain had certainly been one of the driving factors to move to WASM. While it feels validating, it's a little sad to see V8 go... but at the least we want to make the removal eplicit (as opposed to a broken build) with this change.
2025-11-23 22:17:03 +01:00
Sebastian Jeltsch 0c15272bae Fix: when installing WASM components using the CLI make sure <data_dir>/wasm exists. #179 2025-11-23 00:00:18 +01:00
Sebastian Jeltsch 1fb0f68191 Minor: reference new trail components update command in error message. 2025-11-21 13:13:59 +01:00
Sebastian Jeltsch 2d65ac88d1 Prepare new release v0.21.5. v0.21.5 2025-11-20 12:05:00 +01:00
Sebastian Jeltsch 1122206c0c Add a command to CLI to update all "first-party" components. 2025-11-20 11:36:11 +01:00
Sebastian Jeltsch c726e5fc76 Add a CLI command to list installed WASM components. 2025-11-20 11:36:02 +01:00
Sebastian Jeltsch af5a3d3b7a PoC: Minimal open-telemetry tracing and metrics integration behind "otel" feature flag. 2025-11-19 10:28:47 +01:00