|
| 1 | +## v0.24.0 |
| 2 | + |
| 3 | +- TrailBase received first-class support for geometric/geospatial data and querying 🎉 |
| 4 | + - We published [`LiteGIS`](https://github.com/trailbaseio/LiteGIS), an in-house GEOS SQLite extension. |
| 5 | + It's early days but we hope for this to become useful to folks beyond TrailBase. |
| 6 | + Alternatively check out the amazing `SpatiaLite`. |
| 7 | + - TrailBase recognizes columns tagged as `CHECK(ST_IsValid(_))`, e.g.: |
| 8 | + ```sql |
| 9 | + CREATE TABLE table_with_geometry ( |
| 10 | + id INTEGER PRIMARY KEY, |
| 11 | + geometry BLOB CHECK(ST_IsValid(geometry)) |
| 12 | + ) STRICT; |
| 13 | + |
| 14 | + INSERT INTO table_with_geometry (geometry) VALUES (ST_MakeEnvelope(-180, -90, 180, 90)); |
| 15 | + ``` |
| 16 | + and updates its API/JSON schemas to expect and produce GeoJSON `Geometry` objects. |
| 17 | + - Internally geometries are represented in the "Well Known Binary" format (WKB). This enables `INDEX`es to accelerate filtering based on certain geometric relationships, see next. |
| 18 | + - The spatial filter operators `@within`, `@intersects` and `@contains` were added to the list API to allow filtering on spatial relations like: |
| 19 | + - List records with bounding boxes that contain my point. |
| 20 | + - List records with points, lines or polygons intersecting my bounding box. |
| 21 | + |
| 22 | + Reference geometries are specified in the "Well Known Text" (WKT) format, e.g. `?filter[geometry][@contains]=POINT (11.393 47.268)`. |
| 23 | + All clients were updated to support these new filter relations. |
| 24 | + - Using the new list query parameter `?geojson=<geo_column_name>` will return a GeoJSON `FeatureCollection` directly instead of a `ListResponse`. |
| 25 | + The geometry of the collection's features is derived from the column specified by `<geo_column_name>`. |
| 26 | + - The admin UI parses a geometry column's WKB and displays readable WKT but doesn't yet support convenient WKT insertion. |
| 27 | + Similarly clients don't aid in the construction of WKT parameters, this is left to the user, however WKT libraries exist in most languages. |
| 28 | + - Thanks for making it to here 🙏 - would love to hear your input. |
| 29 | +- For visibility, other notable changes since the prior major release: |
| 30 | + - Much improved admin UI: better maps and stats on the logs page, improved accounts page, tables handle the loading state to reduce layout jank, ... |
| 31 | + - Allow change subscriptions via WebSockets in addition to SSE. |
| 32 | + - Support `bcrypt` password hashes for auth. Support importing auth data from Auth0: `trail user import --auth0-json=<file>`. |
| 33 | + - The goal is to provide more horizontal mobility, i.e. reduce lock-in, by allowing auth in and export. |
| 34 | + - Make TrailBase's SQLite extensions available standalone to reduce lock-in, see `/crates/extensions-so`. |
| 35 | + - Dual-licensed clients under permissive Apache-2.0. |
| 36 | +- More idiomatic HTTP handling in WASM JS/TS: trailbase-wasm@0.5.0. |
| 37 | +- Update dependencies. |
| 38 | +
|
1 | 39 | ## v0.23.10 |
2 | 40 |
|
3 | 41 | - Add a standalone SQLite extension with all of TrailBase's custom functions to minimize lock-in and make it easier on folks who'd like to move off. |
|
11 | 49 | - Support `bcrypt` password hashes in addition to `argon2`. |
12 | 50 | - Add a user import function to CLI. Currently supports Auth0 user exports. |
13 | 51 | - Will be straight forward to support other providers that use `bcrypt` or `argon2`, please reach out 🙏. |
| 52 | + - Dual-licensed clients under permissive Apache-2.0. |
14 | 53 | - Update dependencies. |
15 | 54 |
|
16 | 55 | ## v0.23.8 |
|
0 commit comments