2.0 KiB
Health probes
GET /health/live/ and GET /health/ready/ are unauthenticated infrastructure
probes and do not consume API rate limits. Liveness reports the running process;
readiness checks the database and still returns HTTP 503 when it is unavailable.
The comprehensive /health/ endpoint and ordinary API endpoints retain their
configured throttling.
Internal-main health hotfix
The internal-main Docker probe runs every 10 seconds. Applying the shared anonymous limit of 100 requests/hour to it causes false HTTP 429 failures.
Customer deployment workflows have been removed. Do not rerun historical customer workflows: they execute the configuration from their original commit.
For this views-only fix, docker/Dockerfile.health-hotfix can build a web image
from the exact deployed repository@sha256:digest, preserving its dependencies,
startup command and all other application files. Before using this recipe,
verify that the base image matches the source baseline and that the application
diff contains only the probe changes in src/apps/core/views.py. Label the new
image with the committed source revision and publish an immutable digest.
The normal internal-main backend release requires --refresh-data and replaces
the database/media clone. It must not be used for this health-only fix. Instead,
under the existing release lock, verify that the candidate has no pending
migrations, keep a private copy of the current manifest, and change only
MOSTOVIK_BACKEND_WEB_IMAGE. Recreate only mostovik-web with --no-deps and the
already-pulled image. Accept the manifest atomically after HTTP probes and Docker
health succeed; restore the previous web image and manifest if they fail.
Preserve database/media selections, Redis state and every other service image.
Acceptance includes repeated probes beyond the anonymous request allowance, database-failure regression coverage, and a control proving that ordinary endpoints are still throttled. Do not disable throttling globally or clear Redis to make the healthcheck pass.