Skip to content
Eric Slutz edited this page Jul 29, 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 source of truth is PumpSync.backend, currently published as 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:

  • PumpSync/README.md - iOS repository scope, backend routing, build/test commands, and StoreKit routing.
  • PumpSync/AGENTS.md - iOS maintainer and agent workflow policy.
  • PumpSync/project.yml - XcodeGen source of truth for schemes, configurations, API base URLs, entitlements, and Info.plist values.
  • PumpSync/docs/app-store/ - App Store evidence, accessibility answers, and screenshot support.
  • PumpSync/docs/legal/ - privacy policy, terms, data deletion request, and App Store privacy notes.
  • PumpSync.backend README - backend repository scope, modes, routes, and validation commands.
  • PumpSync.backend docs - Docker self-hosting, Azure Container Apps, synthetic demo, configuration, security/privacy, and data deletion runbooks.

Clone this wiki locally