# VulnManager Dependencies (Python 3.13 kompatibel)

# FastAPI & Server
# fastapi 0.115.6 hat starlette auf <0.42 festgenagelt — und genau dort
# hingen 14 Advisories. Die Starlette-Aktualisierung geht nur über fastapi.
fastapi==0.141.1
uvicorn[standard]==0.32.1
python-multipart==0.0.32

# Database
sqlalchemy==2.0.36
alembic==1.14.0
psycopg2-binary==2.9.10  # Updated für Python 3.13

# Authentication & Security
pyjwt[crypto]==2.13.0
bcrypt==5.0.0  # direkt genutzt (app/auth/jwt_handler.py); passlib ist raus

# HTTP Clients
httpx==0.28.1  # Updated
tenacity==9.0.0  # Updated

# Rate Limiting
slowapi==0.1.9

# Validation
pydantic==2.10.5  # Updated für Python 3.13
pydantic-settings==2.7.1  # Updated
email-validator==2.2.0  # Updated

# Scheduling
apscheduler==3.10.4

# Environment
python-dotenv==1.2.2

# Logging & Monitoring (optional)
python-json-logger==3.2.1  # Updated

# Testing (Development)
pytest==9.1.1
pytest-asyncio==1.4.0  # verlangt pytest>=8.4

# Reporting
reportlab==4.4.9

# ============================================
# Multi-provider authentication (Phase 1: foundation; Phase 2+: LDAP/OIDC/SAML)
# ============================================
# TOTP / MFA
pyotp==2.9.0
# Fernet for encrypting LDAP bind-pw + TOTP secrets at rest
cryptography==50.0.0

# LDAPS (Phase 2)
ldap3==2.9.1

# OAuth2 / OIDC (Phase 3)
authlib==1.7.2
itsdangerous==2.2.0

# SAML 2.0 (Phase 4) — requires system libs xmlsec1, libxml2-dev, libxmlsec1-dev
python3-saml==1.16.0
# lxml parst hier NICHT die Advisory-Feeds (die laufen über stdlib
# xml.etree.ElementTree), sondern Microsoft-HTML in m365_service.py.
lxml==6.1.1

# Microsoft product-lifecycle EOL export parsing (Plan O) — reads the
# monthly eos-product-listing .xlsx from download.microsoft.com.
openpyxl==3.1.5

# VMware vSphere inventory (vCenter connector). Broadcom's own SDK, and the
# only practical way to read a per-host BUILD number: the vCenter REST API's
# /api/vcenter/host returns name and power state and no version at all, while
# every VMware advisory states its fix as a build ("ESXi80U3k-25595708").
pyvmomi==9.1.0.0
