Skip to main content
Version: v13.x - Umbraco 13

Extending uSync.Complete

uSync.Complete has a number of points where you can extend what can be exported, pushed and pulled between servers.

Mapping Values

uSync.Complete builds upon the core uSync package, so you can still use value mappers to manage how individual properties are mapped between sites.

uSync Value Mappers

Syncing Items

if you have your own items stored outside of existing Umbraco objects and you want them to sync you will need to write your own SyncHandler and SyncSerializers to handle the serialization and deserialization of the items.

The Vendr.uSync package is a good example of how you can extend uSync to include your own Serializers and Handlers

In a base uSync project the xml you are serializing will be read/written to disk as part of the sync, for uSync.Complete the xml may be kept in memory and sent across the wire to another server to deserialize.

Including Dependencies

When you push or pull between sites with uSync.Publisher or create a sync pack with uSync.Exporter then uSync.Complete will attempt to calculate the dependencies of the items you want to export.

Dependencies can be anything that is required to get your item up and running on another site, from the data types and doctypes required to create a content item, to the media items or other linked pages you would need to render the item, uSync.Complete will use DependencyCheckers to go over any item and see what other items are needed.

You can write your own dependency checkers, and uSync can have multiple dependency checkers for a given item. For example, uSync has multiple dependency checkers for content items, one to check properties and doctype dependencies, one to check for domain settings and one to check for public access security settings.

Handling Dependencies

Extending Menus

If you want to include a push/pull option for your extended items, you can implement a SyncItemManager.

A SyncItemManager tells uSync.Publisher/Exporter how any given item from the Umbraco back office can be handled by uSync when it is pushing/pulling or exporting content.

A SyncItemManager class manages the items, and it means you can extend the uSync UI inside Umbraco without having to write any additional Javascript code.

Item Manager