<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 10:02:24 CET 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Magnolia - Issue tracker</title>
    <link>https://jira.magnolia-cms.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-uk</language>    <build-info>
        <version>9.4.2</version>
        <build-number>940002</build-number>
        <build-date>19-01-2023</build-date>
    </build-info>


<item>
            <title>[MGNLHOOK-242] Use Webhooks on SaaS with JCR or Norsu</title>
                <link>https://jira.magnolia-cms.com/browse/MGNLHOOK-242</link>
                <project id="17487" key="MGNLHOOK">Magnolia Webhooks</project>
                    <description>&lt;p&gt;As a developer I would like to use Webhooks on SaaS whether I am using JCR or Norsu content.&lt;/p&gt;

&lt;p&gt;Investigate how much effort it will be to support webhooks on SaaS with both JCR and Norsu (rather then only Norsu) For example, possibly with a &quot;feature flag&quot;&lt;/p&gt;

&lt;p&gt;PM will make a decision about whether we do this based on the effort and the customer demand.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;This ticket work will be included with &lt;a href=&quot;https://jira.magnolia-cms.com/browse/MGNLHOOK-269&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://jira.magnolia-cms.com/browse/MGNLHOOK-269&lt;/a&gt; ticket work.&lt;/p&gt;</description>
                <environment></environment>
        <key id="120238">MGNLHOOK-242</key>
            <summary>Use Webhooks on SaaS with JCR or Norsu</summary>
                <type id="14" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10895&amp;avatarType=issuetype">Story</type>
                                            <priority id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/priorities/neutral.gif">Neutral</priority>
                        <status id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="jbenito">Javier Benito</assignee>
                                    <reporter username="czimmermann">Christopher Zimmermann</reporter>
                        <labels>
                    </labels>
                <created>Mon, 10 Oct 2022 16:47:09 +0200</created>
                <updated>Wed, 2 Nov 2022 04:37:46 +0100</updated>
                            <resolved>Wed, 2 Nov 2022 04:37:46 +0100</resolved>
                                                    <fixVersion>2.0.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                    <progress percentage="100">
                                    <originalProgress>
                                                    <row percentage="0" backgroundColor="#89afd7"/>
                                                    <row percentage="100" backgroundColor="transparent"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="100" backgroundColor="#51a825"/>
                                                    <row percentage="0" backgroundColor="#ec8e00"/>
                                            </currentProgress>
                            </progress>
                                    <aggregateprogress percentage="100">
                                    <originalProgress>
                                                    <row percentage="0" backgroundColor="#89afd7"/>
                                                    <row percentage="100" backgroundColor="transparent"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="100" backgroundColor="#51a825"/>
                                                    <row percentage="0" backgroundColor="#ec8e00"/>
                                            </currentProgress>
                            </aggregateprogress>
                                                    <timespent seconds="5400">1.5h</timespent>
                                                                    <aggregatetimespent seconds="5400">1.5h</aggregatetimespent>
                                    <comments>
                            <comment id="326167" author="JIRAUSER22310" created="Tue, 11 Oct 2022 16:36:25 +0200"  >&lt;p&gt;After taking a look at it, we have at least these two options:&lt;br/&gt;
1. Just use both dependencies on SaaS cloud at the same time (jcr and norsu).&lt;br/&gt;
2. Also, create a feature flag to enable or disable jcr or norsu for a given subscription ID at runtime.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Option1.&quot;&gt;&lt;/a&gt;Option 1.&lt;/h3&gt;

&lt;p&gt;&#160;&lt;br/&gt;
We can declare both dependencies in cloud webapp &lt;b&gt;pom.xml&lt;/b&gt; file. It&apos;ll be built to support detecting events (Published, Unpublished) for both types of content. A proof of concept that tests it:&#160;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://git.magnolia-cms.com/projects/CLOUD/repos/magnolia-cloud/commits?until=refs%2Fheads%2FMGNLHOOK-181-proxy-on-SaaS-for-restClient-branch-for-testing&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Branch&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://jenkins.sre.magnolia-cloud.com/job/cloud/job/magnolia-cloud-webapp/job/MGNLHOOK-181-proxy-on-SaaS-for-restClient-branch-for-testing/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Jenkins build&lt;/a&gt; to deploy image on Staging.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&#160;&lt;br/&gt;
If the image built by Jenkins for that branch is deployed on Staging, it works detecting events with both types of content.&lt;br/&gt;
&#160;&lt;br/&gt;
&lt;b&gt;Story points: 2 at most.&lt;/b&gt;&lt;br/&gt;
&#160;&lt;br/&gt;
It seems to be enough with Option 1, but first we need to check if we&apos;re allowed to keep jcr dependency for webhooks on cloud webapp.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Option2.&quot;&gt;&lt;/a&gt;Option 2.&lt;/h3&gt;

&lt;p&gt;&#160;&lt;br/&gt;
This option relies on Option 1, but also adds the ability to dynamically configure by subscription, which content is expected to be managed on it (related to webhooks).&lt;br/&gt;
In this case, we&apos;d implement a feature flag to dynamically add the target command detection (jcr, norsu or both) on instance startup, by subscription.&lt;br/&gt;
&lt;a href=&quot;https://git.magnolia-cms.com/projects/SRE-PLATFORM/repos/feature-toggles/browse&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Feature toggles&lt;/a&gt; in this case must be used.&lt;br/&gt;
&#160;&lt;br/&gt;
Usage examples:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://docs.google.com/presentation/d/1wvPNbak1XL6Sc00V1t6Ue2hzTTyZX23e/edit#slide=id.p16&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Feature toggles slides&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://git.magnolia-cms.com/projects/CLOUD/repos/subscription-operator/commits/8363cb797a1971ca20ffa907beca75345f261e4a#src/main/java/info/magnolia/cloud/operations/adapters/config/FeatureTogglesConfiguration.java&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Subscription operator&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&#160;&lt;br/&gt;
Having two feature toggles for example for &lt;b&gt;webhooksContentJcr&lt;/b&gt; and &lt;b&gt;webhooksContentNorsu&lt;/b&gt;, we could check if we want to add (or remove) the detection:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://git.magnolia-cms.com/projects/ENTERPRISE/repos/webhooks/browse/magnolia-webhooks-events-jcr/src/main/java/info/magnolia/webhooks/setup/WebhooksEventsJcrVersionHandler.java#35&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;In jcr webhooks submodule&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://git.magnolia-cms.com/projects/ENTERPRISE/repos/webhooks/browse/magnolia-webhooks-events-norsu/src/main/java/info/magnolia/webhooks/events/ContentEventConsumer.java&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Dynamically add the EventConsumer (for Norsu)&lt;/a&gt;, instead of wiring it on &lt;b&gt;magnolia-webhooks-events-norsu.xml.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&#160;&lt;br/&gt;
This would give us the ability to know what customers are currently using webhooks on jcr or norsu, in order to eliminate/migrate jcr from SaaS in the future.&lt;br/&gt;
&#160;&lt;br/&gt;
&lt;b&gt;Story points: 5.&lt;/b&gt;&lt;/p&gt;</comment>
                            <comment id="326171" author="czimmermann" created="Tue, 11 Oct 2022 16:56:55 +0200"  >&lt;p&gt;Option 1 looks good to me. What do you think &lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=jsimak&quot; class=&quot;user-hover&quot; rel=&quot;jsimak&quot;&gt;jsimak&lt;/a&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="327289" author="JIRAUSER22310" created="Wed, 19 Oct 2022 16:07:05 +0200"  >&lt;p&gt;FTR, we&apos;ve agreed to go with Option 1.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10022">
                    <name>supersession</name>
                                                                <inwardlinks description="is superseded by">
                                        <issuelink>
            <issuekey id="121155">MGNLHOOK-269</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                            <subtask id="120239">MGNLHOOK-243</subtask>
                            <subtask id="120240">MGNLHOOK-244</subtask>
                            <subtask id="120241">MGNLHOOK-245</subtask>
                            <subtask id="120242">MGNLHOOK-246</subtask>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_14166" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Acceptance criteria</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                                    <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge aui-lozenge-complete" style="font-size: 12px; font-weight: normal; display: flex; flex-direction: row; align-items: center;" ><span style="padding-right: 4px; vertical-align: middle;"><svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="white"><path clip-rule="evenodd" d="m10.41037,3.42544l-7.86501,0c-0.72395,0 -1.31084,0.58688 -1.31084,1.31084l0,7.86508c0,0.7239 0.58689,1.3108 1.31084,1.3108l7.86501,0c0.724,0 1.3109,-0.5869 1.3109,-1.3108l0,-7.86508c0,-0.72396 -0.5869,-1.31084 -1.3109,-1.31084zm-7.86501,-0.65542c-1.08593,0 -1.96626,0.88032 -1.96626,1.96626l0,7.86508c0,1.0859 0.88033,1.9662 1.96626,1.9662l7.86501,0c1.086,0 1.9663,-0.8803 1.9663,-1.9662l0,-7.86508c0,-1.08594 -0.8803,-1.96626 -1.9663,-1.96626l-7.86501,0z" fill-rule="evenodd"/><path d="m5.09049,10.18526l-1.82767,-1.82766l-0.78479,0.78479l2.61246,2.61246l5.38758,-5.38754l-0.78483,-0.78479l-4.60275,4.60274z"/></svg></span><span>Empty</span></span></div>
                        ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10111" key="com.atlassian.jira.toolkit:reporterdomain">
                        <customfieldname>Company</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>magnolia-cms.com</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10031" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 11 Oct 2022 16:36:25 +0200</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_12730" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_14151" key="com.atlassian.jira.toolkit:message">
                        <customfieldname>Docu info</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10246" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>MGNLHOOK-10</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10061" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comm is not jira-dev</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10071" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last participant</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>chuong.doan</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 year, 16 weeks, 4 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10020" key="com.atlassian.jira.toolkit:attachments">
                        <customfieldname>Number of attachments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10150" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname>Number of comments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>czimmermann</customfieldvalue>
            <customfieldvalue>jbenito</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|y07uei:zi</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10244" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10245" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1716">DevX 22</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10242" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_12430" key="com.atlassian.teams:rm-teams-custom-field-team">
                        <customfieldname>Team</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[26]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_14145" key="com.intenso.jira.issue-templates:issue-templates-customfield">
                        <customfieldname>Template</customfieldname>
                        <customfieldvalues>
                            

    <customfieldvalue>PD Sub-Task Automation</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_15131" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Time in Discovery</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>47</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10032" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_13933" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Urgency (resolution)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="15724"><![CDATA[Normal]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>