Skip to content

Pro features index ​

Everything that needs a JoobQ Pro key, found in the code. Without a key the server still boots and every Core route keeps working; see Licensing: Core and Pro for how a key is given and what happens when it expires.

SDK gateway routes that answer 402 ​

These routes always exist. Without a valid Pro key they answer 402 Payment Required with the error code pro_required in the usual envelope ({"error": {"code": "pro_required", ...}}), as the table says. The Core routes beside them are never gated.

RouteWhen it answers 402
POST /api/v1/sdk/jobsOnly with a unique_key and a unique_mode other than while_locked, when the key is not valid at the time of the call. Every other enqueue is Core.
POST /api/v1/sdk/workflowsWhen the server started without a valid Pro key (the engine client is built at start).
POST /api/v1/sdk/schedulesOnly for kind workflow, when the key is not valid at the time of the call (the call is audited first). A server that started without a key but has one now answers 503 unavailable instead. A job schedule is Core.
POST /api/v1/sdk/rate-limitWhenever the key is not valid at the time of the call.
POST /api/v1/sdk/workflows/:id/signalWhen the server started without a valid Pro key.
POST /api/v1/sdk/workflows/:id/updatesWhen the server started without a valid Pro key (the update route is built with the engine client).
GET /api/v1/sdk/workflows/:idWhen the server started without a valid Pro key (client read).
GET /api/v1/sdk/workflows/:id/resultWhen the server started without a valid Pro key (client read).
GET /api/v1/sdk/workflows/:id/historyWhen the server started without a valid Pro key (client read).
POST /api/v1/sdk/workflows/:id/queryWhen the server started without a valid Pro key (client read).
POST /api/v1/sdk/workflows/:id/search-attributesWhen the server started without a valid Pro key (client read).
POST /api/v1/sdk/blueprintsWhen the server started without a valid Pro key (a blueprint registers a workflow definition).
POST /api/v1/sdk/jobs/batchWhen one job of the batch has a unique_key and a unique_mode other than while_locked and the key is not valid at the time of the call: the whole batch is refused and no job is stored.

Console and API routes that exist only with a key ​

The server registers these routes when it starts with a valid Pro key. Started without one, they are not there: they answer like any unknown path (401 to a caller that is not signed in, 404 not_found otherwise) and GET /api/v1/capabilities reports features.pro: false, so the console hides them.

Route
GET /api/v1/workflows
POST /api/v1/workflows
GET /api/v1/workflows/:id
GET /api/v1/workflows/:id/history
POST /api/v1/workflows/:id/signal
POST /api/v1/workflows/:id/query
POST /api/v1/workflows/:id/steps/:step/retry
POST /api/v1/workflows/:id/redrive
POST /api/v1/workflows/:id/terminate
POST /api/v1/workflows/:id/cancel
GET /api/v1/workflow-definitions
GET /api/v1/workflow-attributes
POST /api/v1/workflow-attributes
POST /api/v1/workflows/:id/attributes
GET /api/v1/workflows/:id/runs
POST /api/v1/workflows/:id/continue-as-new
POST /api/v1/workflows/:id/replay
POST /api/v1/workflows/:id/migrate
POST /api/v1/workflows/:id/updates/:name
GET /api/v1/workflows/:id/updates/:name
GET /api/v1/workflow-schedules
GET /api/v1/workflow-schedules/:id
POST /api/v1/workflow-schedules
PUT /api/v1/workflow-schedules/:id
DELETE /api/v1/workflow-schedules/:id
POST /api/v1/workflow-schedules/:id/trigger
POST /api/v1/workflow-schedules/:id/backfill
GET /api/v1/workflow-scheduler
POST /api/v1/workflow-schedules/:id/pause
POST /api/v1/workflow-schedules/:id/resume
GET /api/v1/workflow-retention
GET /api/v1/workflow-builds
GET /api/v1/workflow-builds/pinned
POST /api/v1/workflow-builds/:build/promote
POST /api/v1/workflow-builds/:build/retire
POST /api/v1/workflow-builds/:build/repin
POST /api/v1/workflows/:id/repin
POST /api/v1/workflows/:id/scopes/:scope/cancel
GET /api/v1/workflow-archive
GET /api/v1/workflow-archive/:id
POST /api/v1/workflow-archive/:id/replay
POST /api/v1/workflows/bulk
GET /api/v1/alerts
GET /api/v1/alerts/active
GET /api/v1/alerts/history
GET /api/v1/alerts/options
GET /api/v1/alerts/rules
POST /api/v1/alerts/rules
PUT /api/v1/alerts/rules/:id
DELETE /api/v1/alerts/rules/:id
POST /api/v1/alerts/:id/acknowledge

Pro fields and values ​

FieldWherePro when
unique_modePOST /api/v1/sdk/jobs, each job of POST /api/v1/sdk/jobs/batchuntil_executing or until_executed together with a unique_key; while_locked (the default) is Core
kindPOST /api/v1/sdk/schedulesworkflow; job is Core. The SDKs register job schedules only

Pro features ​

FeatureStatusPage
Unique jobs, until_executed (unique_mode)shippedpage
Unique jobs, until_executing (unique_mode)shippedpage
Rate limiting (rate_limit(key, limit, period_ms))shippedpage
Batches with completion callbacks (JoobQPro::Batch)shippedpage
Batches with completion callbacks from the SDKscomingpage
Workflow schedulesshippedpage
Alert rules and notification channelsshippedpage
Durable workflows conducted by the engine (steps, blueprints)shippedpage
Parallel, sequence and after:shippedpage
Step retries, timeout_ms, heartbeat_ms, schedule_to_start_ms, non_retryableshippedpage
Workflow timeout (blueprint timeout_ms)shippedpage
Sagas and compensationshippedpage
Signals, signal timeouts and durable timersshippedpage
Queriesshippedpage
Workflow client reads (describe, result, history, query, search attributes)shippedpage
Search attributes (register, set, search)shippedpage
Cancel, terminate, re-drive, retry a step, bulk actionsshippedpage
Event history, retention and the history archiveshippedpage
Worker build ids (promote, retire, re-pin; admin)shippedpage
Continue-as-new, updates, cancellation scopes, replay and migrate (Crystal workflows, console and API)shippedpage
Conditional steps (only_if)shippedpage
Child workflowsshippedpage
Continue-as-newshippedpage
Compensation on waits, timers and childrenshippedpage
Cancellation scopes (scope, non_cancellable)shippedpage
Update handlers and update_workflowshippedpage
Change gates (versioning)shippedpage

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