Uniform Siphon - Sitecore data download

This guide walks you through the complete process of downloading content, media, and presentation details from Sitecore CMS for further migration to the Uniform platform.

  1. Intro
  2. Prepare work directory
  3. Prepare Sitecore
  4. Configure Siphon
  5. Download data
  6. Troubleshooting
  7. Next steps

The full migration process is described in the detailed guide here.

This guide only touches the first phase.

  • Ensure sufficient disk space for downloaded content
  • Have administrator access to the Sitecore CM server

The wizard will create .env file with your settings that will be used by all Siphon commands.

Siphon comes with a built-in serilog logger. It creates several log files in the current directory:

C:\migration\ ├── ... ├── .siphon.log.debug.txt ├── .siphon.log.info.txt ├── .siphon.log.warn.txt ├── .siphon.log.error.txt └── ... other files

The log level is configured with SIPHON_LOGLEVEL (or --logLevel parameter) that takes these values:

  • DEBUG
  • INFO
  • WARN
  • ERROR

It is recommended to use the default INFO and switch to DEBUG only if something goes wrong.

Create a work directory for all files will be downloaded and processed, for example: C:\migration\.

Open a new PowerShell session and navigate there:

PS C:\> cd C:\migration PS C:\migration>

Before downloading data, you must deploy the migration service to your Sitecore instance.

  1. Rename C:\siphon\{ver}\UniformMigrationService.txt to UniformMigrationService.aspx
  2. Open UniformMigrationService.aspx
  3. Set a secure secret and valid until on Lines 5-7:
    // the default secret will not work, you must change it const string Secret = "(your-complex-secret-phrase-here)"; const string ValidUntil = "(date-which-is-several-month-in-the-future)"
  4. Save changes
  1. Upload the modified file to your Sitecore CM instance's subfolder like /layouts
  2. If using multiple load-balanced CM instances, deploy to all of them
  3. Verify the page works by accessing it via the browser — it is expected to see a SecurityException

Important: Some folders may restrict *.aspx execution.

Also, in rare cases the IIS configuration may prohibit runtime compilation of *.aspx files. To overcome this, it needs to be deployed alongside with the application during normal deployment phase.

https://www.loom.com/share/5dc22bf86cc244d48f207291e9c72692

How to upload a file to Sitecore CM

The easiest way to upload a file to Sitecore CM is via Import Language dialog in Control panel:

https://www.loom.com/share/5dc22bf86cc244d48f207291e9c72692

In the current terminal window run configuration wizard and follow the instructions:

PS C:\migration> siphon configure-download

Here's example output:

======================================================================= Siphon Download Configuration Wizard ======================================================================= This wizard will help you configure the Siphon Download phase. It will generate a .env file with all necessary settings. Press Enter to accept values shown in [brackets]. Previous configuration loaded from: .env ----------------------------------------------------------------------- Work Directory ----------------------------------------------------------------------- Base directory for all downloaded files. Subdirectories will be created: data\items, data\media, data\presentation > Work Directory [default: C:\migration]: ----------------------------------------------------------------------- Common Settings (used by all download commands) ----------------------------------------------------------------------- The Sitecore database to download from (e.g., 'web' or 'master'). > Database [default: web]: Full URL to the deployed UniformMigrationService.aspx on your Sitecore CM. Example: https://sc.dev/layouts/UniformMigrationService.aspx > Uniform Service URL: https://authoring.example.com/layouts/UniformMigrationService.aspx The secret phrase configured in UniformMigrationService.aspx (Line 5). > Secret: ***** ----------------------------------------------------------------------- 1. Download Items Settings ----------------------------------------------------------------------- Root item GUID to start downloading from (with all descendants). It is typically the Home item. In a multi-site solutions there are 2 options: - Download sites one by one - Download everything by using root ID: 11111111-1111-1111-1111-111111111111 > Root Item ID: ITEM-ID-OF-YOUR-HOMEPAGE Languages to download (comma-separated, e.g., 'en,ja-JP,da'). Leave empty to download all registered languages. > Languages: Number of parallel download threads (1-16). > Threads [default: 4]: Download rendering datasource items outside of root? Unsure or in doubt? Use the default option. > Download Renderings Datasources [Y/n]: Download field-referenced items outside of root? Unsure or in doubt? Use the default option. > Download Fields References [Y/n]: ----------------------------------------------------------------------- 2. Download Media Settings ----------------------------------------------------------------------- Number of parallel download threads for media (1-16). > Threads [default: 4]: ----------------------------------------------------------------------- 3. Download Presentation Settings (Optional) ----------------------------------------------------------------------- Presentation download captures page layouts using Playwright. This is optional - skip if you only need content migration. Unsure or in doubt? Use the default option. > Configure presentation download? [Y/n]: Sitecore Host URL (base URL of your Sitecore instance). Example: https://sc.dev/ > Sitecore Host: https://authoring.example.com Production host (CD instance) for production HTML comparison. Example: When host is https://cm.example.com then production host is https://www.example.com > Production Host: https://cd1.example.comle.com Path to the site root item in Sitecore. Example: /sitecore/content/Habitat/Home > Start Path: /sitecore/content/example/Home Virtual path to download a sub-set of the website (optional). Example: /about-habitat (leave empty for entire site) > Virtual Path: Sitecore login page URL for authentication. Example: https://sc.dev/sitecore/login > Login URL: https://identity.example.com/sitecore/login Sitecore username for presentation download. > Username: admin Sitecore password for presentation download. > Password: * Sitecore <site> name from <sites> section of showconfig.aspx (or corresponding Site configuration item in SXA). Example: website > Site Name: example-site Number of parallel download threads (1-8). > Threads [default: 4]: Unsure or in doubt? Use the default option. > Download referenced assets (styles, static images etc.)? [Y/n]: [OK] Configuration saved to: .env ======================================================================= Configuration Summary ======================================================================= Work Directory: C:\migration\data Common: Database: web Service URL: https://authoring.example.com/layouts/UniformMigrationService.aspx Secret: ******** Download Items: Root: ITEM-ID-OF-YOUR-HOMEPAGE Output: C:\migration\data\items Threads: 4 Download Media: Input: C:\migration\data\items Output: C:\migration\data\media Threads: 4 Download Presentation: Host: https://authoring.example.com Prod Host: https://cd1.example.comle.com Start Path: /sitecore/content/example/Home Login URL: https://identity.example.com/sitecore/login Threads: 4 ======================================================================= Next Steps: ======================================================================= 1. Copy the .env file to your migration working directory 2. Run the download commands: siphon download-items siphon download-media siphon download-presentation

First, download content items:

PS C:\migration> siphon download-items

Verify the command returned no critical errors and exit code is 0. If the error code is not 0, halt and contact Uniform migration team.

All download commands support resuming downloading: if it failed after some time of running well, it won't try to re-download what's already there.

Next, run two remaining commands. These commands are independent and can be run in parallel, although it is not recommended.

PS C:\migration> siphon download-media PS C:\migration> siphon download-presentation

When everything is complete, review the downloaded files:

C:\migration\ ├── items\ │ ├── _languages.json # Available languages │ └── {language}\ │ ├── {0-f}\ │ | └── {0-f}\ │ | └── {item-id}.json # Individual items │ └── index.json # Language-specific index ├── media\ │ └── ...Binary media files └── presentation\ ├── test-results # For azure devops reporting tool └── {language}\ ├── {first-level-children}\ │ ├── {second-level-children}\ │ │ ├── .... │ │ ├── index.html # page raw output via Experience Editor │ │ ├── index.json # page structure parsed from index.html │ │ └── prod.html # page raw output from production website │ ├── index.html │ ├── index.json │ └── prod.html ├── index.html ├── index.json └── prod.html

  1. UniformMigrationService.aspx not accessible

    • Check IIS configuration
    • Verify file permissions
  2. Download interruptions

    • Use resume functionality
    • Check network connectivity
    • Run outside of peak hours of content editing
    • Reduce thread count if experiencing timeouts
  3. Authentication failures in presentation download

    • Verify Sitecore credentials
    • Check login URL accessibility
    • Ensure Playwright is properly installed

For additional support, contact Uniform migration team with DEBUG log file.

When downloading is completed, provide the C:\migration\ directory to Uniform migration team.

Alternatively, you can complete migration yourself: