flask>=3.0
flask-sqlalchemy>=3.1
psycopg2-binary>=2.9
sqlalchemy>=2.0
apscheduler>=3.10
jinja2>=3.1
openpyxl>=3.1
click>=8.1
cryptography>=42.0
PyJWT>=2.8
bcrypt>=4.1
pyotp>=2.9
flask-cors>=4.0
flask-limiter>=3.8
python-dotenv>=1.0
pyyaml>=6.0
alembic>=1.13

[all]
flowforge-io[gmail]
flowforge-io[drive]
flowforge-io[microsoft365]
flowforge-io[pdf]
flowforge-io[oracle]
flowforge-io[mysql]
flowforge-io[sftp]
flowforge-io[mssql]
flowforge-io[ses]
flowforge-io[sso]

[claude]
anthropic>=0.25

[dev]
pytest>=8.0
pytest-mock>=3.12
pytest-cov>=5.0
responses>=0.25
ruff>=0.4
bandit[toml]>=1.7
hypothesis>=6.0

[drive]
google-api-python-client>=2.120
google-auth>=2.28

[gmail]
google-api-python-client>=2.120
google-auth>=2.28
google-auth-oauthlib>=1.2

[microsoft365]
msal>=1.28
requests>=2.31

[mssql]
pyodbc>=5.0

[mysql]
pymysql>=1.1
cryptography>=42.0

[oracle]
oracledb>=2.0

[pdf]
weasyprint>=62.0

[ses]
boto3>=1.34

[sftp]
paramiko>=3.0

[sso]
google-auth-oauthlib>=1.2
msal>=1.28
requests>=2.31
