Allow destination to be a process pipeline

Created on 22 August 2025, about 1 month ago

Problem/Motivation

As per the docs you have to use an pseudo field to generate complex filenames, in the file migrations I have done this sort of pattern is fairly common:

_file_destination:
  plugin: concat
  source:
    - constants/file_destination
    - constants/directory_separator
    - '@text_field_1'
    - constants/directory_separator
    - '@text_field_2'
    - constants/directory_separator
# Now we can use our pseudo temp field as a destination value
field_file:
  plugin: file_import
  source: file
  destination: '@_file_destination'
  uid: @uid
  skip_on_missing_source: true

Steps to reproduce

Proposed resolution

If destination is an array, we could treat it as a process pipeline, and make this more readable?

field_file:
  plugin: file_import
  source: file
  destination:
    plugin: concat
    source:
      - constants/file_destination
      - constants/directory_separator
      - '@text_field_1'
      - constants/directory_separator
      - '@text_field_2'
      - constants/directory_separator
  uid: @uid
  skip_on_missing_source: true

Remaining tasks

User interface changes

API changes

Data model changes

Feature request
Status

Active

Version

3.0

Component

Code

Created by

🇬🇧United Kingdom longwave UK

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.71.5 2024