Skip to content

Web User Interface ​

Complete documentation for the HANA CLI web application - a modern SAP UI5-based Fiori interface.

Quick Start ​

Launch the Fiori Launchpad web interface:

bash
hana-cli ui
# Starts server and opens http://localhost:3010/ui/#Shell-home automatically

By default, the web server runs on port 3010. Change it if needed:

bash
hana-cli ui --port 3030

The server can also be accessed from other machines on your network:

bash
hana-cli ui --host 0.0.0.0 --port 8080

Overview ​

The web UI provides a graphical interface to all HANA CLI functionality:

  • Fiori Launchpad - Unified navigation and app management
  • SAP UI5 Framework - Enterprise-grade UI components
  • Real-time communication - WebSocket connection to CLI backend
  • Responsive design - Works on desktop and tablet devices
  • Light & dark themes - Auto-detects system preference
  • Integrated help - SAP Enable Now contextual assistance

Web Applications ​

The Fiori Launchpad includes multiple specialized applications:

Tables & Objects Browser ​

Application ID: sap.hanacli.tables

The primary application for browsing and listing all types of database objects:

Features:

  • List all tables in the current schema
  • List all views and calculation views
  • Browse all schemas
  • Display HDI containers
  • Show HANA data types
  • List database functions
  • Display indexes
  • Cloud Foundry service instance listings:
    • HDI service instances
    • SBSS (Schema & Business Service) instances
    • Schema service instances
    • SecureStore service instances
    • User-Provided Service (UPS) instances

Additional Features:

  • Search across objects
  • View object properties and metadata
  • Export object definitions
  • Generate SQL statements
  • Connection switching

Available Routes:

  • #tables-ui - List all tables
  • #views-ui - List all views
  • #schemas-ui - List all schemas
  • #containers-ui - List HDI containers
  • #certificates-ui - List system certificates
  • #dataTypes-ui - List HANA data types
  • #functions-ui - List database functions
  • #indexes-ui - List database indexes
  • #features-ui - List HANA features
  • #featureUsage-ui - List HANA feature usage
  • #hdi-ui - List HDI service instances (Cloud Foundry)
  • #sbss-ui - List SBSS service instances
  • #schemaInstances-ui - List Schema service instances
  • #securestore-ui - List SecureStore service instances
  • #ups-ui - List user-provided service instances

Inspect Tool ​

Application ID: sap.hanacli.inspect

Provides detailed inspection capabilities for database objects:

Features:

  • Inspect table structures, columns, and metadata
  • Inspect view definitions and columns
  • Execute and analyze SQL queries
  • View object properties and attributes
  • Export inspection results in multiple formats
  • Table structure analysis
  • View column mapping
  • Data type review
  • Constraints and indexes
  • Column statistics
  • Object metadata

Available Routes:

  • #inspectTable-ui - Inspect table details
  • #inspectView-ui - Inspect view details
  • #querySimple-ui - Execute SQL queries

Mass Converter ​

Application ID: sap.hanacli.massConvert

Enables mass conversion of database tables to different formats:

Features:

  • Convert multiple tables simultaneously
  • Support for CDS (Core Data Services) format
  • Generate .hdbtable files for HDI deployments
  • Generate .hdbmigrationtable files for migrations
  • Real-time progress tracking via WebSocket
  • Configurable output options (HANA types, catalog definitions)
  • Export to local folder
  • Multi-table batch processing

Configuration Options:

  • Output format selection (CDS, HDBTable, HDBMigrationTable)
  • Use HANA-specific data types
  • Use "pure" catalog definitions
  • Target folder specification
  • Connection parameter override

Available Routes:

  • #massconvert-ui - Mass conversion interface

System Information ​

Application ID: sap.hanacli.systemInfo

Provides comprehensive system information about the connected HANA database:

Features:

  • Current session details
  • Database version information
  • System ID and configuration
  • Database name and host
  • Start time and uptime
  • System status overview
  • Connection parameters
  • Resource usage

Available Routes:

  • #systeminfo-ui - System information dashboard

Architecture ​

Technology Stack ​

ComponentPurposeVersion
SAP UI5UI Framework1.144.1
Fiori LaunchpadApp ContainerLatest
Node.js ExpressBackend APIRuntime
WebSocketsReal-time commsNative
SAP DFAHelp systemLatest

Folder Structure ​

bash
app/
├── resources/
│   ├── index.html           # Main Fiori Launchpad entry
│   ├── init.js              # Launchpad initialization
│   ├── WebAssistant.js      # SAP Enable Now integration
│   ├── favicon.ico          # Browser tab icon
│   ├── common/              # Shared components
│   │   ├── BaseController.js
│   │   ├── handler.js
│   │   ├── models.js
│   │   ├── Component.js
│   │   ├── index.js
│   │   ├── css/             # Shared stylesheets
│   │   ├── images/          # Common icons
│   │   ├── view/            # Shared XML fragments
│   │   │   ├── BusyDialog.fragment.xml
│   │   │   ├── Connection.fragment.xml
│   │   │   └── Debug.fragment.xml
│   │   ├── controller/      # Shared controllers
│   │   └── model/           # Extended models
│   ├── inspect/             # Inspect application
│   │   ├── Component.js
│   │   ├── manifest.json
│   │   ├── index.html
│   │   ├── controller/
│   │   ├── view/
│   │   └── i18n/
│   │       ├── inspect.properties
│   │       └── inspect_de.properties
│   ├── massConvert/         # Mass converter app
│   │   ├── Component.js
│   │   ├── manifest.json
│   │   ├── index.html
│   │   ├── controller/
│   │   ├── view/
│   │   └── i18n/
│   │       ├── massConvert.properties
│   │       └── massConvert_de.properties
│   ├── systemInfo/          # System info app
│   │   ├── Component.js
│   │   ├── manifest.json
│   │   ├── index.html
│   │   ├── controller/
│   │   ├── view/
│   │   └── i18n/
│   │       ├── systemInfo.properties
│   │       └── systemInfo_de.properties
│   └── tables/              # Tables browser app
│       ├── Component.js
│       ├── manifest.json
│       ├── index.html
│       ├── controller/
│       ├── view/
│       └── i18n/
│           ├── tables.properties
│           └── tables_de.properties
├── appconfig/
│   └── fioriSandboxConfig.json  # Launchpad configuration
├── dfa/
│   └── help/                # DFA help library
│       ├── library.js
│       ├── library-preload.js
│       ├── catalog/         # Help catalog
│       ├── context/         # Context-sensitive help
│       ├── utils/           # Help utilities
│       └── wpb/             # Web page builder
├── i18n/                    # i18n resource bundles
├── ui5.yaml                 # UI5 build config
├── ui5-local.yaml           # Local dev overrides
├── .gitignore               # Git ignore rules
└── README.md                # Detailed app docs

Core Files ​

resources/index.html - Main entry point for the Fiori Launchpad

  • Loads UI5 framework from CDN https://ui5.sap.com/<version>/
  • Configures the Fiori Launchpad sandbox environment
  • Supports both light and dark themes (auto-detected based on system preferences)
  • Registers resource roots for all UI5 applications

resources/init.js - Initialization script for the Launchpad

  • Creates and renders the Fiori shell container
  • Configures flexibility services for UI adaptation
  • Sets up session storage connector for personalization

resources/WebAssistant.js - SAP Enable Now Web Assistant integration

  • Provides contextual help and guided tours
  • Loads from SAP productive environment
  • Enables in-app learning and documentation

appconfig/fioriSandboxConfig.json - Complete Launchpad configuration

  • Defines tile groups and layouts
  • Configures navigation targets
  • Sets up application routes
  • Enables personalization and themes
  • Configures DFA (Digital Foundation Adapter) integration
  • Defines three main tile groups:
    • List Objects - Database object listings
    • Admin - Administrative functions
    • CF/XS - Cloud Foundry and XSA service instances

Component Sharing ​

All applications use shared components from /resources/common:

Controllers:

  • BaseController.js - Base class with common functionality for all app controllers
  • handler.js - Shared event handlers and utility functions

Views (XML Fragments):

  • BusyDialog.fragment.xml - Loading indicator dialog
  • Connection.fragment.xml - Database connection configuration UI
  • Debug.fragment.xml - Debug information display

Models:

  • models.js - Shared data models and model creation utilities

Additional Resources:

  • Component.js - Reusable component definition
  • index.js - Common module exports
  • /css - Shared stylesheets
  • /images - Common images and icons
  • /view - Additional shared view fragments
  • /model - Extended model definitions
  • /controller - Additional shared controllers

WebSocket Communication ​

Web applications communicate with the backend via:

javascript
// Frontend
const ws = new WebSocket('ws://localhost:3010');
ws.send(JSON.stringify({
  command: 'tables',
  args: { schema: 'MY_SCHEMA' }
}));

// Backend receives and executes CLI command
// Returns results as markdown table

Features ​

Real-time Updates ​

  • Live command execution feedback
  • Progress indicators during long operations
  • Error messaging and troubleshooting
  • Result streaming for large datasets

Multi-theming ​

  • Light theme - Professional business look
  • Dark theme - Reduced eye strain
  • Auto-detect - Follows system settings
  • Manual override - User selection available

Accessibility ​

  • Keyboard navigation support
  • Screen reader compatible
  • High contrast mode
  • WCAG compliance

Internationalization ​

Supports multiple languages:

  • English - Primary language
  • German, Spanish, French, Japanese, Korean, Portuguese, Simplified Chinese, Hindi, Polish - Full translations
  • Extensible - Easy to add more languages

Text files: /resources/*/i18n/*.properties

Personalization ​

Users can personalize the Launchpad:

  • Rearrange tiles
  • Hide/show tile groups
  • Change themes
  • Customize content density (compact/cozy)
  • Save layouts in session storage
  • Remember window preferences
  • Save connection configurations
  • Retain search/filter states
  • Session persistence

Changes are stored locally in browser session storage.

Authentication ​

Currently, authentication is handled through the database connection configured in the CLI. The web interface inherits the same connection and credentials.

Browser Compatibility ​

Supports modern browsers:

  • Chrome/Edge (latest)
  • Firefox (latest)
  • Safari (latest)

Requires JavaScript enabled and WebSocket support.

DFA Help System ​

The application includes SAP Digital Foundation Adapter (DFA) help content integration:

Structure:

  • library.js - Help library definition
  • library-preload.js - Pre-loaded library bundle
  • /catalog - Help catalog definitions
    • massconvert-ui.json - Help for mass convert app
    • Shell-home.json - Help for main launchpad
    • Shell-home!whatsnew.json - What's new information
  • /context - Context-sensitive help mappings
  • /utils - Help utility functions
  • /wpb - Web page builder resources

Features:

  • Contextual help overlay on UI5 applications
  • Guided tours and walkthroughs
  • Integration with SAP Enable Now
  • What's New announcements
  • Product documentation links

Connected Operations ​

The web UI connects to the HANA CLI backend running locally:

bash
┌─────────────────────────────────────────┐
│  Browser (Web UI)                       │
│  ├─ Tables App                          │
│  ├─ Inspect App                         │
│  ├─ Mass Converter App                  │
│  └─ System Info App                     │
└──────────────┬──────────────────────────┘
               │ WebSocket
               │ (ws://localhost:3010)
               ↓
┌──────────────────────────────────────────┐
│  Node.js Server (hana-cli)               │
│  ├─ Command routing                      │
│  ├─ Database connection                  │
│  ├─ Result formatting                    │
│  └─ Error handling                       │
└──────────────┬───────────────────────────┘
               │
               ↓
        ┌──────────────┐
        │  SAP HANA    │
        │  Database    │
        └──────────────┘

Usage Scenarios ​

Discover Database Schema ​

bash
# Launch web UI
hana-cli tablesUI

# In browser:
# 1. Search for schema
# 2. Browse tables and views
# 3. View column details
# 4. Export table definitions

Convert Tables for HDI ​

bash
# Launch mass converter
hana-cli massConvertUI

# In browser:
# 1. Select tables to convert
# 2. Choose output format (CDS, HDBTable, etc)
# 3. Configure options
# 4. Start conversion
# 5. Download results

Check System Status ​

bash
# Launch system info
hana-cli systemInfoUI

# View:
# - Current connection info
# - Database version
# - System ID and hostname
# - Uptime and resources

Configuration Files ​

ui5.yaml ​

UI5 tooling configuration for development and build:

  • Specification Version: 1.0
  • Application Name: test1
  • Type: Application
  • Default Theme: sap_fiori_3_dark
  • Server Configuration:
    • Fiori Tools Proxy middleware for backend connections
    • UI5 version management
    • App reload middleware for hot-reloading
    • Port: 35729
    • Resource paths for UI5 framework

ui5-local.yaml ​

Local development overrides (automatically loaded when present)

.gitignore ​

Git ignore rules for generated and temporary files

Development ​

Local Development Server ​

For development with hot-reload:

bash
cd app
ui5 serve

The UI5 tooling will start a development server with automatic reloading on file changes.

Building for Production ​

bash
cd app
ui5 build

This generates optimized production builds in the dist/ folder.

Adding New Applications ​

To add a new UI5 application:

  1. Create a new folder under /resources
  2. Add Component.js, manifest.json, and views
  3. Register the application in /appconfig/fioriSandboxConfig.json
  4. Add tiles to appropriate groups
  5. Define navigation targets

Theme Support ​

The application supports automatic theme detection:

  • Light mode: sap_horizon
  • Dark mode: sap_horizon_dark

Theme is auto-selected based on system preferences and can be changed via user settings.

Troubleshooting ​

Application won't load ​

  • Check that the backend server is running
  • Verify port 3010 (or custom port) is not blocked
  • Check browser console for errors
  • Ensure default-env.json or connection configuration is valid

WebSocket connection fails ​

  • Verify firewall settings allow WebSocket connections
  • Check that the backend server WebSocket endpoint is accessible
  • Look for CORS-related errors in browser console

Tiles not appearing ​

  • Verify /appconfig/fioriSandboxConfig.json is valid JSON
  • Check that application paths in config match actual folders
  • Clear browser cache and reload

Theme not applying correctly ​

  • Hard refresh the browser (Ctrl+F5 / Cmd+Shift+R)
  • Check browser console for CSS loading errors
  • Verify UI5 CDN is accessible

See Also ​