31 lines
1.9 KiB
Markdown
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.
|