Commit Graph

158 Commits

Author SHA1 Message Date
Gabe Ruttner
583bb6f4ba Feat--unify-running-and-evicted (#3248)
* feat: unify running and evicted counts with filter

* chore: gen

* chore: gen lint

* fix: opsies...

* chore: gen

* chore: feedback
2026-03-13 05:57:07 -07:00
matt
1bffb66bb3 Feat: Branching off branches (#3150)
* feat: add branch point table

* chore: gen

* feat: id for ordering

* feat: check for `isBranchPoint` and handle branching

* feat: wire up branching over the api

* fix: api, gen

* fix: gen

* fix: branch

* feat: remove duped parent node and branch ids

* fix: rm branch count, dupe of latest id

* refactor: resolve naming

* fix: base case

* fix: test, + it's literally always a caching issue omg

* fix: docs

* chore: lint

* refactor: make branch resolution more efficient

* feat: stable sort, add a bunch of tests

* fix: confusing naming

* fix: naming

* chore: gen

* fix: update

* fix: failing test

---------

Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com>
2026-03-05 16:31:01 -05:00
Gabe Ruttner
a6f5fb6871 chore: rename durable fork to branch (#3174) 2026-03-05 09:56:46 -08:00
Gabe Ruttner
daff28dbfe Feat: durable eviction take 2 (#3075)
* feat: simplified eviction feature

* fix: assign new worker id

* test: shorter sleep

* fix: completion race on same worker

* chore: address todo

* chore: lint

* chore: generate

* fix: n+1 queries

* refactor: WasEvicted bool

* feat: evicted state

* chore: generate

* fix: map status

* fix: update PendingCallback structure to include InvocationCount

* revert: comment

* feat: add support for EVICTED status in waterfall component and metrics display

* fix: implicit eviction

* chore: readable cte

* refactor: queued bool

* refactor: rename eviction_policy

* fix: aio only

* chore: example return type

* fix: map

* feat: eviction error cases

* refactor: change external ID maps to use UUID type

* chore: feedback, cleanup

* tests: additional cases

* chore: generate

* chore: lint

* chore: lint generate

* chore: clean up comments to make matt happy

* refactor: more feedback

* chore: add TODO for worker state reconciliation and clean up comments in eviction policy

* tests: fix

* chore: gen

* test: increase ruby timeout...

* fix: invocation count

* fix: test cases

* fix: stale log entry

* chore: lint

* revert: durable tests to use time.time

* chore: lint
2026-02-27 09:25:50 -08:00
matt
6f3f6e08ac Feat: Replay as new (or from a node) (#3055)
* feat: new messages for reset

* chore: gen python

* feat: reset scaffolding

* feat: initial work

* feat: initial e2e wiring of resetting from a specific node

* fix: add branch to pk

* fix: wire up branches

* fix: add branch to awaited entry

* feat: start wiring up reset api

* fix: colname

* fix: add branch id more places

* fix: some bugs

* fix: replay

* fix: replay, simplify

* feat: add parent branch id

* fix: start reworking parent nodes and branches

* fix: parent branch wiring

* fix: start fixing some bugs

* fix: parent branch bug

* fix: advisory lock for locking the log file to prevent concurrent modification

* fix: move claude.md ignore path

* fix: remove eager replays of events

* fix: rm cruft

* fix: cleanup more params and such

* fix: return type

* fix: comment

* fix: comments

* fix: comment

* chore: gen

* chore: gen

* fix: decrease sleep time

* chore: gen again

* fix: add invocation count on event log entries, make it int32, fix toInt

* fix: more wiring

* chore: gen, simplify

* fix: lint

* fix: more zero values, I hate Go

* feat: add `is_durable` to v1_task

* feat: initial work wiring up dispatcher to increment log entry invocation counts

* feat: wire up assigned action

* fix: property

* fix: send is durable through to the engine

* fix: more invoc count wiring

* fix: node resetting

* fix:revert

* fix: import

* chore: gen

* fix: reset -> fork

* fix: rm a bunch of dead code

* fix: api

* fix: repo method

* fix: log file locking using `FOR UPDATE` + atomic compare-and-set update

* fix: move to shared repo

* feat: increment invocation count on the scheduler

* fix: naming

* fix: make test more reliable

* fix: props

* fix: node id reset
2026-02-20 13:01:46 -05:00
Gabe Ruttner
2fdc47a6af feat: multiple slot types (#2927)
* feat: adds support for multiple slot types, primarily motivated by durable slots

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2026-02-17 05:43:47 -08:00
Mohammed Nafees
eefbcdc532 Return event ID after successful webhook trigger (#3039)
* return webhook event ID on successful receive

* fix pytest

* err handling for json unmarshal

* if clause
2026-02-16 18:36:51 +01:00
Gabe Ruttner
7875d78057 Feat: Official Ruby SDK (#3004)
* feat: initial ruby sdk

* fix: run listener

* fix: scope

* feat: rest feature clients

* fix: bugs

* fix: concurrent register

* fix: tests and ergonomics

* docs: all of them

* chore: lint

* feat: add RBS

* feat: add GitHub Actions workflow for Ruby SDK with linting, testing, and publishing steps

* chore: lint

* refactor: simplify load path setup for Hatchet REST client and remove symlink creation

* fix: cert path

* fix: test

* fix: blocking

* fix: ensure Hatchet client is only initialized once across examples

* fix: tests

* remove: unused example

* fix: bubble up errors

* test: skip flaky for now

* remove: lifespans

* fix: durable context bugs

* fix: bulk replay

* fix: tests

* cleanup: generate tooling

* fix: integration test

* chore: lint

* release: 0.1.0

* chore: remove python comments

* refactor: remove OpenTelemetry configuration and related unused options

* fix: default no healthcheck

* chore: lockfile

* feat: register as ruby

* chore: lint

* chore: update py/ts apis to include ruby

* chore: docs pass

* chore: lint

* chore: generate

* chore: cleanup

* chore: generate examples

* tests: add e2e tests

* tests: cache examples dependencies

* fix: namespace

* fix: namespace

* fix: namespaces

* chore:lint

* fix: improve cancellation workflow polling logic and add error handling

* revert: py/ts versions
2026-02-15 14:32:15 -08:00
Jishnu
9e0182ec77 feat: add python and typescript webhook client (#2959)
* feat: add python webhook client

* refactor: python webhook client, webhook tests

* add: ts webhook client, example

* remove unwanted assert

* refactor: webhook update eventkey optional

* fix lint

* bump version

* fix: webhooks.create args, webhook example

* fix: infer auth_type from auth payload python

* fix: infer auth type from payload ts

* remove auth type magic strings
2026-02-13 14:04:08 -05:00
Mohammed Nafees
4fd7b94751 Add support for Svix webhooks (#2996)
* support Svix webhooks

* add migration

* use http status codes

* comment fix

* custom svix verification logic

* copilot comments

* copilot comments
2026-02-11 16:41:36 +01:00
Jishnu
ed43cae0a2 feat: Extend webhook support for scope_expression and payload (#2874)
* add: scope_expression and payload columns for v1_webhook

* refactor: insert or update sql cmds for v1_webhook

* feat: update api clients, openapi schema for new webhook body

* refactor: receiver and transformer for v1 webhook

* add: python sdk changes

* feat: ts sdk changes

* feat: add FE for webhook new params

* fix: scope expression empty payload

* add: support for scope and payload for go client

* fix: lint

* fix: error message UI on webhook

* fix: lint

* fix: migraiton conflict, build failure

* fix: error handling

* update docs, add tests

* fix: lint, test file name
2026-02-04 12:44:52 -05:00
matt
ffe9f5ce74 Log Search Frontend, Part II (#2886)
* fix: don't toggle selection if a user is dragging

* fix: command selection state

* fix: close search bar on enter

* fix: improve search bar styling a bit, make it more consistent with designs

* chore: tsc

* Feat: Logs Frontend, Part III (#2888)

* fix: propagate retry count through properly

* feat: attempt switcher

* fix: attempt numbers

* feat: add attempt param to log query

* feat: wiring

* feat: attempt filter

* chore: changelog

* fix: use the button component

* fix: only close on enter when in FTS mode

* fix: pass retry count and log level in Go

* fix: feedback

* chore: lint

* fix: rm cruft comment
2026-01-30 13:17:21 -05:00
matt
a3fe89ef03 Feat: Workflow input JSON schema in trigger preview (#2851)
* feat: add input json schema to workflow version

* feat: add json schema to putworkflow proto

* feat: wire up writes of the json schema

* chore: gen python

* feat: send json schema from the python code

* feat: wiring

* feat: pass json schema into code editor

* feat: pass prop

* fix: clean up validation stuff

* feat: allow zod `input` as optional ts field

* fix: try except logic hack

* fix: rename input -> inputValidator for consistency

* chore: gen api

* fix: improve hack slightly

* chore: changelogs, versions

* feat: zod example

* chore: rework api a bit

* fix: tsc, allow schema to update

* fix: improve loading state

* fix: api cleanup, sqlc cleanup

* fix: initial mount

* chore: lint

* chore: lint

* chore: tsc

* fix: lint

* fix: unwind unneeded change

* [Python] Feat: Default additional metadata (#2876)

* Add doc about autoscaling workers (#2864)

* add doc for autoscaling workers

* oldest also in running stats

* chore(deps): bump google.golang.org/api from 0.262.0 to 0.263.0 (#2869)

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.262.0 to 0.263.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.262.0...v0.263.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-version: 0.263.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump github.com/getsentry/sentry-go from 0.41.0 to 0.42.0 (#2870)

Bumps [github.com/getsentry/sentry-go](https://github.com/getsentry/sentry-go) from 0.41.0 to 0.42.0.
- [Release notes](https://github.com/getsentry/sentry-go/releases)
- [Changelog](https://github.com/getsentry/sentry-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-go/compare/v0.41.0...v0.42.0)

---
updated-dependencies:
- dependency-name: github.com/getsentry/sentry-go
  dependency-version: 0.42.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump hatchet-sdk in /examples/python/quickstart (#2871)

Bumps hatchet-sdk from 1.22.10 to 1.22.11.

---
updated-dependencies:
- dependency-name: hatchet-sdk
  dependency-version: 1.22.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: default additional meta

* feat: wiring

* chore: changelog, version

* fix: copy

* feat: add default meta to stubs

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Mohammed Nafees <hello@mnafees.me>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: migration ver

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Mohammed Nafees <hello@mnafees.me>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-29 11:38:25 -05:00
matt
dcf1d377ca Feat: Add order by direction param to v1LogLineList (#2849)
* feat: add order by direction param

* fix: order ascending on existing fe

* chore: gen openapi
2026-01-26 14:01:03 -05:00
matt
2837573b6c [Go] Feat: Webhooks feature client for the Go SDK (#2792)
* feat: webhooks feature client

* feat: add webhook client

* feat: add v1 webhook client

* feat: example

* fix: webhook client impl

* fix: example + error handling + other client

* fix: missing webhook resources

* chore: gen
2026-01-23 11:04:34 -05:00
matt
b093cc4878 Feat: Add search and levels to logs API (#2835)
* feat: add log levels and search query to log query

* feat: pass levels, search through

* feat: add log level to query

* feat: wire up levels and search query
2026-01-21 14:27:47 -05:00
Mohammed Nafees
6eba6fa91f Billing changes (#2643)
* make changes for billing

* progress around redesign

* meter callback

* modify limits

* upcoming subscription

* fix lint

* fix payment methods

* fix build

* PR comments

* address PR comments

* update cloud contracts

* fix migration name

* fix json serialization error

* loader and fixed for managed compute

* PR comments

* upgrade Go version

* fix migration name

* fix CI

* fix lint CI

* golangci-lint fix

* dedicated subscription
2026-01-19 12:15:11 +01:00
matt
3981626804 Fix: Concurrency display on workflow page (#2780)
* chore: add task concurrency

* feat: wire up new concurrency field

* feat: clean up table

* feat: some page cleanup

* chore: cleanup

* chore: revert python changes

* feat: code highlighter

* chore: lint
2026-01-12 15:44:44 -05:00
matt
1c4642f33d Chore: Regen SDKs (#2731)
* chore: gen python

* chore: start generating ts

* chore: regen ts

* chore: changelog

* fix: copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-31 08:34:48 -07:00
abelanger5
dd9c36c315 refactor: remove v0 paths from codebase (#2728)
* refactor: remove v0 paths from codebase

* remove uiVersion references
2025-12-30 09:57:00 -05:00
Mohammed Nafees
58758d35b2 Publish COULD_NOT_SEND_TO_WORKER OLAP event due to worker backlog (#2710)
* could not send to worker OLAP event

* fix lint and PR comments

* submodule GHA

* remove submodule

* no gitsubmodule

* fix migration

* revert sdk workflows

* revert sdk workflows

* revert sdk workflows
2025-12-26 09:35:15 -07:00
Gabe Ruttner
51464917f7 Feat: bulk management schedules (#2687)
* fix: filter + pagination state handling hack

* fix: use location.pathname

* update to go 1.25

* fix: add version to sdk-go.yml

* schedule run bulk actions

* lint

* typescript

* python

* lint

* docs

* lint docs

* lint

* feedback

* fix lint

* rm unused chunk

* rm statues

* i dont understand python linting sometimes

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2025-12-23 07:44:12 -08:00
matt
bb9f9e2609 Feat: New event getter + janky v0 fix (#2667)
* feat: v1 event get api

* feat: initial api work

* refactor: clean up existing impl

* chore: gen python

* feat: event get on the events client

* fix: order

* chore: another handler

* chore: new populator hack

* fix: populator

* chore: gen

* chore: version
2025-12-17 11:21:59 -05:00
matt
3a94d06bc6 Feat: Add oldest queued + running jobs to task stats (#2638)
* feat: add oldest item in task stat

* feat: extend query

* feat: api wiring

* fix: where we compute this

* chore: gen sdk

* chore: changelog, version
2025-12-11 09:54:12 -05:00
Jishnu
e82915b626 feat: add pagination support for V1LogLineList (#2354)
* feat: pagination for v1 loglines list

* add: sqlc v1 query for loglines count

* add: generated rest-client changes for python sdk

* refactor: frontend logs UI with pagination elements

* add: ts-sdk logline pagination, py logline list pagination docstring

* feat: add since queryparam for v1logline, add infinitescroll pagination on FE

* add custom polling for logs refresh on FE, remove inefficient default refresh logic

* add since queryparam of v1logline to all rest-clients

* refactor: remove offset query param, add until query param(v1logline)

* remove pagination from v1loglinelist

* fix: inconsistent scroll behaviour, add pagination response schema on v1loglist

* add: infinite scroll behavior for smooth log scrolling; prefetch next page logs in advance

* fix: pagination scroll, when task is running, remove stale pagination data when logs tab inactive

* chore: lint

* chore: lint

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2025-11-07 17:38:29 +01:00
Mohammed Nafees
91cdb28ddf Logs for liveness and readiness endpoints + PG conn stats (#2460)
* error logs for liveness and readiness endpoints with pg information

* use context timeout of 3 seconds

* context
2025-10-30 14:35:02 +01:00
Mohammed Nafees
56eb054a1e New tenant task stats endpoint (#2433)
* tenant workflow stats endpoint

* not olap but task

* lint

* enable rate limiting on endpoint

* fix SQL query

* spelling

* lesser CTEs

* fix query

* rename to task

* update query

* fix nil pointer

* typed API object

* queues have counts
2025-10-28 16:52:19 +01:00
matt
5b5adcb8ed Feat: Scheduled run detail view, bulk cancel / replay with pagination helper (#2416)
* feat: endpoint for listing external ids

* feat: wire up external id list

* chore: regen api

* feat: py sdk wrapper

* fix: since type

* fix: log

* fix: improve defaults for statuses

* feat: docs

* feat: docs

* fix: rm extra file

* feat: add id column to scheduled runs

* feat: side panel for scheduled runs

* fix: side panel header pinned

* fix: border + padding

* chore: gen

* chore: lint

* chore: changelog, version

* fix: spacing of cols

* fix: empty webhook resource limit

* fix: tsc

* fix: sort organizations and tenants alphabetically
2025-10-15 11:36:45 -04:00
matt
8fd90a29a6 Feat: Pausable Crons (#2395)
* feat: update query, patch route

* feat: api for update

* fix: simplify ui a bit

* feat: wire up fe

* feat: improve copy, spinners

* fix: invert naming to avoid horrible double negative

* fix: improve handling of optional types

* fix: last bits of naming

* feat: persist enabled flag across workflow versions properly

* fix: update spinner
2025-10-08 11:12:14 -04:00
Mohammed Nafees
648244fc9c use member populator for tenant member API ops (#2363) 2025-09-29 21:54:42 +02:00
matt
c1e5fa828b FE Polish, VI: Make badges dynamically sized, use slate instead of fuchsia for queued, display ms on dates (#2352)
* fix: rm w-full from badges

* fix: use slate instead of fuchsia for queued

* fix: use `date-funs` to parse + display dates

* fix: worker styling

* debug: redocly

* debug: redocly

* debug: redocly

* debug: redocly

* debug: redocly

* debug: redocly

* feat: direct workflow id getter

* fix: dedupe

* fix: return workflow type

* chore: lint

* chore: lint

* fix: overflow

* fix: include tenant in query for safety
2025-09-26 13:59:06 -04:00
matt
ced1ad43aa Feat: Filters UI, Events page refactor, Misc. other fixes (#2276)
* feat: initial filters page work

* feat: cols

* feat: start implementing filters in the hook

* fix: rm some effects

* fix: filter pagination

* fix: placeholder data, query key

* refactor: factor out popover + columns

* fix: tsc

* fix: empty state

* fix: move filters tab down

* fix: remove run id from scheduled runs table

* fix: rm unused

* fix: rm tmp change

* fix: rm one more

* fix: lint

* fix: colname

* feat: declarative checkmark, col key to name mapping

* fix: add more col key to name mappings

* fix: rm log

* fix: rm id checkboxes for events and filters

* refactor: start fixing event cols

* refactor: events hook

* fix: event id

* fix: clickable id

* fix: unwind example

* feat: delete mutation

* feat: form + schema

* feat: update + create mutations

* feat: filter detail

* feat: filter create

* feat: modify cols

* feat: filter detail side panel

* fix: json fallback

* fix: cursors, etc

* fix: cursor

* fix: invalidate

* fix: modal copy

* chore: lint

* fix: openapi spec
2025-09-11 13:41:12 -04:00
Gabe Ruttner
9459dad14d Feat improve auth error handling (#1893)
* common errors

* rate limits

* add IP extractor to api server

* use echo rate limit middleware func

* use rate limit for webhooks as well

---------

Co-authored-by: Mohammed Nafees <hello@mnafees.me>
2025-09-11 18:30:07 +02:00
matt
c42d59f5d8 Fix: Remove custom auth (#2203)
* fix: rm custom auth

* fix: change auth strategy
2025-08-26 13:57:24 -04:00
matt
80fb7657ed Fix: Child runs not rendering after one day, empty worker ids, additional meta filters not being applied to counts (#2196)
* fix: child runs not rendering b/c they've timed out of the lookback window

* fix: migration version

* fix: dead links

* fix: additional meta filters for status counts

* chore: lint
2025-08-25 18:20:08 -04:00
Gabe Ruttner
59fe6c110e feat: improved onboarding part 1 (#2186)
* feat: analytics events

* improved forms

* store state

* lint

* cleanup tenant name

* nits

* add environment to the form

* environment tag

* include env with tenant

* lint

* fix gen

* address comments

* feedback

* fix: layout

* navigation state

* rm dep

* lint

* address review

* lint

* lint

* fix: build
2025-08-25 11:14:34 -07:00
Mohammed Nafees
2603939526 Introduce customAuth to the OpenAPI spec (#2168)
* introduce custom auth

* support optional CustomAuthorizationHandler
2025-08-20 17:05:11 +02:00
matt
355a7f197e Feat: Add Linear to preconfigured webhooks (#2157)
* feat: add linear

* feat: linear fallthrough

* feat: linear

* fix: copy tweak
2025-08-18 12:19:43 -04:00
matt
36924936fa Feat: Webhook fixes / improvements (#2131)
* feat: webhook update

* feat: add headers to cel env

* fix: header casing

* feat: wire up edits

* fix: updates

* fix: finish wiring up updates

* fix: handle save on enter

* fix: lint

* feat: add slack and discord

* feat: initial slack setup

* fix: get slack working

* fix: rm discord for now

* fix: lint

* chore: gen

* fix: explicit save button

* feat: add link to CEL docs

* feat: add callout for reaching out to support

* feat: docs

* refactor: challenge

* fix: naming

* fix: return

* fix: resp codes

* fix: webhooks beta flag

* fix: rm discord

* fix: docs
2025-08-14 10:46:57 -05:00
Mohammed Nafees
e6c50ca1a0 Allow member roles to be changed by owners and admins (#2044)
* allow member roles to be changed by owners and admins

* PR comments

* chore: gen

* fix: rm changes to /next/

* chore: gen

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2025-07-30 17:42:34 -04:00
matt
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>
2025-07-30 13:27:38 -04:00
matt
c202ec8359 Feat: CEL Debug Endpoint (#2010)
* feat: openapi spec + gen

* feat: scaffold cel service

* feat: impl with discriminated union

* fix: reversed

* chore: gen py

* chore: gen + add cel to hatchet client

* feat: wire up TS CEL client

* chore: versions

* feat: impl for go

* fix: error handling

* feat: python tests
2025-07-20 22:44:08 -04:00
Matt Kaye
4676ae8508 FIx: Feedback on replay / cancel (#1997)
* feat: return a response from replays

* fix: return correct thing

* feat: wire up cancel + replay toasts on FE

* fix: naming

* fix: other refs

* fix: linter setup
2025-07-15 13:29:52 -04:00
abelanger5
6e820a120c feat: waterfall component (#1952)
* tmp: waterfall component

* feat: waterfall component

* address pr review comments
2025-07-04 14:47:30 -04:00
Mohammed Nafees
ef498a6235 Introduce tenant Prometheus metrics (#1875)
* introduce tenant workflow completed metric

* expose tenant prom metrics via handler

* fix workflow and worker id in metrics

* correctly add workflow metrics from workflow controller

* use olap DB to gather information for workflow completion

* fix prom metrics endpoint for tenant

* workflow name from external id

* simplify tenant registry based metrics

* add docs for prometheus metrics

* fix docs lint

* run prettier fix

* WIP metrics work

* use federate prom server URL to proxy metrics

* implement workflow duration histogram metric

* separate prom stack docker compose

* fix duration metrics calls

* move scheduler metrics to prom tenant specific file

* update docs for prom metrics

* fix lint

* use proper indices to query for durations

* reorg tenant metrics

* fix lint for doc

* update docs with promql examples and casing around prom metrics enabled

* update prom server url

* fix lint

* enabled prom metrics for v1 only from controller
2025-06-27 11:46:31 -04:00
Matt Kaye
a45816c6c2 Fix: Streaming + Misc SDK Fixes (#1903)
* fix: filters contracts + version bumps

* chore: gen

* feat: implement streaming for ts

* fix: v0 sdk side by side

* fix: optional status on semaphore slots

* fix: gen script

* chore: lint + gen

* chore: gen

* fix: fmt

* fix: revert changes

* feat: handle incorrect return types

* fix: worker status not assigned

* fix: improve handling of other types of pydantic models

* fix: handle null output case

* fix: get group key

* fix: info level log for non-retry

* fix: export non retry at top level

* fix: changelog

* chore: gen

* chore: gen
2025-06-26 17:42:34 -04:00
Matt Kaye
25a98cf372 Feat: Copy workflow config from run pages (#1901)
* feat: add workflow details to more responses

* send workflow version back with task summary

* feat: add copy to run page

* feat: wire up button on other pages

* fix: copy
2025-06-25 13:26:13 -04:00
Matt Kaye
a887c62809 Fix: Store CreateWorkflowVersionOpts for debugging (#1890)
* feat: add json column for opts

* feat: wiring

* feat: send config through the api

* feat: FE

* fix: order

* fix: hide sched timeout

* fix: lint

* fix: return mutated opts

* fix: adv section

* fix: remove unnecessary headers

* feat: styling improvements to settings

* feat: styling, pt ii

* feat: styling, pt iii

* fix: cron
2025-06-23 16:56:22 -04:00
Matt Kaye
4348dc99e5 Feat: Events Frontend, Redux (#1859)
* feat: add params to events api

* feat: add more filters to event query

* fix: count query

* feat: start wiring up events queries

* feat: overwrites for queries

* feat: query for event keys

* feat: wire up event key api

* feat: wire up two queries on fe

* feat: fix more wiring

* feat: display event data

* fix: styling

* feat: sidebar

* fix: types + default viz

* feat: scope filter

* feat: index

* fix: queries

* fix: queries, deduping, popover

* fix: lint

* feat: add filter id col to the event to run table

* feat: add filter id to copy

* feat: wire filter through to the db

* feat: send back triggered run ids over the api

* fix: query

* feat: json obj for triggered runs on the event

* fix: cast trick to rm overwrite

* fix: migration

* fix: rm search

* fix: don't show counts on runs modal

* fix: key

* chore: gen ts

* chore: python

* fix: changelog
2025-06-13 14:16:08 -04:00
Matt Kaye
2591c1a4b0 FE Burndown VII: List View, Onboarding, Misc other stuff (#1851)
* fix: selection states, part i

* fix: selected task deduplication

* fix: naming

* chore: gen

* chore: cruft

* fix: rm cruft

* fix: time filter width on smaller screens

* fix: add cancel badge

* fix: extend timeout of recenter

* fix: exclude more filters on main view

* fix: metadata tooltip / popover layout shift, excluded filters

* fix: more excluded filters

* fix: improve events tooltips

* fix: shad label

* fix: rm worker details side panel

* fix: activity filters

* fix: error message

* fix: start unbreaking onboarding

* feat: add param for engine version on tenant create

* fix: wire up tenant version

* fix: continue reverting onboarding

* fix: sidebar + link

* fix: linters

* fix: default ver

* fix: engine ver handling

* fix: simplify

* fix: simplify

* fix: pluralize build to avoid being dockerignored
2025-06-11 16:30:40 -04:00