Files
BetterDesk/MGMT_CLIENT_PROMPT.md
2026-04-01 23:45:58 +02:00

211 lines
8.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.