<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:19:42 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[MODINVSTOR-576] Bulk delete of instance/holdings/items using CQL</title>
                <link>https://folio-org.atlassian.net/browse/MODINVSTOR-576</link>
                <project id="10139" key="MODINVSTOR">mod-inventory-storage</project>
                    <description>&lt;p&gt;As a systems librarian, I want the DELETE methods in the Inventory API endpoints to support and require CQL in order to make batch operations on Inventory records more safe and useful&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Background:&lt;/b&gt;&lt;br/&gt;
 This one came up after a Librarian by accident removed all items in Inventory, thinking the API endpoints implemented CQL for all methods.&lt;/p&gt;

&lt;p&gt;There are permissions in place in order to prevent these things from happening, so the solution/workaround for 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;CHAL-38&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/CHAL-38&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;It&amp;#39;s very easy to delete a lot of things in Inventory&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;
            CHAL-38
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 is already in place.&lt;/p&gt;

&lt;p&gt;But what this feature could enable, is a great tool for batch deleting things, but at the same time making it harder to make mistakes.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Proposal:&lt;/b&gt;&lt;br/&gt;
 1. Make the Inventory/Items and Inventory/Instances endpoinds support CQL queries&lt;br/&gt;
 2. Make CQL required for these endpoints. &lt;br/&gt;
 Optional:&lt;br/&gt;
 3. Put in some kind of threshold so a user cannot delete more than 20% of the objects in one go.&lt;/p&gt;</description>
                <environment></environment>
        <key id="55953">MODINVSTOR-576</key>
            <summary>Bulk delete of instance/holdings/items using CQL</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="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="5ee89462f7aa140abd82d11d">Julian Ladisch</assignee>
                                                                <reporter accountid="712020:0a02d059-b8b9-48b3-8a58-727ec44d05d2">Theodor Tolstoy (One-Group.se)</reporter>
                                    <labels>
                            <label>compatibility-breaking</label>
                    </labels>
                <created>Wed, 9 Oct 2019 13:11:20 +0000</created>
                <updated>Thu, 25 Aug 2022 09:18:19 +0000</updated>
                            <resolved>Mon, 22 Aug 2022 16:40:09 +0000</resolved>
                                                    <fixVersion>25.0.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                <comments>
                                                            <comment id="130842" author="5d6eeadef989e00d8c7e897b" created="Wed, 12 Jan 2022 18:19:52 +0000"  >&lt;p&gt;&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;&#160;&lt;/p&gt;</comment>
                                                            <comment id="130844" author="712020:1016bb1b-4358-4ba0-a6ff-31e7bd6da9ce" created="Tue, 5 Apr 2022 15:41:54 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ee89462f7aa140abd82d11d&quot; class=&quot;user-hover&quot; rel=&quot;5ee89462f7aa140abd82d11d&quot; data-account-id=&quot;5ee89462f7aa140abd82d11d&quot; accountid=&quot;5ee89462f7aa140abd82d11d&quot; rel=&quot;noreferrer&quot;&gt;Julian Ladisch&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;I have noticed a very concerning behavior of this API.&lt;br/&gt;
 If a user tries to execute the API: DELETE&#160;/item-storage/items?query=&amp;lt;query&amp;gt;, it delete all the data on the table&#160;&lt;em&gt;mod_inventory_storage.item.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Please note the query parameter sent by the user. The problem is the API actually doesn&apos;t expect any query parameter. Ref doc: &lt;a href=&quot;https://s3.amazonaws.com/foliodocs/api/mod-inventory-storage/r/item-storage.html#item_storage_items_delete&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;Item Storage&lt;/a&gt; It still goes ahead and delete all the data in table&#160;&lt;em&gt;mod_inventory_storage.item&lt;/em&gt;. This case is similar for holdings: Ref doc:&#160;&lt;a href=&quot;https://s3.amazonaws.com/foliodocs/api/mod-inventory-storage/r/holdings-storage.html#holdings_storage_holdings_delete&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;Holdings Storage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This happened recently with a tenant.&lt;/p&gt;</comment>
                                                            <comment id="130847" author="5ee89462f7aa140abd82d11d" created="Tue, 5 Apr 2022 16:00:04 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3A1016bb1b-4358-4ba0-a6ff-31e7bd6da9ce&quot; class=&quot;user-hover&quot; rel=&quot;712020:1016bb1b-4358-4ba0-a6ff-31e7bd6da9ce&quot; data-account-id=&quot;712020:1016bb1b-4358-4ba0-a6ff-31e7bd6da9ce&quot; accountid=&quot;712020:1016bb1b-4358-4ba0-a6ff-31e7bd6da9ce&quot; rel=&quot;noreferrer&quot;&gt;Aditya Kumar&lt;/a&gt;: This is exactly as documented and as described in this issue&apos;s description.&lt;/p&gt;

&lt;p&gt;What do you intend with the comment directed to me?&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                                                            <comment id="130849" author="712020:1016bb1b-4358-4ba0-a6ff-31e7bd6da9ce" created="Thu, 7 Apr 2022 12:10:29 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ee89462f7aa140abd82d11d&quot; class=&quot;user-hover&quot; rel=&quot;5ee89462f7aa140abd82d11d&quot; data-account-id=&quot;5ee89462f7aa140abd82d11d&quot; accountid=&quot;5ee89462f7aa140abd82d11d&quot; rel=&quot;noreferrer&quot;&gt;Julian Ladisch&lt;/a&gt;,&lt;br/&gt;
I just wanted to bring this to attention as this same scenario occurred again for one of our tenants recently. So There might be a need to find a solution or workaround for this problem.&lt;/p&gt;</comment>
                                                            <comment id="130851" author="63e2a2771b13d42998e4e706" created="Wed, 1 Jun 2022 10:47:18 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ee89462f7aa140abd82d11d&quot; class=&quot;user-hover&quot; rel=&quot;5ee89462f7aa140abd82d11d&quot; data-account-id=&quot;5ee89462f7aa140abd82d11d&quot; accountid=&quot;5ee89462f7aa140abd82d11d&quot; rel=&quot;noreferrer&quot;&gt;Julian Ladisch&lt;/a&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;&lt;/p&gt;

&lt;p&gt;I think the timing of this is change is unfortunate, coming only 3 days before the feature freeze for 2022 R2. It would be better if these kinds of changes could be made near the beginning of the release cycle.&lt;/p&gt;

&lt;p&gt;I would rather significant (and especially breaking changes) weren&apos;t made this close to the release period.&lt;/p&gt;

&lt;p&gt;It increases the chances of delaying the module release and that issues will be discovered in the BugFest period rather than in testing activities throughout the development cycle.&lt;/p&gt;

&lt;p&gt;If this change goes ahead please:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;make sure there are changes in all dependent modules for supporting these new interfaces before merging&lt;/li&gt;
	&lt;li&gt;(given the changes to message publishing) contact all of the teams that maintain modules that use the Kafka messages to test that their modules still work with those messages.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                                                            <comment id="130853" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Mon, 8 Aug 2022 12:13:46 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ee89462f7aa140abd82d11d&quot; class=&quot;user-hover&quot; rel=&quot;5ee89462f7aa140abd82d11d&quot; data-account-id=&quot;5ee89462f7aa140abd82d11d&quot; accountid=&quot;5ee89462f7aa140abd82d11d&quot; rel=&quot;noreferrer&quot;&gt;Julian Ladisch&lt;/a&gt; will you go ahead and merge now that it is reviewed?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="56042">MODINVSTOR-389</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="57059">RMB-389</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10008">
                    <name>Defines</name>
                                            <outwardlinks description="defines">
                                        <issuelink>
            <issuekey id="11044">UXPROD-1719</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10006">
                    <name>Gantt End to Start</name>
                                            <outwardlinks description="has to be done before">
                                        <issuelink>
            <issuekey id="60732">MODINV-731</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="79657">FOLIO-2052</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="65021">MODOAIPMH-440</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="38138">MODINVUP-49</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="46206">UIIN-2162</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="33762">CHAL-38</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="49494">CIRC-1596</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="30138">CIRCSTORE-357</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="64096">MDEXP-551</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="74630">MODAUD-129</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="37132">MODCR-89</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="77774">MODCXINV-70</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="69453">MODFEE-270</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="56437">MODINVSTOR-901</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="39102">MODNCIP-43</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="59980">MODORDERS-757</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="73526">MODRS-135</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28972">MSEARCH-418</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="25531">UIOR-1017</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="77760">UIPCIR-42</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="77762">UIPCIR-43</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="33722">UIREC-242</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10144"><![CDATA[Core: Platform]]></customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10046" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Release</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10061"><![CDATA[Nolana (R3 2022)]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1463">CP: sprint 143</customfieldvalue>
    <customfieldvalue id="1464">CP Sprint 146</customfieldvalue>
    <customfieldvalue id="602">CP: sprint 141</customfieldvalue>
    <customfieldvalue id="1372">CP: sprint 144</customfieldvalue>
    <customfieldvalue id="1373">CP: Sprint 145</customfieldvalue>
    <customfieldvalue id="1437">CP: sprint 142</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, 12 Jan 2022 18:19:52 +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>