Skip to content
Eric Slutz edited this page Jun 24, 2026 · 11 revisions

PumpSync

PumpSync is an iOS app and backend service that syncs Tandem Source insulin and carbohydrate data into Apple Health at the user's request. The project goal is a privacy-minimizing data portability tool with two backend access paths: PumpSync Hosted through an App Store subscription, or a user-managed self-hosted backend.

The iOS app lives in eslutz/PumpSync. The backend lives in eslutz/PumpSync-Backend. This wiki is the shared project documentation hub for both repositories.

Project Principles

  • Keep the iOS repository frontend-only: app code, App Store/TestFlight metadata, screenshots, and app legal docs.
  • Keep backend API code, Docker/Compose, Azure Container Apps infrastructure, backend workflows, data deletion tooling, and hosted/demo operations in the backend repository.
  • Treat Tandem credentials and pump data as sensitive health-adjacent data: store credentials only on device and avoid durable backend storage of Tandem credentials, Tandem tokens, raw Tandem events, or normalized health samples.
  • Use Apple frameworks on iOS: SwiftUI, HealthKit, StoreKit, Keychain, BackgroundTasks, MetricKit, OSLog, and App Intents.
  • Use the same backend API, contracts, services, and normalization code for hosted service, real self-hosting, and synthetic demo/App Review mode.
  • Keep hosted, demo, and self-host app-entered backend URLs aligned to the /api base URL contract. The app appends /v1/...; the backend exposes /api/v1/....
  • Do not add hosted-subscription bypasses, production allowlists, or backend shortcuts unless the maintainer explicitly asks for them.

Current Status

PumpSync supports:

  • Tandem credential capture and validation from the iOS app.
  • Hosted service access through the PumpSync Hosted auto-renewable subscription.
  • Self-hosted access through a user-entered backend base URL.
  • Synthetic demo/App Review mode through the backend's SyntheticDemo data source.
  • Syncing Tandem insulin and carbohydrate samples into Apple Health after HealthKit permission is granted.
  • Local duplicate prevention through a rolling external-ID ledger.
  • Background processing configuration for daily sync work.
  • Privacy, terms, data deletion, accessibility, and App Store submission evidence in the iOS repository.
  • ASP.NET Core backend deployment as a container image for Azure Container Apps or any Docker host.
  • Hosted production/nonprod images in private GitHub Container Registry and public self-host/demo images in GitHub Container Registry.
  • Backend data deletion tooling for hosted Azure Table Storage and self-host SQLite.

Wiki Pages

Public Website

Use the PumpSync website for user-facing support and policy pages:

Source Documents

The source repositories remain authoritative for implementation details:

Clone this wiki locally