12c6487855
- Add BackupCode model to db/models.py with user_id FK, code_hash (Argon2), used_at (nullable) - Add ix_backup_codes_user_id index on backup_codes.user_id - Add password_must_change BOOLEAN NOT NULL DEFAULT false to User model (ADMIN-01) - Extend config.py Settings with JWT, SMTP, admin bootstrap, and CORS fields (D-01, D-04, D-09) - Add env_list_separator=',' for cors_origins env var parsing - Append PyJWT, pwdlib[argon2], pyotp, aioredis, slowapi to requirements.txt - Add .env.example entries for SECRET_KEY, ADMIN_EMAIL, SMTP_*, CORS_ORIGINS - Create migration 0002 adding backup_codes table and password_must_change column - Add TDD tests for all Task 1 acceptance criteria (7 tests pass)
27 lines
442 B
Plaintext
27 lines
442 B
Plaintext
fastapi>=0.111
|
|
uvicorn[standard]>=0.29
|
|
python-multipart
|
|
pydantic-settings>=2.2
|
|
anthropic>=0.26
|
|
openai>=1.30
|
|
PyMuPDF>=1.24
|
|
python-docx>=1.1
|
|
pytesseract>=0.3
|
|
Pillow>=10.3
|
|
aiofiles>=23.2
|
|
httpx>=0.27
|
|
pytest>=8.2
|
|
pytest-asyncio>=1.3.0
|
|
sqlalchemy[asyncio]>=2.0.49
|
|
psycopg[binary]>=3.3.4
|
|
alembic>=1.18.4
|
|
minio>=7.2.20
|
|
celery[redis]>=5.6.3
|
|
redis>=7.4.0
|
|
aiosqlite>=0.20.0
|
|
PyJWT>=2.8.0
|
|
pwdlib[argon2]>=0.2.1
|
|
pyotp>=2.9.0
|
|
aioredis>=2.0.0
|
|
slowapi>=0.1.9
|