How wolfarkane/istir-iris-gui works
ISTIR-IRIS is a desktop interface for reaching ISTIC/ESIR workstations. The user selects a room and computer, enters SSH credentials, then uses an interactive terminal and an SFTP file browser in the same window; a background watcher reports VPN availability. The graph also preserves the documented theme and responsive-layout capabilities. The README and sampled files support the main launch, SSH, SFTP, and VPN relationships; wiring for unsampled frontend modules and the CombinedAPI implementation is shown only where documented or directly evidenced.
Main entry points: api.py Combined API bridge · salles-form.js Room and host selection · sshApi.js SSH API client · main.py Desktop launcher
Components 21
Desktop shell
- Desktop launcher
main.py - Webview window
- Application UI
frontend/index.html - Combined API bridge
api/api.py
Connection setup
- Room and host selection
frontend/js/ui/salles-form.js - Room configuration
data/salles.json - Room API
frontend/js/api/sallesApi.js - VPN watcher
api/vpnApi.py - VPN status UI
frontend/js/ui/vpn-status.js
Remote access
- SSH API client
frontend/js/api/sshApi.js - SSH and PTY
api/sshAPI.py - Interactive terminal
frontend/js/ui/terminal.js - SFTP API client
frontend/js/api/sftpApi.js - SFTP operations
api/sftpApi.py - SFTP file browser
frontend/js/ui/sftp-panel.js
Interface features
- Theme toggle
frontend/js/theme.js - Responsive layout
frontend/js/layout.js - UI state
frontend/js/state.js
Other components
- User
- Remote workstation
- Local files
Connections 27
- User → Room and host selection: selects target
- Desktop launcher → Combined API bridge: creates API
- Desktop launcher → Webview window: opens window
- Desktop launcher → VPN watcher: starts watcher
- Webview window → Application UI: loads interface
- Webview window → Combined API bridge: exposes API
- Application UI → Room and host selection: hosts form
- Room and host selection → Room API: loads rooms
- Room API → Combined API bridge: calls API
- Room configuration → Room API: room source
- VPN watcher → VPN status UI: pushes status
- User → SSH API client: submits credentials
- Room and host selection → SSH API client: requests connection
- SSH API client → Combined API bridge: calls API
- Combined API bridge → SSH and PTY: dispatches SSH
- SSH and PTY → Remote workstation: opens SSH and PTY
- SSH and PTY → Interactive terminal: streams terminal output
- Interactive terminal → SSH API client: sends input and resize
- User → SFTP file browser: browses files
- SFTP file browser → SFTP API client: lists and transfers
- SFTP API client → Combined API bridge: calls API
- Combined API bridge → SFTP operations: dispatches SFTP
- SFTP operations → Remote workstation: reads and writes
- SFTP operations → Local files: downloads and uploads
- User → Theme toggle: changes theme
- User → Responsive layout: toggles navigation
- Application UI → UI state: uses state