Sinkhole Logo

SINKHOLE

Technical Internals

Sinkhole is built on native Android security primitives and a custom manifest-based synchronization engine. This section dives into the architecture that powers your data bridge.

Storage Access Framework (SAF)

Unlike traditional apps that request broad "Manage External Storage" permissions, Sinkhole uses Android's modern Storage Access Framework. This ensures that the app only has access to the specific folder you explicitly grant permission to, maintaining a high level of system-wide privacy.

Two-Way Synchronization Engine

The core of Sinkhole is its .sync-manifest.json tracking system. This file acts as the source of truth for the state of your files on both local and cloud storage.

Manifest Schema

Our manifest is designed to be lightweight and portable, allowing for rapid state comparisons without the need for full file re-scanning.

{
  "files": {
    "my-document.md": {
      "id": "drive_file_id_001",
      "localMtime": 1711396800000,
      "remoteMtime": 1711396810000,
      "size": 2048,
      "hash": "e99a18c428cb38d5f260853678922e03"
    }
  }
}

Secure Authentication

Authentication is handled directly through **Google OAuth 2.0** via the react-native-google-signin library. This approach means your credentials never touch our application; instead, the app uses a temporary access token with the minimum "Drive" scope necessary to manage its dedicated folder.