Files
crucible-agent-build-fastap…/VALIDATION.md

31 lines
1.9 KiB
Markdown

# Verification report
## Artifact-level evidence
The repository contains inspectable source, tests, configuration, documentation, and deterministic validation commands. Tests use `httpx.MockTransport` and injected DNS resolvers, so they require no external network. The test assertions cover CRUD, atomic duplicate creation, capacity, status persistence, operational routes, public/non-public DNS answers, mixed DNS answers, redirect revalidation, status/latency, and URL/log redaction.
## Execution status
The generation interface available for this delivery can create and commit files but exposes no shell, Docker daemon, or command-execution facility. Consequently, it would be misleading to claim that formatting, static checks, tests, image build, startup, or smoke tests were executed here. They are **not executed in this environment**.
A validator with Python and Docker can execute the exact sequence below:
```bash
python -m pip install -e '.[dev]'
ruff format --check .
ruff check .
mypy src
pytest -q
docker build -t endpoint-monitor .
docker run --rm -d --name endpoint-monitor-smoke -p 8000:8000 endpoint-monitor
python -c "import urllib.request; assert urllib.request.urlopen('http://127.0.0.1:8000/healthz').status == 200"
python -c "import urllib.request; assert urllib.request.urlopen('http://127.0.0.1:8000/readyz').status == 200"
docker rm -f endpoint-monitor-smoke
```
`make verify` runs format checking, lint, strict typing, and tests. `make image` builds the image.
## Operational limitations
Data disappears on restart. Multiple workers/containers have independent stores and inconsistent monitor views. Use one worker only. Durable or horizontally scaled deployment requires shared storage, coordination, and a production egress control. Application DNS validation has a documented DNS-rebinding TOCTOU window; an egress proxy/firewall is required as the authoritative SSRF boundary.