Report a running job's environment record
POST/api/jobs/{job_id}/env-record
reportJobEnvRecord
Runner-protocol route (same lease-bearer auth as the step snapshot POST). The guest's closure, identity and flake inputs for its environment (ADR 0188 §4). The server computes the key and the system itself; a body field naming either is ignored. Written only for a `cache_commit_allowed` run, decided in the write transaction. Every accepted report answers 200 with what happened to it; a body over the caps is 400.
Requires authentication using a bearer token — see tokens and scopes.
curl
curl -X POST 'https://neosource.dev/api/jobs/JOB_ID/env-record' \
-H 'Authorization: Bearer $NEOSOURCE_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"identity":"string","closure":[]}'fetch
fetch("https://neosource.dev/api/jobs/JOB_ID/env-record", {
method: "POST",
headers: {
Authorization: "Bearer $NEOSOURCE_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({"identity":"string","closure":[]}),
});Path parameters
job_idrequired
Request bodyrequired
application/json
Responses
200What the server did with the report
application/json
Standard errors
Bodies documented once for the whole API — see standard errors.
- 400Bad Request — one of: invalid_input
- 401Authentication required
- 403Forbidden — one of: forbidden
- 404Not Found — one of: not_found
- 409Conflict — one of: conflict
- 429Rate limited — retry after the `Retry-After` header
- 500Internal server error
- 503Service temporarily unavailable / at capacity — retry after the `Retry-After` header
- 504Gateway timeout — the request exceeded the server's handling budget
Schemas
Referenced above. Listed here rather than expanded inline, so the same definition is not repeated at every level.
CiEnvTier
Which delivery tier a recorded path belongs to (ADR 0188 §3). The guest classifies; the host re-verifies tier (a) by `require-sigs`, so a misclassification costs availability, never correctness.
"signed""fixed_output""local"