Individual features in the Hub support email notifications. Right now changing email addresses requires going into each site, opening the application (Uptime, Reports, Security, etc), and going through settings. That’s really painful.
This request is to ensure that the new Configuration sharing mechanisms allow for fluid changes of email addresses across multiple sites.
As an example, and this is probably bad UX but it’s intended to convey the idea:
– Allow for a single common repository of email addresses for contacts.
– Create a web page that allows for the selection of one or more of these contacts via a multi-select dropdown, or a checklist.
– On that page present a grid with one row per site and one column per application.
– The cell for each site/application contains a checkbox, and on-check the selected contact(s) will be assigned to the site/application.
– The background for the cell is green when the contact has approved receipt of reports and reddish for those who have not.
– When no contact is selected, some part of the email address or contact name is set in the cell rather than the checkbox. So we can look at the grid to see what email addresses are not yet confirmed for any given function.
– On Submit of the page the approval email is sent for all changes.
– Another button is available to re-send the approval email for all unconfirmed recipients.
That’s one way to handle this.
Another way would be for an API that allows us to set the email field for a single site/application. Then we can script this anyway we want, and create our own Hub-style maintenance pages to do this and many other functions.
Another way to do this (probably preferred by WPMU DEV) would be to allow the new Configuration sharing functionality to only set whatever fields are defined in the JSON file. So we should be able to generate one or more config files that only have email-related directives, and then save these files to all sites in order to set just the fields that we want.
However this is done, note the pattern, that it is painful to make a single change across many sites. A different View of site maintenance is required. We have the first view, by Site. The next View should be by application, where we can modify a setting for multiple sites with one change to application settings.
I strongly suggest and request that the new configuration JSON files be positioned as a first type of API so that all functionality can be controlled with this one mechanism – not just email but time settings, activation status, run of manual scans, etc. You’re already doing this. Don’t require that each JSON file Must set All fields. If each JSON file is capable of setting only the fields that we want then this will be just as good as any web service API.
The problem with JSON files is that they need to be manually uploaded. If you provide a single page where one or more JSON files can be easily uploaded then this pain goes away. With the site identified in the JSON we won’t need to go to each site to load the file like we do now with configurations.
And in fact, if a web service API is implemented, we should be able to send the exact same JSON file via HTTPS. So the work you are doing now can easily be transitioned into the “Holy Grail” of an API that we need for true cross-site maintenance.
Please do not hard-code limited functionality that will require a complete re-write later, or which precludes this sort of functionality as being too expensive to re-write. Please code in a manner that will allow the modules to be repurposed – that is, the code segment that gets the email address to set the Uptime notification recipient should not be intertwined with other code. Modularize it so that a JSON file with nothing but specs for Uptime email changes can be processed, and it will work for the new Config sharing, for application-oriented maintenance as described here, And for a hopefully upcoming API.
Thanks.