3.0 Network I/O

Interacting with the network is a useful feature — you can communicate with remote or local servers to transmit data, images, and more. However, this can be an area with a lot of edge cases, error conditions, and more, so it is wise to be diligent with your logic.

3.1 Always use SSL/TLS when communicating with remote endpoints

You should never transmit data in the clear. This means that your plugin should only ever target https:// or wss:// endpoints.

3.2 Correctly handle online/offline and failure states

If your plugin requires network access in order to function, you should be sure that your plugin works correctly if there is no route to your remote endpoint, or if the network is flaky or down for some reason.

3.3 Handle long network requests

If you expect that your plugin may make a network request that takes a considerable amount of time, don’t leave your user in doubt! Keep them up-to-date with your plugin’s progress, and provide a way to cancel the operation.

3.9 Privacy Implications

Sending the user’s data or analytics information to a remote endpoint has a whole host of privacy implications in today’s world, especially with the recent introduction of GDPR in Europe.