51 lines
3.6 KiB
Plaintext
51 lines
3.6 KiB
Plaintext
# M365 GDPR Scanner — Python dependencies
|
||
# Python 3.11+ required (3.13+ not recommended — spaCy compatibility)
|
||
|
||
# ── Web server ────────────────────────────────────────────────────────────────
|
||
flask>=3.0
|
||
|
||
# ── Microsoft 365 authentication ─────────────────────────────────────────────
|
||
msal>=1.28 # OAuth device code + client credentials flow
|
||
requests>=2.31 # Microsoft Graph API HTTP client
|
||
|
||
# ── Document scanning ─────────────────────────────────────────────────────────
|
||
pdfplumber>=0.11 # PDF text extraction
|
||
python-docx>=1.1 # Word document scanning
|
||
openpyxl>=3.1 # Excel scanning + export
|
||
|
||
# ── Image / video processing ─────────────────────────────────────────────────
|
||
Pillow>=10.0 # Image thumbnails + EXIF extraction (always-on)
|
||
opencv-python>=4.9 # Face detection (opt-in — Scan photos for faces)
|
||
numpy>=1.26 # Required by opencv-python
|
||
mutagen>=1.47 # Video metadata extraction (MP4/MOV/AVI — GPS, author, title)
|
||
|
||
# ── NER / PII detection ───────────────────────────────────────────────────────
|
||
# spaCy 3.7 supports Python 3.8–3.12. Do NOT upgrade past Python 3.12.
|
||
spacy>=3.7,<4.0
|
||
|
||
# ── PDF scanning (optional — improves accuracy) ───────────────────────────────
|
||
pymupdf>=1.24 # Physical PDF text layer access (fallback: pdfplumber)
|
||
|
||
# ── Encryption ───────────────────────────────────────────────────────────────
|
||
cryptography>=42.0 # Fernet — SMTP password encrypted at rest
|
||
|
||
# ── Packaging / desktop ───────────────────────────────────────────────────────
|
||
pyinstaller>=6.0
|
||
pyinstaller-hooks-contrib>=2024.0
|
||
pywebview>=5.0 # Native app window
|
||
pystray>=0.19 # System tray icon
|
||
|
||
# ── File system scanning (optional) ──────────────────────────────────────────
|
||
smbprotocol>=1.13 # SMB2/3 network share scanning without mounting
|
||
paramiko>=3.4 # SFTP scanning over SSH
|
||
keyring>=25.0 # OS keychain credential storage for SMB/SFTP passwords
|
||
python-dotenv>=1.0 # .env file fallback for headless SMB credentials
|
||
|
||
# ── Scheduler (#19) ──────────────────────────────────────────────────────────
|
||
APScheduler>=3.10 # In-process scheduled scans
|
||
|
||
# ── Google Workspace scanning (#10) ──────────────────────────────────────────
|
||
google-auth>=2.0 # Service account + domain-wide delegation
|
||
google-auth-httplib2 # HTTP transport for google-auth
|
||
google-api-python-client>=2.0 # Gmail API + Drive API + Admin Directory API
|