[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "ops-warden" version = "0.1.0" description = "SSH CA and certificate lifecycle manager for ops actors" requires-python = ">=3.11" dependencies = [ "typer[all]>=0.12", "pyyaml>=6.0", "httpx>=0.27", ] [project.scripts] warden = "warden.cli:app" ops-ssh-wrapper = "warden.scripts.ops_ssh_wrapper:main" [tool.hatch.build.targets.wheel] packages = ["src/warden"] # Bundle the routing catalog + posture descriptors inside the package so the # installed CLI (`warden route` / `access` / `policy`) works from any cwd, not only # from a checkout. Source runs still prefer the repo's registry/ (single source of # truth); the bundled copy is the fallback resolved by find_catalog_path/find_posture_path. [tool.hatch.build.targets.wheel.force-include] "registry" = "warden/_registry" [tool.pytest.ini_options] testpaths = ["tests"] pythonpath = ["src"] addopts = "-m 'not integration'" markers = ["integration: requires ssh-keygen binary; run with pytest -m integration"] [tool.ruff] line-length = 88 [dependency-groups] dev = [ "pytest>=8.0", "ruff>=0.4", ]