Topic Browser GraphQL API

Overview

Query Unified Namespace topics and metadata in real-time.

  • Endpoint: http://localhost:8090/graphql

  • Default: Enabled (graphql.enabled: true)

  • Authentication: None (open by default)

Schema

Queries

type Query {
  topics(filter: TopicFilter, limit: Int): [Topic!]!
  topic(topic: String!): Topic
}

Types

type Topic {
  topic: String!
  metadata: [MetadataEntry!]!
  lastEvent: Event    # Latest event only
}

union Event = TimeSeriesEvent | RelationalEvent

type TimeSeriesEvent {
  producedAt: String!
  scalarType: String!
  numericValue: Float
  stringValue: String
  booleanValue: Boolean
}

type RelationalEvent {
  producedAt: String!
  json: String!
}

input TopicFilter {
  text: String
  meta: [MetaExpr!]
}

input MetaExpr {
  key: String!
  eq: String!
}

Example Queries

All topics:

Filter by text:

Filter by metadata:

Single topic:

Using curl

Basic query:

Filter query:

Limitations

  • History: Latest event only (no historical data)

  • Subscriptions: Not supported (queries only)

  • Rate Limiting: None (use responsibly)

  • Scope: Single UMH instance only

Multi-Instance Behavior

  • Each UMH Core instance has its own Topic Browser

  • GraphQL API returns topics from local instance only

  • Management Console aggregates all instances into unified view

Configuration

Security

  • Authentication: Currently open (no tokens required)

  • CORS: Configurable via corsOrigins setting

  • Network Security: Recommended for production deployments

  • Port Access: Ensure port 8090 is appropriately secured

Last updated