mirror of
https://github.com/UNITRONIX/BetterDesk.git
synced 2026-09-10 01:27:11 +00:00
211 lines
8.2 KiB
Markdown
211 lines
8.2 KiB
Markdown
# 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. |