<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Fri Feb 09 00:05:17 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-33] Custom Fields (for User Record and as General Platform Feature): Phase 1 Backend Development</title>
                <link>https://folio-org.atlassian.net/browse/UXPROD-33</link>
                <project id="10000" key="UXPROD">UX Product</project>
                    <description>&lt;p&gt;5/30/2018:  Per UM SIG  - we need custom fields. The SIG will leverage tagging too but custom defined fields supports the need of more permanent storing of information, key/value pairs, and supports data migration too.  &lt;b&gt;Priority - Critical&lt;/b&gt;&lt;/p&gt;


&lt;h4&gt;&lt;a name=&quot;Documentation&quot;&gt;&lt;/a&gt;Documentation&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.google.com/presentation/d/1zXvDSw-zJ36dKWv1C-W3-x8yOmKNu01c3LV0prJh1F8/edit#slide=id.p&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://docs.google.com/presentation/d/1zXvDSw-zJ36dKWv1C-W3-x8yOmKNu01c3LV0prJh1F8/edit#slide=id.p&lt;/a&gt;&lt;/p&gt;
</description>
                <environment></environment>
        <key id="10222">UXPROD-33</key>
            <summary>Custom Fields (for User Record and as General Platform Feature): Phase 1 Backend Development</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="13688">UXPROD-396</parent>
                                    <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="62a96ae7192edb006f9f1bf9">Khalilah Gambrell</assignee>
                                                                <reporter accountid="5af5ed55244bc90a106063c7">Cate Boerema</reporter>
                                    <labels>
                            <label>crossplatform</label>
                            <label>q4-2019-at-risk</label>
                            <label>split</label>
                            <label>usermanagement</label>
                    </labels>
                <created>Thu, 18 Jan 2018 13:21:15 +0000</created>
                <updated>Mon, 21 Mar 2022 16:38:41 +0000</updated>
                            <resolved>Fri, 6 Mar 2020 19:39:29 +0000</resolved>
                                                    <fixVersion>Q1 2020</fixVersion>
                                        <due></due>
                            <votes>3</votes>
                                    <watches>16</watches>
                                                                <comments>
                                                            <comment id="13962" author="5af5ed55244bc90a106063c7" created="Wed, 13 Jun 2018 15:51:40 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=62a96ae7192edb006f9f1bf9&quot; class=&quot;user-hover&quot; rel=&quot;62a96ae7192edb006f9f1bf9&quot; data-account-id=&quot;62a96ae7192edb006f9f1bf9&quot; accountid=&quot;62a96ae7192edb006f9f1bf9&quot; rel=&quot;noreferrer&quot;&gt;Khalilah Gambrell&lt;/a&gt;, I hope it&apos;s okay that I extended the description of this feature to make it a general platform feature.  I assume you agree that, if we build custom field functionality, we should do it in such a way that it can be leveraged for different record types (beyond Users).  LMK if you see issues with this.&lt;/p&gt;</comment>
                                                            <comment id="13963" author="5af5e627525ba96b58654f12" created="Thu, 19 Jul 2018 16:35:24 +0000"  >&lt;p&gt;Had a discussion about statistical search code as a standard field in Inventory instance, holdings, item in MM SIG mtg on 19 July 2018. See notes/recording from that meeting. If custom fields are available, that would serve the purpose for statistical search code. Discuss more with &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;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Afeab5085-6c56-4f4a-957a-74f0c1088b9c&quot; class=&quot;user-hover&quot; rel=&quot;557058:feab5085-6c56-4f4a-957a-74f0c1088b9c&quot; data-account-id=&quot;557058:feab5085-6c56-4f4a-957a-74f0c1088b9c&quot; accountid=&quot;557058:feab5085-6c56-4f4a-957a-74f0c1088b9c&quot; rel=&quot;noreferrer&quot;&gt;Christie Thomas&lt;/a&gt;. Perhaps have a standard field for now in the inventory records and deprecate once custom fields are available.&lt;/p&gt;</comment>
                                                            <comment id="13964" author="557058:f80403de-e149-421e-8750-af45c853402f" created="Fri, 20 Jul 2018 06:37:40 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=62a96ae7192edb006f9f1bf9&quot; class=&quot;user-hover&quot; rel=&quot;62a96ae7192edb006f9f1bf9&quot; data-account-id=&quot;62a96ae7192edb006f9f1bf9&quot; accountid=&quot;62a96ae7192edb006f9f1bf9&quot; rel=&quot;noreferrer&quot;&gt;Khalilah Gambrell&lt;/a&gt; - This feature is set in Draft mode - do we know when Custom Fields are planned for? &lt;/p&gt;</comment>
                                                            <comment id="13965" author="5af5ed55244bc90a106063c7" created="Fri, 20 Jul 2018 07:48:14 +0000"  >&lt;p&gt;I know this question was to &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=62a96ae7192edb006f9f1bf9&quot; class=&quot;user-hover&quot; rel=&quot;62a96ae7192edb006f9f1bf9&quot; data-account-id=&quot;62a96ae7192edb006f9f1bf9&quot; accountid=&quot;62a96ae7192edb006f9f1bf9&quot; rel=&quot;noreferrer&quot;&gt;Khalilah Gambrell&lt;/a&gt;, but I thought I&apos;d chime in.  We are still working on our plans for beyond Q3 2018 (custom fields isn&apos;t targeted for Q3)&lt;/p&gt;</comment>
                                                            <comment id="13966" author="5cf6c265e7d2310e9fc0c5ac" created="Fri, 9 Nov 2018 21:45:59 +0000"  >&lt;p&gt;I&apos;m not convinced that custom fields should be a platform-level feature. Given microservices and the bounded-contexts they depend on, the case should be made that each domain would not be better suited to provide its own separate custom field implementation. Are custom fields for users really the same as custom fields for an order record or an item record, etc?&lt;/p&gt;</comment>
                                                            <comment id="13967" author="5af5ed55244bc90a106063c7" created="Thu, 15 Nov 2018 10:44:43 +0000"  >&lt;blockquote&gt;&lt;p&gt;I&apos;m not convinced that custom fields should be a platform-level feature. Given microservices and the bounded-contexts they depend on, the case should be made that each domain would not be better suited to provide its own separate custom field implementation. Are custom fields for users really the same as custom fields for an order record or an item record, etc?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5cf6c265e7d2310e9fc0c5ac&quot; class=&quot;user-hover&quot; rel=&quot;5cf6c265e7d2310e9fc0c5ac&quot; data-account-id=&quot;5cf6c265e7d2310e9fc0c5ac&quot; accountid=&quot;5cf6c265e7d2310e9fc0c5ac&quot; rel=&quot;noreferrer&quot;&gt;VBar&lt;/a&gt;, the intention behind the &quot;as a General Platform Feature&quot; note was to convey that we would not look at the User record needs in a vacuum and that would strive to develop a UX and code that could be leveraged for other apps and record types.  &lt;/p&gt;</comment>
                                                            <comment id="13968" author="5d6eeadef989e00d8c7e897b" created="Fri, 29 Mar 2019 21:53:04 +0000"  >&lt;p&gt;Comment from March Meeting: This could be needed for Users&lt;/p&gt;</comment>
                                                            <comment id="13969" author="5c48911b54e1e6466b11f38c" created="Wed, 3 Apr 2019 19:58:48 +0000"  >&lt;p&gt;This is definitely needed for users. This also has major implications for the work being done right now about the reporting data model being developed now as well.&lt;/p&gt;</comment>
                                                            <comment id="13970" author="557058:de4eac47-6d4e-4b50-9c3c-4a82ed705e52" created="Fri, 2 Aug 2019 11:57:04 +0000"  >&lt;p&gt;I agree with &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5cf6c265e7d2310e9fc0c5ac&quot; class=&quot;user-hover&quot; rel=&quot;5cf6c265e7d2310e9fc0c5ac&quot; data-account-id=&quot;5cf6c265e7d2310e9fc0c5ac&quot; accountid=&quot;5cf6c265e7d2310e9fc0c5ac&quot; rel=&quot;noreferrer&quot;&gt;VBar&lt;/a&gt;. It would make sense to make it a platform-level feature if FOLIO was a monolith. But despite the fact that it looks like one big app on UI, FOLIO is microservices by its nature. And such platform-level features bring strong coupling between components of the platform, which directly contradicts its architecture.&lt;/p&gt;</comment>
                                                            <comment id="13971" author="5c48911b54e1e6466b11f38c" created="Fri, 2 Aug 2019 13:37:38 +0000"  >&lt;p&gt;I think Cate&apos;s comment upthread addresses this - the intention is to develop something that is not considered in a vacuum and could be implemented for other apps if desired, not necessarily something that is guaranteed to be available at the platform level (thus requiring a higher level of connection and support that FOLIO isn&apos;t supposed to do.) We&apos;re seeing that happening right now with notes, for example. It was initially built for eHoldings, and is being repurposed into Users with tweaks for the specific needs that Users has. &lt;/p&gt;</comment>
                                                            <comment id="13972" author="5c48911b54e1e6466b11f38c" created="Mon, 26 Aug 2019 18:36:42 +0000"  >&lt;p&gt;Is there a reason why this lost the cap-mvp label? &lt;/p&gt;</comment>
                                                            <comment id="13973" author="62a96ae7192edb006f9f1bf9" created="Wed, 6 Nov 2019 18:30:06 +0000"  >&lt;p&gt;Changing estimates to represent remaining backend development work. &lt;/p&gt;</comment>
                                                            <comment id="13974" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Wed, 12 Feb 2020 19:18:39 +0000"  >&lt;p&gt;Is there a description somewhere on what is being proposed implementation-wise on how custom fields will be implemented?&lt;/p&gt;

&lt;p&gt;I see the following property in user.json&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;
    &lt;span class=&quot;code-quote&quot;&gt;&quot;customFields&quot;&lt;/span&gt;: {
      &lt;span class=&quot;code-quote&quot;&gt;&quot;description&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt; that contains custom field&quot;&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;object&quot;&lt;/span&gt;
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;What I&apos;m hoping for is set&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;
  &lt;span class=&quot;code-quote&quot;&gt;&quot;additionalProperties&quot;&lt;/span&gt;: &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;,
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;on that object. And then allow custom properties to appear there.&lt;/p&gt;

&lt;p&gt;What I&apos;m hoping it is not doing, is storing things in an array in an odd format.&lt;/p&gt;

&lt;p&gt;The format I would like to see is something like the following where you can simply add properties in the customFields property.&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;
{
  &lt;span class=&quot;code-quote&quot;&gt;&quot;username&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;jemiller&quot;&lt;/span&gt;
  &lt;span class=&quot;code-quote&quot;&gt;&quot;personal&quot;&lt;/span&gt;: {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;firstName&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;Jon&quot;&lt;/span&gt;
  },
  &lt;span class=&quot;code-quote&quot;&gt;&quot;customFields&quot;&lt;/span&gt;: {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;departmentName&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;Library&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;divisionName&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;Library&quot;&lt;/span&gt;
  }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I am concerned that if the fields appear in an array, it will make updates difficult. For example, I have an application that updates users. It uses the standard FOLIO user JSON schema as the file format. I want to use the standard schema because I don&apos;t want to define a custom one. I want keep things simple. With regard to doing updates, you need to merge the data with what&apos;s already in the table. For arrays, if the property for the array exists, the array is overwritten in it&apos;s entirety.&lt;/p&gt;

&lt;p&gt;I would like to see it defined like it is above, that way it is kept in a tabular format without repeating fields.&lt;/p&gt;

&lt;p&gt;Also, I am against creating another module to store this data. IMHO, it should be stored in the entity&apos;s JSON itself.&lt;/p&gt;</comment>
                                                            <comment id="13975" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Wed, 12 Feb 2020 19:30:59 +0000"  >&lt;p&gt;I&apos;m wondering if when a custom field is defined, it is actually added to the JSON schema. Maybe you could have &lt;/p&gt;
{entity}
&lt;p&gt;CustomFields.json JSON schemas that are included which is modified by the institution.&lt;/p&gt;</comment>
                                                            <comment id="13976" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Wed, 12 Feb 2020 19:37:28 +0000"  >&lt;p&gt;Sorry, somehow I missed the links at the top. I will have a look now.&lt;/p&gt;</comment>
                                                            <comment id="13977" author="62a96ae7192edb006f9f1bf9" created="Wed, 12 Feb 2020 19:38:29 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ac2706f9e-f281-4999-8937-b5c5a8ff211f&quot; class=&quot;user-hover&quot; rel=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; data-account-id=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; accountid=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; rel=&quot;noreferrer&quot;&gt;Jon Miller&lt;/a&gt;, we will discuss backend development at the Users Management SIG on Wednesday, Feb 26 at 10am ET. Also all dev work is linked to this feature. I appreciate the questions and I will ask the dev team to review and respond. &lt;/p&gt;</comment>
                                                            <comment id="13978" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Wed, 12 Feb 2020 19:44:48 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=62a96ae7192edb006f9f1bf9&quot; class=&quot;user-hover&quot; rel=&quot;62a96ae7192edb006f9f1bf9&quot; data-account-id=&quot;62a96ae7192edb006f9f1bf9&quot; accountid=&quot;62a96ae7192edb006f9f1bf9&quot; rel=&quot;noreferrer&quot;&gt;Khalilah Gambrell&lt;/a&gt; Thanks. It looks like you&apos;re doing a nice job on the UI. I&apos;m just curious how the data is stored. I&apos;m hoping it&apos;s stored in a straightforward fashion so that the fields basically work the same way non-custom fields work.&lt;/p&gt;</comment>
                                                            <comment id="13979" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Wed, 12 Feb 2020 19:55:16 +0000"  >&lt;p&gt;I just realized that it appears that JSON schema sets additionalProperties to true by default. So, the customFields property in users.json already allows adding additional properties. I thought maybe that was just a stub for something that wasn&apos;t yet implemented.&lt;/p&gt;</comment>
                                                            <comment id="13980" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Fri, 14 Feb 2020 15:11:23 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=62a96ae7192edb006f9f1bf9&quot; class=&quot;user-hover&quot; rel=&quot;62a96ae7192edb006f9f1bf9&quot; data-account-id=&quot;62a96ae7192edb006f9f1bf9&quot; accountid=&quot;62a96ae7192edb006f9f1bf9&quot; rel=&quot;noreferrer&quot;&gt;Khalilah Gambrell&lt;/a&gt; Can you post a sample JSON document that has custom fields in it?&lt;/p&gt;</comment>
                                                            <comment id="13981" author="70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5" created="Fri, 14 Feb 2020 16:38:34 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ac2706f9e-f281-4999-8937-b5c5a8ff211f&quot; class=&quot;user-hover&quot; rel=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; data-account-id=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; accountid=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; rel=&quot;noreferrer&quot;&gt;Jon Miller&lt;/a&gt; the idea under custom fields is to have the same interface which can be used in different modules. The assignment part expect to have the following mapping &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; &lt;span class=&quot;code-quote&quot;&gt;&quot;refId&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;. As we do not know what refId names and values to expect, it was decided to use &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;&lt;span class=&quot;code-quote&quot;&gt;&quot;additionalProperties&quot;&lt;/span&gt;: &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Once you create a custom field &lt;br/&gt;
 &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;a id=&quot;10338_thumb&quot; href=&quot;/rest/api/3/attachment/content/10338&quot; title=&quot;Screenshot 2020-02-14 at 18.19.06.png&quot; file-preview-type=&quot;image&quot; file-preview-id=&quot;10338&quot; file-preview-title=&quot;Screenshot 2020-02-14 at 18.19.06.png&quot;&gt;&lt;jira-attachment-thumbnail url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10338?default=false&quot; jira-url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10338&quot; filename=&quot;Screenshot 2020-02-14 at 18.19.06.png&quot;&gt;&lt;img src=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10338&quot; data-attachment-name=&quot;Screenshot 2020-02-14 at 18.19.06.png&quot; data-attachment-type=&quot;thumbnail&quot; data-media-services-id=&quot;f68d6b87-70b9-4805-ac04-c91cb8c64253&quot; data-media-services-type=&quot;file&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/jira-attachment-thumbnail&gt;&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;
you will get a response with `refId` field and then you are able to assign a value to it&lt;br/&gt;
 &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;a id=&quot;10339_thumb&quot; href=&quot;/rest/api/3/attachment/content/10339&quot; title=&quot;Screenshot 2020-02-14 at 18.25.05.png&quot; file-preview-type=&quot;image&quot; file-preview-id=&quot;10339&quot; file-preview-title=&quot;Screenshot 2020-02-14 at 18.25.05.png&quot;&gt;&lt;jira-attachment-thumbnail url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10339?default=false&quot; jira-url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10339&quot; filename=&quot;Screenshot 2020-02-14 at 18.25.05.png&quot;&gt;&lt;img src=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10339&quot; data-attachment-name=&quot;Screenshot 2020-02-14 at 18.25.05.png&quot; data-attachment-type=&quot;thumbnail&quot; data-media-services-id=&quot;30798c68-f7d8-40d1-8cb3-32a15cc92892&quot; data-media-services-type=&quot;file&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/jira-attachment-thumbnail&gt;&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;
and the particular JSON documents used in samples are below&lt;br/&gt;
custom field:&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;{
  
  &lt;span class=&quot;code-quote&quot;&gt;&quot;visible&quot;&lt;/span&gt;: &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;,
  &lt;span class=&quot;code-quote&quot;&gt;&quot;required&quot;&lt;/span&gt;: &lt;span class=&quot;code-keyword&quot;&gt;true&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;TEXTBOX_SHORT&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;my field&quot;&lt;/span&gt;,
  &lt;span class=&quot;code-quote&quot;&gt;&quot;order&quot;&lt;/span&gt;: 1,
  &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;span class=&quot;code-quote&quot;&gt;&quot;helpText&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;Choose your favorite food&quot;&lt;/span&gt;
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;and assignment &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;
{
  &lt;span class=&quot;code-quote&quot;&gt;&quot;username&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;test&quot;&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;59793cf1-dbb8-4f8d-bc47-3d23afbf1f71&quot;&lt;/span&gt;,
  &lt;span class=&quot;code-quote&quot;&gt;&quot;active&quot;&lt;/span&gt;: &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;,
  &lt;span class=&quot;code-quote&quot;&gt;&quot;patronGroup&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;503a81cd-6c26-400f-b620-14c08943697c&quot;&lt;/span&gt;,
  &lt;span class=&quot;code-quote&quot;&gt;&quot;proxyFor&quot;&lt;/span&gt;: [],
  &lt;span class=&quot;code-quote&quot;&gt;&quot;personal&quot;&lt;/span&gt;: {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;lastName&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;test&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;firstName&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;test&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;middleName&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;test&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;email&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;marek.kamarie@sadd.us&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;addresses&quot;&lt;/span&gt;: [],
    &lt;span class=&quot;code-quote&quot;&gt;&quot;preferredContactTypeId&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;002&quot;&lt;/span&gt;
  },
  &lt;span class=&quot;code-quote&quot;&gt;&quot;customFields&quot;&lt;/span&gt;: {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;my-field_2&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;qw&quot;&lt;/span&gt;
  }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; 

&lt;p&gt;Here is the case with several custom fields assignment &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;
&lt;span class=&quot;code-quote&quot;&gt;&quot;my-field_1&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;qwqw&quot;&lt;/span&gt;,
&lt;span class=&quot;code-quote&quot;&gt;&quot;my-field_2&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;pizza&quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If you need any additional info about implementation you can ask me.&lt;/p&gt;</comment>
                                                            <comment id="13982" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Fri, 14 Feb 2020 17:18:48 +0000"  >&lt;p&gt;Thanks &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3A26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; class=&quot;user-hover&quot; rel=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; data-account-id=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; accountid=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; rel=&quot;noreferrer&quot;&gt;Natalia Zaitseva&lt;/a&gt; That seems to look good to me. I just wanted to make sure that the custom fields weren&apos;t stored in some weird array or something with a bunch of other metadata. They basically look just like all the other fields do, just under the customFields property. So, that&apos;s fine with me. That&apos;s what I was hoping for. So, the definition of the fields will be stored in a table in some other module? It might be nice if there was a way for it to generate a JSON schema that was included in the objects JSON schema as a reference under customFields. That&apos;s not really hugely important IMHO though. As long as the fields can be easily stored and retrieved for the given object, the same way all the other standard properties are, it looks good to me.&lt;/p&gt;</comment>
                                                            <comment id="13983" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Fri, 14 Feb 2020 17:26:54 +0000"  >&lt;p&gt;Actually, how would validation of those fields work? For example, say the field is something like a drop down list where you are only allowed to specify certain values? If it has to query a table in another module every time you insert or update a record, I could see that causing performance problems.&lt;/p&gt;</comment>
                                                            <comment id="13984" author="70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5" created="Mon, 17 Feb 2020 12:15:35 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ac2706f9e-f281-4999-8937-b5c5a8ff211f&quot; class=&quot;user-hover&quot; rel=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; data-account-id=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; accountid=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; rel=&quot;noreferrer&quot;&gt;Jon Miller&lt;/a&gt; &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;So, the definition of the fields will be stored in a table in some other module?&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;If it has to query a table in another module every time you insert or update a record, I could see that causing performance problems.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Each module, which uses custom fields will have a table with definitions in the same schema for the module. For instance, mod-users will have its own table &apos;custom-fields&apos;  &lt;br/&gt;
&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;a id=&quot;10340_thumb&quot; href=&quot;/rest/api/3/attachment/content/10340&quot; title=&quot;Screenshot 2020-02-17 at 13.56.15.png&quot; file-preview-type=&quot;image&quot; file-preview-id=&quot;10340&quot; file-preview-title=&quot;Screenshot 2020-02-17 at 13.56.15.png&quot;&gt;&lt;jira-attachment-thumbnail url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10340?default=false&quot; jira-url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10340&quot; filename=&quot;Screenshot 2020-02-17 at 13.56.15.png&quot;&gt;&lt;img src=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10340&quot; data-attachment-name=&quot;Screenshot 2020-02-17 at 13.56.15.png&quot; data-attachment-type=&quot;thumbnail&quot; data-media-services-id=&quot;1238c8bf-f5a8-4a87-afbe-0eaa3d2f6e19&quot; data-media-services-type=&quot;file&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/jira-attachment-thumbnail&gt;&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;
so, there is no need to query a table in another module, because all data needed will be tied to the module schema in the database, i.e &apos;&amp;lt;tenant&amp;gt;_mod_users&amp;gt;&apos;, see an example on the screenshot above. &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;It might be nice if there was a way for it to generate a JSON schema that was included in the objects JSON schema as a reference under customFields.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;If you mean the case when a user selects the custom field value, then based on our model where we expect to have mapping like &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;&lt;span class=&quot;code-quote&quot;&gt;&quot;refId&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt; where  &apos;refId&apos; - is the key constant, we can not predict what &apos;refId&apos; custom field will have, as well as the value, whether it will be text field or multi-select dropdown.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Actually, how would validation of those fields work?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Well, we split up the validation of custom field definition and values assignment. Based on the type of the custom field there are a set of properties allowed. Then, we validate common fields, like name or description and the fields for a particular custom field type. During the assignment phase, when the custom field is assigned to the user, we perform the validation of the value(s).   &lt;/p&gt;
</comment>
                                                            <comment id="13985" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Mon, 17 Feb 2020 15:55:03 +0000"  >&lt;p&gt;Thanks &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3A26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; class=&quot;user-hover&quot; rel=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; data-account-id=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; accountid=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; rel=&quot;noreferrer&quot;&gt;Natalia Zaitseva&lt;/a&gt;. So, you are saying that users POST and PUT don&apos;t validate custom fields? If I understand you correctly, there are separate APIs that are used to validate custom fields (I mean when I do a POST to the users endpoint, does that endpoint validate the values in the customFields property)?&lt;/p&gt;</comment>
                                                            <comment id="13986" author="70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5" created="Mon, 17 Feb 2020 16:14:55 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ac2706f9e-f281-4999-8937-b5c5a8ff211f&quot; class=&quot;user-hover&quot; rel=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; data-account-id=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; accountid=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; rel=&quot;noreferrer&quot;&gt;Jon Miller&lt;/a&gt; &lt;br/&gt;
Both parts(custom fields creation and custom field assignment) have separate validation&lt;br/&gt;
I mean, when a user creates/updates a custom field(we call it custom field definition) i.e. request&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;POST or PUT /custom-fields&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; 
&lt;p&gt;backend validates fields defined for that custom field type&lt;br/&gt;
when a user sets the custom field value to a user record(we call it assignment) i.e&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;POST or PUT /users/&amp;lt;user_id&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt; backend have another validation to check if the entered value is allowed for that type of the custom field.&lt;/p&gt;</comment>
                                                            <comment id="13987" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Mon, 17 Feb 2020 16:20:07 +0000"  >&lt;p&gt;OK, so, the standard /users POST/PUT does validate custom fields. So, the question at that point, is, does that end point have to query the custom_fields table each time through in order to do the validation? The concern is that it is creating extra overhead and will slow down user POST/PUT. If it&apos;s doing extra database look ups, it will be slower than simply doing a JSON schema validation.&lt;/p&gt;</comment>
                                                            <comment id="13988" author="63e2a2771b13d42998e4e706" created="Mon, 17 Feb 2020 16:20:15 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3A26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; class=&quot;user-hover&quot; rel=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; data-account-id=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; accountid=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; rel=&quot;noreferrer&quot;&gt;Natalia Zaitseva&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;POST or PUT /custom-fields&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Is &lt;tt&gt;/custom-fields&lt;/tt&gt; an endpoint in users storage module, or is the definition of custom fields done centrally within it&apos;s own module?&lt;/p&gt;</comment>
                                                            <comment id="13989" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Mon, 17 Feb 2020 16:23:39 +0000"  >&lt;p&gt;I see a mod-custom-fields module in the developer documentation. And I see the JSON schemas for the custom field tables in there.&lt;/p&gt;</comment>
                                                            <comment id="13990" author="63e2a2771b13d42998e4e706" created="Mon, 17 Feb 2020 16:34:31 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ac2706f9e-f281-4999-8937-b5c5a8ff211f&quot; class=&quot;user-hover&quot; rel=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; data-account-id=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; accountid=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; rel=&quot;noreferrer&quot;&gt;Jon Miller&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I see a mod-custom-fields module in the developer documentation. And I see the JSON schemas for the custom field tables in there.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;As I understand it, from a previous conversation, &lt;tt&gt;mod-custom-fields&lt;/tt&gt; isn&apos;t a module rather a shared library for use in Java modules that use custom fields.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3A26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; class=&quot;user-hover&quot; rel=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; data-account-id=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; accountid=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; rel=&quot;noreferrer&quot;&gt;Natalia Zaitseva&lt;/a&gt; Please correct me if I&apos;m wrong?&lt;/p&gt;
</comment>
                                                            <comment id="13992" author="70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5" created="Mon, 17 Feb 2020 16:36:28 +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; yes, it is a library, that any module can add it.&lt;/p&gt;</comment>
                                                            <comment id="13994" author="70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5" created="Mon, 17 Feb 2020 16:40:40 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ac2706f9e-f281-4999-8937-b5c5a8ff211f&quot; class=&quot;user-hover&quot; rel=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; data-account-id=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; accountid=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; rel=&quot;noreferrer&quot;&gt;Jon Miller&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;So, the question at that point, is, does that endpoint have to query the custom_fields table each time through in order to do the validation?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt; yes. it has to, as well as user address-type, patron group validation.&lt;/p&gt;</comment>
                                                            <comment id="13996" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Mon, 17 Feb 2020 16:54:47 +0000"  >&lt;p&gt;The users module should not have to do extra look ups for address type or patron group. It can simply rely on database foreign key constraints for that. That is a more efficient way to do it. Any API that is doing a lot of extra look ups on each insert/update, is going to be slow with regard to bulk insert/updates.&lt;/p&gt;

&lt;p&gt;Maybe it won&apos;t be that big of a deal for the users module assuming institutions don&apos;t have a whole lot of users, but, I think it will cause performance problems on bigger tables. For example, if you had it on instances, holdings, or items. I don&apos;t know if there is a need for that off hand. I&apos;m just saying that it&apos;s a concern that I have.&lt;/p&gt;

&lt;p&gt;IMHO, checks that can be done using foreign key constraints, should be done that way rather than doing extra look ups.&lt;/p&gt;

&lt;p&gt;Regarding, validating custom fields, one way to get around doing extra look ups would be to store the validation rules as JSON schema in a separate file that is referenced from the main user.json. When a user adds a custom field through settings, write the JSON schema for it to the referenced file. I don&apos;t know how JSON schemas are read in FOLIO. I&apos;m assuming they are read by file? There is overhead parsing JSON schema files. It would be best to read the files once into a static variable. Then, just use that variable each time an insert/update happens. You could store the custom field JSON schema in a table, or as a file. You could have it where it&apos;s written to disk and read when FOLIO starts, but, assuming you don&apos;t want to require a restart of the module after a custom field has been added, you could have it refresh the the JSON schema static variable.&lt;/p&gt;

&lt;p&gt;Basically, what I&apos;m getting at, is that extra table look ups should be avoided where possible. And that should be taken into consideration when designing how custom field validation works.&lt;/p&gt;</comment>
                                                            <comment id="13998" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Mon, 17 Feb 2020 19:29:25 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3A26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; class=&quot;user-hover&quot; rel=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; data-account-id=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; accountid=&quot;70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5&quot; rel=&quot;noreferrer&quot;&gt;Natalia Zaitseva&lt;/a&gt; So, do the APIs listed at &lt;a href=&quot;https://s3.amazonaws.com/foliodocs/api/mod-custom-fields/p/custom-fields.html&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://s3.amazonaws.com/foliodocs/api/mod-custom-fields/p/custom-fields.html&lt;/a&gt; get mapped as URLs under /users for the users module?&lt;/p&gt;</comment>
                                                            <comment id="10000" author="557058:c2706f9e-f281-4999-8937-b5c5a8ff211f" created="Mon, 17 Feb 2020 19:37:10 +0000"  >&lt;p&gt;Although I haven&apos;t thought it through all that much, I almost think it would be better if the custom_fields table only occurred once in it&apos;s own schema/module. I&apos;m wondering what good it is having it each module?&lt;/p&gt;</comment>
                                                            <comment id="10002" author="557058:003b2b3f-c9ac-4207-96eb-21cdb3765e26" created="Tue, 18 Feb 2020 13:05:39 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ac2706f9e-f281-4999-8937-b5c5a8ff211f&quot; class=&quot;user-hover&quot; rel=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; data-account-id=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; accountid=&quot;557058:c2706f9e-f281-4999-8937-b5c5a8ff211f&quot; rel=&quot;noreferrer&quot;&gt;Jon Miller&lt;/a&gt;&lt;br/&gt;
I suggest to move answering to question to demo session to 2/26&lt;br/&gt;
And also please continue put your question here. &lt;br/&gt;
We will compose all of them before demo then discuss all of them during demo one by one.&lt;br/&gt;
CC &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=62a96ae7192edb006f9f1bf9&quot; class=&quot;user-hover&quot; rel=&quot;62a96ae7192edb006f9f1bf9&quot; data-account-id=&quot;62a96ae7192edb006f9f1bf9&quot; accountid=&quot;62a96ae7192edb006f9f1bf9&quot; rel=&quot;noreferrer&quot;&gt;Khalilah Gambrell&lt;/a&gt;&lt;/p&gt;</comment>
                                                            <comment id="10003" author="63e2a2771b13d42998e4e706" created="Tue, 18 Feb 2020 14:21:30 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A003b2b3f-c9ac-4207-96eb-21cdb3765e26&quot; class=&quot;user-hover&quot; rel=&quot;557058:003b2b3f-c9ac-4207-96eb-21cdb3765e26&quot; data-account-id=&quot;557058:003b2b3f-c9ac-4207-96eb-21cdb3765e26&quot; accountid=&quot;557058:003b2b3f-c9ac-4207-96eb-21cdb3765e26&quot; rel=&quot;noreferrer&quot;&gt;Oleksii Petrenko&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I suggest to move answering to question to demo session to 2/26&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Who is the audience of the demo? Is it an open invite?&lt;/p&gt;</comment>
                                                            <comment id="10005" author="62a96ae7192edb006f9f1bf9" created="Tue, 18 Feb 2020 14:34:27 +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;, we are presenting at the 2/26 User Management SIG meeting. I will forward details &lt;/p&gt;</comment>
                                                            <comment id="10007" author="63e2a2771b13d42998e4e706" created="Tue, 18 Feb 2020 14:50:05 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=62a96ae7192edb006f9f1bf9&quot; class=&quot;user-hover&quot; rel=&quot;62a96ae7192edb006f9f1bf9&quot; data-account-id=&quot;62a96ae7192edb006f9f1bf9&quot; accountid=&quot;62a96ae7192edb006f9f1bf9&quot; rel=&quot;noreferrer&quot;&gt;Khalilah Gambrell&lt;/a&gt; Thanks&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="13176">UXPROD-2248</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10001">
                    <name>Cloners</name>
                                                                <inwardlinks description="is cloned by">
                                        <issuelink>
            <issuekey id="11256">UXPROD-2143</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10008">
                    <name>Defines</name>
                                                                <inwardlinks description="is defined by ">
                                        <issuelink>
            <issuekey id="78047">MODCFIELDS-40</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78044">MODCFIELDS-38</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78046">MODCFIELDS-39</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28215">MODKBEKBJ-346</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78043">MODCFIELDS-36</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="67718">MODUSERS-179</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="67723">MODUSERS-183</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="13688">UXPROD-396</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="79313">UICFIELDS-23</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="45446">UIU-1492</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="13173">UXPROD-2211</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="11798">UXPROD-2212</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78080">MODCFIELDS-10</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78039">MODCFIELDS-32</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78040">MODCFIELDS-33</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78041">MODCFIELDS-34</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78042">MODCFIELDS-35</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28264">MODKBEKBJ-334</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28212">MODKBEKBJ-341</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28213">MODKBEKBJ-343</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10007">
                    <name>Requires</name>
                                            <outwardlinks description="requires">
                                        <issuelink>
            <issuekey id="67673">MODUSERS-134</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="67680">MODUSERS-146</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78072">MODCFIELDS-3</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78073">MODCFIELDS-4</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78074">MODCFIELDS-5</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78077">MODCFIELDS-6</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78075">MODCFIELDS-7</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78078">MODCFIELDS-8</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78081">MODCFIELDS-12</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78052">MODCFIELDS-13</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78053">MODCFIELDS-14</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78054">MODCFIELDS-15</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78055">MODCFIELDS-16</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78056">MODCFIELDS-17</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78057">MODCFIELDS-18</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78058">MODCFIELDS-19</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="78065">MODCFIELDS-27</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="67686">MODUSERS-149</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="67692">MODUSERS-172</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is required by">
                                        <issuelink>
            <issuekey id="27515">STSMACOM-286</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="11394">UXPROD-2288</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="11366">UXPROD-2289</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="10338" name="Screenshot 2020-02-14 at 18.19.06.png" size="415431" author="70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5" created="Fri, 14 Feb 2020 16:20:03 +0000"/>
                            <attachment id="10339" name="Screenshot 2020-02-14 at 18.25.05.png" size="282128" author="70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5" created="Fri, 14 Feb 2020 16:25:48 +0000"/>
                            <attachment id="10340" name="Screenshot 2020-02-17 at 13.56.15.png" size="684494" author="70121:26da6b78-0d8a-4d47-b80e-9541f5e4cea5" created="Mon, 17 Feb 2020 11:58:01 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                    <customfield id="customfield_10048" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Analysis Estimate</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10088"><![CDATA[Medium < 5 days]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10049" key="com.atlassian.jira.plugin.system.customfieldtypes:userpicker">
                        <customfieldname>Analysis Estimator</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>62a96ae7192edb006f9f1bf9</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <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_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="10180"><![CDATA[Spitfire]]></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)">Custom Fields</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10052" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Front-End Confidence factor</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10106"><![CDATA[Medium]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10063" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>PO Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>95.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10045" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Potential Workaround</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>repurpose existing fields (e.g., notes) -- Laura W.</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10071" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: 5Colleges (Full Jul 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10223"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10066" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: BNCF (MVP Feb 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10198"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10067" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Chalmers (Impl Aut 2019)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10207"><![CDATA[R5]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10068" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Chicago (MVP Sum 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10208"><![CDATA[R1]]></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="10216"><![CDATA[R4]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10070" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Duke (Full Sum 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10218"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10073" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: FLO (MVP Sum 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10233"><![CDATA[R1]]></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_10077" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Hungary (MVP End 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10253"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10078" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Lehigh (MVP Summer 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10258"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10080" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Leipzig (ERM Aut 2019)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10268"><![CDATA[R1]]></customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10085" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: MO State (MVP June 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10294"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10089" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: TAMU (MVP Jan 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10317"><![CDATA[R4]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10091" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: U of AL (MVP Oct 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10325"><![CDATA[R2]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10076" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: hbz (TBD)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10248"><![CDATA[R1]]></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>Thu, 19 Jul 2018 16:35:24 +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>