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.
| Route | When it answers 402 |
|---|---|
POST /api/v1/sdk/jobs | Only 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/workflows | When the server started without a valid Pro key (the engine client is built at start). |
POST /api/v1/sdk/schedules | Only 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-limit | Whenever the key is not valid at the time of the call. |
POST /api/v1/sdk/workflows/:id/signal | When the server started without a valid Pro key. |
POST /api/v1/sdk/workflows/:id/updates | When the server started without a valid Pro key (the update route is built with the engine client). |
GET /api/v1/sdk/workflows/:id | When the server started without a valid Pro key (client read). |
GET /api/v1/sdk/workflows/:id/result | When the server started without a valid Pro key (client read). |
GET /api/v1/sdk/workflows/:id/history | When the server started without a valid Pro key (client read). |
POST /api/v1/sdk/workflows/:id/query | When the server started without a valid Pro key (client read). |
POST /api/v1/sdk/workflows/:id/search-attributes | When the server started without a valid Pro key (client read). |
POST /api/v1/sdk/blueprints | When the server started without a valid Pro key (a blueprint registers a workflow definition). |
POST /api/v1/sdk/jobs/batch | When 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
| Field | Where | Pro when |
|---|---|---|
unique_mode | POST /api/v1/sdk/jobs, each job of POST /api/v1/sdk/jobs/batch | until_executing or until_executed together with a unique_key; while_locked (the default) is Core |
kind | POST /api/v1/sdk/schedules | workflow; job is Core. The SDKs register job schedules only |
Pro features
| Feature | Status | Page |
|---|---|---|
| Unique jobs, until_executed (unique_mode) | shipped | page |
| Unique jobs, until_executing (unique_mode) | shipped | page |
| Rate limiting (rate_limit(key, limit, period_ms)) | shipped | page |
| Batches with completion callbacks (JoobQPro::Batch) | shipped | page |
| Batches with completion callbacks from the SDKs | coming | page |
| Workflow schedules | shipped | page |
| Alert rules and notification channels | shipped | page |
| Durable workflows conducted by the engine (steps, blueprints) | shipped | page |
| Parallel, sequence and after: | shipped | page |
| Step retries, timeout_ms, heartbeat_ms, schedule_to_start_ms, non_retryable | shipped | page |
| Workflow timeout (blueprint timeout_ms) | shipped | page |
| Sagas and compensation | shipped | page |
| Signals, signal timeouts and durable timers | shipped | page |
| Queries | shipped | page |
| Workflow client reads (describe, result, history, query, search attributes) | shipped | page |
| Search attributes (register, set, search) | shipped | page |
| Cancel, terminate, re-drive, retry a step, bulk actions | shipped | page |
| Event history, retention and the history archive | shipped | page |
| Worker build ids (promote, retire, re-pin; admin) | shipped | page |
| Continue-as-new, updates, cancellation scopes, replay and migrate (Crystal workflows, console and API) | shipped | page |
| Conditional steps (only_if) | shipped | page |
| Child workflows | shipped | page |
| Continue-as-new | shipped | page |
| Compensation on waits, timers and children | shipped | page |
| Cancellation scopes (scope, non_cancellable) | shipped | page |
| Update handlers and update_workflow | shipped | page |
| Change gates (versioning) | shipped | page |