Izolacja pluginów#

Każdy plugin w vCLU działa w swoim własnym, odizolowanym środowisku. Plugin nie może wpływać na inne pluginy ani na rdzeń systemu. Możesz bezpiecznie instalować pluginy - system izolacji chroni resztę konfiguracji.

Co oznacza izolacja?#

Każdy plugin ma:

  • Własną przestrzeń - zmienne jednego pluginu nie są widoczne dla innego
  • Śledzenie zasobów - system wie, co plugin stworzył (timery, subskrypcje, obiekty)
  • Automatyczne czyszczenie - po odinstalowaniu pluginu wszystkie jego zasoby są usuwane

Co się dzieje, gdy plugin się zepsuje?#

Jeśli plugin napotka błąd lub przestanie działać:

  • Pozostałe pluginy działają normalnie - awaria jednego nie wpływa na inne
  • System pozostaje stabilny - rdzeń vCLU nie jest narażony
  • Możesz wyłączyć lub odinstalować wadliwy plugin bez wpływu na resztę

Czego plugin nie może robić?#

OgraniczenieOpis
Dostęp do plikówPlugin nie może czytać ani zapisywać plików na dysku
Polecenia systemowePlugin nie może uruchamiać komend systemowych
Dane innych pluginówPlugin nie może modyfikować zmiennych innego pluginu
Obiekty OMPlugin nie może nadpisać urządzeń skonfigurowanych w Object Managerze
Surowe połączeniaPlugin nie może otwierać połączeń TCP/UDP

Jak pluginy się komunikują?#

Pluginy mogą wymieniać informacje przez bezpieczne, kontrolowane kanały:

Zdarzenia (EventBus)#

Plugin może wysyłać i odbierać zdarzenia. Na przykład plugin pogodowy wysyła informacje o temperaturze, a plugin powiadomień reaguje na nie.

Rejestr urządzeń#

Plugin może udostępniać swoje dane (np. odczyty czujników) w rejestrze urządzeń. Inne pluginy mogą je odczytać, ale nie modyfikować.

Publiczne API#

Plugin może udostępnić metody, które inne pluginy mogą wywoływać - np. odpytanie o aktualny stan.

Odinstalowanie pluginu#

Gdy odinstalowujesz plugin:

  1. Wszystkie jego timery są zatrzymywane
  2. Wszystkie subskrypcje zdarzeń są usuwane
  3. Wszystkie subskrypcje MQTT są usuwane
  4. Obiekty pluginu są usuwane z rejestru
  5. Dane konfiguracyjne pluginu są czyszczone

System dba o pełne czyszczenie - po odinstalowaniu nie pozostają żadne śmieci.

Bezpieczne kanały komunikacji#

KanałOdczytZapis
EventBuskażdy pluginkażdy plugin (własne zdarzenia)
Rejestr urządzeńkażdy plugintylko do własnego namespace
Publiczne APIkażdy plugintylko własne metody
MQTTkażdy pluginkażdy plugin (przez API MQTT)
HTTPkażdy pluginkażdy plugin (przez API HTTP)

Możesz bezpiecznie instalować pluginy - system izolacji chroni resztę konfiguracji. Każdy plugin działa w swoim zamkniętym środowisku.

Podsumowanie#

  • Pluginy są od siebie całkowicie odizolowane
  • Awaria jednego pluginu nie wpływa na resztę systemu
  • Pluginy komunikują się tylko przez bezpieczne kanały
  • Odinstalowanie pluginu czyści wszystkie jego zasoby
  • Plugin nie ma dostępu do systemu plików ani poleceń systemowych