PDS software with bells & whistles you didn’t even know you needed. will move this to its own account when ready. tranquil.farm
oauth atproto pds rust postgresql objectstorage fun

Send user agent as tranquil

Changed files
+4 -1
src
+1 -1
src/lib.rs
··· 504 504 ) 505 505 .fallback(async || ( 506 506 StatusCode::NOT_IMPLEMENTED, 507 - Json(json!({"error": "MethodNotImplemented", "message": "XRPC method not implemented"})), 507 + Json(json!({"error": "MethodNotImplemented", "message": "Method not implemented. For app.bsky.* methods, include an atproto-proxy header specifying your AppView."})), 508 508 )); 509 509 let xrpc_service = ServiceBuilder::new() 510 510 .layer(XrpcProxyLayer::new(state.clone()))
+3
src/oauth/client.rs
··· 82 82 .connect_timeout(std::time::Duration::from_secs(10)) 83 83 .pool_max_idle_per_host(10) 84 84 .pool_idle_timeout(std::time::Duration::from_secs(90)) 85 + .user_agent("Tranquil-PDS/1.0 (ATProto; +https://tangled.org/lewis.moe/bspds-sandbox)") 85 86 .build() 86 87 .unwrap_or_else(|_| Client::new()), 87 88 cache_ttl_secs, ··· 256 257 .send() 257 258 .await 258 259 .map_err(|e| { 260 + tracing::warn!(client_id = %client_id, error = %e, "Failed to fetch client metadata"); 259 261 OAuthError::InvalidClient(format!("Failed to fetch client metadata: {}", e)) 260 262 })?; 261 263 if !response.status().is_success() { 264 + tracing::warn!(client_id = %client_id, status = %response.status(), "Failed to fetch client metadata"); 262 265 return Err(OAuthError::InvalidClient(format!( 263 266 "Failed to fetch client metadata: HTTP {}", 264 267 response.status()