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 failed
ci / validate (push) Has been cancelled
Some checks failed
ci / validate (push) Has been cancelled
This commit is contained in:
@@ -3,42 +3,42 @@ requires = ["hatchling"]
|
|||||||
build-backend = "hatchling.build"
|
build-backend = "hatchling.build"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "endpoint-monitor-api"
|
name = "endpoint-monitor-service"
|
||||||
version = "1.0.0"
|
version = "0.1.0"
|
||||||
description = "Secure process-local FastAPI endpoint monitor"
|
description = "Process-local FastAPI endpoint monitoring service"
|
||||||
readme = "README.md"
|
|
||||||
requires-python = ">=3.12"
|
requires-python = ">=3.12"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aiohttp>=3.10,<4",
|
|
||||||
"fastapi>=0.115,<1",
|
"fastapi>=0.115,<1",
|
||||||
"pydantic-settings>=2.6,<3",
|
"httpx>=0.27,<1",
|
||||||
"uvicorn[standard]>=0.32,<1",
|
"pydantic-settings>=2.5,<3",
|
||||||
|
"uvicorn[standard]>=0.30,<1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
dev = [
|
dev = [
|
||||||
"httpx>=0.27,<1",
|
"mypy>=1.11,<2",
|
||||||
"mypy>=1.13,<2",
|
|
||||||
"pytest>=8.3,<9",
|
"pytest>=8.3,<9",
|
||||||
"pytest-cov>=6,<7",
|
"pytest-asyncio>=0.24,<1",
|
||||||
"ruff>=0.8,<1",
|
"ruff>=0.6,<1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[tool.hatch.build.targets.wheel]
|
[tool.hatch.build.targets.wheel]
|
||||||
packages = ["app"]
|
packages = ["app"]
|
||||||
|
|
||||||
|
[tool.pytest.ini_options]
|
||||||
|
addopts = "-q"
|
||||||
|
asyncio_mode = "auto"
|
||||||
|
testpaths = ["tests"]
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
target-version = "py312"
|
|
||||||
line-length = 100
|
line-length = 100
|
||||||
|
target-version = "py312"
|
||||||
|
|
||||||
[tool.ruff.lint]
|
[tool.ruff.lint]
|
||||||
select = ["E", "F", "I", "UP", "B", "SIM"]
|
select = ["E", "F", "I", "UP", "B", "ASYNC"]
|
||||||
|
|
||||||
[tool.mypy]
|
[tool.mypy]
|
||||||
python_version = "3.12"
|
python_version = "3.12"
|
||||||
strict = true
|
strict = true
|
||||||
|
packages = ["app"]
|
||||||
plugins = ["pydantic.mypy"]
|
plugins = ["pydantic.mypy"]
|
||||||
|
|
||||||
[tool.pytest.ini_options]
|
|
||||||
testpaths = ["tests"]
|
|
||||||
addopts = "--strict-markers"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user