Co rekordéry zaznamenávají
Rekordér sleduje běžící aplikaci, takže co bere a kam to posílá je publikované jako závazek, ne popsané v marketingu. Tahle stránka zrcadlí docs/PROTOCOL.md v repozitáři kitu.
Tohle je závazek
Jakákoli změna toho, co rekordér zaznamenává nebo odesílá, musí ten dokument upravit ve stejném pull requestu, a rozpor mezi dokumentem a kódem se řeší jako bezpečnostní problém, ne jako chyba v dokumentaci.
Kam data jdou
Výhradně na vitrinka server, který si nastavíte — základní adresa a bearer token. Žádná cizí telemetrie, žádné analytické SDK a žádný provoz na jiný host než na ten server.
POST /api/v1/sessions založí nahrávací session
POST /api/v1/sessions/:id/events proud událostí (dávkovaně)
POST /api/v1/sessions/:id/shot klíčové snímky
PATCH /api/v1/sessions/:id stav (recording | paused | done)Čtyři routy. To je celá plocha, se kterou rekordér mluví.
Kdy se nahrává
Jen během session, kterou výslovně spustíte — a u Expa jen v buildu, který vůbec směl rekordér nést.
- Expo — při kompilaci — rekordér existuje jen v buildech, které mají zapečené
EXPO_PUBLIC_VITRINKA_URLa_TOKEN; ze všech ostatních se celý vyřízne z bundle. - Expo — za běhu — v povoleném buildu běží záznam jen mezi stiskem record a stop. Session řízená strojem přes Expo devtools kanál ukazuje viditelný HUD indikátor.
- Prohlížeč — omezeně — záznam běží jen v záložkách odpovídajících nastaveným doménám projektu a jen dokud běží session, kterou jste spustili. Popup vždy ukazuje stav nahrávání.
Co se zaznamenává, na session
| Kanál | Expo rekordér | Rozšíření do prohlížeče |
|---|---|---|
| Snímky | Klíčové snímky při navigaci a dotyku, omezené frekvencí. | Klíčové snímky plus rrweb proud DOM. |
| Interakce | Souřadnice dotyku, popisek stisknutého prvku a routa. | Kliknutí a navigace. |
| Síť | Metoda, URL, stav, doba trvání a omezená těla požadavků i odpovědí. | API volání včetně těl, přes CDP. |
| Konzole | Chyby a varování. | Chyby. |
| Poznámky | Poznámky, které napíšete v HUD. | Poznámky, které napíšete v popupu. |
Maskování
Záznam sítě maskuje tajemství dřív, než se cokoli uloží do bufferu nebo odešle — ne na serveru a ne cestou ven. Klíče s citlivými názvy se maskují v JSON tělech, v hlavičkách i v query stringu, včetně URL-kódovaných a dvojitě kódovaných tvarů.
- Co se považuje za tajemství —
password,token,authorization,cookie,apikeya víceslovné tvary jakoaccessTokenneborefreshToken. - Jedno sdílené pravidlo — politika žije v jediné funkci s vlastní sadou testů, takže se tři kanály nemůžou rozejít.
Snímky obrazovky se podle obsahu nefiltrují. Maskování se týká jen síťového kanálu — nenahrávejte proti obrazovkám s daty, která byste nedali na nástěnku té session.
Uchování a přístup
Nahrané session žijí na vašem vitrinka serveru podle jeho pravidel přístupu. Samotné rekordéry si na zařízení nechávají jen nedoručený zbytek uploadu, který zmizí, jakmile se doručí nebo se session zahodí.