Commit graph

436 commits

Author SHA1 Message Date
Micha de Vries
e19334f53c
Add X-Forwarded-For Client-IP header (#2600) 2023-09-04 11:10:59 +00:00
Tobie Morgan Hitchcock
8b6af2a562
Ensure transactions are handled properly (#2585) 2023-09-02 22:22:41 +01:00
Tobie Morgan Hitchcock
c07f9c131b
Remove RPC diff and use third argument in RPC patch method (#2565) 2023-09-01 10:38:19 +01:00
Tobie Morgan Hitchcock
efa7a14964
Add diff RPC method to WebSocket API (#2560) 2023-09-01 08:00:32 +01:00
Rushmore Mushambi
742a353a8f
Refactor and improve Surreal::export (#2555) 2023-08-31 19:44:18 +00:00
Tobie Morgan Hitchcock
fc7f5cb0b0
Support variable field projection with type::field() and type::fields() (#2552) 2023-08-31 13:06:10 +01:00
Salvador Girones Gil
b56e13bd05
[capabilities] Enable all capabilities for the sql and import cmds (#2548) 2023-08-30 20:34:46 +00:00
Salvador Girones Gil
bdac1fae72
[security] Introduce "allow-guests". Deny all caps by default (#2547) 2023-08-30 18:01:30 +00:00
Salvador Girones Gil
e2cc94b2ad
[tracing] Fix the WS spans (#2540) 2023-08-29 13:04:53 +01:00
Rushmore Mushambi
6cb12db82b
Make patch return the patched record (#2530) 2023-08-27 19:28:38 +01:00
Tobie Morgan Hitchcock
a31d25d3c5
Support arbitrary number of arrays in array::concat() (#2526) 2023-08-27 11:40:49 +01:00
Salvador Girones Gil
b5b6f6f1d4
[security] Introduce the Datastore capabilities (#2489) 2023-08-23 20:26:31 +01:00
Rushmore Mushambi
9d89fa0d56
Simplify connect parameters (#2488) 2023-08-22 09:23:49 +00:00
Yusuke Kuoka
d52784f953
Fix Ctrl-C to work for node and telemetry (#2476) 2023-08-21 12:35:34 +01:00
Przemyslaw Hugh Kaznowski
ce6cfb7634
GC live queries when client disconnects (#2255) 2023-08-19 10:01:37 +01:00
Rushmore Mushambi
f16ec7f894
Add a Value::Query variant (#2460) 2023-08-18 23:51:56 +01:00
Przemyslaw Hugh Kaznowski
60b6cc6c75
Test for kill ws (#2407)
Co-authored-by: Salvador Girones <salvadorgirones@gmail.com>
2023-08-18 15:21:01 +00:00
Salvador Girones Gil
3b26ad2a44
[rpc] Add WebSocket metrics (#2413) 2023-08-16 13:27:53 +01:00
Yusuke Kuoka
ceb603ee33
Fix CF GC / node::init to actuallly run on start (#2403) 2023-08-11 09:42:08 +00:00
Rushmore Mushambi
61f4580ba8
Switch to std::sync::OnceLock and fix Surreal::clone (#2370) 2023-08-10 06:33:38 +00:00
Przemyslaw Hugh Kaznowski
87705098ab
Change kill id type to value (#2402)
Co-authored-by: Tobie Morgan Hitchcock <tobie@surrealdb.com>
2023-08-08 17:15:01 +00:00
Przemyslaw Hugh Kaznowski
abbf9819c4
Add tests for Live Queries over web sockets (#2382)
Co-authored-by: Salvador Girones <salvadorgirones@gmail.com>
Co-authored-by: Tobie Morgan Hitchcock <tobie@surrealdb.com>
2023-08-04 17:43:23 +00:00
Salvador Girones Gil
e91011cc78
[rpc] Better tracing for WebSockets (#2325) 2023-08-03 14:59:05 +00:00
Salvador Girones Gil
ab72923fb5
[import] Provide descriptive error messages (#2377) 2023-08-03 14:06:08 +00:00
Ayushman Singh Chauhan
f1df36c0d4
📜docs: Fix Typo (#2357) 2023-07-29 20:26:58 +00:00
Salvador Girones Gil
998b263517
[iam] RBAC and multiple root users (#2176)
Co-authored-by: Przemyslaw Hugh Kaznowski <hughkaznowski@protonmail.com>
Co-authored-by: Tobie Morgan Hitchcock <tobie@surrealdb.com>
2023-07-29 18:47:25 +00:00
Yusuke Kuoka
860796ba86
Add Change Feeds GC (#2339) 2023-07-29 08:51:30 +00:00
Tobie Morgan Hitchcock
773cb5f130
Add insert method to WebSocket RPC endpoint (#2296) 2023-07-20 09:19:36 +00:00
Tobie Morgan Hitchcock
09dde86e73
Allow for DIFFs in notifications for simple live queries (#2290) 2023-07-19 16:19:19 +00:00
Salvador Girones Gil
53702c247a
[metrics] HTTP Layer + move to Axum (#2237) 2023-07-19 14:35:56 +00:00
Przemyslaw Hugh Kaznowski
ac213d69bb
Sur 191 self garbage collection 2 (#2137)
Co-authored-by: Tobie Morgan Hitchcock <tobie@surrealdb.com>
2023-07-13 13:44:54 +00:00
David Bottiau
676327f781
feat(cli): add validate command (#2241) 2023-07-10 08:36:35 +00:00
Tobie Morgan Hitchcock
ea76b01ce4
Minor improvements to live queries (#2230) 2023-07-07 20:05:58 +01:00
CJ
cfdb514a8b
[feat] query and print remote database version along with CLI version… (#2225) 2023-07-06 21:09:13 +00:00
Tobie Morgan Hitchcock
4b690c763b
Improve datastore configuration options (#2227) 2023-07-05 21:26:13 +00:00
Rushmore Mushambi
20ee2f1dc6
Remove manual log targets (#2214) 2023-07-04 21:02:10 +00:00
Rushmore Mushambi
17455a4c24
Ensure use is not sent to the server on each request (#2218) 2023-07-04 20:58:27 +00:00
Ibrahim hamzat
e0fc0c1993
(feat): Modify import command conn arg to classical local (#2217) 2023-07-04 20:43:37 +00:00
Rushmore Mushambi
19c29ee696
Add a has-storage private feature (#2213) 2023-07-04 11:25:59 +01:00
Rushmore Mushambi
9d680e780e
Remove unused dependencies (#2209) 2023-07-03 20:23:52 +00:00
Rushmore Mushambi
b983ea5c93
Fix building surreal with no default features (#2210) 2023-07-03 21:23:18 +01:00
Tobie Morgan Hitchcock
55918b7c0e
Switch to bincode serialization (#2134)
Co-authored-by: Rushmore Mushambi <rushmore@surrealdb.com>
2023-07-01 20:09:15 +01:00
Przemyslaw Hugh Kaznowski
64adb2e913
Rebased live query changes (#2136) 2023-06-20 23:50:26 +01:00
Tobie Morgan Hitchcock
a1b1fead7b
Ensure formatting and linting are properly checked (#2154) 2023-06-19 22:35:19 +00:00
Finn Bear
5c07a7b2d4
Security - Add global query timeouts (attempt 2). (#2097) 2023-06-12 12:23:30 +01:00
Tobie Morgan Hitchcock
a6e1bacee0
Add more tests for all key-value storage engines (#2124) 2023-06-10 20:30:37 +00:00
Rushmore Mushambi
409ad61477
Add authentication support for local engines (#1908) 2023-06-09 13:45:07 +00:00
Finn Bear
2237afb21a
Feature #1357 - add upgrade CLI. (#2102) 2023-06-08 20:57:02 +00:00
Finn Bear
de016af929
Feature - Detect real IP of client using new config option (#2100) 2023-06-06 06:31:45 +00:00
Tobie Morgan Hitchcock
f5f10d508f
Improve type casting support (#2083)
Co-authored-by: Finn Bear <finnbearlabs@gmail.com>
2023-06-06 06:12:59 +00:00
Przemyslaw Hugh Kaznowski
8c6c5a5e37
Change notification type from sql::Uuid to uuid::Uuid (#2079) 2023-05-31 22:40:24 +00:00
Tobie Morgan Hitchcock
3900bfa737
Add SpeeDB storage engine implementation (#2076) 2023-05-31 12:35:41 +00:00
Finn Bear
a9bf907432
Feature #2023 - CLI --json output. (#2075) 2023-05-31 07:36:50 +00:00
Finn Bear
aa9f560829
Bugfix - make NS, DB optional in sql cli. (#2046) 2023-05-26 11:35:46 +01:00
Finn Bear
33c35949b7
Bugfix - CLI show results despite errors in multistatement query. (#2040) 2023-05-23 23:10:37 +01:00
hchockarprasad
53d8e9c628
Make client error serializable (#1992) 2023-05-22 21:02:48 +01:00
Finn Bear
cdf97fcb96
Upgrade to clap v4 (#2015)
Co-authored-by: Steve Fan <29133953+stevefan1999-personal@users.noreply.github.com>
2023-05-22 20:19:35 +01:00
Tobie Morgan Hitchcock
8780bbda9c
Improve CLI SQL input with empty input (#1981) 2023-05-12 17:09:07 -04:00
Finn Bear
875f92415b
Feature 1827 - query CLI line continuation (#1968) 2023-05-12 15:47:41 -04:00
Rushmore Mushambi
af85d6d831
Ensure TLS certs exist (#1967) 2023-05-10 17:10:50 -04:00
Finn Bear
3d76645908
Bugfix #1946 - allow 4X deeper computation by default, make limit configurable (#1950) 2023-05-09 07:37:07 +01:00
Tobie Morgan Hitchcock
591634e049
Ensure HTTP REST API responses are simplified when serialized (#1924) 2023-05-05 19:54:49 +01:00
Rushmore Mushambi
107e5b5dba
Support switching namespaces and databases separately (#1927) 2023-05-05 19:12:19 +01:00
Tobie Morgan Hitchcock
bcbd5f3e6e
Add PUT & PATCH methods for updating and merging in the HTTP REST API (#1923) 2023-05-04 21:42:02 +01:00
Rushmore Mushambi
c3c6613e7a
Fix simple ID serialisation in the WebSocket protocol (#1900) 2023-05-02 12:17:27 +01:00
Rushmore Mushambi
91e949248d
Unify serialisation (#1881) 2023-04-29 16:58:22 +01:00
Tobie Morgan Hitchcock
66b105dac0
Add support for stricter typings (#1861)
Co-authored-by: Rushmore Mushambi <rushmore@surrealdb.com>
2023-04-25 11:13:04 +01:00
Rushmore Mushambi
1fc802717d
Remove a redundant health check from the isready command (#1849) 2023-04-24 10:50:03 +01:00
Rushmore Mushambi
78625bc7a1
Bypass deserialisation for sql::Values on Response::take (#1834) 2023-04-20 19:20:50 +01:00
Finn Bear
c9a9336fdc
Improve performance and security of simple JSON parser (#1813) 2023-04-17 15:39:37 +01:00
Rushmore Mushambi
1aac97f0da
Print a newline after each query response in the sql shell (#1798) 2023-04-14 19:41:37 +01:00
Tobie Morgan Hitchcock
2a797f6f3b Add WebSocket id to Open Telemetry tracing 2023-04-14 16:51:15 +01:00
Tobie Morgan Hitchcock
45094c76ce Use custom serialization format 2023-03-31 23:49:52 +01:00
Rushmore Mushambi
179878d672
Add compile-time guarantees to make Surreal::delete safer (#1753) 2023-03-31 23:49:29 +01:00
Tobie Morgan Hitchcock
725b03729b Enable full-type serialisation on HTTP import route 2023-03-31 15:31:24 +01:00
Diptesh Choudhuri
494203d358
Allow exporting to stdout (#1701) 2023-03-30 19:13:26 +01:00
Rushmore Mushambi
3e80aa9914
Implement to_value for sql::Value (#1659)
`sql::Value` is an integral part of `surrealdb`. It's the internal type used by our storage layer. Because of this, we do a lot of converting between this type and native Rust types. Currently this conversion is done through `JSON` using the `serde_json` crate because we do not have our own custom data format implementation. This works because `SQL` is a superset of `JSON`.  This, however, means that this conversion is lossy and can cause surprises in some cases. For example expecting record IDs to be deserialized into a `String` instead of its corresponding Rust native type.

This change implements a custom data format around `sql::Value` and introduces a `to_value` function that facilitates that conversion.
2023-03-30 11:41:44 +01:00
Tobie Morgan Hitchcock
e0cad89a8c Improve error logging within CLI tool 2023-03-29 19:19:46 +01:00
Salvador Girones Gil
565717659a
Add functionality for open telemetry tracing (#1727) 2023-03-29 19:16:18 +01:00
Tobie Morgan Hitchcock
0c95126573 Add support for full binary serialization on HTTP endpoints 2023-03-27 13:52:28 +01:00
Tobie Morgan Hitchcock
2769033451 Update 3rd party dependencies 2023-03-25 20:49:00 +00:00
Emmanuel Keller
19c287a011
Implement transaction debug tracing (#1668) 2023-03-16 09:11:30 -04:00
Tobie Morgan Hitchcock
a8df2b6a6f Allow any Value in arguments to RPC use method 2023-03-07 09:55:35 +00:00
Tobie Morgan Hitchcock
7dcb0f83fa Add trace logging to WebSocket implementation 2023-03-07 09:54:58 +00:00
Tobie Morgan Hitchcock
d1558a63ad Use string formatting for SQL output in CLI
Related to #246
2023-03-07 09:54:58 +00:00
Igor Morozov
b10beda30c
Add isready CLI command for checking server health (#1679) 2023-03-07 09:53:56 +00:00
Tobie Morgan Hitchcock
454612487a Allow sending Table type for LIVE query RPC method 2023-02-14 11:01:31 +00:00
Tobie Morgan Hitchcock
5d55f28b98 Fix linting warning 2023-02-13 16:05:02 +00:00
Tobie Morgan Hitchcock
efbc5d3219 Add all WebSockets to a global collection 2023-02-13 12:20:13 +00:00
Tobie Morgan Hitchcock
ac9a574c00 Simplify passing of authentication tokens to client 2023-02-11 15:56:14 +00:00
Tobie Morgan Hitchcock
3f0afd9d72 Fix base64 authentication decoding support
Closes #1625
2023-02-09 10:54:52 +00:00
Tobie Morgan Hitchcock
c90ff5f5d1 Listen to different OS signals on Windows and Unix 2023-02-08 13:19:08 +00:00
Salvador Girones Gil
15f7fb3eee
Ensure SurrealDB listens to SIGTERM/SIGINT signals and quits gracefully (#1639) 2023-02-05 21:03:21 +00:00
Tobie Morgan Hitchcock
84b026679f Update clippy linting tests 2023-02-03 11:47:07 +00:00
Tobie Morgan Hitchcock
cf11eb7f54 Add clippy::mem_forget denial rule 2023-02-03 11:46:39 +00:00
Tobie Morgan Hitchcock
9282feac1f Allow empty params object from text-based WebSocket clients
Closes #1610
2023-01-20 00:54:33 +00:00
Tobie Morgan Hitchcock
0e70e515be Fix base64 authentication token decoding 2023-01-18 00:08:39 +00:00
Tobie Morgan Hitchcock
7682a97a33 Decode urlencoded path parameters automatically
Closes #1396
2023-01-17 14:10:21 +00:00
Tobie Morgan Hitchcock
8f89f8729c Update 3rd party dependencies
Closes #1593
2023-01-17 09:00:30 +00:00
Rushmore Mushambi
af88fcef38
Make cli::sql default to using a WebSocket connection (#1592) 2023-01-11 13:47:21 +00:00
Rushmore Mushambi
953a2008e2
Rename the engines module to engine (#1576) 2023-01-07 08:32:18 +00:00
Rushmore Mushambi
b3d9ce2c68
Ensure CLI exits with non-zero code on errors (#1567) 2022-12-31 08:03:19 +00:00
Rushmore Mushambi
f1b6c44603
Use new client library in CLI import command (#1566) 2022-12-31 08:02:53 +00:00
Rushmore Mushambi
a908d6dd10
Use new client library in CLI export command (#1565) 2022-12-31 08:02:41 +00:00
Rushmore Mushambi
a24bb4f4b8
Allow memory as an address endpoint in CLI sql command (#1563) 2022-12-30 23:53:45 +00:00
Rushmore Mushambi
7c199ff586
Use new client library in CLI sql command (#1561) 2022-12-30 21:27:19 +00:00
Rushmore Mushambi
c2dce39f91
Integrate client library into surrealdb crate (#1514) 2022-12-30 08:23:19 +00:00
Michal Jirman
157f7c8abe
Add CLI option flag to disable banner (#1537) 2022-12-21 11:42:59 +00:00
Tobie Morgan Hitchcock
44c3f32f69 Fix clippy linting warnings 2022-12-20 10:30:40 +00:00
Tobie Morgan Hitchcock
4067efd1e8 Add a user-agent header to CLI HTTP requests 2022-12-20 10:30:06 +00:00
George
a2038f239b
Fix future clippy linting warnings (#1423) 2022-12-18 16:00:36 +00:00
Rinat Shay
ad004999a8
Use temporary HTTP redirect instead of permanent (#1517) 2022-12-09 16:48:54 +00:00
Tobie Morgan Hitchcock
406e277c3b Ensure crate builds with no-default-features 2022-12-07 19:30:29 +00:00
CelebrateVC
f0745386cf
Improve code comments for documentation (#1476) 2022-11-23 09:42:59 +00:00
Igor Morozov
ddaea59d05
Improve error messages for CLI import/export (#1455) 2022-11-23 09:35:29 +00:00
Tobie Morgan Hitchcock
4b14837009 Fix clippy lint warnings 2022-11-23 09:09:24 +00:00
Finn Bear
ff65ef56fc
Don't panic on invalid UTF-8 in web requests (#1422) 2022-10-30 23:28:57 +00:00
Tobie Morgan Hitchcock
c12a1cc1fa Fix typo in code comments 2022-10-30 01:32:27 +00:00
Rushmore Mushambi
12ded8b066
Log version when starting the server (#1358) 2022-10-27 01:58:08 -07:00
Tobie Morgan Hitchcock
f32fb516eb Rearrange code order 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
a074dc9af5 Add suport for WebSocket RPC binary protocol 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
ab4c85bf5d Return a single record when requesting a single record with WebSocket 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
05485406c4 Add support for more input types in WebSocket RPC methods 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
e03f7e00db Add alias for WebSocket RPC method ‘modify’ to ‘patch’ 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
1015a948fd Add alias for WebSocket RPC method ‘change’ to ‘merge’ 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
926356d23b Don’t allow WebSocket RPC authenticate method to be called with no token value 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
d2e7a8532d Don’t respond with an id if none was specified in the WebSocket RPC query 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
df8f297221 Add WebSocket RPC unset method for clearing a parameter 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
70a263f799 Add code comments to WebSocket RPC methods 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
a0d86248e2 Enable different output serialization formats in WebSocket RPC 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
d12384f3fb Change method signature for converting strings to table names 2022-10-25 06:40:23 -07:00
Tobie Morgan Hitchcock
3cbb5eed78 Allow datetimes as an id parameter in the WebSocket RPC message 2022-10-25 06:06:02 -07:00
Tobie Morgan Hitchcock
6ff1e250de Add improved handling of different WebSocket message types 2022-10-19 23:57:05 +01:00
Rushmore Mushambi
f0eaf2bd19
Improve RPC method return types (#1384) 2022-10-19 23:54:41 +01:00
Tobie Morgan Hitchcock
c098fe3380 Respond to WebSocket ping messages with a pong message 2022-10-19 21:11:15 +01:00
Tobie Morgan Hitchcock
1becd3ab55 Don’t throw an RPC Error when no params key is specified 2022-10-19 18:57:03 +01:00
Tobie Morgan Hitchcock
65f8194a1f Fix code linting warnings 2022-10-19 15:35:42 +01:00
Tobie Morgan Hitchcock
18d69a620c Add WebSocket ping->pong message ticker 2022-10-19 14:56:43 +01:00
Tobie Morgan Hitchcock
7ed0af4750 Add support for SQL parameters in HTTP REST endpoints 2022-10-17 02:00:15 +01:00
Tobie Morgan Hitchcock
810e174c63 Code tidy up 2022-10-16 23:20:57 +01:00
Tobie Morgan Hitchcock
264f208379 Change the log identifier for web requests 2022-10-16 17:36:07 +01:00
Tobie Morgan Hitchcock
f31b7d7d17 Allow number values for JSON RPC id field 2022-10-16 17:36:07 +01:00
Tobie Morgan Hitchcock
9546b07d71 Add version method to HTTP RPC endpoint 2022-10-16 17:36:07 +01:00
Tobie Morgan Hitchcock
90a5e82e72 ENsure session is completely clearer when invalidated
Closes #1314
2022-10-04 22:26:03 +01:00
Tobie Morgan Hitchcock
d8c7efefd4 Ensure integer Record IDs are treated correctly in HTTP REST endpoints
Closes #1281
2022-10-01 15:50:39 +01:00
Tobie Morgan Hitchcock
711df70bb9 Allow namespaced claim aliases in JWT token
Closes #1269
Closes #1268
2022-09-29 07:54:48 +01:00
Rushmore Mushambi
bcac94f9d6
Add additional build metadata to version identifier (#1254) 2022-09-28 20:13:40 +01:00
Tobie Morgan Hitchcock
a96c6ff8ca Allow authentication token to be verified with or without Bearer or Basic prefix 2022-09-28 01:19:18 +01:00
Tobie Morgan Hitchcock
a82e45f461 Enable more customisable JWT verification
Closes #1244
2022-09-27 22:07:41 +01:00
Rushmore Mushambi
c064890284
Fix the build (#1248) 2022-09-27 16:35:03 +01:00