Connected Devices/Projects/Project Link/Box-Client networking: Difference between revisions

QR codes and Cordova are off the table; unfortunately only one of the three discovery flows we discussed will be implemented until FlyWeb comes of age.
(Link to login flow mockup)
(QR codes and Cordova are off the table; unfortunately only one of the three discovery flows we discussed will be implemented until FlyWeb comes of age.)
 
Line 1: Line 1:
'''Box-Client networking (draft)'''
'''Box-Client networking (using Mozilla's hosted app)'''


Apart from the Box pairing with IoT devices, clients (web pages open on phones and laptops) need to connect with the Box. We call this Client Pairing. There are several ways in which this can work, but for now we're only implementing the first one:
Apart from the Box pairing with IoT devices, clients (web pages open on phones and laptops) need to connect with the Box. We call this Client Pairing. There are several ways in which this can work, but for now we're only implementing the first one:
Line 46: Line 46:
[https://moqups.com/ferjmoreno@gmail.com/3wWoJ63b Login Flow (early draft)] mockup about this last step.
[https://moqups.com/ferjmoreno@gmail.com/3wWoJ63b Login Flow (early draft)] mockup about this last step.


In the future we plan to make two optional improvements:
In the future, we hope FlyWeb can replace the roles of the registration_server and the dns-server. This means you will no longer be sending any data to Mozilla's servers (except for the fact that you're accessing the static web app).


* build-time option to replace the registration server with the scanning of a QR code, or a similar mechanism for the Box and the Client to prove physical proximity to each other.
Until then, for a serverless alternative, see [https://github.com/michielbdejong/serverless-link-client Michiel's serverless Link client] (under development). It discovers the Box via mDNS and trusts its TLS cert on first use. Downside is that it requires Cordova.
 
* build-time option to use mDNS instead of the public DNS zone, and use URLs of the form https ://<public-key-digest>.<special-tld> instead of browser-trusted CAs, similar to [https://wiki.mozilla.org/FlyWeb#Security what has been proposed for FlyWeb].