<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 22:38:59 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 append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[COMPASS-5266] Decouple plugins from instance-refreshed event</title>
                <link>https://jira.mongodb.org/browse/COMPASS-5266</link>
                <project id="13182" key="COMPASS">Compass </project>
                    <description>&lt;p&gt;To be able to allow sidebar and databases-collections plugin to handle their data loading independently from each other and general instance refreshes and make the UI changes that will allow us to show databases and collections as soon as we have the minimun of the required info about them, we want to remove the dependency on instance-refreshed event as a way of communicating changes in instance model and instead make instance the main source of truth for this info and corresponding changes&lt;/p&gt;</description>
                <environment></environment>
        <key id="1920291">COMPASS-5266</key>
            <summary>Decouple plugins from instance-refreshed event</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/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="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="sergey.petushkov@mongodb.com">Sergey Petushkov</assignee>
                                    <reporter username="sergey.petushkov@mongodb.com">Sergey Petushkov</reporter>
                        <labels>
                    </labels>
                <created>Mon, 8 Nov 2021 13:42:05 +0000</created>
                <updated>Sun, 29 Oct 2023 02:39:28 +0000</updated>
                            <resolved>Wed, 17 Nov 2021 13:35:28 +0000</resolved>
                                                    <fixVersion>1.29.5</fixVersion>
                                    <component>Compass</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="4192641" author="xgen-internal-githook" created="Tue, 16 Nov 2021 18:07:47 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Sergey&apos;, &apos;email&apos;: &apos;petushkov.sergey@gmail.com&apos;, &apos;username&apos;: &apos;gribnoysup&apos;}
&lt;p&gt;Message: refactor(app-stores): Decouple sidebar, databases/collections, and collection stats from instance refresh and use single source for coll stats &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-5266&quot; title=&quot;Decouple plugins from instance-refreshed event&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-5266&quot;&gt;&lt;del&gt;COMPASS-5266&lt;/del&gt;&lt;/a&gt; (#2574)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;feat(collection-model): Update collection model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Propagate CollectionCollection events to the state root&lt;/li&gt;
	&lt;li&gt;Derive all namespace values instead of expecting them to be present in listCollections return value&lt;/li&gt;
	&lt;li&gt;Add options to skip or require fetching of the collInfo returned by listCollection&lt;/li&gt;
	&lt;li&gt;Always serialize derived values when calling toJSON on the model or collection&lt;/li&gt;
	&lt;li&gt;Add fecthing status to the model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;feat(database-model): Update database model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Propagate collection events to the state root&lt;/li&gt;
	&lt;li&gt;Add status for model update and collections fetching&lt;/li&gt;
	&lt;li&gt;Always serialize derived values by default&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;feat(data-service): Return collection_count from the dbStats&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Helpful so that we don&apos;t need to fetch collections before knowing how many are there&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;feat(instance-model): Update instance model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Move refresh logic to the model itself&lt;/li&gt;
	&lt;li&gt;Add database fetching status state&lt;/li&gt;
	&lt;li&gt;Add a better clean up listeners method&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(app-stores): Prepare instance-store for decoupling plugins from instance-refreshed event&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Emit new events for the instance: created and destroyed&lt;/li&gt;
	&lt;li&gt;Move database details fetching logic to the instance-store&lt;/li&gt;
	&lt;li&gt;Introduce COMPASS_NO_GLOBAL_OVERLAY flag to allow for testing&lt;br/&gt;
  the new loading flow&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(compass-crud): Subscribe plugin to the instance changes that it requires&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(compass-home): Use created instead of refreshed to subscribe component to the status updates&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(server-version): Subscribe plugin to instance status changes instead of using refreshed event&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(compass-databases): Subscribe to instance changes instead of listening to refreshed event; Use collection_count in the db stats table&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(collections): Use instance collections info instead of fetching and retaining it in the plugin state&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Remove dataService interactions from the plugin and only emit relevant event to activate instance-store logic&lt;/li&gt;
	&lt;li&gt;Subscribe to instance updates to propagate collections changes to the components&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(sidebar): Use collection_count instead of collections length in the instance info; Use isRefreshing to disable and spin the refresh button&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(sidebar): Decouple sidebar databases tree state&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Separate namespace, filter and db change to separate actions&lt;/li&gt;
	&lt;li&gt;&quot;Filter&quot; databases only when dbs or filter changed&lt;/li&gt;
	&lt;li&gt;Make expand/collaps more consistent&lt;/li&gt;
	&lt;li&gt;Keep and restore expanded state before filtering&lt;/li&gt;
	&lt;li&gt;Do not collapse expanded items on namespace change&lt;/li&gt;
	&lt;li&gt;Subscribe plugin to all relevant changes in instance anddbs/colls instead of using refreshed event&lt;/li&gt;
	&lt;li&gt;Fix row height calculation and values&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(sidebar): Fix sidebar database expand caret animation&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore: Clean-up global overlay usage from all the unrelevant places&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;It&apos;s only isntance-store that now shows it&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;fix(app-stores): Try to fetch collection details even when collection names were fetched already&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(home): Listen to databasesStatus in addition to instance status and only mark instance as loaded when dbs are loaded&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore(app-stores): Don&apos;t fetch collStats until db namespace is selected&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This aligns new flow with the current behavior&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;fix(collection-model, instance-model): Add missing collInfo props to the model; Allow to fetch collInfo separately from collStats during refresh&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore: Normalize event payloads on document add/remove and import finished&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(collection-stats): Align to a single source of truth for collection info in collection stats plugin&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Add event listeners to instance store that will refresh collection when needed&lt;/li&gt;
	&lt;li&gt;Do not fetch collStats in plugin, instead listen to all collection status events&lt;br/&gt;
  and update when relevant collection was updated&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(app-stores): Always fetch dbStats on refresh&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore(app-stores): Fetch info when listing collection when fetching database details&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(app-stores, home, instance-model): Don&apos;t show databases until initial refresh is finished when global overlay is shown&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This preserves the current behavior, otherwise users might see dbs while we are still&lt;br/&gt;
blocking the screen which might be a bit too annoying&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;refactor(instance-model, database-model, collection-model): debounce inflight async calls on models&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore(collection-stats): Clarify why we are storing references to the appRegistry and instance on the store&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(home): Fix code formatting&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(app-stores, sidebar, databases-collections): Fix depcheck issues&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(instance, database, collection): Attach finally to returned promise to avoid forking the promise and uncaught exceptions&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(collection-stats, server-version, home, app-stores): Update and add new tests following the new instance fetching implementation&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(sidebar): Refactor tests to match new reducer data flow&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(databases-collections): Fix store tests&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(compass): Remove unused dependency&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(e2e): Fix flaky database test&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(e2e): Fix prettier formatting&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(database-model): collectionsStatus is not derived from model.status&lt;br/&gt;
Branch: darkreader-darkmode-preview&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb-js/compass/commit/ac864f42d35404aeddc35aedd0b273264e324ca0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb-js/compass/commit/ac864f42d35404aeddc35aedd0b273264e324ca0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="4192529" author="xgen-internal-githook" created="Tue, 16 Nov 2021 17:36:09 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Sergey&apos;, &apos;email&apos;: &apos;petushkov.sergey@gmail.com&apos;, &apos;username&apos;: &apos;gribnoysup&apos;}
&lt;p&gt;Message: refactor(app-stores): Decouple sidebar, databases/collections, and collection stats from instance refresh and use single source for coll stats &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-5266&quot; title=&quot;Decouple plugins from instance-refreshed event&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-5266&quot;&gt;&lt;del&gt;COMPASS-5266&lt;/del&gt;&lt;/a&gt; (#2574)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;feat(collection-model): Update collection model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Propagate CollectionCollection events to the state root&lt;/li&gt;
	&lt;li&gt;Derive all namespace values instead of expecting them to be present in listCollections return value&lt;/li&gt;
	&lt;li&gt;Add options to skip or require fetching of the collInfo returned by listCollection&lt;/li&gt;
	&lt;li&gt;Always serialize derived values when calling toJSON on the model or collection&lt;/li&gt;
	&lt;li&gt;Add fecthing status to the model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;feat(database-model): Update database model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Propagate collection events to the state root&lt;/li&gt;
	&lt;li&gt;Add status for model update and collections fetching&lt;/li&gt;
	&lt;li&gt;Always serialize derived values by default&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;feat(data-service): Return collection_count from the dbStats&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Helpful so that we don&apos;t need to fetch collections before knowing how many are there&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;feat(instance-model): Update instance model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Move refresh logic to the model itself&lt;/li&gt;
	&lt;li&gt;Add database fetching status state&lt;/li&gt;
	&lt;li&gt;Add a better clean up listeners method&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(app-stores): Prepare instance-store for decoupling plugins from instance-refreshed event&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Emit new events for the instance: created and destroyed&lt;/li&gt;
	&lt;li&gt;Move database details fetching logic to the instance-store&lt;/li&gt;
	&lt;li&gt;Introduce COMPASS_NO_GLOBAL_OVERLAY flag to allow for testing&lt;br/&gt;
  the new loading flow&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(compass-crud): Subscribe plugin to the instance changes that it requires&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(compass-home): Use created instead of refreshed to subscribe component to the status updates&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(server-version): Subscribe plugin to instance status changes instead of using refreshed event&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(compass-databases): Subscribe to instance changes instead of listening to refreshed event; Use collection_count in the db stats table&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(collections): Use instance collections info instead of fetching and retaining it in the plugin state&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Remove dataService interactions from the plugin and only emit relevant event to activate instance-store logic&lt;/li&gt;
	&lt;li&gt;Subscribe to instance updates to propagate collections changes to the components&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(sidebar): Use collection_count instead of collections length in the instance info; Use isRefreshing to disable and spin the refresh button&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(sidebar): Decouple sidebar databases tree state&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Separate namespace, filter and db change to separate actions&lt;/li&gt;
	&lt;li&gt;&quot;Filter&quot; databases only when dbs or filter changed&lt;/li&gt;
	&lt;li&gt;Make expand/collaps more consistent&lt;/li&gt;
	&lt;li&gt;Keep and restore expanded state before filtering&lt;/li&gt;
	&lt;li&gt;Do not collapse expanded items on namespace change&lt;/li&gt;
	&lt;li&gt;Subscribe plugin to all relevant changes in instance anddbs/colls instead of using refreshed event&lt;/li&gt;
	&lt;li&gt;Fix row height calculation and values&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(sidebar): Fix sidebar database expand caret animation&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore: Clean-up global overlay usage from all the unrelevant places&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;It&apos;s only isntance-store that now shows it&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;fix(app-stores): Try to fetch collection details even when collection names were fetched already&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(home): Listen to databasesStatus in addition to instance status and only mark instance as loaded when dbs are loaded&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore(app-stores): Don&apos;t fetch collStats until db namespace is selected&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This aligns new flow with the current behavior&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;fix(collection-model, instance-model): Add missing collInfo props to the model; Allow to fetch collInfo separately from collStats during refresh&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore: Normalize event payloads on document add/remove and import finished&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(collection-stats): Align to a single source of truth for collection info in collection stats plugin&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Add event listeners to instance store that will refresh collection when needed&lt;/li&gt;
	&lt;li&gt;Do not fetch collStats in plugin, instead listen to all collection status events&lt;br/&gt;
  and update when relevant collection was updated&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(app-stores): Always fetch dbStats on refresh&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore(app-stores): Fetch info when listing collection when fetching database details&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(app-stores, home, instance-model): Don&apos;t show databases until initial refresh is finished when global overlay is shown&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This preserves the current behavior, otherwise users might see dbs while we are still&lt;br/&gt;
blocking the screen which might be a bit too annoying&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;refactor(instance-model, database-model, collection-model): debounce inflight async calls on models&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore(collection-stats): Clarify why we are storing references to the appRegistry and instance on the store&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(home): Fix code formatting&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(app-stores, sidebar, databases-collections): Fix depcheck issues&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(instance, database, collection): Attach finally to returned promise to avoid forking the promise and uncaught exceptions&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(collection-stats, server-version, home, app-stores): Update and add new tests following the new instance fetching implementation&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(sidebar): Refactor tests to match new reducer data flow&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(databases-collections): Fix store tests&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(compass): Remove unused dependency&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(e2e): Fix flaky database test&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(e2e): Fix prettier formatting&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(database-model): collectionsStatus is not derived from model.status&lt;br/&gt;
Branch: &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-5257&quot; title=&quot;Implement New Connection tracking&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-5257&quot;&gt;&lt;del&gt;COMPASS-5257&lt;/del&gt;&lt;/a&gt;-connection-tracking&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb-js/compass/commit/ac864f42d35404aeddc35aedd0b273264e324ca0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb-js/compass/commit/ac864f42d35404aeddc35aedd0b273264e324ca0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="4189553" author="xgen-internal-githook" created="Mon, 15 Nov 2021 18:02:21 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Sergey&apos;, &apos;email&apos;: &apos;petushkov.sergey@gmail.com&apos;, &apos;username&apos;: &apos;gribnoysup&apos;}
&lt;p&gt;Message: refactor(app-stores): Decouple sidebar, databases/collections, and collection stats from instance refresh and use single source for coll stats &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-5266&quot; title=&quot;Decouple plugins from instance-refreshed event&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-5266&quot;&gt;&lt;del&gt;COMPASS-5266&lt;/del&gt;&lt;/a&gt; (#2574)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;feat(collection-model): Update collection model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Propagate CollectionCollection events to the state root&lt;/li&gt;
	&lt;li&gt;Derive all namespace values instead of expecting them to be present in listCollections return value&lt;/li&gt;
	&lt;li&gt;Add options to skip or require fetching of the collInfo returned by listCollection&lt;/li&gt;
	&lt;li&gt;Always serialize derived values when calling toJSON on the model or collection&lt;/li&gt;
	&lt;li&gt;Add fecthing status to the model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;feat(database-model): Update database model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Propagate collection events to the state root&lt;/li&gt;
	&lt;li&gt;Add status for model update and collections fetching&lt;/li&gt;
	&lt;li&gt;Always serialize derived values by default&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;feat(data-service): Return collection_count from the dbStats&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Helpful so that we don&apos;t need to fetch collections before knowing how many are there&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;feat(instance-model): Update instance model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Move refresh logic to the model itself&lt;/li&gt;
	&lt;li&gt;Add database fetching status state&lt;/li&gt;
	&lt;li&gt;Add a better clean up listeners method&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(app-stores): Prepare instance-store for decoupling plugins from instance-refreshed event&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Emit new events for the instance: created and destroyed&lt;/li&gt;
	&lt;li&gt;Move database details fetching logic to the instance-store&lt;/li&gt;
	&lt;li&gt;Introduce COMPASS_NO_GLOBAL_OVERLAY flag to allow for testing&lt;br/&gt;
  the new loading flow&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(compass-crud): Subscribe plugin to the instance changes that it requires&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(compass-home): Use created instead of refreshed to subscribe component to the status updates&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(server-version): Subscribe plugin to instance status changes instead of using refreshed event&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(compass-databases): Subscribe to instance changes instead of listening to refreshed event; Use collection_count in the db stats table&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(collections): Use instance collections info instead of fetching and retaining it in the plugin state&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Remove dataService interactions from the plugin and only emit relevant event to activate instance-store logic&lt;/li&gt;
	&lt;li&gt;Subscribe to instance updates to propagate collections changes to the components&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(sidebar): Use collection_count instead of collections length in the instance info; Use isRefreshing to disable and spin the refresh button&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(sidebar): Decouple sidebar databases tree state&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Separate namespace, filter and db change to separate actions&lt;/li&gt;
	&lt;li&gt;&quot;Filter&quot; databases only when dbs or filter changed&lt;/li&gt;
	&lt;li&gt;Make expand/collaps more consistent&lt;/li&gt;
	&lt;li&gt;Keep and restore expanded state before filtering&lt;/li&gt;
	&lt;li&gt;Do not collapse expanded items on namespace change&lt;/li&gt;
	&lt;li&gt;Subscribe plugin to all relevant changes in instance anddbs/colls instead of using refreshed event&lt;/li&gt;
	&lt;li&gt;Fix row height calculation and values&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(sidebar): Fix sidebar database expand caret animation&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore: Clean-up global overlay usage from all the unrelevant places&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;It&apos;s only isntance-store that now shows it&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;fix(app-stores): Try to fetch collection details even when collection names were fetched already&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(home): Listen to databasesStatus in addition to instance status and only mark instance as loaded when dbs are loaded&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore(app-stores): Don&apos;t fetch collStats until db namespace is selected&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This aligns new flow with the current behavior&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;fix(collection-model, instance-model): Add missing collInfo props to the model; Allow to fetch collInfo separately from collStats during refresh&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore: Normalize event payloads on document add/remove and import finished&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(collection-stats): Align to a single source of truth for collection info in collection stats plugin&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Add event listeners to instance store that will refresh collection when needed&lt;/li&gt;
	&lt;li&gt;Do not fetch collStats in plugin, instead listen to all collection status events&lt;br/&gt;
  and update when relevant collection was updated&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(app-stores): Always fetch dbStats on refresh&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore(app-stores): Fetch info when listing collection when fetching database details&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(app-stores, home, instance-model): Don&apos;t show databases until initial refresh is finished when global overlay is shown&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This preserves the current behavior, otherwise users might see dbs while we are still&lt;br/&gt;
blocking the screen which might be a bit too annoying&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;refactor(instance-model, database-model, collection-model): debounce inflight async calls on models&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore(collection-stats): Clarify why we are storing references to the appRegistry and instance on the store&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(home): Fix code formatting&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(app-stores, sidebar, databases-collections): Fix depcheck issues&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(instance, database, collection): Attach finally to returned promise to avoid forking the promise and uncaught exceptions&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(collection-stats, server-version, home, app-stores): Update and add new tests following the new instance fetching implementation&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(sidebar): Refactor tests to match new reducer data flow&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(databases-collections): Fix store tests&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(compass): Remove unused dependency&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(e2e): Fix flaky database test&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(e2e): Fix prettier formatting&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(database-model): collectionsStatus is not derived from model.status&lt;br/&gt;
Branch: 1.29-releases&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb-js/compass/commit/ac864f42d35404aeddc35aedd0b273264e324ca0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb-js/compass/commit/ac864f42d35404aeddc35aedd0b273264e324ca0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="4189504" author="xgen-internal-githook" created="Mon, 15 Nov 2021 17:52:22 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Sergey&apos;, &apos;email&apos;: &apos;petushkov.sergey@gmail.com&apos;, &apos;username&apos;: &apos;gribnoysup&apos;}
&lt;p&gt;Message: refactor(app-stores): Decouple sidebar, databases/collections, and collection stats from instance refresh and use single source for coll stats &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-5266&quot; title=&quot;Decouple plugins from instance-refreshed event&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-5266&quot;&gt;&lt;del&gt;COMPASS-5266&lt;/del&gt;&lt;/a&gt; (#2574)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;feat(collection-model): Update collection model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Propagate CollectionCollection events to the state root&lt;/li&gt;
	&lt;li&gt;Derive all namespace values instead of expecting them to be present in listCollections return value&lt;/li&gt;
	&lt;li&gt;Add options to skip or require fetching of the collInfo returned by listCollection&lt;/li&gt;
	&lt;li&gt;Always serialize derived values when calling toJSON on the model or collection&lt;/li&gt;
	&lt;li&gt;Add fecthing status to the model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;feat(database-model): Update database model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Propagate collection events to the state root&lt;/li&gt;
	&lt;li&gt;Add status for model update and collections fetching&lt;/li&gt;
	&lt;li&gt;Always serialize derived values by default&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;feat(data-service): Return collection_count from the dbStats&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Helpful so that we don&apos;t need to fetch collections before knowing how many are there&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;feat(instance-model): Update instance model&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Move refresh logic to the model itself&lt;/li&gt;
	&lt;li&gt;Add database fetching status state&lt;/li&gt;
	&lt;li&gt;Add a better clean up listeners method&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(app-stores): Prepare instance-store for decoupling plugins from instance-refreshed event&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Emit new events for the instance: created and destroyed&lt;/li&gt;
	&lt;li&gt;Move database details fetching logic to the instance-store&lt;/li&gt;
	&lt;li&gt;Introduce COMPASS_NO_GLOBAL_OVERLAY flag to allow for testing&lt;br/&gt;
  the new loading flow&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(compass-crud): Subscribe plugin to the instance changes that it requires&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(compass-home): Use created instead of refreshed to subscribe component to the status updates&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(server-version): Subscribe plugin to instance status changes instead of using refreshed event&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(compass-databases): Subscribe to instance changes instead of listening to refreshed event; Use collection_count in the db stats table&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(collections): Use instance collections info instead of fetching and retaining it in the plugin state&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Remove dataService interactions from the plugin and only emit relevant event to activate instance-store logic&lt;/li&gt;
	&lt;li&gt;Subscribe to instance updates to propagate collections changes to the components&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(sidebar): Use collection_count instead of collections length in the instance info; Use isRefreshing to disable and spin the refresh button&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(sidebar): Decouple sidebar databases tree state&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Separate namespace, filter and db change to separate actions&lt;/li&gt;
	&lt;li&gt;&quot;Filter&quot; databases only when dbs or filter changed&lt;/li&gt;
	&lt;li&gt;Make expand/collaps more consistent&lt;/li&gt;
	&lt;li&gt;Keep and restore expanded state before filtering&lt;/li&gt;
	&lt;li&gt;Do not collapse expanded items on namespace change&lt;/li&gt;
	&lt;li&gt;Subscribe plugin to all relevant changes in instance anddbs/colls instead of using refreshed event&lt;/li&gt;
	&lt;li&gt;Fix row height calculation and values&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(sidebar): Fix sidebar database expand caret animation&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore: Clean-up global overlay usage from all the unrelevant places&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;It&apos;s only isntance-store that now shows it&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;fix(app-stores): Try to fetch collection details even when collection names were fetched already&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(home): Listen to databasesStatus in addition to instance status and only mark instance as loaded when dbs are loaded&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore(app-stores): Don&apos;t fetch collStats until db namespace is selected&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This aligns new flow with the current behavior&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;fix(collection-model, instance-model): Add missing collInfo props to the model; Allow to fetch collInfo separately from collStats during refresh&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore: Normalize event payloads on document add/remove and import finished&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;refactor(collection-stats): Align to a single source of truth for collection info in collection stats plugin&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Add event listeners to instance store that will refresh collection when needed&lt;/li&gt;
	&lt;li&gt;Do not fetch collStats in plugin, instead listen to all collection status events&lt;br/&gt;
  and update when relevant collection was updated&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(app-stores): Always fetch dbStats on refresh&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore(app-stores): Fetch info when listing collection when fetching database details&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(app-stores, home, instance-model): Don&apos;t show databases until initial refresh is finished when global overlay is shown&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This preserves the current behavior, otherwise users might see dbs while we are still&lt;br/&gt;
blocking the screen which might be a bit too annoying&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;refactor(instance-model, database-model, collection-model): debounce inflight async calls on models&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;chore(collection-stats): Clarify why we are storing references to the appRegistry and instance on the store&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(home): Fix code formatting&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(app-stores, sidebar, databases-collections): Fix depcheck issues&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(instance, database, collection): Attach finally to returned promise to avoid forking the promise and uncaught exceptions&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(collection-stats, server-version, home, app-stores): Update and add new tests following the new instance fetching implementation&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(sidebar): Refactor tests to match new reducer data flow&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(databases-collections): Fix store tests&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(compass): Remove unused dependency&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;test(e2e): Fix flaky database test&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(e2e): Fix prettier formatting&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix(database-model): collectionsStatus is not derived from model.status&lt;br/&gt;
Branch: main&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb-js/compass/commit/ac864f42d35404aeddc35aedd0b273264e324ca0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb-js/compass/commit/ac864f42d35404aeddc35aedd0b273264e324ca0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 15 Nov 2021 17:52:22 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 12 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10257" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Documentation Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="11861"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>COMPASS-4764</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            2 years, 12 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>sergey.petushkov@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i09h7j:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr1yrb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="5543">Iteration Orlando</customfieldvalue>
    <customfieldvalue id="5593">Iteration Phnom Penh</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10555" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i093cv:</customfieldvalue>

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