35d1e43307bbdf2d9862272f5e4c12e3d1179074
Ukazka tela webhooku shazovala builder pri psani cesty parametru. Chyba sama byla na jednom radku, ale to podstatne je, ze jedna vyjimka pri vykreslovani odstranila celou stranku. Uzivateli zustala bila plocha a rozdelana prace byla pryc. Aplikace na to nemela zadnou pojistku, takze totez mohlo prijit odkudkoli. Pojistka: - nova web/src/components/ErrorBoundary.tsx obaluje obsah portalu. Mistni chyba ted shodi svoji cast obrazovky, ne aplikaci: navigace, prepinac firmy i odhlaseni zustanou funkcni. Odchod jinam pojistku srovna zpatky - je to jedina trida v celem klientovi, React to jinak zachytit neumi Incident: - POST /api/dashboard/client-crash zaklada incident z padu. Bez toho je jedina stopa v konzoli prohlizece uzivatele, kam se nikdo nedostane - title a impact cte zakaznik, detail cte spravce platformy: hlaska, misto v kodu, strom komponent, adresa stranky, ucet, prohlizec a verze buildu - verze buildu je tam schvalne. U tohohle padu se ukazalo, ze bez ni se neda poznat, jestli uzivatel vidi chybu, ktera uz je opravena, nebo novou - tentyz pad na tomtez miste zalozi incident nejvys jednou za deset minut. Pad pri vykreslovani se opakuje pri kazdem prekresleni Sama ukazka: - parametr, kterym vede cesta jineho parametru, uz nedostane zastupnou hodnotu podle typu. Kdyz je jeden parametr `data` a druhy `data.result`, `data` musi byt objekt a zastupna hodnota by ho prepsala - cela ukazka je v try. Je to napoveda a nesmi shodit ani ten kus obrazovky Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
csbot-prototype
Web a klientsky portal firmy zamerene na automatizace, voiceboty, integrace, dashboardy, tickety a incident management.
Jedna aplikace v jednom containeru: Express obsluhuje API i zbuildovanou
React aplikaci. Bezi v AppFactory za reverse proxy na /apps/<app-id>.
Rychly start
npm install
npm run build
npm start
Aplikace nasloucha na 0.0.0.0:3000.
Lokalni vyvoj s hot reloadem (API na 3000, web na 5173):
npm run dev
Povinne endpointy
| Cesta | Ucel |
|---|---|
/health |
Health check pro AppFactory, vraci 200 |
/docs |
Swagger UI |
/openapi.json |
OpenAPI definice |
Verejne pres proxy jako /apps/<app-id>/health a /apps/<app-id>/docs.
Demo prihlaseni
| Heslo | Role | |
|---|---|---|
admin@automia.cz |
demo1234 |
interni spravce |
klient@firma.cz |
demo1234 |
klient |
Environment variables
| Promenna | Povinna | Vychozi | Popis |
|---|---|---|---|
PORT |
ne | 3000 | Port containeru, urcuje AppFactory sablona |
ROOT_PATH |
ne | prazdne | Prefix proxy, napr. /apps/csbot-prototype |
JWT_SECRET |
ano v produkci | - | Podpis tokenu, bez nej aplikace nenastartuje |
JWT_EXPIRES_IN |
ne | 8h | Platnost tokenu |
PUBLIC_ORIGIN |
ne | prazdne | Verejna domena pro absolutni adresy webhooku |
CORS_ORIGIN |
ne | localhost | Povolene originy, jen pro lokalni vyvoj |
Secrets se nikdy nelogují ani neukladaji do kodu.
Skripty
| Prikaz | Co dela |
|---|---|
npm run build |
Zbuilduje server i web do dist/ |
npm start |
Spusti zbuildovanou aplikaci |
npm run dev |
Vyvoj s hot reloadem |
npm run typecheck |
Kontrola typu bez generovani vystupu |
Dokumentace
Podrobnosti jsou ve slozce documentation/. Pred upravou projektu staci precist ji, neni nutne prochazet cely kod.
Pravidla pro AI asistenty a nastroje jsou v AGENTS.md.
Languages
TypeScript
91.8%
JavaScript
6.4%
HTML
1.5%
CSS
0.3%