Release notes v18.3.0

Release Details

v18.3.0 - Publisher approvals & Sync Queue (v17 forward-port)

v18.3.0

Brings the v17.6.0 work forward to Umbraco 18: approvals and the Sync Queue for uSync.Publisher, and a new API for starting a push, pull or export in a single call. It now requires uSync 18.2.0 or later.

Added

  • Publisher: approvals. A server can require approval for content pushes and pulls. The push or pull stops once the report is ready, and waits until someone in the server's approver groups approves or declines it. Settings pushes and pulls are not affected.
  • Publisher: when a request is approved, the push or pull is sent again and the target re-checked before anything is applied. If the target changed since the request was made, the result shows what is different.
  • Publisher: a new Approvals dashboard in the Content section lists the requests waiting for you, the requests you have made, and their history. It only appears once approvals are in use.
  • Publisher: approvers get an email when a request needs them, and requesters when theirs is approved, declined, expires or fails. This needs SMTP set up in Umbraco.
  • A single-call API to start a push, pull or export in the background: POST Publisher/Start and POST Exporter/Start, with GET Exporter/Download/{id} to download a finished export.
  • Publisher: the Sync Queue. Turn on Allow queuing on a server's Permissions view and items get an Add to queue action, also in the content editor's push menu and on the content and media browser dashboards. Each user has their own queue, shown on the new Sync Queue dashboard in the Content section. Pick the items to send, choose whether each one includes its children, and push them together through the usual push dialog. Items leave the queue once their push goes through. The action and dashboard only appear when a server allows queuing.

Setting up approvals

Approvals are set per server, on the server's Permissions view in the Publisher settings:

  • Require approval: turns approvals on for pushes and pulls with this server. Off by default, so existing servers behave exactly as before.
  • Approvers: the user groups that can approve or decline requests. Admins can always approve. Nobody can approve their own request unless they are an admin.
  • Expires after (days): how long a request waits for a decision. The default is 7; 0 means requests never expire.

When someone pushes or pulls with that server, they see the report as usual and choose Request approval, with an optional note for the approver.

Customising the emails

Each email comes from a built-in template. To change one, put a file with the same name in ~/uSync/emails/ in your site's content root: approval-requested.html, approval-approved.html, approval-declined.html, approval-expired.html or approval-failed.html. The file's <title> becomes the email subject, and a comment at the top of each built-in template lists the placeholders you can use.

To send these notifications somewhere other than email, handle PublisherApprovalRequestedNotification, PublisherApprovalDecidedNotification and PublisherApprovalFinishedNotification.

Changed

  • Publisher: the push and pull buttons only appear for user groups whose default permissions allow a push or pull.
  • Publisher: the first step of a push or pull now says it is finding items, and how many it found.
  • Publisher: a media file is no longer sent when the target server already has an identical copy at the same path. The media item is still synced. Sites that share a media store (for example one Azure Blob container) no longer upload files the other site can already read.
  • Publisher: the push, pull and add to queue actions sit in their own section of the actions menu.

Fixed

  • Publisher: in Safari 26.4 the push dialog no longer collapses to nothing, which left the backoffice looking locked up.
  • Publisher: the progress bar updates during a push or pull again, including the "Uploading to server" and "Packing items" messages.
  • Publisher: items that fail to import are now listed in the push or pull result.
  • Publisher: in the content browser, the focus ring on a card no longer covers the Compare button.
  • TimeMachine: the timeline refreshes when you come back to it.
  • Exporter: asking for an export that doesn't exist, or with an invalid request, now returns Not Found or Bad Request instead of a server error.
  • Background runs that are queued, scheduled or running can be cancelled from the Background screen, which shows its process and queue lists again.
  • Publisher: spelling and pluralisation fixes in result messages.
  • Publisher: pushing from the content editor no longer goes ahead when you cancel the save and publish step.
  • Publisher: the server a site is running on is recognised when the site is reached over a different scheme, port or letter case than its configured url.
  • Importing user groups exported from Umbraco 13 now keeps their permissions. ([310](https://github.com/jumoo/uSync.Complete.Issues/issues/310))
  • Push and pull no longer fail on some hosts with "The converter for derived type 'System.Collections.IDictionary' does not support metadata writes or reads". ([293](https://github.com/jumoo/uSync.Complete.Issues/issues/293))

Requirements

  • Umbraco 18.
  • uSync 18.2.0 or later.
  • Jumoo.Processing 18.3.0 (installed automatically).