Wspólna tablica w sesji
Operator i użytkownik terenowy rysują na tym samym płótnie w czasie rzeczywistym — pomiary, strzałki, adnotacje "gdzie jest wgniecenie". Każdy zrzut przechwytuje zarówno wyrenderowany PNG, jak i scene JSON Excalidraw, hashowane razem. Zmanipuluj którąkolwiek stronę po fakcie, a łańcuch audytu to wykryje.
Co jest przechwytywane
Co wszyscy widzieli
Obraz dokładny co do piksela wyrenderowany w momencie zrzutu. Przetrwa w przeglądarce akt sprawy przez lata bez potrzeby ładowania Excalidraw — wrzuć PNG do materiału sądowego, a mówi sam za siebie.
Kształty, które go utworzyły
Zrzut elementów sceny w canonical-JSON: każdy obrys, każda strzałka, każda etykieta. Ponownie wyrenderuj JSON później, a otrzymasz identyczny co do bajta PNG — kryptograficzny dowód, że wyrenderowany obraz nie został sfałszowany po przechwyceniu.
Łączone SHA-256 kotwiczy PNG + canonical JSON razem. Zmień jeden bajt w którymkolwiek, a łańcuch się przerwie.
Dlaczego obie strony
Sam wyrenderowany PNG jest przekonujący, ale teoretycznie możliwy do sfałszowania — dowolny edytor obrazów wytworzy fałszywkę poprawną co do piksela. Sam scene JSON jest nieczytelny dla sądu — obrysy i współrzędne w przeglądarce, której sędzia nie ma. Razem: JSON dowodzi, że obraz jest deterministycznym renderem tych kształtów; obraz dowodzi, co uczestnicy faktycznie widzieli na ekranie. Zmanipuluj obraz bez naruszania JSON, a zadziała kontrola ponownego renderu; zmanipuluj JSON, a hash się nie zgodzi.
Model współpracy na żywo
Obrysy propagują się w czasie rzeczywistym z bezkonfliktowym scalaniem, więc obie strony mogą rysować jednocześnie bez blokowania. Operator może zablokować kafelek dla siebie (jednokierunkowa adnotacja, częsta w oględzinach szkód) lub otworzyć go do prawdziwej współedycji (częstej w szkoleniach zdalnych).
| Tryb | Kto może rysować |
|---|---|
| Zablokowany dla operatora | Tylko operator. Użytkownik terenowy obserwuje pojawiające się adnotacje — częste w przepływach inspekcji zgodnie z procedurą. |
| Otwarte płótno | Obie strony. Użytkownik terenowy może zaznaczyć "o to mi chodziło" bez czekania na swoją kolej. |
| Zrzut i zachowanie | "Zrób zrzut bieżącego stanu i otwórz na nim wspólny anotator" — przechwytuje kadr i otwiera go ponownie do asynchronicznej adnotacji później. |
Odczyt z powrotem z API
Tablice trafiają jako wiersze Evidence z kind=whiteboard. Wylistuj je przez GET /api/v1/public/sessions/{id}/whiteboards, zażądaj podpisanego URL do pobrania przez GET /api/v1/public/evidence/{id}/download. Zarówno wyrenderowany PNG, jak i endpoint weryfikacji dla scene JSON są udokumentowane w Referencja API tablic.
Wypróbuj płótno na żywo
Sesja demonstracyjna jest dostarczana z już sparowaną stroną operatora i terenową. Otwórz ją w dwóch przeglądarkach, rysuj w obu — obrysy propagują się; zrzut przechwytuje obie warstwy; łańcuch audytu kotwiczy obie.