How nvidia-omniverse/ov-streaming-portal-sample works
Omniverse Streaming Portal Sample combines a user-facing application catalog and Kit streaming experience with an administrative panel for published apps and user sessions. The main user flow is portal authentication, app discovery, session launch, then interactive streaming; administrators separately manage deployments and inspect/control sessions. The graph includes documented MCP access and Storage API token exchange. Sampled excerpts confirm only selected wiring, so unsampled routes and subsystem internals are represented without speculative call edges.
Main entry points: router.tsx Page routing · main.py API application · useStorageApiAuth.ts Storage auth · apps.py App management
Components 28
Portal UI
- Portal entry
web/src/main.tsx - Page routing
web/src/router.tsx - User authentication
web/src/providers/AuthProvider.tsx - App catalog
web/src/pages/Home.tsx - App details
web/src/pages/AppInfo.tsx - Session admin
web/src/pages/UserSessionList.tsx - Application state
web/src/state/Apps.ts
Streaming
- Stream page
web/src/pages/AppStream.tsx - Stream controller
web/src/hooks/useStream.ts - Storage auth
web/src/hooks/useStorageApiAuth.ts - Token session
web/src/storageApi/auth/StorageApiSession.ts - Stream auth bridge
web/src/hooks/useStreamStorageApi.ts - OAuth callback
web/src/pages/StorageApiAuthenticate.tsx
Portal API
- API application
backend/app/main.py - App management
backend/app/routers/apps.py - Session operations
backend/app/routers/sessions.py - Page catalog API
backend/app/routers/pages.py - User operations
backend/app/routers/users.py - Deployment API
backend/app/routers/deployment.py - Portal records
backend/app/models.py - MCP tools
backend/app/mcp/server.py
Identity and compute
- NVCF client
backend/app/nvcf.py - Identity providers
- NVCF service
- Kit streaming runtime
- USD Storage API
Other components
- Portal user
- Administrator
Connections 41
- Portal user → Portal entry: opens
- Administrator → Portal entry: opens
- Portal entry → Page routing: renders
- Page routing → User authentication: wraps pages
- User authentication → Identity providers: authenticates
- Page routing → App catalog: routes to
- App catalog → Application state: loads apps
- Application state → App management: requests
- Page routing → App details: routes to
- App details → App management: requests details
- Page routing → Stream page: routes to
- Stream page → Stream controller: starts stream
- Stream controller → Session operations: checks session
- Stream controller → Kit streaming runtime: connects
- Stream controller → Stream auth bridge: handles events
- Stream auth bridge → Storage auth: authenticates
- Storage auth → Identity providers: uses OIDC
- Storage auth → USD Storage API: discovers auth
- Storage auth → Token session: manages session
- Token session → Stream auth bridge: refreshes token
- Stream auth bridge → Kit streaming runtime: sends auth message
- Page routing → OAuth callback: routes to
- OAuth callback → Storage auth: completes sign-in
- Page routing → Session admin: routes to
- Session admin → Session operations: requests sessions
- Portal entry → API application: calls API
- API application → App management: mounts
- API application → Session operations: mounts
- API application → Page catalog API: mounts
- API application → User operations: mounts
- API application → Deployment API: mounts
- App management → Portal records: reads and writes
- App management → NVCF client: gets status
- NVCF client → NVCF service: queries deployments
- Session operations → Portal records: reads and writes
- Page catalog API → Portal records: reads
- User operations → Portal records: reads and writes
- Deployment API → NVCF client: manages deployment
- MCP tools → Portal records: manages apps
- MCP tools → NVCF client: gets deployment data
- MCP tools → Identity providers: optional OAuth