Skip to content

Roles and permissions ​

Three roles, each including the ones before it: viewer < operator < admin. A route that names no role needs viewer for a GET and operator for any other method. A role that is too low answers 403 forbidden_role, whatever the credential. The SDK token (JOOBQUI_SDK_TOKEN) acts as an operator on /api/v1/sdk/* only.

No sign-in (10) ​

OperationWhat it does
POST /api/v1/accountsSign up for an account, where sign-up is open or by invite
GET /api/v1/capabilitiesWhat this server can do and its limits
POST /api/v1/email/resendSend the verification email again
POST /api/v1/email/verifyConfirm an email address with its token
GET /api/v1/openapi.jsonThe OpenAPI 3.1 description of this API
POST /api/v1/password/forgotAsk for a password reset link by email
POST /api/v1/password/resetSet a new password with a reset token
GET /api/v1/sdk/openapi.jsonDescribe the Polyglot SDK Gateway API as an OpenAPI 3.1 document
POST /api/v1/sessionSign in with a username or email and a password
POST /api/v1/session/mfaFinish a sign-in with a one-time code or a recovery code

viewer (36) ​

OperationWhat it does
GET /api/v1/alertsAlert overview: active alerts, rules and recent history
GET /api/v1/alerts/activeList the alerts firing now
GET /api/v1/alerts/historyPage through past alerts
GET /api/v1/alerts/optionsWhat alert rules can watch and notify
GET /api/v1/alerts/rulesList the alert rules
GET /api/v1/dlqPage through the dead letters, newest first
GET /api/v1/export/dlqDownload the dead letters as CSV or JSON
GET /api/v1/export/queuesDownload the queue list as CSV or JSON
GET /api/v1/jobsPage through jobs in one state, optionally of one queue
GET /api/v1/jobs/:jidFind a job by its jid
GET /api/v1/queuesList the queues with their sizes and workers
GET /api/v1/queues/:name/jobsPage through a queue's waiting jobs
GET /api/v1/schedulesList the configured schedules
GET /api/v1/schedules/:idShow one schedule
GET /api/v1/sdk/workflows/:idDescribe one workflow run: status, output, failure and search attributes
GET /api/v1/sdk/workflows/:id/historyThe events of a workflow run, after after_seq, at most limit
GET /api/v1/sdk/workflows/:id/resultThe outcome of a workflow, following continue-as-new; waits up to wait_ms for it to close
DELETE /api/v1/sessionSign out
GET /api/v1/sessionWho the caller is and their role
GET /api/v1/telemetry/summaryHeadline numbers, throughput and latency percentiles
GET /api/v1/workersList the registered worker processes
GET /api/v1/workflow-archiveRuns exported to the archive before retention deleted them, newest first
GET /api/v1/workflow-archive/:idAn archived run: its final state and a page of its events
GET /api/v1/workflow-attributesThe registered search attributes and their types
GET /api/v1/workflow-buildsThe worker build sets, what is pinned to each and whether workers are alive
GET /api/v1/workflow-builds/pinnedHow many open runs are pinned to each build set
GET /api/v1/workflow-definitionsSearch the workflow names that can be started
GET /api/v1/workflow-retentionWhether finished workflows are pruned, and what the last pass removed
GET /api/v1/workflow-schedulerWhether anything is firing workflow schedules
GET /api/v1/workflow-schedulesList the workflow schedules
GET /api/v1/workflow-schedules/:idShow one workflow schedule with its next runs
GET /api/v1/workflowsPage through workflow runs, newest first
GET /api/v1/workflows/:idShow one run with its steps
GET /api/v1/workflows/:id/historyThe events of a run
GET /api/v1/workflows/:id/runsThe runs of the continue-as-new chain a run belongs to
GET /api/v1/workflows/:id/updates/:nameThe recorded outcome of an update

operator (56) ​

OperationWhat it does
POST /api/v1/alerts/rulesCreate an alert rule
DELETE /api/v1/alerts/rules/:idDelete an alert rule
PUT /api/v1/alerts/rules/:idEnable or disable an alert rule
POST /api/v1/alerts/:id/acknowledgeAcknowledge an alert
POST /api/v1/dlq/purgeDelete dead letters by jid, or all of them (optionally one queue's)
POST /api/v1/dlq/redriveRe-drive dead letters back onto their queues
POST /api/v1/jobs/deleteDelete jobs in bulk
POST /api/v1/jobs/retryRetry jobs in bulk (a dead job is re-driven, a delayed one runs now)
DELETE /api/v1/jobs/:jidDelete one job
POST /api/v1/jobs/:jid/retryRetry one job
POST /api/v1/queues/:name/clearDelete every waiting job of a queue
PUT /api/v1/queues/:name/concurrencyAsk the workers for a different concurrency on a queue
POST /api/v1/queues/:name/pausePause a queue: workers stop taking its jobs
POST /api/v1/queues/:name/resumeResume a paused queue
DELETE /api/v1/queues/:name/throttleRemove the throttle set on a queue from the console or the API
PUT /api/v1/queues/:name/throttleThrottle a queue that only SDK workers serve: at most limit claims per period_ms
POST /api/v1/schedules/:id/pausePause a schedule
POST /api/v1/schedules/:id/resumeResume a paused schedule
POST /api/v1/schedules/:id/runEnqueue one run of a schedule now
POST /api/v1/sdk/blueprintsRegister a workflow blueprint, versioned by its content hash
POST /api/v1/sdk/jobsEnqueue a background job onto a queue
POST /api/v1/sdk/jobs/batchEnqueue up to 500 background jobs in one call
POST /api/v1/sdk/rate-limitReserve one slot of a sliding-window rate limit (Pro)
POST /api/v1/sdk/schedulesRegister a code-declared cron/recurring job or workflow schedule, idempotent by name
POST /api/v1/sdk/tasks/ackSettle up to 100 task leases in one call, each completed or failed
POST /api/v1/sdk/tasks/heartbeatExtend every lease a worker holds in one call and check each for cancellation
POST /api/v1/sdk/tasks/pollClaim due jobs and workflow steps from unpaused queues
POST /api/v1/sdk/tasks/:token/completeCommit task completion and output
POST /api/v1/sdk/tasks/:token/failRecord structured polyglot task failure and stack frames
POST /api/v1/sdk/tasks/:token/heartbeatExtend an active task lease and check for cancellation
POST /api/v1/sdk/workers/registerRegister or heartbeat a polyglot SDK worker
POST /api/v1/sdk/workers/:id/deregisterDeregister a polyglot SDK worker on shutdown
POST /api/v1/sdk/workflowsStart a durable workflow execution
POST /api/v1/sdk/workflows/:id/queryAsk a workflow run a read-only question
POST /api/v1/sdk/workflows/:id/search-attributesSet and remove search attributes of a workflow's open run
POST /api/v1/sdk/workflows/:id/signalDeliver an asynchronous signal to a running workflow
POST /api/v1/sdk/workflows/:id/updatesSend an update to a running workflow and wait for its outcome
POST /api/v1/workflow-archive/:id/replayReplay an archived run's history against the definition registered now
POST /api/v1/workflow-schedules/:id/backfillStart the runs of the fire times in a past range
POST /api/v1/workflow-schedules/:id/pausePause a workflow schedule
POST /api/v1/workflow-schedules/:id/resumeResume a paused workflow schedule from now
POST /api/v1/workflow-schedules/:id/triggerStart a run of the schedule now
POST /api/v1/workflowsStart a workflow run (a known id is a no-op)
POST /api/v1/workflows/bulkTerminate, cancel, signal or re-drive many workflows at once
POST /api/v1/workflows/:id/attributesSet and remove search attributes of an open run
POST /api/v1/workflows/:id/cancelCancel a running workflow, undoing completed steps that can be undone
POST /api/v1/workflows/:id/continue-as-newClose the open run and start its successor now
POST /api/v1/workflows/:id/migrateMove an open run onto the latest definition after a clean replay
POST /api/v1/workflows/:id/queryAsk a run a read-only question
POST /api/v1/workflows/:id/redriveStart a new run from a failed, terminated, cancelled or timed-out one
POST /api/v1/workflows/:id/replayReplay a run's history against the definition registered now
POST /api/v1/workflows/:id/scopes/:scope/cancelCancel one cancellation scope of a running workflow
POST /api/v1/workflows/:id/signalSend a signal to a running workflow
POST /api/v1/workflows/:id/steps/:step/retryRetry a failed activity of a running workflow
POST /api/v1/workflows/:id/terminateTerminate a running workflow at once
POST /api/v1/workflows/:id/updates/:nameSend a validated update to a running workflow and wait for its answer

admin (20) ​

OperationWhat it does
GET /api/v1/auditSearch the audit log, or download the selection
GET /api/v1/notification-channelsList the notification channels
POST /api/v1/notification-channelsCreate a notification channel
DELETE /api/v1/notification-channels/:idDelete a notification channel
GET /api/v1/notification-channels/:idShow one notification channel
PUT /api/v1/notification-channels/:idChange a notification channel
POST /api/v1/notification-channels/:id/testSend a test notification through a channel
GET /api/v1/tokensList the API tokens (never the secrets)
POST /api/v1/tokensCreate an API token; the secret is shown once, in this answer
DELETE /api/v1/tokens/:idRevoke an API token
GET /api/v1/usersList the accounts
PUT /api/v1/users/:idChange an account's role or switch it on or off (one per call)
POST /api/v1/workflow-attributesRegister a search attribute name with its type
POST /api/v1/workflow-builds/:build/promoteStart new runs of a workflow on a build
POST /api/v1/workflow-builds/:build/repinMove the open runs pinned to a build set onto another build
POST /api/v1/workflow-builds/:build/retireRetire a build for good
POST /api/v1/workflow-schedulesCreate a workflow schedule
DELETE /api/v1/workflow-schedules/:idDelete a workflow schedule (runs it started are left alone)
PUT /api/v1/workflow-schedules/:idChange a workflow schedule (fields left out keep their value)
POST /api/v1/workflows/:id/repinPin an open run to another build

JoobQ Core is MIT licensed. JoobQ Pro needs a licence key.