decomposer: generate deliverable files for Define the service contract and project architecture for the FastAPI endpoint monitoring service.; Implement the typed monitor CRUD API and concurrency-safe in-memory state according to the service design.; Implement secure on-demand endpoint checks with status updates, latency measurement, robust error handling, and redacted structured logs.; Add operational API endpoints and environment-driven runtime configuration to the monitoring service.; Create automated tests for the monitoring service.; Package the service with Docker and developer documentation.; Validate the complete project.
Some checks are pending
ci / test (push) Has started running
Some checks are pending
ci / test (push) Has started running
This commit is contained in:
@@ -1,32 +1,39 @@
|
|||||||
# Verification report
|
# Verification report
|
||||||
|
|
||||||
## Commands
|
## Artifact inspection
|
||||||
|
|
||||||
The repository defines these reproducible checks:
|
This repository contains the service contract, implementation, tests, dependency
|
||||||
|
metadata, container packaging, and documentation in directly inspectable paths. The
|
||||||
|
checker tests use `httpx.MockTransport`; they do not make external network requests.
|
||||||
|
|
||||||
```sh
|
## Execution status for this generation
|
||||||
pip install -e '.[dev]'
|
|
||||||
|
The generation platform exposed repository scaffolding/commit and file-inspection
|
||||||
|
operations, but no command runner or Docker daemon. Therefore the following commands
|
||||||
|
were **not executed here**, and no passing result is claimed:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ruff format --check .
|
||||||
ruff check .
|
ruff check .
|
||||||
mypy app
|
mypy app
|
||||||
pytest -q
|
pytest
|
||||||
docker build -t endpoint-monitor:local .
|
docker build -t endpoint-monitor .
|
||||||
docker run --rm -p 8000:8000 endpoint-monitor:local
|
docker run --rm -d -p 8000:8000 --name endpoint-monitor endpoint-monitor
|
||||||
curl -fsS http://127.0.0.1:8000/health
|
curl --fail http://127.0.0.1:8000/health/live
|
||||||
curl -fsS http://127.0.0.1:8000/ready
|
curl --fail http://127.0.0.1:8000/health/ready
|
||||||
|
docker rm -f endpoint-monitor
|
||||||
```
|
```
|
||||||
|
|
||||||
Generation occurred through the repository scaffold platform. No claim is made here that a local Python environment, Docker daemon, container startup, or smoke test was available during generation; commands not actually run must not be represented as passing. The source and deterministic mocked tests are committed for platform/CI execution.
|
They are the required validator sequence. A validator with a Python 3.12 environment
|
||||||
|
and Docker should execute them and record stdout, versions, and image digest. Static
|
||||||
|
review confirms each required artifact is present, but it is not a substitute for
|
||||||
|
execution.
|
||||||
|
|
||||||
## Inspectable requirement evidence
|
## Known operational limitations
|
||||||
|
|
||||||
* bounded total/connect/read timeout and error mapping: `app/checker.py`, `test_total_timeout_is_mapped_without_leaking_exception`
|
State is memory-only and disappears on process exit. The lock coordinates coroutines
|
||||||
* every redirect re-enters resolution/policy before fetch: `EndpointChecker.check`, `test_redirect_hop_is_resolved_and_blocked_before_second_fetch`
|
inside one process only. The container intentionally starts one worker; multiple
|
||||||
* all DNS answers classified and mixed answers rejected: `app/security.py`, parametrized and mixed-answer security tests
|
workers or replicas do not share monitors. DNS is checked on each redirect hop, while
|
||||||
* rebinding defense: validated addresses flow into `PinnedResolver` and a fresh per-hop `TCPConnector`; the pin/host rejection is tested
|
network egress policy remains necessary to close DNS-rebinding/TOCTOU risk fully. No
|
||||||
* atomic status update: revision snapshot plus locked `set_status_if_current`; stale/concurrent tests
|
authentication, scheduler, persistence, or cross-process readiness dependency is in
|
||||||
* latency and stable, non-exception error messages: `EndpointChecker.check` and timeout test
|
scope.
|
||||||
* query/userinfo/fragment redaction: `redact_url`, `JsonFormatter`, and log test
|
|
||||||
|
|
||||||
## Limitation
|
|
||||||
|
|
||||||
Storage is process-local and volatile. One worker is mandatory; restart loses data and replicas do not coordinate. Docker is configured accordingly.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user