Files
CrimsonandGitHub b4a53b9095 feat: Perform health checks on connectors and pause schedules that produce constant errors (#692)
* Perform db migration on workflow instances to add fields related to error healthcheck

* Create connector health check workflow

* Only pause a schedule if there is a reason

* Only return errors for schedules which returned errors at least 5 times

* Create healtcheck schedule when connectors are installed

* Add new schedule fields to openapi spec

* Make connector health check interval configurable

* Fix concurrent indexes on schedules table

* Unpause schedules automatically if connector config is updated

* Ensure we only update the schedule interval for schedules related to connector capabilities

* Ensure we never pause schedules that have fewer than 5 faulty executions

* Add ConnectorHealthCheck to e2e expected schedules

* Only pause schedules if the latest error ocurred after the connector config was last updated

* Add connector updated at to api spec

* Allow healthcheck threshold to be configurable

* Reduce logs in temporal workflow tests

* Use utc in update schedule polling period tests

* Add unit tests for storage pause and unpause

* Add unit tests for connector health check workflow and underlying activity

* populate connectors.updated_at value for existing connectors

* Use both connectorID and schedule id in pause and unpause functions to make the most of the primary key

* Fix alignment of workflow instances file

* Split migration into multiple files

* Only consider terminated instances

* Rename healthcheck check function for clarity and add additional index

* Rename flag to connector-health-check-interval

* Reorganize migration files

* Run just generate

* ensure that when the instance.CreatedAt is equal to connector.UpdatedAt it also gets excluded

* Perform stricter schedule ID checking

* Remove IF NOT EXISTS keyword from migrations
2026-04-09 12:39:22 +00:00

1.3 KiB
Raw Permalink Blame History

V3Schedule

Fields

Field Type Required Description
ID string ✔️ N/A
ConnectorID string ✔️ N/A
CreatedAt time.Time ✔️ N/A
PausedAt *time.Time ➖ N/A
PausedReason *string ➖ N/A