<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:20: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>[FOLIO-2446] Deletion of referenced records</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-2446</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;How do we maintain reference integrity when deleting records that are referenced elsewhere?  While technically this problem exists both within the context of a single module and across more than one module, the latter case is more challenging and the focus of this story.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;ConcreteExamples&quot;&gt;&lt;/a&gt;Concrete Examples&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;Orders (piece) references an inventory (item) record.  If the item is removed, the reference in the piece will point to a record that no longer exists.&lt;/li&gt;
	&lt;li&gt;Various records in orders, organizations, invoice, finance reference acquisitions-unit records.  If an acquisition-unit is removed, this could be problematic for those records that are associated with it.&lt;/li&gt;
	&lt;li&gt;Circulation (loan) references an inventory (item) record.  If the item is removed, the reference in the loan will point to a record that no longer exists.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;&lt;a name=&quot;Approaches&quot;&gt;&lt;/a&gt;Approaches&lt;/h2&gt;
&lt;p&gt;The tech leads group discussed this topic briefly.  Here are some of the solutions discussed:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;soft delete&lt;/b&gt; - don&apos;t delete the record, but mark it as &quot;deleted&quot; and adjust queries and/or business logic so that these records are hidden.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;prevent deletion of referenced record&lt;/b&gt; - before deleting a record, search for records that reference it, and if any are found, prevent the record from being deleted&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;cascading delete&lt;/b&gt; - may make sense in some cases if everything is within a single module, but how do you know for sure that it isn&apos;t referenced elsewhere?&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;pub-sub: notification&lt;/b&gt; - publish an event whenever a record is deleted, allowing other modules to clean up references, or perform other appropriate actions.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;pub-sub: ask for permission to delete&lt;/b&gt; - I want to delete a record, ask other modules if it&apos;s ok to proceed&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="79637">FOLIO-2446</key>
            <summary>Deletion of referenced records</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="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="-1">Unassigned</assignee>
                                                                <reporter accountid="5cf6c546b87c300f36eb7b9a">Craig McNally</reporter>
                                    <labels>
                    </labels>
                <created>Wed, 5 Feb 2020 13:55:36 +0000</created>
                <updated>Mon, 7 Mar 2022 19:10:46 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                <comments>
                                                            <comment id="189434" author="557058:f80403de-e149-421e-8750-af45c853402f" created="Tue, 11 May 2021 05:58:01 +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; and &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=63e2a2771b13d42998e4e706&quot; class=&quot;user-hover&quot; rel=&quot;63e2a2771b13d42998e4e706&quot; data-account-id=&quot;63e2a2771b13d42998e4e706&quot; accountid=&quot;63e2a2771b13d42998e4e706&quot; rel=&quot;noreferrer&quot;&gt;Marc Johnson&lt;/a&gt; - I linked up this ticket with 
    &lt;span class=&quot;jira-issue-macro&quot; data-jira-key=&quot;UXPROD-1889&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-1889&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Inventory. Settings: Delete warning when deleting e.g. format or contributor type&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-1889
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-complete jira-macro-single-issue-export-pdf&quot;&gt;Open&lt;/span&gt;
            &lt;/span&gt;
. &lt;/p&gt;

&lt;p&gt;This work was discussed with the Tech Leads last year. Has this come up in later discussions/talks since February 2020, and have there been made any decision on which approach to follow?&lt;/p&gt;</comment>
                                                            <comment id="189436" author="63e2a2771b13d42998e4e706" created="Tue, 11 May 2021 10:56:36 +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;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;This work was discussed with the Tech Leads last year. Has this come up in later discussions/talks since February 2020, and have there been made any decision on which approach to follow?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Yes, this has come up a few times since then, most recently on &lt;a href=&quot;https://folio-org.atlassian.net/wiki/display/TLG/2021-03-24+Meeting+notes&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;2020-03-24&lt;/a&gt;. &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=615afd1cd9820f0070a09ef0&quot; class=&quot;user-hover&quot; rel=&quot;615afd1cd9820f0070a09ef0&quot; data-account-id=&quot;615afd1cd9820f0070a09ef0&quot; accountid=&quot;615afd1cd9820f0070a09ef0&quot; rel=&quot;noreferrer&quot;&gt;Zak Burke&lt;/a&gt; has raised a draft &lt;a href=&quot;https://folio-org.atlassian.net/wiki/display/DD/Deletion+of+core-module+records+may+leave+dangling+references+from+non-core+modules&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;decision log entry&lt;/a&gt; for it for further discussion.&lt;/p&gt;

&lt;p&gt;I believe the App Interaction SIG has also been having discussions about this.&lt;/p&gt;

&lt;p&gt;I don&apos;t believe any decision has been made about how to do this. I believe some areas have already followed one of those paths (and in some cases this has caused challenges).&lt;/p&gt;

&lt;p&gt;Personally, I don&apos;t think this a wholly technical decision. Each of those options provide a different user experience, which I think means that we need involvement from the domain folks to make these decisions. It might be that different approaches are taken in different areas.&lt;/p&gt;</comment>
                                                            <comment id="189439" author="557058:f80403de-e149-421e-8750-af45c853402f" created="Mon, 7 Mar 2022 17:36:44 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=63e2a2771b13d42998e4e706&quot; class=&quot;user-hover&quot; rel=&quot;63e2a2771b13d42998e4e706&quot; data-account-id=&quot;63e2a2771b13d42998e4e706&quot; accountid=&quot;63e2a2771b13d42998e4e706&quot; rel=&quot;noreferrer&quot;&gt;Marc Johnson&lt;/a&gt; - with the latest work on MODINSTOR-829 - does that pave the path for this ticket 
    &lt;span class=&quot;jira-issue-macro&quot; data-jira-key=&quot;FOLIO-2446&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-2446&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Deletion of referenced records&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;
            FOLIO-2446
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-complete jira-macro-single-issue-export-pdf&quot;&gt;Open&lt;/span&gt;
            &lt;/span&gt;
 to be worked on as well - as a central solution? &lt;/p&gt;

&lt;p&gt;Or do we still need to write up a ticket for every Settings page with reference values? See some of the tickets already filed and listed as defining the feature 
    &lt;span class=&quot;jira-issue-macro&quot; data-jira-key=&quot;UXPROD-1889&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-1889&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Inventory. Settings: Delete warning when deleting e.g. format or contributor type&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-1889
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-complete jira-macro-single-issue-export-pdf&quot;&gt;Open&lt;/span&gt;
            &lt;/span&gt;
 (release Morning Glory or Nolana) . Please advise.&lt;/p&gt;</comment>
                                                            <comment id="189441" author="63e2a2771b13d42998e4e706" created="Mon, 7 Mar 2022 19:10:46 +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;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;with the latest work on MODINSTOR-829 - does that pave the path for this ticket 
    &lt;span class=&quot;jira-issue-macro&quot; data-jira-key=&quot;FOLIO-2446&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-2446&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Deletion of referenced records&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;
            FOLIO-2446
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-complete jira-macro-single-issue-export-pdf&quot;&gt;Open&lt;/span&gt;
            &lt;/span&gt;
 to be worked on as well - as a central solution?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;That really depends upon the scope of this issue.&lt;/p&gt;

&lt;p&gt;
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;MODINVSTOR-829&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/MODINVSTOR-829&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Handle delete of statistical code associated with instance, holdings, or item properly..&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;
            MODINVSTOR-829
        &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;
 provides a specific solution to when an array field (for when something can be related to more than 1, e.g. an instance can have more than one statistical code) is used to reference a record.&lt;/p&gt;

&lt;p&gt;It is not a general solution to protection from deletion when a record is referenced anywhere or in any way.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Or do we still need to write up a ticket for every Settings page with reference values?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Even if we came up with a generally applicable solution, there would still need to be work for every set of records that can be referenced and likely for every referrer.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10008">
                    <name>Defines</name>
                                            <outwardlinks description="defines">
                                        <issuelink>
            <issuekey id="11703">UXPROD-1889</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="71190">UITEN-128</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </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_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i00o07:</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>Tue, 11 May 2021 05:58:01 +0000</customfieldvalue>

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