Initial architecture plan is to add some http middleware that will track open requests by deviceId (read from the noise connection socket) and shareId (which we will need to pass as a query param), to enable progress events and cancellation.
The server will validate that the query param includes a valid, active shareId, then validate the deviceId (remotePublicKey) on the socket to ensure it is the deviceId that the shareId was sent to.