- POST /_seo/api/v1/batch runs changes in one transaction: dry_run answers the diff and the conflicts (loops, chains, noindex on a published record, canonicals to redirected or noindex addresses) and rolls back; a refused change refuses the batch (D-12) - undo of a change or a whole batch from History and through MCP, with the undo_stale, undo_loop and undo_gone refusals (D-13) - CSV export and import of redirects, rules and records by URL: BOM, comma or semicolon, formula cells escaped, a dry-run preview, all or nothing with via import; the screen's apply token is HMAC-SHA256 over the file and a fingerprint of the data (transfer.stale) - Import and export singleton with the seo_transfer widget action, History record actions undo and undo_batch, navigation entry - MCP tools undo_change, undo_batch, apply_batch, export_csv, import_csv - TestBatch, TestUndo, TestCSVTransfer, TestLoopRefused mcp and import
21 lines
720 B
YAML
21 lines
720 B
YAML
# Import and export (UI-SPEC C13): the CSV delimiter the footer Save
|
|
# stores, and the files widget (E6) with the export, the import preview and
|
|
# the apply, all through the seo_transfer action.
|
|
fields:
|
|
csv_delimiter:
|
|
label: golem15.seo::lang.transfer.delimiter
|
|
comment: golem15.seo::lang.transfer.delimiter_comment
|
|
type: dropdown
|
|
span: left
|
|
options:
|
|
',': golem15.seo::lang.transfer.delimiter_comma
|
|
';': golem15.seo::lang.transfer.delimiter_semicolon
|
|
|
|
_transfer:
|
|
label: golem15.seo::lang.transfer.widget
|
|
type: widget
|
|
widget: golem15-seo-transfer
|
|
action: seo_transfer
|
|
fill: [csv_delimiter]
|
|
span: full
|