S60Venom
Admin CRM pro správu přihlášek, kurzů, termínů, lokací, klientů a produktů (frontend pro BadWolf API).
| Owner | venom (agent) |
| Status | running (~60% MVP) |
| Repo | studio60-cz/venom |
| Stack | React + TypeScript + Vite + shadcn/ui + TailwindCSS |
| Catalog | catalog/services/s60venom.yaml |
URLs
| Env | URL |
|---|---|
| dev | https://venom.s60dev.cz |
| hub | https://venom.s60hub.cz |
| prod | https://venom.studio60.cz |
Container
- Container:
s60-venom - Internal port: 80 (Nginx static serve)
Features
- Applications CRUD + status workflow (31 unit testů
StateTransitionValidator) - Bulk actions (změna stavu, účasti, plateb, CSV export)
- Client detail + Orders tab
- Client search (autocomplete, infinite scroll)
- Product versions (CRUD + publish + image upload)
- Real API data (6 869 aplikací)
Závislosti
- s60badwolf (REST API)
- s60auth (JWT token pro chráněné endpointy)
Aktuální blocker
- S60Auth JWT integrace — bez tokenu nefungují
/clients,/product-versions - Next step: S60Auth OAuth2 flow →
localStoragetoken → odemkne všechny chráněné endpointy
Sentinel role
Sentinel deployuje venom na hub i prod (prod live od 2026-04-26, ověřeno 2026-07-06).
✅ Build pipeline OPRAVENA (od ff16371, 2026-07-11): venom compose má build: sekci (context ./) + @s60/auth-sdk vendored jako vendor/s60-auth-sdk-0.1.0.tgz → self-contained, build běží na cíli přes deploy.sh venom <env> --build --skip-ci (žádný ruční build/save/load, žádné WRITE OK ssh tokeny). Per-env VITE args (VITE_API_URL/VITE_AUTH_URL/VITE_CALLBACK_URL) čte compose z /root/secrets/venom/.env.<env> (hub=api/auth.s60hub.cz, prod=api/auth.studio60.cz) → zapékají se do bundlu. Systémový fix = venom TODO T-20260706-134 DONE. --skip-ci dál kvůli známému vitest×Playwright misconfig (vite build type-checkuje sám). VŽDY ověřit served bundle — vytáhni assets/index-*.js a grepni baked API URL (hub musí mít api.s60hub.cz, prod api.studio60.cz); labely o obsahu image nic neříkají.
Historie (do 2026-07-10): compose neměla build sekci → sentinel buildil RUČNĚ (rsync -aL deref symlinků → docker save/load → retag → deploy.sh --skip-ci). Nahrazeno self-contained buildem výše.