Effective Date: July 29, 2026
Last Updated: August 30, 2026
Publisher: Total Overwatch Productions (“we”, “us”, or “our”)
Application: MeshFlow (com.meshflow.app)
Contact Email: info@totaloverwatchproductions.com
Website: https://totaloverwatchproductions.com


1. Overview & Core Philosophy

MeshFlow is a video orchestration platform designed for tactical Mobile Ad-hoc Networks (MANET) using B.A.T.M.A.N.-adv and decentralized peer-to-peer (P2P) WebRTC overlays.

Our privacy policy is simple and transparent: MeshFlow is built with an offline-first, local-mesh architecture. Your video streams, screen captures, and audio travel over your local mesh network or over direct peer-to-peer connections — never through our servers. We do not sell, track, or harvest your video feeds.

Two things do reach us, and §4 describes both in full.

Peer discovery. When the device has internet access, MeshFlow contacts our signaling service so peers can find each other. It carries the encrypted messages two peers need to negotiate a connection; it never carries your media.

Connection performance metrics. While you are using our servers to find peers, MeshFlow reports how each connection went — how long it took to connect, whether it succeeded, and why it failed when it didn’t — so that we can make connections work better. On our service we do not record who you connected to: not the other person, not the network you joined, not where either of you were.

If your organization runs MeshFlow on its own infrastructure, that deployment is under its control and may be configured to keep fuller records — see §4.1.


2. Information Handled & Permissions Requested

To provide real-time video broadcasting and mesh discovery, MeshFlow requests access to specific device hardware features. All data processed by these features remains under your local control:

A. Camera & Microphone (CAMERA, RECORD_AUDIO)

  • Purpose: Enables live video and audio capture from your device’s front or rear camera to broadcast to other authorized nodes on your local mesh network or P2P session.
  • Storage & Transmission: Streams are encoded in real time and transmitted directly to connected mesh nodes or P2P peers via RTSP/WebRTC. No camera footage is recorded to external cloud servers without your explicit action.

B. Screen Recording & Foreground Service (FOREGROUND_SERVICE_MEDIA_PROJECTION)

  • Purpose: Allows operators to broadcast their device screen (maps, tactical feeds, or diagnostic apps) to authorized mesh participants.
  • Scope: Screen capture runs as an active, visible Foreground Service with an ongoing notification. Capture begins only when you explicitly tap Start Screen Share and ends when you tap Stop.

C. Bluetooth & Nearby Device Access (BLUETOOTH_SCAN, BLUETOOTH_CONNECT)

  • Purpose: Enables discovery, pairing, and control of tactical action cameras (e.g. GoPro devices) over local Bluetooth Low Energy (BLE) channels.

D. Fine Location (ACCESS_FINE_LOCATION)

  • Purpose:
    1. Required by the Android operating system to perform local Wi-Fi and Bluetooth Low Energy scans.
    2. Optional stream geotagging to display node positions on the tactical MeshFlow map view.
  • Control: Location sharing can be toggled off at any time in the app Settings tab.

3. Data Storage & Security

  • Local Entitlements & Licenses: Pro license status and subscription receipts are stored locally on your device using encrypted storage (SecureStore / AsyncStorage). Once verified, licensing works 100% offline without requiring connection to external servers.
  • Encryption: Peer-to-peer media streams are protected by WebRTC DTLS-SRTP, and underlying HaLow and Wi-Fi mesh links use WPA3/SAE. Signaling payloads exchanged through our cloud service are additionally encrypted with AES-256-GCM under a key derived from your network password (PBKDF2-HMAC-SHA256), so the service that routes them cannot read them.

4. Third-Party Services & Analytics

MeshFlow contains no third-party ad networks, social media trackers, analytics SDKs, or data brokers. It uses exactly the following infrastructure endpoints:

  • Google Play Store / Apple App Store: Handles subscription billing and in-app purchase verification through standard store APIs (react-native-iap).
  • AWS Cloud Infrastructure (peer discovery): When the device has internet access, MeshFlow connects to our signaling service (wss://) automatically on launch so that peers can find each other and exchange the handshake needed to open a direct connection. This is how discovery works with no setup, and it is not currently something you turn off in the app; a device with no internet path simply operates on its local mesh instead.
    • What that connection carries: a per-session peer identifier assigned by the server; the network identifier you joined — a one-way HMAC of your network name computed under your network password, so we never receive the name or the password themselves; a small amount of routing metadata (whether the device can see a local mesh, and how many relay slots it offers); and the encrypted signaling messages peers exchange to negotiate a connection. Your callsign, your stream’s details, and any location you have chosen to share travel inside that encrypted payload, addressed to your peers and not readable by us.
    • What it does not carry: your video or audio. Media never traverses our signaling service. It flows directly between peers, or through a TURN relay when a firewall or carrier-grade NAT blocks a direct path — and a relay forwards the encrypted stream without being able to decrypt it.
  • AWS Cloud Infrastructure (connection performance metrics): When your device is using our servers to find peers, MeshFlow reports a short summary of how each connection went, over that same signaling connection. Its only purpose is making connections succeed more often and connect faster — during the alpha this is how we find and fix the cases that fail in the field but not on our test benches.
    • What is included: whether the connection succeeded; if it failed, which of a fixed list of reasons applies; how many milliseconds it took to reach each stage; counts of the network addresses your device produced and received; whether a relay was needed and which kind of network path carried the video; and video quality figures — frame rate, bitrate, packet loss, round-trip time. Plus your app version, platform, and major OS version, so we can tell whether a problem is specific to one of them.
    • What is excluded, deliberately: who you connected to. No peer identifiers, no network identifier (not even the one-way hash — it would still tell us which team a device belongs to), no stream or channel names, no callsigns, no location, and no network addresses. Your device’s own IP addresses appear inside the technical details of a connection, and those details are never sent — we send only counts and the type of path used. We also send no clock times, so these reports cannot be lined up against each other to reconstruct your activity.
    • Session grouping: each app launch generates a random, throwaway identifier so the connections from one session can be counted together (“one of this session’s two connections failed”). It is not stored, not derived from your device, and changes every time you open the app, so it cannot be used to recognise you or link one session to another.
    • In short: on our service we measure the quality of the road, not where you drove.
    • Scope — this describes the public MeshFlow service that we operate. Organizations can also run MeshFlow on their own private infrastructure (§4.1). Those deployments are configured by the organization that runs them, and some — public safety and defense operators in particular — are required to keep detailed connection and mission audit records. In that case the organization decides what is recorded and is responsible for it; this policy does not govern their systems, and we do not receive that data.
  • AWS Cloud Infrastructure (support): Support ticketing, when you submit a request from Settings.

4.1 Private and organization-operated deployments

Everything above describes the public MeshFlow service that we operate, which is what you are using unless your organization has told you otherwise.

MeshFlow can also be deployed onto an organization’s own infrastructure, or run entirely on a local mesh with no internet path at all. In those configurations:

  • The organization operating it decides what is recorded, and is responsible for it. Some are obliged to record a great deal — public safety, defense and critical-infrastructure operators frequently have legal or operational requirements to retain detailed connection and mission audit records, including who communicated with whom and when. MeshFlow supports that, because for those users it is a requirement rather than a preference.
  • This policy does not govern those systems. Your organization’s own policy does. If you are using MeshFlow through an employer or agency, ask them what their deployment records.
  • We do not receive that data. A deployment on someone else’s infrastructure reports to them, not to us.
  • A fully local or air-gapped deployment sends nothing anywhere, including to us — there is no path for it to do so. This is a property you can verify by blocking egress and confirming the system still works.

5. Data Retention & User Controls

  • Zero Cloud Retention: Video streams and screen recordings are transient live feeds and are not retained on our servers.
  • Revoking Permissions: You can grant or revoke camera, microphone, location, or screen recording permissions at any time via your device’s native OS Settings (Settings -> Apps -> MeshFlow -> Permissions).

6. Children’s Privacy

MeshFlow is intended for professional, industrial, tactical, and field operators. MeshFlow does not knowingly collect or solicit personal information from children under the age of 13.


7. Changes to This Privacy Policy

We may update our Privacy Policy periodically to reflect app updates or legal requirements. Any changes will be published at https://totaloverwatchproductions.com/privacy.


8. Contact Us

If you have any questions or concerns regarding this Privacy Policy or MeshFlow’s privacy practices, please contact us at:

Total Overwatch Productions
Email: info@totaloverwatchproductions.com
Website: https://totaloverwatchproductions.com