Nahrazeni sablony kompletnim webem a klientskym portalem

Web a portal Automia v jednom containeru. Express obsluhuje API
i zbuildovanou React aplikaci z dist/public.

Obsah:
- verejny web: homepage, sluzby, o nas, kontakt, 404
- prihlaseni pres JWT, demo ucty
- portal: prehled s grafem, tickety, incidenty, automatizace, konektory
- builder automatizaci: strom akci, vetveni podminkou
- katalog 25 konektoru v 8 kategoriich
- webhook s registrovanou adresou, token generuje server
- zivy dashboard pres SSE vcetne simulace provozu
- Swagger UI na /docs a OpenAPI na /openapi.json

Soulad s AGENTS.md:
- ROOT_PATH z prostredi, prefix proxy nikde nehardcodovan
- mount na koren i na prefix, funguje s handle_path i bez nej
- base tag a window.__BASE_PATH__ vkladane do index.html za behu
- OpenAPI servers obsahuje prefix, Try it out vola spravnou adresu
- povinne /health a /docs, port 3000, naslouchani na 0.0.0.0
- secrets jen z environment variables, nikdy v logu

Dokumentace ve slozce documentation/.
This commit is contained in:
JiriUhlir
2026-07-31 17:00:37 +02:00
parent 46f2f0b07e
commit 7b045a9f20
100 changed files with 15409 additions and 35 deletions
+65 -4
View File
@@ -1,8 +1,69 @@
# csbot-prototype
Node.js TypeScript služba vytvořená přes CSBot Services Portal.
Web a klientsky portal firmy zamerene na automatizace, voiceboty, integrace,
dashboardy, tickety a incident management.
## Endpointy
Jedna aplikace v jednom containeru: Express obsluhuje API i zbuildovanou
React aplikaci. Bezi v AppFactory za reverse proxy na `/apps/<app-id>`.
- GET /
- GET /health
## Rychly start
```bash
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):
```bash
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
| E-mail | 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/](documentation/). Pred upravou projektu
staci precist ji, neni nutne prochazet cely kod.
Pravidla pro AI asistenty a nastroje jsou v [AGENTS.md](AGENTS.md).