mirror of
https://github.com/hatchet-dev/hatchet.git
synced 2026-04-26 04:08:38 -05:00
ea57344e7dd1050c7250652c84f9d178cd218bd9
18 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
82c9d2d17c |
Fix: Deadlocking on DAG concurrency (#2111)
* debug: try fixing lock order * fix: single `FOR UPDATE` * fix: raw sql * fix: explicit case handling * fix: cancel in progress * fix: query bugs * fix: one more * feat: cancel newest * feat: test for cancel in progress |
||
|
|
c8d5144ed4 |
[Python] Feat: Dependency Injection, Improved error handling (#2067)
* feat: first pass at dependency injection * feat: add DI example + tests * feat: finish up tests * feat: docs * chore: gen * chore: lint * chore: changelog + ver * fix: split up paragraphs * refactor: improve impl * chore: gen * feat: inject input + ctx into deps * chore: gen * [Python] Feat: More use of `logger.exception` (#2069) * feat: add more instances of `logger.exception` * chore: ver * chore: changelog * fix: one more error log * chore: gen * chore: gen * chore: lint * fix: improve shutdown * chore: changelog * unwind: exit handler * feat: task run error * feat: improve error serde with more context * chore: changelog * fix: changelog * chore: gen * fix: rm celpy + lark dep, casing issues * chore: changelog * fix: respect log levels over the API * fix: changelog * refactor: rename log forwarder * fix: circular import |
||
|
|
d6f8be2c0f |
Feat: OLAP Table for CEL Eval Failures (#2012)
* feat: add table, wire up partitioning * feat: wire failures into the OLAP db from rabbit * feat: bubble failures up to controller * fix: naming * fix: hack around enum type * fix: typo Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: typos * fix: migration name * feat: log debug failure * feat: pub message from debug endpoint to log failure * fix: error handling * fix: use ingestor * fix: olap suffix * fix: pass source through * fix: dont log ingest failure * fix: rm debug as enum opt * chore: gen * Feat: Webhooks (#1978) * feat: migration + go gen * feat: non unique source name * feat: api types * fix: rm cruft * feat: initial api for webhooks * feat: handle encryption of incoming keys * fix: nil pointer errors * fix: import * feat: add endpoint for incoming webhooks * fix: naming * feat: start wiring up basic auth * feat: wire up cel event parsing * feat: implement authentication * fix: hack for plain text content * feat: add source to enum * feat: add source name enum * feat: db source name enum fix * fix: use source name enums * feat: nest sources * feat: first pass at stripe * fix: clean up source name passing * fix: use unique name for webhook * feat: populator test * fix: null values * fix: ordering * fix: rm unnecessary index * fix: validation * feat: validation on create * fix: lint * fix: naming * feat: wire triggering webhook name through to events table * feat: cleanup + python gen + e2e test for basic auth * feat: query to insert webhook validation errors * refactor: auth handler * fix: naming * refactor: validation errors, part II * feat: wire up writes through olap * fix: linting, fallthrough case * fix: validation * feat: tests for failure cases for basic auth * feat: expand tests * fix: correctly return 404 out of task getter * chore: generated stuff * fix: rm cruft * fix: longer sleep * debug: print name + events to logs * feat: limit to N * feat: add limit env var * debug: ci test * fix: apply namespaces to keys * fix: namespacing, part ii * fix: sdk config * fix: handle prefixing * feat: handle partitioning logic * chore: gen * feat: add webhook limit * feat: wire up limits * fix: gen * fix: reverse order of generic fallthrough * fix: comment for potential unexpected behavior * fix: add check constraints, improve error handling * chore: gen * chore: gen * fix: improve naming * feat: scaffold webhooks page * feat: sidebar * feat: first pass at page * feat: improve feedback on UI * feat: initial work on create modal * feat: change default to basic * fix: openapi spec discriminated union * fix: go side * feat: start wiring up placeholders for stripe and github * feat: pre-populated fields for Stripe + Github * feat: add name section * feat: copy improvements, show URL * feat: UI cleanup * fix: check if tenant populator errors * feat: add comments * chore: gen again * fix: default name * fix: styling * fix: improve stripe header processing * feat: docs, part 1 * fix: lint * fix: migration order * feat: implement rate limit per-webhook * feat: comment * feat: clean up docs * chore: gen * fix: migration versions * fix: olap naming * fix: partitions * chore: gen * feat: store webhook cel eval failures properly * fix: pk order * fix: auth tweaks, move fetches out of populator * fix: pgtype.Text instead of string pointer * chore: gen --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
cca0999eea |
[Python]: Fixing logging bugs, fixing duped sleep key bug (#2040)
* feat: add flag to disable log capture * fix: sleep bug with duped key * fix: allow formatters to be passed through * feat: support filters too * fix: cruft * chore: gen * feat: changelog * fix: lint * [Python] Fix: Don't retry gRPC requests on 4xx (#2024) * fix: dont retry on 4xx * chore: ver * fix: sleep conditions with index * fix: bug in sleep conditions * chore: gen |
||
|
|
f1f276f6dc |
Feat: Python task unit tests (#1990)
* feat: add mock run methods for tasks * feat: docs * feat: first pass at unit tests * cleanup: split out tests * feat: pass lifespan through * fix: rm comment * drive by: retry on 404 to help with races * chore: changelog * chore: ver * feat: improve logging everywhere * chore: changelog * fix: rm print cruft * feat: print statement linter * feat: helper for getting result of a standalone * feat: docs for mock run * feat: add task run getter * feat: propagate additional metadata properly * chore: gen * fix: date * chore: gen * feat: return exceptions * chore: gen * chore: changelog * feat: tests + gen again * fix: rm print cruft |
||
|
|
7679732b15 |
Fix: Skipping conditions with multiple parents (#1948)
* fix: skipping bug * fix: move `waits` -> `conditions` * fix: refs * chore: ver * feat: add skipped task to test * feat: start implementing or groups in wait for * feat: test of or groups on durable context * fix: lint * chore: gen * fix: lint * fix: branching hell |
||
|
|
a73e34cd92 |
Feat: Batched replays (#1860)
* feat: batched replays * fix: add some comments * feat: e2e test for bulk replays * chore: gen * fix: improving tests a bit * fix: copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore: gen * fix: tag --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
08bd27a869 |
Feat: Dynamic (Event) Filters (#1704)
* feat: add events tables * fix: tweak PK * feat: migration * feat: gen models * fix: add external id col + index * fix: uuid pk * fix: types * chore: gen * feat: add index * Feat: Write events into OLAP tables (#1634) * feat: query for event creation * feat: olap impl * feat: wire up the olap event write * feat: goroutine? * feat: start wiring up inserts to triggers * fix: no `RETURNING` * fix: hack * fix: inner join * feat: attempt 2 * fix: return errors * chore: lint * fix: diff * feat: add new partitions * fix: eof * fix: write external ids into table * chore: gen * fix: wiring * fix: event deduping * fix: insert in bulk * fix: bug * refactor: return type of trigger * fix: unnest ids * fix: unnest tenant ids * fix: run ids in bulk insert * feat: two bulk inserts, one tx * fix: cruft * fix: bug * Update pkg/repository/v1/olap.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: rework to avoid n^2 loop * fix: transaction timeout * fix: lint * fix: use error * fix: rm penultimate version * fix: rm penultimate test part ii * Feat: CEL-based filtering of events (#1676) * feat: add optional expression to workflow trigger event ref * feat: proto field for expression * feat: write and parse the expression * feat: wire up through put workflow ver request * feat: query * fix: naming * fix: cleanup * fix: rebase * Update pkg/repository/v1/trigger.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: skip workflow on cel eval failure * fix: zero value * fix: cel evaluator * fix: usage * fix: naming + type * fix: rm event filter from v0 defn * feat: tests + fix typing * fix: usage * fix: construct input * feat: always write events --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: select existing partitions * feat: add prio to push event request * feat: priority from pushed events * fix: missed a spot * fix: write events even if they're not tied to any workflows * fix: revert cel event filtering * fix: couple more * fix: simplify * feat: filters api * feat: table for storing filters * feat: migration * fix: pk ordering * feat: wiring up initial api * feat: impl filter list * feat: wire up inserts of filters * feat: add resource hint to push event * feat: multi-select filters * feat: wire up resource hint on event push * feat: filtering * fix: small bug * fix: rm version id * fix: query * fix: panic * fix: schema * fix: naming * fix: rm python changes * chore: lint * fix: uuid hint Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: use overwrite for listing filters b/c of nullable arg * fix: naming * feat: add events tables * fix: tweak PK * feat: migration * feat: gen models * fix: add external id col + index * fix: uuid pk * fix: types * chore: gen * feat: add index * Feat: Write events into OLAP tables (#1634) * feat: query for event creation * feat: olap impl * feat: wire up the olap event write * feat: goroutine? * feat: start wiring up inserts to triggers * fix: no `RETURNING` * fix: hack * fix: inner join * feat: attempt 2 * fix: return errors * chore: lint * fix: diff * feat: add new partitions * fix: eof * fix: write external ids into table * chore: gen * fix: wiring * fix: event deduping * fix: insert in bulk * fix: bug * refactor: return type of trigger * fix: unnest ids * fix: unnest tenant ids * fix: run ids in bulk insert * feat: two bulk inserts, one tx * fix: cruft * fix: bug * Update pkg/repository/v1/olap.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: rework to avoid n^2 loop * fix: transaction timeout * fix: lint * fix: use error * fix: rm penultimate version * fix: rm penultimate test part ii * Feat: CEL-based filtering of events (#1676) * feat: add optional expression to workflow trigger event ref * feat: proto field for expression * feat: write and parse the expression * feat: wire up through put workflow ver request * feat: query * fix: naming * fix: cleanup * fix: rebase * Update pkg/repository/v1/trigger.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: skip workflow on cel eval failure * fix: zero value * fix: cel evaluator * fix: usage * fix: naming + type * fix: rm event filter from v0 defn * feat: tests + fix typing * fix: usage * fix: construct input * feat: always write events --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: select existing partitions * feat: add prio to push event request * feat: priority from pushed events * fix: missed a spot * fix: write events even if they're not tied to any workflows * fix: revert cel event filtering * fix: couple more * fix: simplify * fix: gen api * fix: merge issues * feat: filter delete endpoint * fix: overwrite * fix: delete filter api wiring * fix: migration patch * chore: gen * fix: merge hell * Revert "Revert "Feat: Events in the OLAP Repo (#1633)" (#1706)" This reverts commit |
||
|
|
99bcfa1037 |
add: CoroutineLike & AwaitableLike types (#1713)
* add: CoroutineLike & AwaitableLike types
* fix: type checker
* fix: reduce type narrowing on _parse_task_name
* fix: rm _aio_output helper
* Revert "fix: rm _aio_output helper"
This reverts commit
|
||
|
|
94d06a643c |
[Python] Fix: Task defaults, Patching fixes, Datetime conversions (#1667)
* feat: start wiring up defaults * feat: add test coverage * fix: test docs * feat: expand tests * fix: rm validators for now * chore: minor version * fix: skip prio tests in ci for now * chore: docs * debug: attempt to fix prio test by running with a single slot and no concurrency * fix: python script to apply patches * chore; gen * feat: atomic patches * fix: rm sed-based patches * fix: use current tz * fix: ordering |
||
|
|
c6abd6b9d2 |
feat: multiple workflow concurrency keys (#1511)
* feat: multiple workflow concurrency keys * [Python]: Allow multiple workflow-level concurrency keys (#1512) * chore: generate * feat: multi concurrency * chore: version * feat: example + test * fix: expand tests * Feat ts multiple wf concurrency (#1522) * feat: multiple concurrency * release: 1.2.0 * fix: merge * fix: concurrency defn * fix: ts multiple concurrency backwards compat (#1531) * fix * gen * chore: lint --------- Co-authored-by: mrkaye97 <mrkaye97@gmail.com> --------- Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com> * chore: ver * chore: gen * chore: versions * fix: manually rename migration * fix: patch ver --------- Co-authored-by: mrkaye97 <mrkaye97@gmail.com> Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com> |
||
|
|
80137736af |
Feat: Priority (#1513)
* feat: initial work wiring up priorities * fix: add default to default prio in the db * feat: wire priority through api on wf creation * feat: extend python test * feat: priority for scheduled workflows * feat: wire priority through python api * feat: more wiring priority through the api * feat: I think it works? * feat: e2e test for priority * it works! * feat: expand tests for default priorities * feat: e2e scheduling test * fix: skip broken test for now * fix: lint * feat: add priority columns to cron and schedule ref tables * feat: update inserts to include prio * feat: wire up more apis * feat: more wiring * feat: wire up more rest api fields * chore: cruft * fix: more wiring * fix: lint * chore: gen + wire up priorities * fix: retries * fix: try changing fixture scope * chore: bump version again * feat: send priority with action payload * fix: generate script * Feat priority ts (#1518) * feat: initial work wiring up priorities * fix: add default to default prio in the db * feat: wire priority through api on wf creation * feat: extend python test * feat: priority for scheduled workflows * feat: wire priority through python api * feat: more wiring priority through the api * feat: I think it works? * feat: e2e test for priority * it works! * feat: expand tests for default priorities * feat: e2e scheduling test * chore: minor version for priority * fix: skip broken test for now * fix: lint * feat: add priority columns to cron and schedule ref tables * feat: update inserts to include prio * feat: wire up more apis * feat: more wiring * feat: wire up more rest api fields * chore: cruft * fix: more wiring * fix: lint * chore: gen + wire up priorities * fix: increase timeout * fix: retries * fix: try changing fixture scope * chore: generate * fix: set schedule priority * feat: priority * fix: move priority to wf * release: 1.2.0 * rm log * fix: import * fix: add priority to step --------- Co-authored-by: mrkaye97 <mrkaye97@gmail.com> * fix: add dummy runs to priority test to prevent race conditions * fix: non-breaking field * fix: gen * feat: initial pass at docs * feat: priority in go sdk * feat: initial work on go example * fix: doc examples * fix: proofread * chore: version * feat: go sdk * fix: lint * fix: declarations and add back RunAsChild * fix: child workflows * fix: namespace * fix: faster child workflows * fix: sticky * add back run as child --------- Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com> Co-authored-by: Alexander Belanger <alexander@hatchet.run> |
||
|
|
90805ca763 |
Feat: Lifespans! (#1541)
* feat: implement lifespans * feat: add psycopg test dep * feat: lifespan script * feat: examples and tests * drive-by: add license * drive-by: throw errors for sanity checks * feat: docs * feat: sync and async * fix: docs * fix: lint * fix: small tweaks * fix: rm unused * fix: typed example * fix: print |
||
|
|
f09c1d11fa |
feat: multiple non-workflow level concurrency slots (#1508)
* feat: multiple non-workflow level concurrency slots * feat: first pass at e2e test * fix: lint * fix: try sleeping? * fix: namespacing * chore: version * feat: expand test * Fix: Add `get_run_ref` to `runs` client (#1509) * feat: add run ref * chore: ver * fix: expand standalone --------- Co-authored-by: mrkaye97 <mrkaye97@gmail.com> |
||
|
|
77f81476bd |
[Docs, Python] Expand Cancellation + Conditional Workflow Docs, Fix cancellation in Python (#1471)
* feat: expand conditional docs * feat: initial cancellation work + fixing some broken links * feat: docs on cancellation * python: fix cancellation * python: cruft * chore: version * feat: python example * fix: TS cancellation examples * fix: lint * feat: go example * feat: half-baked ts conditional logic workflow * feat: add ts example conditional workflow * feat: go example * feat: go example * fix: cancellation test * fix: thanks, copilot! * Update frontend/docs/pages/home/conditional-workflows.mdx Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com> * fix: lint * chore: lint * fix: longer sleep --------- Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com> |
||
|
|
58d54703b2 |
Feat: Non-Retryable Exceptions (#1456)
* feat: add boolean flag to proto * feat: initial wiring up priorities and non-retryables * fix: query * fix: cruft comment * fix: rm priority changes * feat: python side * feat: tests for non-retrying workflows * feat: expand tests * chore: generate ts * feat: add name prop to wf * feat(go-sdk): non retryable error * feat: start implementing ts * cleanup: simplify to raising a specific error * fix: simplify ts * feat: ts examples * feat: ver * feat: docs * fix: tests + linters --------- Co-authored-by: Alexander Belanger <alexander@hatchet.run> |
||
|
|
6aa8f4d555 |
[Docs, Python]: Durable execution, fixing broken links, Python fixes (#1449)
* feat: show durable execution docs * fix: move durable execution * feat: add some more durable notes * feat: more docs * fix: broken link bashing * feat: add test for waits * fix: clean up a bunch of mypy errors * chore: version * feat: make sure durable worker is running * fix: sleep longer * fix: skip unreliable tests in ci * fix: var name * update durable execution doc --------- Co-authored-by: Alexander Belanger <alexander@hatchet.run> |
||
|
|
5062bf1e3e |
V1 SDKs and Docs (#1361)
New SDKs and docs for the v1 release. |