ToolsJobStartedPayload tools.job.started@1
Generated at from
openvibe-contracts v0.33.0 and
openvibe-sdk v0.5.0.
- Version
- 1.0.0
- Owner
- tools
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/events/payloads/tools.job.started.v1.json
tools.job.started v1 (OpenVibe.Tools apps/_shared/jobs/events.js). A worker claimed the job and it is running (attempts counts this attempt). A job requeued after a restart starts again and is announced again. Emitted in the transaction that records the transition, beside the job's own SSE event. Carries ids, type, owner, state, times and result locations; never the job's input, its files, its output data or a session. Jobs of sandbox app tokens are not announced. Envelope: subject { type: job, id: <job_id> }, visibility internal, priority low, actor service:tools.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
job_id | string | yes |
| |
service | string | yes | The Tools satellite that runs the job (img, audio, docs…). |
|
type | string | yes | Job type, e.g. img.process. |
|
type_version | integer | yes |
| |
state | const | yes |
| |
owner | one of | yes | Who submitted the job: a user (user:usr_…), a service, app or mod principal. null for an anonymous browser session; the session is never published. | |
attempts | integer | yes |
| |
max_attempts | integer | yes |
| |
created_at | string | yes |
| |
retry_of | string | null | yes | The failed job this one retries (POST /api/v1/jobs/:id/retry). |
|
started_at | string | yes |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: service
{
"job_id": "job_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"service": "img",
"type": "img.process",
"type_version": 1,
"state": "running",
"owner": {
"type": "service",
"id": "community"
},
"attempts": 1,
"max_attempts": 3,
"created_at": "2026-09-23T09:00:00.000Z",
"retry_of": null,
"started_at": "2026-09-23T09:00:01.000Z"
}Rejected: wrong-state
{
"job_id": "job_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"service": "img",
"type": "img.process",
"type_version": 1,
"state": "queued",
"owner": null,
"attempts": 1,
"max_attempts": 3,
"created_at": "2026-09-23T09:00:00.000Z",
"retry_of": null,
"started_at": "2026-09-23T09:00:01.000Z"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('tools.job.started@1', value); // { valid, errors: [{ path, message }] }