Sebastian Jeltsch
c4a4dfd575
Update rusqlite to v0.35, which has more strict query validation \o/. Also update other Rust and JS deps.
2025-05-03 11:42:59 +02:00
Sebastian Jeltsch
122dd1ebb0
Allow applying recorded transaction as migration or plain transaction. Add tests.
2025-05-02 21:31:34 +02:00
Sebastian Jeltsch
4ce729742f
Minor: cleanup MigrationWriter.
2025-05-02 09:24:59 +02:00
Sebastian Jeltsch
45aa2397d6
Minor: move JS http handler logic entirely to trailbase-core.
2025-05-01 17:54:41 +02:00
Sebastian Jeltsch
4452d46ea8
Streamline and better document JS runtime. Also add a test to ensure event loop can progresses, while some external call is blocked.
2025-05-01 15:45:36 +02:00
Sebastian Jeltsch
134b1e7a84
Move SQLite connection out of JS runtime.
2025-04-29 22:20:14 +02:00
Sebastian Jeltsch
141a9148a8
Simplify JS runtime event loop. Only a single message type.
2025-04-29 21:10:24 +02:00
Sebastian Jeltsch
e897169aac
Move JS runtime into a separate crate.
2025-04-29 13:47:10 +02:00
Sebastian Jeltsch
843d78ee7e
Minor: use kanal for JS runtime.
2025-04-29 00:39:52 +02:00
Sebastian Jeltsch
c1a14c249f
Minor: simplify some of the JS runtime integration.
2025-04-28 17:53:46 +02:00
Sebastian Jeltsch
d97e9a0366
Prepare new release v0.10.1.
v0.10.1
2025-04-28 14:55:12 +02:00
Sebastian Jeltsch
9ca34f46f3
Further tune SQLite execution model.
...
Previously reader and writer channels were operating entirely
independently, which yields the lowest overhead for pure read and pure
write benchmarks.
In mixed workloads like prod, however, this is not ideal since we're
running into SQLite's own file-locking, which has more overhead than
in-process locking.
With this change, we use an RwLock to reduce congestion while still
allowing parallel reads.
Together with a low-overhead kanal channel, we see little to no
regression for pure read and pure write benchmarks, while seeing about a
3x improvement for mixed workloads.
We also move ACL checks for Create/Update queries to the writer SQLite
connection, to reduce thrashing.
2025-04-28 14:11:44 +02:00
Sebastian Jeltsch
03d2260737
Change Rust client's arguments to a builder approach (as opposed to leaking the struct) for better forward compatibility.
2025-04-28 11:16:50 +02:00
Sebastian Jeltsch
681db62e8f
Fully qualify filter columns to avoid ambiguous column error for filtering on columns named "id". #52
2025-04-28 09:31:58 +02:00
Sebastian Jeltsch
0f1e52e40a
Add offset pagination parameter to Python client.
2025-04-27 23:51:50 +02:00
Sebastian Jeltsch
dc8521752e
Add offset pagination parameter to dotnet client.
2025-04-27 23:46:31 +02:00
Sebastian Jeltsch
a7a931f51f
Add offset pagination parameter to Rust client.
2025-04-27 23:28:31 +02:00
Sebastian Jeltsch
20799ca6a9
Add offset pagination parameter to JS/TS client and docs.
2025-04-27 23:25:53 +02:00
Sebastian Jeltsch
8ecd169ec6
Update/tighten Dart client's deps.
2025-04-27 23:25:47 +02:00
Sebastian Jeltsch
4a7eab33d6
Add offset pagination parameter to Dart client.
2025-04-27 23:01:57 +02:00
Sebastian Jeltsch
0a34ace683
Support ?offset=N queries for record listings. #50
2025-04-27 15:38:55 +02:00
Sebastian Jeltsch
c941aa9393
Return error from list for incompatible combination of order and cursor.
2025-04-27 15:25:15 +02:00
Sebastian Jeltsch
ef9a8df637
Return error when user-provided limit exceeds hard limit during listing.
2025-04-27 13:58:15 +02:00
Sebastian Jeltsch
d994d32629
Escape filter column name and make cursor clause option.
2025-04-27 12:08:01 +02:00
Sebastian Jeltsch
706870c50a
Minor: use const reference internally for SQLite read queue operations.
2025-04-27 12:07:58 +02:00
Sebastian Jeltsch
2eb71199c0
Add tests to ensure ordering and cursor play well together in tests #50 .
2025-04-26 14:48:51 +02:00
Sebastian Jeltsch
4728cb8f7b
Consider PK ordering when filtering by cursor during list queries. #50
2025-04-26 14:00:56 +02:00
Sebastian Jeltsch
f1d84f5760
Update JS and Rust dependencies.
2025-04-25 17:08:26 +02:00
Sebastian Jeltsch
d79f8e0697
Doc: overhaul PocketBase comparison.
2025-04-25 11:41:27 +02:00
Sebastian Jeltsch
3729f70b7b
Prepare new release v0.10.0.
v0.10.0
2025-04-24 21:02:14 +02:00
Sebastian Jeltsch
4487d30b79
Put early queue work and apalis deps behind a "queue" feature.
2025-04-24 15:44:17 +02:00
Sebastian Jeltsch
2908e9fde6
Make Params immutable and avoid double filtering of request fields by schema columns.
2025-04-24 15:05:44 +02:00
Sebastian Jeltsch
7a2120455d
Support field presence checks in create/update access rules, e.g. 'foo' IN _REQ_FIELDS_.
2025-04-24 15:05:05 +02:00
Sebastian Jeltsch
969c591641
Fix: add back missing geoip extension for logs db.
2025-04-24 14:54:59 +02:00
Sebastian Jeltsch
d7766c4a05
Allow RecordApis to explicitly exclude columns.
2025-04-24 12:13:23 +02:00
Sebastian Jeltsch
af1f9bb1bf
Update dependencies.
2025-04-24 11:34:27 +02:00
Sebastian Jeltsch
f0e5570f96
Update website to Tailwind v4.
...
Everything else is still on Tailwind v3, since we depend on solid-ui,
which doesn't yet support v4:
https://github.com/stefan-karger/solid-ui/issues/166#issuecomment-2822360321 ,
however this way we can build some familiarity with the new system.
Sadly, the tailwind eslint plugin had to be disabled because it doesn't
support v4 and the v4 alpha is completely disfunct:
https://github.com/francoismassart/eslint-plugin-tailwindcss/issues/325 .
2025-04-24 10:40:51 +02:00
Sebastian Jeltsch
22bea3e6eb
Add a better footer to website.
2025-04-23 23:04:46 +02:00
Sebastian Jeltsch
fe2e8cfda4
Clean up Sqlite connection setup, no-parallel reads for in-memory dbs, and add a placeholder storage for persisting apalis queues.
2025-04-23 11:56:36 +02:00
Sebastian Jeltsch
79e6244a19
Update JS deps.
2025-04-22 21:52:12 +02:00
Sebastian Jeltsch
bbd24f93d2
Prepare new release v0.9.4.
v0.9.4
2025-04-22 16:44:54 +02:00
Sebastian Jeltsch
e2ed64a815
Crank up optimizations in github release workflow mostly just yielding smaller binaries.
2025-04-22 16:12:51 +02:00
Sebastian Jeltsch
711902e551
Install a SIGHUP handler to reload configuration. #49
2025-04-22 15:44:09 +02:00
Sebastian Jeltsch
9289eb2bdc
Split validation logic for insert and update row paths. Defaults must only apply on insert. #47
2025-04-22 14:54:08 +02:00
Sebastian Jeltsch
7cff40b8d2
Don't pre-fill default ins insert/update row form for a wider definition of optional fields. #47
2025-04-21 22:44:15 +02:00
Sebastian Jeltsch
68984f5b83
Make integer primary keys optional in row creation form. #47
2025-04-21 09:35:53 +02:00
Sebastian Jeltsch
22f4a20c72
Update Rust dependencies.
2025-04-21 09:11:41 +02:00
Sebastian Jeltsch
d6b199587d
Update to Rust edition 2024.
2025-04-20 07:36:26 +02:00
Sebastian Jeltsch
ebddc51d85
Enable apalis' generic and default storage backend tests.
2025-04-20 07:36:00 +02:00
Sebastian Jeltsch
63c330c4e5
Add a custom PoC apalis queue storage backend.
...
Forked from apalis-sql's sqlite implementation.
2025-04-20 07:35:55 +02:00