Orbito - Dokumentacja modułówOrbito - Dokumentacja modułów
Wprowadzenie
Pierwsze kroki
API
Komunikacja
Widoki
Wdrożenie
Społeczność
For AI agents
Wprowadzenie
Pierwsze kroki
API
Komunikacja
Widoki
Wdrożenie
Społeczność
For AI agents
  • Wprowadzenie

    • Wprowadzenie do Orbito
    • Architektura systemu
    • Ograniczenia modułu

Architektura systemu

Orbito składa się z trzech głównych warstw: serwera Orbito (rdzeń), modułów uruchamianych w kontenerach oraz bazy danych MongoDB. Każda z nich ma ściśle określoną rolę.

┌─────────────────────────────────────────────────┐
│                  Przeglądarka                   │
│              (Panel administracyjny)            │
└─────────────────────┬───────────────────────────┘
                      │ HTTP
┌─────────────────────▼───────────────────────────┐
│               Serwer Orbito (Core)              │
│  - routing żądań         - zarządzanie sesją    │
│  - orkiestracja modułów  - proxy HTTP (fetch)   │
│  - system hooków         - renderowanie stron   │
└──────┬────────────────────────────┬─────────────┘
       │ protokół Orbito            │
┌──────▼──────────┐      ┌──────────▼──────────────┐
│   Moduł A       │      │   Moduł B               │
│  (kontener      │      │  (kontener Docker)       │
│   Docker)       │      │                         │
│  @orbito/api-lib│      │  @orbito/api-lib         │
└──────┬──────────┘      └──────────┬──────────────┘
       │                            │
┌──────▼────────────────────────────▼─────────────┐
│                 MongoDB                         │
│  (kolekcje zarządzane przez Orbito Core)        │
└─────────────────────────────────────────────────┘

Serwer Orbito

Serwer Orbito jest centralnym punktem całego systemu. Pełni kilka kluczowych ról jednocześnie:

Orkiestrator modułów – zarządza cyklem życia każdego modułu: uruchamia kontenery Docker, monitoruje ich stan i restartuje je w razie awarii.

Router żądań – przyjmuje żądania od panelu administracyjnego i kieruje je do właściwego modułu na podstawie ścieżki URL lub nazwy wywoływanej metody.

Proxy HTTP – pośredniczy we wszystkich wychodzących żądaniach HTTP modułów (poprzez Core.fetch). Sprawdza, czy domena docelowa należy do listy zatwierdzonych przez administratora firmy.

Broker hooków – przyjmuje wywołania execHook i rozsyła je do wszystkich modułów zarejestrowanych na dany hook.

Renderer stron – na żądanie przeglądarki odpytuje właściwy moduł o definicję strony i renderuje ją jako HTML.

Wiele procesów rdzenia

Na większej instalacji serwer Orbito działa jako pula rdzeni — kilka procesów na kilku serwerach. Każda firma jest wtedy obsługiwana w całości przez jeden z nich, a po jego awarii przejmuje ją inny proces puli. Moduł łączy się z lokalnym routerem (core-router), który kieruje go do procesu obsługującego firmę. Dla modułu nic się nie zmienia poza tym, że po przejęciu firmy biblioteka @orbito/api-lib łączy się ponownie (w ciągu kilku sekund) — dlatego moduł nie powinien zakładać, że połączenie z platformą trwa przez cały czas życia kontenera. Opis dla operatora instalacji: Pule rdzeni i router.

Moduły

Moduł to samodzielny pakiet Node.js działający w izolowanym kontenerze Docker. Każda instalacja modułu — nazywana instancją — ma własny, niezależny kontener. Firma może zainstalować ten sam moduł wielokrotnie (np. trzy sklepy Prestashop); każda instalacja dostaje wtedy osobny kontener, osobną konfigurację i osobne kolekcje w bazie. Szczegóły w Kontekst firmy i instancji.

Kluczowe cechy modułu:

  • Brak bezpośredniego dostępu do sieci – cały ruch wychodzący przechodzi przez serwer Orbito.
  • Własna przestrzeń plików – moduł widzi tylko swoje pliki; nie ma dostępu do systemu plików hosta ani innych modułów.
  • Standardowy Node.js – moduł może używać dowolnych pakietów npm, tak jak każda aplikacja Node.js.
  • Bezstanowość między wywołaniami – stan biznesowy powinien być persystowany w MongoDB, nie w pamięci procesu (kontener może zostać zrestartowany).

Komunikacja

Moduł komunikuje się z platformą i innymi modułami wyłącznie przez bibliotekę @orbito/api-lib. Biblioteka ta implementuje protokół komunikacyjny Orbito i ukrywa jego szczegóły za prostym API.

Moduł                          Serwer Orbito
  │                                  │
  │── Core.registerMethod(name, fn) ─►│  rejestracja metody
  │                                  │
  │◄─ fn(params, ctx) ───────────────│  wywołanie przez platformę
  │                                  │
  │── Core.callModule(id, method) ──►│  wywołanie innego modułu
  │◄─ wynik ────────────────────────│
  │                                  │
  │── Core.fetch(url, options) ─────►│  wychodzące HTTP
  │◄─ response ──────────────────────│
  │                                  │
  │── Log.info(msg, data) ──────────►│  logowanie

Szczegóły każdej z tych metod znajdziesz w sekcji API biblioteki.

Ostatnio zaktualizowano:: 16.10.2026, 14:08
Contributors: Wiktor Koźmiński, Claude Fable 5.1
Prev
Wprowadzenie do Orbito
Next
Ograniczenia modułu