For the complete changelog, see CHANGELOG.md in the repository.
Latest Releases
v0.24.3
Release Notes
Release Notes
- Add a Yandex OAuth provider
- Expose RNG to Rust WASM guests
- Update Rust WASM guest integration to avoid repeated calls to
Guest::Init()and avoid repeated SQLite function registration - Update dependencies
v0.24.2
Release Notes
Release Notes
- Revert WASM execution model to not share state between HTTP requests. Rust guests seem fine but JS guests can get stuck (requires further investigation)
- Pass
Client-Idheader for Twitch OAuth provider - Update realtime SSR docs
- Update dependencies
v0.24.1
Release Notes
Release Notes
- Add experimental Twitch OAuth provider
- Use
defer_foreign_keysfor schema alterations - Update dependencies
Major Releases
v0.24.0 - Geospatial Support 🎉
Release Highlights
Release Highlights
TrailBase received first-class support for geometric/geospatial data and querying:New Features:
- Published LiteGIS, an in-house GEOS SQLite extension
- Automatic GeoJSON schema generation for geometry columns
- Spatial filter operators:
@within,@intersects,@contains - GeoJSON
FeatureCollectionoutput via?geojson=<column>parameter - Well Known Binary (WKB) internal format with indexing support
- Admin UI displays readable WKT for geometry columns
- Improved admin UI: better maps and stats on logs page, accounts page improvements
- WebSocket support for change subscriptions (in addition to SSE)
- Support for
bcryptpassword hashes - User import from Auth0:
trail user import --auth0-json=<file> - Standalone SQLite extensions available in
/crates/extensions-so - Dual-licensed clients under Apache-2.0
- More idiomatic HTTP handling in WASM JS/TS
v0.23.0 - WASM Component Model
Release Highlights
Release Highlights
WASM Improvements:
- Merged Host implementations for HTTP/Job handlers and custom SQLite extension functions
- Extended state lifecycle for SQLite extension functions
- Use
async | store | task_exitexports in preparation for component-model-async - More robust async host-backed plugin APIs
- Enable “late” authentication for WebSocket subscriptions (browser compatibility)
- Private support for WASM in JS/TS client
- Update Rust toolchain to 1.93
v0.22.0 - Multi-Database Support 🎉
Release Highlights
Release Highlights
Multi-DB Features:
- Record APIs can be backed by tables/views in independent databases
- Config-driven database lifecycle management
- Generalized connection management
- Per-DB file upload and lifecycle management
- Multi-DB subscription management
- End-to-end tests
- SQLite doesn’t allow
FOREIGN KEYs andTRIGGERs across DB boundaries JOINs can cross DB boundaries- Supports arbitrary number of DBs despite SQLite’s 125 DB per connection limit
- DBs mapped to
<traildepot>/data/<name>.dband<traildepot>/migrations/<name>/
- Changed Record API default behavior to run batches without transactions unless requested
- Improved errors for file-handling record APIs
v0.19.0 - WASM-Only Release
Release Highlights
Release Highlights
Breaking Changes:
- First WASM-only release, dropping V8 runtime support
- Default Linux release now built with MUSL (truly static and portable)
- Drop index-based file reads in favor of unique filenames:
{original_stem}_{rand#10}.{suffix}
- Official Kotlin client
- Record-based subscription filters
- Reworked WASM execution model with shared executor
- Comprehensive access rule validation
v0.18.0 - WASM Components
Release Highlights
Release Highlights
Major Change:
- Last release containing V8 JavaScript engine
- Transition to WASM-only runtime
- Auth UI now available as WASM component
- Install with:
trail components add trailbase/auth_ui - Serves as starting point for customization
- Proof-of-concept for WASM compositional model
- Component in
crates/auth-uican be customized - Early component management functionality
- Eating our own dogfood
v0.17.0 - WASM Runtime
Release Highlights
Release Highlights
New WASM Runtime:
- Added WASM runtime based on wasmtime
- Transitional release containing both V8 and WASM runtimes
- Plan to eventually remove V8
- Increased performance for non-JS languages
- Strict state isolation
- Flexible guest language choice (JS, TS, Rust)
- More extensibility opportunities
v0.14.0 - UUIDv4 Record IDs
Release Highlights
Release Highlights
Breaking Changes:
- Allow truly random UUIDv4 record IDs using AES encrypted
_rowid_s for cursors - Move user IDs to UUIDv4 by default (avoids leaking creation time)
- Bundled migration updates PK to allow any UUID type
- May break existing code relying on UUIDv7 user IDs
- Cursor encryption key tied to instance lifetime
v0.12.0 - List API Filter Overhaul
Release Highlights
Release Highlights
Breaking Changes:
- Complete overhaul of list API filters to support nested, complex expressions
- Filter format changed from
col[ne]=valtofilter[col][$ne]=val - All clients updated to support new syntax and help construct nested filters
- Swift client implementation
- Show release version in admin dashboard
?filter[$or][0][col][$gt]=v_max&filter[$or][1][col][$lt]=v_minSee full release notesRecent Minor Releases
v0.23.x Series - Stability and Polish
v0.23.10
v0.23.10
- Add standalone SQLite extension with TrailBase’s custom functions
- Overhaul schema metadata handling
- Make status codes more consistent across auth endpoints
- Update OpenAPI documentation
v0.23.9
v0.23.9
- Support
bcryptpassword hashes - Add user import from Auth0
- Dual-licensed clients under Apache-2.0
v0.23.8
v0.23.8
- Show validation errors for tables/views not qualifying for Record APIs
- Improve config validation errors
- Allow
GROUP BYexpressions on VIEW’s non-PK columns
v0.23.7
v0.23.7
- Clean up accounts UI
- Fix ephemeral invalid cell access in admin UI
- Improve error handling in TS client
v0.23.6
v0.23.6
- Handle permission errors (401/403) and 429 gracefully in admin UI
- Add uptime to dashboard
v0.23.5
v0.23.5
- Switch map from leaflet to maplibre and vector tiles
- Switch rate graph to bar chart
- Add explicit collapse option for stats
- Split “list logs” from stats endpoint
v0.22.x Series - Multi-DB and WebSockets
v0.22.13
v0.22.13
- Support realtime subscriptions via WebSockets (behind “ws” feature)
- Protocol upgrade with
?ws=trueparameter - Improve Rust client test setup
v0.22.12
v0.22.12
- Enable sorting of columns in table explorer, logs, and accounts
- Update column data type when picking foreign key table
- Reduce table jank with fixed column sizes
- Add execution timestamp to SQL editor results
v0.22.11
v0.22.11
- Allow re-ordering of columns in Create/Alter table UI
- Optimize filtered realtime subscriptions
- Filter foreign key options based on column type
v0.22.10
v0.22.10
- Fix list record edge case with
?limit=0&count=true - Fix overly eager de-registration of subscriptions
View Full Changelog
For the complete version history including all patch releases:Full Changelog on GitHub
View the complete CHANGELOG.md with all releases and changes
Release Channels
Stable Releases
- Current: v0.24.x (alpha)
- Frequency: Regular updates every 1-2 weeks
- Downloads: GitHub Releases
- Docker:
trailbase/trailbase:latest
Development Builds
- Branch:
main - Status: Unstable, may break
- Use: Development and testing only
- Build: Clone and build from source
Release Notes Format
Each release includes:- Version number: Semantic versioning (MAJOR.MINOR.PATCH)
- Release date: When the version was published
- Changes: New features, improvements, and bug fixes
- Breaking changes: Clearly marked with migration guidance
- Contributors: Credit to contributors for the release
Upgrading
Checking Your Version
Updating TrailBase
Pre-built binaries:- Download the latest release from GitHub Releases
- Replace your existing
trailbinary - Restart the server
Migration Guide
For breaking changes, see:- Release notes for specific versions
- Migration sections in documentation
- GitHub issues for workarounds
Always backup your
traildepot directory before upgrading!Deprecation Policy
TrailBase is in alpha, but we try to:- Announce breaking changes in release notes
- Provide migration paths when possible
- Give advance warning via deprecation messages
- Maintain compatibility where feasible
Post-1.0 Plans
After reaching 1.0:- Follow semantic versioning strictly
- Deprecation warnings for at least one minor version before removal
- Clear upgrade guides for breaking changes
- LTS releases for production stability
Staying Updated
GitHub Releases
Subscribe to release notifications
Watch Repository
Get notified of all updates
RSS Feed
Follow via RSS
Blog
Deep dives into major releases
Version Support
Current Support
- Latest version: Fully supported with bug fixes and security updates
- Previous minor: Bug fixes for critical issues
- Older versions: Community support only
As an alpha project, only the latest version receives active support. Please upgrade regularly.
Client Library Versions
Client libraries are versioned alongside the server:- JavaScript/TypeScript: Keep in sync with server version
- Dart/Flutter: Update when server updates
- Rust: Match server version
- Other clients: Check package changelogs
Contributing to Releases
Help improve releases:- Report bugs in the current version
- Test beta/RC releases
- Provide feedback on breaking changes
- Suggest improvements to release notes
- Update documentation for new features