From e6d3329f6f72fd39c998bd73f8ef95f59dbf8371 Mon Sep 17 00:00:00 2001 From: Philippe Loctaux Date: Wed, 15 Nov 2023 20:10:40 +0100 Subject: [PATCH 01/10] sqlx v0.7.x --- Cargo.lock | 642 ++--- Cargo.toml | 2 +- ...1be5d26cb26924d53dc5a68ee4ea48d6bbbfd.json | 12 + ...4df7006c1fde2faaca0f7952a009d6cda90a3.json | 12 + ...3b4c594f373084c73000bc7865a280df74fdd.json | 62 + ...ae5c3f58b57b222ba4333216b5c50c3c58c71.json | 12 + ...01361b6f97c552d6af8477da12cddb03d4865.json | 12 + ...25fd68743ae30d1ec0b0ca5c7dfc367fdf357.json | 12 + ...0c1bf690f40b6cc6ec5f008eb0e928f376659.json | 12 + ...1591e0f35eab7211692bcde8230c68e4cedf3.json | 12 + ...5bd8ee5d50331d94abeee076ae4db46215a56.json | 98 + ...488e75d20c1c436a3ba2c5aa3f54da62fe861.json | 62 + ...cb320fb51fd2e53ed25054d24e9801df0c358.json | 12 + ...60da940bdab3c87690ee42569ae3da1a8e791.json | 12 + ...202be5129c74a5569b2dc7bf95761fe09a6a3.json | 32 + ...5eebd144cf020e9230d154e9e4d0c8d6e01ca.json | 12 + ...a3b89948ee6ac5116e442faef8512c1a615c0.json | 12 + ...15a0092355e120c5cbe006c877afdfc4a4e8c.json | 12 + ...202be315c42dfc820d3c37bba498b1b783811.json | 98 + ...4c7d0ce930da5d841b9d788a9c0e84b580bc6.json | 44 + ...3d1477ad7e4e983b61ede013e5b066940eb5c.json | 12 + ...1a89d96383e28b15186576f90ff59f309196c.json | 12 + ...f07d2c863a93fff693aec1b47378c44bf77de.json | 38 + ...d1592cbc5180abbba6d5abd44326bf0862669.json | 44 + ...c50676ec21cf94e2e50e18f9279c91e6b85c8.json | 12 + ...e85c5a012d71cd745494049a8d9bebab3ed61.json | 12 + ...daf48204274ab62d73ec8968bcd0c7568b157.json | 12 + ...8b4ac09c371af689c444eb439a37f91ecf7a5.json | 12 + ...3b87de0dcb78316628d48f0e6efc0f8103040.json | 12 + ...8f999fc55a6fb8ad4abe7af89ec52e0d10a0e.json | 12 + ...7f3109a07a1ca193cb3082d13687af65c6de0.json | 12 + ...f599728b74e545df3e986e3e7e66882f73ba0.json | 98 + ...dbccc0dd4d12ebcb933024d9867f07bba3eb8.json | 32 + ...302731b3ff82da99ba7771c2728d88aee642a.json | 12 + ...cc25482cef1a57ba4c467fa0bc0fdf25bf39c.json | 12 + ...9754908b1c173e9dce383663d723891a89cd1.json | 12 + ...786b85f23b9638d1c7eaa7b633c052703c911.json | 12 + ...e2c3ffbc590c0f305ff5a8f44350fba3eaec7.json | 32 + ...fde26d6d36b8c8de9935179d41f6c7c755978.json | 12 + ...145baf72b3361f43e4127350a14a183ef63f7.json | 12 + ...5b68d2311c5ae05c1e18db43424c8ed2f2e4e.json | 98 + ...29477c2746765f6e7d5679058ec6525ee7253.json | 38 + ...489b29b2a61b9f73f6ca4b5df7e9fb9bccf90.json | 98 + ...bb7cad49c91bfe7f084d8c25c6c571673ab90.json | 12 + ...9559428be9d0d59df6409ca9ec7cd728f6001.json | 44 + ...7f3dfcf0fe7a30364b1fb57c3e6b757093578.json | 12 + ...0f0dafc78a0e8b69221dee4715f84841839da.json | 12 + ...7363290640b3af7d177a024cad06220a770f0.json | 32 + ...5ba76d7efa1677bfe8291a62b8cbf9cd9e0d5.json | 12 + ...33d4ff1c2e250b2d103d8500fae203fb18a6d.json | 56 + ...41004f988e683d28df2f533ff6272bc71b356.json | 12 + ...7975921c79aef8fcd6d15a4d63c10f2377d24.json | 12 + ...03c50bc90daed80ee2df1fd0dc1d9d2c67b26.json | 12 + ...e6c2210f583cddb0d478075f78124258712dd.json | 12 + ...5eca82d816650fabe65464e2059d5908d8a28.json | 12 + ...93646319950334494ecb5fa7effe9806d07ab.json | 50 + ...91faff7e3668204a179e827a87d6279a02c40.json | 12 + ...5198a1ddd775cd1bda10f6e4a8acfbca64b72.json | 12 + ...91ce94d1df9fa1ccd65b549be92d16741f9d2.json | 98 + ...89800509d94f3a858be99fb7ce8c8bc05d8b7.json | 98 + ...d0dedf4776f73e7a86f19e06772a0adf83406.json | 50 + ...6b7b9723258f4051bce8287038e3dd1ac928a.json | 44 + ...ec1ac248865810cafafd5d78d6cc3f74d5237.json | 98 + ...2f676dce0f67275466566d5bbedf0f4b7f4f5.json | 62 + ...b4a5f13a09cece9ec78e0b6e018950c91facb.json | 62 + ...2d3c547634e2b608d6be91814bce657e07b65.json | 20 + ...bad4bdf22760d431265cf97b911e6456b2fd8.json | 62 + ...4a91a129a0173fbbc3e2536f52d41e8dc99c4.json | 62 + ...63538d29d75c57b67d5eac1ac4ceaa1472a5c.json | 12 + ...526e68fb3d88a1feb28bdafb414e990da55e8.json | 12 + ...2262ac4c0a8fc0921fbd934d2b98146d3f413.json | 12 + ...25216693532c7233a3bf61674b64c2fb3dad7.json | 62 + crates/database/Cargo.toml | 2 +- crates/database/sqlx-data.json | 2129 ----------------- 74 files changed, 2623 insertions(+), 2418 deletions(-) create mode 100644 crates/database/.sqlx/query-06cfa74715f3725e99e63aa206f1be5d26cb26924d53dc5a68ee4ea48d6bbbfd.json create mode 100644 crates/database/.sqlx/query-0b60c7829e95dde4145b7f207b64df7006c1fde2faaca0f7952a009d6cda90a3.json create mode 100644 crates/database/.sqlx/query-13c26aaf556d259535afb95f5c53b4c594f373084c73000bc7865a280df74fdd.json create mode 100644 crates/database/.sqlx/query-184d704e75f00513082dd2c6cc3ae5c3f58b57b222ba4333216b5c50c3c58c71.json create mode 100644 crates/database/.sqlx/query-1e2edc8cf28832344dbfa0878ac01361b6f97c552d6af8477da12cddb03d4865.json create mode 100644 crates/database/.sqlx/query-2d562e7b19d7d8303a0e79d143d25fd68743ae30d1ec0b0ca5c7dfc367fdf357.json create mode 100644 crates/database/.sqlx/query-2ee77458d93ae79d957e03e6ca50c1bf690f40b6cc6ec5f008eb0e928f376659.json create mode 100644 crates/database/.sqlx/query-32d35bdd1f4cf64ce0ff7beb7a11591e0f35eab7211692bcde8230c68e4cedf3.json create mode 100644 crates/database/.sqlx/query-37000307a757b4912ca300c346b5bd8ee5d50331d94abeee076ae4db46215a56.json create mode 100644 crates/database/.sqlx/query-37681902a5f5d87492812a525a6488e75d20c1c436a3ba2c5aa3f54da62fe861.json create mode 100644 crates/database/.sqlx/query-3c8e31ffa5cbfd4dded8a272777cb320fb51fd2e53ed25054d24e9801df0c358.json create mode 100644 crates/database/.sqlx/query-44cc12d7659e618fcb44a82697d60da940bdab3c87690ee42569ae3da1a8e791.json create mode 100644 crates/database/.sqlx/query-46caa546db24d2c1e8192f9e699202be5129c74a5569b2dc7bf95761fe09a6a3.json create mode 100644 crates/database/.sqlx/query-520fe30e21f6b6c4d9a47c457675eebd144cf020e9230d154e9e4d0c8d6e01ca.json create mode 100644 crates/database/.sqlx/query-52c16bb0e76dd1726d151b69d1ba3b89948ee6ac5116e442faef8512c1a615c0.json create mode 100644 crates/database/.sqlx/query-545f19b0373c7ffe16864eb242c15a0092355e120c5cbe006c877afdfc4a4e8c.json create mode 100644 crates/database/.sqlx/query-5567f75b47f739e85da3469bec0202be315c42dfc820d3c37bba498b1b783811.json create mode 100644 crates/database/.sqlx/query-56a9c0dff010858189a95087d014c7d0ce930da5d841b9d788a9c0e84b580bc6.json create mode 100644 crates/database/.sqlx/query-58e0626629a768c33783bbc926c3d1477ad7e4e983b61ede013e5b066940eb5c.json create mode 100644 crates/database/.sqlx/query-5a365b761ada7d5f67e5ad3ff9a1a89d96383e28b15186576f90ff59f309196c.json create mode 100644 crates/database/.sqlx/query-5e148a43d9f64c73296b2b70deef07d2c863a93fff693aec1b47378c44bf77de.json create mode 100644 crates/database/.sqlx/query-5f946348ad62389fab3c97a1563d1592cbc5180abbba6d5abd44326bf0862669.json create mode 100644 crates/database/.sqlx/query-62c75412f673f6a293b0d188d79c50676ec21cf94e2e50e18f9279c91e6b85c8.json create mode 100644 crates/database/.sqlx/query-645f583812c4d71570d1e84b866e85c5a012d71cd745494049a8d9bebab3ed61.json create mode 100644 crates/database/.sqlx/query-657fdc2b228b14a6aba717e5083daf48204274ab62d73ec8968bcd0c7568b157.json create mode 100644 crates/database/.sqlx/query-68cfa3d135eb4cdbdbcb3b943518b4ac09c371af689c444eb439a37f91ecf7a5.json create mode 100644 crates/database/.sqlx/query-693c8c3de266cb3a8fc98bdea8e3b87de0dcb78316628d48f0e6efc0f8103040.json create mode 100644 crates/database/.sqlx/query-6fa3c48b9e93fb9ec6807f7547a8f999fc55a6fb8ad4abe7af89ec52e0d10a0e.json create mode 100644 crates/database/.sqlx/query-6ff12f357d884a50035d708577a7f3109a07a1ca193cb3082d13687af65c6de0.json create mode 100644 crates/database/.sqlx/query-71c74369dc5d374d8ec5aa347b5f599728b74e545df3e986e3e7e66882f73ba0.json create mode 100644 crates/database/.sqlx/query-73bdbde04fca37f2411e7a9e1b6dbccc0dd4d12ebcb933024d9867f07bba3eb8.json create mode 100644 crates/database/.sqlx/query-7b7f2430b2a719b3d5ce504c0a9302731b3ff82da99ba7771c2728d88aee642a.json create mode 100644 crates/database/.sqlx/query-7f26b73408318040f94fb6574d5cc25482cef1a57ba4c467fa0bc0fdf25bf39c.json create mode 100644 crates/database/.sqlx/query-87906834faa6f185aee0e4d893b9754908b1c173e9dce383663d723891a89cd1.json create mode 100644 crates/database/.sqlx/query-8c131e1f73ffa01fc3e5e08071a786b85f23b9638d1c7eaa7b633c052703c911.json create mode 100644 crates/database/.sqlx/query-8c37375b0694df02b7f1b6678e4e2c3ffbc590c0f305ff5a8f44350fba3eaec7.json create mode 100644 crates/database/.sqlx/query-93b15a942a6c7db595990f00e14fde26d6d36b8c8de9935179d41f6c7c755978.json create mode 100644 crates/database/.sqlx/query-9784afe2dcff4db86908175d4e3145baf72b3361f43e4127350a14a183ef63f7.json create mode 100644 crates/database/.sqlx/query-979c7ba41dac5ea5593fc169ea95b68d2311c5ae05c1e18db43424c8ed2f2e4e.json create mode 100644 crates/database/.sqlx/query-9a3aef02e55fc436e9c09c1ee6d29477c2746765f6e7d5679058ec6525ee7253.json create mode 100644 crates/database/.sqlx/query-9dc379b0f3a3c944a33ef01dc40489b29b2a61b9f73f6ca4b5df7e9fb9bccf90.json create mode 100644 crates/database/.sqlx/query-9f1885c4786f73335b4d614f562bb7cad49c91bfe7f084d8c25c6c571673ab90.json create mode 100644 crates/database/.sqlx/query-a0dd1ddcc7d58fad78ed6c5027a9559428be9d0d59df6409ca9ec7cd728f6001.json create mode 100644 crates/database/.sqlx/query-a2bf546b2cf6a53a3a127c08fbb7f3dfcf0fe7a30364b1fb57c3e6b757093578.json create mode 100644 crates/database/.sqlx/query-a55b17a3a70e6445517f19536220f0dafc78a0e8b69221dee4715f84841839da.json create mode 100644 crates/database/.sqlx/query-a9e910eedc27c495262571520627363290640b3af7d177a024cad06220a770f0.json create mode 100644 crates/database/.sqlx/query-aae93a39c5a9f46235b5ef871b45ba76d7efa1677bfe8291a62b8cbf9cd9e0d5.json create mode 100644 crates/database/.sqlx/query-adcbc32e2c284b59eefb79fd2ff33d4ff1c2e250b2d103d8500fae203fb18a6d.json create mode 100644 crates/database/.sqlx/query-afc08ba1fd47656c7d987e3817941004f988e683d28df2f533ff6272bc71b356.json create mode 100644 crates/database/.sqlx/query-b3936ae237f02cc048ca084372f7975921c79aef8fcd6d15a4d63c10f2377d24.json create mode 100644 crates/database/.sqlx/query-baaae9952348da17e2f4d099c6903c50bc90daed80ee2df1fd0dc1d9d2c67b26.json create mode 100644 crates/database/.sqlx/query-c00e5fce25caebdeeb24db20880e6c2210f583cddb0d478075f78124258712dd.json create mode 100644 crates/database/.sqlx/query-c28c88869239edc02c073f461645eca82d816650fabe65464e2059d5908d8a28.json create mode 100644 crates/database/.sqlx/query-c3dcd38a2d4ff391aed4a2ac3f393646319950334494ecb5fa7effe9806d07ab.json create mode 100644 crates/database/.sqlx/query-c6157ec3928527ec0ac5f493a5a91faff7e3668204a179e827a87d6279a02c40.json create mode 100644 crates/database/.sqlx/query-c724c273f9d99bde48c29d7a0e65198a1ddd775cd1bda10f6e4a8acfbca64b72.json create mode 100644 crates/database/.sqlx/query-ca7d100a9440fb7854a27f9aafd91ce94d1df9fa1ccd65b549be92d16741f9d2.json create mode 100644 crates/database/.sqlx/query-cf12bd3112b2047f263118649ba89800509d94f3a858be99fb7ce8c8bc05d8b7.json create mode 100644 crates/database/.sqlx/query-cf624c4e122477228e3bab09f7cd0dedf4776f73e7a86f19e06772a0adf83406.json create mode 100644 crates/database/.sqlx/query-d166553746afb2d3eaa1ddcb9986b7b9723258f4051bce8287038e3dd1ac928a.json create mode 100644 crates/database/.sqlx/query-d6d3a401f5563ce339099ccbdedec1ac248865810cafafd5d78d6cc3f74d5237.json create mode 100644 crates/database/.sqlx/query-d8517e5faa5292da25d21a85fcb2f676dce0f67275466566d5bbedf0f4b7f4f5.json create mode 100644 crates/database/.sqlx/query-e22ba816faac0c17ca9f2c31fd1b4a5f13a09cece9ec78e0b6e018950c91facb.json create mode 100644 crates/database/.sqlx/query-e977ca16c7bd7ec4125725ff5e42d3c547634e2b608d6be91814bce657e07b65.json create mode 100644 crates/database/.sqlx/query-eaf0744f65a1de803fa8cc21b67bad4bdf22760d431265cf97b911e6456b2fd8.json create mode 100644 crates/database/.sqlx/query-eb1a0153c88b0b2744ed1b71df04a91a129a0173fbbc3e2536f52d41e8dc99c4.json create mode 100644 crates/database/.sqlx/query-ebe28f418d28303b2efe1fe192a63538d29d75c57b67d5eac1ac4ceaa1472a5c.json create mode 100644 crates/database/.sqlx/query-ed27954feb3e21b5c519ccd0312526e68fb3d88a1feb28bdafb414e990da55e8.json create mode 100644 crates/database/.sqlx/query-f705411720bd037562f7e3622832262ac4c0a8fc0921fbd934d2b98146d3f413.json create mode 100644 crates/database/.sqlx/query-fb35faa6eb7349f783d0053509225216693532c7233a3bf61674b64c2fb3dad7.json delete mode 100644 crates/database/sqlx-data.json diff --git a/Cargo.lock b/Cargo.lock index 77670a8..27d53ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,17 +27,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - [[package]] name = "ahash" version = "0.8.3" @@ -45,6 +34,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ "cfg-if", + "getrandom", "once_cell", "version_check", ] @@ -154,9 +144,9 @@ dependencies = [ [[package]] name = "atoi" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c57d12312ff59c811c0643f4d80830505833c9ffaebd193d819392b265be8e" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" dependencies = [ "num-traits", ] @@ -245,6 +235,9 @@ name = "bitflags" version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +dependencies = [ + "serde", +] [[package]] name = "blake2" @@ -405,9 +398,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "cookie" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24" +checksum = "3cd91cf61412820176e137621345ee43b3f4423e589e7ae4e50d601d93e35ef8" dependencies = [ "percent-encoding", "time 0.3.23", @@ -607,7 +600,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" dependencies = [ "const-oid", - "pem-rfc7468", + "pem-rfc7468 0.6.0", + "zeroize", +] + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "pem-rfc7468 0.7.0", "zeroize", ] @@ -693,7 +697,7 @@ version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ - "der", + "der 0.6.1", "elliptic-curve", "rfc6979", "signature 1.6.4", @@ -716,14 +720,14 @@ checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ "base16ct", "crypto-bigint", - "der", + "der 0.6.1", "digest", "ff", "generic-array", "group", "hkdf", - "pem-rfc7468", - "pkcs8", + "pem-rfc7468 0.6.0", + "pkcs8 0.9.0", "rand_core", "sec1", "subtle", @@ -789,7 +793,7 @@ checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" dependencies = [ "errno-dragonfly", "libc", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -802,6 +806,17 @@ dependencies = [ "libc", ] +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys", +] + [[package]] name = "event-listener" version = "2.5.3" @@ -885,14 +900,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.21" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.16", - "windows-sys 0.48.0", + "redox_syscall", + "windows-sys", ] [[package]] @@ -907,13 +922,12 @@ dependencies = [ [[package]] name = "flume" -version = "0.10.14" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" dependencies = [ "futures-core", "futures-sink", - "pin-project", "spin 0.9.8", ] @@ -985,13 +999,13 @@ dependencies = [ [[package]] name = "futures-intrusive" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604f7a68fbf8103337523b1fadc8ade7361ee3f112f7c680ad179651616aed5" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", "lock_api", - "parking_lot 0.11.2", + "parking_lot", ] [[package]] @@ -1182,7 +1196,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" dependencies = [ - "ahash 0.8.3", + "ahash", "allocator-api2", ] @@ -1234,6 +1248,15 @@ dependencies = [ "digest", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + [[package]] name = "hostname" version = "0.3.1" @@ -1427,6 +1450,7 @@ checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" dependencies = [ "equivalent", "hashbrown 0.14.0", + "serde", ] [[package]] @@ -1478,7 +1502,7 @@ checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1489,7 +1513,7 @@ checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", "rustix 0.38.3", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1602,11 +1626,11 @@ dependencies = [ "nom", "once_cell", "quoted_printable", - "rustls 0.21.3", + "rustls", "rustls-pemfile", "socket2", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls", "webpki-roots 0.23.1", ] @@ -1624,9 +1648,9 @@ checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "libsqlite3-sys" -version = "0.24.2" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "898745e570c7d0453cc1fbc4a701eb6c662ed54e8fec8b7d14be137ebeeb9d14" +checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326" dependencies = [ "cc", "pkg-config", @@ -1691,6 +1715,16 @@ dependencies = [ "regex-automata 0.1.10", ] +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + [[package]] name = "memchr" version = "2.5.0" @@ -1752,7 +1786,7 @@ dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1894,25 +1928,26 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5" dependencies = [ - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "notify" -version = "5.2.0" +version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729f63e1ca555a43fe3efa4f3efdf4801c479da85b432242a7b726f353c88486" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.3.3", "crossbeam-channel", "filetime", "fsevent-sys", "inotify", "kqueue", "libc", + "log", "mio", "walkdir", - "windows-sys 0.45.0", + "windows-sys", ] [[package]] @@ -2108,17 +2143,6 @@ dependencies = [ "sha2", ] -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - [[package]] name = "parking_lot" version = "0.12.1" @@ -2126,21 +2150,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.8", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", + "parking_lot_core", ] [[package]] @@ -2151,9 +2161,9 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", + "redox_syscall", "smallvec", - "windows-targets 0.48.1", + "windows-targets", ] [[package]] @@ -2201,7 +2211,7 @@ checksum = "0ec95680a7087503575284e5063e14b694b7a9c0b065e5dceec661e0497127e8" dependencies = [ "inlinable_string", "pear_codegen", - "yansi", + "yansi 0.5.1", ] [[package]] @@ -2225,6 +2235,15 @@ dependencies = [ "base64ct", ] +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.0" @@ -2363,26 +2382,6 @@ dependencies = [ "siphasher", ] -[[package]] -name = "pin-project" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.24", -] - [[package]] name = "pin-project-lite" version = "0.2.10" @@ -2401,20 +2400,41 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" dependencies = [ - "der", - "pkcs8", - "spki", + "der 0.6.1", + "pkcs8 0.9.0", + "spki 0.6.0", "zeroize", ] +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der 0.7.8", + "pkcs8 0.10.2", + "spki 0.7.2", +] + [[package]] name = "pkcs8" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ - "der", - "spki", + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.8", + "spki 0.7.2", ] [[package]] @@ -2461,7 +2481,7 @@ dependencies = [ "quote", "syn 2.0.24", "version_check", - "yansi", + "yansi 0.5.1", ] [[package]] @@ -2515,15 +2535,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.3.5" @@ -2635,9 +2646,9 @@ dependencies = [ [[package]] name = "rocket" -version = "0.5.0-rc.3" +version = "0.5.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58734f7401ae5cfd129685b48f61182331745b357b96f2367f01aebaf1cc9cc9" +checksum = "85ae34c956708013335f62150ff64e133be7f9e8ca60203852bc7b13d6044d01" dependencies = [ "async-stream", "async-trait", @@ -2647,13 +2658,12 @@ dependencies = [ "either", "figment", "futures", - "indexmap 1.9.3", - "is-terminal", + "indexmap 2.0.0", "log", "memchr", "multer", "num_cpus", - "parking_lot 0.12.1", + "parking_lot", "pin-project-lite", "rand", "ref-cast", @@ -2669,30 +2679,30 @@ dependencies = [ "tokio-util", "ubyte", "version_check", - "yansi", + "yansi 1.0.0-rc.1", ] [[package]] name = "rocket_codegen" -version = "0.5.0-rc.3" +version = "0.5.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7093353f14228c744982e409259fb54878ba9563d08214f2d880d59ff2fc508b" +checksum = "896efc56a554a4e1fd03df1d8186c955b803aa652bbe8725a731f64e20f9cee8" dependencies = [ "devise", "glob", - "indexmap 1.9.3", + "indexmap 2.0.0", "proc-macro2", "quote", "rocket_http", "syn 2.0.24", "unicode-xid", + "version_check", ] [[package]] name = "rocket_cors" version = "0.6.0-alpha2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b12771b47f52e34d5d0e0e444aeba382863e73263cb9e18847e7d5b74aa2cbd0" +source = "git+https://github.com/j03-dev/rocket_cors?branch=master#4a562dfdc1c550ca1832ea56a6fd41de04b536c6" dependencies = [ "http", "log", @@ -2707,9 +2717,9 @@ dependencies = [ [[package]] name = "rocket_db_pools" -version = "0.1.0-rc.3" +version = "0.1.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e841c280fd98c042cd3d0353c31920da78a4eb19b12f0e0e3b7a362abe66bec0" +checksum = "07442bdd9c491414bc1ec4019c92a2cec55971bdb9a7a3c1072fa695b50d5635" dependencies = [ "rocket", "rocket_db_pools_codegen", @@ -2719,9 +2729,9 @@ dependencies = [ [[package]] name = "rocket_db_pools_codegen" -version = "0.1.0-rc.3" +version = "0.1.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e26ff5b517c54ffe049209e6126705fd455529ff0b37c83023d56bf8fd677a76" +checksum = "256459847a854aacad39fc3d4ff3b05610a66bcd21da42d293248fffc8d730ef" dependencies = [ "devise", "quote", @@ -2729,29 +2739,29 @@ dependencies = [ [[package]] name = "rocket_dyn_templates" -version = "0.1.0-rc.3" +version = "0.1.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276cac97fcddca93d741a4a530f58969f45a5bdb587f8c6b04c75cf849ca7f4c" +checksum = "f44ce172f8a9070daf777dec707273ee042223ad9b030d780349baa0b660ae4f" dependencies = [ - "glob", "normpath", "notify", "rocket", "tera", + "walkdir", ] [[package]] name = "rocket_http" -version = "0.5.0-rc.3" +version = "0.5.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936012c99162a03a67f37f9836d5f938f662e26f2717809761a9ac46432090f4" +checksum = "a1b9b7377bab513717a00ca4f91fe1378328b078e7705bfe5f6b69635e9f1719" dependencies = [ "cookie", "either", "futures", "http", "hyper", - "indexmap 1.9.3", + "indexmap 2.0.0", "log", "memchr", "pear", @@ -2790,8 +2800,8 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "pkcs1", - "pkcs8", + "pkcs1 0.4.1", + "pkcs8 0.9.0", "rand_core", "signature 1.6.4", "smallvec", @@ -2811,14 +2821,34 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "pkcs1", - "pkcs8", + "pkcs1 0.4.1", + "pkcs8 0.9.0", "rand_core", "signature 2.1.0", "subtle", "zeroize", ] +[[package]] +name = "rsa" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86ef35bf3e7fe15a53c4ab08a998e42271eab13eb0db224126bc7bc4c4bad96d" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1 0.7.5", + "pkcs8 0.10.2", + "rand_core", + "signature 2.1.0", + "spki 0.7.2", + "subtle", + "zeroize", +] + [[package]] name = "rustc-demangle" version = "0.1.23" @@ -2851,7 +2881,7 @@ dependencies = [ "io-lifetimes", "libc", "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -2864,19 +2894,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.4.3", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustls" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" -dependencies = [ - "log", - "ring", - "sct", - "webpki", + "windows-sys", ] [[package]] @@ -2970,9 +2988,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ "base16ct", - "der", + "der 0.6.1", "generic-array", - "pkcs8", + "pkcs8 0.9.0", "subtle", "zeroize", ] @@ -3224,7 +3242,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ "base64ct", - "der", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +dependencies = [ + "base64ct", + "der 0.7.8", ] [[package]] @@ -3240,23 +3268,25 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.6.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8de3b03a925878ed54a954f621e64bf55a3c1bd29652d0d1a17830405350188" +checksum = "0e50c216e3624ec8e7ecd14c6a6a6370aad6ee5d8cfc3ab30b5162eeeef2ed33" dependencies = [ "sqlx-core", "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", ] [[package]] name = "sqlx-core" -version = "0.6.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8241483a83a3f33aa5fff7e7d9def398ff9990b2752b6c6112b83c6d246029" +checksum = "8d6753e460c998bbd4cd8c6f0ed9a64346fcca0723d6e75e52fdc351c5d2169d" dependencies = [ - "ahash 0.7.6", + "ahash", "atoi", - "bitflags 1.3.2", "byteorder", "bytes", "chrono", @@ -3265,42 +3295,52 @@ dependencies = [ "dotenvy", "either", "event-listener", - "flume", "futures-channel", "futures-core", - "futures-executor", "futures-intrusive", + "futures-io", "futures-util", "hashlink", "hex", - "indexmap 1.9.3", - "itoa", - "libc", - "libsqlite3-sys", + "indexmap 2.0.0", "log", "memchr", "once_cell", "paste", "percent-encoding", - "rustls 0.20.8", + "rustls", "rustls-pemfile", "serde", + "serde_json", "sha2", "smallvec", "sqlformat", - "sqlx-rt", - "stringprep", "thiserror", + "tokio", "tokio-stream", + "tracing", "url", - "webpki-roots 0.22.6", + "webpki-roots 0.24.0", ] [[package]] name = "sqlx-macros" -version = "0.6.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9966e64ae989e7e575b19d7265cb79d7fc3cbbdf179835cb0d716f294c2049c9" +checksum = "9a793bb3ba331ec8359c1853bd39eed32cdd7baaf22c35ccf5c92a7e8d1189ec" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core", + "sqlx-macros-core", + "syn 1.0.109", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a4ee1e104e00dedb6aa5ffdd1343107b0a4702e862a84320ee7cc74782d96fc" dependencies = [ "dotenvy", "either", @@ -3313,20 +3353,119 @@ dependencies = [ "serde_json", "sha2", "sqlx-core", - "sqlx-rt", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", "syn 1.0.109", + "tempfile", + "tokio", "url", ] [[package]] -name = "sqlx-rt" -version = "0.6.3" +name = "sqlx-mysql" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804d3f245f894e61b1e6263c84b23ca675d96753b5abfd5cc8597d86806e8024" +checksum = "864b869fdf56263f4c95c45483191ea0af340f9f3e3e7b4d57a61c7c87a970db" dependencies = [ + "atoi", + "base64 0.21.2", + "bitflags 2.3.3", + "byteorder", + "bytes", + "chrono", + "crc", + "digest", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac", + "itoa", + "log", + "md-5", + "memchr", "once_cell", - "tokio", - "tokio-rustls 0.23.4", + "percent-encoding", + "rand", + "rsa 0.9.3", + "serde", + "sha1", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb7ae0e6a97fb3ba33b23ac2671a5ce6e3cabe003f451abd5a56e7951d975624" +dependencies = [ + "atoi", + "base64 0.21.2", + "bitflags 2.3.3", + "byteorder", + "chrono", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "rand", + "serde", + "serde_json", + "sha1", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59dc83cf45d89c555a577694534fcd1b55c545a816c816ce51f20bbe56a4f3f" +dependencies = [ + "atoi", + "chrono", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "sqlx-core", + "tracing", + "url", ] [[package]] @@ -3340,9 +3479,9 @@ dependencies = [ [[package]] name = "state" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8" dependencies = [ "loom", ] @@ -3400,9 +3539,9 @@ dependencies = [ "autocfg", "cfg-if", "fastrand", - "redox_syscall 0.3.5", + "redox_syscall", "rustix 0.37.23", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -3526,7 +3665,7 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -3540,24 +3679,13 @@ dependencies = [ "syn 2.0.24", ] -[[package]] -name = "tokio-rustls" -version = "0.23.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" -dependencies = [ - "rustls 0.20.8", - "tokio", - "webpki", -] - [[package]] name = "tokio-rustls" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.3", + "rustls", "tokio", ] @@ -3661,6 +3789,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -3919,9 +4048,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", @@ -4012,25 +4141,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki-roots" -version = "0.22.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" -dependencies = [ - "webpki", -] - [[package]] name = "webpki-roots" version = "0.23.1" @@ -4040,6 +4150,21 @@ dependencies = [ "rustls-webpki 0.100.1", ] +[[package]] +name = "webpki-roots" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" +dependencies = [ + "rustls-webpki 0.101.1", +] + +[[package]] +name = "whoami" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" + [[package]] name = "winapi" version = "0.3.9" @@ -4077,16 +4202,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.1", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", + "windows-targets", ] [[package]] @@ -4095,22 +4211,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.1", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets", ] [[package]] @@ -4119,93 +4220,51 @@ version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - [[package]] name = "windows_x86_64_msvc" version = "0.48.0" @@ -4233,6 +4292,15 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +[[package]] +name = "yansi" +version = "1.0.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377" +dependencies = [ + "is-terminal", +] + [[package]] name = "zeroize" version = "1.6.0" diff --git a/Cargo.toml b/Cargo.toml index e59e89b..cfdbcfa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ members = [ [workspace.dependencies] thiserror = "1" chrono = "0.4" -sqlx = "0.6" +sqlx = "0.7" url = "2.3" serde = "1" serde_json = "1" diff --git a/crates/database/.sqlx/query-06cfa74715f3725e99e63aa206f1be5d26cb26924d53dc5a68ee4ea48d6bbbfd.json b/crates/database/.sqlx/query-06cfa74715f3725e99e63aa206f1be5d26cb26924d53dc5a68ee4ea48d6bbbfd.json new file mode 100644 index 0000000..66bbf95 --- /dev/null +++ b/crates/database/.sqlx/query-06cfa74715f3725e99e63aa206f1be5d26cb26924d53dc5a68ee4ea48d6bbbfd.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update settings\n\nset business_logo = ?\n\nwhere id is 0\n", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "06cfa74715f3725e99e63aa206f1be5d26cb26924d53dc5a68ee4ea48d6bbbfd" +} diff --git a/crates/database/.sqlx/query-0b60c7829e95dde4145b7f207b64df7006c1fde2faaca0f7952a009d6cda90a3.json b/crates/database/.sqlx/query-0b60c7829e95dde4145b7f207b64df7006c1fde2faaca0f7952a009d6cda90a3.json new file mode 100644 index 0000000..4252806 --- /dev/null +++ b/crates/database/.sqlx/query-0b60c7829e95dde4145b7f207b64df7006c1fde2faaca0f7952a009d6cda90a3.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update settings\n\nset business_name = ?\n\nwhere id is 0\n", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "0b60c7829e95dde4145b7f207b64df7006c1fde2faaca0f7952a009d6cda90a3" +} diff --git a/crates/database/.sqlx/query-13c26aaf556d259535afb95f5c53b4c594f373084c73000bc7865a280df74fdd.json b/crates/database/.sqlx/query-13c26aaf556d259535afb95f5c53b4c594f373084c73000bc7865a280df74fdd.json new file mode 100644 index 0000000..11e775b --- /dev/null +++ b/crates/database/.sqlx/query-13c26aaf556d259535afb95f5c53b4c594f373084c73000bc7865a280df74fdd.json @@ -0,0 +1,62 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n label,\n redirect_uri,\n secret,\n is_confidential as \"is_confidential: bool\",\n is_archived as \"is_archived: bool\"\nfrom apps\n\nwhere is_archived is 0\norder by created_at desc", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "label", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "redirect_uri", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "secret", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "is_confidential: bool", + "ordinal": 6, + "type_info": "Int64" + }, + { + "name": "is_archived: bool", + "ordinal": 7, + "type_info": "Int64" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + "hash": "13c26aaf556d259535afb95f5c53b4c594f373084c73000bc7865a280df74fdd" +} diff --git a/crates/database/.sqlx/query-184d704e75f00513082dd2c6cc3ae5c3f58b57b222ba4333216b5c50c3c58c71.json b/crates/database/.sqlx/query-184d704e75f00513082dd2c6cc3ae5c3f58b57b222ba4333216b5c50c3c58c71.json new file mode 100644 index 0000000..5400960 --- /dev/null +++ b/crates/database/.sqlx/query-184d704e75f00513082dd2c6cc3ae5c3f58b57b222ba4333216b5c50c3c58c71.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update apps\n\nset label = ?,\n redirect_uri = ?,\n is_confidential = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 4 + }, + "nullable": [] + }, + "hash": "184d704e75f00513082dd2c6cc3ae5c3f58b57b222ba4333216b5c50c3c58c71" +} diff --git a/crates/database/.sqlx/query-1e2edc8cf28832344dbfa0878ac01361b6f97c552d6af8477da12cddb03d4865.json b/crates/database/.sqlx/query-1e2edc8cf28832344dbfa0878ac01361b6f97c552d6af8477da12cddb03d4865.json new file mode 100644 index 0000000..4806aca --- /dev/null +++ b/crates/database/.sqlx/query-1e2edc8cf28832344dbfa0878ac01361b6f97c552d6af8477da12cddb03d4865.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update apps\n\nset secret = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "1e2edc8cf28832344dbfa0878ac01361b6f97c552d6af8477da12cddb03d4865" +} diff --git a/crates/database/.sqlx/query-2d562e7b19d7d8303a0e79d143d25fd68743ae30d1ec0b0ca5c7dfc367fdf357.json b/crates/database/.sqlx/query-2d562e7b19d7d8303a0e79d143d25fd68743ae30d1ec0b0ca5c7dfc367fdf357.json new file mode 100644 index 0000000..341ec0f --- /dev/null +++ b/crates/database/.sqlx/query-2d562e7b19d7d8303a0e79d143d25fd68743ae30d1ec0b0ca5c7dfc367fdf357.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update apps\n\nset is_archived = 1\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "2d562e7b19d7d8303a0e79d143d25fd68743ae30d1ec0b0ca5c7dfc367fdf357" +} diff --git a/crates/database/.sqlx/query-2ee77458d93ae79d957e03e6ca50c1bf690f40b6cc6ec5f008eb0e928f376659.json b/crates/database/.sqlx/query-2ee77458d93ae79d957e03e6ca50c1bf690f40b6cc6ec5f008eb0e928f376659.json new file mode 100644 index 0000000..4bebeb3 --- /dev/null +++ b/crates/database/.sqlx/query-2ee77458d93ae79d957e03e6ca50c1bf690f40b6cc6ec5f008eb0e928f376659.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update roles\n\nset is_archived = ?\n\nwhere name is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "2ee77458d93ae79d957e03e6ca50c1bf690f40b6cc6ec5f008eb0e928f376659" +} diff --git a/crates/database/.sqlx/query-32d35bdd1f4cf64ce0ff7beb7a11591e0f35eab7211692bcde8230c68e4cedf3.json b/crates/database/.sqlx/query-32d35bdd1f4cf64ce0ff7beb7a11591e0f35eab7211692bcde8230c68e4cedf3.json new file mode 100644 index 0000000..6ab6f4d --- /dev/null +++ b/crates/database/.sqlx/query-32d35bdd1f4cf64ce0ff7beb7a11591e0f35eab7211692bcde8230c68e4cedf3.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update users\n\nset password_recover = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "32d35bdd1f4cf64ce0ff7beb7a11591e0f35eab7211692bcde8230c68e4cedf3" +} diff --git a/crates/database/.sqlx/query-37000307a757b4912ca300c346b5bd8ee5d50331d94abeee076ae4db46215a56.json b/crates/database/.sqlx/query-37000307a757b4912ca300c346b5bd8ee5d50331d94abeee076ae4db46215a56.json new file mode 100644 index 0000000..58c24ea --- /dev/null +++ b/crates/database/.sqlx/query-37000307a757b4912ca300c346b5bd8ee5d50331d94abeee076ae4db46215a56.json @@ -0,0 +1,98 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n is_admin as \"is_admin: bool\",\n username,\n name,\n email,\n password,\n password_recover,\n paper_key,\n is_archived as \"is_archived: bool\",\n timezone,\n totp_secret,\n totp_backup\nfrom users\n\nwhere email is (?)\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "is_admin: bool", + "ordinal": 3, + "type_info": "Int64" + }, + { + "name": "username", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "name", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "email", + "ordinal": 6, + "type_info": "Text" + }, + { + "name": "password", + "ordinal": 7, + "type_info": "Text" + }, + { + "name": "password_recover", + "ordinal": 8, + "type_info": "Text" + }, + { + "name": "paper_key", + "ordinal": 9, + "type_info": "Text" + }, + { + "name": "is_archived: bool", + "ordinal": 10, + "type_info": "Int64" + }, + { + "name": "timezone", + "ordinal": 11, + "type_info": "Text" + }, + { + "name": "totp_secret", + "ordinal": 12, + "type_info": "Blob" + }, + { + "name": "totp_backup", + "ordinal": 13, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false, + false, + true, + true, + true, + true, + true, + false, + false, + true, + true + ] + }, + "hash": "37000307a757b4912ca300c346b5bd8ee5d50331d94abeee076ae4db46215a56" +} diff --git a/crates/database/.sqlx/query-37681902a5f5d87492812a525a6488e75d20c1c436a3ba2c5aa3f54da62fe861.json b/crates/database/.sqlx/query-37681902a5f5d87492812a525a6488e75d20c1c436a3ba2c5aa3f54da62fe861.json new file mode 100644 index 0000000..5dc09ac --- /dev/null +++ b/crates/database/.sqlx/query-37681902a5f5d87492812a525a6488e75d20c1c436a3ba2c5aa3f54da62fe861.json @@ -0,0 +1,62 @@ +{ + "db_name": "SQLite", + "query": "select\n -- info\n token,\n ip_address,\n user,\n app,\n\n -- timings\n created_at as \"created_at: DateTime\",\n expires_at as \"expires_at: DateTime\",\n used_at as \"used_at: DateTime\",\n revoked_at as \"revoked_at: DateTime\"\nfrom refresh_tokens\n\nwhere token is (?)", + "describe": { + "columns": [ + { + "name": "token", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "ip_address", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "user", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "app", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "expires_at: DateTime", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "used_at: DateTime", + "ordinal": 6, + "type_info": "Text" + }, + { + "name": "revoked_at: DateTime", + "ordinal": 7, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false, + false, + false, + true, + true + ] + }, + "hash": "37681902a5f5d87492812a525a6488e75d20c1c436a3ba2c5aa3f54da62fe861" +} diff --git a/crates/database/.sqlx/query-3c8e31ffa5cbfd4dded8a272777cb320fb51fd2e53ed25054d24e9801df0c358.json b/crates/database/.sqlx/query-3c8e31ffa5cbfd4dded8a272777cb320fb51fd2e53ed25054d24e9801df0c358.json new file mode 100644 index 0000000..be28ccc --- /dev/null +++ b/crates/database/.sqlx/query-3c8e31ffa5cbfd4dded8a272777cb320fb51fd2e53ed25054d24e9801df0c358.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update refresh_tokens\n\nset used_at = CURRENT_TIMESTAMP\n\nwhere token is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "3c8e31ffa5cbfd4dded8a272777cb320fb51fd2e53ed25054d24e9801df0c358" +} diff --git a/crates/database/.sqlx/query-44cc12d7659e618fcb44a82697d60da940bdab3c87690ee42569ae3da1a8e791.json b/crates/database/.sqlx/query-44cc12d7659e618fcb44a82697d60da940bdab3c87690ee42569ae3da1a8e791.json new file mode 100644 index 0000000..58c2686 --- /dev/null +++ b/crates/database/.sqlx/query-44cc12d7659e618fcb44a82697d60da940bdab3c87690ee42569ae3da1a8e791.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "insert into roles (name, label)\nvalues (?, ?)\n", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "44cc12d7659e618fcb44a82697d60da940bdab3c87690ee42569ae3da1a8e791" +} diff --git a/crates/database/.sqlx/query-46caa546db24d2c1e8192f9e699202be5129c74a5569b2dc7bf95761fe09a6a3.json b/crates/database/.sqlx/query-46caa546db24d2c1e8192f9e699202be5129c74a5569b2dc7bf95761fe09a6a3.json new file mode 100644 index 0000000..a28f563 --- /dev/null +++ b/crates/database/.sqlx/query-46caa546db24d2c1e8192f9e699202be5129c74a5569b2dc7bf95761fe09a6a3.json @@ -0,0 +1,32 @@ +{ + "db_name": "SQLite", + "query": "select user,\n role,\n created_at as \"created_at: DateTime\"\n\nfrom permissions\nwhere role is (?)\n", + "describe": { + "columns": [ + { + "name": "user", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "role", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 2, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false + ] + }, + "hash": "46caa546db24d2c1e8192f9e699202be5129c74a5569b2dc7bf95761fe09a6a3" +} diff --git a/crates/database/.sqlx/query-520fe30e21f6b6c4d9a47c457675eebd144cf020e9230d154e9e4d0c8d6e01ca.json b/crates/database/.sqlx/query-520fe30e21f6b6c4d9a47c457675eebd144cf020e9230d154e9e4d0c8d6e01ca.json new file mode 100644 index 0000000..dc666b1 --- /dev/null +++ b/crates/database/.sqlx/query-520fe30e21f6b6c4d9a47c457675eebd144cf020e9230d154e9e4d0c8d6e01ca.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "insert into users (id, is_admin, username, password)\nvalues (?, ?, ?, ?)\n", + "describe": { + "columns": [], + "parameters": { + "Right": 4 + }, + "nullable": [] + }, + "hash": "520fe30e21f6b6c4d9a47c457675eebd144cf020e9230d154e9e4d0c8d6e01ca" +} diff --git a/crates/database/.sqlx/query-52c16bb0e76dd1726d151b69d1ba3b89948ee6ac5116e442faef8512c1a615c0.json b/crates/database/.sqlx/query-52c16bb0e76dd1726d151b69d1ba3b89948ee6ac5116e442faef8512c1a615c0.json new file mode 100644 index 0000000..758139d --- /dev/null +++ b/crates/database/.sqlx/query-52c16bb0e76dd1726d151b69d1ba3b89948ee6ac5116e442faef8512c1a615c0.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update users\n\nset is_archived = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "52c16bb0e76dd1726d151b69d1ba3b89948ee6ac5116e442faef8512c1a615c0" +} diff --git a/crates/database/.sqlx/query-545f19b0373c7ffe16864eb242c15a0092355e120c5cbe006c877afdfc4a4e8c.json b/crates/database/.sqlx/query-545f19b0373c7ffe16864eb242c15a0092355e120c5cbe006c877afdfc4a4e8c.json new file mode 100644 index 0000000..f1adb7c --- /dev/null +++ b/crates/database/.sqlx/query-545f19b0373c7ffe16864eb242c15a0092355e120c5cbe006c877afdfc4a4e8c.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update users\n\nset username = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "545f19b0373c7ffe16864eb242c15a0092355e120c5cbe006c877afdfc4a4e8c" +} diff --git a/crates/database/.sqlx/query-5567f75b47f739e85da3469bec0202be315c42dfc820d3c37bba498b1b783811.json b/crates/database/.sqlx/query-5567f75b47f739e85da3469bec0202be315c42dfc820d3c37bba498b1b783811.json new file mode 100644 index 0000000..5543786 --- /dev/null +++ b/crates/database/.sqlx/query-5567f75b47f739e85da3469bec0202be315c42dfc820d3c37bba498b1b783811.json @@ -0,0 +1,98 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n is_admin as \"is_admin: bool\",\n username,\n name,\n email,\n password,\n password_recover,\n paper_key,\n is_archived as \"is_archived: bool\",\n timezone,\n totp_secret,\n totp_backup\nfrom users\n\nwhere username is (?)\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "is_admin: bool", + "ordinal": 3, + "type_info": "Int64" + }, + { + "name": "username", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "name", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "email", + "ordinal": 6, + "type_info": "Text" + }, + { + "name": "password", + "ordinal": 7, + "type_info": "Text" + }, + { + "name": "password_recover", + "ordinal": 8, + "type_info": "Text" + }, + { + "name": "paper_key", + "ordinal": 9, + "type_info": "Text" + }, + { + "name": "is_archived: bool", + "ordinal": 10, + "type_info": "Int64" + }, + { + "name": "timezone", + "ordinal": 11, + "type_info": "Text" + }, + { + "name": "totp_secret", + "ordinal": 12, + "type_info": "Blob" + }, + { + "name": "totp_backup", + "ordinal": 13, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false, + false, + true, + true, + true, + true, + true, + false, + false, + true, + true + ] + }, + "hash": "5567f75b47f739e85da3469bec0202be315c42dfc820d3c37bba498b1b783811" +} diff --git a/crates/database/.sqlx/query-56a9c0dff010858189a95087d014c7d0ce930da5d841b9d788a9c0e84b580bc6.json b/crates/database/.sqlx/query-56a9c0dff010858189a95087d014c7d0ce930da5d841b9d788a9c0e84b580bc6.json new file mode 100644 index 0000000..018ae8b --- /dev/null +++ b/crates/database/.sqlx/query-56a9c0dff010858189a95087d014c7d0ce930da5d841b9d788a9c0e84b580bc6.json @@ -0,0 +1,44 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n revoked_at as \"revoked_at: DateTime\",\n private_der,\n public_der\n\nfrom keys\norder by created_at desc\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "revoked_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "private_der", + "ordinal": 3, + "type_info": "Blob" + }, + { + "name": "public_der", + "ordinal": 4, + "type_info": "Blob" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + true, + false, + false + ] + }, + "hash": "56a9c0dff010858189a95087d014c7d0ce930da5d841b9d788a9c0e84b580bc6" +} diff --git a/crates/database/.sqlx/query-58e0626629a768c33783bbc926c3d1477ad7e4e983b61ede013e5b066940eb5c.json b/crates/database/.sqlx/query-58e0626629a768c33783bbc926c3d1477ad7e4e983b61ede013e5b066940eb5c.json new file mode 100644 index 0000000..c72c0d6 --- /dev/null +++ b/crates/database/.sqlx/query-58e0626629a768c33783bbc926c3d1477ad7e4e983b61ede013e5b066940eb5c.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update users\n\nset timezone = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "58e0626629a768c33783bbc926c3d1477ad7e4e983b61ede013e5b066940eb5c" +} diff --git a/crates/database/.sqlx/query-5a365b761ada7d5f67e5ad3ff9a1a89d96383e28b15186576f90ff59f309196c.json b/crates/database/.sqlx/query-5a365b761ada7d5f67e5ad3ff9a1a89d96383e28b15186576f90ff59f309196c.json new file mode 100644 index 0000000..d51c948 --- /dev/null +++ b/crates/database/.sqlx/query-5a365b761ada7d5f67e5ad3ff9a1a89d96383e28b15186576f90ff59f309196c.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update totp_login_requests\n\nset used_at = CURRENT_TIMESTAMP\n\nwhere user is ?\n and used_at is null", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "5a365b761ada7d5f67e5ad3ff9a1a89d96383e28b15186576f90ff59f309196c" +} diff --git a/crates/database/.sqlx/query-5e148a43d9f64c73296b2b70deef07d2c863a93fff693aec1b47378c44bf77de.json b/crates/database/.sqlx/query-5e148a43d9f64c73296b2b70deef07d2c863a93fff693aec1b47378c44bf77de.json new file mode 100644 index 0000000..bdd0bbd --- /dev/null +++ b/crates/database/.sqlx/query-5e148a43d9f64c73296b2b70deef07d2c863a93fff693aec1b47378c44bf77de.json @@ -0,0 +1,38 @@ +{ + "db_name": "SQLite", + "query": "select name,\n label,\n created_at as \"created_at: DateTime\",\n is_archived as \"is_archived: bool\"\nfrom roles\n\norder by created_at desc\n", + "describe": { + "columns": [ + { + "name": "name", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "label", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "is_archived: bool", + "ordinal": 3, + "type_info": "Int64" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false + ] + }, + "hash": "5e148a43d9f64c73296b2b70deef07d2c863a93fff693aec1b47378c44bf77de" +} diff --git a/crates/database/.sqlx/query-5f946348ad62389fab3c97a1563d1592cbc5180abbba6d5abd44326bf0862669.json b/crates/database/.sqlx/query-5f946348ad62389fab3c97a1563d1592cbc5180abbba6d5abd44326bf0862669.json new file mode 100644 index 0000000..9e36604 --- /dev/null +++ b/crates/database/.sqlx/query-5f946348ad62389fab3c97a1563d1592cbc5180abbba6d5abd44326bf0862669.json @@ -0,0 +1,44 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n revoked_at as \"revoked_at: DateTime\",\n private_der,\n public_der\n\nfrom keys\nwhere revoked_at is not null\norder by created_at desc\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "revoked_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "private_der", + "ordinal": 3, + "type_info": "Blob" + }, + { + "name": "public_der", + "ordinal": 4, + "type_info": "Blob" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + true, + false, + false + ] + }, + "hash": "5f946348ad62389fab3c97a1563d1592cbc5180abbba6d5abd44326bf0862669" +} diff --git a/crates/database/.sqlx/query-62c75412f673f6a293b0d188d79c50676ec21cf94e2e50e18f9279c91e6b85c8.json b/crates/database/.sqlx/query-62c75412f673f6a293b0d188d79c50676ec21cf94e2e50e18f9279c91e6b85c8.json new file mode 100644 index 0000000..8b695de --- /dev/null +++ b/crates/database/.sqlx/query-62c75412f673f6a293b0d188d79c50676ec21cf94e2e50e18f9279c91e6b85c8.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "insert or ignore into settings(id)\nvalues (0);", + "describe": { + "columns": [], + "parameters": { + "Right": 0 + }, + "nullable": [] + }, + "hash": "62c75412f673f6a293b0d188d79c50676ec21cf94e2e50e18f9279c91e6b85c8" +} diff --git a/crates/database/.sqlx/query-645f583812c4d71570d1e84b866e85c5a012d71cd745494049a8d9bebab3ed61.json b/crates/database/.sqlx/query-645f583812c4d71570d1e84b866e85c5a012d71cd745494049a8d9bebab3ed61.json new file mode 100644 index 0000000..f95565f --- /dev/null +++ b/crates/database/.sqlx/query-645f583812c4d71570d1e84b866e85c5a012d71cd745494049a8d9bebab3ed61.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update totp_login_requests\n\nset used_at = CURRENT_TIMESTAMP\n\nwhere token is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "645f583812c4d71570d1e84b866e85c5a012d71cd745494049a8d9bebab3ed61" +} diff --git a/crates/database/.sqlx/query-657fdc2b228b14a6aba717e5083daf48204274ab62d73ec8968bcd0c7568b157.json b/crates/database/.sqlx/query-657fdc2b228b14a6aba717e5083daf48204274ab62d73ec8968bcd0c7568b157.json new file mode 100644 index 0000000..fca73b9 --- /dev/null +++ b/crates/database/.sqlx/query-657fdc2b228b14a6aba717e5083daf48204274ab62d73ec8968bcd0c7568b157.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "vacuum", + "describe": { + "columns": [], + "parameters": { + "Right": 0 + }, + "nullable": [] + }, + "hash": "657fdc2b228b14a6aba717e5083daf48204274ab62d73ec8968bcd0c7568b157" +} diff --git a/crates/database/.sqlx/query-68cfa3d135eb4cdbdbcb3b943518b4ac09c371af689c444eb439a37f91ecf7a5.json b/crates/database/.sqlx/query-68cfa3d135eb4cdbdbcb3b943518b4ac09c371af689c444eb439a37f91ecf7a5.json new file mode 100644 index 0000000..331a66d --- /dev/null +++ b/crates/database/.sqlx/query-68cfa3d135eb4cdbdbcb3b943518b4ac09c371af689c444eb439a37f91ecf7a5.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update users\n\nset paper_key = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "68cfa3d135eb4cdbdbcb3b943518b4ac09c371af689c444eb439a37f91ecf7a5" +} diff --git a/crates/database/.sqlx/query-693c8c3de266cb3a8fc98bdea8e3b87de0dcb78316628d48f0e6efc0f8103040.json b/crates/database/.sqlx/query-693c8c3de266cb3a8fc98bdea8e3b87de0dcb78316628d48f0e6efc0f8103040.json new file mode 100644 index 0000000..3e08f64 --- /dev/null +++ b/crates/database/.sqlx/query-693c8c3de266cb3a8fc98bdea8e3b87de0dcb78316628d48f0e6efc0f8103040.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update roles\n\nset label = ?\n\nwhere name is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "693c8c3de266cb3a8fc98bdea8e3b87de0dcb78316628d48f0e6efc0f8103040" +} diff --git a/crates/database/.sqlx/query-6fa3c48b9e93fb9ec6807f7547a8f999fc55a6fb8ad4abe7af89ec52e0d10a0e.json b/crates/database/.sqlx/query-6fa3c48b9e93fb9ec6807f7547a8f999fc55a6fb8ad4abe7af89ec52e0d10a0e.json new file mode 100644 index 0000000..a95f182 --- /dev/null +++ b/crates/database/.sqlx/query-6fa3c48b9e93fb9ec6807f7547a8f999fc55a6fb8ad4abe7af89ec52e0d10a0e.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "delete\nfrom permissions\n\nwhere user is ?\n and role is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "6fa3c48b9e93fb9ec6807f7547a8f999fc55a6fb8ad4abe7af89ec52e0d10a0e" +} diff --git a/crates/database/.sqlx/query-6ff12f357d884a50035d708577a7f3109a07a1ca193cb3082d13687af65c6de0.json b/crates/database/.sqlx/query-6ff12f357d884a50035d708577a7f3109a07a1ca193cb3082d13687af65c6de0.json new file mode 100644 index 0000000..a942303 --- /dev/null +++ b/crates/database/.sqlx/query-6ff12f357d884a50035d708577a7f3109a07a1ca193cb3082d13687af65c6de0.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update users\n\nset is_admin = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "6ff12f357d884a50035d708577a7f3109a07a1ca193cb3082d13687af65c6de0" +} diff --git a/crates/database/.sqlx/query-71c74369dc5d374d8ec5aa347b5f599728b74e545df3e986e3e7e66882f73ba0.json b/crates/database/.sqlx/query-71c74369dc5d374d8ec5aa347b5f599728b74e545df3e986e3e7e66882f73ba0.json new file mode 100644 index 0000000..7d8f135 --- /dev/null +++ b/crates/database/.sqlx/query-71c74369dc5d374d8ec5aa347b5f599728b74e545df3e986e3e7e66882f73ba0.json @@ -0,0 +1,98 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n is_admin as \"is_admin: bool\",\n username,\n name,\n email,\n password,\n password_recover,\n paper_key,\n is_archived as \"is_archived: bool\",\n timezone,\n totp_secret,\n totp_backup\nfrom users\n\nwhere id is (?)\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "is_admin: bool", + "ordinal": 3, + "type_info": "Int64" + }, + { + "name": "username", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "name", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "email", + "ordinal": 6, + "type_info": "Text" + }, + { + "name": "password", + "ordinal": 7, + "type_info": "Text" + }, + { + "name": "password_recover", + "ordinal": 8, + "type_info": "Text" + }, + { + "name": "paper_key", + "ordinal": 9, + "type_info": "Text" + }, + { + "name": "is_archived: bool", + "ordinal": 10, + "type_info": "Int64" + }, + { + "name": "timezone", + "ordinal": 11, + "type_info": "Text" + }, + { + "name": "totp_secret", + "ordinal": 12, + "type_info": "Blob" + }, + { + "name": "totp_backup", + "ordinal": 13, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false, + false, + true, + true, + true, + true, + true, + false, + false, + true, + true + ] + }, + "hash": "71c74369dc5d374d8ec5aa347b5f599728b74e545df3e986e3e7e66882f73ba0" +} diff --git a/crates/database/.sqlx/query-73bdbde04fca37f2411e7a9e1b6dbccc0dd4d12ebcb933024d9867f07bba3eb8.json b/crates/database/.sqlx/query-73bdbde04fca37f2411e7a9e1b6dbccc0dd4d12ebcb933024d9867f07bba3eb8.json new file mode 100644 index 0000000..eaf15bc --- /dev/null +++ b/crates/database/.sqlx/query-73bdbde04fca37f2411e7a9e1b6dbccc0dd4d12ebcb933024d9867f07bba3eb8.json @@ -0,0 +1,32 @@ +{ + "db_name": "SQLite", + "query": "select user,\n role,\n created_at as \"created_at: DateTime\"\n\nfrom permissions\nwhere user is (?)\n and role is (?)\n", + "describe": { + "columns": [ + { + "name": "user", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "role", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 2, + "type_info": "Text" + } + ], + "parameters": { + "Right": 2 + }, + "nullable": [ + false, + false, + false + ] + }, + "hash": "73bdbde04fca37f2411e7a9e1b6dbccc0dd4d12ebcb933024d9867f07bba3eb8" +} diff --git a/crates/database/.sqlx/query-7b7f2430b2a719b3d5ce504c0a9302731b3ff82da99ba7771c2728d88aee642a.json b/crates/database/.sqlx/query-7b7f2430b2a719b3d5ce504c0a9302731b3ff82da99ba7771c2728d88aee642a.json new file mode 100644 index 0000000..dc5723d --- /dev/null +++ b/crates/database/.sqlx/query-7b7f2430b2a719b3d5ce504c0a9302731b3ff82da99ba7771c2728d88aee642a.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update keys\n\nset revoked_at = CURRENT_TIMESTAMP\n\nwhere revoked_at is null\n and id is not (?)\n", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "7b7f2430b2a719b3d5ce504c0a9302731b3ff82da99ba7771c2728d88aee642a" +} diff --git a/crates/database/.sqlx/query-7f26b73408318040f94fb6574d5cc25482cef1a57ba4c467fa0bc0fdf25bf39c.json b/crates/database/.sqlx/query-7f26b73408318040f94fb6574d5cc25482cef1a57ba4c467fa0bc0fdf25bf39c.json new file mode 100644 index 0000000..1aa1dd7 --- /dev/null +++ b/crates/database/.sqlx/query-7f26b73408318040f94fb6574d5cc25482cef1a57ba4c467fa0bc0fdf25bf39c.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update authorization_codes\n\nset used_at = CURRENT_TIMESTAMP\n\nwhere code is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "7f26b73408318040f94fb6574d5cc25482cef1a57ba4c467fa0bc0fdf25bf39c" +} diff --git a/crates/database/.sqlx/query-87906834faa6f185aee0e4d893b9754908b1c173e9dce383663d723891a89cd1.json b/crates/database/.sqlx/query-87906834faa6f185aee0e4d893b9754908b1c173e9dce383663d723891a89cd1.json new file mode 100644 index 0000000..beacd78 --- /dev/null +++ b/crates/database/.sqlx/query-87906834faa6f185aee0e4d893b9754908b1c173e9dce383663d723891a89cd1.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update settings\n\nset url = ?\n\nwhere id is 0\n", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "87906834faa6f185aee0e4d893b9754908b1c173e9dce383663d723891a89cd1" +} diff --git a/crates/database/.sqlx/query-8c131e1f73ffa01fc3e5e08071a786b85f23b9638d1c7eaa7b633c052703c911.json b/crates/database/.sqlx/query-8c131e1f73ffa01fc3e5e08071a786b85f23b9638d1c7eaa7b633c052703c911.json new file mode 100644 index 0000000..edb3b77 --- /dev/null +++ b/crates/database/.sqlx/query-8c131e1f73ffa01fc3e5e08071a786b85f23b9638d1c7eaa7b633c052703c911.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update users\n\nset name = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "8c131e1f73ffa01fc3e5e08071a786b85f23b9638d1c7eaa7b633c052703c911" +} diff --git a/crates/database/.sqlx/query-8c37375b0694df02b7f1b6678e4e2c3ffbc590c0f305ff5a8f44350fba3eaec7.json b/crates/database/.sqlx/query-8c37375b0694df02b7f1b6678e4e2c3ffbc590c0f305ff5a8f44350fba3eaec7.json new file mode 100644 index 0000000..0cd8ab3 --- /dev/null +++ b/crates/database/.sqlx/query-8c37375b0694df02b7f1b6678e4e2c3ffbc590c0f305ff5a8f44350fba3eaec7.json @@ -0,0 +1,32 @@ +{ + "db_name": "SQLite", + "query": "select user,\n role,\n created_at as \"created_at: DateTime\"\n\nfrom permissions\nwhere user is (?)\n", + "describe": { + "columns": [ + { + "name": "user", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "role", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 2, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false + ] + }, + "hash": "8c37375b0694df02b7f1b6678e4e2c3ffbc590c0f305ff5a8f44350fba3eaec7" +} diff --git a/crates/database/.sqlx/query-93b15a942a6c7db595990f00e14fde26d6d36b8c8de9935179d41f6c7c755978.json b/crates/database/.sqlx/query-93b15a942a6c7db595990f00e14fde26d6d36b8c8de9935179d41f6c7c755978.json new file mode 100644 index 0000000..3b7b28c --- /dev/null +++ b/crates/database/.sqlx/query-93b15a942a6c7db595990f00e14fde26d6d36b8c8de9935179d41f6c7c755978.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update refresh_tokens\n\nset revoked_at = CURRENT_TIMESTAMP\n\nwhere app is ?\n and revoked_at is null", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "93b15a942a6c7db595990f00e14fde26d6d36b8c8de9935179d41f6c7c755978" +} diff --git a/crates/database/.sqlx/query-9784afe2dcff4db86908175d4e3145baf72b3361f43e4127350a14a183ef63f7.json b/crates/database/.sqlx/query-9784afe2dcff4db86908175d4e3145baf72b3361f43e4127350a14a183ef63f7.json new file mode 100644 index 0000000..f5d5098 --- /dev/null +++ b/crates/database/.sqlx/query-9784afe2dcff4db86908175d4e3145baf72b3361f43e4127350a14a183ef63f7.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update users\n\nset password = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "9784afe2dcff4db86908175d4e3145baf72b3361f43e4127350a14a183ef63f7" +} diff --git a/crates/database/.sqlx/query-979c7ba41dac5ea5593fc169ea95b68d2311c5ae05c1e18db43424c8ed2f2e4e.json b/crates/database/.sqlx/query-979c7ba41dac5ea5593fc169ea95b68d2311c5ae05c1e18db43424c8ed2f2e4e.json new file mode 100644 index 0000000..fb185a3 --- /dev/null +++ b/crates/database/.sqlx/query-979c7ba41dac5ea5593fc169ea95b68d2311c5ae05c1e18db43424c8ed2f2e4e.json @@ -0,0 +1,98 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n is_admin as \"is_admin: bool\",\n username,\n name,\n email,\n password,\n password_recover,\n paper_key,\n is_archived as \"is_archived: bool\",\n timezone,\n totp_secret,\n totp_backup\nfrom users\n\norder by created_at desc\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "is_admin: bool", + "ordinal": 3, + "type_info": "Int64" + }, + { + "name": "username", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "name", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "email", + "ordinal": 6, + "type_info": "Text" + }, + { + "name": "password", + "ordinal": 7, + "type_info": "Text" + }, + { + "name": "password_recover", + "ordinal": 8, + "type_info": "Text" + }, + { + "name": "paper_key", + "ordinal": 9, + "type_info": "Text" + }, + { + "name": "is_archived: bool", + "ordinal": 10, + "type_info": "Int64" + }, + { + "name": "timezone", + "ordinal": 11, + "type_info": "Text" + }, + { + "name": "totp_secret", + "ordinal": 12, + "type_info": "Blob" + }, + { + "name": "totp_backup", + "ordinal": 13, + "type_info": "Text" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false, + false, + true, + true, + true, + true, + true, + false, + false, + true, + true + ] + }, + "hash": "979c7ba41dac5ea5593fc169ea95b68d2311c5ae05c1e18db43424c8ed2f2e4e" +} diff --git a/crates/database/.sqlx/query-9a3aef02e55fc436e9c09c1ee6d29477c2746765f6e7d5679058ec6525ee7253.json b/crates/database/.sqlx/query-9a3aef02e55fc436e9c09c1ee6d29477c2746765f6e7d5679058ec6525ee7253.json new file mode 100644 index 0000000..d302470 --- /dev/null +++ b/crates/database/.sqlx/query-9a3aef02e55fc436e9c09c1ee6d29477c2746765f6e7d5679058ec6525ee7253.json @@ -0,0 +1,38 @@ +{ + "db_name": "SQLite", + "query": "select name,\n label,\n created_at as \"created_at: DateTime\",\n is_archived as \"is_archived: bool\"\nfrom roles\n\nwhere name is (?)\n", + "describe": { + "columns": [ + { + "name": "name", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "label", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "is_archived: bool", + "ordinal": 3, + "type_info": "Int64" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false + ] + }, + "hash": "9a3aef02e55fc436e9c09c1ee6d29477c2746765f6e7d5679058ec6525ee7253" +} diff --git a/crates/database/.sqlx/query-9dc379b0f3a3c944a33ef01dc40489b29b2a61b9f73f6ca4b5df7e9fb9bccf90.json b/crates/database/.sqlx/query-9dc379b0f3a3c944a33ef01dc40489b29b2a61b9f73f6ca4b5df7e9fb9bccf90.json new file mode 100644 index 0000000..f204ff3 --- /dev/null +++ b/crates/database/.sqlx/query-9dc379b0f3a3c944a33ef01dc40489b29b2a61b9f73f6ca4b5df7e9fb9bccf90.json @@ -0,0 +1,98 @@ +{ + "db_name": "SQLite", + "query": "select u.id,\n u.created_at as \"created_at: DateTime\",\n u.updated_at as \"updated_at: DateTime\",\n u.is_admin as \"is_admin: bool\",\n u.username,\n u.name,\n u.email,\n u.password,\n u.password_recover,\n u.paper_key,\n u.is_archived as \"is_archived: bool\",\n u.timezone,\n u.totp_secret,\n u.totp_backup\nfrom users u\n\n inner join settings s on u.id = s.first_admin\n\nwhere u.is_admin is 1\n and u.is_archived is 0\n and u.id is s.first_admin\n\nlimit 1", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "is_admin: bool", + "ordinal": 3, + "type_info": "Int64" + }, + { + "name": "username", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "name", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "email", + "ordinal": 6, + "type_info": "Text" + }, + { + "name": "password", + "ordinal": 7, + "type_info": "Text" + }, + { + "name": "password_recover", + "ordinal": 8, + "type_info": "Text" + }, + { + "name": "paper_key", + "ordinal": 9, + "type_info": "Text" + }, + { + "name": "is_archived: bool", + "ordinal": 10, + "type_info": "Int64" + }, + { + "name": "timezone", + "ordinal": 11, + "type_info": "Text" + }, + { + "name": "totp_secret", + "ordinal": 12, + "type_info": "Blob" + }, + { + "name": "totp_backup", + "ordinal": 13, + "type_info": "Text" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false, + false, + true, + true, + true, + true, + true, + false, + false, + true, + true + ] + }, + "hash": "9dc379b0f3a3c944a33ef01dc40489b29b2a61b9f73f6ca4b5df7e9fb9bccf90" +} diff --git a/crates/database/.sqlx/query-9f1885c4786f73335b4d614f562bb7cad49c91bfe7f084d8c25c6c571673ab90.json b/crates/database/.sqlx/query-9f1885c4786f73335b4d614f562bb7cad49c91bfe7f084d8c25c6c571673ab90.json new file mode 100644 index 0000000..4a0a54e --- /dev/null +++ b/crates/database/.sqlx/query-9f1885c4786f73335b4d614f562bb7cad49c91bfe7f084d8c25c6c571673ab90.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update refresh_tokens\n\nset revoked_at = CURRENT_TIMESTAMP\n\nwhere revoked_at is null", + "describe": { + "columns": [], + "parameters": { + "Right": 0 + }, + "nullable": [] + }, + "hash": "9f1885c4786f73335b4d614f562bb7cad49c91bfe7f084d8c25c6c571673ab90" +} diff --git a/crates/database/.sqlx/query-a0dd1ddcc7d58fad78ed6c5027a9559428be9d0d59df6409ca9ec7cd728f6001.json b/crates/database/.sqlx/query-a0dd1ddcc7d58fad78ed6c5027a9559428be9d0d59df6409ca9ec7cd728f6001.json new file mode 100644 index 0000000..ca6e7e5 --- /dev/null +++ b/crates/database/.sqlx/query-a0dd1ddcc7d58fad78ed6c5027a9559428be9d0d59df6409ca9ec7cd728f6001.json @@ -0,0 +1,44 @@ +{ + "db_name": "SQLite", + "query": "select\n -- info\n token,\n user,\n\n -- timings\n created_at as \"created_at: DateTime\",\n expires_at as \"expires_at: DateTime\",\n used_at as \"used_at: DateTime\"\nfrom totp_login_requests\n\nwhere token is (?)", + "describe": { + "columns": [ + { + "name": "token", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "user", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "expires_at: DateTime", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "used_at: DateTime", + "ordinal": 4, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false, + true + ] + }, + "hash": "a0dd1ddcc7d58fad78ed6c5027a9559428be9d0d59df6409ca9ec7cd728f6001" +} diff --git a/crates/database/.sqlx/query-a2bf546b2cf6a53a3a127c08fbb7f3dfcf0fe7a30364b1fb57c3e6b757093578.json b/crates/database/.sqlx/query-a2bf546b2cf6a53a3a127c08fbb7f3dfcf0fe7a30364b1fb57c3e6b757093578.json new file mode 100644 index 0000000..c8ba3a8 --- /dev/null +++ b/crates/database/.sqlx/query-a2bf546b2cf6a53a3a127c08fbb7f3dfcf0fe7a30364b1fb57c3e6b757093578.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "insert into totp_login_requests (token, user, expires_at)\nvalues (?, ?, datetime(?, 'unixepoch'))\n", + "describe": { + "columns": [], + "parameters": { + "Right": 3 + }, + "nullable": [] + }, + "hash": "a2bf546b2cf6a53a3a127c08fbb7f3dfcf0fe7a30364b1fb57c3e6b757093578" +} diff --git a/crates/database/.sqlx/query-a55b17a3a70e6445517f19536220f0dafc78a0e8b69221dee4715f84841839da.json b/crates/database/.sqlx/query-a55b17a3a70e6445517f19536220f0dafc78a0e8b69221dee4715f84841839da.json new file mode 100644 index 0000000..d6b6b3e --- /dev/null +++ b/crates/database/.sqlx/query-a55b17a3a70e6445517f19536220f0dafc78a0e8b69221dee4715f84841839da.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "insert into authorization_codes (code, app, user, expires_at)\nvalues (?, ?, ?, datetime(?, 'unixepoch'))\n", + "describe": { + "columns": [], + "parameters": { + "Right": 4 + }, + "nullable": [] + }, + "hash": "a55b17a3a70e6445517f19536220f0dafc78a0e8b69221dee4715f84841839da" +} diff --git a/crates/database/.sqlx/query-a9e910eedc27c495262571520627363290640b3af7d177a024cad06220a770f0.json b/crates/database/.sqlx/query-a9e910eedc27c495262571520627363290640b3af7d177a024cad06220a770f0.json new file mode 100644 index 0000000..9de5f40 --- /dev/null +++ b/crates/database/.sqlx/query-a9e910eedc27c495262571520627363290640b3af7d177a024cad06220a770f0.json @@ -0,0 +1,32 @@ +{ + "db_name": "SQLite", + "query": "select user,\n role,\n created_at as \"created_at: DateTime\"\n\nfrom permissions\n", + "describe": { + "columns": [ + { + "name": "user", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "role", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 2, + "type_info": "Text" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false + ] + }, + "hash": "a9e910eedc27c495262571520627363290640b3af7d177a024cad06220a770f0" +} diff --git a/crates/database/.sqlx/query-aae93a39c5a9f46235b5ef871b45ba76d7efa1677bfe8291a62b8cbf9cd9e0d5.json b/crates/database/.sqlx/query-aae93a39c5a9f46235b5ef871b45ba76d7efa1677bfe8291a62b8cbf9cd9e0d5.json new file mode 100644 index 0000000..46bd056 --- /dev/null +++ b/crates/database/.sqlx/query-aae93a39c5a9f46235b5ef871b45ba76d7efa1677bfe8291a62b8cbf9cd9e0d5.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update settings\n\nset first_admin = ?\n\nwhere id is 0\n", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "aae93a39c5a9f46235b5ef871b45ba76d7efa1677bfe8291a62b8cbf9cd9e0d5" +} diff --git a/crates/database/.sqlx/query-adcbc32e2c284b59eefb79fd2ff33d4ff1c2e250b2d103d8500fae203fb18a6d.json b/crates/database/.sqlx/query-adcbc32e2c284b59eefb79fd2ff33d4ff1c2e250b2d103d8500fae203fb18a6d.json new file mode 100644 index 0000000..3a56c37 --- /dev/null +++ b/crates/database/.sqlx/query-adcbc32e2c284b59eefb79fd2ff33d4ff1c2e250b2d103d8500fae203fb18a6d.json @@ -0,0 +1,56 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n business_name,\n business_logo,\n url,\n first_admin\n\nfrom settings\n\nwhere id is 0\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Int64" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "business_name", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "business_logo", + "ordinal": 4, + "type_info": "Blob" + }, + { + "name": "url", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "first_admin", + "ordinal": 6, + "type_info": "Text" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + true, + true, + true, + true + ] + }, + "hash": "adcbc32e2c284b59eefb79fd2ff33d4ff1c2e250b2d103d8500fae203fb18a6d" +} diff --git a/crates/database/.sqlx/query-afc08ba1fd47656c7d987e3817941004f988e683d28df2f533ff6272bc71b356.json b/crates/database/.sqlx/query-afc08ba1fd47656c7d987e3817941004f988e683d28df2f533ff6272bc71b356.json new file mode 100644 index 0000000..ace51eb --- /dev/null +++ b/crates/database/.sqlx/query-afc08ba1fd47656c7d987e3817941004f988e683d28df2f533ff6272bc71b356.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update users\n\nset totp_secret = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "afc08ba1fd47656c7d987e3817941004f988e683d28df2f533ff6272bc71b356" +} diff --git a/crates/database/.sqlx/query-b3936ae237f02cc048ca084372f7975921c79aef8fcd6d15a4d63c10f2377d24.json b/crates/database/.sqlx/query-b3936ae237f02cc048ca084372f7975921c79aef8fcd6d15a4d63c10f2377d24.json new file mode 100644 index 0000000..45a5da9 --- /dev/null +++ b/crates/database/.sqlx/query-b3936ae237f02cc048ca084372f7975921c79aef8fcd6d15a4d63c10f2377d24.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "insert into refresh_tokens (token, ip_address, user, app, expires_at)\nvalues (?, ?, ?, ?, datetime(?, 'unixepoch'))\n", + "describe": { + "columns": [], + "parameters": { + "Right": 5 + }, + "nullable": [] + }, + "hash": "b3936ae237f02cc048ca084372f7975921c79aef8fcd6d15a4d63c10f2377d24" +} diff --git a/crates/database/.sqlx/query-baaae9952348da17e2f4d099c6903c50bc90daed80ee2df1fd0dc1d9d2c67b26.json b/crates/database/.sqlx/query-baaae9952348da17e2f4d099c6903c50bc90daed80ee2df1fd0dc1d9d2c67b26.json new file mode 100644 index 0000000..a437ee4 --- /dev/null +++ b/crates/database/.sqlx/query-baaae9952348da17e2f4d099c6903c50bc90daed80ee2df1fd0dc1d9d2c67b26.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update users\n\nset totp_backup = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "baaae9952348da17e2f4d099c6903c50bc90daed80ee2df1fd0dc1d9d2c67b26" +} diff --git a/crates/database/.sqlx/query-c00e5fce25caebdeeb24db20880e6c2210f583cddb0d478075f78124258712dd.json b/crates/database/.sqlx/query-c00e5fce25caebdeeb24db20880e6c2210f583cddb0d478075f78124258712dd.json new file mode 100644 index 0000000..5796527 --- /dev/null +++ b/crates/database/.sqlx/query-c00e5fce25caebdeeb24db20880e6c2210f583cddb0d478075f78124258712dd.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update refresh_tokens\n\nset revoked_at = CURRENT_TIMESTAMP\n\nwhere user is ?\n and revoked_at is null", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "c00e5fce25caebdeeb24db20880e6c2210f583cddb0d478075f78124258712dd" +} diff --git a/crates/database/.sqlx/query-c28c88869239edc02c073f461645eca82d816650fabe65464e2059d5908d8a28.json b/crates/database/.sqlx/query-c28c88869239edc02c073f461645eca82d816650fabe65464e2059d5908d8a28.json new file mode 100644 index 0000000..1022356 --- /dev/null +++ b/crates/database/.sqlx/query-c28c88869239edc02c073f461645eca82d816650fabe65464e2059d5908d8a28.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update users\n\nset email = ?\n\nwhere id is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "c28c88869239edc02c073f461645eca82d816650fabe65464e2059d5908d8a28" +} diff --git a/crates/database/.sqlx/query-c3dcd38a2d4ff391aed4a2ac3f393646319950334494ecb5fa7effe9806d07ab.json b/crates/database/.sqlx/query-c3dcd38a2d4ff391aed4a2ac3f393646319950334494ecb5fa7effe9806d07ab.json new file mode 100644 index 0000000..dfcaf95 --- /dev/null +++ b/crates/database/.sqlx/query-c3dcd38a2d4ff391aed4a2ac3f393646319950334494ecb5fa7effe9806d07ab.json @@ -0,0 +1,50 @@ +{ + "db_name": "SQLite", + "query": "select code,\n app,\n user,\n created_at as \"created_at: DateTime\",\n expires_at as \"expires_at: DateTime\",\n used_at as \"used_at: DateTime\"\nfrom authorization_codes\n", + "describe": { + "columns": [ + { + "name": "code", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "app", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "user", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "expires_at: DateTime", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "used_at: DateTime", + "ordinal": 5, + "type_info": "Text" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false, + false, + true + ] + }, + "hash": "c3dcd38a2d4ff391aed4a2ac3f393646319950334494ecb5fa7effe9806d07ab" +} diff --git a/crates/database/.sqlx/query-c6157ec3928527ec0ac5f493a5a91faff7e3668204a179e827a87d6279a02c40.json b/crates/database/.sqlx/query-c6157ec3928527ec0ac5f493a5a91faff7e3668204a179e827a87d6279a02c40.json new file mode 100644 index 0000000..0d07457 --- /dev/null +++ b/crates/database/.sqlx/query-c6157ec3928527ec0ac5f493a5a91faff7e3668204a179e827a87d6279a02c40.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update refresh_tokens\n\nset revoked_at = CURRENT_TIMESTAMP\n\nwhere token is ?", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "c6157ec3928527ec0ac5f493a5a91faff7e3668204a179e827a87d6279a02c40" +} diff --git a/crates/database/.sqlx/query-c724c273f9d99bde48c29d7a0e65198a1ddd775cd1bda10f6e4a8acfbca64b72.json b/crates/database/.sqlx/query-c724c273f9d99bde48c29d7a0e65198a1ddd775cd1bda10f6e4a8acfbca64b72.json new file mode 100644 index 0000000..bc0e38e --- /dev/null +++ b/crates/database/.sqlx/query-c724c273f9d99bde48c29d7a0e65198a1ddd775cd1bda10f6e4a8acfbca64b72.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "insert into permissions(user, role)\nvalues (?, ?)\n", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "c724c273f9d99bde48c29d7a0e65198a1ddd775cd1bda10f6e4a8acfbca64b72" +} diff --git a/crates/database/.sqlx/query-ca7d100a9440fb7854a27f9aafd91ce94d1df9fa1ccd65b549be92d16741f9d2.json b/crates/database/.sqlx/query-ca7d100a9440fb7854a27f9aafd91ce94d1df9fa1ccd65b549be92d16741f9d2.json new file mode 100644 index 0000000..a311ef4 --- /dev/null +++ b/crates/database/.sqlx/query-ca7d100a9440fb7854a27f9aafd91ce94d1df9fa1ccd65b549be92d16741f9d2.json @@ -0,0 +1,98 @@ +{ + "db_name": "SQLite", + "query": "select u.id,\n u.created_at as \"created_at: DateTime\",\n u.updated_at as \"updated_at: DateTime\",\n u.is_admin as \"is_admin: bool\",\n u.username,\n u.name,\n u.email,\n u.password,\n u.password_recover,\n u.paper_key,\n u.is_archived as \"is_archived: bool\",\n u.timezone,\n u.totp_secret,\n u.totp_backup\nfrom users u\n\n inner join refresh_tokens rt on u.id = rt.user\n\nwhere rt.token is ?\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "is_admin: bool", + "ordinal": 3, + "type_info": "Int64" + }, + { + "name": "username", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "name", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "email", + "ordinal": 6, + "type_info": "Text" + }, + { + "name": "password", + "ordinal": 7, + "type_info": "Text" + }, + { + "name": "password_recover", + "ordinal": 8, + "type_info": "Text" + }, + { + "name": "paper_key", + "ordinal": 9, + "type_info": "Text" + }, + { + "name": "is_archived: bool", + "ordinal": 10, + "type_info": "Int64" + }, + { + "name": "timezone", + "ordinal": 11, + "type_info": "Text" + }, + { + "name": "totp_secret", + "ordinal": 12, + "type_info": "Blob" + }, + { + "name": "totp_backup", + "ordinal": 13, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false, + false, + true, + true, + true, + true, + true, + false, + false, + true, + true + ] + }, + "hash": "ca7d100a9440fb7854a27f9aafd91ce94d1df9fa1ccd65b549be92d16741f9d2" +} diff --git a/crates/database/.sqlx/query-cf12bd3112b2047f263118649ba89800509d94f3a858be99fb7ce8c8bc05d8b7.json b/crates/database/.sqlx/query-cf12bd3112b2047f263118649ba89800509d94f3a858be99fb7ce8c8bc05d8b7.json new file mode 100644 index 0000000..2590fda --- /dev/null +++ b/crates/database/.sqlx/query-cf12bd3112b2047f263118649ba89800509d94f3a858be99fb7ce8c8bc05d8b7.json @@ -0,0 +1,98 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n is_admin as \"is_admin: bool\",\n username,\n name,\n email,\n password,\n password_recover,\n paper_key,\n is_archived as \"is_archived: bool\",\n timezone,\n totp_secret,\n totp_backup\nfrom users\n\nwhere password_recover is (?)\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "is_admin: bool", + "ordinal": 3, + "type_info": "Int64" + }, + { + "name": "username", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "name", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "email", + "ordinal": 6, + "type_info": "Text" + }, + { + "name": "password", + "ordinal": 7, + "type_info": "Text" + }, + { + "name": "password_recover", + "ordinal": 8, + "type_info": "Text" + }, + { + "name": "paper_key", + "ordinal": 9, + "type_info": "Text" + }, + { + "name": "is_archived: bool", + "ordinal": 10, + "type_info": "Int64" + }, + { + "name": "timezone", + "ordinal": 11, + "type_info": "Text" + }, + { + "name": "totp_secret", + "ordinal": 12, + "type_info": "Blob" + }, + { + "name": "totp_backup", + "ordinal": 13, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false, + false, + true, + true, + true, + true, + true, + false, + false, + true, + true + ] + }, + "hash": "cf12bd3112b2047f263118649ba89800509d94f3a858be99fb7ce8c8bc05d8b7" +} diff --git a/crates/database/.sqlx/query-cf624c4e122477228e3bab09f7cd0dedf4776f73e7a86f19e06772a0adf83406.json b/crates/database/.sqlx/query-cf624c4e122477228e3bab09f7cd0dedf4776f73e7a86f19e06772a0adf83406.json new file mode 100644 index 0000000..3e815e6 --- /dev/null +++ b/crates/database/.sqlx/query-cf624c4e122477228e3bab09f7cd0dedf4776f73e7a86f19e06772a0adf83406.json @@ -0,0 +1,50 @@ +{ + "db_name": "SQLite", + "query": "select code,\n app,\n user,\n created_at as \"created_at: DateTime\",\n expires_at as \"expires_at: DateTime\",\n used_at as \"used_at: DateTime\"\nfrom authorization_codes\n\nwhere code is (?)\n", + "describe": { + "columns": [ + { + "name": "code", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "app", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "user", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "expires_at: DateTime", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "used_at: DateTime", + "ordinal": 5, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false, + false, + true + ] + }, + "hash": "cf624c4e122477228e3bab09f7cd0dedf4776f73e7a86f19e06772a0adf83406" +} diff --git a/crates/database/.sqlx/query-d166553746afb2d3eaa1ddcb9986b7b9723258f4051bce8287038e3dd1ac928a.json b/crates/database/.sqlx/query-d166553746afb2d3eaa1ddcb9986b7b9723258f4051bce8287038e3dd1ac928a.json new file mode 100644 index 0000000..0e34ded --- /dev/null +++ b/crates/database/.sqlx/query-d166553746afb2d3eaa1ddcb9986b7b9723258f4051bce8287038e3dd1ac928a.json @@ -0,0 +1,44 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n revoked_at as \"revoked_at: DateTime\",\n private_der,\n public_der\n\nfrom keys\nwhere revoked_at is null\norder by created_at desc\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "revoked_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "private_der", + "ordinal": 3, + "type_info": "Blob" + }, + { + "name": "public_der", + "ordinal": 4, + "type_info": "Blob" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + true, + false, + false + ] + }, + "hash": "d166553746afb2d3eaa1ddcb9986b7b9723258f4051bce8287038e3dd1ac928a" +} diff --git a/crates/database/.sqlx/query-d6d3a401f5563ce339099ccbdedec1ac248865810cafafd5d78d6cc3f74d5237.json b/crates/database/.sqlx/query-d6d3a401f5563ce339099ccbdedec1ac248865810cafafd5d78d6cc3f74d5237.json new file mode 100644 index 0000000..1f5622e --- /dev/null +++ b/crates/database/.sqlx/query-d6d3a401f5563ce339099ccbdedec1ac248865810cafafd5d78d6cc3f74d5237.json @@ -0,0 +1,98 @@ +{ + "db_name": "SQLite", + "query": "select u.id,\n u.created_at as \"created_at: DateTime\",\n u.updated_at as \"updated_at: DateTime\",\n u.is_admin as \"is_admin: bool\",\n u.username,\n u.name,\n u.email,\n u.password,\n u.password_recover,\n u.paper_key,\n u.is_archived as \"is_archived: bool\",\n u.timezone,\n u.totp_secret,\n u.totp_backup\nfrom users u\n\n inner join authorization_codes ac on u.id = ac.user\n\nwhere ac.code is ?", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "is_admin: bool", + "ordinal": 3, + "type_info": "Int64" + }, + { + "name": "username", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "name", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "email", + "ordinal": 6, + "type_info": "Text" + }, + { + "name": "password", + "ordinal": 7, + "type_info": "Text" + }, + { + "name": "password_recover", + "ordinal": 8, + "type_info": "Text" + }, + { + "name": "paper_key", + "ordinal": 9, + "type_info": "Text" + }, + { + "name": "is_archived: bool", + "ordinal": 10, + "type_info": "Int64" + }, + { + "name": "timezone", + "ordinal": 11, + "type_info": "Text" + }, + { + "name": "totp_secret", + "ordinal": 12, + "type_info": "Blob" + }, + { + "name": "totp_backup", + "ordinal": 13, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false, + false, + true, + true, + true, + true, + true, + false, + false, + true, + true + ] + }, + "hash": "d6d3a401f5563ce339099ccbdedec1ac248865810cafafd5d78d6cc3f74d5237" +} diff --git a/crates/database/.sqlx/query-d8517e5faa5292da25d21a85fcb2f676dce0f67275466566d5bbedf0f4b7f4f5.json b/crates/database/.sqlx/query-d8517e5faa5292da25d21a85fcb2f676dce0f67275466566d5bbedf0f4b7f4f5.json new file mode 100644 index 0000000..dcc5b4e --- /dev/null +++ b/crates/database/.sqlx/query-d8517e5faa5292da25d21a85fcb2f676dce0f67275466566d5bbedf0f4b7f4f5.json @@ -0,0 +1,62 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n label,\n redirect_uri,\n secret,\n is_confidential as \"is_confidential: bool\",\n is_archived as \"is_archived: bool\"\nfrom apps\n\nwhere is_archived is 1\norder by created_at desc", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "label", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "redirect_uri", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "secret", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "is_confidential: bool", + "ordinal": 6, + "type_info": "Int64" + }, + { + "name": "is_archived: bool", + "ordinal": 7, + "type_info": "Int64" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + "hash": "d8517e5faa5292da25d21a85fcb2f676dce0f67275466566d5bbedf0f4b7f4f5" +} diff --git a/crates/database/.sqlx/query-e22ba816faac0c17ca9f2c31fd1b4a5f13a09cece9ec78e0b6e018950c91facb.json b/crates/database/.sqlx/query-e22ba816faac0c17ca9f2c31fd1b4a5f13a09cece9ec78e0b6e018950c91facb.json new file mode 100644 index 0000000..a9d610d --- /dev/null +++ b/crates/database/.sqlx/query-e22ba816faac0c17ca9f2c31fd1b4a5f13a09cece9ec78e0b6e018950c91facb.json @@ -0,0 +1,62 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n label,\n redirect_uri,\n secret,\n is_confidential as \"is_confidential: bool\",\n is_archived as \"is_archived: bool\"\nfrom apps\n\nwhere id is (?)\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "label", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "redirect_uri", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "secret", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "is_confidential: bool", + "ordinal": 6, + "type_info": "Int64" + }, + { + "name": "is_archived: bool", + "ordinal": 7, + "type_info": "Int64" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + "hash": "e22ba816faac0c17ca9f2c31fd1b4a5f13a09cece9ec78e0b6e018950c91facb" +} diff --git a/crates/database/.sqlx/query-e977ca16c7bd7ec4125725ff5e42d3c547634e2b608d6be91814bce657e07b65.json b/crates/database/.sqlx/query-e977ca16c7bd7ec4125725ff5e42d3c547634e2b608d6be91814bce657e07b65.json new file mode 100644 index 0000000..c3b11d2 --- /dev/null +++ b/crates/database/.sqlx/query-e977ca16c7bd7ec4125725ff5e42d3c547634e2b608d6be91814bce657e07b65.json @@ -0,0 +1,20 @@ +{ + "db_name": "SQLite", + "query": "select page_count * page_size\nFROM pragma_page_count(), pragma_page_size();", + "describe": { + "columns": [ + { + "name": "page_count * page_size", + "ordinal": 0, + "type_info": "Int" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + null + ] + }, + "hash": "e977ca16c7bd7ec4125725ff5e42d3c547634e2b608d6be91814bce657e07b65" +} diff --git a/crates/database/.sqlx/query-eaf0744f65a1de803fa8cc21b67bad4bdf22760d431265cf97b911e6456b2fd8.json b/crates/database/.sqlx/query-eaf0744f65a1de803fa8cc21b67bad4bdf22760d431265cf97b911e6456b2fd8.json new file mode 100644 index 0000000..40156dc --- /dev/null +++ b/crates/database/.sqlx/query-eaf0744f65a1de803fa8cc21b67bad4bdf22760d431265cf97b911e6456b2fd8.json @@ -0,0 +1,62 @@ +{ + "db_name": "SQLite", + "query": "select a.id,\n a.created_at as \"created_at: DateTime\",\n a.updated_at as \"updated_at: DateTime\",\n a.label,\n a.redirect_uri,\n a.secret,\n a.is_confidential as \"is_confidential: bool\",\n a.is_archived as \"is_archived: bool\"\nfrom apps a\n\n inner join authorization_codes ac on a.id = ac.app\n\nwhere ac.code is ?\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "label", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "redirect_uri", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "secret", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "is_confidential: bool", + "ordinal": 6, + "type_info": "Int64" + }, + { + "name": "is_archived: bool", + "ordinal": 7, + "type_info": "Int64" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + "hash": "eaf0744f65a1de803fa8cc21b67bad4bdf22760d431265cf97b911e6456b2fd8" +} diff --git a/crates/database/.sqlx/query-eb1a0153c88b0b2744ed1b71df04a91a129a0173fbbc3e2536f52d41e8dc99c4.json b/crates/database/.sqlx/query-eb1a0153c88b0b2744ed1b71df04a91a129a0173fbbc3e2536f52d41e8dc99c4.json new file mode 100644 index 0000000..c4b881a --- /dev/null +++ b/crates/database/.sqlx/query-eb1a0153c88b0b2744ed1b71df04a91a129a0173fbbc3e2536f52d41e8dc99c4.json @@ -0,0 +1,62 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n label,\n redirect_uri,\n secret,\n is_confidential as \"is_confidential: bool\",\n is_archived as \"is_archived: bool\"\nfrom apps\n\nwhere id is (?)\n and redirect_uri is (?)\n and is_archived is 0\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "label", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "redirect_uri", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "secret", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "is_confidential: bool", + "ordinal": 6, + "type_info": "Int64" + }, + { + "name": "is_archived: bool", + "ordinal": 7, + "type_info": "Int64" + } + ], + "parameters": { + "Right": 2 + }, + "nullable": [ + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + "hash": "eb1a0153c88b0b2744ed1b71df04a91a129a0173fbbc3e2536f52d41e8dc99c4" +} diff --git a/crates/database/.sqlx/query-ebe28f418d28303b2efe1fe192a63538d29d75c57b67d5eac1ac4ceaa1472a5c.json b/crates/database/.sqlx/query-ebe28f418d28303b2efe1fe192a63538d29d75c57b67d5eac1ac4ceaa1472a5c.json new file mode 100644 index 0000000..1ae835a --- /dev/null +++ b/crates/database/.sqlx/query-ebe28f418d28303b2efe1fe192a63538d29d75c57b67d5eac1ac4ceaa1472a5c.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "update authorization_codes\n\nset used_at = CURRENT_TIMESTAMP\n\nwhere user is ?\n and used_at is null", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "ebe28f418d28303b2efe1fe192a63538d29d75c57b67d5eac1ac4ceaa1472a5c" +} diff --git a/crates/database/.sqlx/query-ed27954feb3e21b5c519ccd0312526e68fb3d88a1feb28bdafb414e990da55e8.json b/crates/database/.sqlx/query-ed27954feb3e21b5c519ccd0312526e68fb3d88a1feb28bdafb414e990da55e8.json new file mode 100644 index 0000000..99f76a8 --- /dev/null +++ b/crates/database/.sqlx/query-ed27954feb3e21b5c519ccd0312526e68fb3d88a1feb28bdafb414e990da55e8.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "insert into apps (id, label, redirect_uri, secret, is_confidential)\nvalues (?, ?, ?, ?, ?)\n", + "describe": { + "columns": [], + "parameters": { + "Right": 5 + }, + "nullable": [] + }, + "hash": "ed27954feb3e21b5c519ccd0312526e68fb3d88a1feb28bdafb414e990da55e8" +} diff --git a/crates/database/.sqlx/query-f705411720bd037562f7e3622832262ac4c0a8fc0921fbd934d2b98146d3f413.json b/crates/database/.sqlx/query-f705411720bd037562f7e3622832262ac4c0a8fc0921fbd934d2b98146d3f413.json new file mode 100644 index 0000000..1beaa47 --- /dev/null +++ b/crates/database/.sqlx/query-f705411720bd037562f7e3622832262ac4c0a8fc0921fbd934d2b98146d3f413.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "insert into keys (id, private_der, public_der)\nvalues (?, ?, ?)\n", + "describe": { + "columns": [], + "parameters": { + "Right": 3 + }, + "nullable": [] + }, + "hash": "f705411720bd037562f7e3622832262ac4c0a8fc0921fbd934d2b98146d3f413" +} diff --git a/crates/database/.sqlx/query-fb35faa6eb7349f783d0053509225216693532c7233a3bf61674b64c2fb3dad7.json b/crates/database/.sqlx/query-fb35faa6eb7349f783d0053509225216693532c7233a3bf61674b64c2fb3dad7.json new file mode 100644 index 0000000..e55a6a8 --- /dev/null +++ b/crates/database/.sqlx/query-fb35faa6eb7349f783d0053509225216693532c7233a3bf61674b64c2fb3dad7.json @@ -0,0 +1,62 @@ +{ + "db_name": "SQLite", + "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n label,\n redirect_uri,\n secret,\n is_confidential as \"is_confidential: bool\",\n is_archived as \"is_archived: bool\"\nfrom apps\n\norder by created_at desc\n", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "created_at: DateTime", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "updated_at: DateTime", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "label", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "redirect_uri", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "secret", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "is_confidential: bool", + "ordinal": 6, + "type_info": "Int64" + }, + { + "name": "is_archived: bool", + "ordinal": 7, + "type_info": "Int64" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + "hash": "fb35faa6eb7349f783d0053509225216693532c7233a3bf61674b64c2fb3dad7" +} diff --git a/crates/database/Cargo.toml b/crates/database/Cargo.toml index 8f5dcfc..431629e 100644 --- a/crates/database/Cargo.toml +++ b/crates/database/Cargo.toml @@ -8,4 +8,4 @@ thiserror = { workspace = true } [dependencies.sqlx] workspace = true -features = ["sqlite", "macros", "migrate", "chrono", "offline", "runtime-tokio-rustls"] +features = ["sqlite", "macros", "migrate", "chrono", "runtime-tokio-rustls"] diff --git a/crates/database/sqlx-data.json b/crates/database/sqlx-data.json deleted file mode 100644 index 33c88e9..0000000 --- a/crates/database/sqlx-data.json +++ /dev/null @@ -1,2129 +0,0 @@ -{ - "db": "SQLite", - "06cfa74715f3725e99e63aa206f1be5d26cb26924d53dc5a68ee4ea48d6bbbfd": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update settings\n\nset business_logo = ?\n\nwhere id is 0\n" - }, - "0b60c7829e95dde4145b7f207b64df7006c1fde2faaca0f7952a009d6cda90a3": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update settings\n\nset business_name = ?\n\nwhere id is 0\n" - }, - "13c26aaf556d259535afb95f5c53b4c594f373084c73000bc7865a280df74fdd": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "label", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "redirect_uri", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "secret", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "is_confidential: bool", - "ordinal": 6, - "type_info": "Int64" - }, - { - "name": "is_archived: bool", - "ordinal": 7, - "type_info": "Int64" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - false, - false, - false - ], - "parameters": { - "Right": 0 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n label,\n redirect_uri,\n secret,\n is_confidential as \"is_confidential: bool\",\n is_archived as \"is_archived: bool\"\nfrom apps\n\nwhere is_archived is 0\norder by created_at desc" - }, - "184d704e75f00513082dd2c6cc3ae5c3f58b57b222ba4333216b5c50c3c58c71": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 4 - } - }, - "query": "update apps\n\nset label = ?,\n redirect_uri = ?,\n is_confidential = ?\n\nwhere id is ?" - }, - "1e2edc8cf28832344dbfa0878ac01361b6f97c552d6af8477da12cddb03d4865": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update apps\n\nset secret = ?\n\nwhere id is ?" - }, - "2d562e7b19d7d8303a0e79d143d25fd68743ae30d1ec0b0ca5c7dfc367fdf357": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update apps\n\nset is_archived = 1\n\nwhere id is ?" - }, - "2ee77458d93ae79d957e03e6ca50c1bf690f40b6cc6ec5f008eb0e928f376659": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update roles\n\nset is_archived = ?\n\nwhere name is ?" - }, - "32d35bdd1f4cf64ce0ff7beb7a11591e0f35eab7211692bcde8230c68e4cedf3": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update users\n\nset password_recover = ?\n\nwhere id is ?" - }, - "37000307a757b4912ca300c346b5bd8ee5d50331d94abeee076ae4db46215a56": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "is_admin: bool", - "ordinal": 3, - "type_info": "Int64" - }, - { - "name": "username", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "name", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "email", - "ordinal": 6, - "type_info": "Text" - }, - { - "name": "password", - "ordinal": 7, - "type_info": "Text" - }, - { - "name": "password_recover", - "ordinal": 8, - "type_info": "Text" - }, - { - "name": "paper_key", - "ordinal": 9, - "type_info": "Text" - }, - { - "name": "is_archived: bool", - "ordinal": 10, - "type_info": "Int64" - }, - { - "name": "timezone", - "ordinal": 11, - "type_info": "Text" - }, - { - "name": "totp_secret", - "ordinal": 12, - "type_info": "Blob" - }, - { - "name": "totp_backup", - "ordinal": 13, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - true, - true, - true, - true, - true, - false, - false, - true, - true - ], - "parameters": { - "Right": 1 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n is_admin as \"is_admin: bool\",\n username,\n name,\n email,\n password,\n password_recover,\n paper_key,\n is_archived as \"is_archived: bool\",\n timezone,\n totp_secret,\n totp_backup\nfrom users\n\nwhere email is (?)\n" - }, - "37681902a5f5d87492812a525a6488e75d20c1c436a3ba2c5aa3f54da62fe861": { - "describe": { - "columns": [ - { - "name": "token", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "ip_address", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "user", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "app", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "expires_at: DateTime", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "used_at: DateTime", - "ordinal": 6, - "type_info": "Text" - }, - { - "name": "revoked_at: DateTime", - "ordinal": 7, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - false, - true, - true - ], - "parameters": { - "Right": 1 - } - }, - "query": "select\n -- info\n token,\n ip_address,\n user,\n app,\n\n -- timings\n created_at as \"created_at: DateTime\",\n expires_at as \"expires_at: DateTime\",\n used_at as \"used_at: DateTime\",\n revoked_at as \"revoked_at: DateTime\"\nfrom refresh_tokens\n\nwhere token is (?)" - }, - "3c8e31ffa5cbfd4dded8a272777cb320fb51fd2e53ed25054d24e9801df0c358": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update refresh_tokens\n\nset used_at = CURRENT_TIMESTAMP\n\nwhere token is ?" - }, - "44cc12d7659e618fcb44a82697d60da940bdab3c87690ee42569ae3da1a8e791": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "insert into roles (name, label)\nvalues (?, ?)\n" - }, - "46caa546db24d2c1e8192f9e699202be5129c74a5569b2dc7bf95761fe09a6a3": { - "describe": { - "columns": [ - { - "name": "user", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "role", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 2, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false - ], - "parameters": { - "Right": 1 - } - }, - "query": "select user,\n role,\n created_at as \"created_at: DateTime\"\n\nfrom permissions\nwhere role is (?)\n" - }, - "520fe30e21f6b6c4d9a47c457675eebd144cf020e9230d154e9e4d0c8d6e01ca": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 4 - } - }, - "query": "insert into users (id, is_admin, username, password)\nvalues (?, ?, ?, ?)\n" - }, - "52c16bb0e76dd1726d151b69d1ba3b89948ee6ac5116e442faef8512c1a615c0": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update users\n\nset is_archived = ?\n\nwhere id is ?" - }, - "545f19b0373c7ffe16864eb242c15a0092355e120c5cbe006c877afdfc4a4e8c": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update users\n\nset username = ?\n\nwhere id is ?" - }, - "5567f75b47f739e85da3469bec0202be315c42dfc820d3c37bba498b1b783811": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "is_admin: bool", - "ordinal": 3, - "type_info": "Int64" - }, - { - "name": "username", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "name", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "email", - "ordinal": 6, - "type_info": "Text" - }, - { - "name": "password", - "ordinal": 7, - "type_info": "Text" - }, - { - "name": "password_recover", - "ordinal": 8, - "type_info": "Text" - }, - { - "name": "paper_key", - "ordinal": 9, - "type_info": "Text" - }, - { - "name": "is_archived: bool", - "ordinal": 10, - "type_info": "Int64" - }, - { - "name": "timezone", - "ordinal": 11, - "type_info": "Text" - }, - { - "name": "totp_secret", - "ordinal": 12, - "type_info": "Blob" - }, - { - "name": "totp_backup", - "ordinal": 13, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - true, - true, - true, - true, - true, - false, - false, - true, - true - ], - "parameters": { - "Right": 1 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n is_admin as \"is_admin: bool\",\n username,\n name,\n email,\n password,\n password_recover,\n paper_key,\n is_archived as \"is_archived: bool\",\n timezone,\n totp_secret,\n totp_backup\nfrom users\n\nwhere username is (?)\n" - }, - "56a9c0dff010858189a95087d014c7d0ce930da5d841b9d788a9c0e84b580bc6": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "revoked_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "private_der", - "ordinal": 3, - "type_info": "Blob" - }, - { - "name": "public_der", - "ordinal": 4, - "type_info": "Blob" - } - ], - "nullable": [ - false, - false, - true, - false, - false - ], - "parameters": { - "Right": 0 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n revoked_at as \"revoked_at: DateTime\",\n private_der,\n public_der\n\nfrom keys\norder by created_at desc\n" - }, - "58e0626629a768c33783bbc926c3d1477ad7e4e983b61ede013e5b066940eb5c": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update users\n\nset timezone = ?\n\nwhere id is ?" - }, - "5a365b761ada7d5f67e5ad3ff9a1a89d96383e28b15186576f90ff59f309196c": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update totp_login_requests\n\nset used_at = CURRENT_TIMESTAMP\n\nwhere user is ?\n and used_at is null" - }, - "5e148a43d9f64c73296b2b70deef07d2c863a93fff693aec1b47378c44bf77de": { - "describe": { - "columns": [ - { - "name": "name", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "label", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "is_archived: bool", - "ordinal": 3, - "type_info": "Int64" - } - ], - "nullable": [ - false, - false, - false, - false - ], - "parameters": { - "Right": 0 - } - }, - "query": "select name,\n label,\n created_at as \"created_at: DateTime\",\n is_archived as \"is_archived: bool\"\nfrom roles\n\norder by created_at desc\n" - }, - "5f946348ad62389fab3c97a1563d1592cbc5180abbba6d5abd44326bf0862669": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "revoked_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "private_der", - "ordinal": 3, - "type_info": "Blob" - }, - { - "name": "public_der", - "ordinal": 4, - "type_info": "Blob" - } - ], - "nullable": [ - false, - false, - true, - false, - false - ], - "parameters": { - "Right": 0 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n revoked_at as \"revoked_at: DateTime\",\n private_der,\n public_der\n\nfrom keys\nwhere revoked_at is not null\norder by created_at desc\n" - }, - "62c75412f673f6a293b0d188d79c50676ec21cf94e2e50e18f9279c91e6b85c8": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 0 - } - }, - "query": "insert or ignore into settings(id)\nvalues (0);" - }, - "645f583812c4d71570d1e84b866e85c5a012d71cd745494049a8d9bebab3ed61": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update totp_login_requests\n\nset used_at = CURRENT_TIMESTAMP\n\nwhere token is ?" - }, - "657fdc2b228b14a6aba717e5083daf48204274ab62d73ec8968bcd0c7568b157": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 0 - } - }, - "query": "vacuum" - }, - "68cfa3d135eb4cdbdbcb3b943518b4ac09c371af689c444eb439a37f91ecf7a5": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update users\n\nset paper_key = ?\n\nwhere id is ?" - }, - "693c8c3de266cb3a8fc98bdea8e3b87de0dcb78316628d48f0e6efc0f8103040": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update roles\n\nset label = ?\n\nwhere name is ?" - }, - "6fa3c48b9e93fb9ec6807f7547a8f999fc55a6fb8ad4abe7af89ec52e0d10a0e": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "delete\nfrom permissions\n\nwhere user is ?\n and role is ?" - }, - "6ff12f357d884a50035d708577a7f3109a07a1ca193cb3082d13687af65c6de0": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update users\n\nset is_admin = ?\n\nwhere id is ?" - }, - "71c74369dc5d374d8ec5aa347b5f599728b74e545df3e986e3e7e66882f73ba0": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "is_admin: bool", - "ordinal": 3, - "type_info": "Int64" - }, - { - "name": "username", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "name", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "email", - "ordinal": 6, - "type_info": "Text" - }, - { - "name": "password", - "ordinal": 7, - "type_info": "Text" - }, - { - "name": "password_recover", - "ordinal": 8, - "type_info": "Text" - }, - { - "name": "paper_key", - "ordinal": 9, - "type_info": "Text" - }, - { - "name": "is_archived: bool", - "ordinal": 10, - "type_info": "Int64" - }, - { - "name": "timezone", - "ordinal": 11, - "type_info": "Text" - }, - { - "name": "totp_secret", - "ordinal": 12, - "type_info": "Blob" - }, - { - "name": "totp_backup", - "ordinal": 13, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - true, - true, - true, - true, - true, - false, - false, - true, - true - ], - "parameters": { - "Right": 1 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n is_admin as \"is_admin: bool\",\n username,\n name,\n email,\n password,\n password_recover,\n paper_key,\n is_archived as \"is_archived: bool\",\n timezone,\n totp_secret,\n totp_backup\nfrom users\n\nwhere id is (?)\n" - }, - "73bdbde04fca37f2411e7a9e1b6dbccc0dd4d12ebcb933024d9867f07bba3eb8": { - "describe": { - "columns": [ - { - "name": "user", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "role", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 2, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false - ], - "parameters": { - "Right": 2 - } - }, - "query": "select user,\n role,\n created_at as \"created_at: DateTime\"\n\nfrom permissions\nwhere user is (?)\n and role is (?)\n" - }, - "7b7f2430b2a719b3d5ce504c0a9302731b3ff82da99ba7771c2728d88aee642a": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update keys\n\nset revoked_at = CURRENT_TIMESTAMP\n\nwhere revoked_at is null\n and id is not (?)\n" - }, - "7f26b73408318040f94fb6574d5cc25482cef1a57ba4c467fa0bc0fdf25bf39c": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update authorization_codes\n\nset used_at = CURRENT_TIMESTAMP\n\nwhere code is ?" - }, - "87906834faa6f185aee0e4d893b9754908b1c173e9dce383663d723891a89cd1": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update settings\n\nset url = ?\n\nwhere id is 0\n" - }, - "8c131e1f73ffa01fc3e5e08071a786b85f23b9638d1c7eaa7b633c052703c911": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update users\n\nset name = ?\n\nwhere id is ?" - }, - "8c37375b0694df02b7f1b6678e4e2c3ffbc590c0f305ff5a8f44350fba3eaec7": { - "describe": { - "columns": [ - { - "name": "user", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "role", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 2, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false - ], - "parameters": { - "Right": 1 - } - }, - "query": "select user,\n role,\n created_at as \"created_at: DateTime\"\n\nfrom permissions\nwhere user is (?)\n" - }, - "93b15a942a6c7db595990f00e14fde26d6d36b8c8de9935179d41f6c7c755978": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update refresh_tokens\n\nset revoked_at = CURRENT_TIMESTAMP\n\nwhere app is ?\n and revoked_at is null" - }, - "9784afe2dcff4db86908175d4e3145baf72b3361f43e4127350a14a183ef63f7": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update users\n\nset password = ?\n\nwhere id is ?" - }, - "979c7ba41dac5ea5593fc169ea95b68d2311c5ae05c1e18db43424c8ed2f2e4e": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "is_admin: bool", - "ordinal": 3, - "type_info": "Int64" - }, - { - "name": "username", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "name", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "email", - "ordinal": 6, - "type_info": "Text" - }, - { - "name": "password", - "ordinal": 7, - "type_info": "Text" - }, - { - "name": "password_recover", - "ordinal": 8, - "type_info": "Text" - }, - { - "name": "paper_key", - "ordinal": 9, - "type_info": "Text" - }, - { - "name": "is_archived: bool", - "ordinal": 10, - "type_info": "Int64" - }, - { - "name": "timezone", - "ordinal": 11, - "type_info": "Text" - }, - { - "name": "totp_secret", - "ordinal": 12, - "type_info": "Blob" - }, - { - "name": "totp_backup", - "ordinal": 13, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - true, - true, - true, - true, - true, - false, - false, - true, - true - ], - "parameters": { - "Right": 0 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n is_admin as \"is_admin: bool\",\n username,\n name,\n email,\n password,\n password_recover,\n paper_key,\n is_archived as \"is_archived: bool\",\n timezone,\n totp_secret,\n totp_backup\nfrom users\n\norder by created_at desc\n" - }, - "9a3aef02e55fc436e9c09c1ee6d29477c2746765f6e7d5679058ec6525ee7253": { - "describe": { - "columns": [ - { - "name": "name", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "label", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "is_archived: bool", - "ordinal": 3, - "type_info": "Int64" - } - ], - "nullable": [ - false, - false, - false, - false - ], - "parameters": { - "Right": 1 - } - }, - "query": "select name,\n label,\n created_at as \"created_at: DateTime\",\n is_archived as \"is_archived: bool\"\nfrom roles\n\nwhere name is (?)\n" - }, - "9dc379b0f3a3c944a33ef01dc40489b29b2a61b9f73f6ca4b5df7e9fb9bccf90": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "is_admin: bool", - "ordinal": 3, - "type_info": "Int64" - }, - { - "name": "username", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "name", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "email", - "ordinal": 6, - "type_info": "Text" - }, - { - "name": "password", - "ordinal": 7, - "type_info": "Text" - }, - { - "name": "password_recover", - "ordinal": 8, - "type_info": "Text" - }, - { - "name": "paper_key", - "ordinal": 9, - "type_info": "Text" - }, - { - "name": "is_archived: bool", - "ordinal": 10, - "type_info": "Int64" - }, - { - "name": "timezone", - "ordinal": 11, - "type_info": "Text" - }, - { - "name": "totp_secret", - "ordinal": 12, - "type_info": "Blob" - }, - { - "name": "totp_backup", - "ordinal": 13, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - true, - true, - true, - true, - true, - false, - false, - true, - true - ], - "parameters": { - "Right": 0 - } - }, - "query": "select u.id,\n u.created_at as \"created_at: DateTime\",\n u.updated_at as \"updated_at: DateTime\",\n u.is_admin as \"is_admin: bool\",\n u.username,\n u.name,\n u.email,\n u.password,\n u.password_recover,\n u.paper_key,\n u.is_archived as \"is_archived: bool\",\n u.timezone,\n u.totp_secret,\n u.totp_backup\nfrom users u\n\n inner join settings s on u.id = s.first_admin\n\nwhere u.is_admin is 1\n and u.is_archived is 0\n and u.id is s.first_admin\n\nlimit 1" - }, - "9f1885c4786f73335b4d614f562bb7cad49c91bfe7f084d8c25c6c571673ab90": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 0 - } - }, - "query": "update refresh_tokens\n\nset revoked_at = CURRENT_TIMESTAMP\n\nwhere revoked_at is null" - }, - "a0dd1ddcc7d58fad78ed6c5027a9559428be9d0d59df6409ca9ec7cd728f6001": { - "describe": { - "columns": [ - { - "name": "token", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "user", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "expires_at: DateTime", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "used_at: DateTime", - "ordinal": 4, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - false, - true - ], - "parameters": { - "Right": 1 - } - }, - "query": "select\n -- info\n token,\n user,\n\n -- timings\n created_at as \"created_at: DateTime\",\n expires_at as \"expires_at: DateTime\",\n used_at as \"used_at: DateTime\"\nfrom totp_login_requests\n\nwhere token is (?)" - }, - "a2bf546b2cf6a53a3a127c08fbb7f3dfcf0fe7a30364b1fb57c3e6b757093578": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 3 - } - }, - "query": "insert into totp_login_requests (token, user, expires_at)\nvalues (?, ?, datetime(?, 'unixepoch'))\n" - }, - "a55b17a3a70e6445517f19536220f0dafc78a0e8b69221dee4715f84841839da": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 4 - } - }, - "query": "insert into authorization_codes (code, app, user, expires_at)\nvalues (?, ?, ?, datetime(?, 'unixepoch'))\n" - }, - "a9e910eedc27c495262571520627363290640b3af7d177a024cad06220a770f0": { - "describe": { - "columns": [ - { - "name": "user", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "role", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 2, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false - ], - "parameters": { - "Right": 0 - } - }, - "query": "select user,\n role,\n created_at as \"created_at: DateTime\"\n\nfrom permissions\n" - }, - "aae93a39c5a9f46235b5ef871b45ba76d7efa1677bfe8291a62b8cbf9cd9e0d5": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update settings\n\nset first_admin = ?\n\nwhere id is 0\n" - }, - "adcbc32e2c284b59eefb79fd2ff33d4ff1c2e250b2d103d8500fae203fb18a6d": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Int64" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "business_name", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "business_logo", - "ordinal": 4, - "type_info": "Blob" - }, - { - "name": "url", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "first_admin", - "ordinal": 6, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - true, - true, - true, - true - ], - "parameters": { - "Right": 0 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n business_name,\n business_logo,\n url,\n first_admin\n\nfrom settings\n\nwhere id is 0\n" - }, - "afc08ba1fd47656c7d987e3817941004f988e683d28df2f533ff6272bc71b356": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update users\n\nset totp_secret = ?\n\nwhere id is ?" - }, - "b3936ae237f02cc048ca084372f7975921c79aef8fcd6d15a4d63c10f2377d24": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 5 - } - }, - "query": "insert into refresh_tokens (token, ip_address, user, app, expires_at)\nvalues (?, ?, ?, ?, datetime(?, 'unixepoch'))\n" - }, - "baaae9952348da17e2f4d099c6903c50bc90daed80ee2df1fd0dc1d9d2c67b26": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update users\n\nset totp_backup = ?\n\nwhere id is ?" - }, - "c00e5fce25caebdeeb24db20880e6c2210f583cddb0d478075f78124258712dd": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update refresh_tokens\n\nset revoked_at = CURRENT_TIMESTAMP\n\nwhere user is ?\n and revoked_at is null" - }, - "c28c88869239edc02c073f461645eca82d816650fabe65464e2059d5908d8a28": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "update users\n\nset email = ?\n\nwhere id is ?" - }, - "c3dcd38a2d4ff391aed4a2ac3f393646319950334494ecb5fa7effe9806d07ab": { - "describe": { - "columns": [ - { - "name": "code", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "app", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "user", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "expires_at: DateTime", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "used_at: DateTime", - "ordinal": 5, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - true - ], - "parameters": { - "Right": 0 - } - }, - "query": "select code,\n app,\n user,\n created_at as \"created_at: DateTime\",\n expires_at as \"expires_at: DateTime\",\n used_at as \"used_at: DateTime\"\nfrom authorization_codes\n" - }, - "c6157ec3928527ec0ac5f493a5a91faff7e3668204a179e827a87d6279a02c40": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update refresh_tokens\n\nset revoked_at = CURRENT_TIMESTAMP\n\nwhere token is ?" - }, - "c724c273f9d99bde48c29d7a0e65198a1ddd775cd1bda10f6e4a8acfbca64b72": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 2 - } - }, - "query": "insert into permissions(user, role)\nvalues (?, ?)\n" - }, - "ca7d100a9440fb7854a27f9aafd91ce94d1df9fa1ccd65b549be92d16741f9d2": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "is_admin: bool", - "ordinal": 3, - "type_info": "Int64" - }, - { - "name": "username", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "name", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "email", - "ordinal": 6, - "type_info": "Text" - }, - { - "name": "password", - "ordinal": 7, - "type_info": "Text" - }, - { - "name": "password_recover", - "ordinal": 8, - "type_info": "Text" - }, - { - "name": "paper_key", - "ordinal": 9, - "type_info": "Text" - }, - { - "name": "is_archived: bool", - "ordinal": 10, - "type_info": "Int64" - }, - { - "name": "timezone", - "ordinal": 11, - "type_info": "Text" - }, - { - "name": "totp_secret", - "ordinal": 12, - "type_info": "Blob" - }, - { - "name": "totp_backup", - "ordinal": 13, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - true, - true, - true, - true, - true, - false, - false, - true, - true - ], - "parameters": { - "Right": 1 - } - }, - "query": "select u.id,\n u.created_at as \"created_at: DateTime\",\n u.updated_at as \"updated_at: DateTime\",\n u.is_admin as \"is_admin: bool\",\n u.username,\n u.name,\n u.email,\n u.password,\n u.password_recover,\n u.paper_key,\n u.is_archived as \"is_archived: bool\",\n u.timezone,\n u.totp_secret,\n u.totp_backup\nfrom users u\n\n inner join refresh_tokens rt on u.id = rt.user\n\nwhere rt.token is ?\n" - }, - "cf12bd3112b2047f263118649ba89800509d94f3a858be99fb7ce8c8bc05d8b7": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "is_admin: bool", - "ordinal": 3, - "type_info": "Int64" - }, - { - "name": "username", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "name", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "email", - "ordinal": 6, - "type_info": "Text" - }, - { - "name": "password", - "ordinal": 7, - "type_info": "Text" - }, - { - "name": "password_recover", - "ordinal": 8, - "type_info": "Text" - }, - { - "name": "paper_key", - "ordinal": 9, - "type_info": "Text" - }, - { - "name": "is_archived: bool", - "ordinal": 10, - "type_info": "Int64" - }, - { - "name": "timezone", - "ordinal": 11, - "type_info": "Text" - }, - { - "name": "totp_secret", - "ordinal": 12, - "type_info": "Blob" - }, - { - "name": "totp_backup", - "ordinal": 13, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - true, - true, - true, - true, - true, - false, - false, - true, - true - ], - "parameters": { - "Right": 1 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n is_admin as \"is_admin: bool\",\n username,\n name,\n email,\n password,\n password_recover,\n paper_key,\n is_archived as \"is_archived: bool\",\n timezone,\n totp_secret,\n totp_backup\nfrom users\n\nwhere password_recover is (?)\n" - }, - "cf624c4e122477228e3bab09f7cd0dedf4776f73e7a86f19e06772a0adf83406": { - "describe": { - "columns": [ - { - "name": "code", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "app", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "user", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "expires_at: DateTime", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "used_at: DateTime", - "ordinal": 5, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - true - ], - "parameters": { - "Right": 1 - } - }, - "query": "select code,\n app,\n user,\n created_at as \"created_at: DateTime\",\n expires_at as \"expires_at: DateTime\",\n used_at as \"used_at: DateTime\"\nfrom authorization_codes\n\nwhere code is (?)\n" - }, - "d166553746afb2d3eaa1ddcb9986b7b9723258f4051bce8287038e3dd1ac928a": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "revoked_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "private_der", - "ordinal": 3, - "type_info": "Blob" - }, - { - "name": "public_der", - "ordinal": 4, - "type_info": "Blob" - } - ], - "nullable": [ - false, - false, - true, - false, - false - ], - "parameters": { - "Right": 0 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n revoked_at as \"revoked_at: DateTime\",\n private_der,\n public_der\n\nfrom keys\nwhere revoked_at is null\norder by created_at desc\n" - }, - "d6d3a401f5563ce339099ccbdedec1ac248865810cafafd5d78d6cc3f74d5237": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "is_admin: bool", - "ordinal": 3, - "type_info": "Int64" - }, - { - "name": "username", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "name", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "email", - "ordinal": 6, - "type_info": "Text" - }, - { - "name": "password", - "ordinal": 7, - "type_info": "Text" - }, - { - "name": "password_recover", - "ordinal": 8, - "type_info": "Text" - }, - { - "name": "paper_key", - "ordinal": 9, - "type_info": "Text" - }, - { - "name": "is_archived: bool", - "ordinal": 10, - "type_info": "Int64" - }, - { - "name": "timezone", - "ordinal": 11, - "type_info": "Text" - }, - { - "name": "totp_secret", - "ordinal": 12, - "type_info": "Blob" - }, - { - "name": "totp_backup", - "ordinal": 13, - "type_info": "Text" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - true, - true, - true, - true, - true, - false, - false, - true, - true - ], - "parameters": { - "Right": 1 - } - }, - "query": "select u.id,\n u.created_at as \"created_at: DateTime\",\n u.updated_at as \"updated_at: DateTime\",\n u.is_admin as \"is_admin: bool\",\n u.username,\n u.name,\n u.email,\n u.password,\n u.password_recover,\n u.paper_key,\n u.is_archived as \"is_archived: bool\",\n u.timezone,\n u.totp_secret,\n u.totp_backup\nfrom users u\n\n inner join authorization_codes ac on u.id = ac.user\n\nwhere ac.code is ?" - }, - "d8517e5faa5292da25d21a85fcb2f676dce0f67275466566d5bbedf0f4b7f4f5": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "label", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "redirect_uri", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "secret", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "is_confidential: bool", - "ordinal": 6, - "type_info": "Int64" - }, - { - "name": "is_archived: bool", - "ordinal": 7, - "type_info": "Int64" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - false, - false, - false - ], - "parameters": { - "Right": 0 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n label,\n redirect_uri,\n secret,\n is_confidential as \"is_confidential: bool\",\n is_archived as \"is_archived: bool\"\nfrom apps\n\nwhere is_archived is 1\norder by created_at desc" - }, - "e22ba816faac0c17ca9f2c31fd1b4a5f13a09cece9ec78e0b6e018950c91facb": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "label", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "redirect_uri", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "secret", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "is_confidential: bool", - "ordinal": 6, - "type_info": "Int64" - }, - { - "name": "is_archived: bool", - "ordinal": 7, - "type_info": "Int64" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - false, - false, - false - ], - "parameters": { - "Right": 1 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n label,\n redirect_uri,\n secret,\n is_confidential as \"is_confidential: bool\",\n is_archived as \"is_archived: bool\"\nfrom apps\n\nwhere id is (?)\n" - }, - "e977ca16c7bd7ec4125725ff5e42d3c547634e2b608d6be91814bce657e07b65": { - "describe": { - "columns": [ - { - "name": "page_count * page_size", - "ordinal": 0, - "type_info": "Int" - } - ], - "nullable": [ - null - ], - "parameters": { - "Right": 0 - } - }, - "query": "select page_count * page_size\nFROM pragma_page_count(), pragma_page_size();" - }, - "eaf0744f65a1de803fa8cc21b67bad4bdf22760d431265cf97b911e6456b2fd8": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "label", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "redirect_uri", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "secret", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "is_confidential: bool", - "ordinal": 6, - "type_info": "Int64" - }, - { - "name": "is_archived: bool", - "ordinal": 7, - "type_info": "Int64" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - false, - false, - false - ], - "parameters": { - "Right": 1 - } - }, - "query": "select a.id,\n a.created_at as \"created_at: DateTime\",\n a.updated_at as \"updated_at: DateTime\",\n a.label,\n a.redirect_uri,\n a.secret,\n a.is_confidential as \"is_confidential: bool\",\n a.is_archived as \"is_archived: bool\"\nfrom apps a\n\n inner join authorization_codes ac on a.id = ac.app\n\nwhere ac.code is ?\n" - }, - "eb1a0153c88b0b2744ed1b71df04a91a129a0173fbbc3e2536f52d41e8dc99c4": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "label", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "redirect_uri", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "secret", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "is_confidential: bool", - "ordinal": 6, - "type_info": "Int64" - }, - { - "name": "is_archived: bool", - "ordinal": 7, - "type_info": "Int64" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - false, - false, - false - ], - "parameters": { - "Right": 2 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n label,\n redirect_uri,\n secret,\n is_confidential as \"is_confidential: bool\",\n is_archived as \"is_archived: bool\"\nfrom apps\n\nwhere id is (?)\n and redirect_uri is (?)\n and is_archived is 0\n" - }, - "ebe28f418d28303b2efe1fe192a63538d29d75c57b67d5eac1ac4ceaa1472a5c": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 1 - } - }, - "query": "update authorization_codes\n\nset used_at = CURRENT_TIMESTAMP\n\nwhere user is ?\n and used_at is null" - }, - "ed27954feb3e21b5c519ccd0312526e68fb3d88a1feb28bdafb414e990da55e8": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 5 - } - }, - "query": "insert into apps (id, label, redirect_uri, secret, is_confidential)\nvalues (?, ?, ?, ?, ?)\n" - }, - "f705411720bd037562f7e3622832262ac4c0a8fc0921fbd934d2b98146d3f413": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Right": 3 - } - }, - "query": "insert into keys (id, private_der, public_der)\nvalues (?, ?, ?)\n" - }, - "fb35faa6eb7349f783d0053509225216693532c7233a3bf61674b64c2fb3dad7": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "created_at: DateTime", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "updated_at: DateTime", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "label", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "redirect_uri", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "secret", - "ordinal": 5, - "type_info": "Text" - }, - { - "name": "is_confidential: bool", - "ordinal": 6, - "type_info": "Int64" - }, - { - "name": "is_archived: bool", - "ordinal": 7, - "type_info": "Int64" - } - ], - "nullable": [ - false, - false, - false, - false, - false, - false, - false, - false - ], - "parameters": { - "Right": 0 - } - }, - "query": "select id,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n label,\n redirect_uri,\n secret,\n is_confidential as \"is_confidential: bool\",\n is_archived as \"is_archived: bool\"\nfrom apps\n\norder by created_at desc\n" - } -} \ No newline at end of file From 2ae345800c1143ee3cc394ab38baca5457c49185 Mon Sep 17 00:00:00 2001 From: Philippe Loctaux Date: Wed, 15 Nov 2023 20:11:27 +0100 Subject: [PATCH 02/10] temporary patch to rocket_cors until new release --- Cargo.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index cfdbcfa..05aff74 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,3 +19,7 @@ gen_passphrase = "0.1.1" [profile.dev.package.sqlx-macros] opt-level = 3 + +# temporary +[patch.crates-io] +rocket_cors = { git = "https://github.com/j03-dev/rocket_cors", branch = "master" } From b4271853a9a092ab1162fa6e0843d4b61c2563e3 Mon Sep 17 00:00:00 2001 From: Philippe Loctaux Date: Wed, 15 Nov 2023 21:01:22 +0100 Subject: [PATCH 03/10] rocket v0.5-rc4 with some adjustements: - all db access are done with transactions - Forwards in Outcomes return a status --- crates/ezidam/Cargo.toml | 6 +- crates/ezidam/src/guards/access_token.rs | 10 +- crates/ezidam/src/guards/basic_auth.rs | 6 +- crates/ezidam/src/guards/completed_setup.rs | 6 +- crates/ezidam/src/guards/jwt.rs | 98 +++++++++---------- .../src/guards/jwt/admin_not_current.rs | 7 +- crates/ezidam/src/guards/need_setup.rs | 6 +- crates/ezidam/src/guards/refresh_token.rs | 3 +- crates/ezidam/src/guards/totp_request.rs | 5 +- crates/ezidam/src/routes.rs | 1 + crates/ezidam/src/routes/admin/apps.rs | 27 +++-- crates/ezidam/src/routes/admin/dashboard.rs | 8 +- crates/ezidam/src/routes/admin/permissions.rs | 36 +++---- crates/ezidam/src/routes/admin/roles.rs | 20 ++-- crates/ezidam/src/routes/admin/settings.rs | 45 +++++---- crates/ezidam/src/routes/admin/users.rs | 60 +++++++----- crates/ezidam/src/routes/oauth/authorize.rs | 14 +-- crates/ezidam/src/routes/oauth/redirect.rs | 27 ++--- crates/ezidam/src/routes/oauth/token.rs | 53 +++++----- crates/ezidam/src/routes/oauth/totp.rs | 38 +++---- .../ezidam/src/routes/root/forgot_password.rs | 10 +- crates/ezidam/src/routes/root/logo.rs | 4 +- crates/ezidam/src/routes/root/logout.rs | 22 +++-- .../ezidam/src/routes/root/reset_password.rs | 7 +- crates/ezidam/src/routes/settings/personal.rs | 15 +-- crates/ezidam/src/routes/settings/security.rs | 45 ++++----- crates/ezidam/src/routes/setup.rs | 15 ++- crates/ezidam/src/routes/well_known.rs | 8 +- 28 files changed, 332 insertions(+), 270 deletions(-) diff --git a/crates/ezidam/Cargo.toml b/crates/ezidam/Cargo.toml index 3450b7b..ae07f1e 100644 --- a/crates/ezidam/Cargo.toml +++ b/crates/ezidam/Cargo.toml @@ -4,9 +4,9 @@ version = "0.1.0" edition = "2021" [dependencies] -rocket = { version = "=0.5.0-rc.3", features = ["json"] } -rocket_db_pools = { version = "=0.1.0-rc.3", features = ["sqlx_sqlite"] } -rocket_dyn_templates = { version = "=0.1.0-rc.3", features = ["tera"] } +rocket = { version = "=0.5.0-rc.4", features = ["json"] } +rocket_db_pools = { version = "=0.1.0-rc.4", features = ["sqlx_sqlite"] } +rocket_dyn_templates = { version = "=0.1.0-rc.4", features = ["tera"] } infer = { version = "0.13", default-features = false } erased-serde = "0.3" url = { workspace = true } diff --git a/crates/ezidam/src/guards/access_token.rs b/crates/ezidam/src/guards/access_token.rs index 476d2d2..0756af9 100644 --- a/crates/ezidam/src/guards/access_token.rs +++ b/crates/ezidam/src/guards/access_token.rs @@ -35,7 +35,7 @@ impl AccessToken { }, Err(e) => match e { Outcome::Success(s) => Ok(Some(Self(s))), - Outcome::Failure(e) => Err(BearerAuthError::Jwt(e.1)), + Outcome::Error(e) => Err(BearerAuthError::Jwt(e.1)), Outcome::Forward(_) => Ok(None), }, } @@ -50,15 +50,15 @@ impl<'r> FromRequest<'r> for AccessToken { let keys: Vec<_> = request.headers().get("Authorization").collect(); match keys.len() { - 0 => Outcome::Forward(()), + 0 => Outcome::Forward(Status::Unauthorized), 1 => match AccessToken::from_bearer(keys[0], request).await { Ok(access_token) => match access_token { Some(access_token) => Outcome::Success(access_token), - None => Outcome::Forward(()), + None => Outcome::Forward(Status::Unauthorized), }, - Err(e) => Outcome::Failure((Status::Unauthorized, e)), + Err(e) => Outcome::Error((Status::Unauthorized, e)), }, - _ => Outcome::Failure((Status::BadRequest, BearerAuthError::BadCount)), + _ => Outcome::Error((Status::BadRequest, BearerAuthError::BadCount)), } } } diff --git a/crates/ezidam/src/guards/basic_auth.rs b/crates/ezidam/src/guards/basic_auth.rs index a8a4d2b..cccb549 100644 --- a/crates/ezidam/src/guards/basic_auth.rs +++ b/crates/ezidam/src/guards/basic_auth.rs @@ -56,12 +56,12 @@ impl<'r> FromRequest<'r> for BasicAuth { let keys: Vec<_> = request.headers().get("Authorization").collect(); match keys.len() { - 0 => Outcome::Forward(()), + 0 => Outcome::Forward(Status::BadRequest), 1 => match BasicAuth::from_base64(keys[0]) { Ok(auth_header) => Outcome::Success(auth_header), - Err(e) => Outcome::Failure((Status::BadRequest, e)), + Err(e) => Outcome::Error((Status::BadRequest, e)), }, - _ => Outcome::Failure((Status::BadRequest, BasicAuthError::BadCount)), + _ => Outcome::Error((Status::BadRequest, BasicAuthError::BadCount)), } } } diff --git a/crates/ezidam/src/guards/completed_setup.rs b/crates/ezidam/src/guards/completed_setup.rs index 057eb35..2a38e15 100644 --- a/crates/ezidam/src/guards/completed_setup.rs +++ b/crates/ezidam/src/guards/completed_setup.rs @@ -19,16 +19,16 @@ impl<'r> FromRequest<'r> for CompletedSetup { async fn from_request(request: &'r Request<'_>) -> Outcome { let db = match request.guard::<&Database>().await { Outcome::Success(database) => database, - Outcome::Failure(e) => return Outcome::Failure((e.0, Error::GetDatabase)), + Outcome::Error(e) => return Outcome::Error((e.0, Error::GetDatabase)), Outcome::Forward(f) => return Outcome::Forward(f), }; match User::get_initial_admin(&**db).await { Ok(initial_admin) => match initial_admin { Some(_) => Outcome::Success(CompletedSetup), - None => Outcome::Forward(()), + None => Outcome::Forward(Status::PermanentRedirect), }, - Err(e) => Outcome::Failure((Status::InternalServerError, Error::Request(e))), + Err(e) => Outcome::Error((Status::InternalServerError, Error::Request(e))), } } } diff --git a/crates/ezidam/src/guards/jwt.rs b/crates/ezidam/src/guards/jwt.rs index ddc5f57..83fdb97 100644 --- a/crates/ezidam/src/guards/jwt.rs +++ b/crates/ezidam/src/guards/jwt.rs @@ -16,6 +16,7 @@ use rocket::time::Duration; use rocket::tokio::task; use rocket::Request; use settings::Settings; +use std::ops::DerefMut; use users::User; mod admin; @@ -78,14 +79,14 @@ pub async fn validate_jwt( // Get database let db = match request.guard::<&Database>().await { Outcome::Success(database) => database, - Outcome::Failure(e) => return Err(Outcome::Failure((e.0, Error::GetDatabase))), + Outcome::Error(e) => return Err(Outcome::Error((e.0, Error::GetDatabase))), Outcome::Forward(f) => return Err(Outcome::Forward(f)), }; let mut transaction = match db.begin().await { Ok(transaction) => transaction, Err(_e) => { - return Err(Outcome::Failure(( + return Err(Outcome::Error(( Status::InternalServerError, Error::StartTransaction, ))); @@ -93,10 +94,10 @@ pub async fn validate_jwt( }; // Get keys - let keys = match Key::get_all(&mut transaction, Some(false)).await { + let keys = match Key::get_all(transaction.deref_mut(), Some(false)).await { Ok(keys) => keys, Err(e) => { - return Err(Outcome::Failure(( + return Err(Outcome::Error(( Status::InternalServerError, Error::Keys(e), ))) @@ -105,10 +106,10 @@ pub async fn validate_jwt( if let Some(specific_user) = specific_user { // Get settings - let settings = match Settings::get(&mut transaction).await { + let settings = match Settings::get(transaction.deref_mut()).await { Ok(settings) => settings, Err(e) => { - return Err(Outcome::Failure(( + return Err(Outcome::Error(( Status::InternalServerError, Error::GetSettings(e), ))); @@ -119,7 +120,7 @@ pub async fn validate_jwt( let first_admin = match settings.first_admin() { Some(home_page) => UserID(home_page.to_string()), None => { - return Err(Outcome::Failure(( + return Err(Outcome::Error(( Status::InternalServerError, Error::FirstAdminNotSet, ))); @@ -133,7 +134,7 @@ pub async fn validate_jwt( } if let Err(_e) = transaction.commit().await { - return Err(Outcome::Failure(( + return Err(Outcome::Error(( Status::InternalServerError, Error::CommitTransaction, ))); @@ -191,11 +192,11 @@ pub async fn validate_jwt( // Return jwt claims Ok(claims) } - Err(_e) => Err(Outcome::Forward(())), + Err(_e) => Err(Outcome::Forward(Status::Unauthorized)), }, Err(e) => { // Failed to run blocking task - Err(Outcome::Failure(( + Err(Outcome::Error(( Status::InternalServerError, Error::BlockingTask(e.to_string()), ))) @@ -211,92 +212,92 @@ pub async fn use_refresh_token( // Get database let db = match request.guard::<&Database>().await { Outcome::Success(database) => database, - Outcome::Failure(e) => return Outcome::Failure((e.0, Error::GetDatabase)), + Outcome::Error(e) => return Outcome::Error((e.0, Error::GetDatabase)), Outcome::Forward(f) => return Outcome::Forward(f), }; // Get cookies let cookie_jar = match request.guard::<&CookieJar>().await { Outcome::Success(cookie_jar) => cookie_jar, - Outcome::Failure(e) => return Outcome::Failure((e.0, Error::GetCookies)), + Outcome::Error(e) => return Outcome::Error((e.0, Error::GetCookies)), Outcome::Forward(f) => return Outcome::Forward(f), }; let mut transaction = match db.begin().await { Ok(transaction) => transaction, Err(_e) => { - return Outcome::Failure((Status::InternalServerError, Error::StartTransaction)); + return Outcome::Error((Status::InternalServerError, Error::StartTransaction)); } }; - let refresh_token = match RefreshToken::get_one(&mut transaction, &refresh).await { + let refresh_token = match RefreshToken::get_one(transaction.deref_mut(), &refresh).await { Ok(refresh_token) => match refresh_token { Some(refresh_token) => refresh_token, - None => return Outcome::Forward(()), + None => return Outcome::Forward(Status::Unauthorized), }, Err(e) => { - return Outcome::Failure((Status::InternalServerError, Error::GetRefreshToken(e))); + return Outcome::Error((Status::InternalServerError, Error::GetRefreshToken(e))); } }; - let user = match User::get_one_from_refresh_token(&mut transaction, &refresh).await { + let user = match User::get_one_from_refresh_token(transaction.deref_mut(), &refresh).await { Ok(user) => match user { Some(user) => user, None => { - return Outcome::Failure((Status::InternalServerError, Error::UserNotFound)); + return Outcome::Error((Status::InternalServerError, Error::UserNotFound)); } }, Err(e) => { - return Outcome::Failure((Status::InternalServerError, Error::GetUser(e))); + return Outcome::Error((Status::InternalServerError, Error::GetUser(e))); } }; // make sure that `get_admin` is respected, dont generate token for unwanted users! if let Some(get_admin) = get_admin { if user.is_admin() != get_admin { - return Outcome::Forward(()); + return Outcome::Forward(Status::Forbidden); } } if refresh_token.has_been_used() { // Revoke all tokens for user if let Err(e) = - RefreshToken::revoke_all_for_user(&mut transaction, refresh_token.user()).await + RefreshToken::revoke_all_for_user(transaction.deref_mut(), refresh_token.user()).await { - return Outcome::Failure((Status::InternalServerError, Error::RevokeRefreshTokens(e))); + return Outcome::Error((Status::InternalServerError, Error::RevokeRefreshTokens(e))); } if let Err(_e) = transaction.commit().await { - return Outcome::Failure((Status::InternalServerError, Error::CommitTransaction)); + return Outcome::Error((Status::InternalServerError, Error::CommitTransaction)); } - return Outcome::Forward(()); + return Outcome::Forward(Status::Unauthorized); } if refresh_token.is_revoked() { - return Outcome::Forward(()); + return Outcome::Forward(Status::Unauthorized); } if refresh_token.has_expired() { - return Outcome::Forward(()); + return Outcome::Forward(Status::Unauthorized); } - if let Err(e) = refresh_token.use_token(&mut transaction).await { - return Outcome::Failure((Status::InternalServerError, Error::MarkRefreshTokenUsed(e))); + if let Err(e) = refresh_token.use_token(transaction.deref_mut()).await { + return Outcome::Error((Status::InternalServerError, Error::MarkRefreshTokenUsed(e))); } // Get base url - let settings = match Settings::get(&mut transaction).await { + let settings = match Settings::get(transaction.deref_mut()).await { Ok(settings) => settings, Err(e) => { - return Outcome::Failure((Status::InternalServerError, Error::GetSettings(e))); + return Outcome::Error((Status::InternalServerError, Error::GetSettings(e))); } }; let home_page = match settings.url().map(String::from) { Some(home_page) => home_page, None => { - return Outcome::Failure((Status::InternalServerError, Error::ServerUrlNotSet)); + return Outcome::Error((Status::InternalServerError, Error::ServerUrlNotSet)); } }; @@ -304,7 +305,7 @@ pub async fn use_refresh_token( let new_refresh_token = match task::spawn_blocking(SecretString::default).await { Ok(new_refresh_token) => new_refresh_token, Err(e) => { - return Outcome::Failure(( + return Outcome::Error(( Status::InternalServerError, Error::BlockingTask(e.to_string()), )); @@ -315,13 +316,13 @@ pub async fn use_refresh_token( let ip_address = match request.client_ip() { Some(ip) => ip.to_string(), None => { - return Outcome::Failure((Status::BadRequest, Error::UnknownIp)); + return Outcome::Error((Status::BadRequest, Error::UnknownIp)); } }; // Insert refresh token in database if let Err(e) = RefreshToken::insert( - &mut transaction, + transaction.deref_mut(), new_refresh_token.as_ref(), ip_address, user.id(), @@ -330,7 +331,7 @@ pub async fn use_refresh_token( ) .await { - return Outcome::Failure((Status::InternalServerError, Error::SaveRefreshToken(e))); + return Outcome::Error((Status::InternalServerError, Error::SaveRefreshToken(e))); } // Add refresh token as a cookie @@ -345,24 +346,21 @@ pub async fn use_refresh_token( cookie_jar.add(cookie); // Get latest key from database - let key = match Key::get_most_recent(&mut transaction).await { + let key = match Key::get_most_recent(transaction.deref_mut()).await { Ok(key) => match key { Some(key) => key, None => { - return Outcome::Failure(( - Status::InternalServerError, - Error::MostRecentKeyNotFound, - )); + return Outcome::Error((Status::InternalServerError, Error::MostRecentKeyNotFound)); } }, Err(e) => { - return Outcome::Failure((Status::InternalServerError, Error::GetKey(e))); + return Outcome::Error((Status::InternalServerError, Error::GetKey(e))); } }; // Make sure key has not been revoked if key.is_revoked() { - return Outcome::Failure((Status::InternalServerError, Error::MostRecentKeyRevoked)); + return Outcome::Error((Status::InternalServerError, Error::MostRecentKeyRevoked)); } // Import private key @@ -373,11 +371,11 @@ pub async fn use_refresh_token( Ok(private_key) => match private_key { Ok(private_key) => private_key, Err(e) => { - return Outcome::Failure((Status::InternalServerError, Error::ImportKey(e))); + return Outcome::Error((Status::InternalServerError, Error::ImportKey(e))); } }, Err(e) => { - return Outcome::Failure(( + return Outcome::Error(( Status::InternalServerError, Error::BlockingTask(e.to_string()), )); @@ -385,13 +383,13 @@ pub async fn use_refresh_token( }; // Get user roles - let roles = match Permission::get_all(&mut transaction, Some(user.id()), None).await { + let roles = match Permission::get_all(transaction.deref_mut(), Some(user.id()), None).await { Ok(roles) => roles .into_iter() .map(|role| role.role().to_string()) .collect(), Err(e) => { - return Outcome::Failure((Status::InternalServerError, Error::GetPermissions(e))); + return Outcome::Error((Status::InternalServerError, Error::GetPermissions(e))); } }; @@ -403,7 +401,7 @@ pub async fn use_refresh_token( { Ok(jwt) => jwt, Err(e) => { - return Outcome::Failure((Status::InternalServerError, Error::SignJwt(e))); + return Outcome::Error((Status::InternalServerError, Error::SignJwt(e))); } }; @@ -416,7 +414,7 @@ pub async fn use_refresh_token( cookie_jar.add(cookie); if let Err(_e) = transaction.commit().await { - return Outcome::Failure((Status::InternalServerError, Error::CommitTransaction)); + return Outcome::Error((Status::InternalServerError, Error::CommitTransaction)); } Outcome::Success(jwt_claims) @@ -436,7 +434,7 @@ pub async fn use_access_token_or_refresh_token( match validate_jwt(access, request, get_admin, specific_user).await { Ok(jwt_claims) => match jwt_claims { Some(jwt_claims) => Outcome::Success(jwt_claims), - None => Outcome::Forward(()), + None => Outcome::Forward(Status::Unauthorized), }, Err(e) => e, } @@ -447,7 +445,7 @@ pub async fn use_access_token_or_refresh_token( } (None, None) => { // Nothing to do - Outcome::Forward(()) + Outcome::Forward(Status::Unauthorized) } } } diff --git a/crates/ezidam/src/guards/jwt/admin_not_current.rs b/crates/ezidam/src/guards/jwt/admin_not_current.rs index 6ce90c8..6145a11 100644 --- a/crates/ezidam/src/guards/jwt/admin_not_current.rs +++ b/crates/ezidam/src/guards/jwt/admin_not_current.rs @@ -2,6 +2,7 @@ use super::Error; use crate::guards::{use_access_token_or_refresh_token, SpecificUser}; use crate::id::RocketUserID; use jwt::JwtClaims; +use rocket::http::Status; use rocket::request::{FromRequest, Outcome}; use rocket::Request; @@ -30,7 +31,7 @@ impl<'r> FromRequest<'r> for JwtAdminNotCurrent { ret } { Some(user_id) => user_id, - None => return Outcome::Forward(()), + None => return Outcome::Forward(Status::Forbidden), }; // Don't allow first admin @@ -49,10 +50,10 @@ impl<'r> FromRequest<'r> for JwtAdminNotCurrent { if success.0.subject != user_id.0 .0 { Outcome::Success(success) } else { - Outcome::Forward(()) + Outcome::Forward(Status::Forbidden) } } - Outcome::Failure(failure) => Outcome::Failure(failure), + Outcome::Error(failure) => Outcome::Error(failure), Outcome::Forward(forward) => Outcome::Forward(forward), } } diff --git a/crates/ezidam/src/guards/need_setup.rs b/crates/ezidam/src/guards/need_setup.rs index 953c50b..5f39172 100644 --- a/crates/ezidam/src/guards/need_setup.rs +++ b/crates/ezidam/src/guards/need_setup.rs @@ -19,16 +19,16 @@ impl<'r> FromRequest<'r> for NeedSetup { async fn from_request(request: &'r Request<'_>) -> Outcome { let db = match request.guard::<&Database>().await { Outcome::Success(database) => database, - Outcome::Failure(e) => return Outcome::Failure((e.0, Error::GetDatabase)), + Outcome::Error(e) => return Outcome::Error((e.0, Error::GetDatabase)), Outcome::Forward(f) => return Outcome::Forward(f), }; match User::get_initial_admin(&**db).await { Ok(initial_admin) => match initial_admin { - Some(_) => Outcome::Forward(()), + Some(_) => Outcome::Forward(Status::PermanentRedirect), None => Outcome::Success(NeedSetup), }, - Err(e) => Outcome::Failure((Status::InternalServerError, Error::Request(e))), + Err(e) => Outcome::Error((Status::InternalServerError, Error::Request(e))), } } } diff --git a/crates/ezidam/src/guards/refresh_token.rs b/crates/ezidam/src/guards/refresh_token.rs index c92eac4..8c95876 100644 --- a/crates/ezidam/src/guards/refresh_token.rs +++ b/crates/ezidam/src/guards/refresh_token.rs @@ -1,4 +1,5 @@ use crate::tokens::REFRESH_TOKEN_COOKIE_NAME; +use rocket::http::Status; use rocket::request::{FromRequest, Outcome}; use rocket::Request; @@ -26,7 +27,7 @@ impl<'r> FromRequest<'r> for RefreshToken { async fn from_request(request: &'r Request<'_>) -> Outcome { match get_refresh_token_from_cookie(request) { Some(refresh_token) => Outcome::Success(Self(refresh_token)), - None => Outcome::Forward(()), + None => Outcome::Forward(Status::Unauthorized), } } } diff --git a/crates/ezidam/src/guards/totp_request.rs b/crates/ezidam/src/guards/totp_request.rs index 16cd50f..31fc6cb 100644 --- a/crates/ezidam/src/guards/totp_request.rs +++ b/crates/ezidam/src/guards/totp_request.rs @@ -1,3 +1,4 @@ +use rocket::http::Status; use rocket::request::{FromRequest, Outcome}; use rocket::Request; use users::totp_login_request::{TOTP_REQUEST_COOKIE_NAME, TOTP_REQUEST_LEN}; @@ -16,10 +17,10 @@ impl<'r> FromRequest<'r> for TotpRequest { if value.len() == TOTP_REQUEST_LEN { Outcome::Success(Self(value.to_string())) } else { - Outcome::Forward(()) + Outcome::Forward(Status::BadRequest) } } - None => Outcome::Forward(()), + None => Outcome::Forward(Status::BadRequest), } } } diff --git a/crates/ezidam/src/routes.rs b/crates/ezidam/src/routes.rs index 03c6050..c5372c8 100644 --- a/crates/ezidam/src/routes.rs +++ b/crates/ezidam/src/routes.rs @@ -27,6 +27,7 @@ pub(self) mod prelude { pub use rocket_db_pools::sqlx::Acquire; pub use rocket_db_pools::Connection; pub use rocket_dyn_templates::Template; + pub use std::ops::DerefMut; pub type Result = std::result::Result; } diff --git a/crates/ezidam/src/routes/admin/apps.rs b/crates/ezidam/src/routes/admin/apps.rs index 89c8fd6..976377c 100644 --- a/crates/ezidam/src/routes/admin/apps.rs +++ b/crates/ezidam/src/routes/admin/apps.rs @@ -10,7 +10,9 @@ pub async fn admin_apps_list( admin: JwtAdmin, flash: Option>, ) -> Result