Commit Graph

185 Commits

Author SHA1 Message Date
Sebastian Jeltsch 8cd343013b Update JavaScript dependencies. 2026-01-11 23:02:27 +01:00
Sebastian Jeltsch 0ab548e164 Update JavaScript dependencies. 2026-01-02 23:22:02 +01:00
Sebastian Jeltsch bb462f9240 Prepare new release v0.22.4. 2025-12-18 12:40:30 +01:00
Sebastian Jeltsch e804788e5c Update JavaScript dependencies. 2025-12-18 12:13:02 +01:00
Sebastian Jeltsch c536aaf341 Peel back admin UI's login screen only when actual admin user.
IMPORTANT: this behavior was **never** a security concern. Admin APIs always required an admin user. This change merely prevents a defunct UI from being shown to non-admin users.

Adding the new JWT property broke the kotlin client, since its JSON parser was arguably set up too strict.
2025-12-18 10:11:07 +01:00
Sebastian Jeltsch 80f2f5e514 Update Rust and JavaScript dependencies. 2025-12-15 14:47:54 +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
Sebastian Jeltsch e90d78e23b Update JavaScript dependencies. 2025-12-03 12:30:22 +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 1122206c0c Add a command to CLI to update all "first-party" components. 2025-11-20 11:36:11 +01:00
Sebastian Jeltsch 3e288c5727 Be less chatty about uncaught errors falling out of WASM-user-code in release buidlds. 2025-11-13 23:02:36 +01:00
Sebastian Jeltsch 3f690b85ec Update Rust and JavaScript dependencies. 2025-11-13 13:12:58 +01:00
Sebastian Jeltsch 5809a600fd Version WASM component interface, break up into packages, and add a new API for custom SQLite functions. 2025-11-12 14:31:02 +01:00
Sebastian Jeltsch 106437ea6d Update JavaScript dependencies. 2025-11-09 07:57:15 +01:00
Sebastian Jeltsch 2308c8d622 Update JS and Rust dependencies. 2025-11-05 17:11:47 +01:00
Sebastian Jeltsch 57a8c7510f Add dart bulk insertion and update tests for records with JSON columns. #170 2025-11-03 19:47:57 +01:00
Sebastian Jeltsch 8566b9ba96 Update JavaScript dependencies. 2025-11-03 10:59:06 +01:00
Sebastian Jeltsch b9762f1d63 Fix initialization order issue for custom schemas (#170) and return client error for inputs rejected by SQLite CHECK constraint.
Also add both integration and end-to-end tests to ensure stability.
2025-10-31 14:44:09 +01:00
Sebastian Jeltsch 9e46a099d0 Stop encoding SQL values as generic JSON values (outside the context of the record API), i.e. for admin APIs and between WASM host/guest.
This lets us simplify the parsing and add back a lot of type-safety (including int64). As a side-effect, we basically had to complete reqrite the record insert/update handling in the admin UI.

Note, however, that this is a breaking change, since it touches serialization between WASM guests and host. Guest will need to be built against an updated guest runtime.
2025-10-21 16:40:45 +02:00
Sebastian Jeltsch 3bb22fc92b Use winch baseline compiler - instrad of cranelif - for WASM components in --dev mode. #161 2025-10-13 15:45:54 +02:00
Sebastian Jeltsch 940c329770 Update JavaScript dependencies. 2025-10-13 15:45:54 +02:00
Sebastian Jeltsch a0101ed2db Dart client test: randomize the lexicograpical message order to make sure we're not just sorting by insertion order. 2025-10-09 21:01:36 +02:00
Sebastian Jeltsch 08bcf98e67 Disable V8 runtime by default (custom builds can still enable it) and add a truly static binary release for Linux using MUSL.
Building with MUSL required vendoring sqlite-vec and OpenSSL.

Also clean up no-longer-supported TypeScript guest scripts.
2025-10-07 20:47:28 +02:00
Sebastian Jeltsch 64efae9ff8 Update more docs references to V8 2025-10-07 14:10:50 +02:00
Sebastian Jeltsch 57573d1bc8 Add test for value conversion in subscription filters. #160 2025-10-07 12:25:40 +02:00
Sebastian Jeltsch db945733e9 Update Rust and JS dependencies. 2025-10-06 22:53:04 +02:00
Sebastian Jeltsch d6d0534df4 Dart client: make events more match-able and cache/share realtime subscriptions. 2025-10-03 16:25:33 +02:00
Sebastian Jeltsch 4548137813 Add kotlin examples to docs. #144 #146 2025-10-03 12:51:12 +02:00
Sebastian Jeltsch 1eca4bdb5e Add plugin and setup for publishing our kotlin client to maven central. 2025-10-02 23:35:16 +02:00
Sebastian Jeltsch dfae76bed5 Make kotlin integration tests "hermetic" and hook 'em up with CI. 2025-10-01 20:24:19 +02:00
Sebastian Jeltsch be3cd2f6f7 Add an initial Kotlin client. #146 #144
Missing:
 * No docs examples yet.
 * No realtime subscriptions yet.

I'm not overly familar with Kotlin, so another set of eyes would be appreciated to converge towards a more idiomatic implementation.
2025-10-01 14:51:38 +02:00
Sebastian Jeltsch 972f6a50af Dart client: test addFilterParams and simplify token constructor. 2025-10-01 14:32:17 +02:00
Sebastian Jeltsch b7a0124d43 Dart client: remove abstractions, questionable APIs and failure modes. 2025-09-30 23:42:04 +02:00
Sebastian Jeltsch 362e284d03 Remove WIT thread-id method after changing the execution model. 2025-09-30 17:22:01 +02:00
Sebastian Jeltsch 56c78c2ad8 Add support for record-filtered subscriptions to dotnet client. 2025-09-27 10:46:37 +02:00
Sebastian Jeltsch 171be0805f Update dart client to use http instead of dio and prepare new release v0.5.0. 2025-09-27 01:08:01 +02:00
Sebastian Jeltsch 42ea051772 Update blog example's JSON schemas and generated types after changing FileUpload. Also update dart/Flutter dependencies. 2025-09-26 22:05:06 +02:00
Sebastian Jeltsch 21b7a2e566 Add support for record-filters to realtime subscriptions in Dart client. 2025-09-26 17:58:58 +02:00
Sebastian Jeltsch 353b913fe3 Update JavaScript dependencies. Fixes #157. 2025-09-25 23:16:04 +02:00
Sebastian Jeltsch 5161295a38 Fix new user registeration. 2025-09-24 12:27:56 +02:00
Sebastian Jeltsch 9b60cea394 Prepare new release v0.18.0. 2025-09-24 10:24:55 +02:00
Sebastian Jeltsch 5d422ec713 Add metadata.textproto to .gitignore. 2025-09-22 15:41:23 +02:00
Bilux b4f4a2047c Add integation tests for JSON file upload using base64. 2025-09-22 11:51:19 +02:00
Sebastian Jeltsch 4f6276087f Add an init argument to init-endpoint to pass version and for future proofing. 2025-09-20 18:23:13 +02:00
Sebastian Jeltsch 5802219c39 Update JavaScript dependencies. 2025-09-18 15:57:52 +02:00
Sebastian Jeltsch ced96071f4 Update JavaScript dependencies. 2025-09-12 11:14:37 +02:00
Sebastian Jeltsch 4b9df89104 Update JS dependencies. 2025-09-09 20:45:28 +02:00
Sebastian Jeltsch 1fbf0f862e Add TypeScript WASM guest runtime and examples. 2025-09-09 18:22:33 +02:00
Sebastian Jeltsch f1ec808622 Add Rust WASM guest runtime and examples. 2025-09-09 15:39:38 +02:00
Sebastian Jeltsch 55149a1734 Add WASM host-runtime to TrailBase and rebrand relevant command-line flags. 2025-09-09 15:39:35 +02:00