<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:06:34 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-543] Clicking on users result in pop saying &quot;Column id does not exist&quot;</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-543</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;See attached screenshot&lt;/p&gt;</description>
                <environment></environment>
        <key id="80166">FOLIO-543</key>
            <summary>Clicking on users result in pop saying &quot;Column id does not exist&quot;</summary>
                <type id="10001" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium">Bug</type>
                                            <priority id="10001" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p2.svg">P2</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="5c706fbb47a54a6728e59df2">Wayne Schneider</assignee>
                                                                <reporter accountid="5f8314dfbdef80006f6f572d">Adam Dickmeiss</reporter>
                                    <labels>
                            <label>sprint12</label>
                    </labels>
                <created>Wed, 5 Apr 2017 10:44:21 +0000</created>
                <updated>Mon, 12 Nov 2018 14:23:28 +0000</updated>
                            <resolved>Fri, 21 Apr 2017 20:09:51 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                    <timespent seconds="23400">6 hours, 30 minutes</timespent>
                                <comments>
                                                            <comment id="191788" author="5f8314dfbdef80006f6f572d" created="Wed, 5 Apr 2017 10:45:48 +0000"  >&lt;p&gt;Using folio/folio-demo as of today .. There is no version information about modules so this could be hard to reproduce.&lt;/p&gt;</comment>
                                                            <comment id="191789" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Wed, 5 Apr 2017 10:50:10 +0000"  >&lt;p&gt;hi, this was a change in the database structure as well as in the code.&lt;br/&gt;
i mistakenly thought that when the code is refreshed in the demo the tenants are re-created. &lt;br/&gt;
how are we handling this type of update at this point in the project? &lt;/p&gt;</comment>
                                                            <comment id="191791" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Wed, 5 Apr 2017 10:51:56 +0000"  >&lt;p&gt;basically, an sql script with an alter table needs to be run if the tenant isnt re-created.&lt;/p&gt;</comment>
                                                            <comment id="191792" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Wed, 5 Apr 2017 10:54:02 +0000"  >&lt;p&gt;i updated the major version to indicate this is a breaking change - but am unaware of the guidelines when the db structure has changed &lt;/p&gt;</comment>
                                                            <comment id="191793" author="5bffed52a1b46046f530c8f7" created="Wed, 5 Apr 2017 10:56:05 +0000"  >&lt;p&gt;The problem here is in access the patron-groups, which have an ID field called &lt;tt&gt;_id&lt;/tt&gt; rather than the &lt;tt&gt;id&lt;/tt&gt; used by other types of record. (I think this is a hangover from a MongoDB internal convention, and it ought to be fixed.)&lt;/p&gt;

&lt;p&gt;It looks like you have some UI code that is trying to use ID instead. But that is bizarre &amp;#8211; I we&apos;ve never made that change, and I just re-read the relevant code from git head. So I don&apos;t know where your UI code is coming from.&lt;/p&gt;

&lt;p&gt;Are you on &lt;a href=&quot;http://folio-uidemo.aws.indexdata.com?&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;http://folio-uidemo.aws.indexdata.com?&lt;/a&gt; I can#t reproduce your issue on that site.&lt;/p&gt;</comment>
                                                            <comment id="191795" author="5f8314dfbdef80006f6f572d" created="Wed, 5 Apr 2017 10:56:24 +0000"  >&lt;p&gt;I thought for those vagrant images that the database was created each time.. &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5c706fbb47a54a6728e59df2&quot; class=&quot;user-hover&quot; rel=&quot;5c706fbb47a54a6728e59df2&quot; data-account-id=&quot;5c706fbb47a54a6728e59df2&quot; accountid=&quot;5c706fbb47a54a6728e59df2&quot; rel=&quot;noreferrer&quot;&gt;Wayne Schneider&lt;/a&gt; might know .. If not, it illustrates the upgrade case issue..&lt;/p&gt;</comment>
                                                            <comment id="191797" author="5bffed52a1b46046f530c8f7" created="Wed, 5 Apr 2017 10:58:53 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3A32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; class=&quot;user-hover&quot; rel=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; data-account-id=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; accountid=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; rel=&quot;noreferrer&quot;&gt;shale99&lt;/a&gt; I don&apos;t understand how a DB structure change could influence what query the software sends. The &lt;tt&gt;ui-users&lt;/tt&gt; code is all written in terms of &lt;tt&gt;_id&lt;/tt&gt;.&lt;/p&gt;</comment>
                                                            <comment id="191798" author="5f8314dfbdef80006f6f572d" created="Wed, 5 Apr 2017 10:59:19 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5bffed52a1b46046f530c8f7&quot; class=&quot;user-hover&quot; rel=&quot;5bffed52a1b46046f530c8f7&quot; data-account-id=&quot;5bffed52a1b46046f530c8f7&quot; accountid=&quot;5bffed52a1b46046f530c8f7&quot; rel=&quot;noreferrer&quot;&gt;Mike Taylor&lt;/a&gt; I used the installation instructions from &lt;a href=&quot;https://github.com/folio-org/folio-ansible&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/folio-ansible&lt;/a&gt; &apos;s readme  .. Thus, the ui and backend stuff was all running locally in Virtualbox (ui on &lt;a href=&quot;http://localhost:3000&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;http://localhost:3000&lt;/a&gt;) . Perhaps that&apos;s not supported or uses outdated stuff? If that&apos;s the case our &quot;introduction&quot; to running this system needs an update.&lt;/p&gt;</comment>
                                                            <comment id="191800" author="5f8314dfbdef80006f6f572d" created="Wed, 5 Apr 2017 11:01:22 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5bffed52a1b46046f530c8f7&quot; class=&quot;user-hover&quot; rel=&quot;5bffed52a1b46046f530c8f7&quot; data-account-id=&quot;5bffed52a1b46046f530c8f7&quot; accountid=&quot;5bffed52a1b46046f530c8f7&quot; rel=&quot;noreferrer&quot;&gt;Mike Taylor&lt;/a&gt;... Zeev changed db structure and changed his code .. But for some reason only one of those changes were part of that vagrant image! This is not in violation of RAML or a web service being screwed .. It&apos;s purely internal to RMB.&lt;/p&gt;</comment>
                                                            <comment id="191802" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Wed, 5 Apr 2017 11:01:29 +0000"  >&lt;p&gt;yes, this is the case, &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5bffed52a1b46046f530c8f7&quot; class=&quot;user-hover&quot; rel=&quot;5bffed52a1b46046f530c8f7&quot; data-account-id=&quot;5bffed52a1b46046f530c8f7&quot; accountid=&quot;5bffed52a1b46046f530c8f7&quot; rel=&quot;noreferrer&quot;&gt;Mike Taylor&lt;/a&gt; i changed all _id&apos;s in mod-users to id - in the schemas and in the database as well - the previous situation&lt;/p&gt;

&lt;p&gt;users - &lt;br/&gt;
json schema - id&lt;br/&gt;
database - _id&lt;/p&gt;

&lt;p&gt;usergroups - &lt;br/&gt;
json schema and database - _id&lt;/p&gt;

&lt;p&gt;if the code - if the latest is used, it uses (id) - but if the db hasnt been updated, the _id still exists and you would get the error adam got &lt;/p&gt;</comment>
                                                            <comment id="191804" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Wed, 5 Apr 2017 11:02:12 +0000"  >&lt;p&gt;this isnt an RMB issue at all in this case&lt;/p&gt;</comment>
                                                            <comment id="191805" author="5f8314dfbdef80006f6f572d" created="Wed, 5 Apr 2017 11:03:18 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3A32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; class=&quot;user-hover&quot; rel=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; data-account-id=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; accountid=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; rel=&quot;noreferrer&quot;&gt;shale99&lt;/a&gt;: whatever &lt;img class=&quot;emoticon&quot; src=&quot;/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                                                            <comment id="191807" author="5bffed52a1b46046f530c8f7" created="Wed, 5 Apr 2017 11:06:09 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f8314dfbdef80006f6f572d&quot; class=&quot;user-hover&quot; rel=&quot;5f8314dfbdef80006f6f572d&quot; data-account-id=&quot;5f8314dfbdef80006f6f572d&quot; accountid=&quot;5f8314dfbdef80006f6f572d&quot; rel=&quot;noreferrer&quot;&gt;Adam Dickmeiss&lt;/a&gt;: OK, if you are building your own folio-ansible box, that explains why I am not seeing the same problem on the public demo site.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5c706fbb47a54a6728e59df2&quot; class=&quot;user-hover&quot; rel=&quot;5c706fbb47a54a6728e59df2&quot; data-account-id=&quot;5c706fbb47a54a6728e59df2&quot; accountid=&quot;5c706fbb47a54a6728e59df2&quot; rel=&quot;noreferrer&quot;&gt;Wayne Schneider&lt;/a&gt; can comment on whether the folio-ansible build instructions are up to date &amp;#8211; or, &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f8314dfbdef80006f6f572d&quot; class=&quot;user-hover&quot; rel=&quot;5f8314dfbdef80006f6f572d&quot; data-account-id=&quot;5f8314dfbdef80006f6f572d&quot; accountid=&quot;5f8314dfbdef80006f6f572d&quot; rel=&quot;noreferrer&quot;&gt;Adam Dickmeiss&lt;/a&gt;, did you mean a different &quot;introduction to running this system&quot; document?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3A32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; class=&quot;user-hover&quot; rel=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; data-account-id=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; accountid=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; rel=&quot;noreferrer&quot;&gt;shale99&lt;/a&gt;, Are you saying the change of ID field is purely internal to the patron-group server-side module, and that it still presents a WSAPI that is in terms of &lt;tt&gt;_id&lt;/tt&gt;? If so, that would explain why I am not seeing the UI-code error I&apos;m looking for. (Also: we should change that WSAPI, when we have a chance to do it in a coordinated way &amp;#8211; it&apos;s wrong that an old MongoDB convention pollutes our API.)&lt;/p&gt;</comment>
                                                            <comment id="191808" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Wed, 5 Apr 2017 11:09:34 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5bffed52a1b46046f530c8f7&quot; class=&quot;user-hover&quot; rel=&quot;5bffed52a1b46046f530c8f7&quot; data-account-id=&quot;5bffed52a1b46046f530c8f7&quot; accountid=&quot;5bffed52a1b46046f530c8f7&quot; rel=&quot;noreferrer&quot;&gt;Mike Taylor&lt;/a&gt;&lt;br/&gt;
the error basically indicates that the &quot;id&quot; is being requested, but that it does not exist and asks if you (the code) means _id (because that is the column that actually exists in the database. this means the new code is running against the old database configuration.&lt;br/&gt;
If a new tenant was created , then it would be synced up - id - id --&amp;gt; you will see a change as the _id you were getting back in the json will be changed to id. this was accompanied by a major version bump&lt;/p&gt;</comment>
                                                            <comment id="191810" author="5bffed52a1b46046f530c8f7" created="Wed, 5 Apr 2017 11:12:12 +0000"  >&lt;p&gt;Right. What I am most pragmatically trying to establish is that all of the issues are server side, and the the UI is not implicated &amp;#8211; correct?&lt;/p&gt;</comment>
                                                            <comment id="191811" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Wed, 5 Apr 2017 11:14:12 +0000"  >&lt;p&gt;that is correct. &lt;/p&gt;</comment>
                                                            <comment id="191813" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Wed, 5 Apr 2017 11:16:36 +0000"  >&lt;p&gt;the only way you might get this do to a UI query would be if you are on an old version of mod-users (before yesterday) and are you sending a cql with id=XYZ&lt;/p&gt;</comment>
                                                            <comment id="191815" author="5bffed52a1b46046f530c8f7" created="Wed, 5 Apr 2017 11:18:28 +0000"  >&lt;p&gt;There is no version of the Users UI app that sends CQL using &lt;tt&gt;id&lt;/tt&gt; for a patron-groups query.&lt;/p&gt;</comment>
                                                            <comment id="191816" author="5f8314dfbdef80006f6f572d" created="Wed, 5 Apr 2017 11:47:31 +0000"  >&lt;p&gt;And indeed I can&apos;t see &lt;tt&gt;id=&lt;/tt&gt;  in browser network window my browser.. However, grepping for obsolete .&lt;br/&gt;
I stil see one _id in mod-users - UserGroupAPI.java:&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;
       /* TO USE a non jsonb field as a constraint &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; the join - &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; example it is the id field and the id field is of
         * type uuid - use the forceCast to &lt;span class=&quot;code-keyword&quot;&gt;cast&lt;/span&gt; to a varchar so that it can be compared to a value in a jsonb field that is textual
         * JoinBy jbFrom = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; JoinBy(UsersAPI.TABLE_NAME_USER, &lt;span class=&quot;code-quote&quot;&gt;&quot;users&quot;&lt;/span&gt;, &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Criteria().addField(&lt;span class=&quot;code-quote&quot;&gt;&quot;_id&quot;&lt;/span&gt;).setJSONB(&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;)
           .setForceCast(&lt;span class=&quot;code-quote&quot;&gt;&quot;varchar&quot;&lt;/span&gt;), &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;[]{&lt;span class=&quot;code-quote&quot;&gt;&quot;jsonb&quot;&lt;/span&gt;});*/

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Have no idea whether that was to stay or not.&lt;/p&gt;</comment>
                                                            <comment id="191817" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Wed, 5 Apr 2017 11:49:18 +0000"  >&lt;p&gt;that is in the comment - should be changed but harmless&lt;/p&gt;</comment>
                                                            <comment id="191818" author="5f8314dfbdef80006f6f572d" created="Wed, 5 Apr 2017 12:04:26 +0000"  >&lt;p&gt;Good.. Missed that due to long lines..&lt;/p&gt;

&lt;p&gt;When a tenant is enabled I thought the system would upgrade the tables to reflect version of current module.. Nobody but the database &quot;knows&quot; its schema. Okapi has no idea what database layout you use.&lt;/p&gt;</comment>
                                                            <comment id="191819" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Wed, 5 Apr 2017 12:11:59 +0000"  >&lt;p&gt;so if you include the module_from in the json body when calling the tenant api - RMB modules go into upgrade mode - meaning it will do things like - return tenant doesnt exist so why are you trying to upgrade, etc... , but it will also allow a module to declare a &quot;template_update_tenant.sql&quot; as opposed to &quot;template_create_tenant.sql&quot; (which is called for a new tenant) file - and this file will be triggered (run) - so the alter table (in our case) - would sit there and then all would be great - but you would still need to call the tenant api after the upgrade to mod-users v6 &lt;br/&gt;
however, i dont know how we want to handle this at this point in the project - i can easily add this to the &quot;template_update_tenant.sql&quot;&lt;/p&gt;</comment>
                                                            <comment id="191820" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Wed, 5 Apr 2017 12:16:27 +0000"  >&lt;p&gt;actually, i will add it now, makes sense&lt;br/&gt;
please note, that when upgrading a major version - the create tenant api should be called with the module_from and module_to (json in the body)&lt;/p&gt;</comment>
                                                            <comment id="191821" author="5f8314dfbdef80006f6f572d" created="Wed, 5 Apr 2017 13:16:43 +0000"  >&lt;p&gt;Yep.. &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3A32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; class=&quot;user-hover&quot; rel=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; data-account-id=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; accountid=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; rel=&quot;noreferrer&quot;&gt;shale99&lt;/a&gt;. that was the idea. I still wonder why we&apos;d have &quot;old&quot; tenant database stuff for the Ansible stuff. I thought that images like that was initiated every time..&lt;/p&gt;</comment>
                                                            <comment id="191822" author="5c706fbb47a54a6728e59df2" created="Wed, 5 Apr 2017 13:33:12 +0000"  >&lt;p&gt;When a new Vagrant box is released, it is a new build - so the tenant is initialized as part of the build process, there is no upgrade involved. The README in folio-ansible is up to date (in the Quick Start section, which is what I assume Adam was looking at, it just explains how to do a `vagrant init` and a `vagrant up`, pretty straightforward). The box was built yesterday afternoon (my time) using Docker images and NPM packages built from the latest commits of all modules. I am very puzzled, as well, since I tested everything before pushing it up to Atlas.&lt;/p&gt;</comment>
                                                            <comment id="191823" author="5c706fbb47a54a6728e59df2" created="Wed, 5 Apr 2017 16:07:45 +0000"  >&lt;p&gt;I can&apos;t replicate the problem with a new build (but it definitely occurs in the folio-demo v0.9.0 Vagrant box in my testing). I also can&apos;t figure out what is causing it. I have revoked folio-demo v0.9.0 and folio-backend-auth v0.8.2, and will make new releases.&lt;/p&gt;</comment>
                                                            <comment id="191824" author="5f8314dfbdef80006f6f572d" created="Thu, 6 Apr 2017 09:25:24 +0000"  >&lt;p&gt;Since Okapi 1.2.0 - deploy with Docker will pull docker images from remote repositories.. 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;OKAPI-283&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/OKAPI-283&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Add ability to pull Docker image from a remote respository &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;
            OKAPI-283
        &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;
 .. This will, for the Vagrant break thiings because the database previously was using old schema and now after upgrade will use new schema. I was able to reproduce the problem with folio-demo 0.8.1 and upgrade Okapi via apt-get upgrade..&lt;/p&gt;
</comment>
                                                            <comment id="191825" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Thu, 6 Apr 2017 13:23:13 +0000"  >&lt;p&gt;do we just want to make sure that the tenant api is always called after a major with the needed body?&lt;br/&gt;
this will start us on the real process of updates&lt;/p&gt;</comment>
                                                            <comment id="191826" author="5c706fbb47a54a6728e59df2" created="Thu, 6 Apr 2017 19:10:48 +0000"  >&lt;p&gt;I have made a new release of the backend-auth box. I built a new demo box which no longer has the issue Adam reported, but because of a different issue (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;STRIPES-301&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/STRIPES-301&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;RenderPermissions needs to render based on configurable permissions &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;
            STRIPES-301
        &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;
), the permissions don&apos;t display in the Users app, so I haven&apos;t released it yet.&lt;/p&gt;</comment>
                                                            <comment id="191827" author="5f8314dfbdef80006f6f572d" created="Fri, 7 Apr 2017 12:03:28 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3A32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; class=&quot;user-hover&quot; rel=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; data-account-id=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; accountid=&quot;712020:32bb56ac-50e7-4787-b4af-ed3089d9401c&quot; rel=&quot;noreferrer&quot;&gt;shale99&lt;/a&gt;.. major what? upgrade?&lt;/p&gt;

&lt;p&gt;There is no such thing in Okapi as upgrading a &quot;module&quot;. There is a scenario where a Tenant is transitioning from using one Module to another. Yes.. It will most  likely be that a Tenant will be using a newer implementation .. This is the tenant call! There must be - in this case at least one running instance of the module with the new version.&lt;/p&gt;

&lt;p&gt;The issue we have here is that a module has THE SAME MODULE ID. So even the notion of switching a tenant to use another one does not exist. So tenant upgrade will only work if modules have at the very least different module IDs. Before this happens we&apos;ll see errors like these over and over.&lt;/p&gt;</comment>
                                                            <comment id="191828" author="712020:32bb56ac-50e7-4787-b4af-ed3089d9401c" created="Sun, 9 Apr 2017 05:08:06 +0000"  >&lt;p&gt;ok,&lt;br/&gt;
can you explain the upgrade workflow then, i may have misunderstood it (lets look beyond the same module id for a minute)&lt;/p&gt;

&lt;p&gt;the workflow would be ?&lt;br/&gt;
0. startup a new instance for a new version of a module&lt;br/&gt;
1. read only mode on the prod db - for specific shemas (of this modules for a specific tenant) - this may be a technical problem&lt;br/&gt;
2. migrate / clone (if possible) the schema &lt;b&gt;with&lt;/b&gt; the tenant&apos;s data to a new db&lt;br/&gt;
3. update the tenant&apos;s schema with the new db structure (constraints, column renames, whatever...)&lt;br/&gt;
    a. how does this happen? where does the script that updates an existing schema live - isnt that in the tenant api - with the module_to / module_from indicators - so that the module runs the script to update an existing schema for a tenant to the structure needed by the current module version &amp;lt;- this is how i implemented it, so if not , lets discuss.&lt;/p&gt;</comment>
                                                            <comment id="191829" author="5f8314dfbdef80006f6f572d" created="Tue, 18 Apr 2017 09:29:22 +0000"  >&lt;p&gt;0. startup instance of a new module..&lt;br/&gt;
Yep.. A new instance of a module is running. It will listen on the HTTP port, setup connections to a database server to check that fundamental permissions are ok etc.&lt;br/&gt;
What does the module know at this point? It knows its own version. It also knows what data it can work with, such as schema &lt;/p&gt;

&lt;p&gt;1. The tenant init call is invoked before regular &quot;proxy&quot; calls. At this point, the module will consult the storage and see if it can work with existing data. If there&apos;s no existing data, it will create the per-tenant module data - whatever that is - with default or omitted values.. If it sees that the existing schema is incompatible with the current module, it can refuse to work with the data. It can also upgrade schema and data. The module owns the data, not Okapi or anybody else.. So it&apos;s up to the module maintainer to perform this upgrade. It could also choose NOT to upgrade but work with an old schema.. That would be easy with a schema less system. Perhaps the upgrade is better served with a clone/copy if the database can nof facilitate a rollback in case something goes wrong.. In any case the init call should not return unless the module is happy with the existing data.&lt;/p&gt;

&lt;p&gt;The tenant init call is important.. It is called with the module is &quot;installed&quot; for the proxy and &quot;upgraded&quot; with the proxy.. Note that even in the &quot;install&quot; case the module will have to consider existing data.&lt;/p&gt;

&lt;p&gt;Okapi&apos;s Tenant upgrade facility is a atomic operation that will move the PROXY vector for one tenant from one module to another.. There&apos;s another variant, namely that the maintainer DELETES the tenant-module association , then later associates again.. Okapi has no memory of past module usage. And SHOULD not have.. The module ultimately is responsible for reading the data that it has written in the first place.. In another version. For this reason a module could contain upgrade information for all previous versions so that it can perform all the delta&apos;s on its own.&lt;/p&gt;</comment>
                                                            <comment id="191830" author="5c706fbb47a54a6728e59df2" created="Fri, 21 Apr 2017 20:09:40 +0000"  >&lt;p&gt;The comments on this issue have gone a bit afield from the original concern, which actually had to do with how that particular demo box was created, and have been (mostly) resolved as versioning is being formalized for backend modules. I&apos;m closing the issue, but anyone interested in the comments around upgrading modules should probably bookmark it to refer to later.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="80259">FOLIO-545</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="80163">FOLIO-544</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="63966" name="Screenshot from 2017-04-05 12-35-27.png" size="100472" author="5f8314dfbdef80006f6f572d" created="Wed, 5 Apr 2017 10:44:48 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzxmbj:</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>Wed, 5 Apr 2017 10:50:10 +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>