Insolitum Developers
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