Skip to content

PrivateAIM/node-message-broker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Node Message Broker

develop

The communication component for asynchronously sending and receiving messages to/from other nodes. Due to the distribution of nodes these messages are routed via the Hub.

Development Setup

To run the message broker component the following prerequisites need to be met:

  • running authentication provider which is OpenID compliant (e.g. Keycloak)
  • running MonogDB instance (used for subscriptions)
  • running Hub instance with auth, core and messenger component

To spin up a development environment run the following command:

docker compose -f dev/docker-compose.yml up -d

NOTE: Currently, the Hub instance is not taken care of by the command above. However, this will change in future releases. For the time being use your own instance or a public one.

Running the Application

This application requires Maven and at least Java 21 to run. Use the following environment variables to adjust the application to your needs:

EnvVar Description Default
AUTH_JWKS_URL URL to retrieve a JWKS for verifying JWTs.
HUB_AUTH_BASE_URL Base URL to reach the Hub's core component.
HUB_AUTH_ROBOT_ID Robot ID associated with the node.
HUB_AUTH_ROBOT_SECRET_FILE Path to the file containing the secret of the node's associated robot account, as plain text.
HUB_BASE_URL Base URL to reach the Hub's auth component.
HUB_MESSENGER_BASE_URL Base URL to reach the Hub's messenger component.
LOG_LEVEL Log level being used. Can be either of trace, debug, info, warn or error. info
MANAGEMENT_SERVER_PORT Port being used by the management server (providing health check endpoints etc.) 8090
PERSISTENCE_DATABASE_NAME Database name to use when connecting to a MongoDB instance. messagebroker
PERSISTENCE_HOSTNAME Hostname to use to connect to a MongoDB instance. localhost
PERSISTENCE_PORT Port to use to connect to a MongoDB instance. 17017
PROXY_HOST FQDN of the proxy to use.
PROXY_PORT Port of the proxy to use.
PROXY_WHITELIST A regex pattern (Java) to describe hosts that bypass the proxy to be reached directly. See JavaDocs for more information about the pattern usage.
PROXY_USERNAME Username being used when authenticating against the proxy.
PROXY_PASSWORD_FILE Path to the file containing the password used when authenticating against the proxy.
SECURITY_ADDITIONAL_TRUSTED_CERTS_FILE Path to a certificate bundle containing additional certificates to be loaded during startup.
SECURITY_NODE_PRIVATE_ECDH_KEY_FILE Path to the file containing the node's private EC key in PEM format, as plain text.
SERVER_PORT Port being used by the Web server. 8080

Endpoint Documentation

OpenAPI compliant endpoint documentation can be accessed at http://localhost:<MANAGEMENT_SERVER_PORT>/actuator/swagger-ui.

About

Message broker for communicating with the central hub service and other node instances.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •