vitrinka.docs
QA a testováníRekordér

Co rekordéry zaznamenávají

Co zaznamenává rozšíření prohlížeče, webový rekordér a rekordér pro Expo, kam se záznamy ukládají, jaké pověření nesou a jak funguje maskování.

Data ze záznamu

Tato stránka popisuje průběh záznamu. Rozšíření prohlížeče se vyvíjí v repozitáři vitrinky, SDK pro Expo a webový rekordér (@vitrinka/web) v repozitáři kitu. Způsob zachytávání dat se liší podle platformy, jak ukazuje tabulka níže.

Kam data jdou

Data ze záznamu se odesílají na server vitrinky, který nastavíte. Aktualizace a stahování aplikací využívají samostatné distribuční služby; tento přehled tedy nepopisuje veškerou síťovou komunikaci aplikace.

GET    /api/v1/recorder/policy      nastavení záznamu a maskování
GET    /api/v1/recorder/me          za koho rekordér nahrává a předvolby jeho panelu
PATCH  /api/v1/recorder/me          uložení předvoleb panelu (size, verbose)
POST   /api/v1/sessions/:id/chunk   bloky rrweb (s query parametrem seq)
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
POST   /api/v1/sessions/:id/tags    tagy session
PATCH  /api/v1/sessions/:id         stav (recording | paused | done)
GET    /api/v1/sessions/:id         vlastní řádek session pro sladění

Toto jsou endpointy pro samotný záznam. Nastavení, párování, seznam nahrávek a pokračování v záznamu využívají další části serverového API.

Pověření

Rekordér nese token rekordéru vkr_ a ten dosáhne jen na endpointy výše — zásady, vlastní záznam, založení session a u session, kterou založil tentýž token, její části záznamu, štítky, stav a zpětné čtení. Nikdy nevypisuje sessions, nečte události ani přehrávání session, nečte nástěnky ani nesahá na úkoly a nikdy nečte, nezavírá ani nezapisuje do session, kterou založil jiný přístup — session člena, jiného projektu nebo jiného tokenu rekordéru, i kdyby ho propojila tatáž osoba. Takové volání dostane 403 s opravou: založte novou session (klíč vydaný adminem, který se ptá na session jiného projektu, dostane 404). Uniklý token nahrává do svého workspace a zpátky nepřečte nic kromě stavu sessions, které sám založil. Po novém propojení rekordéru a napříč upgradem, který toto pravidlo přinesl, nejde v session založené pod starým tokenem pokračovat; založte novou. Token vzniká buď propojením zařízení po schválení krátkého kódu (vázaný na osobu, vyprší 30 dní po posledním použití), nebo ho pro jeden projekt vydá admin pro sestavení bez dozoru, která nikdo ručně nepropojí. Rozšíření prohlížeče umí použít i osobní token vkp_. Tokeny najdete a odvoláte v Nastavení → Tokens.

Kdy se nahrává

Záznam běží jen během nahrávání, které výslovně spustíte. U Expa musí být rekordér také povolený v daném sestavení aplikace.

  • Expo — při sestavení — rekordér je jen v sestaveních, jejichž profil config plugin povoluje a která nastavují EXPO_PUBLIC_VITRINKA_URL; z ostatních sestavení se vynechá. Žádný token se nezapéká: tester zařízení propojí a jen sestavení bez dozoru nese klíč rekordéru vydaný adminem.
  • 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.
  • Web — omezeně — rekordér se připojí, jen když je nastavené jeho url, a nahrává jen na stránce, jejíž hostitel odpovídá doménovému pravidlu projektu; produkční pravidlo ho odmítne, pokud to pravidlo výslovně nepovolí (Nastavení → Projekty → Routing → in-app recorder).
  • 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álExpo rekordérWebový rekordérRozšíření do prohlížeče
SnímkyKlíčové snímky při navigaci a dotyku, omezené frekvencí.Žádné — klíčovým snímkem je rrweb proud DOM s maskovanými vstupy.Klíčové snímky plus rrweb proud DOM.
InterakceSouřadnice dotyku, popisek stisknutého prvku a routa.Kliknutí s krátkým selektorem prvku, jeho obdélníkem a redigovaným úryvkem textu; každá změna routy.Kliknutí a navigace.
SíťMetoda, URL, stav, doba trvání a omezená těla požadavků i odpovědí.Volání fetch a XHR, hlavičky, URL a těla prošlá stejnou redakcí jako u Expo rekordéru.API volání včetně těl, přes CDP.
KonzoleChyby a varování.Chyby a neošetřená zamítnutí promise.Chyby.
PoznámkyPoznámky, které napíšete v HUD.Poznámky a anotace, na prvku nebo v tažené oblasti.Poznámky a ⌖ snapy napsané v HUD na stránce (Alt+Shift+N, Alt+Shift+A).

Maskování

Ve výchozím nastavení rekordéry maskují citlivá síťová data před odesláním. Server při příjmu událostí použije svou politiku znovu. Rozsah maskování závisí na rekordéru a formátu dat; nastavení a výjimky popisuje Maskování citlivých údajů.

  • Co se považuje za tajemství — password, token, authorization, cookie, apikey a víceslovné tvary jako accessToken nebo refreshToken.
  • Politika workspace — rekordéry načítají pravidla z GET /api/v1/recorder/policy. Administrátoři mohou přidat vzory pro údaje používané v jejich aplikaci.

Maskování nemusí odstranit všechny citlivé údaje ze snímků ani z obsahu stránky. Práce s textem a obrázky závisí na rekordéru a jeho nastavení. Při nahrávání používejte testovací data.

Uchování a přístup

Nahrávky se ukládají na vašem serveru vitrinky a řídí se jeho přístupovými pravidly. Na zařízení zůstávají data čekající na odeslání; po doručení nebo zahození nahrávky se odstraní.

Na této stránce