Commit graph

240 commits

Author SHA1 Message Date
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
Tobie Morgan Hitchcock
abd15ec55c Use Accept header on /import and /export HTTP routes
Closes #1245
2022-09-27 15:58:20 +01:00
Tobie Morgan Hitchcock
d8953ab7f8 Ensure HTTP session is not verified multiple times 2022-09-25 23:13:29 +01:00
Tobie Morgan Hitchcock
75d1e86990 Add DEFINE TOKEN … ON SCOPE … functionality
Closes #144
2022-09-25 22:58:38 +01:00
Tobie Morgan Hitchcock
0cb865dc44 Support different Content-Type outputs on /signup and /signin routes
Closes #1223
2022-09-25 13:05:56 +01:00
Tobie Morgan Hitchcock
2fccc87fab Don’t prettify empty responses in SQL REPL 2022-09-25 10:56:57 +01:00
Tobie Morgan Hitchcock
b9603aacab Improve HTTP error messages and status codes 2022-09-25 10:56:57 +01:00
Tobie Morgan Hitchcock
b4209180b6 Ensure server listents to SIGINT/SIGTERM signals
Closes #120
2022-09-22 03:01:11 +01:00
Tobie Morgan Hitchcock
ffeb56fc7e Redirect to temporary website holding page for app interface
Closes #219
2022-09-21 01:03:38 +01:00
Tobie Morgan Hitchcock
1dd08bedaa Handle errors properly when WebSocket client disconnects improperly
Closes #181
Closes #195
Closes #140
2022-09-20 23:04:40 +01:00
Tobie Morgan Hitchcock
d6b544771f Rename function for simplicity 2022-09-19 12:28:41 +01:00
Tobie Morgan Hitchcock
a7444a7c8e Add authentication token claims data to session object
Closes #135
2022-09-17 03:05:23 +01:00
Ryan Russell
b4b2ceb187
Make readability fixes to Rust code comments (#157) 2022-09-17 02:50:10 +01:00
Tobie Morgan Hitchcock
8403238dbb Use Accept header instead of Content-Type header for client content negotiation 2022-09-16 02:19:06 +01:00
Tobie Morgan Hitchcock
b2f4101a9c Improve HTTP request error messages
Closes #153
2022-09-16 00:41:16 +01:00
Tobie Morgan Hitchcock
23d1132526 Ignore blank/empty lines in SurrealDB SQL REPL
Closes #147
2022-09-15 00:39:25 +01:00
Tobie Morgan Hitchcock
74c3b6d708 Don’t automatically unwrap errors when sending on WebSocket
Closes #140
2022-09-13 21:50:04 +01:00
Tobie Morgan Hitchcock
498b0a4530 Fix linting errors 2022-09-10 06:11:56 +01:00
Tobie Morgan Hitchcock
eba00bbca3 Add debug logging for authentication attempts 2022-09-10 05:44:45 +01:00
Tobie Morgan Hitchcock
d20851325b Allow uppercase or lowercase keys in JWT authentication tokens 2022-09-10 05:43:50 +01:00
Tobie Morgan Hitchcock
6f0ff853f8 Ensure session data is stored on the session after signup/signin 2022-09-05 00:53:35 +01:00
Tobie Morgan Hitchcock
5ca3b74e59 Add HTTP /health endpoint for checking database and datastore status
Closes #56
2022-09-01 00:28:43 +01:00
Michael Delaney
960061584d
Add support for specifying database path using env variable DB_PATH (#78) 2022-08-31 14:03:11 +01:00
Tobie Morgan Hitchcock
cdf244f0f5 Simplify command line argument verification code 2022-08-29 13:02:20 +01:00
Tobie Morgan Hitchcock
65d91b122e Add support for simpler datastore paths 2022-08-29 12:30:00 +01:00
Tobie Morgan Hitchcock
69c166fd8e Only send NS and DB header in SQL REPL requests if specified 2022-08-26 23:16:13 +01:00
clawcastle
2bfcb9d694
Make --ns and --db arguments optional in command-line REPL (#63)
Closes #34
2022-08-26 21:51:44 +01:00
Tobie Morgan Hitchcock
e5a78bed06 Allow root authentication over WebSocket connection 2022-08-23 23:44:13 +01:00
Kian-Meng Ang
40157f6170
Fix typos (#42)
Found via `codespell -L crate,inout,ser,fetchs,te,tre,whats`.
2022-08-21 13:13:38 +01:00
Tobie Morgan Hitchcock
b8c793f7a4 Only log successful startup after server binds to desired port 2022-08-17 22:45:31 +01:00
Yusuke Kuoka
1d3880d652
Initial implementation of SurrealDB KVS for FoundationDB (#37)
Referenced in discussion #25 

Closes #38
2022-08-15 19:35:41 +01:00
Tobie Morgan Hitchcock
70a6c5a1ee Enable server configuration to be setup with environment variables 2022-08-12 21:21:32 +01:00
Tobie Morgan Hitchcock
653ced7d58 When enabled, log the root authentication username 2022-08-12 16:33:15 +01:00
Tobie Morgan Hitchcock
9ed50a9514 Add command-line SurrealQL REPL 2022-08-06 13:13:14 +01:00
Tobie Morgan Hitchcock
0043e38bef Add —host command-line option as an alias of —conn 2022-08-06 11:34:17 +01:00
Tobie Morgan Hitchcock
f535501ec2 Improve CLI command descriptions 2022-07-30 22:56:54 +01:00
Tobie Morgan Hitchcock
58698f58fe Update default endpoint for import/export requests 2022-07-29 10:39:49 +01:00
Tobie Morgan Hitchcock
fc68e59644 Simplify import / export response streaming 2022-07-29 10:37:12 +01:00
Tobie Morgan Hitchcock
d67e231431 Ensure NS+DB values are required on export CLI command 2022-07-29 10:36:54 +01:00
Tobie Morgan Hitchcock
c0d851751b Ensure NS+DB values are required on import CLI command 2022-07-29 10:36:49 +01:00
Tobie Morgan Hitchcock
f46acec96f Ensure error is returned when NS/DB header are not present 2022-07-29 10:35:15 +01:00
Tobie Morgan Hitchcock
2646ea119e Temporarily disable HTTP response compression
Disable response compression until `Accept-Encoding` headers are properly evaluated, and the compression can be chosen based on the HTTP request. This relies on https://github.com/seanmonstar/warp/pull/513 being implemented.
2022-07-29 10:33:49 +01:00
Tobie Morgan Hitchcock
d619633340 Enable new database strict mode configuration 2022-07-27 18:20:04 +01:00
Tobie Morgan Hitchcock
7777e3bccd Log a message on startup with root authentication info
Closes #11
2022-07-24 01:15:26 +01:00
Tobie Morgan Hitchcock
960a5a768b Disable root authentication when no password is set
Closes #10
2022-07-24 01:15:26 +01:00
Tobie Morgan Hitchcock
db2208a33a Store all macros in a separate module 2022-07-24 01:15:26 +01:00
Tobie Morgan Hitchcock
428fcf697a Ensure CORS headers are set on failed HTTP responses
Closes #6
2022-07-24 01:15:26 +01:00
Tobie Morgan Hitchcock
05cf6960c2 Set correct description for ‘—log’ command argument 2022-07-19 23:27:06 +01:00
Tobie Morgan Hitchcock
e1c6245151 Use new ‘—log’ command argument to specify server log level 2022-07-19 13:39:35 +01:00
Tobie Morgan Hitchcock
91b8baff3d Set default logging level for import/export/backup commands 2022-07-19 12:58:19 +01:00
Tobie Morgan Hitchcock
7860a205db Use configuration constants in version cli command 2022-07-19 12:54:50 +01:00
Tobie Morgan Hitchcock
a2619a8d72 Don’t show default random password in command-line help 2022-07-19 12:29:43 +01:00
Tobie Morgan Hitchcock
81bad3211d Improve command-line logging 2022-07-19 09:28:24 +01:00
Tobie Morgan Hitchcock
4468e10bd1 Change the default port to 8000 2022-07-18 18:49:43 +01:00
Tobie Morgan Hitchcock
d425f67a8b Allow NULL and missing values in RPC query method 2022-07-08 21:56:04 +01:00
Tobie Morgan Hitchcock
11a3911f70 Add RPC let’ command as a duplicate of ‘set’ command 2022-07-08 21:55:44 +01:00
Tobie Morgan Hitchcock
3c7bd098f3 Enable concurrent requests in WebSocket RPC Server 2022-07-07 11:25:22 +01:00
Tobie Morgan Hitchcock
4438415b55 Fix error in RPC Modify method query 2022-07-07 11:22:41 +01:00
Tobie Morgan Hitchcock
508538e0cc Add initial WebSocket JSON RPC implementation 2022-07-04 02:32:26 +01:00
Tobie Morgan Hitchcock
410295c800 Improve map! macro to allow extending the map with other map 2022-07-04 02:02:03 +01:00
Tobie Morgan Hitchcock
983a7b3f5c Add mrg! macro for merging Maps together 2022-07-04 02:02:03 +01:00
Tobie Morgan Hitchcock
7bb4aa74f3 Move authentication code to separate module 2022-07-04 01:46:09 +01:00
Tobie Morgan Hitchcock
187d9c08dc Allow ‘application/octet-stream’ content-type when importing 2022-07-04 01:25:35 +01:00
Tobie Morgan Hitchcock
d04db02ee0 Add introductory message to command-line app 2022-06-28 11:54:04 +01:00
Tobie Morgan Hitchcock
eff4d2c5e9 Implement scope signup and signin functionality 2022-06-20 12:29:06 +01:00
Tobie Morgan Hitchcock
b4e2082196 Use BTreeMap for database execution variables 2022-06-20 02:13:28 +01:00
Tobie Morgan Hitchcock
52e8954ae4 Ensure library works in multi-threaded and single-threaded environments 2022-05-16 00:04:11 +01:00
Tobie Morgan Hitchcock
f414198fad Only begin a transaction if needed for authentication 2022-05-13 22:07:56 +01:00
Tobie Morgan Hitchcock
7bd5802e99 Remove tokio as a dependency
Closes SUR-102
2022-05-13 21:57:40 +01:00
Tobie Morgan Hitchcock
e4619be89a Implement WebSocket queries for /sql endpoint 2022-05-11 22:34:28 +01:00
Tobie Morgan Hitchcock
d29961ee19 Ensure Errors can be converted into Strings 2022-05-11 21:43:11 +01:00
Tobie Morgan Hitchcock
f5687abeab Add documentation comments to main binary package 2022-05-11 15:23:15 +01:00
Tobie Morgan Hitchcock
17e8ea55b5 Implement SQL database exporting and importing 2022-05-11 15:23:15 +01:00
Tobie Morgan Hitchcock
3498e57e04 Implement web authentication session validation 2022-05-11 15:23:15 +01:00
Tobie Morgan Hitchcock
d761a6df47 Add TLS support to SurrealDB server 2022-05-11 15:23:08 +01:00
Tobie Morgan Hitchcock
ba7c31e2dc Improve server configuration parsing and option storage 2022-05-11 15:23:08 +01:00
Tobie Morgan Hitchcock
69b18cc659 Change content length limits of http routes 2022-05-11 15:23:08 +01:00
Tobie Morgan Hitchcock
f7b82bc7bd When unset, ensure default root password in randomised 2022-05-07 16:11:19 +01:00
Tobie Morgan Hitchcock
0ff3d0f7d0 Remove auth CLI argument and use user + pass instead 2022-05-07 15:13:58 +01:00
Tobie Morgan Hitchcock
ffc3ed82f7 Simplify external API when working with Datastore 2022-05-04 00:07:46 +01:00
Tobie Morgan Hitchcock
7e2eae32c5 Ensure query auth level checks are logically correct 2022-04-01 00:36:23 +01:00
Tobie Morgan Hitchcock
b3c4f982ec Fix clippy lint errors 2022-03-25 20:31:45 +00:00
Tobie Morgan Hitchcock
7e4bf91a48 Forbid all usage of unsafe code 2022-03-23 15:12:29 +00:00
Tobie Morgan Hitchcock
2a0d46a2b6 Remove unused macros 2022-03-07 18:14:42 +00:00
Tobie Morgan Hitchcock
d1c2daaee4 Apply cargo clippy lint recommendations 2022-03-05 14:42:58 +00:00
Tobie Morgan Hitchcock
d5c53b7791 Extract core surrealdb code into separate library 2022-02-22 14:16:50 +00:00
Tobie Morgan Hitchcock
12aea63928 Use trice instead of std::time for performance measurement 2022-02-19 23:30:43 +00:00
Tobie Morgan Hitchcock
222e417c79 Change method argument names 2022-02-19 23:09:23 +00:00
Tobie Morgan Hitchcock
8a08de951e Ensure session auth data is passed to executor options 2022-02-18 19:09:00 +00:00
Tobie Morgan Hitchcock
691d6ac895 Move byte formatting macro to macro module 2022-02-17 08:05:25 +00:00
Tobie Morgan Hitchcock
10a76ec3a1 Inject datastore instance instead of globally instantiated instance 2022-02-17 08:04:08 +00:00
Tobie Morgan Hitchcock
b98986fa12 Remove unnecessary 'anyhow' crate 2022-02-16 23:45:23 +00:00
Tobie Morgan Hitchcock
a5c1d95a64 Add initial implementation for parallel execution 2022-02-15 03:40:01 +00:00
Tobie Morgan Hitchcock
36d114be55 Simplify module import statements 2022-02-15 03:34:57 +00:00
Tobie Morgan Hitchcock
f22352aee6 Switch to asynchronous owned mutex locks in underlying kv storage 2022-02-15 03:33:16 +00:00
Tobie Morgan Hitchcock
efa67bb043 Only pass transaction when processing queries
Instead of passing the executor instance, we only need to pass the current transaction which is to be used for processing and running any queries.
2022-02-15 01:05:39 +00:00
Tobie Morgan Hitchcock
acc466c360 Remove unnecessary imports 2022-02-15 00:15:53 +00:00