Skip to content

Dashboard

Intuware ships with a built-in web dashboard for monitoring channels, browsing messages, reprocessing failures, and viewing live metrics — all from a single pane of glass.

The dashboard is available at http://localhost:3001 by default and is enabled out of the box. It provides a real-time view of every channel in your project along with a full message browser and REST API.

Configure the dashboard in your root intu.yaml:

dashboard:
enabled: true
port: 3001
auth:
provider: basic # basic | oidc | ldap
users:
- username: admin
password: ${DASHBOARD_PASSWORD}
role: admin
PropertyDescriptionDefault
dashboard.enabledEnable or disable the dashboardtrue
dashboard.portHTTP port the dashboard listens on3001
dashboard.authAuthentication configuration blocknone (open)

The channel list shows every deployed channel with real-time status indicators:

MetricDescription
Statusrunning, stopped, or error
ThroughputMessages per second over the last 60 s
Error RatePercentage of messages that errored in the pipeline
UptimeTime since the channel was last deployed

Click a channel row to open the channel detail view with historical charts and configuration.

Search and filter messages across all channels or scoped to a single channel:

  • Filter by channel, status, or date range
  • Inspect the raw payload at each pipeline stage (received → transformed → sent)
  • View error details and stack traces for failed messages

Reprocess individual messages or bulk-reprocess by filter directly from the dashboard.

  • Single message — open the message detail view and click Reprocess.
  • Bulk reprocess — apply filters in the message browser, select messages, and click Reprocess Selected.

The dashboard exposes real-time throughput, latency percentiles, and error counts updated every few seconds.

All dashboard functionality is available programmatically through the REST API served on the same port.

MethodEndpointDescription
GET/api/channelsList all channels
GET/api/channels/:idGet channel detail (config, status, metrics)
POST/api/channels/:id/deployDeploy and start a channel
POST/api/channels/:id/undeployStop and undeploy a channel
Terminal window
# List channels
curl http://localhost:3001/api/channels
# Deploy a channel
curl -X POST http://localhost:3001/api/channels/adt-feed/deploy
MethodEndpointDescription
GET/api/messagesList messages
GET/api/messages/:idGet message detail (all pipeline stages)
POST/api/messages/:id/reprocessReprocess a single message

Query parameters for GET /api/messages:

ParamDescriptionDefault
channelFilter by channel IDall
statusFilter by status (received, transformed, sent, error)all
limitMax results50
offsetPagination offset0
Terminal window
# List error messages for a channel
curl "http://localhost:3001/api/messages?channel=adt-feed&status=error&limit=10"
# Reprocess a message
curl -X POST http://localhost:3001/api/messages/msg_01HQXK9V7W/reprocess
MethodEndpointDescription
GET/api/metricsRuntime metrics (throughput, latency, error counts)
GET/api/healthHealth check — returns 200 OK when the engine is running

The dashboard supports three authentication providers:

dashboard:
auth:
provider: basic
users:
- username: admin
password: ${ADMIN_PASSWORD}
role: admin
- username: ops
password: ${OPS_PASSWORD}
role: operator
dashboard:
auth:
provider: oidc
issuer: https://auth.example.com
client_id: ${OIDC_CLIENT_ID}
client_secret: ${OIDC_CLIENT_SECRET}
dashboard:
auth:
provider: ldap
url: ldap://ldap.example.com:389
bind_dn: cn=readonly,dc=example,dc=com
search_base: ou=users,dc=example,dc=com
user_filter: "(uid={{username}})"

Three built-in roles control what each user can see and do:

RoleChannelsMessagesDeploy / UndeployReprocessSettings
adminviewviewyesyesyes
operatorviewviewyesyesno
viewerviewviewnonono