Přeskočit na hlavní obsah

Úvod do cloudu

HARDWARIO Cloud je infrastruktura, která zajišťuje připojení zařízení IoT HARDWARIO, slouží k jejich správě a zpřístupňuje přenášená data přes REST API nebo callbacky.


  1. Základní vlastnosti platformy HARDWARIO Cloud popisuje kapitola:
    Základní vlastnosti

  2. Bezpečnostní opatření vysvětluje kapitola:
    Bezpečnostní opatření

  3. O možnostech cloudových integrací se dočtete v kapitole:
    Cloudové integrace

Základní vlastnosti​

  • Příchozí spojení se zapouzdřují do takzvaných relací, které navazují zařízení. Každá relace je jedinečná a plně dohledatelná v komunikačních logech.

  • Zprávy procházející socketem se překládají z binárního formátu do JSON a předávají se ke zpracování v pipeline RabbitMQ.

  • Zpráva se uloží do databáze, a pokud si zákazník nakonfiguroval asynchronní callback, okamžitě se doručí do jeho backendu (webhook).

  • Data jsou k dispozici také přes REST API.

  • Se zařízeními a zprávami mohou zákazníci pracovat ve webovém portálu, který je klientem REST API platformy (HARDWARIO Cloud je postavený na modelu API-first).

  • Celý stack je napsaný v Node.js (framework Fastify) a Vue.js (frontend).

  • HARDWARIO Cloud používá jako databázi MongoDB a jako in-memory cache Redis.

  • Všechny komponenty běží v izolovaných kontejnerech Docker (spouštěných pomocí Docker Compose).

Bezpečnostní opatření​

  • Komunikace mezi zařízením a serverem využívá osvědčenou implementaci socketu DTLS (v1.2) v režimu PSK.

  • Bluetooth Low Energy má zapnutý bezpečnostní PIN. PIN je pro každé zařízení unikátní.

  • Servery běží ve frankfurtském datovém centru společnosti Digital Ocean.

  • Všechny servery se automaticky každý týden zálohují.

  • Všechny servery běží na nejnovější LTS distribuci Ubuntu Server.

  • Tým HARDWARIO aktualizuje serverový software v pravidelných měsíčních intervalech spolu s bezpečnostním auditem (běžící procesy, uživatelé, systémové prostředky atd.).

  • Na servery se lze přihlásit pouze z běžného uživatelského účtu (přihlášení jako root není možné).

  • Přihlásit se lze jen klíčem SSH (ne heslem). Klíč SSH musí být chráněný heslem.

  • Každý člen týmu HARDWARIO musí všude, kde je to možné, používat správce hesel a dvoufázové ověření (2FA). Přednost má ověřování přes důvěryhodné poskytovatele identity, například Google nebo Microsoft.

Cloudové integrace​

Callbacky​

Callbacky jsou zprávy, které cloud automaticky přeposílá na zadaný endpoint (URL). Callback se vždy nastavuje pro konkrétní skupinu ikonou Edit. Při nastavení callbacku vyplníte tato pole:

  • Name: Název callbacku podle vaší volby; doporučujeme uvést název integrované aplikace, např. Ubidots

  • Enabled: Callback lze zapnout a vypnout. Funguje, když je Enabled nastavené na Yes

  • Note: Prostor pro vaši interní poznámku

  • Method: Výběr metody HTTP:

    • POST: Nese parametry požadavku v těle zprávy

    • GET: Nese parametry požadavku připojené k URL

    • PUT: Vytvoří nový zdroj nebo nahradí reprezentaci cílového zdroje požadovaným payloadem

    • PATCH: Aktualizuje hodnoty vlastností zdroje

  • URL Address: URL endpointu, na který se budou zprávy odesílat. Důrazně doporučujeme použít protokol HTTPS (technologie TLS).

  • Query Parameters: Volitelné rozšíření URL

  • Name: Název zadaného parametru

  • Value: Hodnota parametru

  • HTTP Headers: Doplňující kontext požadavku HTTP

  • Name: Název zadané hlavičky (např. Authentication)

  • Value: Hodnota, např. autentizační token

  • Content Type: Výběr z následujících možností:

    • application/json

    • application/x-www-form-urlencoded

    • application/octet-stream

  • Payload: V tomto poli můžete obsah zprávy transformovat funkcionálním jazykem JSONata. Pokud další transformaci JSONata nepotřebujete, nechte pole prázdné (payload se předá beze změny). Níže je příklad výběru a transformace části obsahu zprávy:

    {
    "external_temperature": data.hygrometer.temperature,
    "external_humidity": data.hygrometer.humidity,
    "device_orientation": data.accelerometer.orientation
    }
  • Original message: Obsah zprávy před transformací JSONata

  • Transformed payload: Obsah zprávy po transformaci JSONata

Callback uložte tlačítkem SAVE CALLBACK.

REST API​

REST API je aplikační programové rozhraní, které dodržuje omezení architektonického stylu REST a slouží ke komunikaci s webovými službami RESTful.

Popis našeho REST API najdete na adrese: https://api.hardwario.cloud