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ć?#
| Ograniczenie | Opis |
|---|---|
| Dostęp do plików | Plugin nie może czytać ani zapisywać plików na dysku |
| Polecenia systemowe | Plugin nie może uruchamiać komend systemowych |
| Dane innych pluginów | Plugin nie może modyfikować zmiennych innego pluginu |
| Obiekty OM | Plugin nie może nadpisać urządzeń skonfigurowanych w Object Managerze |
| Surowe połączenia | Plugin 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:
- Wszystkie jego timery są zatrzymywane
- Wszystkie subskrypcje zdarzeń są usuwane
- Wszystkie subskrypcje MQTT są usuwane
- Obiekty pluginu są usuwane z rejestru
- Dane konfiguracyjne pluginu są czyszczone
System dba o pełne czyszczenie - po odinstalowaniu nie pozostają żadne śmieci.
Bezpieczne kanały komunikacji#
| Kanał | Odczyt | Zapis |
|---|---|---|
| EventBus | każdy plugin | każdy plugin (własne zdarzenia) |
| Rejestr urządzeń | każdy plugin | tylko do własnego namespace |
| Publiczne API | każdy plugin | tylko własne metody |
| MQTT | każdy plugin | każdy plugin (przez API MQTT) |
| HTTP | każdy plugin | każ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