Asset Migration from FE to Backend (5.17 Upgrade) — DevOps
This guide describes how to migrate assets from the old layout used in TAS 5.7 to the new backend layout introduced in version 5.17. The procedure also applies to newer versions that use the same backend asset structure — this change has historically been communicated under the 5.17 label.
Prerequisites
- The backend in version 5.7 is stopped — during the migration the source directory is only read, but any writes must be prevented.
- A backup of the original
frontend/assetsfolder exists (disk snapshot, tarball, storage snapshot — depending on the practices of the environment). rsync(recommended) or alternativelycpis available on the server.- You have access to a user with write permissions to
backend/assets(typicallydkr-tasor root).
Target structure
In version 5.7, files were stored in the frontend storage. Since version 5.17, the backend storage is used with the following structure (paths inside the container):
/app/tas/storage/assets/manuals
/app/tas/storage/assets/logos
/app/tas/storage/assets/visual-identity
/app/tas/storage/assets/images
/app/tas/storage/assets/documents
/app/tas/storage/assets/ai-content
Mapping of old and new folders
|
Old location (5.7) |
New location (5.17+) |
Note |
|
|
|
Move the contents of |
|
|
|
Move the entire contents, including any subfolders (e.g. |
|
|
|
Does not belong in |
|
|
|
Move the entire contents. |
|
did not exist |
|
Create as an empty folder. |
|
did not exist |
|
Create as an empty folder. |
_schemaLogos_ folder to manuals. It belongs exclusively in visual-identity. If it ends up in both locations, the content will be duplicated.documents is populated individually based on the customer's decision. For a standard migration, create it as an empty folder. ai-content did not exist in version 5.7 — always create it as an empty folder.Example paths
This guide assumes the common stack layout:
/srv/tas/stack/stack_name/deployment/instance/stack_name/storage/frontend/assets
/srv/tas/stack/stack_name/deployment/instance/stack_name/storage/backend/assets
Replace stack_name with the actual name of the stack in your environment.
Migration procedure (rsync)
The recommended variant using rsync — it preserves the structure better and makes it easy to exclude _schemaLogos_ from uploads.
1. Prepare the target structure
cd /srv/tas/stack/stack_name/deployment/instance/stack_name/storage/backend/assets
mkdir -p manuals
mkdir -p logos
mkdir -p visual-identity
mkdir -p images
mkdir -p documents
mkdir -p ai-content
2. Transfer the content from the frontend storage
Run the commands from the directory:
/srv/tas/stack/stack_name/deployment/instance/stack_name/storage/backend/assets
rsync -a --exclude '_schemaLogos_/' ../../frontend/assets/uploads/ ./manuals/
rsync -a ../../frontend/assets/logos/ ./logos/
rsync -a ../../frontend/assets/uploads/_schemaLogos_/ ./visual-identity/
rsync -a ../../frontend/assets/images/ ./images/
mkdir -p ./documents
mkdir -p ./ai-content
Variant without rsync (cp)
If rsync is not available on the server, you can use cp -a. This variant requires explicitly removing _schemaLogos_ from manuals so that the same content does not end up in two places.
cd /srv/tas/stack/stack_name/deployment/instance/stack_name/storage/backend/assets
mkdir -p manuals logos visual-identity images documents ai-content
cp -a ../../frontend/assets/uploads/. ./manuals/
rm -rf ./manuals/_schemaLogos_
cp -a ../../frontend/assets/logos/. ./logos/
cp -a ../../frontend/assets/uploads/_schemaLogos_/. ./visual-identity/
cp -a ../../frontend/assets/images/. ./images/
../../frontend/assets/uploads/. (with a dot at the end) copies the contents of the folder, including hidden files, rather than the folder itself.Post-migration check
Once finished, verify that the target folders exist and that their contents match the expected mapping:
cd /srv/tas/stack/stack_name/deployment/instance/stack_name/storage/backend/assets
find manuals -maxdepth 2 -type d | head
find logos -maxdepth 2 -type d | head
find visual-identity -maxdepth 2 -type d | head
find images -maxdepth 2 -type d | head
ls -la documents
ls -la ai-content
Focus mainly on the following:
manualsdoes not contain_schemaLogos_.visual-identitycontains the original contents of_schemaLogos_.logoscontains the original logos and any subfolders (e.g._org_).imagescontains the old files fromfrontend/assets/images.documentsexists and is empty, unless the customer specified otherwise.ai-contentexists and is empty.
Permissions
Finally, set the owner of the target folders and their contents. In the TAS environment, the required user is typically dkr-tas:
chown -R dkr-tas:dkr-tas /srv/tas/stack/stack_name/deployment/instance/stack_name/storage/backend/assets
chown -R dkr-tas ...) if ownership on the server is managed without an explicit group.Mapping summary
manuals <- uploads without _schemaLogos_
logos <- logos
visual-identity <- _schemaLogos_
images <- images
documents <- new empty folder
ai-content <- new empty folder
Next steps
After a successful migration and setting the permissions, start the backend image in version 5.17+ and verify that the assets load correctly (manuals, logos, visual identity, images in cases).
Updated
by Frantisek Brych