Skip to content

`POST /v1/orgs/{org}/jobs/{job_id}/signature`.

POST
/v1/orgs/{org}/jobs/{job_id}/signature
curl --request POST \
--url https://api.updawg.net/v1/orgs/example/jobs/example/signature \
--header 'Content-Type: application/json' \
--data '{ "signature": "example" }'

The signature is checked here, against the key the job names, so that a wrong key or a signature over the wrong bytes fails now rather than on every host. It protects nothing by itself — each host verifies against the key it pinned — and that is the point of the design.

org
required
string

Organization slug.

job_id
required
string

The job_… id.

Media typeapplication/json
object
signature

Base64 Ed25519 signature over the job’s signing bytes. Required; optional here only so a missing one is answered after the permission check.

string | null

Example generated

{
"signature": "example"
}

Accepted: the job is queued for its host.

Media typeapplication/json
object
id
required
string
status
required

queued: its host picks it up at its next check-in.

string

Example generated

{
"id": "example",
"status": "example"
}

No signature, or one that does not verify under the key the job names over the job’s signing bytes.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string

Example generated

{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

No session.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string

Example generated

{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

Not permitted for this role.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string

Example generated

{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

No such job here.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string

Example generated

{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

The job is not waiting for a signature — signed already, expired, or cancelled by a halt — or the key it names has been retired.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string

Example generated

{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

The organization’s data is in another region (wrong-region, DAWG-159). detail names that region’s API; send the request there.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string

Example generated

{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

Over the organization’s request limit. Retry-After says when to try again; RateLimit-Limit is the burst.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string

Example generated

{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}