nordabiz/requirements.txt
Maciej Pienczyn 6c4db17807
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
feat(push): Web Push (VAPID + pywebpush) dla prywatnych wiadomości
Pierwsza iteracja — trigger to nowa wiadomość prywatna. Rollout
fazowany przez PUSH_USER_WHITELIST w .env: pusta = wszyscy, lista
user_id = tylko wymienieni. Ta sama flaga kontroluje widoczność
dzwonka w navbarze (context_processor inject_push_visibility).

Co jest:
- database/migrations/100 — push_subscriptions + notify_push_messages
- database.py — PushSubscription model + relacja na User
- blueprints/push/ — vapid-public-key, subscribe, unsubscribe, test,
  pending-url (iOS PWA), CSRF exempt, auto-prune martwych (410/404/403)
- static/sw.js — push + notificationclick (z iOS fallback przez
  /push/pending-url w Redis, TTL 5 min)
- static/js/push-client.js — togglePush, iOS detection, ?pushdiag=1
- base.html — dzwonek + wpięcie skryptu gated przez push_bell_visible
- message_routes.py — _send_message_push_notifications po emailach
- requirements.txt — pywebpush==2.0.3

Kill switch: PUSH_KILL_SWITCH=1 zatrzymuje wszystkie wysyłki.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 16:56:49 +02:00

78 lines
1.2 KiB
Plaintext

# Norda Biznes Partner - Python Dependencies
# ======================================
# Pinned versions for DEV/STAGING/PROD consistency (Python 3.12)
# Web Framework
Flask==3.1.2
Flask-Login==0.6.3
Werkzeug==3.1.5
# Security
Flask-WTF==1.2.2
Flask-Limiter==4.1.1
cryptography==46.0.4
bleach==6.3.0
# Database
SQLAlchemy==2.0.46
psycopg2-binary==2.9.11
# Google Gemini AI
google-genai==1.61.0
# Google Maps/Places API
googlemaps==4.10.0
# Environment Configuration
python-dotenv==1.2.1
# Email (for verification)
Flask-Mail==0.9.1
# Utilities
requests==2.32.5
feedparser==6.0.12
user-agents>=2.2.0
pdfplumber>=0.10.0
# SEO Analysis
lxml==5.4.0
beautifulsoup4==4.14.3
selectolax==0.4.6
python-whois==0.9.6
# Google News URL Decoding
googlenewsdecoder==0.1.7
# GeoIP
geoip2==5.2.0
# Redis
redis==7.1.0
# Web Push (VAPID)
pywebpush==2.0.3
# 2FA
pyotp==2.9.0
# PDF generation
pillow==12.1.0
weasyprint==68.0
# ===========================================
# Testing Dependencies
# ===========================================
# Test framework
pytest==9.0.2
pytest-flask==1.3.0
pytest-cov==7.0.0
pytest-xdist==3.8.0
pytest-timeout==2.4.0
pytest-mock==3.15.1
# E2E testing with Playwright
playwright==1.58.0
pytest-playwright==0.7.2