clean up sessions that are not in use

This commit is contained in:
Charlotte 🦝 Delenk 2024-12-04 10:36:48 +01:00
parent e768b06116
commit 2f7eab29da
Signed by: darkkirb
GPG key ID: AB2BD8DAF2E37122
15 changed files with 389 additions and 291 deletions

149
Cargo.lock generated
View file

@ -228,7 +228,7 @@ dependencies = [
"aws-sdk-sts",
"aws-smithy-async",
"aws-smithy-http",
"aws-smithy-json",
"aws-smithy-json 0.60.7",
"aws-smithy-runtime",
"aws-smithy-runtime-api",
"aws-smithy-types",
@ -285,9 +285,9 @@ dependencies = [
[[package]]
name = "aws-runtime"
version = "1.4.3"
version = "1.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a10d5c055aa540164d9561a0e2e74ad30f0dcf7393c3a92f6733ddf9c5762468"
checksum = "b5ac934720fbb46206292d2c75b57e67acfc56fe7dfd34fb9a02334af08409ea"
dependencies = [
"aws-credential-types",
"aws-sigv4",
@ -311,9 +311,9 @@ dependencies = [
[[package]]
name = "aws-sdk-s3"
version = "1.64.0"
version = "1.65.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35fe5e7f71b1cc6274e905d3bcc7daf94099ac2d4cba83447ffb959b5b27b3c1"
checksum = "d3ba2c5c0f2618937ce3d4a5ad574b86775576fa24006bcb3128c6e2cbf3c34e"
dependencies = [
"aws-credential-types",
"aws-runtime",
@ -322,7 +322,7 @@ dependencies = [
"aws-smithy-checksums",
"aws-smithy-eventstream",
"aws-smithy-http",
"aws-smithy-json",
"aws-smithy-json 0.61.1",
"aws-smithy-runtime",
"aws-smithy-runtime-api",
"aws-smithy-types",
@ -345,15 +345,15 @@ dependencies = [
[[package]]
name = "aws-sdk-sso"
version = "1.49.0"
version = "1.50.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09677244a9da92172c8dc60109b4a9658597d4d298b188dd0018b6a66b410ca4"
checksum = "05ca43a4ef210894f93096039ef1d6fa4ad3edfabb3be92b80908b9f2e4b4eab"
dependencies = [
"aws-credential-types",
"aws-runtime",
"aws-smithy-async",
"aws-smithy-http",
"aws-smithy-json",
"aws-smithy-json 0.61.1",
"aws-smithy-runtime",
"aws-smithy-runtime-api",
"aws-smithy-types",
@ -367,15 +367,15 @@ dependencies = [
[[package]]
name = "aws-sdk-ssooidc"
version = "1.50.0"
version = "1.51.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81fea2f3a8bb3bd10932ae7ad59cc59f65f270fc9183a7e91f501dc5efbef7ee"
checksum = "abaf490c2e48eed0bb8e2da2fb08405647bd7f253996e0f93b981958ea0f73b0"
dependencies = [
"aws-credential-types",
"aws-runtime",
"aws-smithy-async",
"aws-smithy-http",
"aws-smithy-json",
"aws-smithy-json 0.61.1",
"aws-smithy-runtime",
"aws-smithy-runtime-api",
"aws-smithy-types",
@ -389,15 +389,15 @@ dependencies = [
[[package]]
name = "aws-sdk-sts"
version = "1.50.0"
version = "1.51.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ada54e5f26ac246dc79727def52f7f8ed38915cb47781e2a72213957dc3a7d5"
checksum = "b68fde0d69c8bfdc1060ea7da21df3e39f6014da316783336deff0a9ec28f4bf"
dependencies = [
"aws-credential-types",
"aws-runtime",
"aws-smithy-async",
"aws-smithy-http",
"aws-smithy-json",
"aws-smithy-json 0.61.1",
"aws-smithy-query",
"aws-smithy-runtime",
"aws-smithy-runtime-api",
@ -412,9 +412,9 @@ dependencies = [
[[package]]
name = "aws-sigv4"
version = "1.2.5"
version = "1.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5619742a0d8f253be760bfbb8e8e8368c69e3587e4637af5754e488a611499b1"
checksum = "7d3820e0c08d0737872ff3c7c1f21ebbb6693d832312d6152bf18ef50a5471c2"
dependencies = [
"aws-credential-types",
"aws-smithy-eventstream",
@ -427,7 +427,7 @@ dependencies = [
"hex",
"hmac",
"http 0.2.12",
"http 1.1.0",
"http 1.2.0",
"once_cell",
"p256",
"percent-encoding",
@ -512,6 +512,15 @@ dependencies = [
"aws-smithy-types",
]
[[package]]
name = "aws-smithy-json"
version = "0.61.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee4e69cc50921eb913c6b662f8d909131bb3e6ad6cb6090d3a39b66fc5c52095"
dependencies = [
"aws-smithy-types",
]
[[package]]
name = "aws-smithy-query"
version = "0.60.7"
@ -524,9 +533,9 @@ dependencies = [
[[package]]
name = "aws-smithy-runtime"
version = "1.7.3"
version = "1.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be28bd063fa91fd871d131fc8b68d7cd4c5fa0869bea68daca50dcb1cbd76be2"
checksum = "9f20685047ca9d6f17b994a07f629c813f08b5bce65523e47124879e60103d45"
dependencies = [
"aws-smithy-async",
"aws-smithy-http",
@ -559,7 +568,7 @@ dependencies = [
"aws-smithy-types",
"bytes",
"http 0.2.12",
"http 1.1.0",
"http 1.2.0",
"pin-project-lite",
"tokio",
"tracing",
@ -577,7 +586,7 @@ dependencies = [
"bytes-utils",
"futures-core",
"http 0.2.12",
"http 1.1.0",
"http 1.2.0",
"http-body 0.4.6",
"http-body 1.0.1",
"http-body-util",
@ -625,7 +634,7 @@ dependencies = [
"axum-core",
"bytes",
"futures-util",
"http 1.1.0",
"http 1.2.0",
"http-body 1.0.1",
"http-body-util",
"hyper 1.5.1",
@ -649,17 +658,6 @@ dependencies = [
"tracing",
]
[[package]]
name = "axum-client-ip"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9eefda7e2b27e1bda4d6fa8a06b50803b8793769045918bc37ad062d48a6efac"
dependencies = [
"axum",
"forwarded-header-value",
"serde",
]
[[package]]
name = "axum-core"
version = "0.4.5"
@ -669,7 +667,7 @@ dependencies = [
"async-trait",
"bytes",
"futures-util",
"http 1.1.0",
"http 1.2.0",
"http-body 1.0.1",
"http-body-util",
"mime",
@ -690,7 +688,7 @@ dependencies = [
"axum",
"bytes",
"futures-core",
"http 1.1.0",
"http 1.2.0",
"http-body 1.0.1",
"matchit",
"metrics",
@ -934,6 +932,7 @@ dependencies = [
"sentry-eyre",
"sentry-tracing",
"tokio",
"tracing",
"tracing-error",
"tracing-subscriber",
]
@ -986,8 +985,10 @@ dependencies = [
"bincode",
"blake3",
"chir-rs-http-api",
"chir-rs-misc",
"eyre",
"mime",
"rand",
"serde",
"sqlx",
"tokio",
@ -1016,10 +1017,8 @@ version = "0.1.0"
dependencies = [
"argon2",
"axum",
"axum-client-ip",
"axum-prometheus",
"b64-ct",
"base64 0.22.1",
"bincode",
"chir-rs-castore",
"chir-rs-config",
@ -1048,10 +1047,10 @@ dependencies = [
"bytes",
"educe",
"eyre",
"http 1.1.0",
"http 1.2.0",
"mime",
"serde",
"thiserror 2.0.3",
"thiserror 2.0.4",
"tracing",
]
@ -1101,9 +1100,9 @@ dependencies = [
[[package]]
name = "clap"
version = "4.5.21"
version = "4.5.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f"
checksum = "69371e34337c4c984bbe322360c2547210bf632eb2814bbe78a6e87a2935bd2b"
dependencies = [
"clap_builder",
"clap_derive",
@ -1111,9 +1110,9 @@ dependencies = [
[[package]]
name = "clap_builder"
version = "4.5.21"
version = "4.5.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec"
checksum = "6e24c1b4099818523236a8ca881d2b45db98dadfb4625cf6608c12069fcbbde1"
dependencies = [
"anstream",
"anstyle",
@ -1615,16 +1614,6 @@ dependencies = [
"percent-encoding",
]
[[package]]
name = "forwarded-header-value"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9"
dependencies = [
"nonempty",
"thiserror 1.0.69",
]
[[package]]
name = "fs_extra"
version = "1.3.0"
@ -1817,7 +1806,7 @@ dependencies = [
"fnv",
"futures-core",
"futures-sink",
"http 1.1.0",
"http 1.2.0",
"indexmap",
"slab",
"tokio",
@ -1930,9 +1919,9 @@ dependencies = [
[[package]]
name = "http"
version = "1.1.0"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea"
dependencies = [
"bytes",
"fnv",
@ -1957,7 +1946,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
dependencies = [
"bytes",
"http 1.1.0",
"http 1.2.0",
]
[[package]]
@ -1968,7 +1957,7 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
dependencies = [
"bytes",
"futures-util",
"http 1.1.0",
"http 1.2.0",
"http-body 1.0.1",
"pin-project-lite",
]
@ -2019,7 +2008,7 @@ dependencies = [
"futures-channel",
"futures-util",
"h2 0.4.7",
"http 1.1.0",
"http 1.2.0",
"http-body 1.0.1",
"httparse",
"httpdate",
@ -2053,7 +2042,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333"
dependencies = [
"futures-util",
"http 1.1.0",
"http 1.2.0",
"hyper 1.5.1",
"hyper-util",
"rustls 0.23.19",
@ -2073,7 +2062,7 @@ dependencies = [
"bytes",
"futures-channel",
"futures-util",
"http 1.1.0",
"http 1.2.0",
"http-body 1.0.1",
"hyper 1.5.1",
"pin-project-lite",
@ -2528,12 +2517,6 @@ dependencies = [
"minimal-lexical",
]
[[package]]
name = "nonempty"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7"
[[package]]
name = "nu-ansi-term"
version = "0.46.0"
@ -2890,7 +2873,7 @@ dependencies = [
"rustc-hash 2.1.0",
"rustls 0.23.19",
"socket2",
"thiserror 2.0.3",
"thiserror 2.0.4",
"tokio",
"tracing",
]
@ -2909,7 +2892,7 @@ dependencies = [
"rustls 0.23.19",
"rustls-pki-types",
"slab",
"thiserror 2.0.3",
"thiserror 2.0.4",
"tinyvec",
"tracing",
"web-time",
@ -3057,7 +3040,7 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-util",
"http 1.1.0",
"http 1.2.0",
"http-body 1.0.1",
"http-body-util",
"hyper 1.5.1",
@ -3485,7 +3468,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c90802b38c899a2c9e557dff25ad186362eddf755d5f5244001b172dd03bead"
dependencies = [
"axum",
"http 1.1.0",
"http 1.2.0",
"pin-project",
"sentry-core",
"tower-layer",
@ -4029,11 +4012,11 @@ dependencies = [
[[package]]
name = "thiserror"
version = "2.0.3"
version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa"
checksum = "2f49a1853cf82743e3b7950f77e0f4d622ca36cf4317cba00c767838bac8d490"
dependencies = [
"thiserror-impl 2.0.3",
"thiserror-impl 2.0.4",
]
[[package]]
@ -4049,9 +4032,9 @@ dependencies = [
[[package]]
name = "thiserror-impl"
version = "2.0.3"
version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568"
checksum = "8381894bb3efe0c4acac3ded651301ceee58a15d47c2e34885ed1908ad667061"
dependencies = [
"proc-macro2",
"quote",
@ -4126,9 +4109,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
version = "1.41.1"
version = "1.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33"
checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551"
dependencies = [
"backtrace",
"bytes",
@ -4266,7 +4249,7 @@ checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5"
dependencies = [
"bitflags",
"bytes",
"http 1.1.0",
"http 1.2.0",
"http-body 1.0.1",
"http-body-util",
"pin-project-lite",
@ -4282,7 +4265,7 @@ checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697"
dependencies = [
"bitflags",
"bytes",
"http 1.1.0",
"http 1.2.0",
"http-body 1.0.1",
"pin-project-lite",
"tower-layer",
@ -4465,9 +4448,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "ureq"
version = "2.10.1"
version = "2.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a"
checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d"
dependencies = [
"base64 0.22.1",
"log",

335
Cargo.nix
View file

@ -32,7 +32,7 @@ args@{
ignoreLockHash,
}:
let
nixifiedLockHash = "234b56dfc4b59e0b26044b6263573e725aa8e1a11bf1d349c799223f090b8c26";
nixifiedLockHash = "11a64cfe7de901d3281b189f031b32ae0457044c4134a845d433d25e040d5018";
workspaceSrc = if args.workspaceSrc == null then ./. else args.workspaceSrc;
currentLockHash = builtins.hashFile "sha256" (workspaceSrc + /Cargo.lock);
lockHashIgnored =
@ -674,19 +674,19 @@ else
inherit profileName;
}).out;
aws_runtime =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-runtime."1.4.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-runtime."1.4.4" {
inherit profileName;
}).out;
aws_sdk_sso =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-sdk-sso."1.49.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-sdk-sso."1.50.0" {
inherit profileName;
}).out;
aws_sdk_ssooidc =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-sdk-ssooidc."1.50.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-sdk-ssooidc."1.51.0" {
inherit profileName;
}).out;
aws_sdk_sts =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-sdk-sts."1.50.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-sdk-sts."1.51.0" {
inherit profileName;
}).out;
aws_smithy_async =
@ -702,7 +702,7 @@ else
inherit profileName;
}).out;
aws_smithy_runtime =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.4" {
inherit profileName;
}).out;
aws_smithy_runtime_api =
@ -742,7 +742,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tracing =
@ -898,15 +898,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".aws-runtime."1.4.3" =
"registry+https://github.com/rust-lang/crates.io-index".aws-runtime."1.4.4" =
overridableMkRustCrate
(profileName: rec {
name = "aws-runtime";
version = "1.4.3";
version = "1.4.4";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "a10d5c055aa540164d9561a0e2e74ad30f0dcf7393c3a92f6733ddf9c5762468";
sha256 = "b5ac934720fbb46206292d2c75b57e67acfc56fe7dfd34fb9a02334af08409ea";
};
features = builtins.concatLists [
[ "event-stream" ]
@ -919,7 +919,7 @@ else
inherit profileName;
}).out;
aws_sigv4 =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-sigv4."1.2.5" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-sigv4."1.2.6" {
inherit profileName;
}).out;
aws_smithy_async =
@ -936,7 +936,7 @@ else
inherit profileName;
}).out;
aws_smithy_runtime =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.4" {
inherit profileName;
}).out;
aws_smithy_runtime_api =
@ -990,15 +990,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".aws-sdk-s3."1.64.0" =
"registry+https://github.com/rust-lang/crates.io-index".aws-sdk-s3."1.65.0" =
overridableMkRustCrate
(profileName: rec {
name = "aws-sdk-s3";
version = "1.64.0";
version = "1.65.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "35fe5e7f71b1cc6274e905d3bcc7daf94099ac2d4cba83447ffb959b5b27b3c1";
sha256 = "d3ba2c5c0f2618937ce3d4a5ad574b86775576fa24006bcb3128c6e2cbf3c34e";
};
features = builtins.concatLists [
[ "default" ]
@ -1012,11 +1012,11 @@ else
inherit profileName;
}).out;
aws_runtime =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-runtime."1.4.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-runtime."1.4.4" {
inherit profileName;
}).out;
aws_sigv4 =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-sigv4."1.2.5" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-sigv4."1.2.6" {
inherit profileName;
}).out;
aws_smithy_async =
@ -1037,11 +1037,11 @@ else
inherit profileName;
}).out;
aws_smithy_json =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-json."0.60.7" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-json."0.61.1" {
inherit profileName;
}).out;
aws_smithy_runtime =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.4" {
inherit profileName;
}).out;
aws_smithy_runtime_api =
@ -1115,15 +1115,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".aws-sdk-sso."1.49.0" =
"registry+https://github.com/rust-lang/crates.io-index".aws-sdk-sso."1.50.0" =
overridableMkRustCrate
(profileName: rec {
name = "aws-sdk-sso";
version = "1.49.0";
version = "1.50.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "09677244a9da92172c8dc60109b4a9658597d4d298b188dd0018b6a66b410ca4";
sha256 = "05ca43a4ef210894f93096039ef1d6fa4ad3edfabb3be92b80908b9f2e4b4eab";
};
dependencies = {
aws_credential_types =
@ -1131,7 +1131,7 @@ else
inherit profileName;
}).out;
aws_runtime =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-runtime."1.4.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-runtime."1.4.4" {
inherit profileName;
}).out;
aws_smithy_async =
@ -1143,11 +1143,11 @@ else
inherit profileName;
}).out;
aws_smithy_json =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-json."0.60.7" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-json."0.61.1" {
inherit profileName;
}).out;
aws_smithy_runtime =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.4" {
inherit profileName;
}).out;
aws_smithy_runtime_api =
@ -1185,15 +1185,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".aws-sdk-ssooidc."1.50.0" =
"registry+https://github.com/rust-lang/crates.io-index".aws-sdk-ssooidc."1.51.0" =
overridableMkRustCrate
(profileName: rec {
name = "aws-sdk-ssooidc";
version = "1.50.0";
version = "1.51.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "81fea2f3a8bb3bd10932ae7ad59cc59f65f270fc9183a7e91f501dc5efbef7ee";
sha256 = "abaf490c2e48eed0bb8e2da2fb08405647bd7f253996e0f93b981958ea0f73b0";
};
dependencies = {
aws_credential_types =
@ -1201,7 +1201,7 @@ else
inherit profileName;
}).out;
aws_runtime =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-runtime."1.4.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-runtime."1.4.4" {
inherit profileName;
}).out;
aws_smithy_async =
@ -1213,11 +1213,11 @@ else
inherit profileName;
}).out;
aws_smithy_json =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-json."0.60.7" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-json."0.61.1" {
inherit profileName;
}).out;
aws_smithy_runtime =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.4" {
inherit profileName;
}).out;
aws_smithy_runtime_api =
@ -1255,15 +1255,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".aws-sdk-sts."1.50.0" =
"registry+https://github.com/rust-lang/crates.io-index".aws-sdk-sts."1.51.0" =
overridableMkRustCrate
(profileName: rec {
name = "aws-sdk-sts";
version = "1.50.0";
version = "1.51.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "6ada54e5f26ac246dc79727def52f7f8ed38915cb47781e2a72213957dc3a7d5";
sha256 = "b68fde0d69c8bfdc1060ea7da21df3e39f6014da316783336deff0a9ec28f4bf";
};
dependencies = {
aws_credential_types =
@ -1271,7 +1271,7 @@ else
inherit profileName;
}).out;
aws_runtime =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-runtime."1.4.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-runtime."1.4.4" {
inherit profileName;
}).out;
aws_smithy_async =
@ -1283,7 +1283,7 @@ else
inherit profileName;
}).out;
aws_smithy_json =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-json."0.60.7" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-json."0.61.1" {
inherit profileName;
}).out;
aws_smithy_query =
@ -1291,7 +1291,7 @@ else
inherit profileName;
}).out;
aws_smithy_runtime =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.4" {
inherit profileName;
}).out;
aws_smithy_runtime_api =
@ -1329,15 +1329,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".aws-sigv4."1.2.5" =
"registry+https://github.com/rust-lang/crates.io-index".aws-sigv4."1.2.6" =
overridableMkRustCrate
(profileName: rec {
name = "aws-sigv4";
version = "1.2.5";
version = "1.2.6";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "5619742a0d8f253be760bfbb8e8e8368c69e3587e4637af5754e488a611499b1";
sha256 = "7d3820e0c08d0737872ff3c7c1f21ebbb6693d832312d6152bf18ef50a5471c2";
};
features = builtins.concatLists [
[ "default" ]
@ -1394,7 +1394,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
once_cell =
@ -1459,7 +1459,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
};
@ -1646,6 +1646,24 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".aws-smithy-json."0.61.1" =
overridableMkRustCrate
(profileName: rec {
name = "aws-smithy-json";
version = "0.61.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "ee4e69cc50921eb913c6b662f8d909131bb3e6ad6cb6090d3a39b66fc5c52095";
};
dependencies = {
aws_smithy_types =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-smithy-types."1.2.9" {
inherit profileName;
}).out;
};
});
"registry+https://github.com/rust-lang/crates.io-index".aws-smithy-query."0.60.7" =
overridableMkRustCrate
(profileName: rec {
@ -1668,15 +1686,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.3" =
"registry+https://github.com/rust-lang/crates.io-index".aws-smithy-runtime."1.7.4" =
overridableMkRustCrate
(profileName: rec {
name = "aws-smithy-runtime";
version = "1.7.3";
version = "1.7.4";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "be28bd063fa91fd871d131fc8b68d7cd4c5fa0869bea68daca50dcb1cbd76be2";
sha256 = "9f20685047ca9d6f17b994a07f629c813f08b5bce65523e47124879e60103d45";
};
features = builtins.concatLists [
[ "client" ]
@ -1754,7 +1772,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tracing =
@ -1800,7 +1818,7 @@ else
inherit profileName;
}).out;
http_1x =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
pin_project_lite =
@ -1808,7 +1826,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tracing =
@ -1861,7 +1879,7 @@ else
inherit profileName;
}).out;
http_1x =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
http_body_0_4 =
@ -1905,7 +1923,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tokio_util =
@ -2013,7 +2031,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
http_body =
@ -2081,7 +2099,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tower =
@ -2103,32 +2121,6 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".axum-client-ip."0.6.1" =
overridableMkRustCrate
(profileName: rec {
name = "axum-client-ip";
version = "0.6.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "9eefda7e2b27e1bda4d6fa8a06b50803b8793769045918bc37ad062d48a6efac";
};
dependencies = {
axum =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".axum."0.7.9" {
inherit profileName;
}).out;
forwarded_header_value =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".forwarded-header-value."0.1.1"
{ inherit profileName; }
).out;
serde =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.215" {
inherit profileName;
}).out;
};
});
"registry+https://github.com/rust-lang/crates.io-index".axum-core."0.4.5" =
overridableMkRustCrate
(profileName: rec {
@ -2156,7 +2148,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
http_body =
@ -2227,7 +2219,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
http_body =
@ -2256,7 +2248,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tower =
@ -2934,7 +2926,11 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tracing =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing."0.1.41" {
inherit profileName;
}).out;
tracing_error =
@ -2959,7 +2955,7 @@ else
inherit profileName;
}).out;
aws_sdk_s3 =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-sdk-s3."1.64.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".aws-sdk-s3."1.65.0" {
inherit profileName;
}).out;
blake3 =
@ -2985,7 +2981,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tracing =
@ -3007,7 +3003,7 @@ else
}).out;
chir_rs_http_api = (rustPackages."unknown".chir-rs-http-api."0.1.0" { inherit profileName; }).out;
clap =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".clap."4.5.21" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".clap."4.5.22" {
inherit profileName;
}).out;
color_eyre =
@ -3023,7 +3019,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tracing_subscriber =
@ -3073,6 +3069,7 @@ else
inherit profileName;
}).out;
chir_rs_http_api = (rustPackages."unknown".chir-rs-http-api."0.1.0" { inherit profileName; }).out;
chir_rs_misc = (rustPackages."unknown".chir-rs-misc."0.1.0" { inherit profileName; }).out;
eyre =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".eyre."0.6.12" {
inherit profileName;
@ -3081,6 +3078,10 @@ else
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".mime."0.3.17" {
inherit profileName;
}).out;
rand =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".rand."0.8.5" {
inherit profileName;
}).out;
serde =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.215" {
inherit profileName;
@ -3090,7 +3091,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tracing =
@ -3122,7 +3123,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tokio_rustls =
@ -3154,10 +3155,6 @@ else
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".axum."0.7.9" {
inherit profileName;
}).out;
axum_client_ip =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".axum-client-ip."0.6.1" {
inherit profileName;
}).out;
axum_prometheus =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".axum-prometheus."0.7.0" {
inherit profileName;
@ -3166,10 +3163,6 @@ else
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".b64-ct."0.1.2" {
inherit profileName;
}).out;
base64 =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".base64."0.22.1" {
inherit profileName;
}).out;
bincode =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".bincode."2.0.0-rc.3" {
inherit profileName;
@ -3200,7 +3193,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tower_http =
@ -3261,7 +3254,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
mime =
@ -3273,7 +3266,7 @@ else
inherit profileName;
}).out;
thiserror =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.4" {
inherit profileName;
}).out;
tracing =
@ -3445,15 +3438,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".clap."4.5.21" =
"registry+https://github.com/rust-lang/crates.io-index".clap."4.5.22" =
overridableMkRustCrate
(profileName: rec {
name = "clap";
version = "4.5.21";
version = "4.5.22";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f";
sha256 = "69371e34337c4c984bbe322360c2547210bf632eb2814bbe78a6e87a2935bd2b";
};
features = builtins.concatLists [
[ "color" ]
@ -3467,7 +3460,7 @@ else
];
dependencies = {
clap_builder =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".clap_builder."4.5.21" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".clap_builder."4.5.22" {
inherit profileName;
}).out;
clap_derive =
@ -3477,15 +3470,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".clap_builder."4.5.21" =
"registry+https://github.com/rust-lang/crates.io-index".clap_builder."4.5.22" =
overridableMkRustCrate
(profileName: rec {
name = "clap_builder";
version = "4.5.21";
version = "4.5.22";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec";
sha256 = "6e24c1b4099818523236a8ca881d2b45db98dadfb4625cf6608c12069fcbbde1";
};
features = builtins.concatLists [
[ "color" ]
@ -4832,28 +4825,6 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".forwarded-header-value."0.1.1" =
overridableMkRustCrate
(profileName: rec {
name = "forwarded-header-value";
version = "0.1.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9";
};
dependencies = {
nonempty =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".nonempty."0.7.0" {
inherit profileName;
}).out;
thiserror =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."1.0.69" {
inherit profileName;
}).out;
};
});
"registry+https://github.com/rust-lang/crates.io-index".fs_extra."1.3.0" =
overridableMkRustCrate
(profileName: rec {
@ -5372,7 +5343,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tokio_util =
@ -5418,7 +5389,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
indexmap =
@ -5430,7 +5401,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tokio_util =
@ -5695,15 +5666,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" =
"registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" =
overridableMkRustCrate
(profileName: rec {
name = "http";
version = "1.1.0";
version = "1.2.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258";
sha256 = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea";
};
features = builtins.concatLists [
[ "default" ]
@ -5767,7 +5738,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
};
@ -5793,7 +5764,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
http_body =
@ -5906,7 +5877,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tower_service =
@ -5959,7 +5930,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
http_body =
@ -5987,7 +5958,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
want =
@ -6045,7 +6016,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tokio_rustls =
@ -6078,7 +6049,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
hyper =
@ -6098,7 +6069,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tokio_rustls =
@ -6151,7 +6122,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
http_body =
@ -6171,7 +6142,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tower_service =
@ -7218,7 +7189,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tracing =
@ -7395,18 +7366,6 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".nonempty."0.7.0" =
overridableMkRustCrate
(profileName: rec {
name = "nonempty";
version = "0.7.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7";
};
});
"registry+https://github.com/rust-lang/crates.io-index".nu-ansi-term."0.46.0" =
overridableMkRustCrate
(profileName: rec {
@ -8357,11 +8316,11 @@ else
inherit profileName;
}).out;
thiserror =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.4" {
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tracing =
@ -8419,7 +8378,7 @@ else
inherit profileName;
}).out;
thiserror =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.3" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.4" {
inherit profileName;
}).out;
tinyvec =
@ -8875,7 +8834,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
${if !(hostPlatform.parsed.cpu.name == "wasm32") then "http_body" else null} =
@ -8959,7 +8918,7 @@ else
inherit profileName;
}).out;
${if !(hostPlatform.parsed.cpu.name == "wasm32") then "tokio" else null} =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
${if !(hostPlatform.parsed.cpu.name == "wasm32") then "tokio_rustls" else null} =
@ -10054,11 +10013,11 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
ureq =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".ureq."2.10.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".ureq."2.12.1" {
inherit profileName;
}).out;
webpki_roots =
@ -10281,7 +10240,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
pin_project =
@ -11114,7 +11073,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tokio_stream =
@ -11262,7 +11221,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
url =
@ -11950,15 +11909,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.3" =
"registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.4" =
overridableMkRustCrate
(profileName: rec {
name = "thiserror";
version = "2.0.3";
version = "2.0.4";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa";
sha256 = "2f49a1853cf82743e3b7950f77e0f4d622ca36cf4317cba00c767838bac8d490";
};
features = builtins.concatLists [
[ "default" ]
@ -11966,7 +11925,7 @@ else
];
dependencies = {
thiserror_impl =
(buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror-impl."2.0.3" {
(buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror-impl."2.0.4" {
profileName = "__noProfile";
}).out;
};
@ -11998,15 +11957,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".thiserror-impl."2.0.3" =
"registry+https://github.com/rust-lang/crates.io-index".thiserror-impl."2.0.4" =
overridableMkRustCrate
(profileName: rec {
name = "thiserror-impl";
version = "2.0.3";
version = "2.0.4";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568";
sha256 = "8381894bb3efe0c4acac3ded651301ceee58a15d47c2e34885ed1908ad667061";
};
dependencies = {
proc_macro2 =
@ -12194,15 +12153,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" =
"registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" =
overridableMkRustCrate
(profileName: rec {
name = "tokio";
version = "1.41.1";
version = "1.42.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33";
sha256 = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551";
};
features = builtins.concatLists [
[ "bytes" ]
@ -12217,6 +12176,7 @@ else
[ "process" ]
[ "rt" ]
[ "rt-multi-thread" ]
[ "signal" ]
[ "signal-hook-registry" ]
[ "socket2" ]
[ "sync" ]
@ -12310,7 +12270,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
};
@ -12343,7 +12303,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
};
@ -12374,7 +12334,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
};
@ -12413,7 +12373,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
};
@ -12585,7 +12545,7 @@ else
inherit profileName;
}).out;
tokio =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.42.0" {
inherit profileName;
}).out;
tower_layer =
@ -12626,7 +12586,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
http_body =
@ -12677,7 +12637,7 @@ else
inherit profileName;
}).out;
http =
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.1.0" {
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.2.0" {
inherit profileName;
}).out;
http_body =
@ -13158,15 +13118,15 @@ else
};
});
"registry+https://github.com/rust-lang/crates.io-index".ureq."2.10.1" =
"registry+https://github.com/rust-lang/crates.io-index".ureq."2.12.1" =
overridableMkRustCrate
(profileName: rec {
name = "ureq";
version = "2.10.1";
version = "2.12.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a";
sha256 = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d";
};
features = builtins.concatLists [
[ "tls" ]
@ -14060,6 +14020,7 @@ else
[ "Win32_Storage_FileSystem" ]
[ "Win32_System" ]
[ "Win32_System_Com" ]
[ "Win32_System_Console" ]
[ "Win32_System_IO" ]
[ "Win32_System_LibraryLoader" ]
[ "Win32_System_Pipes" ]

View file

@ -35,7 +35,8 @@ sentry = { version = "0.34.0", default-features = false, features = [
] }
sentry-eyre = "0.2.0"
sentry-tracing = { version = "0.34.0", features = ["backtrace"] }
tokio = { version = "1.41.1", features = ["macros", "rt-multi-thread"] }
tokio = { version = "1.41.1", features = ["macros", "rt-multi-thread", "signal"] }
tracing = "0.1.41"
tracing-error = "0.2.0"
tracing-subscriber = { version = "0.3.18", features = ["env-filter", "json"] }

View file

@ -49,7 +49,7 @@ async fn login(url: String, username: String, password: String) -> Result<()> {
if status.is_success() {
let response: PasetoToken =
bincode::decode_from_slice(&response, bincode::config::standard())?.0;
println!("{}", response.to_paseto()?);
println!("{}", response.to_paseto());
} else {
let response: APIError =
bincode::decode_from_slice(&response, bincode::config::standard())?.0;

View file

@ -0,0 +1,14 @@
{
"db_name": "PostgreSQL",
"query": "DELETE FROM \"session_scopes\" WHERE session_id < $1",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Bytea"
]
},
"nullable": []
},
"hash": "20689c3363e0c27e4664c608378b9731f98e1e9d8d9122cc8c7e63773fcb5bf2"
}

View file

@ -0,0 +1,15 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO sessions (id, user_id) VALUES ($1, $2)",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Bytea",
"Int8"
]
},
"nullable": []
},
"hash": "59ecfc0f3f0a721ba2fb8b4a953313e0b0701ae34c1e609f3f92a4009d6ee4b3"
}

View file

@ -0,0 +1,15 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO session_scopes (session_id, scope) VALUES ($1, $2)",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Bytea",
"Int8"
]
},
"nullable": []
},
"hash": "c086da344a6da521e817bcecf4318e3b338e0b2652d5869a9901390c41f58b65"
}

View file

@ -10,9 +10,11 @@ sqlx = { version = "0.8.2", features = ["runtime-tokio", "derive", "macros", "mi
eyre = "0.6.12"
tracing = "0.1.40"
blake3 = { version = "1.5.4", features = ["serde"] }
tokio = { version = "1.41.1", features = ["fs", "macros", "rt", "sync"] }
tokio = { version = "1.41.1", features = ["fs", "macros", "rt", "sync", "time"] }
mime = "0.3.17"
chir-rs-http-api = { version = "0.1.0", path = "../chir-rs-http-api" }
chir-rs-misc = { version = "0.1.0", path = "../chir-rs-misc", features = ["id-generator"] }
rand = "0.8.5"
[lints.rust]
deprecated-safe = "forbid"

View file

@ -0,0 +1,26 @@
-- Add migration script here
drop index sessions_user;
drop index session_scopes_session;
drop index session_scopes_session_scope;
drop table "session_scopes";
drop table "sessions";
CREATE TABLE "sessions" (
id BYTEA NOT NULL,
user_id BIGINT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES "user" (id) ON DELETE CASCADE
);
CREATE INDEX sessions_user ON "sessions" (user_id);
CREATE TABLE session_scopes (
id BIGINT GENERATED ALWAYS AS IDENTITY,
session_id BYTEA NOT NULL,
scope BIGINT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (session_id) REFERENCES "sessions" (id) ON DELETE CASCADE
);
CREATE INDEX session_scopes_session ON "session_scopes" (session_id);
CREATE UNIQUE INDEX session_scopes_session_scope ON "session_scopes" (session_id, scope);

View file

@ -7,6 +7,7 @@ use sqlx::{migrate, query, PgPool};
use tracing::instrument;
pub mod file;
pub mod session;
pub mod user;
/// Opaque database handle

46
chir-rs-db/src/session.rs Normal file
View file

@ -0,0 +1,46 @@
//! Session-related functionality
use std::time::Duration;
use crate::Database;
use chir_rs_misc::id_generator;
use eyre::Result;
use rand::{thread_rng, Rng as _};
use sqlx::query;
use tracing::{error, info, instrument};
/// Expires outdated sessions
///
/// # Errors
///
/// This function returns an error if accessing the database failed.
#[instrument]
pub async fn expire(db: &Database) -> Result<()> {
let id = id_generator::generate();
let oldest_acceptable_id = id - ((24 * 60 * 60) << 48);
let oldest_acceptable_id = oldest_acceptable_id.to_be_bytes();
query!(
r#"DELETE FROM "session_scopes" WHERE session_id < $1"#,
&oldest_acceptable_id
)
.execute(&*db.0)
.await?;
Ok(())
}
/// Automatically expires outdated sessions
///
/// This is intended to be called on a dedicated job.
#[instrument]
pub async fn expire_sessions_job(db: Database) {
info!("Starting expire sessions job thread");
loop {
info!("Reaping expired sessions");
if let Err(e) = expire(&db).await {
error!("Failed to reap expired sessions: {e:?}");
}
let secs_to_sleep = thread_rng().gen_range(1800..=5400);
info!("Done. Sleeping for {secs_to_sleep}s");
tokio::time::sleep(Duration::from_secs(secs_to_sleep)).await;
}
}

View file

@ -4,6 +4,7 @@ use std::{collections::HashSet, fmt::Debug};
use bincode::{Decode, Encode};
use chir_rs_http_api::auth::Scope;
use chir_rs_misc::id_generator;
use eyre::{Context, Result};
use serde::{Deserialize, Serialize};
use sqlx::{prelude::FromRow, query};
@ -54,21 +55,24 @@ impl User {
/// An error occurs if accessing the database fails
#[instrument(skip(db))]
#[allow(clippy::panic, reason = "sqlx moment")]
pub async fn new_session(&self, db: &Database, scopes: HashSet<Scope>) -> Result<i64> {
pub async fn new_session(&self, db: &Database, scopes: HashSet<Scope>) -> Result<u128> {
let mut txn = db.0.begin().await?;
let user_id: i64 = self.id.try_into()?;
let session_id_num = id_generator::generate();
let session_id = session_id_num.to_be_bytes();
let session = query!(
"INSERT INTO sessions (user_id) VALUES ($1) RETURNING (id)",
query!(
"INSERT INTO sessions (id, user_id) VALUES ($1, $2)",
&session_id,
user_id
)
.fetch_one(&mut *txn)
.execute(&mut *txn)
.await?;
for scope in scopes {
query!(
"INSERT INTO session_scopes (session_id, scope) VALUES ($1, $2)",
session.id,
&session_id,
scope.to_i64()
)
.execute(&mut *txn)
@ -77,6 +81,6 @@ impl User {
txn.commit().await?;
Ok(session.id)
Ok(session_id_num)
}
}

View file

@ -67,9 +67,10 @@ impl PasetoToken {
}
/// Converts a compressed `PasetoToken` to string
pub fn to_paseto(&self) -> Result<String> {
#[must_use]
pub fn to_paseto(&self) -> String {
let res = self.token.to_base64(URL_SAFE);
Ok(format!("v4.local.{res}"))
format!("v4.local.{res}")
}
}

View file

@ -6,10 +6,8 @@ edition = "2021"
[dependencies]
argon2 = "0.5.3"
axum = { version = "0.7.9", features = ["tracing"] }
axum-client-ip = "0.6.1"
axum-prometheus = "0.7.0"
b64-ct = "0.1.2"
base64 = "0.22.1"
bincode = "2.0.0-rc.3"
chir-rs-castore = { version = "0.1.0", path = "../chir-rs-castore" }
chir-rs-config = { version = "0.1.0", path = "../chir-rs-config" }
@ -23,7 +21,10 @@ chir-rs-misc = { version = "0.1.0", path = "../chir-rs-misc", features = [
chrono = "0.4.38"
eyre = "0.6.12"
mime = "0.3.17"
rusty_paseto = { version = "0.7.1", default-features = false, features = ["batteries_included", "v4_local"] }
rusty_paseto = { version = "0.7.1", default-features = false, features = [
"batteries_included",
"v4_local",
] }
sentry-tower = { version = "0.34.0", features = ["axum", "axum-matched-path"] }
tokio = { version = "1.41.1", features = ["fs", "net"] }
tower-http = { version = "0.6.2", features = ["trace"] }

View file

@ -7,7 +7,8 @@ use chir_rs_config::ChirRs;
use eyre::{Context, Result};
// implicitly used
use sentry_eyre as _;
use tokio::try_join;
use tokio::signal;
use tracing::error;
use tracing_error::ErrorLayer;
use tracing_subscriber::{
fmt::format::JsonFields, layer::SubscriberExt as _, util::SubscriberInitExt as _, Layer,
@ -24,7 +25,7 @@ fn main() -> Result<()> {
let _guard = sentry::init(sentry::ClientOptions {
dsn: cfg.logging.sentry_dsn.clone(),
release: sentry::release_name!(),
traces_sample_rate: 1.0,
traces_sample_rate: 0.1,
attach_stacktrace: true,
debug: cfg!(debug_assertions),
..Default::default()
@ -93,11 +94,38 @@ fn main() -> Result<()> {
let cfg = Arc::new(cfg);
let db = chir_rs_db::open_database(&cfg.database.path).await?;
let castore = chir_rs_castore::CaStore::new(&cfg).await?;
try_join!(
chir_rs_http::main(Arc::clone(&cfg), db.clone(), castore.clone()),
chir_rs_gemini::main(Arc::clone(&cfg), db.clone(), castore.clone())
)
.context("Starting server components")?;
let cfg1 = Arc::clone(&cfg);
let cfg2 = Arc::clone(&cfg);
let db1 = db.clone();
let db2 = db.clone();
let castore1 = castore.clone();
let castore2 = castore.clone();
let jobs = [
tokio::spawn(chir_rs_db::session::expire_sessions_job(db.clone())),
tokio::spawn(async move {
if let Err(e) = chir_rs_http::main(cfg1, db1, castore1).await {
error!("Failing to start HTTP Server: {e:?}");
}
}),
tokio::spawn(async move {
if let Err(e) = chir_rs_gemini::main(cfg2, db2, castore2).await {
error!("Failing to start Gemini Server: {e:?}");
}
}),
];
signal::ctrl_c()
.await
.context("Trying to register ctrl+c handler")?;
for job in jobs {
job.abort();
if let Err(e) = job.await {
if e.is_panic() {
error!("Failed running job: {e:?}");
}
}
}
Ok::<_, eyre::Report>(())
})
.context("Running chir.rs")