35 lines
2.3 KiB
Markdown
35 lines
2.3 KiB
Markdown
# Verification report
|
|
|
|
## Generation environment
|
|
|
|
The repository was persisted through the platform scaffold/commit mechanism. The available generation tools did not include a command runner or Docker daemon, so no formatter, linter, type checker, test runner, image build, container startup, or live API smoke test could be executed. No pass result is inferred from file generation.
|
|
|
|
## Commands and status
|
|
|
|
| Check | Command | Generation status |
|
|
|---|---|---|
|
|
| Ruff lint | `ruff check .` | NOT RUN — no shell executor |
|
|
| Ruff format | `ruff format --check .` | NOT RUN — no shell executor |
|
|
| Mypy | `mypy app` | NOT RUN — no shell executor |
|
|
| Tests | `pytest` | NOT RUN — no shell executor |
|
|
| Image build | `docker build -t endpoint-monitor:verify .` | NOT RUN — no Docker/shell executor |
|
|
| Startup | `docker run ...` | NOT RUN — no Docker/shell executor |
|
|
| Smoke | request `/health/live`, create monitor, inspect status | NOT RUN — no running container |
|
|
|
|
## Inspectable static evidence
|
|
|
|
- `pyproject.toml` defines Python 3.12, runtime dependencies, Ruff, strict Mypy, and Pytest.
|
|
- `requirements.txt` and `requirements-dev.txt` contain pinned direct requirements.
|
|
- Tests cover CRUD, health, check status/latency, timeout mapping, concurrent status updates, DNS/private-address blocking, redirect blocking, and log redaction with mocked egress.
|
|
- `Dockerfile` runs as numeric non-root UID/GID 10001, starts exactly one worker, disables access logs, and has a standard-library healthcheck.
|
|
- `compose.yaml`, `.dockerignore`, and `.gitignore` are present.
|
|
- `README.md` supplies reproducible validation commands and documents ephemeral single-process limitations.
|
|
|
|
## Required validator follow-up
|
|
|
|
Run the sequence in the README in a clean Python 3.12 environment with Docker. A failing command must supersede this unexecuted report. In particular, validate dependency resolution for the target platform and perform an egress-controlled security review before production use.
|
|
|
|
## In-memory limitation
|
|
|
|
A restart drops every monitor and status. Multiple workers or replicas diverge because each owns a separate store. The included container therefore uses one worker; availability, persistence, and horizontal scaling require a shared durable store that is intentionally outside this service contract.
|