4. Componentes e APIs

4.1. Components

Tabela 4.1 Components
Componentes
Repositório
/ Site principal
Documentação
para Componentes
API de componentes
Documentação
MongoDB MongoDB site MongoDB doc.  
Postgres PostgreSQL site PostgreSQL doc.  
Kong API gateway
(Community Edition)
Kong site Kong doc.  
Redis Redis site Redis doc.  
Zookeeper Zookeeper site Zookeeper doc.  
Kafka Kafka site Kafka doc.  
Auth GitHub - auth Auth doc. API - auth
History GitHub - history   API - history
Device Manager GitHub - DeviceManager DeviceManager doc. API - DeviceManager
Image Manager GitHub - image-manager   API - image-manager
GUI GitHub - GUI    
Flowbroker GitHub - flowbroker   API - flowbroker
Databroker GitHub - data-broker   API - data-broker
Iotagent Mosca
(MQTT)
GitHub - iotagent-mosca    
EJBCA-REST GitHub - EJBCA-REST   API - EJBCA-REST
Data Manager GitHub - Data Manager   API - Data Manager
Cron GitHub - Cron   API - Cron

4.2. APIS expostas (API Gateway)

O API gateway usado na dojot reencaminha alguns dos endpoints dos componentes. A tabela a seguir mostra quais endpoint exposto pelo API gateway são mapeado para quais endpoint dos componentes, e suas endpoint componentes documentações usado via API Gateway. Veja mais como usar as APIS em Using API interface.

Tabela 4.2 Endpoint esposto
Componentes
Endpoint esposto
pelo API gateway
Componentes
Endpoint
Componentes
Endpoint
Documentação
Precisa de
Autenticação
GUI / /   Não
Device Manager /device /device API - DeviceManager Sim
Device Manager /template /template API - DeviceManager Sim
Flowbroker /flows / API - flowbroker Sim
Auth /auth / API - auth Não
Auth /auth/revoke /revoke   Não
Auth /auth/user /user API - auth Sim
Auth /auth/pap /pap API - auth Sim
History /history / API - history Sim
EJBCA REST /sign /sign API - EJBCA-REST Sim
EJBCA REST /ca /ca API - EJBCA-REST Sim
EJBCA REST /user /user API - EJBCA-REST Sim
Data Manager /import /import API - Data Manager Sim
Data Manager /export /export API - Data Manager Sim
Cron /cron /cron API - Cron Sim
Image Manager /fw-image / API - image-manager Sim
Data Broker
/device/
{deviceID}
/latest
/device/
{deviceID}
/latest
  Sim
Data Broker /subscription /subscription   Sim
Data Broker /stream /stream   Sim
Data Broker /socket.io /socket.io API - data-broker Não

NOTA: Alguns endpoints não são expostos, mas são utilizados internamente.

Além disso, o gateway da API redireciona os endpoints com suas repectivas portas do componente, para que se tornem uniformes: todos eles são acessíveis pela mesma porta (o padrão é a porta TCP 8000), consulte a tabela a seguir.

Tabela 4.3 Endpoints originais para o API gateway
Componentes Endpoints Originais Gateway Endpoint
GUI host:80/ host:8000/
Device Manager host:5000/device host:8000/device
Device Manager host:5000/template host:8000/template
Flowbroker host:80/ host:8000/flows
Auth host:5000/ host:8000/auth
Auth host:5000/auth/revoke host:8000/auth/revoke
Auth host:5000/user host:8000/auth/user
Auth host:5000/pap host:8000/auth/pap
History host:8000/ host:8000/history
EJBCA REST host:5583/sign host:8000/sign
EJBCA REST host:5583/ca host:8000/ca
Data Manager host:3000/import host:8000/import
Data Manager host:3000/export host:8000/export
Cron host:5000/cron host:8000/cron
Image Manager host:5000/ host:8000/fw-image
Data Broker host:80/device/{{deviceID}}/latest host:8000/device/{deviceID}/latest
Data Broker host:80/subscription host:8000/subscription
Data Broker host:80/stream host:8000/stream
Data Broker host:80/socket.io host:8000/socket.io

4.3. Mensagens do Kafka

Essas são as mensagens enviadas pelos componentes e seus assuntos. Se você estiver desenvolvendo um novo componente interno (como um novo agente de IoT),consulte API - data-broker para verificar como receber mensagens enviadas por outros componentes na dojot.

Tabela 4.4 Endpoints Originais
Componentes Mensagem Subject
DeviceManager Dispositivo CRUD (Criar, Ler, Atualizar e Excluir) (Mensagens - DeviceManager) dojot.device-manager.device
iotagent-mosca Atualização de dados do dispositivo (Mensagens - iotagent-mosca) device-data
auth Criação/remoção de Tenants (Mensagens - auth) dojot.tenancy