Configuration reference#
This page documents every section and key available in the transmute.toml configuration file.
To generate an initial configuration file with defaults, run the following command.
uv run transmute settings generate
See also
For an introduction to configuring migrations, see Usage.
[config]#
General application settings.
[config]
debug = false
log_file = "transmute.log"
prepare_data_location = "."
reports_location = "."
report = 1000
debugEnable debug mode. When
true, additional logging is written. Default:falselog_filePath to the log file. Default:
"transmute.log"prepare_data_locationDirectory where prepared metadata files are stored during processing. Default:
"."reports_locationDirectory where generated report files are saved. Default:
"."reportNumber of items processed between progress updates in the log. Default:
1000
Module |
Function |
Keys |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
[pipeline]#
Controls which steps run and in what order.
[pipeline]
prepare_steps = []
steps = [
"collective.transmute.steps.ids.process_export_prefix",
"collective.transmute.steps.uids.drop_item_by_uid",
"collective.transmute.steps.dates.filter_by_date",
"collective.transmute.steps.ids.process_ids",
"collective.transmute.steps.paths.process_paths",
"collective.transmute.steps.portal_type.process_type",
"collective.transmute.steps.basic_metadata.process_title",
"collective.transmute.steps.basic_metadata.process_title_description",
"collective.transmute.steps.review_state.process_review_state",
"collective.transmute.steps.default_page.process_default_page",
"collective.transmute.steps.image.process_image_to_preview_image_link",
"collective.transmute.steps.data_override.process_data_override",
"collective.transmute.steps.creators.process_creators",
"collective.transmute.steps.constraints.process_constraints",
"collective.transmute.steps.blocks.process_blocks",
"collective.transmute.steps.blobs.process_blobs",
"collective.transmute.steps.sanitize.process_cleanup",
]
report_steps = [
"collective.transmute.reports.paths.write_paths_report",
"collective.transmute.reports.final_state.report_final_state",
"collective.transmute.reports.dropped.report_dropped_by_path_prefix",
]
do_not_add_drop = ["process_paths", "process_default_page"]
prepare_stepsList of dotted paths to functions that run before the main pipeline. These steps prepare metadata (for example, redirects, local roles, and relations). Default:
[]stepsOrdered list of dotted paths to pipeline step functions. Each step is an async generator that receives and yields items. See Create a pipeline step for details on writing custom steps.
report_stepsList of dotted paths to functions that run after the pipeline completes. These generate CSV reports and console summaries.
do_not_add_dropList of step function names (not full dotted paths) that should not be wrapped with the automatic drop-item logic. Use this for steps that yield
Nonefor reasons other than dropping an item. Default:["process_paths", "process_default_page"]
Module |
Function |
Keys |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[site_root]#
Defines the source and destination site root paths, used for path rewriting and redirect generation.
[site_root]
src = "/Plone"
dest = "/Plone"
srcThe site root path in the source (exported) data. Default:
"/Plone"destThe site root path in the destination portal. Default:
"/Plone"
Module |
Function |
Keys |
|---|---|---|
|
|
|
|
|
[principals]#
Controls how content creators are processed.
[principals]
default = "Plone"
remove = ["admin"]
defaultThe default creator to use when all original creators are removed. Default:
"Plone"removeList of creator usernames to remove from content items. Default:
["admin"]
Module |
Function |
Keys |
|---|---|---|
|
|
[default_pages]#
Controls how default pages (index pages) are handled during migration.
[default_pages]
keep = false
keys_from_parent = ["@id", "id"]
keepWhether to keep default pages as separate items. When
false, the default page is merged into its parent container. Default:falsekeys_from_parentList of keys to copy from the parent item when merging a default page. Default:
["@id", "id"]
Module |
Function |
Keys |
|---|---|---|
|
|
[review_state]#
Controls filtering and rewriting of workflow review states.
[review_state.filter]#
[review_state.filter]
allowed = ["published"]
allowedList of review states to keep. Items in other states are dropped. An empty list allows all states. Default:
["published"]
Module |
Function |
|---|---|
|
[review_state.rewrite]#
[review_state.rewrite]
states = {}
workflows = {}
statesMapping of source review state names to destination review state names. Default:
{}workflowsMapping of source workflow IDs to destination workflow IDs. Default:
{}
Module |
Function |
|---|---|
|
[paths]#
Controls path processing, filtering, and cleanup.
[paths]
export_prefixes = ["http://localhost:8080/Plone"]
export_prefixesList of URL prefixes to strip from item
@idvalues. These are the base URLs of the source Plone site. Default:["http://localhost:8080/Plone"]
Module |
Function |
|---|---|
|
[paths.cleanup]#
Mapping of path substrings to their replacements.
[paths.cleanup]
"/_" = "/"
Each key is a substring to find in item paths, and the value is its replacement.
Module |
Function |
|---|---|
|
[paths.filter]#
[paths.filter]
allowed = []
drop = []
allowedList of path prefixes to keep. If not empty, only items under these prefixes are processed. An empty list allows all paths. Default:
[]dropList of path prefixes to exclude. Items under these prefixes are dropped. Default:
[]
Module |
Function |
|---|---|
|
[paths.portal_type]#
Mapping of path prefixes to portal type overrides. Items under a given path prefix will have their portal type changed.
[paths.portal_type]
"/news" = "News Item"
Module |
Function |
|---|---|
|
[images]#
Controls image-to-preview-image conversion.
[images]
to_preview_image_link = []
to_preview_image_linkList of portal types whose
imagefield should be extracted into a separate Image item with apreview_image_linkrelation. Default:[]
Module |
Function |
Keys |
|---|---|---|
|
|
[sanitize]#
Controls which fields are removed from items at the end of the pipeline.
[sanitize]
drop_keys = [
"is_folderish",
"items",
"layout",
"limit",
"lock",
"nextPreviousEnabled",
"parent",
]
block_keys = [
"item_count",
"items_total",
"limit",
"query",
"sort_on",
"sort_reversed",
"text",
"template_layout",
"tiles",
]
drop_keysList of keys to remove from all items.
block_keysList of additional keys to remove from items that have Volto blocks. These keys are typically remnants of the classic Plone content model and are no longer needed once the content has been converted to blocks.
Module |
Function |
Keys |
|---|---|---|
|
|
[data_override]#
Path-based field overrides. Each key is an item path, and the value is a dictionary of fields to set on that item.
[data_override]
"/some/specific/path" = { "title" = "New Title", "review_state" = "private" }
Module |
Function |
Keys |
|---|---|---|
|
Item |
[types]#
Defines portal type mappings, processors, and block configurations.
Global processor#
[types]
processor = "collective.transmute.steps.portal_type.default.processor"
processorDotted path to the default type processor function. Used for types that don't define their own processor.
Per-type configuration#
Each portal type can have its own subsection.
[types.Document]
portal_type = "Document"
blocks = [{ "@type" = "title" }, { "@type" = "description" }]
[types.Folder]
portal_type = "Document"
[types.Collection]
portal_type = "Document"
processor = "collective.transmute.steps.portal_type.collection.processor"
portal_typeThe destination portal type. Use this to map source types to different destination types (for example,
FoldertoDocument).processorDotted path to a type-specific processor function. Overrides the global processor for this type.
blocksList of default Volto blocks to add to items of this type. Each block is a dictionary with at least an
@typekey.override_blocksAlternative block list that takes precedence over
blockswhen present.
Module |
Function |
Keys |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
[steps]#
Per-step configuration. Each step can define its own subsection under [steps].
[steps.blocks.variations]#
Mapping of classic Plone view names to Volto listing block variations.
[steps.blocks.variations]
listing_view = "listing"
summary_view = "summary"
tabular_view = "listing"
full_view = "summary"
album_view = "imageGallery"
Module |
Function |
|---|---|
|
[steps.blobs]#
[steps.blobs]
field_names = ["file", "image", "preview_image"]
field_namesList of field names that contain blob data to be extracted as separate files.
Module |
Function |
|---|---|
|
[steps.date_filter]#
Date thresholds for filtering items. Items with field values older than the threshold are dropped.
[steps.date_filter]
created = "2000-01-01T00:00:00"
Each key is a date field name, and the value is the ISO 8601 date threshold.
Module |
Function |
|---|---|
|
[steps.paths.prefix_replacement]#
Mapping of source path prefixes to destination path prefixes for path rewriting.
[steps.paths.prefix_replacement]
"/old-section" = "/new-section"
Module |
Function |
|---|---|
|