Cancel a running sync job
Signals the running job's abort controller. The job transitions to `cancelled` phase.
Signals the running job's abort controller. The job transitions to `cancelled` phase.
Returns `isSyncing`, the last completed job, and the currently active job (if any) for the given config.
Returns the 20 most recent sync events for the given config, newest first.
Creates a new job using the same `configId` as the original. Returns 409 if another job is already running.
Starts a background sync job against the configured external system. Returns 202 with a `jobId` immediately — poll `/api/sync/external/{jobId}` or `/api/sync/status` for progress. Returns 409 if a job is already in progress for the same config.