IRIS IO Utility
A powerful Visual Studio Code extension for seamless data import/export operations with InterSystems IRIS databases. This extension provides an intuitive interface to connect, manage, and transfer data between various file formats and IRIS namespaces.
Contest Submission: This project was developed as a submission for the InterSystems “Bringing Ideas to Reality” Contest of December 2025.
📋 Table of Contents
✨ Features
📦 Prerequisites
- Visual Studio Code 1.80.0 or higher
- Node.js 14.0 or higher
- InterSystems IRIS instance (local, remote, or containerized)
- ODBC Drivers (for ODBC connections)
🚀 Installation
From VSIX File
- Download the
.vsix file from the releases page
- Open VS Code
- Go to Extensions view
- Click the “…” menu → Install from VSIX
- Select the downloaded file
🎯 Getting Started
Option 1: Using the Containerized IRIS Instance
The project includes a pre-configured Docker Compose setup for testing purposes.
Step 1: Start the Container
# Navigate to the project directory
cd iris-io-utility
Start the IRIS container
docker-compose up -d
The container will start an InterSystems IRIS instance with the following configuration:
Step 2: Verify the Container
- Open your browser and navigate to http://localhost:9092/csp/sys/UtilHome.csp
- Login with:
- Username:
_SYSTEM
- Password:
SYS
- You should see the IRIS Management Portal
Step 3: Create a Connection in VS Code
- Open VS Code and click on the IRIS IO Utility icon in the sidebar
- Click “Add New Connection” (+ icon)
- Enter the following details:
- Connection Name:
Local Docker IRIS
- Host:
localhost
- SuperServer Port:
9092
- Web Server Port:
9091
- Namespace:
USER
- Username:
_SYSTEM
- Password:
SYS
If you prefer, you can try to connect to another IRIS instance. The extension works both with local (SSH as well) and remote instances.
- Open the settings page (gear icon) and select the Connection Type:
- Check for
ODBC drivers. If InterSystems IRIS drivers are not found install it and select them among the available drivers list.
Step 4: Connect
- Find your connection in the Connections view
- Click the Connect icon (plug icon)
- Wait for the connection status to change to “Connected” (green checkmark)
ODBC Connection
The ODBC connection uses the InterSystems IRIS ODBC driver for enhanced performance.
Installing ODBC Drivers
- Open the IRIS IO Utility sidebar
- Click the Settings icon (gear icon) at the top
- Click “Check ODBC Drivers”
- If drivers are not detected, click “Download ODBC Drivers”
- Follow the installation instructions for your platform:
- Windows: Run the installer and follow the wizard
- macOS: Mount the DMG and run the installer
- Linux: Extract the archive and run the install script
- After installation, return to the settings page and click “Check ODBC Drivers” again
- Select your preferred driver from the dropdown
- Click “Save Driver Selection”
📖 Using the Extension
Managing Connections
Creating a Connection
- Click the ”+ Add New Connection” button in the sidebar
- Fill in the connection details form
- Click “Save Connection”
Editing a Connection
- Find the connection in the list
- Click the Edit icon (pencil)
- Modify the connection details
- Click “Save Changes”
Connecting/Disconnecting
- Click the Connect icon (plug) to establish a connection
- Click the Disconnect icon (unplug) to close the connection
- Connection status is indicated by:
- Idle (not connected)
- Connected
- Error
- Right-click on a connection to copy its details as a JSON.
Favorites
- Click the Star icon to add a connection to favorites
- Access favorited connections from the “Favorites” view
- Click the Star icon again to remove from favorites
Importing Data
The Import feature allows you to load data from various file formats into IRIS tables.
Step 1: Open Import View
- Connect to your IRIS instance
- Click the Import icon (cloud with up arrow) on your connection
- The Import webview will open
Step 2: Select File
- Click “Browse…” to select your data file
- Supported formats: CSV, TXT, JSON, XLSX
- The file path will appear in the input field
Step 3: Choose Import Mode
Option A: Create New Table
- Select the “Import to New Table” tab
- Enter a schema name (e.g.,
SQLUser)
- Enter a new table name
- Click “Analyze File” to preview data types
- Review and adjust column types if needed
- Configure indexes (optional):
- Check the “Index” box for columns you want to index
- Select index type (INDEX, UNIQUE, BITMAP)
- Optionally customize the index name
- Click “Import”
Option B: Import to Existing Table
- Select the “Import to Existing Table” tab
- Select the target schema from the dropdown
- Select the target table from the dropdown
- Choose data action:
- Append: Add new rows to existing data
- Replace: Delete all existing rows and insert new data
- Click “Import”
Step 4: Monitor Progress
- Progress notifications will appear in VS Code
- Check the Output panel (IRIS IO Utility channel) for detailed logs
- A success message will confirm when import is complete
Import Features
Automatic Type Inference
- The extension analyzes your data and suggests optimal SQL data types
- Detects: INTEGER, VARCHAR, DATE, TIMESTAMP, DECIMAL, BOOLEAN
- Sample values are shown for verification
Custom Type Selection
- Override inferred types by selecting from the dropdown
- Supports all IRIS SQL data types
- Changes are applied before table creation
Index Creation
- Create indexes during table creation
- Support for INDEX, UNIQUE, BITSLICE, BITMAP and COLUMNAR indexes
- Automatic index naming with customization option
Exporting Data
The Export feature allows you to extract data from IRIS tables to various file formats.
Step 1: Open Export View
- Connect to your IRIS instance
- Click the Export icon (cloud with down arrow) on your connection
- The Export webview will open
Step 2: Select Schema and Table
- Enter a schema filter (optional) to narrow down schemas
- Click “Search Schemas” or press Enter
- Select the schema from the dropdown
- Select the table you want to export
Step 3: Configure Export
-
Choose the output format:
- CSV: Comma-separated values
- TXT: Tab-separated (or custom delimiter)
- JSON: JavaScript Object Notation
- XLSX: Excel format
-
Specify export location:
- Leave blank to use the current workspace folder
- Or click “Browse…” to select a specific folder
-
(Optional) Enter a custom filename
- If left blank, uses format:
{schema}_{table}_{timestamp}
Step 4: Export
- Click “Export”
- Progress notification will appear
- When complete, choose to:
- Open File: View the exported data immediately
- Open Folder: Open the containing folder
- Or dismiss the notification
Export Features
Format Options
- CSV: Standard comma-separated format, Excel-compatible
- TXT: Tab-separated by default, customizable delimiter
- JSON: Pretty-printed, array of objects format
- XLSX: Native Excel format (preserves data types)
Automatic Timestamps
- All exports include timestamp in filename
- Format:
YYYYMMDD_HHMMSS
- Prevents accidental overwrites
Workspace Integration
- Exports to workspace folder by default
- Custom folder selection available
- File operations logged to Output panel
⚙️ Configuration
Extension Settings
Access settings via the gear icon in the IRIS IO Utility sidebar.
ODBC Driver Selection
- View installed ODBC drivers
- Select preferred driver
- Test driver availability
Workspace Settings
Connection data is stored per workspace in VS Code’s workspace state:
- Connection configurations
- Favorites list
- Default connection type
- Selected ODBC driver
Note: Connections are workspace-specific and won’t appear in other workspaces.
🔧 Troubleshooting
Output Window
The extension is provided with a VSCode Output window called “IRIS IO Utility” where you can see logs.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
Happy Data Managing! 🚀