Adds DB tables for storing push subscriptions, some DB interaction code
for retrieving them within MediaWiki, and a set of API modules for
managing them from the outside world.
When testing this patch, be sure to run maintenance/update.php to create
the new tables, and set $wgEchoEnablePush = true in LocalSettings.php
to enable the API new API module.
N.B. The current DB schema is centered on app push subscriptions. Web
push subscriptions require slightly different handling, since they are
provided by browsers as a JSON blob rather than a token string. How to
handle web push subscriptions is a question we can defer until the time
comes to add web push support.
Subscription data is stored in the echo_push_subscription table, with
provider names normalized into the echo_push_provider table. We expect to
be looking up subscriptions by central user ID, so that column is indexed.
The subscription data also includes a column to store SHA256 digests of
the subscriber tokens. This is for use as a unique key constraint, since
we expect every push token to be univerally unique, and the token values
themselves may be too large to reasonably index in MySQL.
Bug: T252899
Change-Id: I3928761b3fba12e54ff4850e9a05c68ec7772f62
It is set by a trait, but each module using the trait defines its own
message for it, so adding a new one for this module
Bug: T238520
Change-Id: Id247a40296960f3c95d3fc95bd046113e07dc0ff
This will be used to submit a new article reminder, for a specified date.
The delay is not implemented yet.
Bug: T166973
Bug: T167450
Change-Id: I773bbe98e781957912350c481c850b3263cb1821
The ability to format notifications as text
has been removed in Ic5712c4ce265b6faabce7a4028b4294fe3c73f18.
Bug: T155874
Change-Id: I72cadbaaa01414ce46315a618da0cb46241ad93e
There are many API messages in Echo, so to make it easier
for translators, they are now in a separate group.
This is similar in Flow.
Must be merged along with the translatewiki change at
Iecedfe4cb9dc8e62a446a3e1c415a79e116ca27e
Change-Id: I1d3baea708107a7f15bf19671f7386eaf7e33a1b