Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Simplepush

Schemesspush://, simplepush://
Cargo featureservice-simplepush
Servicehttps://simplepu.sh/
Body formatsmarkdown (first is the default)
Attachmentsyes
Title length300 characters
Body length7,000 characters
Body linesunlimited
Request throttlenone
Vendor URLs acceptedno

URL formats

{schema}://{token}
{schema}://{token}/{targets}
{schema}://{password}@{token}
{schema}://{password}@{token}/{targets}

{schema} is one of spush://, simplepush://.

URL tokens

TokenMeaningTypeRequiredDefaultNotes
{password}Passwordstringnosecret
{target_member}Target Memberstringnoprefix @
{target_topic}Target Topicstringno
{targets}Targetslistnoany of target_member, target_topic; separated by /
{token}API Tokenstringyessecret

Query parameters

ParameterMeaningTypeDefaultNotes
broadcastBroadcastboolno
critical_volumeVolumefloat, 0 to 1
linksLinklistseparated by , or space
priorityPrioritychoiceone of 1, 2, 3, 4, 5
sharedSharedboolno
sptagTagstring
toTargetslistsets {targets}
topic_auth_tokenAuth Tokenstringsecret

The common URL parameters (format, overflow, verify, redirect, cto, rto, retry, wait, store, tag, tz, user, password, port, optional, emojis) apply as well.

Examples

Accepted URLs (tokens are fake):

spush://AAAAAAAAAAAAAA
spush://secret@AAAAAAAAAAAAAA
spush://AAAAAAAAAAAAAA/alerts
simplepush://AAAAAAAAAAAAAA/alerts
spush://secret@AAAAAAAAAAAAAA/alerts
spush://spi_cred.RfD2e8N6R92NKuRlF1RHlK7HHe3g2-3pGtdcuc9hOw8/site/@Alice
spush://spi_cred.RfD2e8N6R92NKuRlF1RHlK7HHe3g2-3pGtdcuc9hOw8/@Alice/@Bob/site
spush://AAAAAAAAAAAAAA/?to=alerts,deploys

Rejected URLs:

spush://
spush://AAAAAAAAAAAAAA/alerts?priority=invalid
spush://AAAAAAAAAAAAAA/alerts?priority=10
spush://AAAAAAAAAAAAAA/alerts?priority=3.5

Send one from the command line:

mercurio -t 'Backup' -b 'Finished in 42s' 'spush://AAAAAAAAAAAAAA'

Notes

Simplepush (spush://, simplepush://): push notifications through Simplepush, optionally encrypted.

Every message is sent as a task. Encryption is end-to-end:

  • personal sends with a password: Argon2id (libsodium crypto_pwhash, 3 passes, 64 MiB) over the password salted with the topic (or the account’s password salt), expanded with HKDF-SHA256 into a key;
  • organization sends with an integration token (spi_<credential>.<seed>): the organization keys are wrapped to the token with NaCl crypto_box (X25519 + XSalsa20-Poly1305) and opened with the seed.

Fields, links and attachments are sealed with XChaCha20-Poly1305 (24 byte nonce + ciphertext + tag).