2.0.5
Released on Apr 10, 2025
Bug fixes:
Security advisories:
Upgrade or install
Get SurrealDB v2.0.5
Pick how you want to install or upgrade. Surrealist can update connected instances in place, or choose a platform below to copy a CLI command for v2.0.5.
You can upgrade your SurrealDB Cloud instance to v2.0.5 effortlessly through the Surrealist app.
- Open the Surrealist app
- Select your organisation and instance
- On the dashboard, click on the "Upgrade" button
- Your instance will be updated and restarted automatically
2.0.4
Released on Oct 8, 2024
Performance improvements:
Bug fixes:
Fixed micro second parsing
Workflow improvements:
Security advisories:
Newer patch available
Upgrade to 2.0.5
You are viewing the 2.0.4 changelog. A newer patch in this release line is available - we recommend running 2.0.5 for the latest fixes and improvements.
2.0.3
Released on Oct 3, 2024
Features:
Parser improvements:
Bug fixes:
Fixed ID type conversion
Fixed thing parsing function
Workflow improvements:
Newer patch available
Upgrade to 2.0.5
You are viewing the 2.0.3 changelog. A newer patch in this release line is available - we recommend running 2.0.5 for the latest fixes and improvements.
2.0.2
Released on Sep 25, 2024
Bug fixes:
Fixed error message panics
Fixed decimal parsing
Fixed version patching
Fixed CBOR Range encoding
Fixed bug with number ordering
Improvements:
Added DTrace profiling support
Newer patch available
Upgrade to 2.0.5
You are viewing the 2.0.2 changelog. A newer patch in this release line is available - we recommend running 2.0.5 for the latest fixes and improvements.
2.0.1
Released on Sep 18, 2024
Bug fixes:
Fixed infinite loop in parser
Newer patch available
Upgrade to 2.0.5
You are viewing the 2.0.1 changelog. A newer patch in this release line is available - we recommend running 2.0.5 for the latest fixes and improvements.
2.0.0
Released on Sep 17, 2024
After numerous alpha and beta releases over months of development, we are releasing SurrealDB v2.0.0! 🎉. The changes for this release pertain to those in between the final 2.0.0-beta-3 and other alpha versions.
NOTE: Because of changes in the underlying way SurrealDB stores data, steps are required to migrate to 2.0.0 from previous versions. Please use the following steps for any existing databases:
If you are moving from
1.xto2.x, use thesurreal fixcommand.
Features:
Added
DEFINE ACCESSstatement to grant access to resources.Deprecated
DEFINE SCOPEin favour ofDEFINE ACCESS ... TYPE RECORD.Deprecated
DEFINE TOKENin favour ofDEFINE ACCESS ... TYPE JWT.Deprecated
DEFINE TOKEN ON SCOPEin favour ofDEFINE ACCESS ... TYPE RECORD ... WITH JWT.Added customisable algorithm and key when issuing tokens for records users with the
WITH ISSUERclause.Added customisable token and session duration to
DEFINE USERandDEFINE ACCESS.Removed session expiration when not explicitly defined.
Changed the
INFOstatement to redact secrets defined viaDEFINE ACCESS.Changed HTTP request headers expected by SurrealDB to require the
surreal-prefix.Removed the
--authflag in the CLI to enable it by default. Added--unauthenticated.Removed the
--enable-auth-levelflag in CLI to enable the behaviour by default. Defaults to root.Changed authentication to expect level via the
--auth-levelflag orsurreal-auth-*headers.Changed the default
--bindaddress in the CLI from0.0.0.0to127.0.0.1.Added the
--no-identification-headersflag in the CLI to limit information leakage.Added
type::rangefunction.Added
TEMPFILESclause to theSELECTstatement.Introduce resource creation checks for
DEFINEstatement to avoid duplicates.Added string functions for IP
string::is::ip,string::is::ipv4,string::is::ipv6.Introduce resource creation checks for
DEFINEstatement to avoid duplicates.Added string functions for IP
string::is::ip,string::is::ipv4,string::is::ipv6.Added string functions for HTML:
string::html::encode,string::html::sanitize.Added new math functions:
math::acos,math::acot,math::asin,math::atan,math::clamp,math::cos,math::cot,math::deg2rad,math::lerp,math::lerpangle,math::ln,math::log,math::log2,math::log10,math::rad2deg,math::sign,math::sin,math::tan.Support batch import with
INSERTstatement. This also extends to relationships between tables using theINSERT RELATIONstatementImproved HNSW persistence
Added Range value support
Added ability to SELECT with version, CREATE with version and INSERT with version on SurrealKV
Added ENFORCED keyword to DEFINE TABLE
SCHEMAFULL tables are now TYPE NORMAL by default
Added literal types to the query language
Added the .chain() method
Added typed LET statements
Added typed function returns
Added record::exists() function
Added new functions
value::diff()andvalue:::patch()Array function changes and additions:
array::all(),array::any(),array::filter_index(),array::find_index()functions can now take a value or a closure. Also addedarray::filter()andarray::find()functions.Upgraded SurrealKV to v0.3
More flexible create API for Rust SDK
Indexing operators can now take expressions
Support for mixed number types on range queries
time::epoch constant now available
Method call syntax now works on integers
Improved GraphQL record fetching
Added
ALTER TABLEstatementMoved
AUTHENTICATEclause to the root ofDEFINE ACCESSstatement to allow the clause to be used in every access methodAdded
OVERWRITEclause for defined resourcesAdded
array::windows()functionAdded
string::is::recordfunctionAdded anonymous functions
Added typed function returns
Function return types now shown in
INFOstatementType
anycan now act as an optional typeAdded
time::is::leap_year()functionAdded environment variables to configure HTTP endpoint limits & JavaScript runtime limits
Introduced savepoint capabilities
Performance improvements:
Improvements to node membership processing and garbage collection
Improvements to select count table scan
Stabilise and use
parser2for parsing.KNN filtering with limit and KNN distance function.
Bug fixes:
Connection ID now stored inside session data
Fixed remote fields added to output result inside SELECT * queries
Fixed GHSA-gh9f-6xm2-c4j2: Improper Authentication when Changing Databases as Scope User
Fixes to issues with composite indexes
Fixed Redefining HNSW index error.
Fixed polygon serialisation.
Ensured the server shuts down properly
Removed unneeded return in matching
Disabled default audience validation for JWKS
Removed panic on invalid range scan
Added
tableto reserved keywordsConcurrent indexing no longer fails if record updated during build
Unreachable code now returns an error
DEFINE EVENTdefaults totruewhen no WHEN clause specifiedFixed bug in which
NONEandNULLboth < 1 and > 1Createon rpc which returned an array now returns an object. Similar change made to Rust SDKFixed GHSA-64f8-pjgr-9wmr: Untrusted Query Object Evaluation in RPC API
Fixed importing from
1.xDeprecated missing format inference on RPC protocol
Workflow improvements:
Added
surreal fixcommandImproved parser error type
Added Support for SurrealCS
Bumped async graphql version
Improved transparent API
API improvements:
Surrealkv API improvements:
Parser improvements:
Ensured UUIDs are parsed correctly
Breaking changes:
Functions
string::endsWith()andstring::startsWith()renamed tostring::ends_with()andstring::starts_with()Changed
UPDATEstatement behaviour of creating records in favour of newUPSERTstatement.
Experimental features:
Newer patch available
Upgrade to 2.0.5
You are viewing the 2.0.0 changelog. A newer patch in this release line is available - we recommend running 2.0.5 for the latest fixes and improvements.
Our newsletter
Get tutorials, AI agent recipes, webinars, and early product updates in your inbox every two weeks