Scoped access
Routine integrations can receive narrowly limited publisher or listener credentials instead of unrestricted access.
SECURITY / PRIVACY PLAIN-LANGUAGE OVERVIEW
Pushify carries operational messages and phone answers, so privacy depends on more than a lock icon. This page explains the current private-beta boundaries without pretending any connected service is risk-free.
Routine integrations can receive narrowly limited publisher or listener credentials instead of unrestricted access.
Events, URLs, actions, responses, and delivery envelopes are checked before storage or forwarding.
Controlled private channels can use official libsignal sessions, per-device ciphertext, and generic Firebase wake-ups.
WHAT IS STORED
Ordinary channels store notification events, structured metadata, delivery results, registered-device metadata, deduplication records, and interactive phone responses. End-to-end encrypted channels store routing metadata and separate ciphertext for each recipient device. Event and response retention is bounded.
Android keeps an app-private inbox. Sensitive events can enforce an absolute expiry or a timer that starts when the detail is opened. Authenticated purge commands remove matching channel history from participating phones when they reconnect.
DELIVERY PARTNERS
Public HTTPS traffic passes through Cloudflare. Ordinary Android delivery can place notification content in a Firebase Cloud Messaging payload. Opaque and end-to-end encrypted modes send Firebase a generic wake-up instead.
Firebase is delivery transport, not Pushify's event-history database. Cloudflare, Firebase, and Pushify still see connection and routing metadata even when the content is end-to-end encrypted.
ENCRYPTION BOUNDARY
direct_fcm channels use HTTPS but remain readable by the Pushify server and delivery path. opaque_fcm hides content from the Firebase notification payload but not from Pushify. A prepared e2ee_required channel uses official libsignal sessions and stores only per-device ciphertext plus the metadata needed to route it.
No channel migrates automatically. Activation requires a readiness check and an explicit administrative action. Pushify fails closed instead of falling back to plaintext.
The server currently supplies the device directory. Strong resistance to a malicious directory requires the separately reviewed verified-roster design, which is not claimed today. Encryption also cannot prevent screenshots, an unlocked endpoint, malware, or a recipient copying content after decryption.
CREDENTIALS
Every private API route requires a database-backed bearer credential or protected phone session. Each principal is limited by capability, immutable channel ID, and event type. A publisher can read answers to its own events without gaining access to every publisher's responses.
Credentials must remain in server-side environment variables or protected configuration. They should never appear in URLs, frontend JavaScript, notification payloads, screenshots, or logs.
APPLICATION CONTROLS
YOUR PART
Use a separate scoped token for each service, keep payloads proportionate, avoid sensitive data when a short status is enough, validate listener fields before using them, and rotate a credential if you suspect exposure.
MORE DETAIL
The beta manual explains publisher, listener, installation, and administrator boundaries with examples.
Read credential guidance →