-
Notifications
You must be signed in to change notification settings - Fork 0
Home
PumpSync is an iOS app and backend service that syncs Tandem Source insulin and carbohydrate data into Apple Health when the user starts a sync and, after initial setup, automatically checks for any pump data not yet synced when the app opens and during iOS background refresh opportunities. PumpSync aims to keep Apple Health less than four hours behind, but iOS may delay background work. The project goal is a privacy-minimizing data portability tool with two backend access paths: PumpSync 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.
- 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
/apibase 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.
PumpSync supports:
- Tandem credential capture and validation from the iOS app.
- Hosted service access through the PumpSync auto-renewable subscription.
- Self-hosted access through a user-entered backend base URL.
- Synthetic demo/App Review mode through the backend's
SyntheticDemodata 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 refresh configuration that checks for any pump data not yet synced and aims to keep Apple Health less than four hours behind when iOS grants background time.
- 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.
- Getting Started
- Features and Modes
- Architecture
- Self-Hosting
- Demo Mode
- Backend Operations
- Versioning and Releases
- Testing and Verification
- App Store and Privacy
- Privacy Policy
- Contributing
Use the PumpSync website for user-facing support and policy pages:
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/- pointers to the website's Privacy Policy, Terms of Use, and Account/Data Deletion pages, plus repo-local 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.
PumpSync source is available under the PolyForm Noncommercial License 1.0.0. The app and backend repositories carry the identical license: noncommercial use including personal self-hosting is permitted, and commercial use is reserved by the copyright holder.
PumpSync documentation: iOS repository · Backend repository · Issues