Implement basic GraphQL endpoint with auth

This commit is contained in:
Valentin Tolmer
2021-08-26 09:52:56 +02:00
committed by nitnelave
parent be3e50d31a
commit a51965a61a
9 changed files with 637 additions and 21 deletions

172
Cargo.lock generated
View File

@@ -238,6 +238,23 @@ dependencies = [
"url",
]
[[package]]
name = "actix-web-actors"
version = "4.0.0-beta.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7db5c2c78a2606e6634abee4973a4924221cfab66e48f23844256e4fb8ce0f42"
dependencies = [
"actix",
"actix-codec",
"actix-http",
"actix-web",
"bytes",
"bytestring",
"futures-core",
"pin-project",
"tokio",
]
[[package]]
name = "actix-web-codegen"
version = "0.5.0-beta.3"
@@ -348,6 +365,12 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
[[package]]
name = "ascii"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e"
[[package]]
name = "askama_escape"
version = "0.10.1"
@@ -491,6 +514,23 @@ dependencies = [
"libc",
]
[[package]]
name = "bson"
version = "1.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "903a4f4c7aa97921f1703acac1fd524e9e082b3228edd34dde07758c0c92c672"
dependencies = [
"base64",
"chrono",
"hex",
"lazy_static",
"linked-hash-map",
"rand 0.7.3",
"serde",
"serde_json",
"uuid",
]
[[package]]
name = "build_const"
version = "0.2.2"
@@ -597,6 +637,19 @@ dependencies = [
"syn",
]
[[package]]
name = "combine"
version = "3.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680"
dependencies = [
"ascii",
"byteorder",
"either",
"memchr",
"unreachable",
]
[[package]]
name = "console_error_panic_hook"
version = "0.1.6"
@@ -838,6 +891,17 @@ dependencies = [
"syn",
]
[[package]]
name = "derive_utils"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "532b4c15dccee12c7044f1fcad956e98410860b22231e44a3b827464797ca7bf"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "difference"
version = "2.0.0"
@@ -1006,6 +1070,17 @@ version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1"
[[package]]
name = "futures-enum"
version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3422d14de7903a52e9dbc10ae05a7e14445ec61890100e098754e120b2bd7b1e"
dependencies = [
"derive_utils",
"quote",
"syn",
]
[[package]]
name = "futures-executor"
version = "0.3.15"
@@ -1167,6 +1242,16 @@ dependencies = [
"web-sys",
]
[[package]]
name = "graphql-parser"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1abd4ce5247dfc04a03ccde70f87a048458c9356c7e41d21ad8c407b3dde6f2"
dependencies = [
"combine",
"thiserror",
]
[[package]]
name = "h2"
version = "0.3.3"
@@ -1306,6 +1391,7 @@ checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3"
dependencies = [
"autocfg 1.0.1",
"hashbrown",
"serde",
]
[[package]]
@@ -1347,6 +1433,59 @@ dependencies = [
"wasm-bindgen",
]
[[package]]
name = "juniper"
version = "0.15.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "637ffa8a8d8a05aed3331449e311f145864adcd82442d82e54d0522decb7cecf"
dependencies = [
"async-trait",
"bson",
"chrono",
"fnv",
"futures",
"futures-enum",
"graphql-parser",
"indexmap",
"juniper_codegen",
"serde",
"smartstring",
"static_assertions",
"url",
"uuid",
]
[[package]]
name = "juniper_actix"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc44af18ae1f551076171e24eb453c52132a19c219d1f1a1c3068ab363b946b5"
dependencies = [
"actix",
"actix-http",
"actix-web",
"actix-web-actors",
"anyhow",
"futures",
"http",
"juniper",
"serde",
"serde_json",
"thiserror",
]
[[package]]
name = "juniper_codegen"
version = "0.15.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a040e09482a45e77dd2dafa0d9d2651d17faf0ac674da0c93eabc3075ee24997"
dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "jwt"
version = "0.13.0"
@@ -1435,6 +1574,12 @@ dependencies = [
"vcpkg",
]
[[package]]
name = "linked-hash-map"
version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
[[package]]
name = "lldap"
version = "0.1.0"
@@ -1460,6 +1605,8 @@ dependencies = [
"futures-util",
"hmac 0.10.1",
"http",
"juniper",
"juniper_actix",
"jwt",
"ldap3_server",
"lldap_model",
@@ -2400,6 +2547,7 @@ version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
dependencies = [
"indexmap",
"itoa",
"ryu",
"serde",
@@ -2490,6 +2638,15 @@ version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
[[package]]
name = "smartstring"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "31aa6a31c0c2b21327ce875f7e8952322acfcfd0c27569a6e18a647281352c9b"
dependencies = [
"static_assertions",
]
[[package]]
name = "socket2"
version = "0.4.0"
@@ -3097,6 +3254,15 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
[[package]]
name = "unreachable"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"
dependencies = [
"void",
]
[[package]]
name = "url"
version = "2.2.2"
@@ -3136,6 +3302,12 @@ version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
[[package]]
name = "void"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
[[package]]
name = "wasi"
version = "0.9.0+wasi-snapshot-preview1"