Migration from Kentico 12 to Xperience by Kentico – Media Library & Content Hub Workspace Handling

We are currently planning a migration from Kentico 12 (Portal Engine / MVC) to Xperience by Kentico, and I have a few questions regarding media library management.

In our existing Kentico 12 setup, we have multiple sites, each with its own media libraries (site-specific as well as some shared/global libraries).

As part of the migration, we are exploring how to properly move and manage media assets in Content Hub within Xperience by Kentico.

My questions:

  1. What is the recommended approach to migrate media libraries from Kentico 12 to Xperience by Kentico Content Hub?

  2. How should we structure media in Content Hub when we have multiple sites?

    • Should we use folders, naming conventions, or something else?
  3. What is the role of Workspaces in Content Hub for multi-site scenarios?

  4. Currently, I do not see any Workspace configuration or access in the admin UI:

    • Do we need additional setup, permissions, or licensing to enable Workspaces?
  5. Is there a way to ensure site-specific media visibility in Content Hub (similar to site-specific media libraries in Kentico 12)?

  6. If Workspaces are not available, what is the best practice to segregate content per site in Content Hub?

Any guidance, best practices, or real-world migration experiences would be really helpful.


Environment

Tags:
Kentico DXP Website channels Workspaces
0

Answers

I'll do my best to answer what I believe would be your best bet.

  1. You can use the Kentico Migration Toolkit to migrate your media files over. The tricky part will be to create a mapping of "Old" url to "new" url. I did this myself by creating a set of tables that contains the old relative path (/<site>/media/mediafolder/path/to/file.png) as well as the /getmedia url (/getmedia/[fileguid]/...), and even handled the /getattachment items. With this, you can create a middleware or a 404 handler to see if the url is an 'old' url and redirect to the new. Keep in mind, you'll want to heavily cache and optimize this.

  2. I would use a Workspace for each 'site', and the initial Content Folder as the 'Library" folder name. I additionally created a "PageAttachments" folder for my attachments and created a folder structure to match the node tree paths for any attachment files.

  3. Workspaces are just buckets of content. They are channel agnostic, however you can assign Roles (Admin user) for who can manage them. User roles is something that's coming soon.

  4. Currently the only 'restriction' on content items is the "Is Secure" which requires site visitors to be authenticated, soon though Xperience will have their member roles system launched. I have a custom solution that was a stop gap for this, so i would just wait for it. Once there, you can set permissions on content items, but it's largely on INDIVDIUAL content items, not entire workspaces.

  5. Not out of the box, but it would be pretty easy to create a middleware that:

    1. Checks if the incoming request is a /getcontentitem/
    2. Gets the Content Item GUID value, and sees what Workspace it's in (i would query to get ALL the content item Guids for each workspace and cache that)
    3. Find which Workspace the content item is, and if the request is for a different site than that workspace is for, block it.

You can do pretty much anything in .net core now, and yes compared to 12 you have to do a lot more of your custom stuff, well, custom. They stripped a lot of bloat out to keep the code agile. The benefit though is tremendous speed.

0
  1. What is the recommended approach to migrate media libraries from Kentico 12 to Xperience by Kentico Content Hub?
    In my experience, for Kentico Portal Engine projects, this usually ends up being a custom migration. I’ve handled it as a two-step process: first exposing media file URLs and related metadata from the source site through a custom API, then consuming that data in the target Xperience by Kentico solution and creating reusable content items with content item assets through XbyK API. Kentico does have an official recommendation for supported scenarios: use the Kentico Migration Tool and follow the media library migration guidance. I didn’t choose that path, though.
  2. How should we structure media in Content Hub when we have multiple sites? Should we use folders, naming conventions, or something else?
    A combination of all three works best: workspaces for top-level separation and permissions, folders for organization, and clear naming conventions for usability. If you need hard separation in a multisite setup, workspaces are the main tool.
  3. What is the role of Workspaces in Content Hub for multi-site scenarios?
    Workspaces are the main way to separate content ownership and permissions in multi-site setups. They let you scope access by role and keep teams focused on their own content. However, they do not directly bind content to a specific site, so content can still be reused across channels.
  4. Currently, I do not see any Workspace configuration or access in the admin UI. Do we need additional setup, permissions, or licensing to enable Workspaces?
    Since you’re on version 31.2.0, workspaces should be available. I’d first check whether the user’s role has access to the Workspaces application and the relevant workspace-scoped permissions before assuming it is a licensing issue.
  5. Is there a way to ensure site-specific media visibility in Content Hub, similar to site-specific media libraries in Kentico 12?
    Partially. You can use workspaces and role permissions to limit who can view or edit media for a given site or team. However, workspaces do not prevent content from being reused across channels, so they are not a direct equivalent of site-specific media libraries in Kentico 12.
  6. If Workspaces are not available, what is the best practice to segregate content per site in Content Hub?
    In 31.2.0, workspaces should be available, so I would treat missing workspaces as a configuration or permissions issue rather than a product limitation. If needed, folders and naming conventions can help with organization, but they are not a substitute for proper workspace-based separation.
0

To response this discussion, you have to login first.