The data plane API for the Pi In The Sky application
The high level dataflow travels from right to left, starting at the browser:
- The user requests the pits-console application at the domain (AWS provided to custom) to the CDN.
- Once the application loads, the user must login through AWS Cognito User Pool
- The application makes an uathorized
connect
to thepits-data
websocket server. - The connection session is stored in
PitsResources
DynamoDB provided by pits-infra. Additionally, a command to wake the pits-device application using an AWS IoT MQTT message - The message is receied by
aws-iot-device-client
via MQTT and written as a JSON file on the device - The JSON file mutation is handled as an internal event through inotify.
- The
pinthesky
daemon processes the event and wakes thepicamera
device. - The camera feed is bumped directly into a websocket
- The feed is forward to the browser session and ultimately rendered as real-time in the browser.