[PUBLISHING-39] Former multisite-publishing behavior is not implemented: Publishing specific websites to dedicated public instances Created: 05/Feb/18  Updated: 29/Mar/22  Resolved: 21/Aug/18

Status: Closed
Project: Publishing
Component/s: None
Affects Version/s: 1.0, 1.0.1
Fix Version/s: 1.0.6

Type: Bug Priority: High
Reporter: Christian Ringele Assignee: Milan Divilek
Resolution: Fixed Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Publishing-to-intranet-and-extranet.png     JPEG File Two_Receivers_01.jpg    
Issue Links:
Relates
causality
is causing DOCU-1653 Update publishing pages and explain i... Open
dependency
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Release notes required:
Yes
Documentation update required:
Yes
Date of First Response:
Epic Link: Support
Sprint: Kromeriz 159
Story Points: 5
Team: Nucleus

 Description   

Description

The new publishing implementation has introduced two new behaviors/configurations:

  • All workspaces are automatically included into publishing process if not excluded explicit (receivers config):
    -> opposite behavior on former subscribers/activation
  • A new property was introduced on the receiver's workspace configuration: 'excluded'
    -> allows to define excluding workspaces (or inner parts) for publication. This is needed as now all workspaces are automatically included.

Problem

Major:
The receiver's workspace configuration has new a combination of the 'excluded' property and the 'fromPath'&'toPath' properties. This combination leads to four possible combinations and therefore four possible behaviours, but one of them is not implemented:
The possibility to define a path within the workspace that should be published, but only that path -> the former subscriptions behavior of the subscribers.

Minor:
One can activate nodes of excluded workspaces, correctly they are ignored being pushed to the public instances because they are defined as being excluded. But:

  • They should not be publish-able
  • The activation status is set to green even to node is (correctly) not sent/transferred.

A more detailed explanation and analysis of both bugs is added in this description in the chapter 'Analysis'.

Use Cases

Common use cases using multi site, comparable to the setup on the diagram:
 

Description of two generic use cases:

  • Simple use case:
    • two websites exists:
      'website-A' & 'website-B'
    • each website has one public instance: 
      'public-instance-for-website-A' & 'public-instance-for-website-B'
    • Goal:
      website-A -> public-instance(s)-for-website-A
      wesbite-B -> public-instance(s)-for-website-B
      Activating a page in website-A will be sent only to public server public-instance-A, and only there!
      Activating a page in website-B will be sent only to public server public-instance-B, and only there!
                    
  • More complex, but quite common use case: 
    • For some specific websites exist dedicated public instance(s).
    • For all the other existing websites exist general public instance(s).
    • Goal:
      website-A -> public-instance(s)-for-website-A
      wesbite-B -> public-instance(s)-for-website-B
      website-C -> general-public-instance(s)-for-all-other-websites
      website-D -> general-public-instance(s)-for-all-other-websites
      any-new-toplevel-pages-or-websites -> general-public-instance(s)-for-all-other-websites

 

Analysis 

Situation 1: Publish everything of a workspace

The configuration:

concreteReceiver
     workspaces (empty/no 'website' configuration)

-> does automatically (default) behave like:
concreteReceiver
     workspaces
            website
                    enabled=true
                    excluded=false
                    workspace=website
                    fromPath=/
                    toPath=/
=> should behave as: push EVERYTHING of the 'website' workspace.

Test result:

Correct: Currently the system behaves this way.

Situation 2: Publishing only a specific path/website 

The configuration:

concreteReceiver
   workspaces
            website
                  enabled=true
                  excluded=false
                  workspace=website
                  fromPath=/specificPath
                  toPath=/specificPath
=> should behave as: push ONLY the '/specificPath' path of the 'website' workspace, ignore the rest.

Test result:

Bug Major: The system currently does NOT behave this way. Everything of the whole workspace is published -> the system behaves as if 'fromPath & toPath' were set to '/'.

Situation 3: Exclude a complete workspace

The configuration:

concreteReceiver
      workspaces
            website
                  enabled=true
                  excluded=true
                  workspace=website
                  fromPath=/
                  toPath=/
=> should behave as: push NOTHING from the 'website' workspace.

Test result:

Currently the system behaves this way. No content is pushed, the workspace is excluded.

Minor Bug
Even there is no public instance configured to receive content, one can push the 'publish' Action and the activation status is set to green. -> this is very confusing, because green activation status indicates that the page exists on some public instance.

Also a workflow is triggered (when not using direct publishing) where the approver has no chance of knowing that hte content itself will not be sent to any public instance.

Suggested behavior:
The 'publish Action' is not clickable if non of the receivers has this path as a matching configuration.
When there is no public instance meant to send it to, the publish Action should also not be clickable.
Best would be if it were clickable, but a pop up message informs why publication is not possible.

Situation 4: Publish a workspace EXCEPT one path/website

The configuration:

concreteReceiver
      workspaces
            website
                  enabled=true
                  excluded=true
                  workspace=website
                  fromPath=/specificPath
                  toPath=/specificPath
=> should behave as: push EVERYTHING from the 'website' workspace EXCEPT the '/specificPath' path.

Test result:

Correct: Currently the system behaves this way.

Minor Bug:
The same minor bug as described in 'Situation 3' counts also here. The '/specificPath' can be published and becomes green. 

 



 Comments   
Comment by Christian Ringele [ 03/Apr/18 ]

mdrapela Form my testing I can tell you following:

"The true setting [for \{{excluded}}] excludes the configured fromPath from publication. This property allows you to define exceptions such as "Publish everything in the website workspace except the about node and everything under it." -> this is true, BUT:

If setting excluded=false then the whole configuration is ignored and treated as you would set enabled=false.

So one case is not defined, and the system does not react to it, and to be honest I have no clue what this situation should be:

  • all workspaces are included by default
  • a workspace configuration is added with enabled=true und excluded=false => this configuration is ignored and treaded as not being existent at all

Or in other words:
What should be the difference between 1. & 2.:

  1. excluded=false
  2. excluded=true && fromURI=/ && toURI=/

The whole property excluded doesn't make any sense to me and form the tested behavior.

Comment by Christian Ringele [ 02/Aug/18 ]

Yesterday I had another thought about the possible configuration (related to my last comment).

I think this would be the most clear, easy to understand and most natural configuration and its behavior: 

Publish everything of a workspace

The configuration:

concreteReceiver
     workspaces (empty/no 'website' configuration)

-> does automatically behave like:
concreteReceiver
     workspaces
            website
                    enabled=true
                    excluded=false
                    workspace=website
                    fromPath=/
                    toPath=/
=> should behave as: push EVERYTHING of the 'website' workspace.

Test result:

Correct: Currently the system behaves this way.

Publishing only a specific path/website 

The configuration:

concreteReceiver
   workspaces
            website
                  enabled=true
                  excluded=false
                  workspace=website
                  fromPath=/specificPath
                  toPath=/specificPath
=> should behave as: push ONLY the '/specificPath' path of the 'website' workspace, ignore the rest.

Test result:

Bug: The system currently does NOT behave this way

Exclude a complete workspace

The configuration:

concreteReceiver
      workspaces
            website
                  enabled=true
                  excluded=true
                  workspace=website
                  fromPath=/
                  toPath=/
=> should behave as: push NOTHING from the 'website' workspace.

Test result:

Currently the system behaves this way.

Bug found on publication status and publication Action behavior:
Even there is no public instance configured to receive content, one can push the publish Action and the activation status is set to green. -> this is very confusing, because green activation status indicates that the page exists on the public instance.

Workflow activation (Pages App):

Direct activation (JCR App):

  • Publishing: Behaves as described above
  • Un-Publish

Suggested behavior: The 'publish Action' is not clickable

Publish a workspace EXCEPT one path/website

The configuration:

concreteReceiver
      workspaces
            website
                  enabled=true
                  excluded=true
                  workspace=website
                  fromPath=/specificPath
                  toPath=/specificPath
=> should behave as: push EVERYTHING from the 'website' workspace EXCEPT the '/specificPath' path.

Test result:

Correct: Currently the system behaves this way.

Comment by Rajeev Singh [ 02/Aug/18 ]

Hi Christian,

Your most recent comment makes it a little bit easier. So, does the configs/properties work as you mentioned above or it is a proposal ?? Plz, comment.

I must say this new property excluded is actually very confusing.
I have around 20 sites and 18 diff fronts plus few custom work-spaces, and to find a combination like before(with activation) is very confusing and difficult.

Regards,
Rajeev

Comment by Christian Ringele [ 03/Aug/18 ]

Hi rajeevsingh

I have just updated my comment above.
Is it now more clear?

Regards,
Christian

Comment by Rajeev Singh [ 03/Aug/18 ]

Hello Christian,

most of the combinations work for me and thanks for the update.
But somehow it seems combination I did for 'Publishing only a specific path/website' is not working, its always pushing everything.
I am still testing to be sure.

Reagards

Comment by Rajeev Singh [ 03/Aug/18 ]

Ahhh, I see your updates, you have marked it as bug in comments. Let me know if you find solution for that.

Thanks in advance.

Regards,
Rajeev

Comment by Christian Ringele [ 05/Aug/18 ]

Hi rajeevsingh,

I have updated the ticket description and added all the information there, also the details of my last comment.

Because we have seen that you, as a SLA3 customer has a problem with this bug, we now treat this ticket as it had an attached SLA3 support ticket in its priority of the back log. We will keep you informed if there is any change.

Regards,

Christian

Comment by Rajeev Singh [ 06/Aug/18 ]

Hi Christian,

Thank you for the updates on ticket info and example in comments. Example with 4 use cases makes it very clear.
I am in process of doing mgnl migration from 5.4.x to 5.6.7, and that’s where I got stuck at the issue.
I was about to raise a support ticket but I found this relevant one.

With this new concept we have to do lot of configurations mainly negate ones to exclude. But it is achievable.
I am just facing issues with ‘Situation 2: Publishing only a specific path/website’ which is now already a known bug.

Just to add, my use case is, from assets workspace I used to publish specific content to some fronts(4 receivers) and whole assets from root to another set of receivers.
Now, with or without this config of ‘Situation 2’ system is publishing everything and eventually complains due to ‘parent node not activated etc’, as that content was never published on initial 4 excluded receivers.
Which forces me to copy unwanted part of content on those 4 receivers just to avoid this issue.

I hope to have this fixed soon.

Regards,
Rajeev

Comment by Rajeev Singh [ 07/Aug/18 ]

Hi Christian;

Should I be raising a separate support ticket or this(PUBLISHING-39) is good enough to get the fix.

Regards,
Rajeev

Comment by Jan Haderka [ 17/Aug/18 ]

regarding

Minor:
One can activate nodes of excluded workspaces, correctly they are ignored being pushed to the public instances because they are defined as being excluded. But:
They should not be publish-able
The activation status is set to green even to node is (correctly) not sent/transferred.

This behaviour is consistent with previous implementation and will not be changed in bug fix ticket. If we are implementing this change, it would be feature request.

Comment by Milan Divilek [ 01/Oct/18 ]

Release notes: Receive can be configured to publish only certain path(s) of the workspace. Set WorkspaceDefinition properties fromPath / toPath to /specificPath, workspace property to website and property excluded to false in receiver configuration. This receiver will publish only the /specificPath path of the website workspace and ignore the rest.

Generated at Mon Feb 12 10:34:49 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.