<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:31:15 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-3848] Configure MinIO/S3 for mod-oai-pmh</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-3848</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;mod-oai-pmh now requires environment variables for setting up an S3-compatible storage layer. A new bucket should be provisioned for mod-oai-pmh data. This needs to be set up for Vagrant and for the hosted reference environments (folio-snapshot).&lt;/p&gt;

&lt;p&gt;See draft &lt;a href=&quot;https://github.com/folio-org/folio-ansible/pull/558&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;PR&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="82526">FOLIO-3848</key>
            <summary>Configure MinIO/S3 for mod-oai-pmh</summary>
                <type id="10003" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium">Task</type>
                                            <priority id="10005" iconUrl="https://dev.folio.org/assets/jira-priority/tbd.svg">TBD</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>
                    </labels>
                <created>Fri, 23 Jun 2023 13:46:47 +0000</created>
                <updated>Thu, 29 Jun 2023 20:14:34 +0000</updated>
                            <resolved>Thu, 29 Jun 2023 20:14:34 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                <comments>
                                                            <comment id="196288" author="5c706fbb47a54a6728e59df2" created="Fri, 23 Jun 2023 18:36:51 +0000"  >&lt;p&gt;This unfortunately did not succeed in the hosted reference environment (which uses S3, not MinIO). In that environment, these are the environment variables that get defined (secrets redacted):&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-quote&quot;&gt;&quot;env&quot;&lt;/span&gt; : [ {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;S3_BUCKET&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;folio-snapshot-test-oai-pmh&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;S3_REGION&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;us-east-1&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;DB_PORT&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;5432&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;LOG4J_FORMAT_MSG_NO_LOOKUPS&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;S3_IS_AWS&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;ENV&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;FOLIO&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;S3_URL&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;https:&lt;span class=&quot;code-comment&quot;&gt;//s3.amazonaws.com&quot;&lt;/span&gt;
&lt;/span&gt;  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;DB_HOST&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;10.36.1.168&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;KAFKA_PORT&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;9092&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;KAFKA_HOST&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;10.36.1.168&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;ELASTICSEARCH_HOST&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;10.36.1.168&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;DB_USERNAME&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;folio_admin&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;S3_SECRET_ACCESS_KEY&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;***&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;S3_ACCESS_KEY_ID&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;***&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;ELASTICSEARCH_PORT&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;9301&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;DB_DATABASE&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;okapi_modules&quot;&lt;/span&gt;
  }, {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;name&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;DB_PASSWORD&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;***&quot;&lt;/span&gt;
  } ],
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The user and bucket exist and have the right access policy, AFAICT.&lt;/p&gt;

&lt;p&gt;This is what I see in the log:&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;
17:54:04 [] [] [] [] INFO  ?                    mod-oai-pmh-3.12.0-SNAPSHOT.311 17:54:04 [] [] [] [] WARN  ctApplicationContext Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name &lt;span class=&quot;code-quote&quot;&gt;&apos;instancesDaoImpl&apos;&lt;/span&gt;: Unsatisfied dependency expressed through field &lt;span class=&quot;code-quote&quot;&gt;&apos;folioS3Client&apos;&lt;/span&gt;; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name &lt;span class=&quot;code-quote&quot;&gt;&apos;folioS3Client&apos;&lt;/span&gt; defined in &lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;path resource [org/folio/oaipmh/helpers/configuration/ErrorServiceConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.folio.s3.client.FolioS3Client]: Factory method &lt;span class=&quot;code-quote&quot;&gt;&apos;folioS3Client&apos;&lt;/span&gt; threw exception; nested exception is java.lang.NoClassDefFoundError: software/amazon/awssdk/auth/credentials/AwsCredentials
17:54:04 [] [] [] [] INFO  ?                    mod-oai-pmh-3.12.0-SNAPSHOT.311 17:54:04 [] [] [] [] INFO  RestVerticle         Init hook called with implemented &lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;named org.folio.&lt;span class=&quot;code-keyword&quot;&gt;rest&lt;/span&gt;.impl.InitAPIs
17:54:05 [] [] [] [] INFO  ?                    mod-oai-pmh-3.12.0-SNAPSHOT.311 17:54:04 [] [] [] [] ERROR RestVerticle         Error creating bean with name &lt;span class=&quot;code-quote&quot;&gt;&apos;instancesDaoImpl&apos;&lt;/span&gt;: Unsatisfied dependency expressed through field &lt;span class=&quot;code-quote&quot;&gt;&apos;folioS3Client&apos;&lt;/span&gt;; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name &lt;span class=&quot;code-quote&quot;&gt;&apos;folioS3Client&apos;&lt;/span&gt; defined in &lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;path resource [org/folio/oaipmh/helpers/configuration/ErrorServiceConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.folio.s3.client.FolioS3Client]: Factory method &lt;span class=&quot;code-quote&quot;&gt;&apos;folioS3Client&apos;&lt;/span&gt; threw exception; nested exception is java.lang.NoClassDefFoundError: software/amazon/awssdk/auth/credentials/AwsCredentials
17:54:05 [] [] [] [] INFO  ?                    mod-oai-pmh-3.12.0-SNAPSHOT.311 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name &lt;span class=&quot;code-quote&quot;&gt;&apos;instancesDaoImpl&apos;&lt;/span&gt;: Unsatisfied dependency expressed through field &lt;span class=&quot;code-quote&quot;&gt;&apos;folioS3Client&apos;&lt;/span&gt;; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name &lt;span class=&quot;code-quote&quot;&gt;&apos;folioS3Client&apos;&lt;/span&gt; defined in &lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;path resource [org/folio/oaipmh/helpers/configuration/ErrorServiceConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.folio.s3.client.FolioS3Client]: Factory method &lt;span class=&quot;code-quote&quot;&gt;&apos;folioS3Client&apos;&lt;/span&gt; threw exception; nested exception is java.lang.NoClassDefFoundError: software/amazon/awssdk/auth/credentials/AwsCredentials
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;After which the container exits.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3Aab17d861-5e82-4377-ad0b-0eaa18112edb&quot; class=&quot;user-hover&quot; rel=&quot;712020:ab17d861-5e82-4377-ad0b-0eaa18112edb&quot; data-account-id=&quot;712020:ab17d861-5e82-4377-ad0b-0eaa18112edb&quot; accountid=&quot;712020:ab17d861-5e82-4377-ad0b-0eaa18112edb&quot; rel=&quot;noreferrer&quot;&gt;Oleksandr Bozhko&lt;/a&gt; you might need to take a look, I&apos;m not sure if you&apos;ve tested with S3 or just with MinIO.&lt;/p&gt;</comment>
                                                            <comment id="196289" author="712020:ab17d861-5e82-4377-ad0b-0eaa18112edb" created="Tue, 27 Jun 2023 13:30:57 +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; - update for mod-oai-pmh module to fix this issue is already present in the master branch.&lt;/p&gt;</comment>
                                                            <comment id="196290" author="5c706fbb47a54a6728e59df2" created="Tue, 27 Jun 2023 16:25:13 +0000"  >&lt;p&gt;We have a successful &lt;a href=&quot;https://jenkins-aws.indexdata.com/job/FOLIO_Reference_Builds/job/folio-snapshot-test/496&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;test build&lt;/a&gt;. Log file for mod-oai-pmh is &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;/rest/api/3/attachment/content/64474&quot; title=&quot;mod-oai-pmh.log attached to FOLIO-3848&quot; data-attachment-type=&quot;file&quot; data-attachment-name=&quot;mod-oai-pmh.log&quot; data-media-services-type=&quot;file&quot; data-media-services-id=&quot;dec4eca0-fe9f-446e-9141-175d7c7f73cf&quot; rel=&quot;noreferrer&quot;&gt;attached&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;/images/icons/link_attachment_7.gif&quot; height=&quot;7&quot; width=&quot;7&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;. &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3Aab17d861-5e82-4377-ad0b-0eaa18112edb&quot; class=&quot;user-hover&quot; rel=&quot;712020:ab17d861-5e82-4377-ad0b-0eaa18112edb&quot; data-account-id=&quot;712020:ab17d861-5e82-4377-ad0b-0eaa18112edb&quot; accountid=&quot;712020:ab17d861-5e82-4377-ad0b-0eaa18112edb&quot; rel=&quot;noreferrer&quot;&gt;Oleksandr Bozhko&lt;/a&gt; please let me know if further testing is needed or if we can go ahead and merge the changes to the build playbooks. Thanks!&lt;/p&gt;</comment>
                                                            <comment id="196291" author="5c706fbb47a54a6728e59df2" created="Thu, 29 Jun 2023 20:14:07 +0000"  >&lt;p&gt;Changes are now merged (sorry for the delay), the next folio-snapshot build should contain the updated configuration for mod-oai-pmh.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="64474" name="mod-oai-pmh.log" size="72046" author="5c706fbb47a54a6728e59df2" created="Tue, 27 Jun 2023 16:24:04 +0000"/>
                    </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="10155"><![CDATA[FOLIO DevOps]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10063" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>PO Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10106" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>RCA Group</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10367"><![CDATA[TBD]]></customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1718">DevOps Sprint 160</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 27 Jun 2023 13:30:57 +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>