curl --request GET \
--url http://127.0.0.1/v1/jobs/{id}/trace/verify \
--header 'Authorization: Bearer <token>'import requests
url = "http://127.0.0.1/v1/jobs/{id}/trace/verify"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://127.0.0.1/v1/jobs/{id}/trace/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "http://127.0.0.1/v1/jobs/{id}/trace/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1/v1/jobs/{id}/trace/verify"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://127.0.0.1/v1/jobs/{id}/trace/verify")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://127.0.0.1/v1/jobs/{id}/trace/verify")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"reason": "run_not_terminal",
"verdict": "unavailable",
"anchor": {},
"chain": {},
"exit": 0,
"lines": [
"<string>"
],
"replay": {},
"seal": {},
"trace_id": "<string>",
"verify_version": 2
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Verify the job's trace journal
Locates the journal the resident wrote for this job under the project it serves (by the job’s execution and trace identity) and verifies it through the same verifier nika trace verify runs; the vocabulary is the CLI’s. unavailable is the honest refusal when no journal exists. The response never exposes a filesystem path.
curl --request GET \
--url http://127.0.0.1/v1/jobs/{id}/trace/verify \
--header 'Authorization: Bearer <token>'import requests
url = "http://127.0.0.1/v1/jobs/{id}/trace/verify"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://127.0.0.1/v1/jobs/{id}/trace/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "http://127.0.0.1/v1/jobs/{id}/trace/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1/v1/jobs/{id}/trace/verify"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://127.0.0.1/v1/jobs/{id}/trace/verify")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://127.0.0.1/v1/jobs/{id}/trace/verify")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"reason": "run_not_terminal",
"verdict": "unavailable",
"anchor": {},
"chain": {},
"exit": 0,
"lines": [
"<string>"
],
"replay": {},
"seal": {},
"trace_id": "<string>",
"verify_version": 2
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Exactly one Authorization: Bearer value from the token file
Path Parameters
Response
Typed trace verdict
Run-scoped verdict on the journal the resident wrote for the job, through the ONE verifier nika trace verify --json runs. verdict is the CLI's headline word: the attained tier (ok · sealed · anchored · replayed), incomplete for a journal with no terminal frame (the writer's liveness rides reason), tampered for a buried seal, broken for an edited chain, and the CLI's refusal classes; unavailable only when no journal exists for the job (refused before its first event · queued · a backend keeping none). reason is the machine class beside it (the seal tier under a ladder verdict). The CLI's own document rides verbatim (exit · chain · seal · anchor · replay · lines); a filesystem path is never returned.
run_not_terminal, trace_journal_unavailable, sealed, unsealed, forged, buried, unattributable, writer_alive, writer_dead, writer_unknown, buried_seal, broken, unchained, empty, unreadable, refused, line_over_long, unknown unavailable, ok, sealed, anchored, replayed, incomplete, tampered, broken, unchained, empty, unreadable, refused, line-over-long, unknown events · head · headline (intact · torn · incomplete) · liveness (alive · dead · unknown · null)
The CLI's exit class: 0 the reported tier holds · 2 a forged or edited journal · 3 the environment (unchained · unreadable · a missing input) · 5 incomplete lifecycle evidence
0, 2, 3, 5 The CLI's ladder lines, the journal path replaced by
tier (unsealed · sealed · forged · buried · unattributable) and the tier's facts
1x >= 1Was this page helpful?