Information We Collect
1.1 Website & Account Information
- Account Information: Email address, password (hashed with PBKDF2-SHA512, 600,000 iterations per OWASP guidance), first and last name, and any profile details you provide when creating an account.
- Two-Factor Authentication: If you enable 2FA, the TOTP secret is stored alongside your account so the portal can verify codes from your authenticator app.
- Transaction Data: Purchase history, subscription status, and a Stripe customer/subscription identifier. Card numbers and full billing details are held by Stripe — we never see or store them.
- Support Communications: Support ticket content, attachments, and any email correspondence you send us.
- Server Access Logs: Standard HTTP access logs (IP, user-agent, request path, timestamp) generated by the web server for security and abuse prevention.
- Time Zone: When you are signed in, your browser reports the IANA time-zone name it is set to (for example
America/Toronto) and we store it on your account. It is used for one thing: displaying dates and times in your own local time rather than in UTC. It is detected from your browser rather than asked for, so it is disclosed here; you can see and change the stored value on your profile page.
1.2 PNT-RMMS Desktop Client Data
When you install and use the PNT-RMMS Agent, the following data is reported to our servers:
- Hardware Inventory: Computer hostname, system manufacturer, model, serial number, CPU name and core count, total RAM, and per-drive storage details.
- OS & Runtime State: Windows edition / build / architecture, last boot time, time-zone, domain-join status, current CPU and memory utilization, free disk space, and the agent's version number.
- Network Data: Primary network adapter MAC address (used as a hardware fingerprint for license deduplication) and the public IP address the device most recently reported from. Local IPs and other interface addresses are not reported.
- Agent Metadata: Encrypted device token (DPAPI-protected on disk under a per-machine key) and license-validation state.
- Diagnostic Logs: Logs from the Agent are forwarded to the portal for centralized troubleshooting — Warning level and above, plus a small number of named categories that forward at Information level for diagnostic purposes. These logs are about the operation of the software rather than about the person using the device, and we redact credential-shaped values from them automatically. They are not, however, guaranteed to be free of personal data: an error raised while handling a file records the path involved, which on Windows normally contains the account name and may contain a document name; an error raised while carrying out an operator's instruction records that operator's email address; and a line that identifies the device an event came from records that device's hostname, which often names the person who uses the machine. We do not use these logs for any purpose other than diagnosing faults, and they are subject to the retention period in section 4. Automatic crash diagnostics are a separate, larger collection — see Automatic crash diagnostics in section 8.
- Remote Session Summaries (v1.4.17+): At the end of each remote-control session the Agent posts a summary containing start/end timestamps, the connection path that won (LAN-direct, direct over WAN, or relay), bytes transmitted on each path, and the public IP of the operator. No screen content or input is stored — only the path and byte totals.
1.3 Remote Access Session Data
When a remote-control session is initiated, the following is captured:
- Session Metadata: Start/end timestamps, the operator's identity, the path that connected the session (LAN-direct, direct over WAN, or relay), and per-session bytes transmitted.
- Screen Content: Screen frames are transmitted in real time to the connected operator's browser. All transit is encrypted — direct WebRTC connections use DTLS-SRTP, and relayed connections use TLS over WSS. Screen content is not stored on our servers; only the byte counts and connection path are persisted. Relayed sessions are not end-to-end encrypted — see Relay fallback in section 1.4 below for exactly where the encryption terminates.
- Audit Logs: Authentication events (account login, MFA enrollment, role changes), subscription changes, and device activations are logged on the portal for security and compliance review.
1.4 Peer-to-Peer Connection Data
PNT-RMMS prefers direct connections over WebRTC and only falls back to relay when direct fails:
- STUN candidate gathering: Your device contacts our self-hosted STUN server (
stun:rmms.pronovatech.com:3478), with Cloudflare and Google STUN as fallbacks if our server is unreachable. STUN reveals the device's public IP and port to itself; no session content flows over STUN. - mDNS resolution (v1.4.17+): When the operator's browser is on the same local network as the device, the Agent resolves browser-emitted
.localhostnames via standard multicast DNS (UDP 5353) so the connection can stay on the LAN. mDNS queries never leave the local broadcast domain. - Relay fallback: When a direct connection cannot be established, sessions traverse our PNT-operated relay servers over TLS-encrypted WebSockets. We do not operate or use third-party TURN servers. Relayed traffic is forwarded in flight and is not recorded.
- Where encryption terminates on the relay path: A relayed session is not end-to-end encrypted between the managed device and the operator's browser. TLS terminates at the relay, which is a host operated by Pro Nova Technologies Inc. The relay decrypts each message it receives, reads the session's control messages, and re-encrypts to the other party over its own separate TLS connection. It does this because it has to: the relay is what enforces that a connected party can only act inside the session it was actually authorized for, and it does that by reading and overwriting the session identifier and the operator's email address on every control message rather than trusting what the sender put there. A consequence of that design is that, while a relayed session is in progress, session content — including screen frames — exists in the clear in the relay's memory. It is forwarded and discarded: nothing is written to disk, recorded, or retained on the relay. If you require that no PNT-operated host is able to observe session content, use a direct (peer-to-peer) connection, which does not traverse a relay at all and is encrypted end-to-end with DTLS-SRTP. The connection path actually used for each session is recorded in the session summary and is visible to you on the portal.
1.5 RMMS Portal Data
If you use the portal to manage your company and devices, we also store:
- Company name, address (if provided), and organizational structure (locations, device groups).
- Team-member invitations, role assignments (Owner / Member / Viewer), and join history.
- Per-device assignment metadata (which user activated which device, when).
1.6 Browser Notifications & the Service Worker
Browser notifications are off unless you turn them on from Notification Settings in the portal. If you do:
- A service worker is installed. Your browser registers a small script (
/sw.js) that remains after you close the tab, so a notification can appear when the portal is not open. It displays notifications we send, opens the portal at the relevant page when one is clicked, and re-registers your subscription if your browser rotates it. It does not cache pages or record your activity. - We store a push subscription. Your browser issues an address at its maker's push service, together with a public key and an authentication secret that it generates itself and uses to decrypt what we send. We store those against your account so we can reach that browser, along with the browser's user-agent string, which is recorded at the moment you subscribe so that an operator diagnosing undelivered notifications can tell one of your subscribed browsers from another. We delete all of it when you disable notifications or when the push service tells us the address is dead. One stored subscription is one browser profile on one device.
- The message passes through a third party. Delivery is performed by a push service run by your browser's maker — see Browser Push Services in section 3. The notification — its heading and text, which for a device alert names the device concerned — is encrypted before it leaves us and can be decrypted only by the browser that subscribed, so the push service handles it without being able to read it and sees only that a message was sent to an address it issued.