use axum::extract::State; use axum::response::IntoResponse; use axum::Json; use axum_extra::headers::AccessControlMaxAge; use axum_extra::TypedHeader; use magnetar_common::config::MagnetarConfig; use serde_json::Value; use std::time::Duration; pub async fn handle_manifest(State(config): State<&'static MagnetarConfig>) -> impl IntoResponse { let manifest = include_str!("../frontend/assets-be/manifest.json"); let mut manifest_json: Value = serde_json::from_str(manifest).unwrap(); manifest_json["short_name"] = Value::String(config.branding.name.clone()); manifest_json["name"] = Value::String(config.branding.name.clone()); // TODO: Pull from instance metadata ( TypedHeader(AccessControlMaxAge::from(Duration::from_secs( 60 * 60 * 24 * 7, ))), Json(manifest_json), ) }