feat(02-01): add BackupCode ORM model, password_must_change field, Alembic migration, extend Settings
- 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)
This commit is contained in:
@@ -19,3 +19,8 @@ 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
|
||||
|
||||
Reference in New Issue
Block a user