<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:20:44 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-2450] FTP/SFTP servers for the reference environments</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-2450</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;h2&gt;&lt;a name=&quot;Overview&quot;&gt;&lt;/a&gt;Overview&lt;/h2&gt;
&lt;p&gt;The Acquisitions team will soon start work on features that involve uploading files to an FTP/SFTP server.&#160; More specifically, generate a batch voucher and upload it to a configured FTP location w/ the configured credentials.&#160; In order to support testing in the reference environments (folio-testing/snapshot/etc.) we&apos;ll need to provision an FTP/SFTP server.&#160; I&apos;m also aware that somewhere on the roadmap are other features which work with FTP, so this is the first but not the only feature requiring something like this.&#160; Examples include EDI/Edifact ordering and invoicing, possibly others too (export?)&lt;/p&gt;

&lt;p&gt;There are no requirements for a particular directory structure, or specific user credentials to be provisioned.&#160; I imagine that there&apos;s no real need for long-lived data here as it&apos;s only for testing purposes.&#160; Periodic aging out or purging of data should be perfectly acceptable for our current needs.&lt;/p&gt;

&lt;p&gt;At this point the load is expected to be low so something lightweight is probably fine.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;Acceptancecriteria&quot;&gt;&lt;/a&gt;Acceptance criteria&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;An FTP server is provisioned and accessible from the reference envs&lt;/li&gt;
	&lt;li&gt;An SFTP server is provisioned and accessible from the reference envs&lt;/li&gt;
	&lt;li&gt;These are documented on the wiki (&lt;a href=&quot;https://dev.folio.org/guides/automation/#reference-environments&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://dev.folio.org/guides/automation/#reference-environments&lt;/a&gt; ?)&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="81585">FOLIO-2450</key>
            <summary>FTP/SFTP servers for the reference environments</summary>
                <type id="10005" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10309?size=medium">Story</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="61cd0ca0bce5e00069e98be7">David Crossley</assignee>
                                                                <reporter accountid="5cf6c546b87c300f36eb7b9a">Craig McNally</reporter>
                                    <labels>
                            <label>devops</label>
                            <label>devops-backlog</label>
                    </labels>
                <created>Fri, 7 Feb 2020 15:42:40 +0000</created>
                <updated>Wed, 8 Feb 2023 04:55:34 +0000</updated>
                            <resolved>Fri, 20 Mar 2020 01:33:57 +0000</resolved>
                                                                    <component>Continuous Integration</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                <comments>
                                                            <comment id="194840" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Mon, 10 Feb 2020 14:34:31 +0000"  >&lt;p&gt;Waiting on decision which protocol needs to be supported (FTP vs SFTP)&lt;/p&gt;</comment>
                                                            <comment id="194841" author="5cf6c546b87c300f36eb7b9a" created="Tue, 11 Feb 2020 14:22:22 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt; both since both protocols will be supported by the code&lt;/p&gt;</comment>
                                                            <comment id="194843" author="5af5e627525ba96b58654f12" created="Thu, 27 Feb 2020 20:38:33 +0000"  >&lt;p&gt;Hi &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; I would agree about needing both. Depending on who is on the other end of the connection as sender or recipient, they may have specific requirements about SFTP, while many are fine with regular FTP.  It&apos;s not an either/or. It&apos;s both. I know GOBI runs both types of servers due to differing requirements from the libraries or partners on the other end of the transactions.&lt;/p&gt;</comment>
                                                            <comment id="194848" author="5f9abc1eb45b2e007453f423" created="Tue, 3 Mar 2020 02:28:18 +0000"  >&lt;p&gt;AWS has a managed SFTP service,  &lt;a href=&quot;https://aws.amazon.com/sftp/features/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://aws.amazon.com/sftp/features/&lt;/a&gt;,  however, I think it may be overkill for the  FOLIO requirements and may be cost prohibitive.   Plus it doesn&apos;t support FTP.   I think the best bet is to provision a t2.micro or t3.micro type instance (or whatever the current free-tier eligible instance type is) and configure FTP and SSH services.    Create a dedicated user that is used by the FOLIO app to authenticate to both services but doesn&apos;t have any other special permissions.   A container can on the kubernetes cluster could also be used, but that may require additional work in order to configure the ingress to support SSH and SFTP.    I think the micro ec2 instance is the fastest and cheapest option. &lt;/p&gt;</comment>
                                                            <comment id="194851" author="5cf6c546b87c300f36eb7b9a" created="Tue, 3 Mar 2020 15:07:59 +0000"  >&lt;p&gt;Sounds reasonable to me.  Something like vsftp (&lt;a href=&quot;https://security.appspot.com/vsftpd.html&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://security.appspot.com/vsftpd.html&lt;/a&gt;) is pretty easy to setup and is probably more than adequate for the FTP side of things.  For sftp I think everything you need is probably already on the base AMI (sshd).&lt;/p&gt;</comment>
                                                            <comment id="194854" author="5cf6c546b87c300f36eb7b9a" created="Tue, 3 Mar 2020 15:09:04 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f9abc1eb45b2e007453f423&quot; class=&quot;user-hover&quot; rel=&quot;5f9abc1eb45b2e007453f423&quot; data-account-id=&quot;5f9abc1eb45b2e007453f423&quot; accountid=&quot;5f9abc1eb45b2e007453f423&quot; rel=&quot;noreferrer&quot;&gt;John Malconian&lt;/a&gt;  You may be able to find publicly available docker images that do what you need&lt;/p&gt;</comment>
                                                            <comment id="194857" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Mon, 16 Mar 2020 13:15:27 +0000"  >&lt;p&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; : &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f9abc1eb45b2e007453f423&quot; class=&quot;user-hover&quot; rel=&quot;5f9abc1eb45b2e007453f423&quot; data-account-id=&quot;5f9abc1eb45b2e007453f423&quot; accountid=&quot;5f9abc1eb45b2e007453f423&quot; rel=&quot;noreferrer&quot;&gt;John Malconian&lt;/a&gt; says we should use the ci.folio.org domain and verify if the LB can handle FTP/SFTP to save on elastic IPs.&lt;/p&gt;</comment>
                                                            <comment id="194860" author="5f9abc1eb45b2e007453f423" created="Tue, 17 Mar 2020 00:55:06 +0000"  >&lt;p&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; I was able to reallocate a previously provisioned elastic IP so no need to do any load balancing.   The permanent IP address associated with the FTP/SFTP instance is 52.7.45.151.   You will want to update the &apos;pasv_address&apos; parameter in vsftpd.conf with this address.   Add a DNS entry that points to this IP and you should be all set. &lt;/p&gt;</comment>
                                                            <comment id="194863" author="61cd0ca0bce5e00069e98be7" created="Tue, 17 Mar 2020 13:07:18 +0000"  >&lt;p&gt;Thanks John, that part is now sorted. Some documentation is in progress. Getting close now.&lt;/p&gt;</comment>
                                                            <comment id="194866" author="61cd0ca0bce5e00069e98be7" created="Wed, 18 Mar 2020 12:55:46 +0000"  >&lt;p&gt;See documentation via &lt;a href=&quot;https://github.com/folio-org/folio-org.github.io/pull/543&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;pull/543&lt;/a&gt; and the generated document &lt;a href=&quot;http://ssbp-devdoc-prodbranch-folio-2450-ftp.dev.folio.org.s3-website-us-east-1.amazonaws.com/guides/ftp-ci-server/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;in-development&lt;/a&gt;.&lt;/p&gt;</comment>
                                                            <comment id="194869" author="61cd0ca0bce5e00069e98be7" created="Fri, 20 Mar 2020 01:33:24 +0000"  >&lt;p&gt;The document is published at &lt;a href=&quot;https://dev.folio.org/guides/ftp-ci-server/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://dev.folio.org/guides/ftp-ci-server/&lt;/a&gt;&lt;br/&gt;
and is linked from the &quot;reference environments&quot; documentation.&lt;/p&gt;

&lt;p&gt;Also a general reminder to use the &quot;Search&quot; facility to find stuff there.&lt;/p&gt;</comment>
                                                            <comment id="194872" author="61cd0ca0bce5e00069e98be7" created="Wed, 8 Feb 2023 04:55:34 +0000"  >&lt;p&gt;Update to assist Jira search:&lt;/p&gt;

&lt;p&gt;As explained in the documentation: &lt;tt&gt;ftp.ci.folio.org&lt;/tt&gt; and the AWS EC2 instance &lt;tt&gt;i-0e6b3d9f00a6cea5f&lt;/tt&gt; is tagged as &lt;tt&gt;folio-ftp&lt;/tt&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10006">
                    <name>Gantt End to Start</name>
                                            <outwardlinks description="has to be done before">
                                        <issuelink>
            <issuekey id="66497">MODINVOICE-133</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="66498">MODINVOICE-137</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="10155"><![CDATA[FOLIO DevOps]]></customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1984">DevOps: sprint 84</customfieldvalue>
    <customfieldvalue id="1983">DevOps: sprint 83</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>Mon, 10 Feb 2020 14:34:31 +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>