# Privacy Policy **KoalaSync does not collect, store, or sell any personal data.** *We don't track you. We only track our server* (relying exclusively on aggregated, anonymous, and non-personal system metrics to monitor performance and stability). KoalaSync is designed with a **Security-First & Volatile** architecture. This means we prioritize keeping your data out of persistent storage, though certain technical data must be processed temporarily to ensure service stability and security. ## 1. Data Processing (In-Memory Only) KoalaSync does not use a database. All active session data exists only in the server's RAM and is purged immediately when no longer needed. - **Session Data**: To synchronize playback, the server must temporarily hold your `peerId`, `username`, and the `title` of the video you are watching. Additionally, playback metadata (`mediaTitle`, `playbackState`, `currentTime`, `volume`, `muted`) is held per peer for the duration of the session. All of this is deleted as soon as you leave the room. - **Room Passwords**: If you set a room password, it is stored only as an in-memory **keyed SHA-256 HMAC hash**. The server receives the plaintext password only during join validation, never stores it, and keeps only the hash for the short room lifetime. - **Routing Maps**: The server maintains ephemeral lookup tables (`socketToRoom`, `peerToSocket`) to route messages between peers. These contain only transport identifiers and are purged on disconnect. ### Data Retention | Data Type | Maximum Retention | Trigger for Deletion | |:----------|:------------------|:---------------------| | Session data (peerId, username, video metadata) | Duration of session | User leaves room or disconnects | | Room state | 2 hours max | Last peer leaves, or inactivity timeout | | Auth failure records (lockout after 5 failed attempts) | 15 minutes | Periodic cleanup | | Connection rate-limit counters | 60 seconds | Automatic expiry | | Event rate-limit counters | 10 seconds | Automatic expiry + periodic cleanup | ## 2. Security & Rate Limiting To prevent abuse and brute-force attacks, the following data is processed: - **Brute-Force Protection**: If multiple failed password attempts are detected, the server stores the `IP address` and `Room ID` in a temporary RAM-based lockout list for a maximum of 15 minutes. - **Connection Rate Limiting**: IP addresses are tracked for 60 seconds to prevent connection-flooding (DoS) attacks. - **Event Rate Limiting**: Per-socket event counters are tracked for 10-second windows to prevent event-spamming. These are keyed by ephemeral socket IDs and cleaned up periodically. - **Console Logging**: The official relay server (`syncserver.koalastuff.net`) outputs connection events (including IP addresses) to the server console for real-time monitoring. These logs are ephemeral and are not archived, sold, or linked to any persistent user identity. ## 3. Extension Permissions The browser extension requires the following permissions: - `storage`: To remember your local preferences (username, server URL, room settings). - `tabs` & `scripting`: To detect and control video elements on the pages you choose to sync. - `` (host permission): Required to detect `