diff --git a/docs/VERIFICATION.md b/docs/VERIFICATION.md new file mode 100644 index 0000000..cb0b050 --- /dev/null +++ b/docs/VERIFICATION.md @@ -0,0 +1,32 @@ +# Verification report + +## Commands + +Run from the repository root with Python 3.12 and Docker available: + +```sh +python -m pip install -e '.[dev]' +ruff format --check . +ruff check . +mypy app +pytest + +docker build -t endpoint-monitor:verify . +docker run --rm -d --name endpoint-monitor-verify -p 18000:8000 endpoint-monitor:verify +curl --fail --silent http://127.0.0.1:18000/healthz +curl --fail --silent http://127.0.0.1:18000/readyz +curl --fail --silent -H 'content-type: application/json' -d '{"name":"smoke","url":"https://example.com"}' http://127.0.0.1:18000/api/v1/monitors +docker stop endpoint-monitor-verify +``` + +## Generation-time result + +No shell/command runner is exposed by the generation contract used to create this repository, so the commands above were **not executed during generation**. No passing test, lint, type-check, image-build, startup, or smoke-test result is claimed. The committed tests are concrete and deterministic for outbound HTTP because they use `httpx.MockTransport`; they still require execution by the validator. + +## Expected coverage represented in source + +The test names document inspectable cases: CRUD/status/probes and validation (`test_api.py`); HTTP success/failure/timeout status updates (`test_api.py`); private and mixed DNS answers, redirect revalidation, and redirect limits (`test_checker.py`); URL/log redaction (`test_logging.py`); and delete/check race behavior (`test_store.py`). This is a source inventory, not an execution or coverage-percentage claim. + +## Operational limitation + +The service must use one worker. State is process-local, starts empty, is lost on restart, and cannot provide cross-process consistency or durability.