Skip to content

Web App Overview

The BOS web app (SPOG) is the primary operations interface for an OpenBOS deployment. It runs on port 5001 and provides a unified UI for managing the system model, running and scheduling apps, and administering the platform — without requiring any command-line knowledge.


System Model Explorer

The Explorer lets you browse and edit the semantic model of your building — the graph of spaces, equipment, and control points that everything else in BOS builds on.

  • Graph view — interactive Cytoscape visualization of the full RDF graph. Click any node to open an inspector showing its 1-hop neighborhood, semantic type, and live value (for points).
  • List views — filterable card grids for Locations, Equipment, and Points. Filter by name, URI, or Brick class. Multi-select for bulk operations.
  • CRUD — create spaces, equipment, and points from guided forms with Brick class pickers. Delete or update any entity inline.
  • Live read/write — read and write point values directly from the inspector panel, backed by Device Control.
  • Drag to terminal — drag any entity card onto the embedded terminal to paste its BOS URI at the cursor.

App Orchestrator

The Orchestrator is the control panel for containerized BOS apps.

  • Active apps — table of currently running containers with status, uptime, and transaction ID. Stop any app from the UI.
  • Scheduled apps — cron-based scheduling. Enable/disable schedules without removing them. See next and last run times.
  • Event handlers — register apps to fire when a specific topic is published to the EventBus. See last-triggered timestamps and status.
  • Run history — completed and failed runs with timestamps and exit status.
  • Launch wizard — drag an app from the library sidebar onto any view to open a wizard that generates the environment variable form from the app's env_spec. Control-point fields get Brick class pickers for semantic point selection.
  • Auto-refresh — configurable polling interval (5 s to 5 min) with a live countdown indicator.
  • Live event stream — real-time feed of all EventBus messages streamed over WebSocket.

App Library

A browser for the Docker images installed on the system.

  • View all available BOS apps with their description, author, and configuration schema.
  • Delete images with a confirmation gate (requires typing the image name).
  • Link to the App Builder to create new apps.

App Builder

An in-browser tool for authoring and building BOS apps without leaving the UI.

  • Write Python source code with a code editor.
  • Define the app's metadata and env_spec — the configuration schema that drives the launch wizard.
  • Build a Docker image in-browser and stream the build log in real time over WebSocket.
  • The generated image is immediately available in the library and orchestrator.

Settings

System administration and service configuration.

  • Default space — set the global space context used across the UI for filtering and suggestions. Persists in the browser.
  • Service addresses — reference panel of all core service ports (Sysmod, DevCtrl, History, Orchestrator, EventBus).
  • Maintenance actions — flush the DevCtrl value cache, apply sample rate changes to the historian, refresh the historian's point name table.
  • External tools — resolved URLs for Grafana, Jupyter, Redis UI, and Oxigraph.

Embedded Terminal

A persistent terminal panel (toggle with Ctrl+`) that connects to the cli Docker container over WebSocket.

  • Full PTY with resize support — runs a real bash session.
  • Drag BOS entity URIs from the Explorer directly into the terminal cursor.
  • Available on every page — no context switching needed.

External Tool Integration

The nav drawer provides quick links to the other tools in the BOS ecosystem:

Tool Purpose
Grafana Time-series dashboards backed by the BOS historian
Jupyter Interactive notebooks for data exploration and prototyping
Redis UI Inspect shared memory key-value store
Oxigraph SPARQL query interface for the system model RDF graph
Documentation This site

Further Readings

Coming soon...