4. Components and APIs

4.2. Exposed APIs

Table 4.2 APIs :header-rows: 1
Endpoint Purpose Component API Repository
/device Device management API - DeviceManager GitHub - DeviceManager
/template Template management API - DeviceManager GitHub - DeviceManager
/flows Flow management API - flowbroker GitHub - flowbroker
/auth User authentication API - auth GitHub - auth
/auth/revoke User authentication API - auth GitHub - auth
/auth/user User authentication API - auth GitHub - auth
/history Device historical data API - history GitHub - history
/gui Graphical User Interface   GitHub - GUI
/sign Public key signing API - EJBCA-REST GitHub - EJBCA-REST
/ca Certification-Auth. functions API - EJBCA-REST GitHub - EJBCA-REST
/image Device image management API - image-manager GitHub - image-manager
/import Data Manager API - Data Manager GitHub - Data Manager
/export Data Manager API - Data Manager GitHub - Data Manager
/cron Cron API - Cron GitHub - Cron

The API gateway used in dojot reroutes some of these endpoints so that they become uniform: all of them are accessible through the same port (default is TCP port 8000) and have the same naming scheme. Each component, though, might have something different in its configuration and API documentation. The following table shows which endpoint exposed by the API gateway is mapped to which component endpoint.

Table 4.3 Original endpoints
Service Original endpoint Endpoint
DeviceManager host:5000/device host:8000/device
DeviceManager host:5000/template host:8000/template
mashup host:3000/ 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
STH host:8666/ host:8000/history
GUI host/ host:8000/gui
ejbca host:5583/sign host:8000/sign
ejbca host:5583/ca host:8000/ca
DataManager host:3000/import host:8000/import
DataManager host:3000/export host:8000/export
Cron host:5000/cron host:8000/cron

4.3. Kafka messages

These are the messages sent by components and their subjects. If you are developing a new internal component (such as a new IoT agent), see API - data-broker to check how to receive messages sent by other components in dojot.

Table 4.4 Original endpoints
Component Message Subject
DeviceManager Device CRUD (Messages - DeviceManager) dojot.device-manager.device
iotagent-mosca Device data update (Messages - iotagent-mosca) device-data
auth Tenants creation/removal (Messages - auth) dojot.tenancy