acbc767247
- database.py: CryptContext = ['bcrypt', 'sha256_crypt'] with sha256_crypt deprecated - database.py: add verify_and_update_password() returning (ok, new_hash) - main.py: login uses verify_and_update; on successful verify transparently commits new bcrypt hash when old hash is sha256_crypt - requirements.txt: passlib[bcrypt]==1.7.4 + bcrypt==4.0.1 (compat with passlib 1.7.4) Migration: zero-touch. Admin's first login after this deploy will auto-upgrade the stored hash from $5$... to $2b$... Avoids the passlib sha256_crypt cross-version verify bug that bit us this morning. bcrypt is OpenSSL-native and stable across passlib versions.
13 lines
241 B
Plaintext
13 lines
241 B
Plaintext
fastapi==0.115.0
|
|
uvicorn[standard]==0.30.6
|
|
sqlalchemy==2.0.35
|
|
pydantic==2.9.2
|
|
python-jose[cryptography]==3.3.0
|
|
passlib[bcrypt]==1.7.4
|
|
bcrypt==4.0.1
|
|
python-multipart==0.0.12
|
|
openpyxl==3.1.5
|
|
reportlab==4.2.5
|
|
xlsxwriter==3.2.0
|
|
aiofiles==24.1.0
|