Overview
The Wirekite UX Server provides a web-based graphical interface for managing all aspects of database migrations. It allows you to configure sources and targets, run migrations, monitor progress in real-time, and validate data—all through your browser.The UX Server runs on HTTPS port 8443 by default and requires authentication.
Technology Stack
The UX Server is built with:- Backend: Go with the Gin web framework
- Frontend: HTML/CSS/JavaScript with HTMX for dynamic updates
- Charts: Highcharts for real-time progress visualization
- SQL Editor: CodeMirror with syntax highlighting
Getting Started
Starting the UX Server
Initial Setup
- Open your browser and navigate to
https://your-server:8443 - On first access, you’ll be redirected to the setup page
- Create your root (admin) user account
- Log in with your new credentials
Main Features
Dashboard
The main dashboard displays:- All configured migrations with their current status
- Source and target database connections
- Quick access to tools and settings
Migration Status Indicators
| Status | Description |
|---|---|
| Migration Created | Migration configured but schema not yet migrated |
| Schema Created | Schema has been applied to target |
| Data Loaded | Initial data load completed |
| Replication Running | CDC replication is active |
| Replication Paused | CDC replication is paused |
Configuring Sources
Sources are the databases you extract data from. The GUI supports:- MySQL - Host, port, username, password, database
- PostgreSQL - Host, port, username, password, database
- Oracle - Host, port, username, password, service name
- SQL Server - Host, port, username, password, database
Creating a Source
- Click Sources in the sidebar
- Click Add Source
- Select the database type
- Fill in the connection parameters
- Click Test Connection to verify
- Click Save
Configuring Targets
Targets are the databases you load data into. The GUI supports:On-Premise Targets
- MySQL
- PostgreSQL
- Oracle
- SQL Server
- SingleStore
Cloud Targets
- Snowflake
- Firebolt
- Google BigQuery
- Google Cloud Spanner
- Databricks
Cloud Target Configuration
Cloud targets require additional configuration for staging areas:- Account identifier
- Username and password
- Database and warehouse
- Role (optional)
- Account name
- Client ID and secret
- Engine name
- AWS S3 bucket for staging
- GCP Project ID
- Dataset name
- GCS bucket for staging
- Workspace host URL
- Access token
- SQL Warehouse ID
- Catalog and schema
- AWS S3 bucket for staging
- GCP Project ID
- Instance ID
- Database ID
Creating Migrations
A migration links a source to a target:- Click Migrations in the sidebar
- Click Create Migration
- Enter a migration name
- Select the source database
- Select the target database
- Click Create
Migration Workflow
Step 1: Schema Migration
Extract and apply the schema from source to target:- Open your migration
- Click Schema tab
- Click Extract Schema to pull schema from source
- Select which schemas/tables to include
- Optionally rename schemas (e.g.,
dbo→app_schema) - Review the generated SQL
- Click Run SQL to apply to target
Step 2: Data Migration
Load data from source to target:- Click Data tab
- Configure migration options:
Number of parallel threads for extracting data from source.
Number of parallel threads for loading data to target.
Maximum rows per data file. Smaller values use less memory.
- Click Start Data Migration
- Monitor progress in real-time via the graph
Step 3: Data Validation
Verify data integrity after migration:- Click Validate tab
- Set sample percentage (1-100%)
- Click Run Validation
- Review per-table results showing row count comparisons
Step 4: Replication (Optional)
Enable Change Data Capture (CDC) for continuous replication:- Click Replication tab
- Configure replication threads
- Click Start Replication
- Monitor change lag in real-time
Replication keeps your target synchronized with ongoing changes to the source database.
Replication Controls
- Pause - Temporarily stop applying changes (source still tracks changes)
- Resume - Continue applying queued changes
- Stop - Permanently stop replication
Real-Time Progress Monitoring
The GUI provides real-time graphs showing:- Extracted Rows - Data pulled from source (blue line)
- Loaded Rows - Data written to target (green line)
- Per-Table Progress - Breakdown by individual tables
Tools
Wiretalk Query Executor
Execute ad-hoc SQL queries against your sources or targets:- Click Tools → Wiretalk
- Select source or target connection
- Enter your SQL query
- Click Execute
- View results in tabular or vertical format
Log Downloads
Download migration logs for troubleshooting:- Open your migration
- Click Download Logs
- Receive a ZIP file containing all log files
Scheduling
Set up automated data refreshes:- Open your migration
- Click Schedule tab
- Select frequency:
- Hourly
- Every 6 hours
- Every 12 hours
- Daily (select time)
- Weekly (select day and time)
- Custom (cron expression)
- Click Save Schedule
User Management
Root users can manage other users:- Click your username → User Management
- Add User - Create new accounts
- Delete User - Remove accounts
Regular users can only see and manage their own migrations. Root users can see all migrations.
Configuration
Server Configuration File
The UX Server reads configuration fromux-server.cfg:
SSL Certificates
Generate self-signed certificates for testing:Systemd Service
Service File
Create/etc/systemd/system/wirekite-ux.service:
Service Commands
Directory Structure
Troubleshooting
Cannot Connect to UX Server
- Verify the service is running:
systemctl status wirekite-ux - Check the server logs:
tail -f /opt/wirekite/ux/logs/ux-server.log - Ensure port 8443 is open in your firewall
- Verify SSL certificates exist and are readable
Migration Stuck or Failed
- Check the migration logs via Download Logs
- Review
orchestrator.logfor high-level errors - Check extractor/loader logs for specific issues
- Verify source/target connectivity with Test Connection
Authentication Issues
- Clear browser cookies and try logging in again
- Check
sessions.jsonhasn’t become corrupted - Verify
users.jsoncontains your user account - Restart the UX server to clear all sessions
