Commit Graph

200 Commits

Author SHA1 Message Date
Sebastian Jeltsch b56ce4b544 Fix cross-platform builds after addiong GEOS dependency.
* GEOS couldn't build on MacOS due to CMake being to new :/.
* GEOS couldn't build on Linux MUSL, due to missing an appropriate g++ setup :/.

We're now downgrading cmake and are building in Docker on Linux :/.
2026-02-20 17:42:06 +01:00
Sebastian Jeltsch f3ee92ff94 Prepare releases of new client versions. 2026-02-19 19:17:59 +01:00
Sebastian Jeltsch 61567670f1 Add support for geospatial queries to all clients. The TS client also supports GeoJSON FeatureCollection output. 2026-02-19 15:29:00 +01:00
Sebastian Jeltsch 63210e2e7c Add support for WKB geometry columns, @within, @intersects & @contains spatial queries list and GeoJSON FeatureCollection output. 2026-02-19 15:28:45 +01:00
Sebastian Jeltsch ada26e2a7b Update JavaScript dependencies. 2026-02-19 11:10:09 +01:00
Sebastian Jeltsch 9365d86d81 Streamline JS/TS WASM HTTP handler, introduce HttpResponse.(status|ok|text|json). 2026-02-18 23:57:05 +01:00
Sebastian Jeltsch 91e3984f53 Update JavaScript dependencies. 2026-02-06 13:03:35 +01:00
Sebastian Jeltsch f34ee21df6 Update Rust dependencies and fix incompatibilities. 2026-02-01 11:04:22 +01:00
Sebastian Jeltsch 5b9b32e0ac Move sqlean/sqlite-vec loading to the CLI level and switch to maintained sqlite-vec fork: https://github.com/vlasky/sqlite-vec. 2026-02-01 11:04:22 +01:00
Sebastian Jeltsch a51add4d81 Fix type checker issues with python client and latest jwt lib. Also start using flake8 for more idiomatic code. 2026-01-31 23:07:17 +01:00
Sebastian Jeltsch 369785a7f1 Change client library's license to a "OSL-3.0 OR Apache-2.0" dual license. #192 2026-01-27 09:38:52 +01:00
Sebastian Jeltsch 5898fc9dba Merge WASM-host implementations for HTTP/Job handlers and SQLite functions. Also extend SQLite function state life-cycle to persist and be shared. 2026-01-23 13:34:57 +01:00
Sebastian Jeltsch fd9a026631 Update JavaScript dependencies & and downgrade Astro (newer versions break our docs, client islands broken?). 2026-01-20 15:12:41 +01:00
Sebastian Jeltsch 8ad3783716 Minor: update tag line. 2026-01-18 22:39:32 +01:00
Sebastian Jeltsch 217d95a927 Update JavaScript dependencies. 2026-01-15 21:58:33 +01:00
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