NestJS service syncing AppFolio + Podio data into the hub schema.
Open Swagger UI Health check List jobs (JSON)
GET /health — liveness probeGET /docs — Swagger UI (browse & try endpoints)GET /sync/jobs — list of job namesPOST /sync/run_all — run all 11 jobs in order (~10–15 min)POST /sync/{jobName} — run a single job:
POST /sync/sync_propertyPOST /sync/sync_unitPOST /sync/sync_unit_podioPOST /sync/sync_match_addressesPOST /sync/sync_partyPOST /sync/sync_applicationPOST /sync/sync_occupancyPOST /sync/sync_case_podioPOST /sync/sync_unit_intakePOST /sync/sync_compliancePOST /sync/sync_unit_utilitiesPOST /sync/sync_buildertrend
All /sync/* routes require a bearer token when
SYNC_SECRET is set:
Authorization: Bearer <SYNC_SECRET>
If SYNC_SECRET is blank in .env, auth is disabled (local dev only).
curl -X POST http://localhost:8080/sync/sync_property \
-H "Authorization: Bearer <your-token>"