<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 10:52:37 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>[MGNLSSO-265] Possibility to implement custom SsoConfig</title>
                <link>https://jira.magnolia-cms.com/browse/MGNLSSO-265</link>
                <project id="15486" key="MGNLSSO">Single Sign On</project>
                    <description>&lt;p&gt;The default ssoConfig is defined in the config yaml. This has 2 main issues:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;unencrypted secrets (event with your suggested env variables on build process solution, the war file contains the secret in plain text).&lt;/li&gt;
	&lt;li&gt;Environment specific client configuration&lt;/li&gt;
&lt;/ol&gt;


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

&lt;p&gt;The possibility to define a custom SsoConfig implementation would enable us to load the config from wherever we like (e.g. magnolia properties, jcr, ...)&lt;/p&gt;

&lt;p&gt;Currently this can only be achieved by a hack:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.config.source.yaml.YamlReader;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.map2bean.Map2BeanTransformer;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.module.ModuleRegistry;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.resourceloader.ResourceOrigin;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.sso.config.SsoConfig;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.sso.config.SsoConfigYamlBridge;

&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; javax.inject.Inject;

&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;CustomSsoConfigBridge &lt;span class=&quot;code-keyword&quot;&gt;extends&lt;/span&gt; SsoConfigYamlBridge {
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; CustomSsoConfig ssoConfig;

    @Inject
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; GardenaSsoConfigBridge(
          &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; ModuleRegistry moduleRegistry,
          &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; ResourceOrigin resourceOrigin,
          &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; YamlReader yamlReader,
          &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; Map2BeanTransformer map2Bean,
          &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; CustomSsoConfig ssoConfig) {
       &lt;span class=&quot;code-keyword&quot;&gt;super&lt;/span&gt;(moduleRegistry, resourceOrigin, yamlReader, map2Bean);
       &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.ssoConfig = ssoConfig;
    }

    @Override
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; SsoConfig get() {
       &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; ssoConfig;
    }
} &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.sso.config.SsoConfig;

&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;CustomSsoConfig &lt;span class=&quot;code-keyword&quot;&gt;implements&lt;/span&gt; SsoConfig {
    ...
} &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Binding in module.xml&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
&amp;lt;component&amp;gt;
    &amp;lt;type&amp;gt;info.magnolia.sso.config.SsoConfigYamlBridge&amp;lt;/type&amp;gt;
    &amp;lt;implementation&amp;gt;...CustomSsoConfigBridge&amp;lt;/implementation&amp;gt;
&amp;lt;/component&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Binding the SsoConfig directly would be the cleaner solution and less dependent on the further development of this module (breaking change in case the Bridge ever gets removed/changed).&lt;/p&gt;</description>
                <environment></environment>
        <key id="131591">MGNLSSO-265</key>
            <summary>Possibility to implement custom SsoConfig</summary>
                <type id="4" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10890&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.magnolia-cms.com/images/icons/priorities/major.svg">Major</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="efochr">Evzen Fochr</assignee>
                                    <reporter username="beschle">Bj&#246;rn Eschle</reporter>
                        <labels>
                    </labels>
                <created>Tue, 18 Apr 2023 10:43:26 +0200</created>
                <updated>Fri, 20 Oct 2023 07:29:17 +0200</updated>
                            <resolved>Tue, 13 Jun 2023 09:56:46 +0200</resolved>
                                                    <fixVersion>saas</fixVersion>
                    <fixVersion>3.1.5</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</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="73800">2d 4.5h</timespent>
                                <comments>
                            <comment id="358367" author="mgeljic" created="Wed, 24 May 2023 11:40:31 +0200"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=beschle&quot; class=&quot;user-hover&quot; rel=&quot;beschle&quot;&gt;beschle&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;On secrets in plain-text first:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;in SSO 2.x, config was provided as a YAML decorator. The &lt;tt&gt;!env&lt;/tt&gt; directive was not supported there. The docs mentioned a workaround to use a template file, and post-process it with the &lt;tt&gt;envsubst&lt;/tt&gt; command, resulting in secrets stored in plain text, as you noted.&lt;/li&gt;
	&lt;li&gt;in SSO 3.x (since 3.0.1 actually), we now load config through a specific &quot;yaml bridge&quot;, and we &lt;em&gt;do&lt;/em&gt; support the &lt;tt&gt;!env&lt;/tt&gt; directive there. So there shouldn&apos;t be any secrets in plain text anymore. We just realized that we forgot to update documentation for this. Let me file a ticket.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The other part about extending &lt;tt&gt;SsoConfig&lt;/tt&gt;: if I understand your use case correctly, there is a version check (if magnolia core = 6.2) that forces to use the YamlBridge, thus ignoring your &lt;tt&gt;CustomSsoConfig&lt;/tt&gt; class. We could probably implement a &quot;config selection logic&quot; with fallbacks for this, but first, do you still need your custom config in light of the above?&lt;/p&gt;

&lt;p&gt;Hope that helps!&lt;br/&gt;
-Mika&lt;/p&gt;</comment>
                            <comment id="358462" author="JIRAUSER21558" created="Thu, 25 May 2023 08:16:42 +0200"  >&lt;p&gt;Hey @Mika,&lt;/p&gt;

&lt;p&gt;thanks for your feedback. You mean this feature: &lt;a href=&quot;https://docs.magnolia-cms.com/product-docs/6.2/Administration/Architecture/Configuration-management.html#_environment_variables?&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://docs.magnolia-cms.com/product-docs/6.2/Administration/Architecture/Configuration-management.html#_environment_variables?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your docu (&lt;a href=&quot;https://docs.magnolia-cms.com/magnolia-sso/3.1.3/guides/hiding-the-client-credentials-from-the-configuration-file.html)&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://docs.magnolia-cms.com/magnolia-sso/3.1.3/guides/hiding-the-client-credentials-from-the-configuration-file.html)&lt;/a&gt; states:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Magnolia does support &lt;a href=&quot;https://docs.magnolia-cms.com/product-docs/6.2/Administration/Architecture/Configuration-management.html#_environment_variables&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;environment variables in YAML definitions&lt;/a&gt;, but, unfortunately, only for YAML definitions, not for YAML decorators, as is the case here.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;However, even with env variables supported, I think allowing the binding of custom SsoConfigs will improve flexibility a lot and should not be a big effort/change on your side (I&apos;ve attached a sample implementation - of gardena - so that you can get a glance on how we are currently using it).&lt;/p&gt;

&lt;p&gt;The issue with the bridge is not with magnolia versioning, but that we are (miss-)using it to bind our custom SsoConfig. This is working well right now, but if you ever decide to change/or remove the bridge, we&apos;ll have to adapt.&lt;/p&gt;

&lt;p&gt;One solution could be to inject a SsoConfigProvider instead of the SsoConfigYamlBridge in Pac4jConfigProvider and bind said provider to the DefaultSsoConfigProvider by default. This way we could simply change the binding to a custom SsoConfigProvider:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.cms.beans.config.ServerConfiguration;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.resourceloader.ResourceOrigin;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.sso.config.SsoConfig;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.sso.config.SsoConfigYamlBridge;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; org.slf4j.Logger;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; org.slf4j.LoggerFactory;

&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; javax.inject.Inject;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; java.util.HashSet;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; java.util.Set;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; java.util.function.Consumer;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; java.util.function.Supplier;

&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; info.magnolia.resourceloader.ResourceOriginChange.Type.ADDED;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; info.magnolia.resourceloader.ResourceOriginChange.Type.MODIFIED;

&lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;Pac4jConfigProvider {
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; ServerConfiguration serverConfiguration;
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; SsoConfigProvider ssoConfigProvider;
    
    @Inject
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; Pac4jConfigProvider(
          &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; ServerConfiguration serverConfiguration,
          &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; SsoConfigProvider ssoConfigProvider
    ) {
       &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.serverConfiguration = serverConfiguration;
       &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.ssoConfigProvider = ssoConfigProvider;
       ssoConfigProvider.registerSsoConfigChangedListener(ssoConfig -&amp;gt; 
          loadPac4jConfig()
       );
    }

    SsoConfig getSsoConfig() {
       &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; ssoConfigProvider.get();
    }
    
    ...
}

&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt; SsoConfigProvider {
    SsoConfig get();
    void registerSsoConfigChangedListener(Consumer&amp;lt;SsoConfig&amp;gt; listener);
    void unregisterSsoConfigChangedListener(Consumer&amp;lt;SsoConfig&amp;gt; listener);
}

&lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;DefaultSsoConfigProvider &lt;span class=&quot;code-keyword&quot;&gt;implements&lt;/span&gt; SsoConfigProvider {
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; Logger log = LoggerFactory.getLogger(DefaultSsoConfigProvider.class);
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; Set&amp;lt;Consumer&amp;lt;SsoConfig&amp;gt;&amp;gt; listeners = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; HashSet&amp;lt;&amp;gt;();
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; Supplier&amp;lt;SsoConfig&amp;gt; ssoConfigSupplier;
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; SsoConfig ssoConfig;

    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; DefaultSsoConfigProvider(
          &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; SsoConfig ssoMpConfig,
          &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; SsoConfigYamlBridge yamlBridge,
          &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; ResourceOrigin resourceOrigin
    ) {
       &lt;span class=&quot;code-comment&quot;&gt;// &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; we&apos;re on 6.2, disregard the injected SSO MicroProfile config, and load &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; from yaml/m2b instead
&lt;/span&gt;       &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.ssoConfigSupplier = yamlBridge.shouldLoadSsoConfigByYamlReader() ? yamlBridge : () -&amp;gt; ssoMpConfig;
       &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (yamlBridge.shouldLoadSsoConfigByYamlReader()) {
          log.info(&lt;span class=&quot;code-quote&quot;&gt;&quot;Monitoring SSO YAML configuration changes on {}&quot;&lt;/span&gt;, SsoConfigYamlBridge.SSO_YAML_CONFIG_PATH);
          resourceOrigin.registerResourceChangeHandler(change -&amp;gt; {
             &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; relatedResourcePath = change.getRelatedResourcePath();
             &lt;span class=&quot;code-object&quot;&gt;boolean&lt;/span&gt; isConfigFileModifiedOrAdded = MODIFIED.equals(change.getType()) || ADDED.equals(change.getType());
             &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (isConfigFileModifiedOrAdded &amp;amp;&amp;amp; relatedResourcePath.matches(SsoConfigYamlBridge.SSO_YAML_CONFIG_PATH)) {
                log.info(&lt;span class=&quot;code-quote&quot;&gt;&quot;Receive {} change on file {}, reload SSO config and Pac4j configuration...&quot;&lt;/span&gt;, change.getType(), relatedResourcePath);
                ssoConfig = ssoConfigSupplier.get();
                notifyListeners();
             }
          });
       }
    }

    @Override
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; SsoConfig get() {
       &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (ssoConfig == &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
          ssoConfig = ssoConfigSupplier.get();
       }
       &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; ssoConfig;
    }

    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; void notifyListeners() {
       listeners.forEach(listener -&amp;gt; listener.accept(get()));
    }
    
    @Override
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void registerSsoConfigChangedListener(Consumer&amp;lt;SsoConfig&amp;gt; listener) {
       listeners.add(listener);
    }

    @Override
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void unregisterSsoConfigChangedListener(Consumer&amp;lt;SsoConfig&amp;gt; listener) {
       listeners.remove(listener);
    }
} &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="359751" author="mgeljic" created="Fri, 2 Jun 2023 11:25:39 +0200"  >&lt;p&gt;Yes, understood,&lt;/p&gt;

&lt;p&gt;We&apos;re considering a similar refactoring to ensure SsoConfig binding can be overridden without having to care about the YamlBridge (nor MicroProfile config moving forward).&lt;/p&gt;</comment>
                            <comment id="361160" author="nguyen.phung" created="Mon, 12 Jun 2023 04:29:35 +0200"  >&lt;p&gt;Hey guys,&#160;&lt;/p&gt;

&lt;p&gt;FYI, the documentation has been updated: &lt;a href=&quot;https://docs.magnolia-cms.com/magnolia-sso/3.1.4/guides/hiding-the-client-credentials-from-the-configuration-file.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://docs.magnolia-cms.com/magnolia-sso/3.1.4/guides/hiding-the-client-credentials-from-the-configuration-file.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also the ticket is in final stage, will be released in SSO v3.1.5.&lt;/p&gt;

&lt;p&gt;Thanks for your contributions &lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=mgeljic&quot; class=&quot;user-hover&quot; rel=&quot;mgeljic&quot;&gt;mgeljic&lt;/a&gt;, &lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=beschle&quot; class=&quot;user-hover&quot; rel=&quot;beschle&quot;&gt;beschle&lt;/a&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="361697" author="JIRAUSER21558" created="Wed, 14 Jun 2023 13:48:08 +0200"  >&lt;p&gt;Thanks for the fast implementation! Works like a charm &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10360">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                        <issuelink>
            <issuekey id="140454">MGNLSSO-316</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10160">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="119352">MGNLSSO-184</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="133358">DOCU-2728</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="133919">MGNLSSO-291</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="134015">MGNLSSO-292</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="111768" name="GardenaSsoConfig.java" size="4268" author="beschle" created="Thu, 25 May 2023 07:49:17 +0200"/>
                    </attachments>
                <subtasks>
                    </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_14730" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Approved</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="17305"><![CDATA[Yes]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10111" key="com.atlassian.jira.toolkit:reporterdomain">
                        <customfieldname>Company</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>merkle.com</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10031" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 18 Apr 2023 12:18:07 +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>MGNLSSO-232</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>nguyen.phung</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            34 weeks, 4 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10020" key="com.atlassian.jira.toolkit:attachments">
                        <customfieldname>Number of attachments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10150" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname>Number of comments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>beschle</customfieldvalue>
            <customfieldvalue>efochr</customfieldvalue>
            <customfieldvalue>mgeljic</customfieldvalue>
            <customfieldvalue>nguyen.phung</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|y035to:</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_10220" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Release notes required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10490"><![CDATA[Yes]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_14168" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Task DoD</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                        
        <div style="margin-bottom: 8px;">
                            <div class="o-completion" style="display: flex; flex-shrink: 0;"><span title="Mandatory items are completed" class="aui-lozenge aui-lozenge-moved" 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" fill="black" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.44414 2.77002H2.54536C1.45943 2.77002 0.579102 3.65034 0.579102 4.73628V12.6013C0.579102 13.6873 1.45943 14.5676 2.54536 14.5676H10.4104C11.4963 14.5676 12.3767 13.6873 12.3767 12.6013V6.70259H11.7212V12.6013C11.7212 13.3253 11.1344 13.9122 10.4104 13.9122H2.54536C1.8214 13.9122 1.23452 13.3253 1.23452 12.6013V4.73628C1.23452 4.01232 1.8214 3.42544 2.54536 3.42544H8.44414V2.77002Z" /><path d="M5.09049 10.1853L3.26282 8.3576L2.47803 9.14239L5.09049 11.7549L10.478 6.36731L9.69323 5.58252L5.09049 10.1853Z" /><path d="M14.4013 4.06384L12.9712 3.18904L14.4013 2.31423C14.4259 2.29915 14.4435 2.27493 14.4503 2.24685C14.457 2.21876 14.4523 2.18915 14.4373 2.16455L14.0171 1.47762C13.9858 1.42635 13.9187 1.41019 13.8674 1.44154L12.5022 2.27667V0.676237C12.5022 0.61615 12.4535 0.567383 12.3934 0.567383H11.5883C11.5282 0.567383 11.4794 0.61615 11.4794 0.676237V2.27667L10.1142 1.44159C10.0628 1.41024 9.99587 1.42635 9.96452 1.47768L9.54429 2.16461C9.52927 2.18921 9.52459 2.21881 9.53134 2.2469C9.53809 2.27498 9.55572 2.2992 9.58032 2.31428L11.0105 3.18904L9.58032 4.06384C9.55572 4.07887 9.53809 4.10314 9.53134 4.13117C9.52459 4.15931 9.52927 4.18892 9.54429 4.21352L9.96452 4.90039C9.99587 4.95166 10.0628 4.96788 10.1142 4.93653L11.4794 4.1014V5.70183C11.4794 5.76192 11.5282 5.81069 11.5883 5.81069H12.3934C12.4535 5.81069 12.5022 5.76192 12.5022 5.70183V4.10145L13.8674 4.93648C13.9187 4.96783 13.9858 4.95166 14.0171 4.90045L14.4374 4.21352C14.4524 4.18892 14.4571 4.15931 14.4503 4.13123C14.4436 4.10309 14.4259 4.07892 14.4013 4.06384Z" /></svg></span><span>5/6</span></span></div>
                    
            <div class="checklist-progress-bar-wrapper" style="">
        <div class="checklist-progress-bar" style="position: relative; width: 100%; background-color: #cccccc; margin-bottom: 2px; margin-top: 5px;">
                        <div class="checklist-progress" style="display: block; float: none; width: 83%; height: 2px; background: #14892c;">
                            </div>
        </div>
    </div>
        </div>
    
                                    <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="checked"><path d="m21.530642,5.91574l-2.18201,-1.33473l2.18193,-1.33473c0.03753,-0.023 0.06444,-0.05996 0.07473,-0.10281c0.0103,-0.04285 0.00316,-0.08802 -0.01976,-0.12555l-0.64117,-1.04808c-0.04774,-0.07822 -0.15013,-0.10288 -0.22836,-0.05505l-2.08286,1.27419l0,-2.44184c0,-0.09168 -0.0744,-0.16609 -0.16608,-0.16609l-1.22844,0c-0.09168,0 -0.16608,0.07441 -0.16608,0.16609l0,2.44184l-2.08294,-1.27411c-0.07839,-0.04783 -0.18053,-0.02325 -0.22836,0.05506l-0.64117,1.04807c-0.02292,0.03753 -0.03006,0.08271 -0.01976,0.12556c0.01029,0.04285 0.0372,0.0798 0.07473,0.1028l2.18201,1.33465l-2.18201,1.33473c-0.03753,0.02292 -0.06444,0.05996 -0.07473,0.10273c-0.0103,0.04293 -0.00316,0.0881 0.01976,0.12564l0.64117,1.04799c0.04783,0.07822 0.14997,0.10297 0.22836,0.05514l2.08294,-1.2742l0,2.44185c0,0.09167 0.0744,0.16608 0.16608,0.16608l1.22844,0c0.09168,0 0.16608,-0.07441 0.16608,-0.16608l0,-2.44177l2.08294,1.27403c0.07823,0.04783 0.18062,0.02317 0.22837,-0.05497l0.64116,-1.04807c0.02292,-0.03754 0.03006,-0.08271 0.01977,-0.12556c-0.01022,-0.04293 -0.03721,-0.0798 -0.07474,-0.10281z" fill="#778899" /><path clip-rule="evenodd" d="m12.4779,3.94141l-9.03649,0c-1.65686,0 -3,1.34315 -3,3.00001l0,12c0,1.6568 1.34314,3 3,3l11.99999,0c1.6569,0 3,-1.3432 3,-3l0,-9.01487c-0.1928,0.02079 -0.3886,0.03146 -0.5869,0.03146c-0.9504,0 -1.8435,-0.24504 -2.6197,-0.6754l0.2066,0.20658l-8.0813,8.08133l-3.91869,-3.9187l1.17718,-1.1772l2.74151,2.7415l6.7567,-6.75675c-1.0305,-0.98505 -1.6725,-2.37332 -1.6725,-3.91151c0,-0.20501 0.0114,-0.40736 0.0336,-0.60645z" fill="#778899" fill-rule="evenodd" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span style="text-decoration: line-through;">
                                                        <span>Doc/release notes changes? Comment present?</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="checked"><path d="m21.530642,5.91574l-2.18201,-1.33473l2.18193,-1.33473c0.03753,-0.023 0.06444,-0.05996 0.07473,-0.10281c0.0103,-0.04285 0.00316,-0.08802 -0.01976,-0.12555l-0.64117,-1.04808c-0.04774,-0.07822 -0.15013,-0.10288 -0.22836,-0.05505l-2.08286,1.27419l0,-2.44184c0,-0.09168 -0.0744,-0.16609 -0.16608,-0.16609l-1.22844,0c-0.09168,0 -0.16608,0.07441 -0.16608,0.16609l0,2.44184l-2.08294,-1.27411c-0.07839,-0.04783 -0.18053,-0.02325 -0.22836,0.05506l-0.64117,1.04807c-0.02292,0.03753 -0.03006,0.08271 -0.01976,0.12556c0.01029,0.04285 0.0372,0.0798 0.07473,0.1028l2.18201,1.33465l-2.18201,1.33473c-0.03753,0.02292 -0.06444,0.05996 -0.07473,0.10273c-0.0103,0.04293 -0.00316,0.0881 0.01976,0.12564l0.64117,1.04799c0.04783,0.07822 0.14997,0.10297 0.22836,0.05514l2.08294,-1.2742l0,2.44185c0,0.09167 0.0744,0.16608 0.16608,0.16608l1.22844,0c0.09168,0 0.16608,-0.07441 0.16608,-0.16608l0,-2.44177l2.08294,1.27403c0.07823,0.04783 0.18062,0.02317 0.22837,-0.05497l0.64116,-1.04807c0.02292,-0.03754 0.03006,-0.08271 0.01977,-0.12556c-0.01022,-0.04293 -0.03721,-0.0798 -0.07474,-0.10281z" fill="#778899" /><path clip-rule="evenodd" d="m12.4779,3.94141l-9.03649,0c-1.65686,0 -3,1.34315 -3,3.00001l0,12c0,1.6568 1.34314,3 3,3l11.99999,0c1.6569,0 3,-1.3432 3,-3l0,-9.01487c-0.1928,0.02079 -0.3886,0.03146 -0.5869,0.03146c-0.9504,0 -1.8435,-0.24504 -2.6197,-0.6754l0.2066,0.20658l-8.0813,8.08133l-3.91869,-3.9187l1.17718,-1.1772l2.74151,2.7415l6.7567,-6.75675c-1.0305,-0.98505 -1.6725,-2.37332 -1.6725,-3.91151c0,-0.20501 0.0114,-0.40736 0.0336,-0.60645z" fill="#778899" fill-rule="evenodd" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span style="text-decoration: line-through;">
                                                        <span>Downstream builds green?</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="checked"><path d="m21.530642,5.91574l-2.18201,-1.33473l2.18193,-1.33473c0.03753,-0.023 0.06444,-0.05996 0.07473,-0.10281c0.0103,-0.04285 0.00316,-0.08802 -0.01976,-0.12555l-0.64117,-1.04808c-0.04774,-0.07822 -0.15013,-0.10288 -0.22836,-0.05505l-2.08286,1.27419l0,-2.44184c0,-0.09168 -0.0744,-0.16609 -0.16608,-0.16609l-1.22844,0c-0.09168,0 -0.16608,0.07441 -0.16608,0.16609l0,2.44184l-2.08294,-1.27411c-0.07839,-0.04783 -0.18053,-0.02325 -0.22836,0.05506l-0.64117,1.04807c-0.02292,0.03753 -0.03006,0.08271 -0.01976,0.12556c0.01029,0.04285 0.0372,0.0798 0.07473,0.1028l2.18201,1.33465l-2.18201,1.33473c-0.03753,0.02292 -0.06444,0.05996 -0.07473,0.10273c-0.0103,0.04293 -0.00316,0.0881 0.01976,0.12564l0.64117,1.04799c0.04783,0.07822 0.14997,0.10297 0.22836,0.05514l2.08294,-1.2742l0,2.44185c0,0.09167 0.0744,0.16608 0.16608,0.16608l1.22844,0c0.09168,0 0.16608,-0.07441 0.16608,-0.16608l0,-2.44177l2.08294,1.27403c0.07823,0.04783 0.18062,0.02317 0.22837,-0.05497l0.64116,-1.04807c0.02292,-0.03754 0.03006,-0.08271 0.01977,-0.12556c-0.01022,-0.04293 -0.03721,-0.0798 -0.07474,-0.10281z" fill="#778899" /><path clip-rule="evenodd" d="m12.4779,3.94141l-9.03649,0c-1.65686,0 -3,1.34315 -3,3.00001l0,12c0,1.6568 1.34314,3 3,3l11.99999,0c1.6569,0 3,-1.3432 3,-3l0,-9.01487c-0.1928,0.02079 -0.3886,0.03146 -0.5869,0.03146c-0.9504,0 -1.8435,-0.24504 -2.6197,-0.6754l0.2066,0.20658l-8.0813,8.08133l-3.91869,-3.9187l1.17718,-1.1772l2.74151,2.7415l6.7567,-6.75675c-1.0305,-0.98505 -1.6725,-2.37332 -1.6725,-3.91151c0,-0.20501 0.0114,-0.40736 0.0336,-0.60645z" fill="#778899" fill-rule="evenodd" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span style="text-decoration: line-through;">
                                                        <span>Solution information and context easily available?</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="checked"><path d="m21.530642,5.91574l-2.18201,-1.33473l2.18193,-1.33473c0.03753,-0.023 0.06444,-0.05996 0.07473,-0.10281c0.0103,-0.04285 0.00316,-0.08802 -0.01976,-0.12555l-0.64117,-1.04808c-0.04774,-0.07822 -0.15013,-0.10288 -0.22836,-0.05505l-2.08286,1.27419l0,-2.44184c0,-0.09168 -0.0744,-0.16609 -0.16608,-0.16609l-1.22844,0c-0.09168,0 -0.16608,0.07441 -0.16608,0.16609l0,2.44184l-2.08294,-1.27411c-0.07839,-0.04783 -0.18053,-0.02325 -0.22836,0.05506l-0.64117,1.04807c-0.02292,0.03753 -0.03006,0.08271 -0.01976,0.12556c0.01029,0.04285 0.0372,0.0798 0.07473,0.1028l2.18201,1.33465l-2.18201,1.33473c-0.03753,0.02292 -0.06444,0.05996 -0.07473,0.10273c-0.0103,0.04293 -0.00316,0.0881 0.01976,0.12564l0.64117,1.04799c0.04783,0.07822 0.14997,0.10297 0.22836,0.05514l2.08294,-1.2742l0,2.44185c0,0.09167 0.0744,0.16608 0.16608,0.16608l1.22844,0c0.09168,0 0.16608,-0.07441 0.16608,-0.16608l0,-2.44177l2.08294,1.27403c0.07823,0.04783 0.18062,0.02317 0.22837,-0.05497l0.64116,-1.04807c0.02292,-0.03754 0.03006,-0.08271 0.01977,-0.12556c-0.01022,-0.04293 -0.03721,-0.0798 -0.07474,-0.10281z" fill="#778899" /><path clip-rule="evenodd" d="m12.4779,3.94141l-9.03649,0c-1.65686,0 -3,1.34315 -3,3.00001l0,12c0,1.6568 1.34314,3 3,3l11.99999,0c1.6569,0 3,-1.3432 3,-3l0,-9.01487c-0.1928,0.02079 -0.3886,0.03146 -0.5869,0.03146c-0.9504,0 -1.8435,-0.24504 -2.6197,-0.6754l0.2066,0.20658l-8.0813,8.08133l-3.91869,-3.9187l1.17718,-1.1772l2.74151,2.7415l6.7567,-6.75675c-1.0305,-0.98505 -1.6725,-2.37332 -1.6725,-3.91151c0,-0.20501 0.0114,-0.40736 0.0336,-0.60645z" fill="#778899" fill-rule="evenodd" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span style="text-decoration: line-through;">
                                                        <span><strong>Tests</strong></span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="checked"><path d="m21.530642,5.91574l-2.18201,-1.33473l2.18193,-1.33473c0.03753,-0.023 0.06444,-0.05996 0.07473,-0.10281c0.0103,-0.04285 0.00316,-0.08802 -0.01976,-0.12555l-0.64117,-1.04808c-0.04774,-0.07822 -0.15013,-0.10288 -0.22836,-0.05505l-2.08286,1.27419l0,-2.44184c0,-0.09168 -0.0744,-0.16609 -0.16608,-0.16609l-1.22844,0c-0.09168,0 -0.16608,0.07441 -0.16608,0.16609l0,2.44184l-2.08294,-1.27411c-0.07839,-0.04783 -0.18053,-0.02325 -0.22836,0.05506l-0.64117,1.04807c-0.02292,0.03753 -0.03006,0.08271 -0.01976,0.12556c0.01029,0.04285 0.0372,0.0798 0.07473,0.1028l2.18201,1.33465l-2.18201,1.33473c-0.03753,0.02292 -0.06444,0.05996 -0.07473,0.10273c-0.0103,0.04293 -0.00316,0.0881 0.01976,0.12564l0.64117,1.04799c0.04783,0.07822 0.14997,0.10297 0.22836,0.05514l2.08294,-1.2742l0,2.44185c0,0.09167 0.0744,0.16608 0.16608,0.16608l1.22844,0c0.09168,0 0.16608,-0.07441 0.16608,-0.16608l0,-2.44177l2.08294,1.27403c0.07823,0.04783 0.18062,0.02317 0.22837,-0.05497l0.64116,-1.04807c0.02292,-0.03754 0.03006,-0.08271 0.01977,-0.12556c-0.01022,-0.04293 -0.03721,-0.0798 -0.07474,-0.10281z" fill="#778899" /><path clip-rule="evenodd" d="m12.4779,3.94141l-9.03649,0c-1.65686,0 -3,1.34315 -3,3.00001l0,12c0,1.6568 1.34314,3 3,3l11.99999,0c1.6569,0 3,-1.3432 3,-3l0,-9.01487c-0.1928,0.02079 -0.3886,0.03146 -0.5869,0.03146c-0.9504,0 -1.8435,-0.24504 -2.6197,-0.6754l0.2066,0.20658l-8.0813,8.08133l-3.91869,-3.9187l1.17718,-1.1772l2.74151,2.7415l6.7567,-6.75675c-1.0305,-0.98505 -1.6725,-2.37332 -1.6725,-3.91151c0,-0.20501 0.0114,-0.40736 0.0336,-0.60645z" fill="#778899" fill-rule="evenodd" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span style="text-decoration: line-through;">
                                                        <span><strong>FixVersion</strong> filled and not yet released</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><rect fill="#EFF4FB" height="17.5" rx="2.5" stroke="#ADBBD0" width="18" x="0.44141" y="3.94141"/></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Architecture Decision Record (<strong>ADR</strong>)</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                            ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12430" key="com.atlassian.teams:rm-teams-custom-field-team">
                        <customfieldname>Team</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[24]]></customfieldvalue>

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


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_15131" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Time in Discovery</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0</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>
                                                                                                                                                                                <customfield id="customfield_14630" key="com.atlassian.jira.plugin.system.customfieldtypes:datetime">
                        <customfieldname>Work Started</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 2 Jun 2023 20:55:00 +0200</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>