mirror of
https://github.com/hatchet-dev/hatchet.git
synced 2026-01-23 00:59:56 -06:00
* 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>
234 lines
10 KiB
YAML
234 lines
10 KiB
YAML
openapi: 3.1.0
|
|
servers:
|
|
- url: ""
|
|
info:
|
|
version: 1.0.0
|
|
title: Hatchet API
|
|
description: The Hatchet API
|
|
security:
|
|
- bearerAuth: []
|
|
- cookieAuth: []
|
|
components:
|
|
securitySchemes:
|
|
bearerAuth:
|
|
type: http
|
|
scheme: bearer
|
|
cookieAuth:
|
|
type: apiKey
|
|
in: cookie
|
|
name: hatchet
|
|
schemas:
|
|
$ref: "./components/schemas/_index.yaml"
|
|
paths:
|
|
/api/v1/stable/tasks/{task}:
|
|
$ref: "./paths/v1/tasks/tasks.yaml#/getTask"
|
|
/api/v1/stable/tasks/{task}/task-events:
|
|
$ref: "./paths/v1/tasks/tasks.yaml#/listTaskEvents"
|
|
/api/v1/stable/tasks/{task}/logs:
|
|
$ref: "./paths/v1/tasks/tasks.yaml#/listLogs"
|
|
/api/v1/stable/tenants/{tenant}/tasks/cancel:
|
|
$ref: "./paths/v1/tasks/tasks.yaml#/cancelTasks"
|
|
/api/v1/stable/tenants/{tenant}/tasks/replay:
|
|
$ref: "./paths/v1/tasks/tasks.yaml#/replayTasks"
|
|
/api/v1/stable/dags/tasks:
|
|
$ref: "./paths/v1/tasks/tasks.yaml#/listTasksByDAGIds"
|
|
/api/v1/stable/tenants/{tenant}/workflow-runs:
|
|
$ref: "./paths/v1/workflow-runs/workflow_run.yaml#/listWorkflowRuns"
|
|
/api/v1/stable/tenants/{tenant}/workflow-runs/display-names:
|
|
$ref: "./paths/v1/workflow-runs/workflow_run.yaml#/listWorkflowRunDisplayNames"
|
|
/api/v1/stable/tenants/{tenant}/workflow-runs/trigger:
|
|
$ref: "./paths/v1/workflow-runs/workflow_run.yaml#/trigger"
|
|
/api/v1/stable/workflow-runs/{v1-workflow-run}:
|
|
$ref: "./paths/v1/workflow-runs/workflow_run.yaml#/getWorkflowRunDetails"
|
|
/api/v1/stable/workflow-runs/{v1-workflow-run}/status:
|
|
$ref: "./paths/v1/workflow-runs/workflow_run.yaml#/getWorkflowRunStatus"
|
|
/api/v1/stable/workflow-runs/{v1-workflow-run}/task-events:
|
|
$ref: "./paths/v1/workflow-runs/workflow_run.yaml#/listTaskEventsForWorkflowRun"
|
|
/api/v1/stable/workflow-runs/{v1-workflow-run}/task-timings:
|
|
$ref: "./paths/v1/workflow-runs/workflow_run.yaml#/getTimings"
|
|
/api/v1/stable/tenants/{tenant}/task-metrics:
|
|
$ref: "./paths/v1/tasks/tasks.yaml#/getTaskStatusMetrics"
|
|
/api/v1/stable/tenants/{tenant}/task-point-metrics:
|
|
$ref: "./paths/v1/tasks/tasks.yaml#/getTaskPointMetrics"
|
|
/api/v1/stable/tenants/{tenant}/events:
|
|
$ref: "./paths/v1/events/event.yaml#/V1EventList"
|
|
/api/v1/stable/tenants/{tenant}/events/keys:
|
|
$ref: "./paths/v1/events/event.yaml#/keys"
|
|
/api/v1/stable/tenants/{tenant}/filters:
|
|
$ref: "./paths/v1/filters/filter.yaml#/V1FilterListCreate"
|
|
/api/v1/stable/tenants/{tenant}/filters/{v1-filter}:
|
|
$ref: "./paths/v1/filters/filter.yaml#/V1FilterGetDeleteUpdate"
|
|
/api/v1/stable/tenants/{tenant}/webhooks:
|
|
$ref: "./paths/v1/webhooks/webhook.yaml#/V1WebhookListCreate"
|
|
|
|
# !!! IMPORTANT: we directly reference this path in the webhook rate limiter in `webhook_rate_limit.go`
|
|
# changing this path will break the rate limiter. !!!
|
|
/api/v1/stable/tenants/{tenant}/webhooks/{v1-webhook}:
|
|
$ref: "./paths/v1/webhooks/webhook.yaml#/V1WebhookGetDeleteReceive"
|
|
/api/v1/stable/tenants/{tenant}/cel/debug:
|
|
$ref: "./paths/v1/cel/cel.yaml#/V1CELDebug"
|
|
/api/ready:
|
|
$ref: "./paths/metadata/metadata.yaml#/readiness"
|
|
/api/live:
|
|
$ref: "./paths/metadata/metadata.yaml#/liveness"
|
|
/api/v1/meta:
|
|
$ref: "./paths/metadata/metadata.yaml#/metadata"
|
|
/api/v1/cloud/metadata:
|
|
$ref: "./paths/metadata/metadata.yaml#/cloudMetadata"
|
|
/api/v1/meta/integrations:
|
|
$ref: "./paths/metadata/metadata.yaml#/listIntegrations"
|
|
/api/v1/users/login:
|
|
$ref: "./paths/user/user.yaml#/login"
|
|
/api/v1/users/google/start:
|
|
$ref: "./paths/user/user.yaml#/oauth-start-google"
|
|
/api/v1/users/google/callback:
|
|
$ref: "./paths/user/user.yaml#/oauth-callback-google"
|
|
/api/v1/users/github/start:
|
|
$ref: "./paths/user/user.yaml#/oauth-start-github"
|
|
/api/v1/users/github/callback:
|
|
$ref: "./paths/user/user.yaml#/oauth-callback-github"
|
|
/api/v1/tenants/{tenant}/slack/start:
|
|
$ref: "./paths/user/user.yaml#/oauth-start-slack"
|
|
/api/v1/users/slack/callback:
|
|
$ref: "./paths/user/user.yaml#/oauth-callback-slack"
|
|
/api/v1/sns/{tenant}/{event}:
|
|
$ref: "./paths/ingestors/ingestors.yaml#/sns"
|
|
/api/v1/tenants/{tenant}/sns:
|
|
$ref: "./paths/ingestors/ingestors.yaml#/snsIntegration"
|
|
/api/v1/tenants/{tenant}/alerting-email-groups:
|
|
$ref: "./paths/tenant/tenant.yaml#/tenantAlertEmailGroups"
|
|
/api/v1/tenants/{tenant}/resource-policy:
|
|
$ref: "./paths/tenant/tenant.yaml#/tenantResourcePolicy"
|
|
/api/v1/alerting-email-groups/{alert-email-group}:
|
|
$ref: "./paths/tenant/tenant.yaml#/alertEmailGroup"
|
|
/api/v1/sns/{sns}:
|
|
$ref: "./paths/ingestors/ingestors.yaml#/deleteSNS"
|
|
/api/v1/tenants/{tenant}/slack:
|
|
$ref: "./paths/slack/slack.yaml#/slackWebhook"
|
|
/api/v1/slack/{slack}:
|
|
$ref: "./paths/slack/slack.yaml#/deleteSlack"
|
|
/api/v1/users/current:
|
|
$ref: "./paths/user/user.yaml#/current"
|
|
/api/v1/users/password:
|
|
$ref: "./paths/user/user.yaml#/update-password"
|
|
/api/v1/users/register:
|
|
$ref: "./paths/user/user.yaml#/register"
|
|
/api/v1/users/logout:
|
|
$ref: "./paths/user/user.yaml#/logout"
|
|
/api/v1/users/memberships:
|
|
$ref: "./paths/user/user.yaml#/memberships"
|
|
/api/v1/users/invites:
|
|
$ref: "./paths/user/user.yaml#/invites"
|
|
/api/v1/users/invites/accept:
|
|
$ref: "./paths/user/user.yaml#/acceptInvite"
|
|
/api/v1/users/invites/reject:
|
|
$ref: "./paths/user/user.yaml#/rejectInvite"
|
|
/api/v1/tenants:
|
|
$ref: "./paths/tenant/tenant.yaml#/tenants"
|
|
/api/v1/tenants/{tenant}:
|
|
$ref: "./paths/tenant/tenant.yaml#/updateTenants"
|
|
/api/v1/tenants/{tenant}/alerting/settings:
|
|
$ref: "./paths/tenant/tenant.yaml#/tenantAlertingSettings"
|
|
/api/v1/tenants/{tenant}/invites:
|
|
$ref: "./paths/tenant/tenant.yaml#/invites"
|
|
/api/v1/tenants/{tenant}/invites/{tenant-invite}:
|
|
$ref: "./paths/tenant/tenant.yaml#/inviteScoped"
|
|
/api/v1/tenants/{tenant}/api-tokens:
|
|
$ref: "./paths/api-tokens/api_tokens.yaml#/withTenant"
|
|
/api/v1/api-tokens/{api-token}:
|
|
$ref: "./paths/api-tokens/api_tokens.yaml#/revoke"
|
|
/api/v1/tenants/{tenant}/queue-metrics:
|
|
$ref: "./paths/tenant/tenant.yaml#/getQueueMetrics"
|
|
/api/v1/tenants/{tenant}/step-run-queue-metrics:
|
|
$ref: "./paths/tenant/tenant.yaml#/getStepRunQueueMetrics"
|
|
/api/v1/tenants/{tenant}/events:
|
|
$ref: "./paths/event/event.yaml#/withTenant"
|
|
/api/v1/tenants/{tenant}/events/bulk:
|
|
$ref: "./paths/event/event.yaml#/bulkCreateEvents"
|
|
/api/v1/tenants/{tenant}/events/replay:
|
|
$ref: "./paths/event/event.yaml#/replayEvents"
|
|
/api/v1/tenants/{tenant}/events/cancel:
|
|
$ref: "./paths/event/event.yaml#/cancelEvents"
|
|
/api/v1/tenants/{tenant}/rate-limits:
|
|
$ref: "./paths/rate-limits/rate_limits.yaml#/withTenant"
|
|
/api/v1/tenants/{tenant}/members:
|
|
$ref: "./paths/tenant/tenant.yaml#/members"
|
|
/api/v1/tenants/{tenant}/members/{member}:
|
|
$ref: "./paths/tenant/tenant.yaml#/member"
|
|
/api/v1/events/{event}:
|
|
$ref: "./paths/event/event.yaml#/withEvent"
|
|
/api/v1/events/{event}/data:
|
|
$ref: "./paths/event/event.yaml#/eventData"
|
|
/api/v1/tenants/{tenant}/events/keys:
|
|
$ref: "./paths/event/event.yaml#/keys"
|
|
/api/v1/tenants/{tenant}/workflows:
|
|
$ref: "./paths/workflow/workflow.yaml#/withTenant"
|
|
/api/v1/tenants/{tenant}/workflows/{workflow}/scheduled:
|
|
$ref: "./paths/workflow/workflow.yaml#/scheduledCreate"
|
|
/api/v1/tenants/{tenant}/workflows/scheduled:
|
|
$ref: "./paths/workflow/workflow.yaml#/scheduledList"
|
|
/api/v1/tenants/{tenant}/workflows/scheduled/{scheduled-workflow-run}:
|
|
$ref: "./paths/workflow/workflow.yaml#/scheduled"
|
|
/api/v1/tenants/{tenant}/workflows/{workflow}/crons:
|
|
$ref: "./paths/workflow/workflow.yaml#/cronsCreate"
|
|
/api/v1/tenants/{tenant}/workflows/crons:
|
|
$ref: "./paths/workflow/workflow.yaml#/cronsList"
|
|
/api/v1/tenants/{tenant}/workflows/crons/{cron-workflow}:
|
|
$ref: "./paths/workflow/workflow.yaml#/crons"
|
|
/api/v1/tenants/{tenant}/workflows/cancel:
|
|
$ref: "./paths/workflow/workflow.yaml#/cancelWorkflowRuns"
|
|
/api/v1/workflows/{workflow}:
|
|
$ref: "./paths/workflow/workflow.yaml#/withWorkflow"
|
|
/api/v1/workflows/{workflow}/versions:
|
|
$ref: "./paths/workflow/workflow.yaml#/workflowVersion"
|
|
/api/v1/workflows/{workflow}/trigger:
|
|
$ref: "./paths/workflow/workflow.yaml#/triggerWorkflow"
|
|
/api/v1/workflows/{workflow}/metrics:
|
|
$ref: "./paths/workflow/workflow.yaml#/getMetrics"
|
|
/api/v1/step-runs/{step-run}/logs:
|
|
$ref: "./paths/log/log.yaml#/withStepRun"
|
|
/api/v1/step-runs/{step-run}/events:
|
|
$ref: "./paths/step-run/step-run.yaml#/listEvents"
|
|
/api/v1/tenants/{tenant}/workflow-runs/{workflow-run}/step-run-events:
|
|
$ref: "./paths/step-run/step-run.yaml#/listStepRunEventsForWorkflowRun"
|
|
/api/v1/step-runs/{step-run}/archives:
|
|
$ref: "./paths/step-run/step-run.yaml#/listArchives"
|
|
/api/v1/tenants/{tenant}/workflows/{workflow}/worker-count:
|
|
$ref: "./paths/workflow/workflow.yaml#/workflowWorkersCount"
|
|
/api/v1/tenants/{tenant}/workflows/runs:
|
|
$ref: "./paths/workflow/workflow.yaml#/workflowRuns"
|
|
/api/v1/tenants/{tenant}/workflow-runs/replay:
|
|
$ref: "./paths/workflow-run/workflow-run.yaml#/replayWorkflowRuns"
|
|
/api/v1/tenants/{tenant}/workflows/runs/metrics:
|
|
$ref: "./paths/workflow/workflow.yaml#/workflowRunsMetrics"
|
|
/api/v1/tenants/{tenant}/workflow-runs/{workflow-run}:
|
|
$ref: "./paths/workflow/workflow.yaml#/workflowRun"
|
|
/api/v1/tenants/{tenant}/workflow-runs/{workflow-run}/shape:
|
|
$ref: "./paths/workflow/workflow.yaml#/workflowRunShape"
|
|
/api/v1/tenants/{tenant}/step-runs/{step-run}:
|
|
$ref: "./paths/step-run/step-run.yaml#/stepRunScoped"
|
|
/api/v1/tenants/{tenant}/step-runs/{step-run}/rerun:
|
|
$ref: "./paths/step-run/step-run.yaml#/rerunStepRun"
|
|
/api/v1/tenants/{tenant}/step-runs/{step-run}/cancel:
|
|
$ref: "./paths/step-run/step-run.yaml#/cancelStepRun"
|
|
/api/v1/tenants/{tenant}/step-runs/{step-run}/schema:
|
|
$ref: "./paths/step-run/step-run.yaml#/getSchema"
|
|
/api/v1/tenants/{tenant}/worker:
|
|
$ref: "./paths/worker/worker.yaml#/withTenant"
|
|
/api/v1/workers/{worker}:
|
|
$ref: "./paths/worker/worker.yaml#/withWorker"
|
|
/api/v1/tenants/{tenant}/webhook-workers:
|
|
$ref: "./paths/webhook-worker/webhook-worker.yaml#/webhookworkers"
|
|
/api/v1/webhook-workers/{webhook}:
|
|
$ref: "./paths/webhook-worker/webhook-worker.yaml#/webhookworker"
|
|
/api/v1/webhook-workers/{webhook}/requests:
|
|
$ref: "./paths/webhook-worker/webhook-worker.yaml#/webhookworkerRequests"
|
|
/api/v1/tenants/{tenant}/workflow-runs/{workflow-run}/input:
|
|
$ref: "./paths/workflow-run/workflow-run.yaml#/getWorkflowRunInput"
|
|
/api/v1/monitoring/{tenant}/probe:
|
|
$ref: "./paths/monitoring/monitoring.yaml#/probe"
|
|
/api/v1/version:
|
|
$ref: "./paths/info/version.yaml#/version"
|
|
/api/v1/tenants/{tenant}/prometheus-metrics:
|
|
$ref: "./paths/tenant/tenant.yaml#/getPrometheusMetrics"
|