U posledniho volani je videt, co presne prislo

Prvni verze seznamu poslednich volani ukazovala cas a duvod odmitnuti, ale ne
data. To je k nicemu: "parametr data ma mit typ text" nerekne, co tedy prislo,
a bez toho zbyva hadat.

Argument, ze se telo nema drzet kvuli zakaznickym datum, navic neobstal.
Tickety si cela prijata tela u udalosti drzi uz davno, takze si to jedno misto
zakazovalo neco, co aplikace jinde bezne dela - a zaplatilo za to celym uzitkem
te funkce.

Radek volani se ted rozklikne na dve veci:

- rozpad po parametrech: jmeno, cesta, co se cekalo a co na te ceste opravdu
  bylo, vcetne nahledu hodnoty. Sklada ho readPayload, protoze jen tam je videt
  kontrakt i telo naraz - pozdeji uz se kontrakt muze zmenit
- cele prijate telo, vcetne klicu, ktere odesilatel posila navic a kontrakt
  o nich nevi. Delsi nez 8 kB se usekne

Telo se do zaznamu zmrazi na retezec, aby se pozdeji nezmenilo pod rukama,
a serializace je v try - cyklicka struktura nesmi shodit prijem webhooku.

Overeno na bezici instanci s vlastnim DATA_DIR, telem s data jako textem misto
objektu a bez povinneho status:

  ok     callSid  | cekame string, povinny | prislo text = CA-B
  CHYBA  status   | cekame string, povinny | prislo neprislo
  CHYBA  data     | cekame object          | prislo text = tohle je text misto objektu

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
JiriUhlir
2026-09-02 10:46:36 +02:00
co-authored by Claude Opus 5
parent e8bb4d6e54
commit 40875439e4
6 changed files with 250 additions and 35 deletions
+19 -6
View File
@@ -523,13 +523,26 @@ vsechno v poradku.
nema nikdo spadnout omylem. Zaskrtnout to jde vzdycky.
- **Objekt a seznam jdou vybrat.** `declarableFieldTypes` je ma a klient si uz
nedrzi vlastni kopii, bere sdileny seznam.
- **Poslednich deset volani je videt na detailu automatizace.** Cas, jestli
proslo nebo ne, a u odmitnutych duvod.
- **Poslednich deset volani je videt na detailu automatizace.** Radek se
rozklikne na rozpad po parametrech a cele prijate telo.
Telo se **schvalne neuklada**. Duvod odmitnuti uz rika, co je spatne ("Parametr
data ma mit typ string"), a drzet payloady by znamenalo mit v pameti kopie
zakaznickych dat, aniz by o tom kdokoliv vedel. Seznam volani se drzi v pameti,
restart ho zahodi - je to diagnostika posledni hodiny, ne historie.
Samotny duvod odmitnuti nestaci a prvni verze na tom ztroskotala: "parametr data
ma mit typ text" nerekne, co tedy prislo, a bez toho zbyva hadat. Rozpad ukaze
u kazdeho parametru jeho cestu, co se cekalo a **co na te ceste opravdu bylo**:
```text
ok callSid | cekame string, povinny | prislo text = CA-B
CHYBA status | cekame string, povinny | prislo nepřišlo
CHYBA data | cekame object | prislo text = tohle je text misto objektu
```
K tomu cele telo, vcetne klicu, ktere odesilatel posila navic a kontrakt o nich
nevi. Delsi nez 8 kB se usekne.
Neni to novy druh dat: tickety si cela prijata tela u udalosti drzi uz davno.
Jen se konecne daji videt i u volani, ktera neprosla, tedy prave tam, kde je to
potreba. Seznam se drzi v pameti, restart ho zahodi - je to diagnostika posledni
hodiny, ne historie.
### Co se tim nedela
+25
View File
@@ -2,6 +2,31 @@
Nejnovejsi nahore.
## 2026-09-02 - U posledniho volani je videt, co presne prislo
Prvni verze seznamu poslednich volani ukazovala cas a duvod odmitnuti, ale ne
data. To je k nicemu: "parametr data ma mit typ text" nerekne, co tedy prislo,
a bez toho zbyva hadat. Argument, ze se telo nema drzet kvuli zakaznickym datum,
navic neobstal - tickety si cela prijata tela u udalosti drzi uz davno, takze si
to jedno misto zakazovalo neco, co aplikace jinde bezne dela.
Radek volani se ted rozklikne na dve veci:
- **rozpad po parametrech**: jmeno, cesta, co se cekalo a co na te ceste opravdu
bylo, vcetne nahledu hodnoty. Sklada ho `readPayload`, protoze jen tam je
videt kontrakt i telo naraz - pozdeji uz se kontrakt muze zmenit
- **cele prijate telo**, vcetne klicu, ktere odesilatel posila navic a kontrakt
o nich nevi. Delsi nez 8 kB se usekne
```text
ok callSid | cekame string, povinny | prislo text = CA-B
CHYBA status | cekame string, povinny | prislo nepřišlo
CHYBA data | cekame object | prislo text = tohle je text misto objektu
```
Telo se do zaznamu zmrazi na retezec, aby se pozdeji nezmenilo pod rukama, a
serializace je v `try` - cyklicka struktura nesmi shodit prijem webhooku.
## 2026-09-02 - Kontrakt webhooku: objekt jde vybrat a odmitnuti je videt
Parametr spoustece `data` byl deklarovany jako `type: string, required: true`,