Commit Graph

30 Commits

Author SHA1 Message Date
abelanger5
677fe2d328 fix: spawn workflows should handle on failure properly, lite improvements (#1336) 2025-03-13 22:02:03 -04:00
abelanger5
ac968e94b8 fix: concurrency issues and a few small improvements (#1324) 2025-03-12 16:30:34 -04:00
abelanger5
1f2096313d feat: v1 engine (#1318) 2025-03-11 14:57:13 -04:00
Gabe Ruttner
bc1d50b0ed Fix db url env vars (#1267)
* fix: remove db url log

* docs: db config options

* chore: lint

* chore: lint
2025-02-13 07:31:59 -08:00
abelanger5
f821379997 fix: remove deprecated swagger-cli (#1080)
* fix: remove deprecated swagger-cli

* fix: use node:18-alpine
2024-12-03 16:01:46 +00:00
Sean Reilly
42afe083cf Partition Step Run and Remove Prisma (#982)
* add in the migration for now

* Update step_runs.sql

remove TODO

* change the schema so we don't undo it

* add the migration for step run partition. remove prisma. add a helper task for recreating the db

* do a manual merge of the schema.sql

* add in the serial

* update docs

* PR feedback

* add Identity to all tables that don't have a Bigserial

* do the atlas hash with the new migration

* squash the migrations

---------

Co-authored-by: Sean Reilly <sean@hatchet.run>
2024-11-20 15:20:36 -08:00
Sean Reilly
15c50f46b5 Partial PR - need to generate SDK - Add endpoint to get the total free worker slots for a worker and the … (#857)
* Add endpoint to get the total free worker slots for a worker and the max runs

* update to use WorkerSempahoreCount instead of checking stepRunId

* modify the query for the new table and change the interface

* bump golangci-lint make changes to name of returned data

* revert the simple example

---------

Co-authored-by: Sean Reilly <sean@hatchet.run>
2024-09-19 10:11:16 -07:00
abelanger5
1ea4dfc5de feat: deduplicated enqueue (#735)
* wip

* wip: functional query

* feat: expose affinity config

* feat: add weight to proto

* feat: upsert affinity state on worker start

* fix: linting

* feat: add upsert proto

* feat: upsert handler

* feat: revise model

* fix: labels

* feat: functional desired worker

* wip: ui

* feat: add state to step run events

* fix: filter empty keys

* fix: labels as badges

* feat: empty state and descriptive text

* chore: add todo

* chore: whitespace

* chore: cleanup

* chore: cleanup

* chore: fix hash

* chore: squash migrations

* fix: fair worker assignment

* fix: remaining slots on valid desired workers

* wip: sticky

* fix: count slots

* chore: rm log line

* feat: expose sticky config

* wip: sticky dag

* feat: expose desired worker id to trigger

* feat: trigger on desired worker

* feat: typescript docs

* feat: sticky python

* feat: py sticky children

* wip: py affinity

* serverless note

* feat: complete python examples

* linting

* feat: deduplicated enqueue

* fix: address changes from PR review

* chore: generate

---------

Co-authored-by: gabriel ruttner <gabriel.ruttner@gmail.com>
2024-07-26 16:47:46 +00:00
Luca Steeb
3e41279840 chore(packages): pin swagger api generation (#675) 2024-07-02 00:08:49 +00:00
Luca Steeb
1490d88954 feat: webhook workers (#542)
Adds serverless support via the concept of webhook workers. Allows any webhook to be registered as a serverless endpoint for executing a step.
2024-06-25 17:06:43 -04:00
abelanger5
12e0fe6671 docs: hatchet-lite setup guide (#573)
* docs: hatchet-lite setup guide

* chore: docs lint

* fix: add line

* fix: hatchet-lite init

* fix: auto-gen env file for guides

* fix: volume path

* fix: imports
2024-06-10 21:43:39 -04:00
abelanger5
3f70cf2a5c fix: run rabbitmq-server with docker entrypoint (#565) 2024-06-08 17:28:07 -04:00
Gabe Ruttner
bbc4e58dd9 feat: limits (#559)
* feat: workflow run limits

* fix: resource exhausted 429

* feat: event limit

* feat: worker limit

* fix: sensible error

* fix: pb

* feat: expose limits api

* feat: default limits

* feat: add enable alert option

* feat: slack and email alerts

* fix: cron interval

* feat: make metered util

* wip: schedules and crons

* chore: squash migration

* fix: select or insert

* fix: remove unfinished meter

* chore: atlas migration

* fix: template format

* fix: shared ErrResourceExhausted

* feat: cache

* fix: limit can be nil

* fix: clarification

* fix: close meter ticker

* fix: friendly error for child workflows
2024-06-07 10:57:57 -07:00
abelanger5
3b1232cc28 fix: more casing in atlas-apply script (#563) 2024-06-06 14:41:54 -04:00
abelanger5
b0b2e26952 feat: hatchet-lite (#560)
* feat: hatchet-lite mvp

* fix: init shadow db

* fix: install atlas

* fix: correct env

* fix: wait for db ready

* fix: remove name flag

* fix: add hatchet-lite to build
2024-06-06 14:03:53 -04:00
Luca Steeb
d1a4d35830 chore(pre-commit): lint whitespace (#494)
Adds a whitespace linter to the pre-commit hook to ensure consistent formatting.
It also enables linting of other SQL files such as for SQLc queries.
2024-05-16 09:17:01 -04:00
Luca Steeb
7bb1015c99 chore(python-sdk): extract python sdk into its own repo (#393) 2024-04-22 16:35:53 +01:00
Abhiuday Gupta
c8a79aabf3 chore(format): added pre-commit hooks and formatted files (#294)
Co-authored-by: steebchen <contact@luca-steeb.com>
2024-04-16 22:19:21 +04:00
abelanger5
77e5d2b77c feat(go-sdk): spawnWorkflow method and get up to speed with other sdks (#297)
* feat(go-sdk): spawnWorkflow method and get up to speed with other sdks

* fix: manual trigger example

* fix: linting errors

* fix: double serialization from go sdk

* fix: spawn workflow logic and procedural example

* test(e2e): add procedural test

* fix: panic in e2e test

* fix: e2e test preparation

* fix: api server url in test.yml

* fix: load test server url

* chore: make num children configurable

* address pr review
2024-03-29 14:07:39 -07:00
Luca Steeb
d91a8d7bc3 fix: handle inefficient assignments (#263) 2024-03-16 17:09:35 +07:00
Luca Steeb
c2b42508be fix(typescript-sdk): extract typescript sdk into separate repo (#239) 2024-03-08 16:04:38 +07:00
abelanger5
d376b953aa feat: python rest api (#223)
* feat: Adds a generated REST API client and exposes workflow methods for programmatic usage
2024-03-02 20:33:20 -05:00
Luca Steeb
f5a6e80fc7 fix(engine): add --no-graceful-shutdown flag for nodemon (#221) 2024-03-02 00:38:39 +07:00
abelanger5
1cbe710823 feat: bundle rest api with typescript sdk (#151)
* feat: (wip) bundle rest API in typescript client

* chore: add generated files

* chore: pnpm lock file

* extract tenant id from token subject
2024-02-07 16:45:32 -05:00
abelanger5
78685d0098 feat(security): multiple encryption options, API tokens, easier setup (#125)
* (wip) encryption

* feat: api tokens

* chore: add api token generation command

* fix: e2e tests

* chore: set timeout for e2e job

* fix: e2e tests, remove client-side certs

* chore: address PR review comments

* fix: token tests

* chore: address review comments and fix tests
2024-01-26 15:38:36 -05:00
Luca Steeb
6d8c7ab073 feat(test): introduce basic e2e tests (#97) 2024-01-11 13:36:15 -05:00
abelanger5
41f26b6bc8 chore: add docker builds (#16)
* chore: add docker builds and initial pre-release + release process
2023-12-19 14:42:50 -05:00
Luca Steeb
addf42988a chore(contributing): adapt deps, hardcode generator versions (#6) 2023-12-19 22:04:13 +07:00
Luca Steeb
6fef81eb52 chore(contributing): improve onboarding (#3)
- shell scripts logging and fail on error
- use npx --yes instead of manual global install
- run go libs directly instead of installing and running binaries
- add missing brew dependencies
2023-12-18 13:36:48 -05:00
Alexander Belanger
366c79441d first commit 2023-12-15 13:08:04 -05:00