<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 22:30:07 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>[MODEXPW-45] Get matching records based on provided identifiers</title>
                <link>https://folio-org.atlassian.net/browse/MODEXPW-45</link>
                <project id="10012" key="MODEXPW">mod-data-export-worker</project>
                    <description>&lt;p&gt;&lt;b&gt;Purpose/Overview:&lt;/b&gt;&lt;br/&gt;
After uploading a CSV file with users&apos; UUIDs the user should be able to see the preview of matched records(top 10) and be able to download a CSV file with matched records, so the records can be reviewed and later modified. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Requirements/Scope:&lt;/b&gt; &lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;All records returned are saved in csv&lt;/li&gt;
	&lt;li&gt;Keys are replaced with values&lt;/li&gt;
	&lt;li&gt;The file name follows the convention: &amp;lt;yyyy-mm-dd-Matched-Records-&amp;lt;name of the file with identifiers&amp;gt;.csv&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;b&gt;Approach:&lt;/b&gt;   &lt;br/&gt;
1) Update the JobCommand with the new field that will define the export type for bulk edit (since in future we have to work with barcodes CSV file instead of UUIDs only and work with different record types like Users, Items and etc we have to know which Job we need to launch, this information must be put to the JobCommand)&lt;br/&gt;
2) Implement an endpoint for saving UUIDs CSV files locally in mod-data-export-worker. &lt;br/&gt;
/bulk-edit/&lt;tt&gt;jobId&lt;/tt&gt;/upload, where jobId is the id of created JobCommand. &lt;br/&gt;
3) Implement a base Job for exporting records to CSV files.&lt;br/&gt;
4) Reference data caching. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Acceptance criteria:&lt;/b&gt; &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;File is created and can be saved&lt;/li&gt;
	&lt;li&gt;File contains all fields from the user record&lt;/li&gt;
	&lt;li&gt;Keys are replaced with corresponding values&lt;/li&gt;
	&lt;li&gt;The copy of a file is saved.&lt;/li&gt;
	&lt;li&gt;File name follows the convention&lt;/li&gt;
	&lt;li&gt;Unit and API tests are written where applicable&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="30977">MODEXPW-45</key>
            <summary>Get matching records based on provided identifiers</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="712020:6a686c16-9faf-499e-b5ea-d5e640ebd2a3">Siarhei Charniak</assignee>
                                                                <reporter accountid="557058:8629b273-56f1-466d-b7c7-5cbac0c3379b">Magda Zacharska</reporter>
                                    <labels>
                            <label>bulk-edit-pilot</label>
                    </labels>
                <created>Fri, 3 Sep 2021 00:55:50 +0000</created>
                <updated>Thu, 16 Dec 2021 00:07:47 +0000</updated>
                            <resolved>Thu, 16 Dec 2021 00:07:47 +0000</resolved>
                                                    <fixVersion>1.3.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                <comments>
                                                            <comment id="69043" author="557058:8629b273-56f1-466d-b7c7-5cbac0c3379b" created="Fri, 19 Nov 2021 00:09:17 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3A34093935-4596-40a6-8e57-61b3f326b5b3&quot; class=&quot;user-hover&quot; rel=&quot;712020:34093935-4596-40a6-8e57-61b3f326b5b3&quot; data-account-id=&quot;712020:34093935-4596-40a6-8e57-61b3f326b5b3&quot; accountid=&quot;712020:34093935-4596-40a6-8e57-61b3f326b5b3&quot; rel=&quot;noreferrer&quot;&gt;Illia Daliek&lt;/a&gt; please do not make changes to the description of the jira after it was estimated by the team.  Also, please do not make changes to the acceptance criteria without letting PO know.   Any required changes should be discussed and documented in the comments to the ticket.&lt;/p&gt;</comment>
                                                            <comment id="69044" author="712020:6a686c16-9faf-499e-b5ea-d5e640ebd2a3" created="Wed, 8 Dec 2021 05:02:42 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A8629b273-56f1-466d-b7c7-5cbac0c3379b&quot; class=&quot;user-hover&quot; rel=&quot;557058:8629b273-56f1-466d-b7c7-5cbac0c3379b&quot; data-account-id=&quot;557058:8629b273-56f1-466d-b7c7-5cbac0c3379b&quot; accountid=&quot;557058:8629b273-56f1-466d-b7c7-5cbac0c3379b&quot; rel=&quot;noreferrer&quot;&gt;Magda Zacharska&lt;/a&gt;&lt;br/&gt;
Verified on folio-snapshot environment.&lt;/p&gt;

&lt;p&gt;1. Create a new Job&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;
curl --location --request POST &lt;span class=&quot;code-quote&quot;&gt;&apos;https:&lt;span class=&quot;code-comment&quot;&gt;//folio-snapshot-load-okapi.dev.folio.org:443/data-export-spring/jobs&apos;&lt;/span&gt; \
&lt;/span&gt;--header &lt;span class=&quot;code-quote&quot;&gt;&apos;x-okapi-tenant: diku&apos;&lt;/span&gt; \
--header &lt;span class=&quot;code-quote&quot;&gt;&quot;x-okapi-token: $TOKEN&quot;&lt;/span&gt; \
--header &lt;span class=&quot;code-quote&quot;&gt;&apos;Content-Type: application/json&apos;&lt;/span&gt; \
--data-raw &apos;{
  &lt;span class=&quot;code-quote&quot;&gt;&quot;type&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;BULK_EDIT_IDENTIFIERS&quot;&lt;/span&gt;,
  &lt;span class=&quot;code-quote&quot;&gt;&quot;exportTypeSpecificParameters&quot;&lt;/span&gt;: {},
  &lt;span class=&quot;code-quote&quot;&gt;&quot;identifierType&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;BARCODE&quot;&lt;/span&gt;,
  &lt;span class=&quot;code-quote&quot;&gt;&quot;entityType&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;USER&quot;&lt;/span&gt;
}&apos;
{
    &lt;span class=&quot;code-quote&quot;&gt;&quot;id&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;7feb90ef-9f84-4da9-ac1a-3149c4695afe&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;000001&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;source&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;diku_admin&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;isSystemSource&quot;&lt;/span&gt;: &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;type&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;BULK_EDIT_IDENTIFIERS&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;exportTypeSpecificParameters&quot;&lt;/span&gt;: {},
    &lt;span class=&quot;code-quote&quot;&gt;&quot;status&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;SCHEDULED&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;metadata&quot;&lt;/span&gt;: {
        &lt;span class=&quot;code-quote&quot;&gt;&quot;createdDate&quot;&lt;/span&gt;: 1638938131732,
        &lt;span class=&quot;code-quote&quot;&gt;&quot;createdByUserId&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;cd8fdbda-7db5-5734-a7f3-5e4315ef8f6a&quot;&lt;/span&gt;,
        &lt;span class=&quot;code-quote&quot;&gt;&quot;createdByUsername&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;diku_admin&quot;&lt;/span&gt;,
        &lt;span class=&quot;code-quote&quot;&gt;&quot;updatedDate&quot;&lt;/span&gt;: 1638938131732,
        &lt;span class=&quot;code-quote&quot;&gt;&quot;updatedByUserId&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;cd8fdbda-7db5-5734-a7f3-5e4315ef8f6a&quot;&lt;/span&gt;,
        &lt;span class=&quot;code-quote&quot;&gt;&quot;updatedByUsername&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;diku_admin&quot;&lt;/span&gt;
    },
    &lt;span class=&quot;code-quote&quot;&gt;&quot;identifierType&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;BARCODE&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;entityType&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;USER&quot;&lt;/span&gt;
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;2. Upload attached userIds.csv file with user barcodes:&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;
curl --location --request POST &lt;span class=&quot;code-quote&quot;&gt;&apos;https:&lt;span class=&quot;code-comment&quot;&gt;//folio-snapshot-load-okapi.dev.folio.org:443/bulk-edit/7feb90ef-9f84-4da9-ac1a-3149c4695afe/upload&apos;&lt;/span&gt; \
&lt;/span&gt;--header &lt;span class=&quot;code-quote&quot;&gt;&apos;x-okapi-tenant: diku&apos;&lt;/span&gt; \
--header &lt;span class=&quot;code-quote&quot;&gt;&quot;x-okapi-token: $TOKEN&quot;&lt;/span&gt; \
--header &lt;span class=&quot;code-quote&quot;&gt;&apos;Content-Type: multipart/form-data&apos;&lt;/span&gt; \
--form &lt;span class=&quot;code-quote&quot;&gt;&apos;file=@&lt;span class=&quot;code-quote&quot;&gt;&quot;userIds.csv&quot;&lt;/span&gt;&apos;&lt;/span&gt;
200 OK
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;3. Check job status - SUCCESSFUL&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;
curl --location --request GET &lt;span class=&quot;code-quote&quot;&gt;&apos;https:&lt;span class=&quot;code-comment&quot;&gt;//folio-snapshot-load-okapi.dev.folio.org:443/data-export-spring/jobs/7feb90ef-9f84-4da9-ac1a-3149c4695afe&apos;&lt;/span&gt; \
&lt;/span&gt;--header &lt;span class=&quot;code-quote&quot;&gt;&apos;x-okapi-tenant: diku&apos;&lt;/span&gt; \
--header &lt;span class=&quot;code-quote&quot;&gt;&quot;x-okapi-token: $TOKEN&quot;&lt;/span&gt; \
--header &lt;span class=&quot;code-quote&quot;&gt;&apos;Content-Type: application/json&apos;&lt;/span&gt;
{
    &lt;span class=&quot;code-quote&quot;&gt;&quot;id&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;7feb90ef-9f84-4da9-ac1a-3149c4695afe&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;000001&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;source&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;diku_admin&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;isSystemSource&quot;&lt;/span&gt;: &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;type&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;BULK_EDIT_IDENTIFIERS&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;exportTypeSpecificParameters&quot;&lt;/span&gt;: {},
    &lt;span class=&quot;code-quote&quot;&gt;&quot;status&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;SUCCESSFUL&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;files&quot;&lt;/span&gt;: [
        &lt;span class=&quot;code-quote&quot;&gt;&quot;https:&lt;span class=&quot;code-comment&quot;&gt;//folio-snapshot-load-export.s3.us-east-1.amazonaws.com/userIds.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&amp;amp;X-Amz-Credential=AKIA2VGNPE73JV77RBGE%2F20211208%2Fus-east-1%2Fs3%2Faws4_request&amp;amp;X-Amz-Date=20211208T043603Z&amp;amp;X-Amz-Expires=604800&amp;amp;X-Amz-SignedHeaders=host&amp;amp;X-Amz-Signature=fa917db496918c3c3a7ff2bade167e7ed60414ee0587abd560a6616dd9352a6d&quot;&lt;/span&gt;
&lt;/span&gt;    ],
    &lt;span class=&quot;code-quote&quot;&gt;&quot;startTime&quot;&lt;/span&gt;: 1638938162877,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;endTime&quot;&lt;/span&gt;: 1638938163471,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;metadata&quot;&lt;/span&gt;: {
        &lt;span class=&quot;code-quote&quot;&gt;&quot;createdDate&quot;&lt;/span&gt;: 1638938131732,
        &lt;span class=&quot;code-quote&quot;&gt;&quot;createdByUserId&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;cd8fdbda-7db5-5734-a7f3-5e4315ef8f6a&quot;&lt;/span&gt;,
        &lt;span class=&quot;code-quote&quot;&gt;&quot;createdByUsername&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;diku_admin&quot;&lt;/span&gt;,
        &lt;span class=&quot;code-quote&quot;&gt;&quot;updatedDate&quot;&lt;/span&gt;: 1638938163793,
        &lt;span class=&quot;code-quote&quot;&gt;&quot;updatedByUserId&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;cd8fdbda-7db5-5734-a7f3-5e4315ef8f6a&quot;&lt;/span&gt;,
        &lt;span class=&quot;code-quote&quot;&gt;&quot;updatedByUsername&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;diku_admin&quot;&lt;/span&gt;
    },
    &lt;span class=&quot;code-quote&quot;&gt;&quot;identifierType&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;BARCODE&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;entityType&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;USER&quot;&lt;/span&gt;
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The result is in attached userIds-2.csv file.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10008">
                    <name>Defines</name>
                                            <outwardlinks description="defines">
                                        <issuelink>
            <issuekey id="12097">UXPROD-3229</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="30981">MODEXPW-49</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10006">
                    <name>Gantt End to Start</name>
                                            <outwardlinks description="has to be done before">
                                        <issuelink>
            <issuekey id="34454">MODEXPS-48</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="30980">MODEXPW-46</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="30965">MODEXPW-51</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="has to be done after">
                                        <issuelink>
            <issuekey id="79209">MODBULKED-2</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="21178" name="userIds-2.csv" size="1564" author="712020:6a686c16-9faf-499e-b5ea-d5e640ebd2a3" created="Wed, 8 Dec 2021 05:03:40 +0000"/>
                            <attachment id="21179" name="userIds.csv" size="59" author="712020:6a686c16-9faf-499e-b5ea-d5e640ebd2a3" created="Wed, 8 Dec 2021 05:03:40 +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="10152"><![CDATA[Firebird]]></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|i02snt:6</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="397">Firebird Sprint 129</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, 8 Dec 2021 05:02:42 +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>