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

8.2 KiB
Raw Permalink Blame History

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.