mediawiki-extensions-Echo/db_patches
Michael Holloway a3674974f1 Add push subscription management
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
2020-06-02 13:40:00 -04:00
..
echo_email_batch.sql Initial check-in for email batch 2012-12-12 12:00:13 -08:00
echo_push_provider.sql Add push subscription management 2020-06-02 13:40:00 -04:00
echo_push_subscription.sql Add push subscription management 2020-06-02 13:40:00 -04:00
echo_target_page.sql Add TargetPage model and mapper to notifications 2014-08-13 00:48:07 +00:00
echo_unread_wikis.sql Track what wikis a user has unread notifications on 2015-11-20 15:54:11 -08:00
patch-add-echo_event-event_deleted.sql Dynamic bundles 2016-06-27 09:49:13 -04:00
patch-add-echo_event-event_page_id.sql Database updates for respecting oversight within Echo 2013-06-10 14:52:18 -07:00
patch-add-event_page_id-index.sql Add index on event_page_id 2016-08-25 18:35:39 -07:00
patch-add-notification_event-index.sql Add index on notification_event 2016-06-14 19:57:06 +00:00
patch-add-page_event-index.sql Dynamic bundles 2016-06-27 09:49:13 -04:00
patch-add-user_read_timestamp-index.sql Dynamic bundles 2016-06-27 09:49:13 -04:00
patch-alter-event_type-index.sql Repairs necessary for echo to support Sqlite 2013-06-13 14:34:33 -07:00
patch-alter-type_page-index.sql Add web bundling function to Echo notification 2013-04-04 10:53:46 -07:00
patch-alter-user_timestamp-index.sql Rename index for sqlite support 2013-06-14 13:14:21 -07:00
patch-drop-echo_event-event_page_namespace.sql Respect revision suppression within Echo 2013-06-18 11:00:50 -07:00
patch-drop-echo_event-event_page_title.sql Respect revision suppression within Echo 2013-06-18 11:00:50 -07:00
patch-drop-echo_event-event_timestamp.sql remove unused table and columns 2013-04-09 10:56:28 -07:00
patch-drop-echo_subscription.sql remove unused table and columns 2013-04-09 10:56:28 -07:00
patch-drop-echo_target_page-etp_user.sql Remove etp_user 2016-09-09 09:32:28 -04:00
patch-drop-echo_target_page-etp_user.sqlite.sql Remove etp_user 2016-09-09 09:32:28 -04:00
patch-drop-notification_bundle_base.sql Remove notification_bundle_base 2019-03-04 13:22:17 -08:00
patch-drop-notification_bundle_display_hash.sql Remove notification_bundle_display_hash 2019-03-06 10:29:05 -08:00
patch-drop-user-hash-timestamp-index.sql Remove notification_bundle_display_hash 2019-03-06 10:29:05 -08:00
patch-email_batch-new-field.sql SQLite compatibility for Echo database patches 2013-10-15 20:56:24 +00:00
patch-event_agent-split.sql
patch-event_agent-split.sqlite.sql Do not recreate echo_event.event_page_namespace on sqlite update 2019-04-10 20:09:13 +02:00
patch-event_agent_ip-size.sql Add web bundling function to Echo notification 2013-04-04 10:53:46 -07:00
patch-event_extra-size.sql Echo: Implement advanced notifications for vanilla talk pages. 2012-08-01 10:17:36 -07:00
patch-event_variant_nullability.sql Fix SQL issue: make event_variant field nullable. 2012-05-18 11:10:41 +10:00
patch-event_variant_nullability.sqlite.sql Update column names in SQLite patch file 2019-04-11 13:27:16 +02:00
patch-multiple_target_pages.sql Allow multiple target pages per event 2015-03-31 07:56:52 +00:00
patch-multiple_target_pages.sqlite.sql Allow multiple target pages per event 2015-03-31 07:56:52 +00:00
patch-notification-bundling-field.sql SQLite compatibility for Echo database patches 2013-10-15 20:56:24 +00:00
patch-notification-pk.sql Add a primary key to the echo_notification table 2016-09-07 21:49:09 -07:00