Files
headquarter/apps/api/src/api/.pi-map.md
T
Developer 8f648264f1 fix: surface real workspace creation errors instead of generic 409
The create-workspace endpoints caught every exception and returned 409
"Workspace name already exists", hiding the actual failure (e.g. git
clone errors, remote URL problems, or filesystem issues).

- Distinguish ValueError -> 400, unexpected exceptions -> 500 with detail
- Preserve HTTPException re-raise for existing FastAPI error paths

Quality gates:
- pytest tests/unit: 219 passed
- mypy: clean on changed files
2026-06-15 09:46:55 +00:00

1.5 KiB

apps/api/src/api

dir: apps/api/src/api

index: apps/api/src/api/.pi-map.index.md

role

Defines the API routing package and shared validation utilities for the REST API layer.

files

  • __init__.py | Marks the directory as a Python package for API routers.
  • shared_validators.py | Provides reusable Pydantic validator functions for API schema validation including mount paths, files, environment variables, and volume mounts. | exp: func:validate_mount_path(v: str | None) → str | None, call:v.startswith, raise:ValueError, func:validate_files(v: dict | None, max_size_bytes) → dict | None, call:v.items, call:path.startswith, call:len, call:content.encode, raise:ValueError, func:validate_env_vars(v: dict | None) → dict | None, call:isinstance, raise:ValueError, func:validate_volumes(v: list | None) → list | None, call:isinstance, call:enumerate, raise:ValueError

arch

Modular package structure with reusable Pydantic validators for cross-cutting API schema concerns.

tags

validate, raise:value, error, call:isinstance, mount, api, init, path

symbols

  • validate_mount_path
  • validate_files
  • validate_env_vars
  • validate_volumes
  • call:v.startswith
  • raise:ValueError
  • call:v.items
  • call:path.startswith

workflows

  • change api behavior read: __init__.py, shared_validators.py
  • explore api subdirectories index: apps/api/src/api/config/.pi-map.index.md, apps/api/src/api/project/.pi-map.index.md, apps/api/src/api/system/.pi-map.index.md

dirty