Initial project structure for neuronetz-gateway per scope-docs/SPEC.md: - Python 3.12 / FastAPI / SQLAlchemy 2.0 (async) / Redis / Postgres stack managed by uv. Multi-stage non-root Dockerfile, prod + dev compose files (ollama service is NEVER published in either), Caddyfile + systemd unit, justfile, GitHub Actions CI (ruff, mypy --strict, pytest, bandit, pip-audit). - Pydantic-Settings config covering every env var from SPEC §7, including the MODEL_DISCOVERY_* keys for the dynamic-discovery feature (§4.6). - Alembic 0001_initial creates the full gateway schema (8 tables, 3 enums, notify_key_revoked() trigger), incl. allow_all_models on tenant_limits and key_limits for the per-tenant auto-grant toggle. - Working /healthz, /readyz (fail-closed when deps unreachable), and a Prometheus /metrics stub. Sanitizing error handlers that attach X-Request-ID to every response and never leak upstream internals. - SPEC + AGENT_PROMPT included under scope-docs/ (source of truth).
41 lines
410 B
Plaintext
41 lines
410 B
Plaintext
# Secrets — NEVER commit. Only .env.example is tracked.
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
|
|
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
*.egg-info/
|
|
.eggs/
|
|
build/
|
|
dist/
|
|
*.so
|
|
|
|
# Virtualenvs / uv
|
|
.venv/
|
|
venv/
|
|
.python-version
|
|
|
|
# Type / lint / test caches
|
|
.mypy_cache/
|
|
.ruff_cache/
|
|
.pytest_cache/
|
|
.coverage
|
|
.coverage.*
|
|
htmlcov/
|
|
coverage.xml
|
|
.tox/
|
|
|
|
# Docker
|
|
*.pid
|
|
|
|
# Editor / OS
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
*~
|
|
.DS_Store
|
|
Thumbs.db
|