Skip to content

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 → localStorage token → 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.