From b724c432772bc3629f559a1f26dc999ed9fba299 Mon Sep 17 00:00:00 2001 From: Nathan Woulfe Date: Thu, 30 May 2024 12:20:10 +1000 Subject: [PATCH 1/2] initial release notes for 14 --- 10/umbraco-workflow/release-notes.md | 4 + 12/umbraco-workflow/release-notes.md | 4 + 13/umbraco-workflow/release-notes.md | 4 + 14/umbraco-workflow/SUMMARY.md | 1 - .../getting-started/images/content-app.png | Bin 37088 -> 0 bytes .../getting-started/workflow-content-app.md | 101 ------------------ 14/umbraco-workflow/release-notes.md | 4 + .../upgrading/version-specific.md | 28 +++-- 8 files changed, 34 insertions(+), 112 deletions(-) delete mode 100644 14/umbraco-workflow/getting-started/images/content-app.png delete mode 100644 14/umbraco-workflow/getting-started/workflow-content-app.md diff --git a/10/umbraco-workflow/release-notes.md b/10/umbraco-workflow/release-notes.md index a8fe850e59f..fba44ba70a2 100644 --- a/10/umbraco-workflow/release-notes.md +++ b/10/umbraco-workflow/release-notes.md @@ -17,6 +17,10 @@ If you are migrating from Plumber to Umbraco Workflow, see the [Migrate from Plu This section contains the release notes for Umbraco Workflow 10 including all changes for this version. +### [10.3.10](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.3.10) (May 10 2024) + +* Fixes an issue where Content Review notification emails failed to send due to attempting to access UmbracoContext in a hosted service [#57](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/57) + ### [10.3.9] (April 23rd 2024) * Fixes an issue where SQL query generation exposed a potential injection vector. This fix was also released as a patch for Plumber v2 and v10. diff --git a/12/umbraco-workflow/release-notes.md b/12/umbraco-workflow/release-notes.md index 3d10d6c0c29..17096d88ac8 100644 --- a/12/umbraco-workflow/release-notes.md +++ b/12/umbraco-workflow/release-notes.md @@ -17,6 +17,10 @@ Check the [Version Specific Upgrade Notes](./upgrading/version-specific.md) arti This section contains the release notes for Umbraco Workflow 12 including all changes for this version. +### [12.2.7](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F12.2.7) (May 10 2024) + +* Fixes an issue where Content Review notification emails failed to send due to attempting to access UmbracoContext in a hosted service [#57](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/57) + ### [12.2.6] (April 23rd 2024) * Fixes an issue where SQL query generation exposed a potential injection vector. diff --git a/13/umbraco-workflow/release-notes.md b/13/umbraco-workflow/release-notes.md index 8ef8bf16ed1..4403c1352d8 100644 --- a/13/umbraco-workflow/release-notes.md +++ b/13/umbraco-workflow/release-notes.md @@ -17,6 +17,10 @@ Check the [Version Specific Upgrade Notes](upgrading/version-specific.md) articl This section contains the release notes for Umbraco Workflow 13 including all changes for this version. +### [13.0.7](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F13.0.7) (May 10 2024) + +* Fixes an issue where Content Review notification emails failed to send due to attempting to access UmbracoContext in a hosted service [#57](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/57) + ### [13.0.6] (April 23rd 2024) * Fixes an issue where SQL query generation exposed a potential injection vector. diff --git a/14/umbraco-workflow/SUMMARY.md b/14/umbraco-workflow/SUMMARY.md index 43192989a06..2144d4c4278 100644 --- a/14/umbraco-workflow/SUMMARY.md +++ b/14/umbraco-workflow/SUMMARY.md @@ -18,7 +18,6 @@ ## Getting Started * [Dashboards and Buttons](getting-started/dashboards-and-buttons.md) -* [Content App](getting-started/workflow-content-app.md) * [Submitting Content for Approval](getting-started/submitting-changes.md) * [Notifications](getting-started/notifications.md) * [Configuration](getting-started/configuration.md) diff --git a/14/umbraco-workflow/getting-started/images/content-app.png b/14/umbraco-workflow/getting-started/images/content-app.png deleted file mode 100644 index 312a09792ddd2c2bf571df2da44f99ec972910ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37088 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

|a90(cZ=1T`GKaU$IIcxN4OzQ07p|qvi-Vc_hkd zZ@m0uLrW|d4yTv!db83&kyTt_Bld9S2cuzWu)XoxGi33ub&SoEggttjnRD5dw}>LH z_8YXE+LmmLvbB{$xvQedEiEiEeyII%YvAI1Gjrd7C=%5cUUfRQlSQ)wZm8XvwW_%D zZ~W#4-?L^_Rh;QJBRjWIx(x4Gbiq20C}_Ox+#$Ole=@0p)q2X7MKk&Ar!>X@IMgo{ zJ)4izE-7e}kzAd2G<#xCw@OD{LK z>N(E1zc9a#w)i#PH8CiLT%`6WPC2qL4M3ZAHtG9Z95FF#36yIDr=nU6@v$pD�Yi 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 diff --git a/14/umbraco-workflow/getting-started/workflow-content-app.md b/14/umbraco-workflow/getting-started/workflow-content-app.md deleted file mode 100644 index 2355e8ed772..00000000000 --- a/14/umbraco-workflow/getting-started/workflow-content-app.md +++ /dev/null @@ -1,101 +0,0 @@ -# Content App - -Umbraco Workflow adds a [Content App](https://docs.umbraco.com/umbraco-cms/extending/content-apps) to all content nodes in the **Content** section where a workflow is enabled. The Workflow content app includes three sub-sections: - -* [Active Workflow](workflow-content-app.md#active-workflow) -* [Configuration](workflow-content-app.md#configuration) -* [History](workflow-content-app.md#history) - -![Workflow content app](../../../10/umbraco-workflow/getting-started/images/content-app.png) - -## Active Workflow - -The Active workflow sub-section provides an interface for managing workflows for the current content node. - -When the current node is pending workflow approval, the **Active workflow** sub-section displays detailed information such as: - -* Option to [approve, reject, or cancel pending workflow tasks](workflow-content-app.md#approve-reject-or-cancel-pending-workflow-tasks). -* View change description and track differences across pending and completed workflows. -* View the group responsible for approving the pending workflow. -* View pending language variant(s) workflow. -* View the workflow activity (eg. pending approval/task approvals/rejects) for the current workflow process. - -![Active Workflow sub-section](../../../10/umbraco-workflow/getting-started/images/Active-Workflow-detailed-info.png) - -You can access Active Workflows from two places - the **Content** section and the **Workflow** section (depending on your user permission). Workflow Administrators (those users with access to the Workflow section) can access workflows assigned to a different group. In the **Workflow History**, these are noted as being performed by the admin. - -### Approve, Reject, or Cancel pending workflow tasks - -#### Approve Workflow Tasks - -To approve a Workflow task, click on the **Approve** button in the Action section. - -#### Reject Workflow Tasks - -To reject a Workflow task, click on the **Reject** button in the Action section. Depending on the approval stage, the reviewer can decide where to send the rejected task. - -For first-stage approvals, the rejected task is sent back to the original editor/author. For second-stage approvals and above, the reviewer can send the rejected task either to the original editor or any other previous workflow group. - -![Reject Workflow Tasks](../../../10/umbraco-workflow/getting-started/images/assign-rejected-task.png) - -#### Cancel pending Workflow Tasks - -To cancel a pending Workflow task, click on the **Cancel** button in the Action section. - -## Configuration - -The Configuration sub-section provides an interface for configuring the content approval flow for the current node. It also displays any Inherited or Document type approval flows applied to the current content node. - -In multi-lingual sites, each variant can have its own approval flow. By default, new variants inherit the configuration set on the default language. - -For example, German variants can be approved by the German speakers group, while English variants are approved by the English speakers group. - -![Configuration sub-section](../../../10/umbraco-workflow/getting-started/images/Configuration-sub-section.png) - -### Content Approval Flow - -You can add different groups for different stages of content approval flow. Content Approval flow groups can be reordered via drag and drop. You can also apply the approval flow either for publish and unpublish workflow or only publish workflow. - -![Content approval flow](../../../10/umbraco-workflow/getting-started/images/content-approval-flow.gif) - -#### Approval Flow Types - -Approval Flows are available in three types: Content approval flow, Inherited approval flow, and Document type approval flow. - -A given content node may have all three approval flow types applied but only one will be applied as per the following order of priority: - -* **Content approval flow:** set directly on a content node via the **Configuration** section in the **Workflow** tab . This type will take priority over all others. -* **Document type approval flow:** set in the **Settings** section. This approval flow will apply to all content nodes of the selected Document Type unless the node has a Content approval flow set. This feature requires a license. -* **Inherited approval flow:** if a node has no Content approval flow set, nor a flow applied to its Document Type, Umbraco Workflow will traverse the content tree until it finds a node with a Content approval flow and will use this flow for the current change. - -![Approval Flow Types](../../../10/umbraco-workflow/getting-started/images/approval-flow-types.png) - -Review the current responsibilities for Approval Groups in the **Roles** tab of the **Approval Groups** section for **Node-based approvals** and **Document type approvals** only. For more information see the [Roles](../workflow-section/approval-groups.md#roles) section in the [Approval Groups](../workflow-section/approval-groups.md) article. - -![Approval Groups Roles](../../../10/umbraco-workflow/getting-started/images/approval-groups-roles.png) - -Document type approval flows can also include conditional stages i.e., only include **Translators** in the workflow when the **Description** property has changed. For more information on settings conditions in Document type approval flows, see the [Document type approval flows](../workflow-section/workflow-settings.md#document-type-approval-flows) section in the [Workflow Settings](../workflow-section/workflow-settings.md) article. - -Configuration cannot be modified when a content node is in a workflow process. - -#### Content reviews - -Content reviews is a tool that allows content editors to keep their content up-to-date. For more information, see the [Content reviews](../workflow-section/content-reviews.md) section. - -## History - -The History sub-section provides a chronological audit trail of workflow activity for the current node. It displays a table containing the following information: - -* Type of Publish. -* Who the workflow is requested by. -* The date the workflow was requested. -* Comments. -* Status of the workflow. - -![History sub-section](../../../10/umbraco-workflow/getting-started/images/History-sub-section.png) - -You can also **Filter** the records based on the information listed above. Additionally, you can adjust the total number of records displayed on a page. - -The **Detail** button at the end of the record displays an overlay with content similar to the Active workflow sub-section. - -![Details overlay](../../../10/umbraco-workflow/getting-started/images/Workflow-Content-app-Details-overlay.png) diff --git a/14/umbraco-workflow/release-notes.md b/14/umbraco-workflow/release-notes.md index 8ef8bf16ed1..61b7e74037f 100644 --- a/14/umbraco-workflow/release-notes.md +++ b/14/umbraco-workflow/release-notes.md @@ -17,6 +17,10 @@ Check the [Version Specific Upgrade Notes](upgrading/version-specific.md) articl This section contains the release notes for Umbraco Workflow 13 including all changes for this version. +### [13.0.7](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F13.0.4) (May 10 2024) + +* Fixes an issue where Content Review notification emails failed to send due to attempting to access UmbracoContext in a hosted service [#57](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/57) + ### [13.0.6] (April 23rd 2024) * Fixes an issue where SQL query generation exposed a potential injection vector. diff --git a/14/umbraco-workflow/upgrading/version-specific.md b/14/umbraco-workflow/upgrading/version-specific.md index b2ef5bff3bb..be78b77f125 100644 --- a/14/umbraco-workflow/upgrading/version-specific.md +++ b/14/umbraco-workflow/upgrading/version-specific.md @@ -5,7 +5,7 @@ description: >- # Version Specific Upgrade Notes -This page covers specific upgrade documentation for when migrating to major 13 of Umbraco Workflow. +This page covers specific upgrade documentation for when migrating to Umbraco Workflow version 14. {% hint style="info" %} If you are upgrading to a new minor or patch version, you can find information about the breaking changes in the [Release Notes](../release-notes.md) article. @@ -13,21 +13,29 @@ If you are upgrading to a new minor or patch version, you can find information a ## Version Specific Upgrade Notes History -Version 13 of Umbraco Workflow has a minimum dependency on Umbraco CMS core of `13.0.0`. It runs on .NET 8. +Version 14 of Umbraco Workflow has a minimum dependency on Umbraco CMS core of `14.0.0`. It runs on .NET 8. #### **Breaking changes** -Version 13 is primarily a dependency update, but does remove some properties previously marked obsolete. These are not typical extension or integration points, and are listed below for reference. +Version 14 contains a number of breaking changes, primarily due to the new backoffice introduced in Umbraco 14. The details are listed here: + +#### **Behaviour** + +* A new management API has been introduced at `umbraco/workflow/management/api` + +#### **Dependencies + +* Umbraco CMS dependency was updated to `14.0.0` #### **Code** -* Removed the `Type` property from `ConfigModel` -* Removed the `Type` property from `UserGroupPermissionsPoco` -* Removed the `ScheduledDate` property from `HtmlEmailModel`. `ReleaseDate` or `ExpireDate` properties should be used instead. -* Removed the `ScheduledDate` property from `InstanceDetailViewModel`. `ReleaseDate` or `ExpireDate` properties should be used instead. -* Removed the `ScheduledDate` property from `WorkflowInstanceViewModel`. `ReleaseDate` or `ExpireDate` properties should be used instead. -* Removed the `ScheduledDate` property from `WorkflowTaskViewModel`. `ReleaseDate` or `ExpireDate` properties should be used instead. -* Removed the `SetDueDate()` method from `ContentReviewConfigPoco`. The implementation accepting the `ContentSettingsReviewModel` parameter should be used instead. +Workflow 14 includes a non-trivial number of breaking code changes, primarily related to namespace changes. The majority of these related to removing the `Implement` namespace for services, and moving appropriate models to `Umbraco.Workflow.Core.ViewModels` or `Umbraco.Workflow.Core.Interfaces`. + +* The serialization library has been changed from `Newtonsoft.Json` to `System.Text.Json`. +* Approval group identifiers changes from int to Guid. +* Workflow instance author identifier changes from int to Guid. +* Workflow task indentifiers for approving user, assigned user and actioning user change from int to Guid. +* Services return `Attempt` or `Attempt`, in line with similar changes in the CMS. ## Legacy version specific upgrade notes From 329d9d5425b68f00bca8a34a99b5f972b33576de Mon Sep 17 00:00:00 2001 From: Nathan Woulfe Date: Thu, 30 May 2024 14:58:39 +1000 Subject: [PATCH 2/2] v14 release notes --- 14/umbraco-workflow/release-notes.md | 43 ++-------------------------- 1 file changed, 3 insertions(+), 40 deletions(-) diff --git a/14/umbraco-workflow/release-notes.md b/14/umbraco-workflow/release-notes.md index 61b7e74037f..30c37854c3f 100644 --- a/14/umbraco-workflow/release-notes.md +++ b/14/umbraco-workflow/release-notes.md @@ -15,49 +15,12 @@ Check the [Version Specific Upgrade Notes](upgrading/version-specific.md) articl ## Release History -This section contains the release notes for Umbraco Workflow 13 including all changes for this version. +This section contains the release notes for Umbraco Workflow 14 including all changes for this version. -### [13.0.7](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F13.0.4) (May 10 2024) +### [14.0.0](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F14.0.0) (May 30 2024) -* Fixes an issue where Content Review notification emails failed to send due to attempting to access UmbracoContext in a hosted service [#57](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/57) - -### [13.0.6] (April 23rd 2024) - -* Fixes an issue where SQL query generation exposed a potential injection vector. - -### [13.0.5](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F13.0.4) (March 13th 2024) - -* Make dashboard, content app, and section registration classes public [#56](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/56) -* Fixes discrepancy between a JSON property attribute value and property name in WorkflowTaskCollectionViewModel, which resulted in unexpected JSON values. - -### [13.0.4] - -* Incorrectly tagged and released as 13.0.5 🤦 - -### [13.0.3](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F13.0.3) (February 28th 2024) - -* Fixes issue where invariant workflows on variant content would publish previously published, but currently unpublished, variants [#52](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/52). -* Fixes issue where split-view allowed publishing content without using Workflow [#53](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/53). - -The above fixes introduce an updated UI for requesting workflow approvals. For more information, see the [Submitting Content for Approval](./getting-started/submitting-changes.md) article. - -### [13.0.2](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F13.0.2) (January 17th 2024) - -* Fixes bug where workflow submission was not respecting user's language access permissions -* Fixes bug where approval groups were not populated for new nodes using the new-node approval workflow [#51](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/51) - -### [13.0.1](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F13.0.1) (December 20th 2023) - -* Updates internal license validation to handle licenses registered with 'UmbracoWorkflow' or 'Umbraco.Workflow' - -### [13.0.0](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F13.0.0) (December 14th 2023) - -* Compatibility with Umbraco 13 +* Compatibility with Umbraco 14 * For full details of breaking changes refer to the [Version Specific Upgrade Notes](upgrading/version-specific.md) -* **FEATURE** => Advanced Search dashboard. Refer to [Advanced Search dashboard](advanced-search/advanced-search-dashboard.md) for more details. -* Update to use package migrations to avoid startup exception when Workflow is installed as part of a new Umbraco installation [#48](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/48) -* Fixed issue with scheduled workflows on invariant content [#49](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/49) -* Introduces lazy constructor parameters to prevent database access when Workflow is installed as part of a new Umbraco install ## Legacy release notes