9c731d6e67
Build and Push Docker Container / build-and-push (push) Failing after 51s
- Register quart_common wide-event logging during app setup so every HTTP request emits one canonical structured event. - Replace the inline security middleware with reusable quart_common security middleware wiring and move skip path configuration into app constants. - Add NanoShare-specific wide-event context for health checks, auth/error handlers, file list/edit/delete/serve flows and upload outcomes. - Rename runtime logging/project metadata from simple-picoshare to nanoshare where it is emitted in service context. - Update my_helpers and quart_common submodules for Convex/wide-event integration and reusable security middleware support. - Add NanoShare middleware tests covering safe user context, client IP enrichment, missing Convex handling and Convex security lookup failures.
32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
from my_modules.decoratory.header import format_response, feature_flag_required
|
|
from my_modules.app.setup import LIMITER
|
|
from my_modules.app.logger import logger
|
|
from quart_common.web.wide_event import add_wide_event_context
|
|
|
|
from quart import Blueprint, current_app
|
|
|
|
health_bp = Blueprint("health", __name__)
|
|
|
|
@health_bp.route("/convex", methods=["GET"])
|
|
@LIMITER.limit("30 per minute")
|
|
@feature_flag_required("convex_health", fallback=False, status_code=404)
|
|
@format_response
|
|
async def get_convex_health_for_api():
|
|
add_wide_event_context(health={"check": "convex"})
|
|
runtime = getattr(current_app, "convex_runtime", None)
|
|
if runtime is None:
|
|
add_wide_event_context(health={"status": "unavailable", "reason": "runtime_missing"})
|
|
return {
|
|
"status": "unavailable",
|
|
"description": "Convex runtime is not attached to app",
|
|
}, 503
|
|
|
|
is_alive = await runtime.is_alive()
|
|
metrics = runtime.get_metrics()
|
|
add_wide_event_context(health={"status": "ok" if is_alive else "unhealthy"})
|
|
|
|
return {
|
|
"alive": is_alive,
|
|
"metrics": metrics,
|
|
}, 200 if is_alive else 503
|