Log rekne co zpusobilo jakou zmenu, prevzeti ticketu a pozvanky
Nalezeno na bezicim serveru: TK-4946 mel 177 udalosti a 620 radku logu, pritom se skoro nic nestalo. Zmereno proti fronte: ve stejnem okne vzniklo presne tolik behu, kolik prislo udalosti (22 a 22), kazdy s jednim pokusem. Fronta nenasobi nic, odesilatel poslal 177 POSTu. Nase vina byla, ze to z historie neslo poznat. - Data udalosti se ukladaji. Kdyz krok nema vlastni, ulozi se to, cim beh zacal - u webhooku prijate telo. Prazdna udalost je horsi nez zadna. - Shodna udalost se pocita (repeats, lastAt), nezaklada dalsi radek. Ticket se pritom nemeni, takze duplikat nerozblika dashboard ani nespusti automatizaci na zmenu ticketu. Zahodit ji nejde, jinak by nikdo nezjistil, ze proti nam neco tluce. - Zmeny se radi pod udalost, ktera je zpusobila, a u udalosti stoji jmeno automatizace. Log se cte jako "prislo tohle -> zmenilo to tohle". - Poznamka o stavu jen kdyz se stav zmenil. "z in-progress na in-progress" u kazde zpravy byl zdroj tech 620 radku. - runsToday konecne znamena dnes: behy po dnech, k tomu vcera a celkem. Dosud to byl citac od zalozeni automatizace, jen se jmenoval "dnes". Vedle toho prace, o kterou slo predtim: - Prevzeti ticketu ze skupiny (POST /tickets/:id/claim) a krok Predat skupine s prepinacem automatickeho prideleni nejvolnejsimu. - Pozvanky do firmy: odkaz s nahodnym kodem, heslo si nastavi pozvany. - Resitele, skupiny a pozvanky presunuty z Nastaveni do zalozky Lide, cleny skupiny se vybiraji klikanim. - Ctyri AI znaky, ktere zbyvaly v kodu, pryc. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
fbe5b8ff6f
commit
f1e8253169
@@ -48,8 +48,14 @@ Vyzaduji `Authorization: Bearer <token>`:
|
||||
| POST | `/api/dashboard/tickets/:id/type` |
|
||||
| POST | `/api/dashboard/tickets/:id/tags` |
|
||||
| POST | `/api/dashboard/tickets/:id/group` |
|
||||
| POST | `/api/dashboard/tickets/:id/claim` |
|
||||
| GET | `/api/dashboard/tickets/:id/actions` |
|
||||
| POST | `/api/dashboard/tickets/:id/actions/:actionId` |
|
||||
| GET | `/api/dashboard/invites` |
|
||||
| POST | `/api/dashboard/invites` |
|
||||
| DELETE | `/api/dashboard/invites/:id` |
|
||||
| GET | `/api/invites/:kod` |
|
||||
| POST | `/api/invites/:kod/accept` |
|
||||
| GET | `/api/dashboard/incidents` |
|
||||
| GET | `/api/dashboard/storage` |
|
||||
| GET | `/api/dashboard/services` |
|
||||
@@ -196,6 +202,36 @@ toho, co ktera volana sluzba vratila.
|
||||
`POST /api/dashboard/tickets/:id/assign` s telem `{"assigneeId": null}` vrati
|
||||
ticket do fronty. Neznamy resitel vraci 404, ne tiche odpojeni.
|
||||
|
||||
`POST /api/dashboard/tickets/:id/claim` je **prevzeti prace**, ne prehozeni:
|
||||
volajici si bere ticket sam a telo je prazdne. Smi to u ticketu bez resitele
|
||||
a u ticketu ve skupine, ve ktere je. Kdyz uz ticket nekdo resi, vraci 409, resp.
|
||||
403 u cizi skupiny - vzit nekomu rozdelanou praci je jine rozhodnuti a chce to
|
||||
pravo `ticket.assign.others`. Kdo neni vedeny jako resitel, dostane 400.
|
||||
|
||||
## Pozvanky do firmy
|
||||
|
||||
`/api/invites/:kod` je **verejne**, protoze kdo prijde za odkazem, jeste ucet
|
||||
mit nemusi. Autorizuje kod v adrese, proto je nahodny a dlouhy - stejne jako
|
||||
u webhooku. Odpoved je zamerne uzka: nazev firmy, jestli pozvanka plati, a kdyz
|
||||
uz adresu zname, tak ji, at ji clovek nemusi psat. Nic o tom, kdo ve firme je.
|
||||
|
||||
`POST /api/invites/:kod/accept` s telem `{"name", "email", "password"}`:
|
||||
|
||||
| Situace | Co se stane |
|
||||
| --- | --- |
|
||||
| ucet neexistuje | zalozi se a pripoji k firme |
|
||||
| ucet existuje, heslo sedi | jen se pripoji k firme |
|
||||
| ucet existuje, heslo nesedi | 401 |
|
||||
| pozvanka je na jinou adresu | 403 |
|
||||
| pozvanka uz byla pouzita nebo vyprsela | 409 s konkretnim duvodem |
|
||||
|
||||
Overeni hesla u existujiciho uctu neni formalita: bez nej by kdokoliv s odkazem
|
||||
pripojil cizi adresu ke sve firme a videl by jeji data.
|
||||
|
||||
Sprava pozvanek (`/api/dashboard/invites`) chce pravo `user.manage`. Seznam
|
||||
vraci u kazde pozvanky **celou adresu** vcetne prefixu proxy, aby slo rovnou
|
||||
kopirovat - relativni cesta se do zpravy vlepit neda.
|
||||
|
||||
## Akce na ticketu
|
||||
|
||||
Popis modelu je v [09-navrh-rozsireni.md](09-navrh-rozsireni.md).
|
||||
|
||||
Reference in New Issue
Block a user