-- --------------------------------------------------------------------------- -- Web-Push-Abos fuer die Benachrichtigungen der Automatiken -- --------------------------------------------------------------------------- -- Ein Abo ist ein Geraet, das Meldungen bekommen moechte: Browser oder -- Startbildschirm-Symbol auf einem Handy. Der Browser erzeugt es beim ersten -- "Benachrichtigungen erlauben" und liefert drei Teile: -- -- endpoint die Adresse beim Push-Dienst des Browserherstellers (Google, -- Mozilla, Apple). Sie ist eindeutig und zugleich das Geheimnis - -- wer sie hat, kann diesem Geraet etwas schicken. -- p256dh oeffentlicher Schluessel des Geraets -- auth Geheimnis fuer die Verschluesselung -- -- Verschluesselt wird gegen p256dh und auth, unterschrieben mit dem -- VAPID-Schluessel aus push_vapid.json (SolarManager). Der Push-Dienst sieht -- nur ein Paket, das er nicht lesen kann. -- -- Geloescht wird automatisch: meldet der Dienst 404 oder 410, gibt es das -- Geraet nicht mehr (App entfernt, Browserdaten geloescht) - der Runner -- raeumt die Zeile dann selbst weg. -- -- Einspielen: -- mysql -h nas.fritz.box -P 3310 -u homeMesh -p homeMesh < homeMesh_push.sql -- --------------------------------------------------------------------------- SET NAMES utf8mb4; CREATE TABLE IF NOT EXISTS `push_abos` ( `id` int(11) NOT NULL AUTO_INCREMENT, `endpoint` varchar(500) NOT NULL COMMENT 'Adresse beim Push-Dienst; zugleich der Schluessel der Zeile', `p256dh` varchar(255) NOT NULL COMMENT 'oeffentlicher Schluessel des Geraets', `auth` varchar(64) NOT NULL COMMENT 'Geheimnis fuer die Verschluesselung', `name` varchar(80) NOT NULL DEFAULT '' COMMENT 'Klarname, den der Nutzer vergibt ("Handy Moritz")', `browser` varchar(120) NOT NULL DEFAULT '' COMMENT 'erkannt aus dem User-Agent, nur zum Wiedererkennen', `angelegt` timestamp NOT NULL DEFAULT current_timestamp(), `zuletzt` datetime DEFAULT NULL COMMENT 'wann zuletzt erfolgreich zugestellt', `fehler` varchar(255) NOT NULL DEFAULT '' COMMENT 'letzter Fehler, leer = alles gut', PRIMARY KEY (`id`), UNIQUE KEY `uniq_endpoint` (`endpoint`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;