| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: expose function checkpoints (from/to) in Nango logs (#5565) Runner is now returning from/to checkpoints which is exposed in the logs operation metadata to make it visible for customers for monitoring/debugging purpose <img width="1009" height="479" alt="Screenshot 2026-03-04 at 14 54 07" src="https://github.com/user-attachments/assets/f70f9468-ce26-4f67-9ae9-4bc2c41aa525" /> `from` is the checkpoint value at the beginning of the execution (aka: last saved checkpoint of the previous execution) `to` is the last saved checkpoints of this execution Note: in a followup PR, the checkpoints info will be added to the sync webhook <!-- Describe the problem and your solution --> <!-- Issue ticket number and link (if applicable) --> <!-- Testing instructions (skip if just adding/editing providers) --> <!-- Summary by @propel-code-bot --> --- It also propagates these checkpoint ranges through execution results into the jobs service, updating the jobs API contract and task payloads so handlers capture checkpoints on both success and error paths for end-to-end logging and metadata. <details> <summary><strong>Possible Issues</strong></summary> • If `getCheckpoint` is never called, `from` may remain `null` and logs may show an incomplete range; confirm that is acceptable for monitoring expectations. </details> --- *This summary was automatically generated by @propel-code-bot* | 6 个月前 | |
fix(runner): move redis requirements to persist (#6566) ## Summary Moves runner distributed coordination (abort flags, sync-conflict locks, SDK locks) off direct customer Redis and behind new persist HTTP endpoints. Persist is now the only service that talks to customer Redis for these concerns. - **Persist**: adds a coordination layer (`abort`, `sync-conflict`, `locks`) with authenticated routes under `/environment/:environmentId/runner/...`, plus integration tests. - **Runner / Lambda**: use `PersistClient` for abort polling, sync-conflict acquire/refresh/release, and `HttpLocks` for SDK locking; removes `@nangohq/kvstore` from runner packages. - **Jobs**: sets abort flags via persist instead of Redis directly. - **Deploy**: drops `NANGO_CUSTOMER_REDIS_URL` from runner/Lambda env; renames `RUNNER_CONFLICT_RESOLUTION_MODE` from `REDIS` → `DISTRIBUTED` (set automatically when K8s replicas > 1). Single-replica runners stay `IN_MEMORY` (local `MapLocks`, tRPC abort only). <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/6566?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> | 3 个月前 | |
fix(runner): move redis requirements to persist (#6566) ## Summary Moves runner distributed coordination (abort flags, sync-conflict locks, SDK locks) off direct customer Redis and behind new persist HTTP endpoints. Persist is now the only service that talks to customer Redis for these concerns. - **Persist**: adds a coordination layer (`abort`, `sync-conflict`, `locks`) with authenticated routes under `/environment/:environmentId/runner/...`, plus integration tests. - **Runner / Lambda**: use `PersistClient` for abort polling, sync-conflict acquire/refresh/release, and `HttpLocks` for SDK locking; removes `@nangohq/kvstore` from runner packages. - **Jobs**: sets abort flags via persist instead of Redis directly. - **Deploy**: drops `NANGO_CUSTOMER_REDIS_URL` from runner/Lambda env; renames `RUNNER_CONFLICT_RESOLUTION_MODE` from `REDIS` → `DISTRIBUTED` (set automatically when K8s replicas > 1). Single-replica runners stay `IN_MEMORY` (local `MapLocks`, tRPC abort only). <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/6566?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> | 3 个月前 | |
fix(server/node-sdk/runner-sdk): Fix types at API boundary to account for dates in credentials being serialized to strings (#6820) <!-- Describe the problem and your solution --> Right now internal types are used for external interfaces that return raw connection credentials, leading to a runtime mismatch where credentials.expires_at (or other date fields) are typed by the node/runner SDK as Date, but has been serialized into an ISO string. <!-- Issue ticket number and link (if applicable) --> [NAN-6353: fix(types): Credentials.expires_at typed as Date instead of String after serialization](https://linear.app/nango/issue/NAN-6353/fixtypes-credentialsexpires-at-typed-as-date-instead-of-string-after) <!-- Testing instructions (skip if just adding/editing providers) --> <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/6820?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> | 2 个月前 | |
feat: create/delete schedules if needed when connection is created/deleted (#7584) As with syncs, failing to create the schedule doesn't fail the connection creation. Connection will therefore be not running after schedule creation failure and would require unpausing to be "fixed" <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/7584?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> --------- Co-authored-by: Matej Vobornik <vobornik.matej@gmail.com> | 10 天前 | |
feat: create/delete schedules if needed when connection is created/deleted (#7584) As with syncs, failing to create the schedule doesn't fail the connection creation. Connection will therefore be not running after schedule creation failure and would require unpausing to be "fixed" <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/7584?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> --------- Co-authored-by: Matej Vobornik <vobornik.matej@gmail.com> | 10 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 10 天前 | ||
| 10 天前 |