API Reference

Utilities Reference

Navigation helpers, NATS subjects, and WebSocket channels for Insolitum Universe modules.

Utilities Reference

Shell Navigation

Navigate the parent Universe Shell from within your module iframe.

Import: import { navigateShell, navigateToModules } from '@/lib/shell-navigation';

Navigate the Shell to any path:

function navigateShell(path: string): void;
 
// Examples
navigateShell('/admin/dashboard');
navigateShell('/admin/modules');
navigateShell('/admin/modules/lexshift');

Shortcut to navigate back to the modules list:

function navigateToModules(): void;
// Equivalent to: navigateShell('/admin/modules');

How It Works

export function navigateShell(path: string) {
  if (window.parent !== window) {
    window.parent.postMessage({ type: 'navigate', path }, '*');
  }
}

The Shell listens for navigate messages from module iframes and updates the router.


NATS Subjects

Standard NATS subject patterns used in Insolitum Universe.

Import: import { NATS_SUBJECTS, WS_CHANNELS } from '@/lib/nats-events';

NATS_SUBJECTS

const NATS_SUBJECTS = {
  // All telemetry for a tenant
  telemetry: (tenantId: string) => `telemetry.${tenantId}.>`,
 
  // Specific device
  telemetryDevice: (tenantId: string, deviceId: string) =>
    `telemetry.${tenantId}.${deviceId}`,
 
  // Alerts
  alerts: (tenantId: string) => `alerts.${tenantId}.>`,
  alertCreated: (tenantId: string) => `alerts.${tenantId}.created`,
  alertResolved: (tenantId: string) => `alerts.${tenantId}.resolved`,
 
  // Module-to-module events
  moduleEvents: (moduleId: string, tenantId: string) =>
    `modules.${moduleId}.${tenantId}.>`,
 
  // System
  systemHealth: 'system.health.>',
  systemEvents: 'system.events.>',
};

WS_CHANNELS

const WS_CHANNELS = {
  TELEMETRY: 'telemetry',
  ALERTS: 'alerts',
  EVENTS: 'events',
  MODULES: 'modules',
  SYSTEM: 'system',
} as const;
 
type WsChannel = 'telemetry' | 'alerts' | 'events' | 'modules' | 'system';

On this page