SiteRescue

SiteRescue

Emergency Backup Tool

📄 Version: 1.2 📅 Effective date: February 19, 2026 🔄 Last updated: March 23, 2026

1 Data Controller

FieldValue
CompanyCuriosity Code
Contact email[email protected]
ℹ️ A physical address and VAT number are not mandatory in a privacy policy under Art. 13 GDPR. The controller name and a contact email are the only minimum requirements.

2 Introduction

SiteRescue is a mobile application available on Android (Google Play Store) and iOS (Apple App Store) that enables emergency backups of websites. The app supports the main CMS platforms (WordPress, Joomla, Drupal, PrestaShop, Magento) and allows users to download a ZIP archive of website files and databases directly to their device or personal cloud storage (Google Drive, Microsoft OneDrive, iCloud).

This Privacy Policy transparently describes:

  • what data is collected during use of the app
  • for what purpose
  • how it is protected
  • what your rights are

Data processing complies fully with Regulation (EU) 2016/679 (GDPR) and applicable national privacy legislation.

3 Data Collected & Purposes

3.1 Website Configuration Data

The user manually enters the following information to configure a server connection:

DataTypePurpose
Site nameIdentifierUser reference label
Host / server IPTechnicalFTP/SFTP connection
PortTechnicalFTP/SFTP connection
Protocol (FTP or SFTP)TechnicalConnection method selection
FTP/SFTP usernameTechnicalServer authentication
FTP/SFTP passwordSensitiveServer authentication — encrypted
SSH private key (PEM)SensitiveSFTP public-key authentication — encrypted
SSH key passphraseSensitivePrivate key decryption — encrypted
Site root pathTechnicalFile navigation on server
Backup typePreferenceBackup configuration
Save destinationPreferenceBackup configuration

Legal basis: user consent (Art. 6(1)(a) GDPR) and contractual necessity (Art. 6(1)(b) GDPR).

3.2 Database Credentials (Optional)

If the user chooses direct database access (direct SQL), they enter:

DataTypePurpose
Database hostTechnicalMySQL/MariaDB connection
Database nameTechnicalDatabase selection
Database usernameTechnicalDatabase authentication
Database passwordSensitiveDatabase authentication — encrypted
Database portTechnicalDatabase connection

3.3 Cloud Account (Google Drive / OneDrive / iCloud — Optional)

If the user selects Google Drive as the backup destination, the app requests Google OAuth2 authentication. The following data is processed:

DataSourcePurpose
Google email addressGoogle OAuth2Identification of connected account
OAuth2 access tokenGoogle OAuth2Authorization for Google Drive upload
OAuth2 refresh tokenGoogle OAuth2Maintaining authenticated session
🔒
The app requests only the scope https://www.googleapis.com/auth/drive.file, which permits creating and managing only files uploaded by the app itself. The app has no access to other files on the user's Google Drive.

If the user selects Microsoft OneDrive as the backup destination, the app requests Microsoft OAuth2 PKCE authentication. The following data is processed:

DataSourcePurpose
Microsoft email addressMicrosoft OAuth2Identification of connected account
OAuth2 access tokenMicrosoft OAuth2Authorization for OneDrive upload
OAuth2 refresh tokenMicrosoft OAuth2Maintaining authenticated session
🔒
The app requests only the scopes Files.ReadWrite, User.Read and offline_access. Files.ReadWrite permits creating and managing files on OneDrive. The app has no access to other files on the user's OneDrive.

If the user selects iCloud as the backup destination (iOS only), the upload is handled entirely by the native iOS system APIs. SiteRescue does not handle or store any Apple ID credentials or iCloud tokens — authentication is managed exclusively by the iOS operating system.

3.4 Backup Files

FileLocationTreatment
Backup ZIP archiveDevice, Google Drive, OneDrive or iCloudSaved in user-chosen destination
Temporary backup filesUser's web serverAutomatically deleted after backup
Temporary PHP script (auto method only)User's web serverSelf-deleted immediately after execution

Backup files contain the user's own website data and are under the user's exclusive control. SiteRescue never accesses backup file content nor transmits it to its own servers.

3.5 Technical App Data (Local Logs)

The app records local log messages for debugging purposes:

  • Operation status messages (e.g. "Connection established", "Download complete")
  • Error codes in case of problems
  • Operation timestamps
ℹ️ No logs are transmitted to external servers. Logs exist only in temporary app memory during the session.

4 Data NOT Collected

CategoryDetail
Analytics / usage statisticsNo analytics SDK (Firebase Analytics, Mixpanel, etc.)
Telemetry / crash reportsNo Crashlytics, Sentry or similar
GPS locationApp does not access device location
ContactsApp does not access device contacts
Camera / microphoneApp does not access camera or microphone
Personalised advertisingNo advertising network integrated
Advertising identifiers (IDFA/GAID)Not used
Biometric data transmittedBiometric auth (optional) runs entirely on-device via native iOS/Android APIs — biometric data never leaves the device
Website file contentBackup files are downloaded directly from server to device, Google Drive or iCloud — never through SiteRescue servers

5 How Data Is Processed

5.1 Privacy-First Architecture

SiteRescue is designed with a "zero server" architecture: all data stays on the user's device or travels directly between the user's device and their own web server / personal cloud storage.

User's Device │ ├──── FTP/SFTP ──────► User's web server (direct access) ├──── Google API ────► User's Google Drive (direct access) ├──── Microsoft API ──► User's OneDrive (direct access) │ └──── iOS APIs ────────► User's iCloud (direct access, iOS only)

There are no intermediary SiteRescue servers. Curiosity Code never has access to configuration data, credentials, or backup files of users.

ℹ️
Exception — Subscription Management: Purchase data (anonymous device identifier and purchase history from Google Play) is transmitted to RevenueCat for subscription validation and management. No website data, FTP/SFTP credentials or backup files are involved in this flow.

5.2 Connection Data Flow

  1. User enters server credentials in the app
  2. Credentials are encrypted and saved locally on the device
  3. During backup, the app connects directly to the user's server
  4. Files are downloaded directly from server to device
  5. If selected, backup is uploaded directly to the user's Google Drive, OneDrive or iCloud (iOS only)

6 Where Data Is Stored

6.1 Local Device Storage

Data typeStorage methodProtection
FTP/SFTP passwordiOS Keychain / Android EncryptedSharedPreferencesAES-256, hardware-protected
SSH private key (PEM)iOS Keychain / Android EncryptedSharedPreferencesAES-256, hardware-protected
Database passwordiOS Keychain / Android EncryptedSharedPreferencesAES-256, hardware-protected
Google OAuth2 tokensiOS Keychain / Android EncryptedSharedPreferencesAES-256, hardware-protected
OneDrive OAuth2 tokensiOS Keychain / Android EncryptedSharedPreferencesAES-256, hardware-protected
Site configurationsSecure app storageAccessible only by the app
Backup ZIP filesDevice Downloads folder, Google Drive, OneDrive or iCloudUser-managed

6.2 Cloud Storage (Google Drive / OneDrive / iCloud — only if chosen by user)

Google Drive:

  • ZIP file is uploaded to the "SiteRescue" folder in the user's Google Drive
  • Data resides in Google data centres (subject to Google's Privacy Policy)
  • SiteRescue does not hold a copy — access is exclusively the user's

Microsoft OneDrive:

  • ZIP file is uploaded to the "SiteRescue" folder in the user's OneDrive
  • Data resides in Microsoft data centres (subject to Microsoft's Privacy Policy)
  • SiteRescue does not hold a copy — access is exclusively the user's

iCloud (iOS only):

  • ZIP file is saved to iCloud Drive via native iOS system APIs
  • Data resides in Apple data centres (subject to Apple's Privacy Policy)
  • SiteRescue does not handle Apple ID credentials — iOS manages authentication entirely

6.3 User's Web Server (temporary)

During backup, the app temporarily creates on the user's server:

  • A temporary PHP script (only when using the automatic DB credential detection method)
  • Intermediate ZIP files during backup creation
🗑️ All these files are deleted automatically at the end of the backup, whether it succeeds or fails. The prefix siterescue_ identifies temporary files for complete cleanup.

7 Data Security

7.1 Credential Encryption

SiteRescue uses a three-layer protection system for sensitive credentials:

Layer 1 — Flutter Secure Storage

iOS: Credentials saved in iOS Keychain, protected by Secure Enclave when available.
Android: Uses EncryptedSharedPreferences with AES-256-GCM encryption and keys protected by the Android Keystore System (with TEE support on compatible devices).

Layer 2 — Secure Repository

Dedicated interface with automatic error handling. Secure logging that never exposes credential content.

Layer 3 — Physical Separation

Passwords are never stored alongside configuration data. Unique identification keys for each credential (password_<siteId>, privatekey_<siteId>).

7.2 Network Communications

  • SFTP: Communication via SSH with channel encryption
  • FTP: TLS support (FTPS) when available on the server
  • Google Drive: Communication via HTTPS/TLS with Google APIs
  • Microsoft OneDrive: Communication via HTTPS/TLS with Microsoft Graph APIs
  • iCloud: Upload handled via native iOS APIs over HTTPS/TLS — Apple manages the secure transport

7.3 Biometric Authentication (Optional)

The app supports Face ID, Touch ID (iOS) and fingerprint (Android) to protect access to saved credentials. Biometric authentication runs entirely on-device via native OS APIs. Biometric data is never transmitted externally or stored by the app.

7.4 Temporary Auxiliary File (Automatic DB Method)

When the user selects the automatic database backup method, the app temporarily uploads a helper file to the user's server. This file is protected by security measures to prevent unauthorised access and is automatically and permanently deleted from the server immediately after use, leaving no trace.

8 Third-Party Services

8.1 Google Sign-In / Google Drive (Android & iOS)

ServicePrivacy PolicyPurpose in app
Google Sign-Inpolicies.google.com/privacyOAuth2 authentication
Google Drive APIpolicies.google.com/privacyBackup file upload

The user can revoke SiteRescue's access to their Google account at any time from: myaccount.google.com/permissions

8.2 Apple iCloud (iOS only)

ServicePrivacy PolicyPurpose in app
iCloud Drive (iOS APIs)apple.com/legal/privacyBackup file upload (iOS only)

iCloud upload is handled entirely by native iOS system APIs. SiteRescue does not access or store Apple ID credentials or iCloud tokens.

8.3 Microsoft OneDrive (Android & iOS)

ServicePrivacy PolicyPurpose in app
Microsoft Graph APIprivacy.microsoft.comBackup file upload
Microsoft Identity (OAuth2)privacy.microsoft.comOAuth2 PKCE authentication

The user can revoke SiteRescue's access to their Microsoft account at any time from: account.microsoft.com/permissions

8.4 RevenueCat (Subscription Management)

ServicePrivacy PolicyPurpose in app
RevenueCat SDKrevenuecat.com/privacyIn-app subscription validation and management

RevenueCat SDK receives an anonymous device identifier and purchase history from Google Play to verify the user's active plan. RevenueCat never receives FTP/SFTP credentials, site configuration data or backup files.

8.5 No Other Third-Party Services

SiteRescue does not integrate any advertising SDKs, analytics platforms, crash reporting systems, behavioural tracking networks, or social logins other than Google (for Google Drive), Microsoft (for OneDrive) and RevenueCat (for subscription management).

9 Sharing with Third Parties

SiteRescue does not share, sell, rent or transfer personal data to third parties, with the following exceptions necessary for the service to function:

ScenarioData involvedReason
Connection to user's web serverFTP/SFTP credentialsRequired to perform the backup
Upload to Google DriveBackup ZIP + OAuth2 tokenOnly if user chose Google Drive as destination
Upload to Microsoft OneDriveBackup ZIP + OAuth2 tokenOnly if user chose OneDrive as destination
Upload to iCloud (iOS only)Backup ZIP fileOnly if user chose iCloud as destination; handled by iOS system APIs
RevenueCatAnonymous device ID + purchase history from Google PlayOnly for subscription status validation
Legal obligationAny data requestedOnly in case of legal order from judicial authority

Under no circumstances is data shared for marketing, profiling or advertising purposes.

10 Data Retention & Deletion

Data typeRetention
Site configurations & credentialsUntil site deletion from app or app uninstall
Google OAuth2 tokensUntil logout from Google account in app
OneDrive OAuth2 tokensUntil logout from OneDrive account in app
Backup files (local)Until manually deleted by user
Backup files (Google Drive)Until manually deleted by user in Google Drive
Backup files (OneDrive)Until manually deleted by user in OneDrive
Backup files (iCloud)Until manually deleted by user in iCloud Drive
Temporary files on serverAutomatically deleted at end of backup

Site Deletion

When the user deletes a site configuration, the following are automatically removed: site JSON configuration, associated FTP/SFTP password (from encrypted storage), associated database password (from encrypted storage).

App Uninstall

Uninstalling the app automatically deletes all configuration data, encrypted credentials and saved tokens on the device. Backup files already downloaded to the Downloads folder, Google Drive or iCloud are not automatically deleted — the user is responsible for managing these files.

11 User Rights (GDPR)

Under Regulation (EU) 2016/679 (GDPR), you have the following rights:

RightDescriptionHow to exercise
Access (Art. 15)Obtain confirmation of processing and a copy of dataAll configurations are visible directly in the app
Rectification (Art. 16)Correct inaccurate dataBy modifying configurations in the app
Erasure (Art. 17)"Right to be forgotten"By deleting sites or uninstalling the app
Restriction (Art. 18)Restrict processing in certain circumstancesContact the controller
Portability (Art. 20)Receive data in a readable formatContact the controller
Objection (Art. 21)Object to processingNot applicable (no marketing processing)
Consent withdrawalWithdraw consent at any timeUninstall app or delete configurations
Complaint (EU)Lodge a complaint with a supervisory authorityContact your national data protection authority
ℹ️ Since all data is stored locally on the user's device, the user has full direct control over their data. There is no data on the controller's servers to request.

To exercise your rights or for any privacy-related question, contact: [email protected]

🇺🇸
US Residents: You may also file a privacy complaint with the Federal Trade Commission (FTC) at ftc.gov/privacy. For California-specific rights under CCPA/CPRA, see Section 15.

12 Children

SiteRescue is a professional application intended for web developers, webmasters, system administrators and IT professionals. The app is not intended for users under 13 years of age and does not knowingly collect personal data from children under 13.

⚠️
Note for users aged 13–15 (EU/EEA): Under Article 8 of the GDPR, users under 16 years of age in most EU/EEA countries (or under 13 where a lower national limit applies) must obtain parental or guardian consent before using the app and providing personal data. The exact minimum age varies by EU member state.
🇺🇸
COPPA (US) — Children's Online Privacy Protection Act: In compliance with US federal law, SiteRescue does not knowingly collect personal information from children under 13 years of age. If we become aware that we have inadvertently collected such data, it will be deleted immediately. Parents or guardians may contact [email protected] to request review or deletion of their child's information.

If Curiosity Code becomes aware of having received personal data from a child under 13 without parental consent, such data will be immediately deleted.

13 Changes to This Policy

Curiosity Code reserves the right to update this Privacy Policy to reflect changes to app features, new legal requirements, or user feedback.

In case of material changes, users will be informed via:

  • In-app notification on next launch
  • Update of the "Last updated" date at the top of this document
  • Publication of the new version on the app's official privacy policy web page

Continued use of the app after publication of changes constitutes acceptance of the updated Privacy Policy.

14 Contact

For any question, request or report related to privacy:

✉️
Curiosity Code
Email: [email protected]

15 Additional Rights for US Residents (CCPA/CPRA)

If you are a resident of California or another US state with applicable privacy legislation, you have additional rights under the California Consumer Privacy Act (CCPA) and California Privacy Rights Act (CPRA):

RightDescriptionHow to exercise
Right to KnowKnow what personal information is collected, used, shared or soldContact [email protected]
Right to DeleteRequest deletion of your personal informationUninstall the app or delete site configurations
Right to Opt-Out of SaleOpt out of the sale of personal information We do not sell personal information
Right to Non-DiscriminationNot be discriminated against for exercising your rightsWe do not discriminate
Right to CorrectCorrect inaccurate personal informationModify configurations directly in the app
Right to LimitLimit use of sensitive personal informationContact [email protected]
ℹ️
SiteRescue does not sell, share for cross-context behavioral advertising, or rent personal information to any third party. Given the app's "zero server" architecture, Curiosity Code never accesses user data — there are no Curiosity Code servers that process personal information. As a result, the most onerous CCPA obligations do not apply.

To exercise your CCPA rights: [email protected] — Response time: within 45 days of receipt.

Federal Trade Commission (FTC): US residents may file a privacy complaint with the FTC at: ftc.gov/privacy.