Serwer API KOTA
Serwer napisany w języku TypeScript korzystając z biblioteki express, którego głównym zadaniem jest obsługa sensorboxów KOTA. Jest odpowiedzialny za:
- Informacje o wersji urządzenia (hardware i software)
- Aktualizacje OTA
- Możliwość dzielenia oprogramowania na grupy (alpha, beta, release)
Autentykacja
Panel administracyjny
Dostęp do panelu administracyjnego jest zabezpieczony OIDC. Użytkownicy muszą się zalogować poprzez Authentik, aby uzyskać dostęp do funkcji administracyjnych.
API dla sensorboxów
Sensorboxy komunikują się z serwerem API KOTA za pomocą tokenów JWT. Domyślnie sensorbox posiada token do pierwszego logowania, który jest wspólny dla wszystkich urządzeń. Po pierwszym logowaniu, serwer generuje unikalny token dla każdego sensorboxa, który jest używany do dalszej komunikacji.
Aktualizacje OTA
Każde urządzenie raportuje swoją aktualną wersję software oraz hardware w zapytaniu o aktualizację. Serwer API KOTA porównuje te informacje z dostępnymi aktualizacjami i decyduje, czy urządzenie kwalifikuje się do aktualizacji. Jeśli aktualizacja jest dostępna, serwer zwraca link do pobrania nowej wersji oprogramowania. Sam link jest generowany dynamicznie, ważny na określony czas i jednorazowy. Po aktualizacji, urządzenie raportuje sukces lub niepowodzenie aktualizacji, co pozwala na monitorowanie procesu aktualizacji i identyfikowanie potencjalnych problemów.
Grupy aktualizacji
Serwer API KOTA umożliwia dzielenie oprogramowania na grupy, takie jak alpha, beta i release. Każda grupa może mieć różne wersje oprogramowania, a urządzenia mogą być przypisane do konkretnej grupy. Dzięki temu można testować nowe funkcje na mniejszej grupie urządzeń przed udostępnieniem ich wszystkim użytkownikom.
Różne urządzenia
Serwer posiada podział na urządzenia, co pozwala w przyszłości na obsługę różnych typów sensorboxów, z różnymi wymaganiami dotyczącymi aktualizacji i funkcjonalności. Każde urządzenie może mieć swoje unikalne ustawienia i wymagania dotyczące aktualizacji, co pozwala na bardziej elastyczne zarządzanie oprogramowaniem.
Panel administracyjny
W panelu widać listę typów urządzeń, i po wejściu w konkretny typ można zobaczyć różne aktualizacje, które są dostępne dla tego typu urządzenia. Można również zarządzać grupami aktualizacji, przypisywać urządzenia do grup i monitorować status aktualizacji dla poszczególnych urządzeń. Panel administracyjny umożliwia również przeglądanie logów aktualizacji, co pozwala na identyfikowanie i rozwiązywanie problemów związanych z aktualizacjami oprogramowania.
Uruchomienie
-
Skopiuj plik
.env.exampledo.envi uzupełnij wartości. -
Zainstaluj zależności:
npm install -
Uruchom serwer w trybie deweloperskim:
npm run dev -
Skompiluj produkcyjną wersję:
npm run build npm start
Panel administracyjny
- Otwórz panel pod adresem
/admin/panel - Użyj przycisku
Login with OIDCdo uwierzytelnienia - Token OIDC jest zapisywany w
localStoragei wykorzystywany do żądań HTMX