-
Notifications
You must be signed in to change notification settings - Fork 0
GUI
The GUI provides a multi-step wizard built with PySide6 that guides users through the migration process with visual feedback, environment analysis, and real-time progress monitoring. It uses the same migration logic as the CLI, ensuring consistent behavior.
The GUI requires PySide6. Install with:
# Install GUI package
pip install -e packages/gui
# Or use the launcher from GUI package
onelogin-migration-guionelogin-migration-gui --config config/migration.yamlOr via the main CLI:
python -m onelogin_migration_gui.mainOptions:
-
--config PATH- Path to YAML config (defaults toconfig/migration.yaml) -
--export PATH- Optional pre-generated source export (skips the export phase) -
-v, --verbose- Enable debug logging in terminal
Auto-configuration:
If the config file doesn't exist, the GUI automatically copies migration.template.yaml as a starting point.
The GUI uses an 8-step wizard workflow:
- Introduction to the OneLogin Migration Wizard
- Overview of the migration process
- Quick start instructions
- Configure source provider credentials
- Provider selection (Okta, and others as configured)
- Domain
- API token
- Rate limits
- Test Connection button validates credentials
- Shows connected status with checkmark
- Credentials auto-save to system keyring on successful test
- Configure OneLogin API credentials
- Client ID
- Client secret
- Region (US/EU)
- Subdomain
- Test Connection button validates OAuth flow
- Displays authentication status
Configure migration behavior:
- Dry-run mode - Simulate without writing
- Verbose logging - Enable debug output
- Concurrency - Enable multi-threading
- Worker threads - Control parallelism
- Export directory - Where to save artifacts
Select what to migrate:
- ☑ Users
- ☑ Groups (as OneLogin roles)
- ☑ Applications
- ☐ Policies (not yet supported)
Toggle categories on/off before migration.
Comprehensive environment analysis with detailed reports:
Features:
- Analyze Source Environment - Fetches and analyzes your source provider data
-
User Analysis:
- Total user count and status breakdown
- Custom attribute discovery
- Profile field statistics
- Export to CSV/XLSX
-
Group Analysis:
- Group count and membership statistics
- Nested group detection
- Member distribution
- Export to CSV/XLSX
-
Application Analysis:
- Application count by protocol (SAML, OIDC, etc.)
- OneLogin connector matching recommendations
- Configuration details
- Export to CSV/XLSX
-
Custom Attribute Recommendations:
- Fields requiring custom attributes
- Normalized attribute names
- Data type analysis
- Export list
Export Options:
- CSV format (lightweight, universally compatible)
- XLSX format (Excel-compatible with formatting)
Detail Dialogs:
- Click "View Details" for in-depth analysis
- Sortable, searchable data tables
- Real-time filtering
- Connector ID lookup for applications
Review all settings before migration:
- Source configuration (provider, domain, rate limits)
- Target configuration (OneLogin)
- Migration options
- Selected categories
Start Migration button begins the process.
Real-time migration monitoring:
-
Per-category progress bars
- Users: X/Y completed
- Groups: X/Y completed
- Applications: X/Y completed
- Overall progress percentage
- Live log stream with color-coded messages
- Status indicator (Running, Complete, Error)
- Stop button to cancel migration
Both Okta and OneLogin steps include connection testing:
- Validates credentials before migration
- Tests API connectivity
- Verifies permissions
- Shows clear success/error messages
Comprehensive pre-migration analysis:
- User, group, and application inventory
- Custom attribute discovery
- OneLogin connector recommendations
- Export analysis to CSV/XLSX
- Detailed data views with sorting and filtering
Progress tracking provides:
- Per-category completion counts
- Visual progress bars
- Overall migration percentage
- Live log streaming
- Color-coded status messages
- Migration state saved automatically
- Resume capability after cancellation
- Skip already-migrated items on restart
- ID mappings preserved between runs
Light and dark themes:
- Automatic OS theme detection
- Manual theme toggle
- Consistent styling across all dialogs
Graceful error management:
- Network errors displayed in dialogs
- Invalid credentials caught during testing
- API failures shown with details
- Migration continues for other items
- State saved before exit
Navigation buttons:
- Next - Advance to next step (enabled when current step valid)
- Back - Return to previous step
- Cancel - Exit wizard (confirmation required if migration running)
Keyboard shortcuts:
-
Enter- Advance to next step (when valid) -
Esc- Cancel wizard -
Ctrl+S- Save configuration
Safe exploration:
- Launch GUI:
python -m onelogin_migration_gui.main - Step through wizard entering credentials
- Test connections on Source and Target steps
- Enable dry-run mode in Options
- Select categories in Objects
- Review Summary and click Start Migration
- Watch Progress as migration runs
- Review logs and exported artifacts
Production migration:
- Run dry-run first to validate
- Return to Options step and disable dry-run
- Navigate to Summary
- Click Start Migration
- Monitor progress bars and logs
- Wait for completion
- Verify results in OneLogin Admin Console
| Feature | GUI | CLI |
|---|---|---|
| Connection testing | ✓ Built-in | Manual via API calls |
| Configuration editing | ✓ Visual editor | Text editor required |
| Real-time progress | ✓ Visual bars | Text progress indicators |
| Resume capability | ✓ Automatic | ✓ Automatic |
| Suitable for | Interactive use | Automation/scripting |
| Dependencies | PySide6 required | No GUI dependencies |
GUI won't launch:
# Ensure PySide6 is installed
pip install .[gui]
# Check for errors with verbose mode
onelogin-migration-tool gui -vConnection test fails:
- Verify credentials in configuration
- Check API token/client secret hasn't expired
- Confirm region is correct (us/eu)
- Test network connectivity to APIs
- Review terminal logs with
-vflag
Migration gets stuck:
- Check terminal for error messages (use
-v) - Click Stop and review logs
- Verify rate limits aren't being exceeded
- Check for network interruptions
- Try resuming - state is saved automatically
State not persisting:
- Ensure
export_directoryis writable - Check disk space for
migration_state.json - Review file permissions
- Look for
migration_state.jsonin export directory
Using pre-generated export:
# 1. Generate export via CLI
onelogin-migration plan --config config/migration.yaml \
--output source_export.json
# 2. Launch GUI with export
python -m onelogin_migration_gui.main --config config/migration.yaml \
--export source_export.jsonBulk CSV workflow:
- Enable bulk_user_upload in Options step
- Complete migration to generate CSV
- Find
bulk_user_upload_{timestamp}.csvin export directory - Upload CSV manually in OneLogin Admin Console
- Users → Import Users → Upload CSV
Debug mode:
# Run GUI with maximum verbosity
python -m onelogin_migration_gui.main --config config/migration.yaml -vWatch terminal for detailed logs while GUI runs.