This labs repo was forked from dimagi/commcare-connect. Several production apps were removed during the March 2026 simplification. Here's where to find the original code if you need it for reference.
| App | Purpose | Upstream Location |
|---|---|---|
data_export |
CSV/JSON export API for opportunity data. Provides /export/labs_record/ endpoint that labs consumes via HTTP. |
commcare_connect/data_export/ |
form_receiver |
Receives form submissions from CommCare HQ, creates UserVisit/CompletedWork records. | commcare_connect/form_receiver/ |
reports |
Invoice and delivery reports with django-tables2 and django-filters. | commcare_connect/reports/ |
microplanning |
Geographic work area mapping with PostGIS and vector tiles. | commcare_connect/microplanning/ |
flags |
Waffle feature flags for production rollouts. | commcare_connect/flags/ |
connect_id_client |
Client library for ConnectID push notifications. | commcare_connect/connect_id_client/ |
commcarehq |
HQServer model and CommCare HQ API integration. | commcare_connect/commcarehq/ |
commcarehq_provider |
django-allauth OAuth2 provider for CommCare HQ login. | commcare_connect/commcarehq_provider/ |
deid |
De-identification utilities. | commcare_connect/deid/ |
| App | What Was Removed | What Remains |
|---|---|---|
opportunity |
All views, URLs, admin, forms, tables, management commands, tests (~22K LOC) | models.py (all model definitions), apps.py, __init__.py, migrations/ |
Labs does not run data_export locally. Instead:
LabsRecordAPIClient(incommcare_connect/labs/integrations/connect/api_client.py) makes HTTP calls to the production CommCare Connect server athttps://commcare-connect.org/export/labs_record/.- The production server runs the upstream
data_exportapp which queries theLabsRecordmodel. - Labs receives JSON responses and wraps them in
LocalLabsRecordproxy objects.
This repo diverged from upstream around October 2025. The labs-main branch contains all labs-specific development.