nordabiz/static
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
..
announcements feat(announcements): System ogłoszeń i aktualności dla członków 2026-01-26 22:10:54 +01:00
css improve(messages): add group management panel (members, rename, add/remove) 2026-04-08 16:37:29 +02:00
fonts perf: self-host Poppins font — eliminate render-blocking Google Fonts 2026-04-07 18:14:55 +02:00
images/pej fix(pej): use local YouTube thumbnails — CSP blocks img.youtube.com 2026-03-16 21:25:55 +01:00
img feat(companies): logo 4 nowych członków Izby (Melolandia, Kutniewscy, THPUdR, Auto-Brudniewicz) 2026-04-14 11:48:52 +02:00
js feat(push): Web Push (VAPID + pywebpush) dla prywatnych wiadomości 2026-04-14 16:56:49 +02:00
uploads feat: user avatar upload with crop, resize, and EXIF strip 2026-03-12 10:18:29 +01:00
videos feat(chat): Dodaj przycisk pomocy wideo w NordaGPT 2026-01-27 11:50:04 +01:00
maintenance.html chore: Update docs, roadmap, and remove stale ralph-loop config 2026-02-14 18:13:03 +01:00
site.webmanifest feat(pwa): Apple Touch Icon + Web Manifest + PNG fallbacks 2026-01-28 23:44:11 +01:00
sw.js feat(push): Web Push (VAPID + pywebpush) dla prywatnych wiadomości 2026-04-14 16:56:49 +02:00