Confidential

Pocket Piggy

Information Security Policy

Version 1.0  •  Effective: February 2026  •  Owner: Joseph Jacoby

1. Purpose & Scope

This document defines the information security practices for Pocket Piggy, a personal finance mobile application. It covers all systems, data, and processes involved in the development, deployment, and operation of the application and its supporting infrastructure.

Pocket Piggy is a privacy-first application. Its core security principle is: financial data never leaves the user's device. All transaction data, budget information, and spending history is stored locally in AES-256 encrypted storage. Server-side infrastructure handles authentication, subscription management, and optional AI-powered features only.

2. Application Architecture

LayerTechnologySecurity Measures
Mobile Client Flutter (Dart) AES-256 encrypted local storage (Hive), biometric lock, certificate pinning
Authentication Firebase Auth Email verification, Google OAuth 2.0, Apple Sign-In, session management
Backend Functions Firebase Cloud Functions (Node.js 20) HTTPS-only, authenticated endpoints, environment variable secrets
Database Cloud Firestore Security rules, encrypted at rest (Google-managed), non-financial data only
Bank Sync Plaid API v26 Server-side token exchange only, access tokens never stored on device
Payments RevenueCat No direct payment processing; delegated to App Store / Play Store
AI Services OpenAI GPT-4o (via Cloud Functions) Server-side only, no PII sent, vendor/category data only
Hosting Google Cloud Platform (Firebase) SOC 2, ISO 27001 certified infrastructure

3. Data Classification

3.1 Data Categories

ClassificationData TypesStorage LocationEncryption
HIGH Financial Transactions, budgets, account balances, spending history Device only (Hive) AES-256-CBC
HIGH Credentials Plaid access tokens, API keys Server only (Firebase env) Google KMS
Medium — Profile Name, email, preferences, gamification progress Cloud Firestore At rest (Google-managed)
Low — Analytics Feature usage events (no PII) Firebase Analytics At rest (Google-managed)

3.2 Data Flow — Plaid Integration

  1. User initiates bank linking via Plaid Link SDK (native, on-device)
  2. Plaid returns a public_token to the device
  3. Device sends public_token to Firebase Cloud Function over HTTPS
  4. Cloud Function exchanges it for an access_token via Plaid API (server-to-server)
  5. access_token stored server-side in Firestore (encrypted at rest) — never sent to device
  6. Transaction data fetched server-side, returned to device, stored in encrypted Hive box
  7. On device deletion or account deletion, local encrypted data is wiped

4. Encryption Standards

ContextMethodKey Management
Local financial data AES-256-CBC (Hive encrypted boxes) Per-user key generated at first launch, stored in platform secure storage (Android Keystore / iOS Keychain)
Data in transit TLS 1.2+ (HTTPS) Firebase-managed certificates
Firestore at rest AES-256 Google Cloud KMS (automatic)
Cloud Function secrets Environment variables Firebase project-level access control

5. Authentication & Access Control

5.1 User Authentication

5.2 Infrastructure Access

SystemAccess ControlWho Has Access
Firebase ConsoleGoogle account with 2FAOwner only
Plaid DashboardAccount with 2FAOwner only
RevenueCat DashboardAccount with 2FAOwner only
GitHub RepositoryPrivate repo, SSH keysOwner only
Google Play ConsoleGoogle account with 2FAOwner only
Apple Developer AccountApple ID with 2FAOwner only

5.3 Firestore Security Rules

6. Third-Party Integrations

ProviderPurposeData SharedCompliance
Plaid Bank account linking & transaction fetch Access tokens (server-side only) SOC 2 Type II, ISO 27001
Firebase / GCP Auth, database, cloud functions, analytics User profiles, non-financial data SOC 2, ISO 27001, FedRAMP
RevenueCat Subscription management Anonymous user ID, purchase receipts SOC 2 Type II
OpenAI AI categorization & tips Vendor names only (no PII, no amounts) SOC 2 Type II
exchangerate.host Currency exchange rates None (public API, no auth) N/A

7. Vulnerability Management

8. Incident Response

8.1 Detection

8.2 Response Procedure

SeverityExampleResponse TimeAction
Critical Plaid token compromise, data breach Immediate Revoke tokens, notify Plaid, notify affected users, rotate secrets
High Firebase rules misconfiguration, API key exposure < 4 hours Fix configuration, rotate keys, audit access logs
Medium Dependency vulnerability (CVE) < 48 hours Update dependency, test, deploy patch
Low Non-critical bug, UI issue Next release cycle Fix and deploy in next update

9. Data Retention & Deletion

10. Privacy Practices

11. Physical Security

Pocket Piggy has no on-premise infrastructure. All server-side components run on Google Cloud Platform (Firebase), which maintains physical security controls including:

Development is conducted on encrypted devices with full-disk encryption and biometric/password lock.

12. Policy Review

This policy is reviewed and updated at minimum annually, or whenever significant changes are made to the application architecture, third-party integrations, or data handling practices.