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
abelanger5
d19e299d1e
refactor: make engine runnable with config instead of loader ( #640 )
...
* refactor: make hatchet-engine runnable programmatically
* feat: export teardown name and fn
2024-06-26 08:14:30 -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
abelanger5
771054a401
fix: make rabbitmq connection optional and disable for token generation ( #635 )
2024-06-25 15:53:55 +00:00
Luca Steeb
b6dcb4e7e9
refactor(random): refactor random string generation ( #633 )
2024-06-24 23:44:03 +01: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
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
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
abelanger5
68a79fe071
fix: handle nil input more gracefully ( #486 )
2024-05-13 13:07:41 -04:00
abelanger5
b50ed62924
feat: alerting from slack and email ( #461 )
...
* feat: alerting. implements slack alerting, email, and refactors tenant settings to make them more manageable
* chore: generate
* chore: generate sqlc after migrate
2024-05-08 10:04:58 -04:00
abelanger5
7543a0c2a5
add jobs which always run on failure ( #445 )
...
* (wip) prisma schema
* feat: on-failure steps
* chore: address changes from PR review
* chore: bump migration number
2024-05-06 15:39:22 -04:00
abelanger5
4ce1dd8632
feat: multi-workflow runs listener on a single endpoint
...
* new api-contract for workflow run events
* feat: initial implementation for new subscribe listener
* fix: sync issues and send workflow runs immediately
* refactor: add context to all engine db queries, fix deadlocking query
* fix: use new ctx for deleting dispatcher and ticker
* add cancellation reasons
* fix: docs linting
---------
Co-authored-by: gabriel ruttner <gabriel.ruttner@gmail.com >
2024-04-18 20:55:11 -04:00
abelanger5
e0d363e796
chore: intercept grpc errors and don't send internal to client ( #370 )
2024-04-10 19:03:18 -04:00
Gabe Ruttner
d8b6843dec
feat: streaming events ( #309 )
...
* feat: add stream event model
* docs: how to work with db models
* feat: put stream event
* chore: rm comments
* feat: add stream resource type
* feat: enqueue stream event
* fix: contracts
* feat: protos
* chore: set properties correctly for typing
* fix: stream example
* chore: rm old example
* fix: async on
* fix: bytea type
* fix: worker
* feat: put stream data
* feat: stream type
* fix: correct queue
* feat: streaming payloads
* fix: cleanup
* fix: validation
* feat: example file streaming
* chore: rm unused query
* fix: tenant check and read only consumer
* fix: check tenant-steprun relation
* Update prisma/schema.prisma
Co-authored-by: abelanger5 <belanger@sas.upenn.edu >
* chore: generate protos
* chore: rename migration
* release: 0.20.0
* feat(go-sdk): implement streaming in go
---------
Co-authored-by: gabriel ruttner <gabe@hatchet.run >
Co-authored-by: abelanger5 <belanger@sas.upenn.edu >
2024-04-01 15:46:21 -04:00
abelanger5
092f54c64f
refactor: separate api and engine repositories, change ticker logic ( #281 )
...
* refactor: separate api and engine repositories, change ticker logic
* fix: nil error blocks
* fix: run migration on load test
* fix: generate db package in load test
* fix: test.yml
* fix: add pnpm to load test
* fix: don't lock CTEs with columns that don't get updated
* fix: update heartbeat for worker every 4 seconds, not 5
* chore: remove dead code
* chore: update python sdk
* chore: add back telemetry attributes
2024-03-21 14:10:34 -04:00
abelanger5
d9360520de
chore: add better telemetry to database ( #268 )
...
* chore: add better telemetry to database
* fix: span end on query
2024-03-15 15:08:40 -04:00
Luca Steeb
d577b5f34c
fix(cli): make server config cleanup properly ( #267 )
2024-03-14 17:46:01 +07:00
abelanger5
d7e6e4d8c6
fix: worker locking on requeues ( #265 )
...
* fix: worker locking on requeues
* chore: add alerter to dispatcher
2024-03-13 21:50:02 -04:00
abelanger5
c66f97c856
fix: deadlocks on workers and tickers ( #241 )
...
* chore: add sentry support to engine
* fix: deadlocks on workers and tickers
* refactor: reduce prisma calls in engine
* trigger
* fix: remove some tenant lookups
* feat: dlx and renamed taskqueue -> msgqueue
* refactor: get group key run logic
* fix: retry counts on messages and concurrency edge cases
* fix: rabbitmq integration tests
* feat: add consumer timeouts
---------
Co-authored-by: Luca Steeb <contact@luca-steeb.com >
2024-03-12 00:45:18 -04:00
Luca Steeb
c7cdc8aa5d
fix(engine/health): listen before serving ( #243 )
2024-03-08 14:46:47 +07:00
abelanger5
105aa08f3f
chore: add sentry support to engine ( #237 )
...
* chore: add sentry support to engine
* chore: address PR comments
2024-03-06 11:50:49 -05:00
abelanger5
f256b258d8
feat: logging from step run executions ( #217 )
...
* fix: job cancellations with shared ctx
* fix: found the bug
* fix: all job runs were getting cancelled
* feat: support logging from executions
* fix: place logging in background
* add back split screen
2024-03-01 17:55:31 -05:00
Luca Steeb
f5a6e80fc7
fix(engine): add --no-graceful-shutdown flag for nodemon ( #221 )
2024-03-02 00:38:39 +07:00
Luca Steeb
9b68115fb5
refactor: cleanup functions in api + worker ( #192 )
2024-03-02 00:37:02 +07:00
Luca Steeb
0d503288ba
fix(engine): cleanup dispatcher and grpc server in parallel ( #207 )
2024-03-01 01:32:24 +07:00
Luca Steeb
577f432218
feat(engine): readiness & liveness probes ( #197 )
2024-02-28 00:28:11 +07:00
Luca Steeb
ae4841031b
feat(engine): standalone tests and engine teardown ( #172 )
2024-02-28 00:15:25 +07:00
abelanger5
3743746657
feat: github app integration ( #163 )
...
* feat: github app integration
* chore: proto
* fix: migrate instead of push
* fix: db migrate -> migrate
* fix: migrate again
* remove skip-generate
* add back generate
* setup pnpm
2024-02-13 21:34:16 -05:00
Luca Steeb
ab9f8e6c47
fix(cli): log errors via stderr and always exit ( #139 )
2024-02-01 00:12:22 +07:00
abelanger5
52ba01bf06
chore: qol improvements ( #137 )
2024-01-30 00:08:52 -05:00
abelanger5
d63b66a837
feat: concurrency groups ( #135 )
...
* first pass at moving controllers around
* feat: concurrency limits for strategy CANCEL_IN_PROGRESS
* fix: linting
* chore: bump python sdk version
2024-01-30 00:00:28 -05:00
abelanger5
14a971bfd7
feat: improve versioning to use checksums ( #129 )
...
* feat: improve versioning to use checksums
* fix: remove json ignore for scheduled triggers
* update migration with random strings for checksum
2024-01-26 20:47:15 -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
c8f87599c7
chore: ignore or fix linter errors ( #116 )
...
* chore: ignore or fix linter errors
* chore: wrap up lint errors
* chore: sqlc generation
---------
Co-authored-by: Alexander Belanger <belanger@sas.upenn.edu >
2024-01-21 22:01:20 -05:00
abelanger5
d51a3d34f3
feat: google sso ( #112 )
...
* feat: google sso
* chore: update prompt text
* fix: compiling and lint errors
* chore: regenerate sqlc
* chore: address PR comments
2024-01-21 20:06:00 -05:00
Luca Steeb
3071e3c65e
refactor: run golangci-lint --fix ( #115 )
2024-01-21 20:03:12 +07:00
abelanger5
0c94f0d933
feat: python client ( #109 )
...
* (wip) python SDK
* feat: python client, initial version finished
* fix: add curl to migration dockerfile
* add insecure option for grpc
* create docs and publishing workflow
* delete old hatchet folder
2024-01-20 09:18:25 -05:00
abelanger5
52fde1e704
feat: dag-style execution ( #108 )
...
* feat: dag-style execution
* docs: update to reflect new context
* ensure no cycles
* remove example cycle
* linting
* lint and small fixes
* update deferred rollback
* last rollback handling
* unset max issues
* fix requeue edge case
2024-01-16 11:31:24 -05:00
abelanger5
4d03592aec
chore: telemetry improvements ( #101 )
...
* fix: simple example
* chore: telemetry improvements
- Adds opentelemetry integration for the engine
- Adds standard logger with json and more readable output formats
* remove env from nodemon config files
2024-01-11 13:09:06 -05:00
abelanger5
fe76c724d1
feat: add ticker reassignment to engine ( #86 )
2024-01-08 14:11:30 -05:00
abelanger5
62445dc37f
feat: support one-time scheduled workflows ( #84 )
...
* feat: support one-time scheduled workflows
* refactor: move schedule out of workflow trigger def
* docs: add scheduling workflows section
* docs: update creating workflow
* only cancel schedules that are in the future
2024-01-08 10:03:32 -05:00
abelanger5
5937b9fd98
feat(go-sdk): add ability to create workflows from the Go SDK more easily, quickstart improvements ( #30 )
...
* feat: add initial docs site
* feat: allow workflows to be defined from go sdk
* fix release action
* chore: remove server dependencies from client
* fix: use correct certificate for server
* chore: add port and bind address to grpc config
* fix: add env for grpc config
* fix: nil pointer when output is null
* chore: support variation in output args
* fix unresolve merge conflict
* fix: quickstart improvements
* temp remove database url
* fix: action id not required for event
* fix: actionid validation for events
* Remove deleted files
2024-01-02 09:02:53 -05:00
abelanger5
4ca785ba61
feat: add scheduling timeout (non-configurable) ( #24 )
2023-12-27 14:40:24 -05:00
Luca Steeb
e857004b79
feat(seed): set a default tenant ID ( #21 )
2023-12-24 14:59:36 +07:00
abelanger5
14ecac8b81
feat: add hatchet-admin command and improve dockerfiles ( #18 )
...
* feat: add `hatchet-admin` command and improve dockerfiles
- Also bumps `prisma-client-go` version
2023-12-21 16:38:17 -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
abelanger5
cb07d1211a
feat: improve debugging experience of workflow runs ( #5 )
...
* feat: improve debugging experience of workflow runs
Makes steps in a workflow run expandable to view input, output and error information.
Also adds the triggering cron or event to the top of the workflow run.
* chore: remove commented, unused code
* chore: address PR comments
2023-12-19 08:23:21 -05:00