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
abelanger5
77193df928
feat: expose additional fields on assigned action ( #738 )
2024-07-26 09:17:05 -07:00
Gabe Ruttner
ee68786d69
feat: sticky workers ( #695 )
...
* 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
* fix: doc link
* chore: rm debug log
* fix: simplify list labels
* fix: typo
2024-07-22 17:20:23 -04:00
Gabe Ruttner
ad29edb44f
fix: partitioned semaphore resolver ( #731 )
...
* fix: partition and improve query
* feat: paginate until done
* chore: address comments
* fix: write partitions
2024-07-18 11:06:25 -04:00
abelanger5
a5724fc4f9
feat: replay workflow runs ( #732 )
...
* feat: replay workflow runs
* address pr review changes
2024-07-18 08:05:15 -07:00
Gabe Ruttner
b7cec9ec53
feat: soft delete ( #717 )
...
* feat: soft delete workflows and versions
* feat: filter soft deletes wf and wfr
* feat: filter events and step runs
* fix: query
* fix: query
* chore: generate
* wip
* chore: squash migrations
* chore: separate retention into new service
* feat: regularly clean up
* chore: migrations
* fix: tests
* fix: queries
* fix: ambiguous
* fix: refs
* fix: ambiguous id
* fix: remove update from
* fix: soft delete
* fix: cleanup retention scheduler
* fix: has more query
* chore: gen
* fix: query
* fix: table
2024-07-18 09:06:05 -04:00
abelanger5
5d87f380ef
feat: managed worker pools ( #725 )
...
* change api extension spec to register custom populators
* fix: support only bearer auth
* fix: correct authn logic
* fix: indexes on workflow runs, events
* feat: managed worker pools
* chore: lint fix
* hide workers view when not enabled
* support internal api tokens, minor improvements
* fix: actually write internal
* fix breaking changes
* don't allow revoking internal tokens
* fix: linting and remove metrics view
* fix: token
* address review and add feat flags
2024-07-16 13:33:46 +00:00
Gabe Ruttner
c935a38708
fix: revert failed assigned grpc stream and write event ( #726 )
...
* fix: revert and write event
* fix: write critical event
* fix: unassign repository method
* fix: remove unneeded event
2024-07-15 18:05:49 -04:00
Gabe Ruttner
d866f8167d
fix: add job run lookup data to data query ( #722 )
2024-07-15 09:17:42 -04:00
Gabe Ruttner
f4f752b5d2
fix: large step run payloads ( #719 )
...
* wip: just needs working transformation
* fix: refactor data into separate query
2024-07-14 10:27:25 -04:00
abelanger5
fee4c63319
fix: infinite meta loading loop ( #718 )
...
* fix: infinite meta loading loop
* fix: workflow run id parsing
2024-07-12 14:39:01 -04:00
Gabe Ruttner
af705a0aea
fix: resolve unresolved failed steps ( #700 )
...
* feat: resolve unresolved failed steps
* fix: poll active queues
* chore: comment temp unused
2024-07-12 14:14:29 -04:00
abelanger5
8f8f3ad287
fix: reduce max throughput of requeue ( #713 )
...
* fix: reduce max throughput of requeue
* fix: reassign query
* fix: move step run timeout to partition model
* fix: partitioning queries and index
* better logs on requeue
* fix: inactive rebalance and get step run for engine query
* fix: correct inactive queries
2024-07-12 14:03:55 -04:00
abelanger5
a96738539e
fix: simplify reassign query ( #712 )
...
* fix: simplify reassign query
* chore: lint and rehash
2024-07-10 19:38:02 -04:00
Gabe Ruttner
1e20bf946a
fix: improved assign, reassign, and requeue ( #702 )
...
* fix: improved queries
* fix: 1s timeout
* fix: indexes
* fix: increase timeout to 4s
* fix: migration
* merge in db changes
* chore: squash migrations
* chore: re-hash
* chore: remove comment
* chore: rm unused query
* fix: state
* fix: check valid workers before commit
* fix: query
* chore: gen
2024-07-10 12:45:08 -04:00
Gabe Ruttner
7dc274bbd6
fix: remove expired crons ( #697 )
...
Co-authored-by: abelanger5 <belanger@sas.upenn.edu >
2024-07-10 11:01:40 -04:00
abelanger5
f36e66cd28
feat: configurable data retention period ( #693 )
...
* feat: data retention for tenants
* chore: generate and docs
* chore: lint
2024-07-06 14:31:12 +00:00
abelanger5
b96cee1615
chore: better logging in dispatcher ( #692 )
2024-07-04 16:21:26 -04:00
Luca Steeb
62e02495c9
fix(webhooks): remove unused workflows field ( #665 )
2024-07-02 15:24:23 +01:00
Gabe Ruttner
8a8a033af6
feat: variable token expiration ( #670 )
...
* feat: variable token expiration
* fix: typo
* fix: long tokens for webhook workers
* fix: format
2024-07-01 15:47:32 +00:00
Luca Steeb
1002e74695
fix(webhooks): set content-type in webhook requests ( #656 )
2024-06-26 19:02:05 -04:00
abelanger5
f2c6bc1f44
feat: tenant partitioning ( #649 )
...
* feat: tenant partitioning
* fix: rebalance inactive partitions, split into separate partitioner
* fix: shutdown partitioner scheduler properly
* update config options
* fix: config options linting
2024-06-26 21:06:51 +00:00
Gabe Ruttner
a8d42819ea
feat: check security service ( #639 )
...
* feat: check security service
* feat: propegate version
* feat: with ident
* fix: lint
* chore: generate
* fix: change domain
* fix: panic recover
* fix: migrations
* fix: hash
* fix: dont check in tests
2024-06-26 16:26:29 -04:00
Luca Steeb
a51681ddc6
fix(webhooks): use PUT for healthcheck ( #644 )
2024-06-26 10:39:11 -04: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
5538196169
fix: correct lengths on random.Generate ( #638 )
2024-06-25 15:12:59 -04:00
Gabe Ruttner
697757879f
feat: billing ( #624 )
...
* feat: init lago client
* feat: billable meter
* feat: db persistence
* wip: expose sub
* feat: rename page
* wip: billing section
* wip: lago integration
* feat: separate plan and period
* wip: webhook
* feat: improve empty state
* feat: update limits on plan changes
* feat: can change plans
* feat: change plan loading state
* feat: yearly filter
* feat: billing clarification
* fix: treatment
* feat: filter plans
* feat: prevent non-owner from changing plan
* fix: loading state
* fix: jit portal link
* fix: rm import
* fix: build errors
* fix: default to free
* fix: wrong files
* fix: select or insert customer
* fix: note
* feat: upgrade dependent on payment method state
* fix: dedupe
* chore: remove github-app from core
* chore: port to cloud
* chore: port to cloud
* chore: port to cloud
* chore: port to cloud
* chore: port to cloud
* add new components, repository callbacks
* chore: rm unused packages
* chore: fix generation
* chore: gen
* fix: cloud api references
* debug
* debug
* fix: actually set plans
* chore: rm debug
* fix: build
* feat: callbacks
* fix: add generated code
* chore: group cloud components
* chore: group by feature
* feat: alert change
* feat: confirm
* fix: confirm modal
* fix: ui
* fix: remove arrears
* fix: open in same tab
* fix: wan alert
* fix: call the callback
* fix: callback obj
* fix: disable if no cloud meta
---------
Co-authored-by: Alexander Belanger <alexander@hatchet.run >
2024-06-25 13:57:16 -04:00
Luca Steeb
b6dcb4e7e9
refactor(random): refactor random string generation ( #633 )
2024-06-24 23:44:03 +01:00
abelanger5
37c0f6549c
feat: add endpoint to REST API for creating an event, add UI for creating an event ( #616 )
...
* feat: add create event to rest api
* fix: ingestor usage
* feat: add create event to the UI
* fix: address PR review
2024-06-19 19:53:27 +00:00
abelanger5
7c3ddfca32
feat: api server extensions ( #614 )
...
* feat: allow extending the api server
* chore: remove internal packages to pkg
* chore: update db_gen.go
* fix: expose auth
* fix: move logger to pkg
* fix: don't generate gitignore for prisma client
* fix: allow extensions to register their own api spec
* feat: expose pool on server config
* fix: nil pointer exception on empty opts
* fix: run.go file
2024-06-19 09:36:13 -04:00
abelanger5
d48209ca1b
fix: remove grpc_broadcast_address claim validation ( #610 )
2024-06-18 18:14:27 +00:00
abelanger5
4328207701
fix: add delay to requeue and reassign to allow workers to reconnect ( #598 )
...
* fix: add delay to requeue and reassign to allow workers to reconnect
* address changes from review
2024-06-17 13:32:50 +00:00
abelanger5
5434332115
fix: clarify that empty strings are not valid returns ( #597 )
2024-06-17 09:21:13 -04:00
abelanger5
d76e9e17eb
fix: reset step run inputs on replay ( #596 )
2024-06-17 09:15:41 -04:00
abelanger5
31b2fa15cf
fix: don't requeue step runs immediately ( #582 )
2024-06-12 09:49:45 -04:00
Gabe Ruttner
6145dbc88d
fix: empty message ( #581 )
2024-06-12 06:27:36 -07:00
Gabe Ruttner
1878bd22b0
fix: group queries ( #574 )
...
* fix: missing queued from count
* fix: update group key queries
* fix: arb limit
* fix: status to pending
* revert
2024-06-12 06:18:03 -07:00
Gabe Ruttner
8fc412c3b3
fix: limit env var bindings ( #578 )
2024-06-11 13:47:40 +00:00
Gabe Ruttner
731f6f1f9c
fix: sort by createdAt then id ( #569 )
2024-06-11 08:53:46 -04:00
Gabe Ruttner
43fa6f161f
fix: only join latest workflow version ( #568 )
...
* fix: only join latest workflow version
* fix: optimized query
2024-06-10 15:28:12 +00: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
Gabe Ruttner
e09ee98df5
feat: expose retry count ( #524 )
...
* feat: expose retry count
* feat: expose retry count go
* docs: accessing retry count
* fix: import
* fix: tests
* fix: docs formatting
---------
Co-authored-by: Alexander Belanger <alexander@hatchet.run >
Co-authored-by: abelanger5 <belanger@sas.upenn.edu >
2024-06-07 15:27:38 +00: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
Gabe Ruttner
d233ae3b6a
fix: keep semaphore table ( #553 )
2024-06-04 12:18:37 -04:00
Gabe Ruttner
8b1417b1d8
feat: worker semaphore v2 ( #540 )
...
* wip: semaphore slot table
* wip: acquire and release semaphore
* Fix deadlock/pool exhaustion
* fix: update skip locked cte
* feat: release resolver
* wip: migration
* chore: migrate running steps to semaphore
* feat: add next alert column
* feat: add notification templates
* feat: add poll token ticker
* fix: expiring 7 days
* fix: no expired tokens
* fix: subject string
* fix: message string
* fix: slack format
* feat: add config columns
* feat: expose api
* feat: update alerter opts
* feat: update ui
* chore: ui tweaks
* fix: ui tweaks
* fix: migration with loop
* chore: generate
* chore: remove unused fn
* feat: add worker id index on slot
* chore: rm unused fn
* fix: typo
* feat: optimized query
* chore: generate all
* chore: collapse migration
---------
Co-authored-by: Alexander Belanger <alexander@hatchet.run >
2024-06-04 07:56:29 -07:00
Gabe Ruttner
207f1bbb08
feat: default email alert group ( #547 )
...
* feat: add next alert column
* feat: add notification templates
* feat: add poll token ticker
* fix: expiring 7 days
* fix: no expired tokens
* fix: subject string
* fix: message string
* fix: slack format
* feat: add config columns
* feat: expose api
* feat: update alerter opts
* feat: update ui
* chore: ui tweaks
* fix: ui tweaks
* Update internal/repository/tenant_alerting.go
Co-authored-by: abelanger5 <belanger@sas.upenn.edu >
* chore: comment
* fix: split emails
* fix: commit context
---------
Co-authored-by: abelanger5 <belanger@sas.upenn.edu >
2024-06-03 12:30:46 -04:00
Gabe Ruttner
01512a6493
Feat expiring token email and slack alerts ( #546 )
...
* feat: add next alert column
* feat: add notification templates
* feat: add poll token ticker
* fix: expiring 7 days
* fix: no expired tokens
* fix: subject string
* fix: message string
* fix: slack format
* fix: increase interval
2024-05-31 20:38:11 +00:00
abelanger5
db30bb0b4e
fix: reject heartbeats when dispatcher disconnects, step runs ( #545 )
2024-05-31 08:47:35 -04:00
abelanger5
3ef1f802c7
fix: hangup subscriber when workflow run is finished ( #543 )
...
* fix: better handling for subscribe to workflow run events
* fix: remove debug latency
2024-05-30 21:31:11 -04:00
abelanger5
4585066349
fix: set tx isolation level to serializable for step run assignments ( #535 )
...
* fix: use serializable isolation level in step run assignment
* chore: better error log
2024-05-28 18:23:31 -04:00