chore: add application package scaffold and tooling ignores
Add the initial src/ package (empty FastAPI entrypoint, Settings stub), an .env.example placeholder, and expand .gitignore for test/coverage artifacts, environment files, and local Claude Code overrides. Also documents the Alembic async bootstrap command in ADR-0009. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
0
.env.example
Normal file
0
.env.example
Normal file
13
.gitignore
vendored
13
.gitignore
vendored
@@ -9,5 +9,16 @@ wheels/
|
||||
# Virtual environments
|
||||
.venv
|
||||
|
||||
# Enviroment variables
|
||||
# Test and coverage artifacts
|
||||
.pytest_cache/
|
||||
.coverage
|
||||
coverage.xml
|
||||
htmlcov/
|
||||
|
||||
# Environment variables
|
||||
.env
|
||||
.env.langfuse
|
||||
infra/langfuse/.env
|
||||
|
||||
# Claude Code local overrides
|
||||
.claude/settings.local.json
|
||||
|
||||
@@ -58,7 +58,11 @@ Conventions:
|
||||
|
||||
- Use SQLAlchemy async sessions in FastAPI (`AsyncSession`) and one session per
|
||||
request/job unit of work.
|
||||
- Use Alembic for all DDL. FastAPI startup opens connections and checks
|
||||
- Use Alembic for all DDL. Bootstrap the migration environment once with
|
||||
`uv run alembic init -t async alembic`, then commit the generated
|
||||
`alembic.ini`, `alembic/env.py`, and `alembic/versions/` directory. Retain the
|
||||
async Alembic template and configure it to load the application's database URL
|
||||
and SQLAlchemy model metadata. FastAPI startup opens connections and checks
|
||||
readiness; it does not create or alter tables.
|
||||
- Prefer UUID primary keys generated by the application. Avoid integer IDs that
|
||||
leak tenant size and make distributed workers harder to compose.
|
||||
|
||||
5
src/config.py
Normal file
5
src/config.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from pydantic_settings import BaseSettings
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
pass
|
||||
0
src/main.py
Normal file
0
src/main.py
Normal file
Reference in New Issue
Block a user