🚀 It's an extremely exciting day! 🚀
We are releasing the first release candidate of 1.0 SpacetimeDB!
In this version of SpacetimeDB, we do not expect to introduce any breaking changes to the user facing API. You can rest assured that if you build on this version it will be fully compatible or very nearly fully compatible with the final 1.0 release API.
While we reserve the right to add new APIs and make small changes before 1.0, this is more or less what 1.0 will look like!
NOTE! This is still a pre-release version. It is not the final 1.0 version of SpacetimeDB. As such we still suggest that developer exersize caution about using SpacetimeDB in production and be aware of the risks of pre-release software. Including the potential need to wipe their database instances or to manually migrate their data to the final 1.0 version.
SpacetimeDB identities are now OIDC compliant! This means that you'll have access to a huge host of existing tooling to create identities for your users and allow them to log in to your module through your own login flows and infrastructure.
CLI Improvements
- Login Flow Updates: We've dramatically improved how
Identitys work in SpacetimeDB, including allowing you to use the sameIdentityacross multiple SpacetimeDB clusters by logging into the website. This includes introducing new CLI login flow, includinglogin showandlogoutcommands. spacetime upgradeUpdate: Now uses--yesinstead of the deprecated--forceflag.- Help Text Enhancements: Added help text for
--build-options. - Server Command Stabilization: Stabilized
spacetime serversubcommands and resolved issues withspacetime server edit.
Database Enhancements
- Renaming: "Database instance" renamed to "replica" for clearer terminology.
- Row-Level Security (RLS): Added a system table for RLS along with a new filter macro.
- Optimized Querying: Added non-unique index join iterator and a physical query plan with executors for performance improvements.
- Persistent Memory Metering: Enhanced energy metering for persistent memory and improved handling for large datasets.
Compression
- New Compression Options: Introduced gzip and none compression options; SDK now selects optimal compression.
Code and Dependency Updates
- C# Bindings: Bumped C# bindings to version 1.0.0, with improved codegen for managing
DbConnectionstates. - Code Cleanup: Removed obsolete elements like
BytesWrapperand improved commit log traversal efficiency. - Dependency Upgrades: Updated Wasmtime dependency; improved resilience of ARM64/AMD64 Docker builds.
Security and Identity Management
- JWT Handling: Enhanced JWT token handling with OIDC providers.
- Endpoint and Token Updates: Removed email recovery endpoints, deprecated SendGrid, and updated token formats for ID tokens.
- Short-Lived Token Fixes: Corrected the endpoint used for short-lived tokens.
What's Changed
- CLI -
spacetime upgradetakes--yesinstead of deprecated--forceby @bfops in #1805 - Renamed database instance to replica by @cloutiertyler in #1806
- offset index read integration by @Shubham8287 in #1779
- commitlog: Yield
StoredCommitin iterators by @kim in #1791 - Make smoketests not log expected teardown errors by @kazimuth in #1804
- Add gzip + none compression algos and let SDK pick compression by @Centril in #1802
- Correct
Schema::check_compatibleto resolve types in a ModuleDef by @kazimuth in #1813 - Add CODEOWNERS for CLI crate by @bfops in #1834
- Make ARM64 and AMD64 docker builds more resilient by @jdetter in #1844
- Adding the system table for row level security by @mamcx in #1746
- refactor: Add TableId to relvar type by @joshua-spacetime in #1803
- Remove email and recovery related identity endpoints by @jsdt in #1833
- Energy metering for persistent memory usage by @coolreader18 in #766
- No
Maps for you! by @Centril in #1770 - CLI - Add helptext for
--build-optionsby @bfops in #1853 - Upgrade wasmtime dependency by @coolreader18 in #1857
- Remove sendgrid by @kim in #1860
- Improve bindings diagnostics and add ui tests by @coolreader18 in #1216
- Fix Build: Use default() to init custom hash based datastructures by @Shubham8287 in #1871
- RLS: Adding a new filter! macro by @mamcx in #1849
- CLI - Fix
spacetime server editfailing on renames by @bfops in #1877 - CLI - Stabilize
spacetime serversubcommands by @bfops in #1845 - Redefine Address as
U128+Identityand Hash asU256by @Centril in #1616 - Have the scheduled_id/at columns be specified in the schema, not by the column name by @coolreader18 in #1861
- Use new token format when generating new id tokens by @jsdt in #1854
- Rust modules: Revise
BTreeIndexBoundsby @gefjon in #1815 - commitlog: Fix transactions iterator by @kim in #1884
- Remove CODEOWNERS from CLI codegen by @bfops in #1886
- The banishment of Address by @cloutiertyler in #1880
- CLI - Fix helptext after #1845 by @bfops in #1889
- Handle JWT tokens with oidc providers by @jsdt in #1882
- Reorganize macro crate by @coolreader18 in #1406
- Physical query plan + executors by @joshua-spacetime in #1881
- Small naming fixes. Fixes database identity creation. by @cloutiertyler in #1892
- feat: Add non-unique index join iterator by @joshua-spacetime in #1908
- Fix the endpoint for short-lived tokens by @jsdt in #1907
- core: Expose snapshot taking on
Lockingdatastore by @kim in #1898 - core: Expose
next_tx_offsetof theReplaydecoder by @kim in #1899 - core: Conversion from
txdata::InputstoReducerContextby @kim in #1901 - commitlog: Improve skipping behavior of traversals by @kim in #1902
- NFC: Remove obsolete BytesWrapper by @RReverser in #1896
- Bump C# bindings to 1.0.0 by @bfops in #1913
- Put
ExecutionContextinside the Tx context by @mamcx in #1876 - Don't redownload WASI SDK by @RReverser in #1916
- perf: Use default buffer size for brotli compression by @joshua-spacetime in #1920
- CLI - Login flow by @bfops in #1878
- Fix Find() with struct-based rows by @RReverser in #1917
- Hide "internal" datetime representation types by @RReverser in #1921
- Companion to spacetime-web#470 by @PuruVJ in #1912
- C# codegen making state relative to a DbConnection by @lcodes in #1869
- Optimise C# in a ridiculous way by @RReverser in #1924
- CLI - Add
login showandlogoutby @bfops in #1911 - Cached query execution plan by @joshua-spacetime in #1923
- chore: remove dead code by @joshua-spacetime in #1930
- Use previous reducer context when downgrading a tx by @joshua-spacetime in #1932
- Websocket API: Light transaction updates &
NoSuccessNotifyby @Centril in #1812
New Contributors
Full Changelog: v0.12.0-beta-hotfix3...v1.0.0-rc1-hotfix1