Commit graph

1561 commits

Author SHA1 Message Date
Sebastian Jeltsch
eeb52692a8 Fix migration filename and named placeholder construction to work for any unicode character.
Our migration library doesn't seem to work with whitespaces.
2026-04-08 13:54:03 +02:00
Sebastian Jeltsch
dcb5a7636d Add an allowlist for custom auth redirects. 2026-04-07 20:11:04 +02:00
Sebastian Jeltsch
9c07c1693f Prepare client releases. 2026-04-07 19:48:36 +02:00
Sebastian Jeltsch
b4250f517e Prepare new release v0.26.0. 2026-04-07 14:09:34 +02:00
Sebastian Jeltsch
30d1920ce5 TS client: add an onLoss callback option to trigger some response to event loss. 2026-04-07 14:09:34 +02:00
Sebastian Jeltsch
f044969298 Kotlin client: add support for programmatic change event errors. 2026-04-07 14:09:34 +02:00
Sebastian Jeltsch
d77df8e18b Rust client: support programmatic change event error statuses. 2026-04-07 14:09:34 +02:00
Sebastian Jeltsch
9dff848c37 Dart client: add more event decoding tests. 2026-04-07 14:09:34 +02:00
Sebastian Jeltsch
0e5d7bc33f Python client: add event abstraction, parsing of programmatic error and sequence numbers. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch
ec9a8f605d Go client: support structured change event errors and sequence numbers. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch
3138c732e6 C#/Dotnet Client: support new ErrorEvent format with programmatic status and add sequence numbers. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch
1e5aa4a296 TS Client: support new error ChangeEvent encoding with programmatic status. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch
7ca34c310c Switch ErrorEvent statuses to an integer representation and update Dart client to support it as well as sequence numbers. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch
e8eaacfc7c Massively overhaul change event execution model.
* minimize work in SQLite's preupdate hook
* push brokering onto a separate thread
* kick filter and acl checking further downstream into the SSE handlers.
* add layered sequence numbers to detect server-side event losses and allow clients to detect client-side event losses.
2026-04-07 14:09:26 +02:00
Sebastian Jeltsch
175800287f Update Rust dependencies. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch
847697c069 Fix WASM "ATTACH DATABASE" and sqlite error unpacking. #221 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch
d65979766e Simplify the brokering logic and locking.
We should think about further ways to make message delivery async. There
may be implications with respect to event ordering :/.
2026-04-07 14:09:26 +02:00
Sebastian Jeltsch
1f918d9022 Break up record api subscriptions into multiple files. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch
299ab0f3d6 Add a stress test for subscriptions. 2026-04-07 14:09:26 +02:00
Sebastian Jeltsch
be097c00c3 Add a sequence number to SSE change events. This is important to discover transparent re-connects and discover missed events on the client-side.
This change took a while, since I first switched to internally tagged unions, which would be easier to handle by most client.
However, after thinking carefully given the cost of wire-format changes, I concluded that externally tagged is the way to go.
It's needed to support different value schemas for insert/update/delete, which would be required for Avro.

In the future we should also add facilities to the client to discover such losses, e.g. using a callback API.
2026-04-07 14:09:22 +02:00
Sebastian Jeltsch
8cf7c09eb2 Fix builds for Rust client's ws feature. 2026-04-06 18:36:28 +02:00
Sebastian Jeltsch
e2cb3a6694 Fix MacOS release workflows. 2026-04-06 18:06:28 +02:00
Sebastian Jeltsch
0d88aaa406 Prepare new release v0.25.3. 2026-03-31 20:52:24 +02:00
Sebastian Jeltsch
f9baa6c8ae Update Rust dependencies. 2026-03-31 20:52:24 +02:00
Sebastian Jeltsch
c26ac29df1 Add debug-build JSON schema validation to records create/update/list. 2026-03-31 20:52:24 +02:00
Sebastian Jeltsch
e658a84451 Fix JSON schemas for foreign keys and nullable JSON objects. 2026-03-31 20:52:24 +02:00
Sebastian Jeltsch
b33400a415 Stricter request Content-Type handling. Some preparations for multiple response content-types. 2026-03-31 20:52:22 +02:00
Sebastian Jeltsch
9ecd7c11b7 Allow concurrent SELECTs from WASM guests, while still allowing the use of ATTACH/DETACH DATABASE. #221 2026-03-31 11:01:40 +02:00
yguenduez
0936519c1b Blog example: Increase Node version to 22 in Dockerfile
The used `Astro` does not support node v20 anymore.
2026-03-27 20:12:02 +01:00
Sebastian Jeltsch
1e8cd99fb4 TS client: rename s/Event/ChangeEvent + re-export as Event to stop confusing rollup. 2026-03-27 17:10:50 +01:00
Sebastian Jeltsch
d539a61057 Prepare and push new client releases. 2026-03-27 09:49:37 +01:00
Sebastian Jeltsch
b7e56fa73c Prepare new release v0.25.2. 2026-03-26 13:46:12 +01:00
Sebastian Jeltsch
65e4252afb Python client: fix loop. 2026-03-26 13:36:54 +01:00
Sebastian Jeltsch
57ab485d33 Kotlin client: fix loop and pre-commit tests. 2026-03-26 13:36:54 +01:00
Sebastian Jeltsch
970c9e0cbd Dart client: cleanup make refresh token a free function to make the intent clearer. 2026-03-26 13:36:54 +01:00
Sebastian Jeltsch
3b96652888 Rust client: Remove Error::MissingRequestToken in line with other clients and cleanup naming. 2026-03-26 13:36:54 +01:00
Sebastian Jeltsch
e7d37b412a TS client: fix token refreshing loop and cleanup implementation. 2026-03-26 13:36:44 +01:00
Sebastian Jeltsch
4b0f33264a Update JS dependencies. Upgrade to TS6. 2026-03-26 11:21:16 +01:00
Sebastian Jeltsch
fcc3f1353b Update Rust dependencies. 2026-03-26 11:07:43 +01:00
Sebastian Jeltsch
1749c9c689 Python client: add customizable transport abstration. 2026-03-23 20:48:05 +01:00
Sebastian Jeltsch
4024b85323 Kotlin client: add a Transport abstraction. 2026-03-23 20:35:17 +01:00
Sebastian Jeltsch
e2fb797c37 Use jco guest-types for WASM guest type generation. 2026-03-23 20:35:17 +01:00
Sebastian Jeltsch
0d375aa3ef Update wasmtime v42 -> v43: pre-condition for eventually supporting WASIp3. 2026-03-23 20:35:15 +01:00
Sebastian Jeltsch
4dde89c879 Add a Transport abstraction to swift client, add a change event representation and failed attempt of adding change subscriptions.
At least on Linux I'm failing to receive SSE events :/.
2026-03-23 12:12:29 +01:00
Sebastian Jeltsch
3d4688ffb8 TS client: clean-up new Transport abstraction by merging duplicate header fields. 2026-03-22 17:19:03 +01:00
Sebastian Jeltsch
15e39febc2 Go client: add a transport abstraction & remove client interface indirection. 2026-03-20 21:29:07 +01:00
Sebastian Jeltsch
684505e8cd Dotnet client: abstract transport, allow injecting custom impl and update dependencies. 2026-03-20 20:46:48 +01:00
Sebastian Jeltsch
fc1e440732 Dart client: abstract transport and allow injecting custom implementation. 2026-03-20 20:46:48 +01:00
Sebastian Jeltsch
e6c47f2f6a Rust client: introduce a trait to allow for custom transport implementations #66.
Based on some prior definitions from "Sand I/O" I've seen, this probably
isn't entirely it, since there's still use of async I/O. At least this
should make testing easier.
2026-03-20 20:46:40 +01:00
Sebastian Jeltsch
3f52065452 TS client: Break up files, add a vite build step and allow injecting a custom Transport interface. #222 2026-03-20 20:46:30 +01:00