Bugfix/credential proxy sequencing (#5187)
* using common middleware for all http servers * improved span handling in credential-proxy * ensure increase in sequence number upon making deposit * added explicit connect options for the db * fixed further instances of incorrect span instrumentation * batch deposit requests together to improve concurrency * ignore cancelled requests * updated credential proxy version to 0.1.4 * adjusted Dockerfile with new binary location * log binary version on startup * reduce default log level * guard against unavaiable commit sha * apply review comments: dont exit(0), instead just shutdown normally * add skip_webhook parameter to obtain-async * removing dead code
This commit is contained in:
committed by
GitHub
parent
645be5fa22
commit
feefde9022
@@ -11,7 +11,6 @@ use std::net::SocketAddr;
|
||||
use tracing::{debug, error};
|
||||
|
||||
pub mod error;
|
||||
pub mod middleware;
|
||||
pub mod router;
|
||||
pub mod state;
|
||||
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
// Copyright 2023-2024 - Nym Technologies SA <contact@nymtech.net>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
use axum::{
|
||||
extract::{ConnectInfo, Request},
|
||||
http::{
|
||||
header::{HOST, USER_AGENT},
|
||||
HeaderValue,
|
||||
},
|
||||
middleware::Next,
|
||||
response::IntoResponse,
|
||||
};
|
||||
use colored::*;
|
||||
use std::net::SocketAddr;
|
||||
use tracing::info;
|
||||
|
||||
/// Simple logger for requests
|
||||
pub async fn logger(
|
||||
ConnectInfo(addr): ConnectInfo<SocketAddr>,
|
||||
req: Request,
|
||||
next: Next,
|
||||
) -> impl IntoResponse {
|
||||
let method = req.method().to_string().green();
|
||||
let uri = req.uri().to_string().blue();
|
||||
let agent = header_map(
|
||||
req.headers().get(USER_AGENT),
|
||||
"Unknown User Agent".to_string(),
|
||||
);
|
||||
|
||||
let host = header_map(req.headers().get(HOST), "Unknown Host".to_string());
|
||||
|
||||
let res = next.run(req).await;
|
||||
let status = res.status();
|
||||
let print_status = if status.is_client_error() || status.is_server_error() {
|
||||
status.to_string().red()
|
||||
} else if status.is_success() {
|
||||
status.to_string().green()
|
||||
} else {
|
||||
status.to_string().yellow()
|
||||
};
|
||||
|
||||
info!(target: "incoming request", "[{addr} -> {host}] {method} '{uri}': {print_status} / agent: {agent}");
|
||||
|
||||
res
|
||||
}
|
||||
|
||||
fn header_map(header: Option<&HeaderValue>, msg: String) -> String {
|
||||
header
|
||||
.map(|x| x.to_str().unwrap_or(&msg).to_string())
|
||||
.unwrap_or(msg)
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
// Copyright 2023 - Nym Technologies SA <contact@nymtech.net>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
pub mod logging;
|
||||
@@ -2,12 +2,12 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
use crate::error::NymNodeHttpError;
|
||||
use crate::middleware::logging;
|
||||
use crate::state::AppState;
|
||||
use crate::NymNodeHTTPServer;
|
||||
use axum::response::Redirect;
|
||||
use axum::routing::get;
|
||||
use axum::Router;
|
||||
use nym_http_api_common::middleware::logging;
|
||||
use nym_node_requests::api::v1::authenticator::models::Authenticator;
|
||||
use nym_node_requests::api::v1::gateway::models::{Gateway, Wireguard};
|
||||
use nym_node_requests::api::v1::ip_packet_router::models::IpPacketRouter;
|
||||
|
||||
Reference in New Issue
Block a user