Klíčová architekturální rozhodnutí
Distribuce aplikací
- Aplikace jsou portable app folders (ne installer.exe) — manifest-based update
- Launcher stáhne jen soubory které se změnily (checksum diff)
- Kanály: alpha (Avaxis test) → beta (vybrané firmy) → stable (všichni)
- AVAX App SDK povinné pro všechny distribuované aplikace (.NET, Java, Python)
- IPC: Named pipe (Win) / Unix socket (Linux), JSON zprávy
Bootstrapper + Main App
- Malý bootstrapper (~5 MB) stažen z avaxis.cz → stáhne main app ze S3
- Každý start: striktní update pokud app neběží; při běžící app → stáhnout na pozadí + tray notifikace
- Tray aktivní i po zavření okna (zálohy + chat běží na pozadí)
Zálohy a S3
- Každá firma má S3 prostor — default 1 GB, soft limit 5 GB
- Žádné automatické mazání — pouze označení expired + Garbage Collector
- Uživatelé nemají S3 DELETE práva — pouze GC job (IAM politika)
- GDPR separace: identity.json (jméno, e-mail) odděleně od klientských dat
Chat
- Broadcast skupiny (200+ členů): Redis Pub/Sub fan-out (jen pro broadcast, ne 1:1)
- 4 režimy skupiny: open / moderated (post) / questions (pre) / announcement
- Admin skupiny může skrýt zprávy, exportovat konverzaci do S3
AI a support
- Hybridní LLM: vm-gpu Ollama (vždy první) → Claude API (komplexní/prioritní)
- RAG: pgvector embeddingy, znalostní báze z vyřešených tiketů
- Mimo pracovní dobu: AI automatická odpověď + ráno agent zkontroluje
Organizace a oprávnění
- Multi-tenant: firmy identifikovány IČO
- Avaxis = superfirma (system_role: super_admin) se Správou portálu
- Uživatel vidí jen aplikace přidělené jeho roli nebo jemu přímo
- 2FA: QR kód (AVAX Android app) + TOTP záloha, výchozí vypnuté