requirements.txt 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. # Web Framework
  2. fastapi>=0.109.0
  3. uvicorn[standard]>=0.27.0
  4. # Database
  5. sqlalchemy>=2.0.0
  6. aiosqlite>=0.19.0
  7. asyncpg>=0.29.0
  8. greenlet>=3.0.0
  9. # Pydantic
  10. pydantic>=2.0.0
  11. pydantic-settings>=2.0.0
  12. # Transitive of pydantic-settings, floor-pinned to patch CVE-2026-28684 (dotenv 1.2.1)
  13. python-dotenv>=1.2.2
  14. # Bambu Lab Printer Communication
  15. paho-mqtt>=2.0.0
  16. aioftp>=0.22.0
  17. # Virtual Printer (emulates Bambu printer for slicer uploads)
  18. pyftpdlib>=2.0.0
  19. cryptography>=46.0.7
  20. # SpoolBuddy remote SSH updates (pure-Python SSH client; avoids the
  21. # OpenSSH `ssh` binary which calls getpwuid() and fails in Docker when
  22. # the container UID isn't in /etc/passwd)
  23. asyncssh>=2.18.0
  24. # 3MF Processing (standard zipfile is sufficient for Bambu 3MF files)
  25. defusedxml>=0.7.0 # Safe XML parsing (prevents XXE attacks)
  26. # Excel Export
  27. openpyxl>=3.1.0
  28. # Notifications
  29. pywebpush>=2.0.0
  30. # Utilities
  31. python-multipart>=0.0.27
  32. aiofiles>=23.0.0
  33. # QR Code generation
  34. qrcode[pil]>=7.4.0
  35. # PDF generation (spool label printing — #809)
  36. reportlab>=4.0.0
  37. # STL Thumbnail Generation
  38. trimesh>=4.0.0
  39. matplotlib>=3.8.0
  40. fast-simplification>=0.1.0
  41. # System monitoring
  42. psutil>=6.0.0
  43. # Authentication
  44. PyJWT>=2.12.0
  45. passlib[bcrypt]>=1.7.4
  46. ldap3>=2.9.0
  47. pyotp>=2.9.0
  48. # Transitive dep pin: idna<3.15 has CVE-2026-45409 (ReDoS on encode() with
  49. # crafted Unicode). Pulled in by anyio/httpx/requests/yarl; pin the floor
  50. # so we don't regress when a downstream loosens its constraint.
  51. idna>=3.15
  52. # HTTP client (used for OIDC token exchange)
  53. httpx>=0.26.0
  54. # Transitive pin: urllib3 2.6.3 has CVE-2026-44431 and CVE-2026-44432;
  55. # 2.7.0+ is the fixed release. Direct pin here because none of our
  56. # top-level deps require >=2.7.0 yet, so without this the resolver
  57. # would silently keep installing the vulnerable 2.6.x line.
  58. urllib3>=2.7.0
  59. # Transitive of fastapi. starlette 1.0.0 has PYSEC-2026-161; 1.0.1 is the
  60. # fixed release. fastapi's range still admits 1.0.0 so we pin the floor
  61. # directly to stop the resolver from picking the vulnerable build.
  62. starlette>=1.0.1
  63. # Plate Detection (optional - enables build plate empty detection)
  64. opencv-python-headless>=4.8.0
  65. numpy>=1.24.0
  66. # Development
  67. pytest>=9.0.3
  68. pytest-asyncio>=0.23.0
  69. httpx>=0.26.0
  70. ruff>=0.2.0
  71. pillow>=12.2.0