LIVE · LANȚ DE AUDIT · UE
SISTEM · 99,99% UPTIME
v 1.0 ↗ FĂCUT ÎN UE

API Tablouri

Un Tablou este o suprafață de desen colaborativă din sesiune (Excalidraw la bază). Când operatorul îl capturează, platforma captează ambele — PNG-ul randat și JSON-ul canonic al elementelor Excalidraw — hash-uite împreună, astfel încât lanțul de audit poate dovedi că aceleași forme pe care le-ați văzut pe ecran sunt cele pe care le vede auditorul mai târziu.

O captură de tablou este doar un rând Evidence cu kind=whiteboard. Endpoint-ul dedicat de mai jos este un filtru de conveniență — folosiți-l când vă interesează doar tablourile, iar API Probe când doriți toate artefactele deodată.

Listați tablourile unei sesiuni

GET /api/v1/public/sessions/{session_id}/whiteboards — permisiune whiteboards:read

curl "https://app.nexbasira.com/api/v1/public/sessions/0c8f.../whiteboards?limit=25" \
  -H "Authorization: Bearer nb_sec_..."

Returnează rânduri Evidence paginate prin cursor de tipul kind=whiteboard.

{
  "data": [
    {
      "id": "ev-wb1...",
      "session": "0c8f...",
      "kind": "whiteboard",
      "status": "ready",
      "mime": "image/png",
      "byte_size": 42178,
      "sha256": "8e2c01...",
      "captured_at": "2026-05-23T10:18:44Z",
      "created_at":  "2026-05-23T10:18:44Z",
      "completed_at":"2026-05-23T10:18:45Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Descărcare + verificare

La fel ca orice alt rând Evidence — obțineți un URL semnat de la endpoint-ul de descărcare Evidence, calculați hash-ul octeților cu SHA-256 și comparați cu valoarea returnată sha256:

curl "https://app.nexbasira.com/api/v1/public/evidence/ev-wb1.../download" \
  -H "Authorization: Bearer nb_sec_..."

JSON-ul elementelor Excalidraw

Câmpul integrity_jsonb.whiteboard_state al fiecărui rând de tablou stochează scena canonică Excalidraw care a produs PNG-ul. Combinația sha256 ancorează PNG-ul și JSON-ul împreună, astfel încât rerandarea JSON-ului mai târziu produce un PNG identic la nivel de octet. JSON-ul este în mod intenționat absent din forma publică de citire — solicitați URL-ul /download pentru rând pentru a prelua .pngbrut și folosiți endpoint-ul de verificare a auditului din SPA când aveți nevoie de JSON pentru dovezi de rerandare.

Erori frecvente

StareCodCând
403permission_deniedCredențialul nu are whiteboards:read.
404not_foundSesiunea nu există în organizația credențialului.