Commit Graph

280 Commits

Author SHA1 Message Date
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
abelanger5
a6e88074de refactor: have log line lookups use external id (#2822)
* fix: modify log line query to use external id

* pass in task external id
2026-01-20 11:17:06 -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
Mohammed Nafees
a0233964db New onboarding flow (#2757)
Updates the onboarding flow to make it CLI-based.
2026-01-16 10:09:44 -05: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
abelanger5
32188b5a85 fix: better error on deprecated endpoints (#2763) 2026-01-08 11:32:14 -05:00
Andrei Gaspar
4dda2b2884 Send create:user Event from OAuth Flow (#2683)
* feat: Send create:user event from OAuth flow

* feat: Implement user and tenant creation events in callbacks

* move callback into cb.Do

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2026-01-06 14:06:38 -05:00
abelanger5
9f463e92d6 refactor: move v1 packages, remove webhook worker references (#2749)
* chore: move v1 packages, remove webhook worker references

* chore: move msgqueue

* fix: relative paths in sqlc.yaml
2026-01-02 11:42:40 -05:00
abelanger5
f82d3bd071 refactor: consolidate repository methods (#2730)
* refactor: remove v0 paths from codebase

* remove uiVersion references

* refactor: remove v0-exclusive database queries

* remove webhook test

* chore: move api token repository

* chore: move dispatcher repository to v1

* chore: move health repository to v1

* chore: remove event repository

* remove some unused repositories

* chore: move mq implementation to v1

* chore: consolidate rate limit implementations

* chore: move security check to v1 repository

* chore: move slack to v1 repository

* chore: move sns implementation to v1 repository

* clean up step repository

* chore: move tenant invite to v1 repository

* chore: move limits, workers, tenant alerts to v1 repository

* chore: move user, tenant, userSession to v1 repository

* chore: move ticker to v1 repository

* chore: move scheduled workflows to v1 repository

* chore: remove workflows

* fix: remove pointer for limits config file

* propagate cache value to api token

* propagate cache durations
2025-12-31 16:35:46 -05:00
abelanger5
f57ebf7546 refactor: remove v0-exclusive database queries (#2729)
* refactor: remove v0 paths from codebase

* remove uiVersion references

* refactor: remove v0-exclusive database queries

* remove webhook test
2025-12-31 09:36:12 -05: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
matt
735742c466 Revert "Revert "chore: run list query optimizations (#2670)" (#2708)" (#2720)
This reverts commit 2f301e55cf.
2025-12-26 10:11:02 -07: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
matt
2f301e55cf Revert "chore: run list query optimizations (#2670)" (#2708)
This reverts commit 87b57febe8.
2025-12-23 17:10:47 -05:00
matt
b65c6de53f Feat: Hatchet Metrics Monitoring, I (#2699)
* Revert "Revert "Feat: Hatchet Metrics Monitoring, I (#2480)" (#2698)"

This reverts commit b87150767a.

* go mod tidy

---------

Co-authored-by: Mohammed Nafees <hello@mnafees.me>
2025-12-23 20:14:14 +01:00
Gabe Ruttner
87b57febe8 chore: run list query optimizations (#2670)
* add missing tenant index

* fix span name

* parallelize

* instrument tenant id attribute

* feedback

* cleanup migrations

* rename migration

* correct version

* cleanup
2025-12-23 08:59:13 -08:00
Gabe Ruttner
670e015fe4 feat: improved error boundaries (#2689)
* improved error boundaries

* dont panic on invalid uuid..

* resources

* rm bad test

* lint

* feedback

* feedback
2025-12-23 08:01:01 -08: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
b87150767a Revert "Feat: Hatchet Metrics Monitoring, I (#2480)" (#2698)
This reverts commit fdc075ec6f.
2025-12-22 16:26:14 -05:00
matt
fdc075ec6f Feat: Hatchet Metrics Monitoring, I (#2480)
* feat: queries + task methods for oldest running task and oldest task

* feat: worker slot and sdk metrics

* feat: wal metrics

* repository stub

* feat: add meter provider thingy

* pg queries

* fix: add task

* feat: repo methods for worker metrics

* feat: active workers query, fix where clauses

* fix: aliasing

* fix: sql, cleanup

* chore: cast

* feat: olap queries

* feat: olap queries

* feat: finish wiring up olap status update metrics

* chore: lint

* chore: lint

* fix: dupes, other code review comments

* send metrics to OTel collector

* last autovac

* flag

* logging updates

* address PR comments

---------

Co-authored-by: gabriel ruttner <gabriel.ruttner@gmail.com>
Co-authored-by: Mohammed Nafees <hello@mnafees.me>
2025-12-23 01:04:02 +05:30
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
Sid Premkumar
65bd347e94 Add support for slack slash commands in webhook (#2630) 2025-12-09 18:39:31 -05:00
Sid Premkumar
958448a5a3 Fix slack challenge + interactive webhook (#2612)
* Fix slack challage

* ensure we continue if its not a challange

* fix

* update doc string

* PR feedback + lint

* more debug logs

* more logging

* more logging

* clean

* revert challange stuff + update error message

* Update log + error message

* More warn + unsanitized returns
2025-12-08 11:37:00 -05:00
matt
9a6d2b5e8f Feat: Add tooltip showing full step name on hover (#2563)
* fix: panic

* fix: add tooltip

* debug: remove parallel

* debug: try running against staging

* fix: revert ci changes
2025-11-25 17:27:24 -05:00
matt
727a8fe470 Fix: OLAP Task Event Dual Write Bug (#2572)
* fix: task events bug

* fix: fallback bug

* fix: simplfiy test
2025-11-25 17:24:56 -05:00
Gabe Ruttner
c6709bac32 ops: add spans to worker list handler (#2554)
* add spans

* no top level span
2025-11-21 11:24:13 -08:00
matt
62a163d835 Fix: Revert n+1 queries on the list API (#2531)
* feat: revert query

* feat: revert n+1 query

* feat: revert another n+1 query

* fix: payloads
2025-11-17 10:54:05 -05:00
matt
13402ef940 Feat: REST API Instrumentation (#2529)
* feat: instrument the api

* fix: fmt

* fix: paths

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-14 13:49:40 -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
matt
a5c30ef9c3 Fix: Propagate parent id through to V1TaskSummary properly (#2496)
* fix: propagate parent id properly

* fix: pointers
2025-11-06 16:03:09 +01:00
matt
99544bbd4e Fix: read payloads from payload store for event API (#2471)
* fix: read payloads from payload store

* debug: add log

* debug: more log lines

* fix: bug

* fix: rm debug lines

* fix: comment loc
2025-10-31 00:57:36 +01:00
Mohammed Nafees
dc77404030 increase timeout and log more (#2464) 2025-10-30 19:08:25 +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
f1eccfddf4 [hotfix] Fix running task stats without concurrency keys (#2452)
* fix task stats running

* formatting

* if block fix
2025-10-28 22:19:52 +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
c6e154fd03 Feat: OLAP Payloads (#2410)
* feat: olap payloads table

* feat: olap queue messages for payload puts

* feat: wire up writes on task write

* driveby: add + ignore psql-connect

* fix: down migration

* fix: use external id for pk

* fix: insert query

* fix: more external ids

* fix: bit more cleanup

* feat: dags

* fix: the rest of the refs

* fix: placeholder uuid

* fix: write external ids

* feat: wire up messages over the queue

* fix: panic

* Revert "fix: panic"

This reverts commit c0adccf2ea.

* Revert "feat: wire up messages over the queue"

This reverts commit 36f425f3c1.

* fix: rm unused method

* fix: rm more

* fix: rm cruft

* feat: wire up failures

* feat: start wiring up completed events

* fix: more wiring

* fix: finish wiring up completed event payloads

* fix: lint

* feat: start wiring up external ids in the core

* feat: olap pub

* fix: add returning

* fix: wiring

* debug: log lines for pubs

* fix: external id writes

* Revert "debug: log lines for pubs"

This reverts commit fe430840bd.

* fix: rm sample

* debug: rm pub buffer param

* Revert "debug: rm pub buffer param"

This reverts commit b42a5cacbb.

* debug: stuck queries

* debug: more logs

* debug: yet more logs

* fix: rename BulkRetrieve -> Retrieve

* chore: lint

* fix: naming

* fix: conn leak in putpayloads

* fix: revert debug

* Revert "debug: more logs"

This reverts commit 95da7de64f.

* Revert "debug: stuck queries"

This reverts commit 8fda64adc4.

* feat: improve getters, olap getter

* fix: key type

* feat: first pass at pulling olap payloads from the payload store

* fix: start fixing bugs

* fix: start reworking `includePayloads` param

* fix: include payloads wiring

* feat: analyze for payloads

* fix: simplify writes more + write event payloads

* feat: read out event payloads

* feat: env vars for dual writes

* refactor: clean up task prop drilling a bit

* feat: add include payloads params to python for tests

* fix: tx commit

* fix: dual writes

* fix: not null constraint

* fix: one more

* debug: logging

* fix: more debugging, tweak function sig

* fix: function sig

* fix: refs

* debug: more logging

* debug: more logging

* debug: fix condition

* debug: overwrite properly

* fix: revert debug

* fix: rm more drilling

* fix: comments

* fix: partitioning jobs

* chore: ver

* fix: bug, docs

* hack: dummy id and inserted at for payload offloads

* fix: bug

* fix: no need to handle offloads for task event data

* hack: jitter + current ts

* fix: short circuit

* fix: offload payloads in a tx

* fix: uncomment sampling

* fix: don't offload if external store is disabled

* chore: gen sqlc

* fix: migration

* fix: start reworking types

* fix: couple more

* fix: rm unused code

* fix: drill includePayloads down again

* fix: silence annoying error in some cases

* fix: always store payloads

* debug: use workflow run id for input

* fix: improve logging

* debug: logging on retrieve

* debug: task input

* fix: use correct field

* debug: write even null payloads to limit errors

* debug: hide error lines

* fix: quieting more errors

* fix: duplicate example names, remove print lines

* debug: add logging for olap event writes

* hack: immediate event offloads and cutovers

* fix: rm log line

* fix: import

* fix: short circuit events

* fix: duped names
2025-10-20 09:09:49 -04:00
Mohammed Nafees
e2b1f1353e Fix OTel span attribute naming convention (#2409)
* rename spans according to convention

* low cardinality
2025-10-16 18:43:40 +02:00
Mohammed Nafees
8565d364ec [hotfix] Avoid throwing error logs from ratelimit MW for invalid API routes (#2420)
* do not throw error level logs for invalid API routes from ratelimit MW

* use zerolog
2025-10-16 00:13:54 +02: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
ee17433ac9 Fix: Event getter backwards compat (#2337)
* feat: query for getting event in v1

* feat: extend populator to fetch v1 event

* fix: rm debug

* fix: simplify join

* fix: ctx
2025-09-24 17:10:20 -04:00
matt
d2cab4924a Fix: use SplitN instead of Split (#2336) 2025-09-24 15:26:38 -04:00
matt
ef51914f8b Fix: DAG details rendering in side panel, backwards compatible event list API (#2309)
* fix: open side panel from mini map

* feat: backwards compatible-ish event list for v0
2025-09-17 13:37:08 -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