Description
This PR adds a connector for Coda, using the Notion connector as a general guide.
General Info
Connector is of type Load and Poll.
- Coda docs are essentially folders, and treated as such by becoming part of its pages metadata.
- Page are parsed into Documents
- Tables are parsed into Documents
- Formulas are parsed into Documents
- Controls are parsed into Documents
Page, tables, formulas and controls are related to each other through their metadata.
How Has This Been Tested?
- Setup Coda account with several templates.
- run
pytest backend/tests/daily/connectors/coda/test_coda_connector.py
/claim #2807
Summary by cubic
Add a Coda connector to ingest docs, pages, and tables with HTML export, batching, polling, and hierarchy-aware paths. Surfaces Coda in the UI with icon and credential support, and adds optional doc_ids/page_ids filtering to limit indexing (Linear #2807).
-
New Features
- Backend: fetch docs/pages/tables; export to HTML with backoff; hierarchy-aware paths; Slim connector.
- Polling/Validation: full load and time-based polling; optional doc_ids/page_ids filter; /whoami validation; registered DocumentSource.CODA.
- Client: create_doc and create_page methods.
- Tests/Web: e2e for load_from_state, poll_source, and slim retrieval; UI adds Coda source, icon, and coda_api_token credential.
-
Migration
- Add a Coda API Token under Credentials > Coda.
- No config fields required; create a Coda source to start indexing.
Written for commit d7e0e94c0ba5f5f1bd10337dccf71447f424fe70. Summary will update automatically on new commits.