Apple Health data pipeline · January 2026
HealthAgent
Built a pipeline that normalizes daily Apple Health exports into Postgres and produces personal trend views.
Case snapshot
- Problem
- Compare nutrition, workouts, heart rate, activity, and recovery signals that were separated across several apps.
- My role
- Solo engineer across ingestion, normalization, API, dashboard, authentication, and cloud deployment.
- What I changed
- Preserved raw exports before converting them into canonical tables.
- Scoped ingestion and derived metrics to each authenticated user.
- Scheduled daily processing while keeping generated insights optional.
- Result
- A working end-to-end ingestion and trend pipeline; generated insight backends remain optional and are not medical advice.
Context, decisions, and evidence
The useful signals lived in separate applications
Nutrition came from MacroFactor and activity data came from Apple Watch. Apple Health was the common source, but it did not provide the comparative view I wanted.
Raw data and user boundaries had to survive processing
Daily exports are retained before normalization, per-user ingest tokens protect writes, and derived data remains scoped to the authenticated account.
The pipeline supports local and cloud operation
A Fastify and Prisma API writes canonical Postgres tables. Cloud Run, GCS, Secret Manager, and Cloud Scheduler support daily processing, while local storage and sample data keep development practical.
The dashboard proves the core path
The repository includes a real Status view showing trends, projections, and processed ingest files. Optional model-backed insights are deliberately separate from the working ingestion and metrics path.
Health interpretation needs restraint
The project demonstrates data engineering and product thinking. It should not imply clinical validation, diagnosis, or that generated recommendations are complete health advice.
Technical depth
Original project pages, reports, and technical writing remain available as source material.