# Co rekordéry zaznamenávají (https://docs.vitrinka.ai/cs/qa/recorder/protocol)



## Data ze záznamu [#contract]

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 [#where]

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.

```http
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í
```

<Callout type="warn">
  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.
</Callout>

## Pověření [#credentials]

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á [#when]

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 [#what]

| Kanál     | Expo rekordér                                                       | Webový rekordér                                                                                      | Rozšíření do prohlížeče                                                     |
| --------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| Snímky    | Klíč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.                                        |
| Interakce | Souř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.                                            |
| Konzole   | Chyby a varování.                                                   | Chyby a neošetřená zamítnutí promise.                                                                | Chyby.                                                                      |
| Poznámky  | Pozná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í [#redaction]

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ů](/cs/security/redaction).

* **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.

<Callout type="warn">
  **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.
</Callout>

## Uchování a přístup [#retention]

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í.
