diff --git a/CHANGELOG.md b/CHANGELOG.md index 69b0082..a10e788 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [7.2.0](https://github.com/molybdenumsoftware/pr-tracker/compare/v7.1.0...v7.2.0) (2025-05-20) + + +### Features + +* **api:** request response tracing ([c1e6d4a](https://github.com/molybdenumsoftware/pr-tracker/commit/c1e6d4ae4f75426ae6b8537ac26694518efc680a)), closes [#247](https://github.com/molybdenumsoftware/pr-tracker/issues/247) [#249](https://github.com/molybdenumsoftware/pr-tracker/issues/249) + ## [7.1.0](https://github.com/molybdenumsoftware/pr-tracker/compare/v7.0.0...v7.1.0) (2025-05-20) diff --git a/Cargo.lock b/Cargo.lock index 0e31e14..0e1b902 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,7 +24,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", + "getrandom 0.2.15", "once_cell", "version_check", "zerocopy", @@ -527,7 +527,7 @@ dependencies = [ [[package]] name = "db-context" -version = "7.1.0" +version = "7.2.0" dependencies = [ "camino", "fragile-child", @@ -763,7 +763,7 @@ dependencies = [ [[package]] name = "fragile-child" -version = "7.1.0" +version = "7.2.0" [[package]] name = "futures" @@ -895,7 +895,19 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", ] [[package]] @@ -2563,7 +2575,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] @@ -2820,6 +2832,7 @@ dependencies = [ "tokio-stream", "tokio-util", "tracing", + "uuid", "wildmatch", ] @@ -2911,7 +2924,7 @@ dependencies = [ [[package]] name = "pr-tracker-api" -version = "7.1.0" +version = "7.2.0" dependencies = [ "anyhow", "camino", @@ -2935,7 +2948,7 @@ dependencies = [ [[package]] name = "pr-tracker-api-config" -version = "7.1.0" +version = "7.2.0" dependencies = [ "camino", "confique", @@ -2946,7 +2959,7 @@ dependencies = [ [[package]] name = "pr-tracker-fetcher" -version = "7.1.0" +version = "7.2.0" dependencies = [ "anyhow", "camino", @@ -2974,7 +2987,7 @@ dependencies = [ [[package]] name = "pr-tracker-fetcher-config" -version = "7.1.0" +version = "7.2.0" dependencies = [ "camino", "confique", @@ -2983,7 +2996,7 @@ dependencies = [ [[package]] name = "pr-tracker-store" -version = "7.1.0" +version = "7.2.0" dependencies = [ "derive_more", "getset", @@ -3062,6 +3075,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "rand" version = "0.8.5" @@ -3089,7 +3108,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", ] [[package]] @@ -3203,7 +3222,7 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", - "getrandom", + "getrandom 0.2.15", "libc", "spin", "untrusted", @@ -3840,7 +3859,7 @@ checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" dependencies = [ "cfg-if", "fastrand", - "getrandom", + "getrandom 0.2.15", "once_cell", "rustix", "windows-sys 0.59.0", @@ -4212,7 +4231,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "util" -version = "7.1.0" +version = "7.2.0" dependencies = [ "clap", "db-context", @@ -4220,6 +4239,15 @@ dependencies = [ "tokio", ] +[[package]] +name = "uuid" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +dependencies = [ + "getrandom 0.3.3", +] + [[package]] name = "valuable" version = "0.1.1" @@ -4263,6 +4291,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasite" version = "0.1.0" @@ -4578,6 +4615,15 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.6.0", +] + [[package]] name = "write16" version = "1.0.0" diff --git a/Cargo.toml b/Cargo.toml index 543e24e..4a91ea2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,4 +29,4 @@ authors = ["Molybdenum Software"] edition = "2024" license = "MIT" repository = "https://github.com/molybdenumsoftware/pr-tracker" -version = "7.1.0" +version = "7.2.0" diff --git a/crates/api/Cargo.toml b/crates/api/Cargo.toml index 147a8b5..1482392 100644 --- a/crates/api/Cargo.toml +++ b/crates/api/Cargo.toml @@ -1,6 +1,6 @@ [dependencies] camino = "*" -poem = {features = ["test"], version = "*"} +poem = {features = ["requestid", "test"], version = "*"} poem-openapi = {features = ["swagger-ui"], version = "*"} pr-tracker-api-config = {path = "../api-config"} sqlx = {default-features = false, features = ["macros", "migrate"], version = "*"} diff --git a/crates/api/src/lib.rs b/crates/api/src/lib.rs index 8721d9d..9ab2bf7 100644 --- a/crates/api/src/lib.rs +++ b/crates/api/src/lib.rs @@ -1,6 +1,7 @@ #![warn(clippy::pedantic)] use std::time::Duration; +use poem::middleware::RequestId; use poem::{ EndpointExt, FromRequest, Request, RequestBody, Route, endpoint::BoxEndpoint, middleware, web::Redirect, @@ -43,6 +44,8 @@ pub async fn endpoint(db_url: &str) -> BoxEndpoint<'static> { .at("/openapi.json", api_service.spec_endpoint()) .nest(API_PREFIX, api_service) .with(middleware::AddData::new(db_pool)) + .with(middleware::Tracing) + .with(RequestId::default()) .boxed() } diff --git a/modules/integration-tests/api/default.nix b/modules/integration-tests/api/default.nix index 2f516fc..d1a4fd5 100644 --- a/modules/integration-tests/api/default.nix +++ b/modules/integration-tests/api/default.nix @@ -14,6 +14,7 @@ pr_tracker_api.wait_for_unit("pr-tracker-api.service") pr_tracker_api.succeed("journalctl -u pr-tracker-api.service | grep 'listening addr=socket://0.0.0.0:7000'") pr_tracker_api.succeed("curl --fail http://localhost:7000/api/v2/healthcheck") + pr_tracker_api.succeed("journalctl -u pr-tracker-api.service | grep 'uri=/api/v2/healthcheck'") ''; }; };