{ "project": "standards", "template": "templates/app", "sample": "vet", "components": [ { "kind": "parent-model", "path": "domain/parents/models.py", "placeholder": "", "description": "Example domain model (parents — the simplest slice)." }, { "kind": "parent-ports-db", "path": "domain/parents/ports/db.py", "placeholder": "", "description": "Example document model + repository factory." }, { "kind": "parent-ports-service", "path": "domain/parents/ports/service.py", "placeholder": "", "description": "Example CRUD service wired through the DI library." }, { "kind": "parent-routes", "path": "interfaces/parents/routes.py", "placeholder": "", "description": "Example thin HTTP handlers bound to operationIds." }, { "kind": "pet-model", "path": "domain/pets/models.py", "placeholder": "", "description": "Domain model with an embedded parents list." }, { "kind": "pet-ports-db", "path": "domain/pets/ports/db.py", "placeholder": "", "description": "Populating document + repository factory (FK wiring)." }, { "kind": "pet-routes", "path": "interfaces/pets/routes.py", "placeholder": "", "description": "Routes including the file-upload endpoint." }, { "kind": "appointment-model", "path": "domain/appointments/models.py", "placeholder": "", "description": "Domain model with single-id FKs + nested value objects." }, { "kind": "appointment-routes", "path": "interfaces/appointments/routes.py", "placeholder": "", "description": "Routes with expand_ref FK handling and list filters." }, { "kind": "job-model", "path": "domain/jobs/models.py", "placeholder": "", "description": "Job queue model (the worker's unit of work)." }, { "kind": "job-ports-db", "path": "domain/jobs/ports/db.py", "placeholder": "", "description": "Job repository factory." }, { "kind": "job-ports-service", "path": "domain/jobs/ports/service.py", "placeholder": "", "description": "Job CRUD service." }, { "kind": "job-routes", "path": "interfaces/jobs/routes.py", "placeholder": "", "description": "Job routes (enqueue/inspect via the API)." }, { "kind": "interface-common", "path": "interfaces/_common.py", "placeholder": "", "description": "Shared helpers: svc resolution, dump, pagination, expand_ref." }, { "kind": "openapi-routes", "path": "interfaces/openapi.py", "placeholder": "", "description": "Route registry: flat re-export of every handler namespace." }, { "kind": "auth", "path": "interfaces/auth/security.yaml", "placeholder": "", "description": "Mergeable bearerAuth security scheme + global security for openapi.yaml." }, { "kind": "pipeline-abc", "path": "pipelines/appointment_reminder/abc.py", "placeholder": "", "description": "Port contracts for a pipeline family." }, { "kind": "pipeline-impl", "path": "pipelines/appointment_reminder/impl.py", "placeholder": "", "description": "Concrete stages, wired root, and family registration." }, { "kind": "pipeline-yaml", "path": "pipelines/appointment_reminder/pipeline.yaml", "placeholder": "", "description": "Graph spec (nodes, edges, roots, schema)." }, { "kind": "pipeline-resources", "path": "pipelines/appointment_reminder/resources/pipeline.yaml", "placeholder": "", "description": "Runtime spec consumed by the shared loader." }, { "kind": "pipeline-pattern", "path": "pipelines/appointment_reminder/resources/patterns/reminder.yaml", "placeholder": "", "description": "Pattern/rule fragment merged by the loader." }, { "kind": "pipeline-ports", "path": "pipelines/shared/ports.py", "placeholder": "", "description": "Shared pipeline ports (FinalizePort, RegistryPort)." }, { "kind": "pipeline-loader", "path": "pipelines/shared/loader.py", "placeholder": "", "description": "Shared loader: DI wiring + pattern merge." }, { "kind": "pipeline-registry", "path": "pipelines/shared/registry.py", "placeholder": "", "description": "Shared registry: (kind, variant, mode) -> root class." }, { "kind": "config", "path": "config.py", "placeholder": "", "description": "Settings dataclass + singleton (incl. worker knobs)." }, { "kind": "init", "path": "init.py", "placeholder": "", "description": "Composition root (init/shutdown, resources dict)." }, { "kind": "main", "path": "main.py", "placeholder": "", "description": "Spec-first app bootstrap + lifespan." }, { "kind": "worker", "path": "worker.py", "placeholder": "", "description": "Poll loop + job dispatch by kind + status machine." }, { "kind": "openapi", "path": "openapi.yaml", "placeholder": "", "description": "OpenAPI contract (x- extensions drive the admin client)." }, { "kind": "pyproject", "path": "pyproject.toml", "placeholder": "", "description": "Packaging + dependency pins." }, { "kind": "changelog", "path": "CHANGELOG.md", "placeholder": "", "description": "Keep a Changelog file with an [Unreleased] section (versioning standard)." }, { "kind": "version-file", "path": "VERSION", "placeholder": "", "description": "Single-line version file (service-docker CI checks tag == VERSION)." }, { "kind": "dockerfile", "path": "Dockerfile", "placeholder": "", "description": "API + worker image with private-index wiring." }, { "kind": "dockerignore", "path": ".dockerignore", "placeholder": "", "description": "Docker build-context exclusions." }, { "kind": "gitignore", "path": ".gitignore", "placeholder": "", "description": "VCS exclusions (caches, venv, generated _gen/)." }, { "kind": "compose", "path": "docker-compose.yaml", "placeholder": "", "description": "api + worker + mongo compose file." }, { "kind": "env-example", "path": ".env.example", "placeholder": "", "description": "Environment variable template." }, { "kind": "db-setup", "path": "infra/db/setup.py", "placeholder": "", "description": "Mongo connection lifecycle." }, { "kind": "repo", "path": "infra/db/repos/mongo.py", "placeholder": "", "description": "Repository factory (base/populating/cached)." }, { "kind": "repo-int", "path": "infra/db/repos/mongo_int.py", "placeholder": "", "description": "Integer-id repository variants (create_repo factory)." }, { "kind": "repo-memory", "path": "infra/db/repos/memory.py", "placeholder": "", "description": "In-memory repository flavour (zero-dependency demo store)." }, { "kind": "service-adapter", "path": "infra/adapters/service.py", "placeholder": "", "description": "Generic CRUD service adaptor." }, { "kind": "http-cache", "path": "infra/http_cache.py", "placeholder": "", "description": "Response cache decorator + Redis store (generation invalidation)." }, { "kind": "progress-bus", "path": "infra/adapters/sse.py", "placeholder": "", "description": "In-memory SSE progress bus (keyed by an event attribute)." }, { "kind": "actions-stream", "path": "infra/adapters/actions_stream.py", "placeholder": "", "description": "Per-resource action stream (SSE) adaptor." }, { "kind": "kv-store", "path": "infra/adapters/kv.py", "placeholder": "", "description": "KV port + in-memory fallback + optional Redis adaptor." }, { "kind": "package-init", "path": "domain/__init__.py", "placeholder": "", "description": "Empty package marker; add an __init__.py to every package dir." }, { "kind": "script-seed", "path": "scripts/seed.py", "placeholder": "", "description": "Operator seed script." }, { "kind": "script-drop", "path": "scripts/drop.py", "placeholder": "", "description": "Operator drop script." }, { "kind": "test-openapi-build", "path": "tests/integration/test_openapi_app_builds.py", "placeholder": "", "description": "Generic test: every spec operationId resolves and the app builds." }, { "kind": "test-jobs-routes", "path": "tests/unit/test_jobs_routes.py", "placeholder": "", "description": "Unit test pattern for a resource's routes with service fakes." }, { "kind": "test-pipeline", "path": "tests/unit/test_appointment_reminder_pipeline.py", "placeholder": "", "description": "Unit test pattern for a pipeline family." }, { "kind": "test-worker", "path": "tests/unit/test_worker.py", "placeholder": "", "description": "Unit test pattern for worker dispatch and status transitions." } ] }