<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:15:42 UTC 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 add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[FOLIO-1759] Create folio-ansible roles for deploying edge modules in reference environments</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-1759</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;Roles need to be created in folio-ansible for provisioning edge modules separately from standard Okapi modules. One possible approach:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Update the security settings for our environment builds to expose edge modules on an external port (any opinions about what port?)&lt;/li&gt;
	&lt;li&gt;Create a role in folio-ansible to set up nginx as a load balancer in front of the edge modules (could be container or host-based...given the configuration flexibility required, I would suggest that host-based would be more convenient)&lt;/li&gt;
	&lt;li&gt;Create a role in folio-ansible to deploy and configure edge modules.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The edge module role would need to:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Query Okapi to determine the dependencies of the edge module, then deploy and enable those dependencies for the tenant&lt;/li&gt;
	&lt;li&gt;Pull the Docker image for the edge module, configure, and deploy (outside Okapi), assigning a port&lt;/li&gt;
	&lt;li&gt;Configure nginx to proxy for the edge module&lt;/li&gt;
	&lt;li&gt;Enable the edge module for the tenant and assign permissionSets to admin user (assuming there may be permissionSets that need to be loaded)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A4f6bed01-40a6-48d5-8471-7ef21f5ea97c&quot; class=&quot;user-hover&quot; rel=&quot;557058:4f6bed01-40a6-48d5-8471-7ef21f5ea97c&quot; data-account-id=&quot;557058:4f6bed01-40a6-48d5-8471-7ef21f5ea97c&quot; accountid=&quot;557058:4f6bed01-40a6-48d5-8471-7ef21f5ea97c&quot; rel=&quot;noreferrer&quot;&gt;Hongwei Ji&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=61cd0ca0bce5e00069e98be7&quot; class=&quot;user-hover&quot; rel=&quot;61cd0ca0bce5e00069e98be7&quot; data-account-id=&quot;61cd0ca0bce5e00069e98be7&quot; accountid=&quot;61cd0ca0bce5e00069e98be7&quot; rel=&quot;noreferrer&quot;&gt;David Crossley&lt;/a&gt; any thoughts on what I&apos;m missing?&lt;/p&gt;</description>
                <environment></environment>
        <key id="81081">FOLIO-1759</key>
            <summary>Create folio-ansible roles for deploying edge modules in reference environments</summary>
                <type id="10002" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10322?size=medium">New Feature</type>
                                            <priority id="10002" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p3.svg">P3</priority>
                        <status id="6" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10003">Done</resolution>
                                                        <assignee accountid="5c706fbb47a54a6728e59df2">Wayne Schneider</assignee>
                                                                <reporter accountid="5c706fbb47a54a6728e59df2">Wayne Schneider</reporter>
                                    <labels>
                            <label>ci</label>
                            <label>platform-backlog</label>
                    </labels>
                <created>Wed, 30 Jan 2019 18:00:03 +0000</created>
                <updated>Wed, 3 Jun 2020 16:39:27 +0000</updated>
                            <resolved>Sun, 17 Feb 2019 18:21:58 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                <comments>
                                                            <comment id="195075" author="557058:4f6bed01-40a6-48d5-8471-7ef21f5ea97c" created="Wed, 30 Jan 2019 18:44:28 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5c706fbb47a54a6728e59df2&quot; class=&quot;user-hover&quot; rel=&quot;5c706fbb47a54a6728e59df2&quot; data-account-id=&quot;5c706fbb47a54a6728e59df2&quot; accountid=&quot;5c706fbb47a54a6728e59df2&quot; rel=&quot;noreferrer&quot;&gt;Wayne Schneider&lt;/a&gt; looks good. Edge modules do not have perm defined because they live outside of Okapi. The modules they depend on have perm defined. But those perms will be assigned to the new institution user, not admin user since edge API key is tied to the institution user not admin user. Of course, we can make things simpler by letting admin user to play both roles.&lt;/p&gt;</comment>
                                                            <comment id="195078" author="5c706fbb47a54a6728e59df2" created="Thu, 7 Feb 2019 22:10:31 +0000"  >&lt;p&gt;Ran into an issue with the &quot;institutional user&quot; required by edge modules: my original plan was just to use the default admin user (&lt;tt&gt;diku_admin&lt;/tt&gt;) as the institutional user, but unfortunately the edge-common library doesn&apos;t allow for an underscore in the IU username. &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5cf6c546b87c300f36eb7b9a&quot; class=&quot;user-hover&quot; rel=&quot;5cf6c546b87c300f36eb7b9a&quot; data-account-id=&quot;5cf6c546b87c300f36eb7b9a&quot; accountid=&quot;5cf6c546b87c300f36eb7b9a&quot; rel=&quot;noreferrer&quot;&gt;Craig McNally&lt;/a&gt; is writing tickets to update the library to remove this limitation (see the linked stories for more detail).&lt;/p&gt;

&lt;p&gt;It is probably a better practice to create an IU specifically for edge modules, but that complicates completing the edge-module role.&lt;/p&gt;</comment>
                                                            <comment id="195081" author="5c706fbb47a54a6728e59df2" created="Tue, 12 Feb 2019 22:28:33 +0000"  >&lt;p&gt;Plays have been added to the role to create the institutional user. All that remains is to update the Vagrantfile and AWS network config to expose port 8000.&lt;/p&gt;</comment>
                                                            <comment id="195084" author="5c706fbb47a54a6728e59df2" created="Tue, 12 Feb 2019 22:52:20 +0000"  >&lt;p&gt;
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;EDGCOMMON-18&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/EDGCOMMON-18&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Change API key delimiter to something that won&amp;#39;t appear in tenantIDs/usernames&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10309?size=medium&quot; /&gt;
            EDGCOMMON-18
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 is resolved, but none of the current edge modules have upgraded to the new version of the edge-common library. This makes it a little harder to test. I&apos;ve blocked the related issues against the issues for upgrading the edge modules.&lt;/p&gt;</comment>
                                                            <comment id="195087" author="5c706fbb47a54a6728e59df2" created="Sun, 17 Feb 2019 15:32:32 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f8314dfbdef80006f6f572d&quot; class=&quot;user-hover&quot; rel=&quot;5f8314dfbdef80006f6f572d&quot; data-account-id=&quot;5f8314dfbdef80006f6f572d&quot; accountid=&quot;5f8314dfbdef80006f6f572d&quot; rel=&quot;noreferrer&quot;&gt;Adam Dickmeiss&lt;/a&gt; suggested a different approach, using Okapi to manage the Docker containers and proxy the edge endpoints as the supertenant. There are some advantages and disadvantages to this approach.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Pros&lt;/b&gt;:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;No need to expose an additional port on the target system&lt;/li&gt;
	&lt;li&gt;No need to rely on an additional piece of software (nginx) for proxying&lt;/li&gt;
	&lt;li&gt;No need to track port usage for the edge module containers, as Okapi will just take care of it&lt;/li&gt;
	&lt;li&gt;No need to manage containers outside of Okapi deployment&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;Cons&lt;/b&gt;:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Greater possibility of path conflicts&lt;/li&gt;
	&lt;li&gt;Edge module module descriptor dependencies are described from the perspective of the target tenant, not the supertenant &amp;#8211; so while the edge module &lt;tt&gt;edge-oai-pmh&lt;/tt&gt; requires the &lt;tt&gt;oai-pmh&lt;/tt&gt; interface provided by &lt;tt&gt;mod-oai-pmh&lt;/tt&gt;, the supertenant doesn&apos;t need to have that module enabled, only the target tenant. This also creates the possibility of multiple versions of the required modules being deployed, if the version preferred by the tenant is not the &quot;latest&quot; version as defined by the Okapi installation.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Either approach would work for our reference environments. At this point it&apos;s probably not worth redoing the roles for the convenience of using Okapi to proxy the edge modules, but it&apos;s worth documenting the alternative approach here.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="80928">FOLIO-1630</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81127">FOLIO-1747</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81069">FOLIO-1748</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81128">FOLIO-1749</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81070">FOLIO-1750</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="38506">EDGCOMMON-18</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10144"><![CDATA[Core: Platform]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzxlcf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1722">Core: Platform - Sprint 56</customfieldvalue>
    <customfieldvalue id="1661">Core: Platform - Sprint 57</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10044" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 30 Jan 2019 18:44:28 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10025" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>[CHART] Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>