<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Fri Feb 09 00:40:33 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>[UXPROD-4521] GBV. FOLIO module wrapper (mod-harvester-admin, ui-harvester-admin) around existing Harvester (Ramsons work)</title>
                <link>https://folio-org.atlassian.net/browse/UXPROD-4521</link>
                <project id="10000" key="UXPROD">UX Product</project>
                    <description>&lt;p&gt;&lt;b&gt;Current situation or problem&lt;/b&gt;:  Remaining work on the FOLIO wrapper for Harvester Admin. The wrapper interacts for now with the legacy Harvester. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;In scope:&lt;/b&gt; FOLIO module wrapper around existing Harvester for GBV. 2nd phase of FOLIO Harvester module.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Out of scope&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Use case(s):&lt;/b&gt; For the German libraries - GBV, Hebis, Mainz then ... (enter text here)&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Proposed solution/stories&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Links to additional info&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Questions&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Out of scope:&lt;/b&gt;&lt;br/&gt;
Harvester version 2.0. 2nd phase FOLIO Harvester module&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Use case(s):&lt;/b&gt;&lt;br/&gt;
As an admin from library in the GBV consortia, &lt;br/&gt;
I need to be abel to run (start, stop, general access to) my library&apos;s jobs in the Harvester&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Proposed solution/stories:&lt;/b&gt;&lt;br/&gt;
Solution that meets GBV&#8217;s requirements for giving different admins access to only their own jobs in the Harvester. It assumes that libraries will not have access to transformation pipelines, transformation steps or back-end (Inventory storage) configurations, which are assumed to be maintained in the existing Harvester Admin UI by a central maintainer.  &lt;/p&gt;

&lt;p&gt;The basic idea is for a solution that utilizes current FOLIO user management modules and authentication - and applies access control on row level in the existing Harvester database. The idea is thus to discard the existing Harvester admin UI for jobs management but use the existing Harvester admin REST APIs by wrapping these XML based REST APIs in JSON based APIs. This is to make it possible to put a Stripes admin UI on top of them. The underlying MySQL database could be kept as is, initially at least, possibly save for a few tweaks. The harvest scheduler and harvest job running logic would also not change.&lt;/p&gt;

&lt;p&gt;The suggestion is to implement access control by tagging all records in the Harvester database with tokens specifying  who created the records and who should thus be able to retrieve them again. The simplest approach is possibly to install the Harvester module in a given FOLIO, create a user per library in that FOLIO and filter jobs by user ID. Alternatively it might be possible to control access per tenant.&lt;/p&gt;

&lt;p&gt;The existing Harvester database and its REST APIs would in other words become the storage layer for the new JSON APIs.  &lt;/p&gt;

&lt;p&gt;The FOLIO module, ie mod-harvester-admin, would need to know where the Harvester resides. This could be a FOLIO tenant setting, but that would require that module to have a storage and the UI to provide the settings page. Mod-configuration might be another option. A simpler solution might be to declare the Harvester&#8217;s location in the deployment descriptor - pretty much the same way access to PostgreSQL is configured in other FOLIO storage modules.    &lt;/p&gt;

&lt;p&gt;It should be considered changing the current primary key scheme in the Harvester database from sequence generated primary keys to UUIDs. This would bring the schema closer to FOLIO conventions (and have unrelated configuration maintenance benefits)&lt;/p&gt;

&lt;p&gt;The project would thus include:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Wrap select XML APIs as JSON APIs, provide unit tests.&lt;/li&gt;
	&lt;li&gt;Perhaps make a few changes to the underlying database for more FOLIO like JSON schemas&lt;/li&gt;
	&lt;li&gt;Write Stripes UIs with unit tests, to replace existing JSF UIs&lt;/li&gt;
	&lt;li&gt;Implement row level access control&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Following APIs would need to be implemented in JSON &lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Storages (GET, to populate drop-down in jobs edit page)&lt;/li&gt;
	&lt;li&gt;Jobs (POST, PUT, GET, DELETE)&lt;/li&gt;
	&lt;li&gt;Transformation pipelines (GET, to populate drop-down in jobs edit page)&lt;/li&gt;
	&lt;li&gt;Job logs (GET, possibly just text passthrough rather than JSON)&lt;/li&gt;
	&lt;li&gt;Failed records (GET)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Following existing JSF based UIs would be implemented as Stripes front-ends - not necessarily in a one-to-one fashion but at least so that existing functionality will continue to be supported. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Links to additional info:&lt;/b&gt;&lt;br/&gt;
&lt;a href=&quot;https://folio-org.atlassian.net/wiki/pages/viewpage.action?pageId=1387435&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://folio-org.atlassian.net/wiki/pages/viewpage.action?pageId=1387435&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Questions&lt;/b&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="12956">UXPROD-4521</key>
            <summary>GBV. FOLIO module wrapper (mod-harvester-admin, ui-harvester-admin) around existing Harvester (Ramsons work)</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>
                            <parent id="11757">UXPROD-2293</parent>
                                    <priority id="10001" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p2.svg">P2</priority>
                        <status id="1" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                                        <assignee accountid="557058:f80403de-e149-421e-8750-af45c853402f">Charlotte Whitt</assignee>
                                                                <reporter accountid="557058:f80403de-e149-421e-8750-af45c853402f">Charlotte Whitt</reporter>
                                    <labels>
                            <label>CBS2FOLIO</label>
                            <label>GBV</label>
                    </labels>
                <created>Mon, 23 Oct 2023 07:51:03 +0000</created>
                <updated>Thu, 8 Feb 2024 11:25:15 +0000</updated>
                                                            <fixVersion>Ramsons (R2 2024)</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                <comments>
                                                            <comment id="14723" author="557058:f80403de-e149-421e-8750-af45c853402f" created="Wed, 15 Nov 2023 08:06:56 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3A363234f4-7171-418a-92d6-83fbb9f543fc&quot; class=&quot;user-hover&quot; rel=&quot;712020:363234f4-7171-418a-92d6-83fbb9f543fc&quot; data-account-id=&quot;712020:363234f4-7171-418a-92d6-83fbb9f543fc&quot; accountid=&quot;712020:363234f4-7171-418a-92d6-83fbb9f543fc&quot; rel=&quot;noreferrer&quot;&gt;Felix Hemme&lt;/a&gt; and &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3Ab57ef8b6-d7f7-4536-8029-8959fbf68c8a&quot; class=&quot;user-hover&quot; rel=&quot;712020:b57ef8b6-d7f7-4536-8029-8959fbf68c8a&quot; data-account-id=&quot;712020:b57ef8b6-d7f7-4536-8029-8959fbf68c8a&quot; accountid=&quot;712020:b57ef8b6-d7f7-4536-8029-8959fbf68c8a&quot; rel=&quot;noreferrer&quot;&gt;Antje Niemann&lt;/a&gt; - did you find time to move over the possible jira stories listed under 
    &lt;span class=&quot;jira-issue-macro&quot; data-jira-key=&quot;UXPROD-4463&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-4463&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;GBV. FOLIO module wrapper (mod-harvester-admin, ui-harvester-admin) around existing Legacy Harvester (Quesnelia work)&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10322?size=medium&quot; /&gt;
            UXPROD-4463
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-current jira-macro-single-issue-export-pdf&quot;&gt;In Progress&lt;/span&gt;
            &lt;/span&gt;
, which we safely can postpone to the Ramsons release? &lt;/p&gt;</comment>
                                                            <comment id="14727" author="712020:363234f4-7171-418a-92d6-83fbb9f543fc" created="Fri, 17 Nov 2023 07:54:30 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Af80403de-e149-421e-8750-af45c853402f&quot; class=&quot;user-hover&quot; rel=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; data-account-id=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; accountid=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; rel=&quot;noreferrer&quot;&gt;Charlotte Whitt&lt;/a&gt; , our priority this week was to work on the issue we had found in Bremens Inventory (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;MODINVUP-81&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/MODINVUP-81&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;CBS to FOLIO work flow. Unicode conversion. Bug in pica2xmlbulk.pl&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;
            MODINVUP-81
        &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;
). Yesterday Antje and I went through the document of &lt;a href=&quot;https://docs.google.com/document/d/1BlYBwW4Y-rX9HN3dzGIDHmtC28M2zu_NIEBKoIQW1_g/edit&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;work packages for 2024&lt;/a&gt; in preparation for a talk with Kirstin. With 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;MODHAADM-76&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/MODHAADM-76&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;BE in Lecacy Harvester: Can&amp;#39;t access harvestables on reference environment harvester-dev.folio-dev.indexdata.com&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium&quot; /&gt;
            MODHAADM-76
        &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;
 done since yesterday we are now able to update UIHA to v2.0.0 and verify some of the bugs found. After we are done with that, we will take a look at 
    &lt;span class=&quot;jira-issue-macro&quot; data-jira-key=&quot;UXPROD-4463&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-4463&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;GBV. FOLIO module wrapper (mod-harvester-admin, ui-harvester-admin) around existing Legacy Harvester (Quesnelia work)&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10322?size=medium&quot; /&gt;
            UXPROD-4463
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-current jira-macro-single-issue-export-pdf&quot;&gt;In Progress&lt;/span&gt;
            &lt;/span&gt;
 and see what tickets are higher / lower priority.&lt;/p&gt;</comment>
                                                            <comment id="14730" author="557058:f80403de-e149-421e-8750-af45c853402f" created="Fri, 17 Nov 2023 12:03:24 +0000"  >&lt;p&gt;Sounds all good &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3A363234f4-7171-418a-92d6-83fbb9f543fc&quot; class=&quot;user-hover&quot; rel=&quot;712020:363234f4-7171-418a-92d6-83fbb9f543fc&quot; data-account-id=&quot;712020:363234f4-7171-418a-92d6-83fbb9f543fc&quot; accountid=&quot;712020:363234f4-7171-418a-92d6-83fbb9f543fc&quot; rel=&quot;noreferrer&quot;&gt;Felix Hemme&lt;/a&gt; &lt;img class=&quot;emoticon&quot; src=&quot;/images/icons/emoticons/thumbs_up.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="10001">
                    <name>Cloners</name>
                                            <outwardlinks description="clones">
                                        <issuelink>
            <issuekey id="13802">UXPROD-4463</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is cloned by">
                                        <issuelink>
            <issuekey id="12892">UXPROD-4658</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10008">
                    <name>Defines</name>
                                            <outwardlinks description="defines">
                                        <issuelink>
            <issuekey id="38215">MODHAADM-82</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is defined by ">
                                        <issuelink>
            <issuekey id="38205">MODHAADM-38</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="38208">MODHAADM-64</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="36670">UIHAADM-99</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="36679">UIHAADM-121</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="82767">MODHAADM-85</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="36747">UIHAADM-14</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="36682">UIHAADM-4</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="38152">MODINVUP-85</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="11174" name="Ska&#776;rmavbild 2021-06-16 kl. 13.11.01.png" size="226719" author="557058:f80403de-e149-421e-8750-af45c853402f" created="Mon, 23 Oct 2023 07:51:04 +0000"/>
                            <attachment id="11175" name="Ska&#776;rmavbild 2021-06-16 kl. 13.11.27.png" size="273047" author="557058:f80403de-e149-421e-8750-af45c853402f" created="Mon, 23 Oct 2023 07:51:04 +0000"/>
                            <attachment id="11176" name="Ska&#776;rmavbild 2021-06-16 kl. 13.11.51.png" size="1116204" author="557058:f80403de-e149-421e-8750-af45c853402f" created="Mon, 23 Oct 2023 07:51:04 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10053" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Back End Estimate</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10122"><![CDATA[Large < 10 days]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10054" key="com.atlassian.jira.plugin.system.customfieldtypes:userpicker">
                        <customfieldname>Back End Estimator</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5bffed5e2434bf3a1a91d37a</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <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="10178"><![CDATA[Sif]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10014" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue key="$xmlutils.escape($text)">FOLIO Harvester - new FOLIO module </customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10050" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Front End Estimate</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10099"><![CDATA[XL < 15 days]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10051" key="com.atlassian.jira.plugin.system.customfieldtypes:userpicker">
                        <customfieldname>Front End Estimator</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>557058:f80403de-e149-421e-8750-af45c853402f</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_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i08ceg:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10069" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Cornell (Full Sum 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10217"><![CDATA[R5]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10074" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: GBV (MVP Sum 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10238"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10082" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Mainz (Full TBD)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10278"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10046" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Release</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10080"><![CDATA[Ramsons (R2 2024)]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 17 Nov 2023 07:54:30 +0000</customfieldvalue>

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