Report a vulnerability privately through GitHub security advisories on this repository.
- It sees, per grant request, the phone's IP address and APNs device token; per push, the channel host's IP address, the time, and a sealed message of one fixed size.
- It cannot read message text, room names or message ids: the channel seals them with a key the relay never receives, and the identifiers it sees are HMACs under that key.
- It can wake a registered phone with a notification. Anything it did not receive sealed from the channel is shown as a silent placeholder.
- Add a new id to
RELAY_KEYS(keep the old one) andwrangler secret put RELAY_KEYS. - Set
RELAY_KEY_CURRENTto the new id inwrangler.toml; dry-run; deploy. - After one grant lifetime every phone has renewed; remove the old id and put the secret again.
- Create a replacement key for the same environment, restricted to the app's topic.
wrangler secret put APNS_KEY_<ENV>andAPNS_KEY_ID_<ENV>with the new key.- Revoke the old key in the Apple developer console.
Existing grants keep working: they name the phone, not the APNs key.