Builds

Stream build progress

The same record as GET builds/{id}/progress, as text/event-stream, for as long as the build runs, up to 50 minutes. A build cannot run that long, so a stream still open then ends with an error event rather than closing quietly.

Three event types. progress carries a BuildProgress and is sent only when something actually moved, so every one of them is news. done carries the final BuildProgress and is the last event of a build that finished — including one that FAILED, which is a done whose status says failed rather than an error. error is the last event of a stream that could not go on, and says nothing about the build. Its data is {request_id, error} when the hypervisor running the build stopped answering or the stream reached its 50 minutes; poll for the outcome. When your authority went while the stream was open — the key deleted, the membership removed, the account suspended — it also carries status (401 or 403) and reason: "revoked", the refusal the same request would get now; polling is refused the same way, so do not poll with that credential.

Attaching to a build that has already finished is not an error: you get one progress and one done immediately. Lines beginning : are keepalives and can be ignored.

An account may hold eight of these open at once; the ninth is refused with a 429 naming the limit. It is a bound on concurrency rather than on price, because a stream is charged once and then polls for as long as the build runs. There is one build per hypervisor, so this is more streams than a fleet has builds to watch.

Needs an account-wide key: one confined to a workspace is a 403.

Requires the viewer role or higher.

get/builds/{id}/events

Request

  • Base URL: https://app.mandala.computer/api/v1
  • URL: https://app.mandala.computer/api/v1/builds/{id}/events
  • Auth: HTTP bearer

Path parameters

idstring required

The build id.

Response

The payload of each progress and done event. The response body is the event stream.

Changes

No recorded changes to this operation across all 1 revision of this API.