diff --git a/MGMT_CLIENT_PROMPT.md b/MGMT_CLIENT_PROMPT.md new file mode 100644 index 00000000..5052a8ef --- /dev/null +++ b/MGMT_CLIENT_PROMPT.md @@ -0,0 +1,211 @@ +# Prompt: BetterDesk MGMT Client + +## Cel +Na bazie istniejącego projektu `UNITRONIX/BetterDesk` utwórz nowy, wydzielony typ klienta o nazwie **BetterDesk MGMT Client** (klient administracyjno-operatorski), którego zadaniem jest zapewnienie administratorom i operatorom centrum wsparcia zdalnego pełnego, bezpiecznego i wysokowydajnego dostępu do urządzeń podłączonych do serwera BetterDesk. + +Klient MGMT ma być aplikacją typu **standalone**, zoptymalizowaną pod kątem: +- maksymalnej jakości obrazu, +- niskich opóźnień, +- szerokiego wsparcia kodeków, +- stabilności połączeń, +- zgodności z różnymi systemami operacyjnymi, +- bezpieczeństwa operacyjnego i kryptograficznego, +- centralnego zarządzania infrastrukturą BetterDesk. + +## Główna rola klienta MGMT +Klient MGMT to narzędzie dla administratorów, helpdesku, operatorów i personelu wsparcia technicznego. Ma umożliwiać: + +1. zdalne łączenie się do klientów typu Agent, +2. wyświetlanie listy urządzeń zarejestrowanych nie tylko w BetterDesk, ale również – jeśli architektura projektu na to pozwala – urządzeń pochodzących z integracji z RustDesk, +3. zarządzanie serwerem BetterDesk z poziomu aplikacji, +4. prowadzenie czatu z użytkownikami i agentami podłączonymi do serwera, +5. odbieranie powiadomień o prośbach o pomoc, +6. nadzorowanie i obsługę scenariuszy CDAP (narzędzie operatora do zdalnej pomocy i zarządzania), +7. zapewnienie maksymalnej jakości i płynności transmisji obrazu dzięki pełnemu wykorzystaniu dostępnych technologii projektu. + +## Wymagania architektoniczne +Przeanalizuj aktualną architekturę repozytorium `BetterDesk` i zaprojektuj klienta MGMT tak, aby: +- wykorzystywał maksymalnie istniejące komponenty i protokoły projektu, +- nie dublował logiki już obecnej w backendzie i usługach serwera, +- wydzielał warstwę GUI od warstwy komunikacyjnej, +- wspierał modularność, +- umożliwiał dalszą rozbudowę o dodatkowe kodeki, integracje i mechanizmy polityk bezpieczeństwa. + +Zaproponuj architekturę, która może wykorzystywać: +- frontend oparty o obecne zasoby JavaScript/HTML/CSS, +- wydajny backend/bridge lokalny w Go tam, gdzie wymagana jest wydajność, natywna integracja systemowa, streaming, zarządzanie procesami i funkcje bezpieczeństwa, +- skrypty Shell/PowerShell do instalacji, detekcji środowiska i działań administracyjnych per system operacyjny. + +## Kluczowe funkcje klienta MGMT + +### 1. Panel urządzeń +Klient MGMT ma prezentować zunifikowaną listę urządzeń: +- online/offline, +- typ urządzenia, +- system operacyjny, +- wersja klienta, +- nazwa hosta, +- adresy sieciowe, +- status bezpieczeństwa, +- ostatnie połączenie, +- tagi, grupy, lokalizacje, właściciel urządzenia, +- źródło urządzenia: BetterDesk / integracja RustDesk / inne przyszłe źródła. + +Lista ma wspierać: +- wyszukiwanie, +- filtrowanie, +- sortowanie, +- grupowanie, +- widoki administracyjne, +- szybkie akcje masowe. + +### 2. Zdalna sesja premium +Połączenie z klientem Agent ma oferować: +- maksymalną jakość obrazu, +- adaptacyjny bitrate, +- dynamiczne dopasowanie rozdzielczości, +- szerokie wsparcie kodeków zależnie od możliwości systemu i sprzętu, +- preferowanie sprzętowej akceleracji, jeśli jest dostępna, +- automatyczny fallback do bezpiecznych i kompatybilnych trybów software, +- przesyłanie dźwięku, jeśli projekt to umożliwia, +- tryb wielu monitorów, +- wybór monitora, +- kopiuj/wklej, schowek, +- transfer plików, +- opcjonalny zdalny terminal / shell administracyjny, jeśli architektura to wspiera, +- nagrywanie sesji zgodnie z polityką uprawnień i audytu, +- mechanizmy rekonfiguracji jakości w trakcie sesji. + +### 3. Czat i komunikacja +Klient MGMT ma umożliwiać: +- czat 1:1 z użytkownikiem końcowym, +- czat operator ↔ agent, +- czat grupowy dla kontekstu incydentu lub zgłoszenia, +- gotowe odpowiedzi, +- historię konwersacji, +- powiadomienia push/in-app, +- eskalację zgłoszeń, +- oznaczanie sesji jako wymagającej pilnej pomocy. + +### 4. Zarządzanie serwerem BetterDesk +Klient MGMT ma zawierać panel administracyjny pozwalający – zależnie od uprawnień – na: +- przegląd stanu serwera, +- przegląd podłączonych klientów, +- zarządzanie operatorami i rolami, +- konfigurację polityk bezpieczeństwa, +- podgląd logów i zdarzeń, +- zarządzanie kluczami, tokenami i rejestracją klientów, +- zarządzanie integracjami, +- zarządzanie kolejką powiadomień o pomocy, +- zarządzanie grupami urządzeń i regułami przypisania. + +### 5. Tryb CDAP / operator +Klient MGMT ma być głównym narzędziem operatora. Powinien: +- obsługiwać wiele równoczesnych sesji, +- oferować kolejkę zgłoszeń, +- priorytety incydentów, +- dashboard aktywnych połączeń, +- monitoring jakości sesji, +- wskaźniki wykorzystania pasma, kodeka, FPS, opóźnienia, +- podgląd alertów i problemów z agentami, +- możliwość przejmowania, przekazywania i kończenia sesji zgodnie z uprawnieniami. + +## Bezpieczeństwo — wymagania krytyczne +To jest priorytet najwyższy. Implementacja ma być projektowana zgodnie z zasadą secure-by-design. + +Wymagania: +- silna wzajemna autoryzacja klient ↔ serwer, +- TLS/mTLS tam, gdzie możliwe, +- rotacja tokenów sesyjnych, +- krótko żyjące tokeny dostępu, +- role i uprawnienia RBAC, +- opcjonalnie wsparcie MFA dla operatorów, +- pinning certyfikatów lub bezpieczny trust model, +- pełen audyt zdarzeń administracyjnych, +- podpisywanie lub weryfikacja integralności aktualizacji, +- minimalizacja powierzchni ataku, +- bezpieczne przechowywanie sekretów lokalnie z użyciem systemowych magazynów poświadczeń jeśli możliwe, +- ograniczenie wykonywania działań wysokiego ryzyka, +- jawna zgoda użytkownika tam, gdzie polityka firmy lub tryb pracy tego wymaga, +- rozdzielenie funkcji operatora i superadministratora, +- ścisła walidacja komunikatów przychodzących, +- odporność na replay attack, downgrade attack i nieautoryzowane przejęcie sesji. + +## Kompatybilność systemowa +Klient MGMT musi być zaprojektowany z myślą o: +- Windows, +- Linux, +- macOS. + +Uwzględnij: +- różnice w przechwytywaniu obrazu, +- różnice w modelu uprawnień, +- różnice w przechowywaniu sekretów, +- różnice w instalacji i aktualizacji, +- różnice w akceleracji sprzętowej i dostępności kodeków, +- różnice w działaniu usług/system tray/notyfikacji. + +## UX/UI +Interfejs ma być: +- nowoczesny, +- czytelny, +- szybki, +- zoptymalizowany dla operatora pracującego pod obciążeniem, +- wspierać motyw ciemny i jasny, +- mieć priorytet na ergonomię, gęstość informacji i szybkość działania. + +Widoki minimalne: +- logowanie, +- dashboard, +- lista urządzeń, +- szczegóły urządzenia, +- okno zdalnej sesji, +- panel czatu, +- centrum powiadomień, +- panel zarządzania serwerem, +- panel ustawień, +- panel audytu/logów. + +## Integracja z RustDesk +Jeśli repozytorium BetterDesk technicznie umożliwia integrację z RustDesk, zaprojektuj warstwę integracyjną tak, aby: +- nie łamać obecnej architektury, +- oddzielać źródła urządzeń logicznie, +- normalizować metadane urządzeń, +- zachować spójny model uprawnień, +- zapewniać bezpieczne mapowanie sesji, statusów i identyfikatorów. + +Jeśli pełna integracja nie jest możliwa bez dużych zmian, zaproponuj: +- etapowy plan integracji, +- warstwę kompatybilności, +- adapter źródeł urządzeń. + +## Wymagania implementacyjne +Na bazie istniejącego projektu: +1. przeanalizuj strukturę repozytorium i wskaż, które moduły można ponownie wykorzystać, +2. zaproponuj docelową strukturę kodu klienta MGMT, +3. wskaź, które części napisać w Go, a które w JavaScript, +4. uwzględnij budowanie aplikacji wieloplatformowej, +5. uwzględnij instalatory i aktualizacje, +6. zaproponuj warstwę konfiguracji i polityk, +7. zaproponuj testy: + - jednostkowe, + - integracyjne, + - e2e, + - testy bezpieczeństwa, + - testy wydajności streamingu, + - testy kompatybilności systemowej. + +## Oczekiwany rezultat +Wygeneruj kompletny plan i implementację klienta **BetterDesk MGMT Client**, obejmującą: +- architekturę, +- strukturę katalogów, +- komponenty GUI, +- warstwę komunikacji, +- obsługę zdalnych sesji, +- panel serwera, +- czat, +- powiadomienia, +- model bezpieczeństwa, +- integrację z istniejącym backendem BetterDesk, +- plan integracji z RustDesk, +- strategię wdrożenia cross-platform. \ No newline at end of file