From 1e02c5803f04b43d9ee3cf49f679f799eabcaba0 Mon Sep 17 00:00:00 2001 From: penny Date: Sun, 1 Mar 2026 15:22:59 -0500 Subject: [PATCH] feat: add version information to _health endpoint --- crates/tranquil-pds/src/api/server/meta.rs | 17 ++++++++++++++--- crates/tranquil-pds/src/lib.rs | 10 ++++++++++ crates/tranquil-pds/src/main.rs | 11 +---------- 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/crates/tranquil-pds/src/api/server/meta.rs b/crates/tranquil-pds/src/api/server/meta.rs index b76a24e..5f093c7 100644 --- a/crates/tranquil-pds/src/api/server/meta.rs +++ b/crates/tranquil-pds/src/api/server/meta.rs @@ -1,3 +1,4 @@ +use crate::BUILD_VERSION; use crate::state::AppState; use crate::util::{discord_app_id, discord_bot_username, telegram_bot_username}; use axum::{Json, extract::State, http::StatusCode, response::IntoResponse}; @@ -55,7 +56,7 @@ pub async fn describe_server() -> impl IntoResponse { "did": format!("did:web:{}", pds_hostname), "links": links, "contact": contact, - "version": env!("CARGO_PKG_VERSION"), + "version": BUILD_VERSION, "availableCommsChannels": get_available_comms_channels(), "selfHostedDidWebEnabled": is_self_hosted_did_web_enabled() }); @@ -72,7 +73,17 @@ pub async fn describe_server() -> impl IntoResponse { } pub async fn health(State(state): State) -> impl IntoResponse { match state.infra_repo.health_check().await { - Ok(true) => (StatusCode::OK, "OK"), - _ => (StatusCode::SERVICE_UNAVAILABLE, "Service Unavailable"), + Ok(true) => ( + StatusCode::OK, + Json(json!({ + "version": format!("tranquil {}", BUILD_VERSION) + })), + ), + _ => ( + StatusCode::SERVICE_UNAVAILABLE, + Json(json!({ + "error": "Service Unavailable" + })), + ), } } diff --git a/crates/tranquil-pds/src/lib.rs b/crates/tranquil-pds/src/lib.rs index ece6d4c..19d0bd1 100644 --- a/crates/tranquil-pds/src/lib.rs +++ b/crates/tranquil-pds/src/lib.rs @@ -43,6 +43,16 @@ use tower_http::cors::{Any, CorsLayer}; pub use tranquil_db_traits::AccountStatus; pub use types::{AccountState, AtIdentifier, AtUri, Did, Handle, Nsid, Rkey}; +#[cfg(debug_assertions)] +pub const BUILD_VERSION: &str = concat!( + env!("CARGO_PKG_VERSION"), + " (built ", + env!("BUILD_TIMESTAMP"), + ")" +); +#[cfg(not(debug_assertions))] +pub const BUILD_VERSION: &str = env!("CARGO_PKG_VERSION"); + pub fn app(state: AppState) -> Router { let xrpc_router = Router::new() .route("/_health", get(api::server::health)) diff --git a/crates/tranquil-pds/src/main.rs b/crates/tranquil-pds/src/main.rs index 6bee7b3..ce84f48 100644 --- a/crates/tranquil-pds/src/main.rs +++ b/crates/tranquil-pds/src/main.rs @@ -5,18 +5,9 @@ use std::process::ExitCode; use std::sync::Arc; use tokio_util::sync::CancellationToken; use tracing::{error, info, warn}; +use tranquil_pds::BUILD_VERSION; use tranquil_pds::comms::{CommsService, DiscordSender, EmailSender, SignalSender, TelegramSender}; -#[cfg(debug_assertions)] -const BUILD_VERSION: &str = concat!( - env!("CARGO_PKG_VERSION"), - " (built ", - env!("BUILD_TIMESTAMP"), - ")" -); -#[cfg(not(debug_assertions))] -const BUILD_VERSION: &str = env!("CARGO_PKG_VERSION"); - use tranquil_pds::crawlers::{Crawlers, start_crawlers_service}; use tranquil_pds::scheduled::{ backfill_genesis_commit_blocks, backfill_record_blobs, backfill_repo_rev, backfill_user_blocks,