Version 5.0.2
June 28, 2026
Changed
- Updated plugin icon and icon mask.
Version 5.0.1
June 27, 2026
Added
Correct Craft license.
Version 5.0.0
June 27, 2026
Added
- Initial Phase 1 foundation: plugin scaffolding, settings, and the export/import database layer.
- Serialization engine that converts elements to a portable, UID-based JSON representation.
- Field handler registry (
EVENT_REGISTER_FIELD_HANDLERS) with handlers for scalar, relation, and Matrix fields. - Element handler registry (
EVENT_REGISTER_ELEMENT_HANDLERS) with an entry handler. - ZIP package format (
manifest.json+elements/+files/) viaPackageManager. - Control panel export screen for selecting and exporting entries.
Phase 2 — full element coverage, dependencies, assets, multi-site
- Element handlers for categories, tags, global sets, users, assets, and addresses.
- Dependency resolver: builds a
DependencyGraphof UID references and topologically sorts the import so each element is created after the elements it references (structure parents, authors, relations), with cycle detection. - Asset file transfer: bundles asset files into the package from any volume and
recreates them in the target volume on import (
AssetTransfer). - Multi-site serialization: per-site title/slug/enabled/field-values, with a per-site import save loop and optional source→target site handle mapping.
- Export screen now offers element-type selection.
Phase 3 — diffing, preview & conflict resolution
- Diff engine (
Differ): field-level, per-site comparison of each package element against its target counterpart, classified add/update/unchanged with human-readable values (relation titles, Matrix block counts). - Import wizard: upload → configure (per-element actions + selection) → preview (field-level diff with per-field apply/reject toggles) → run.
- Selective merge (
Merger): rejected fields keep the target's current value; accepted fields apply the incoming value. Import accepts a selected-UID set and per-field decisions.
Phase 4 — safety, history & rollback
- Pre-import snapshots (
Snapshotter): captures the prior state of every affected element before import (compressed JSON intransport_snapshots), recording updates with their full prior data and creations as deletable. - One-click rollback from the History screen: restores updated elements to their prior state and deletes elements the import created. Rollback is itself snapshot-protected.
- Import history: real imports are recorded up front (status
running) and updated tocompleted/failed, with a per-import detail view and error log. - Pre-flight validation (
ValidationService): checks the target has the required sections, entry types, category/tag groups and volumes, that referenced sites exist, and that there is disk space for bundled files. Blocking errors stop the import.
Phase 5 — Commerce & third-party support
- Verbb Hyper field handler: rewrites element-link targets (entry/category/asset/user/ product/variant) to portable UID references and back.
- Craft Commerce product + variant element handlers (variants serialized inline), registered only when Commerce is installed.
- Neo and Super Table field handlers (block-based, recursive), registered only when the host plugin is installed.
- All third-party handlers load conditionally — Transport keeps no hard dependencies.
- Developer documentation (
docs/EXTENDING.md) for adding custom element/field handlers viaEVENT_REGISTER_ELEMENT_HANDLERS/EVENT_REGISTER_FIELD_HANDLERS.
Phase 6 — CLI, queue & logging
- Console commands:
transport/export(--section,--site,--types,--all,--output,--metadata-only),transport/import <path>(--dry-run),transport/history, andtransport/rollback <id>. - Background queue jobs (
ExportJob,ImportJob); the import wizard can run large imports in the background. - Dedicated
storage/logs/transport.logtarget with structured import summaries.
Phase 7 — testing & documentation
- README with feature overview, install, export/import workflows, CLI, and rollback.
- Export/import lifecycle events:
Export::EVENT_BEFORE_EXPORT/EVENT_AFTER_EXPORTandImport::EVENT_BEFORE_IMPORT/EVENT_AFTER_IMPORT(before-events can cancel). - Test suites: unit tests (dependency graph/resolver, selective merge, package + diff models) and integration tests that round-trip the full export/import pipeline against a live Craft app (UID identity, recreation, dependency ordering, merge, rollback).
More integrations
- Freelink field handler (justinholtweb): rewrites relations-backed element links to portable UID references and restores them on import.
- Asset file transfer verified end to end against a live volume (bundle + recreate).
- Craft Commerce 5 product/variant migration verified (product type, SKU, base price, dimensions, tax/shipping category, custom fields).
- Google Maps Address field handler: strips environment-specific owner keys.
- SEOMatic SeoSettings field handler: rewrites SEO/OG/Twitter image asset ids to UIDs.
- Verbb Navigation node migration: element links, custom URLs, and nested structure.
- Formie support: form definitions (via Formie's export/import) and submissions with their field values.
- Solspace Calendar events: dates, recurrence rules, and author (canonical events).
- SEOMatic SeoSettings image asset references made portable.
- Documented integration status for all supported and planned plugins
(
docs/INTEGRATIONS.md).