<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:25:22 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>[DRIVERS-2356] Reduce expected removeKeyAltName operations to a single findOneAndUpdate</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2356</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;div class=&quot;panel&quot; style=&quot;background-color: #fafbfc;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #fafbfc;&quot;&gt;
&lt;h3&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2017&quot; title=&quot;Add ClientEncryption entity and Key Management API operations to Unified Test Format&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2017&quot;&gt;&lt;del&gt;DRIVERS-2017&lt;/del&gt;&lt;/a&gt; introduced unified spec tests for the Key Management API added to ClientEncryption in &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-1951&quot; title=&quot;Key Management API&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-1951&quot;&gt;&lt;del&gt;DRIVERS-1951&lt;/del&gt;&lt;/a&gt;. The unified spec tests for the &lt;tt&gt;removeKeyAltName()&lt;/tt&gt; method, as currently written, expect up to two operations: a &lt;tt&gt;findOneAndUpdate()&lt;/tt&gt; to remove a &lt;tt&gt;keyAltName&lt;/tt&gt; from the &lt;tt&gt;keyAltNames&lt;/tt&gt; field of a matching key document, and a conditional &lt;tt&gt;updateOne()&lt;/tt&gt; to &lt;tt&gt;$unset&lt;/tt&gt; the &lt;tt&gt;keyAltNames&lt;/tt&gt; field if the array would otherwise be empty. This is to satisfy the conditions of the partial filter expression for the unique index on &lt;tt&gt;keyAltNames&lt;/tt&gt; in the key vault collection.&lt;/p&gt;

&lt;p&gt;The &lt;tt&gt;removeKeyAltName()&lt;/tt&gt; function can be optimized to use only a single &lt;tt&gt;findOneAndUpdate()&lt;/tt&gt; that still conditionally &lt;tt&gt;$unset&lt;/tt&gt;s the &lt;tt&gt;keyAltNames&lt;/tt&gt; field by using an aggregation pipeline.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Motivation&quot;&gt;&lt;/a&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;/h3&gt;
&lt;h4&gt;&lt;a name=&quot;Whoistheaffectedenduser%3F&quot;&gt;&lt;/a&gt;Who is the affected end user?&lt;/h4&gt;

&lt;p&gt;Any Drivers that have begun implementing, or have already implemented, the new&#160; &lt;tt&gt;removeKeyAltName()&lt;/tt&gt;&#160;function.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Howdoesthisaffecttheenduser%3F&quot;&gt;&lt;/a&gt;How does this affect the end user?&lt;/h4&gt;

&lt;p&gt;Drivers will have to update the unified spec test file(s) and implementation of &lt;tt&gt;removeKeyAltName()&lt;/tt&gt; to satisfy the new expectations.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Howlikelyisitthatthisproblemorusecasewilloccur%3F&quot;&gt;&lt;/a&gt;How likely is it that this problem or use case will occur?&lt;/h4&gt;

&lt;p&gt;N/A&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Iftheproblemdoesoccur%2Cwhataretheconsequencesandhowseverearethey%3F&quot;&gt;&lt;/a&gt;If the problem does occur, what are the consequences and how severe are they?&lt;/h4&gt;

&lt;p&gt;N/A&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisissueurgent%3F&quot;&gt;&lt;/a&gt;Is this issue urgent?&lt;/h4&gt;

&lt;p&gt;No. This is an optimization.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisticketrequiredbyadownstreamteam%3F&quot;&gt;&lt;/a&gt;Is this ticket required by a downstream team?&lt;/h4&gt;

&lt;p&gt;No.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisticketonlyfortests%3F&quot;&gt;&lt;/a&gt;Is this ticket only for tests?&lt;/h4&gt;

&lt;p&gt;No. The updated unified spec test will also require updating existing implementations of &lt;tt&gt;removeKeyAltName()&lt;/tt&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="2068351">DRIVERS-2356</key>
            <summary>Reduce expected removeKeyAltName operations to a single findOneAndUpdate</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</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="9">Done</resolution>
                                        <assignee username="ezra.chung@mongodb.com">Ezra Chung</assignee>
                                    <reporter username="ezra.chung@mongodb.com">Ezra Chung</reporter>
                        <labels>
                    </labels>
                <created>Tue, 14 Jun 2022 15:37:08 +0000</created>
                <updated>Fri, 7 Apr 2023 18:53:52 +0000</updated>
                            <resolved>Fri, 7 Apr 2023 18:53:52 +0000</resolved>
                                                                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="4615542" author="xgen-internal-githook" created="Tue, 14 Jun 2022 18:53:53 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Ezra Chung&apos;, &apos;email&apos;: &apos;88335979+eramongodb@users.noreply.github.com&apos;, &apos;username&apos;: &apos;eramongodb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2356&quot; title=&quot;Reduce expected removeKeyAltName operations to a single findOneAndUpdate&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2356&quot;&gt;&lt;del&gt;DRIVERS-2356&lt;/del&gt;&lt;/a&gt; Reduce expected removeKeyAltName operations to a single findOneAndUpdate (#1250)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/specifications/commit/dade3e4dd6493e4c5cb8bcb47d6a80e843a7e34f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/commit/dade3e4dd6493e4c5cb8bcb47d6a80e843a7e34f&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                            <outwardlinks description="split to">
                                        <issuelink>
            <issuekey id="2068605">CDRIVER-4406</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2068607">CSHARP-4212</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2068606">CXX-2527</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2068608">GODRIVER-2456</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2068609">JAVA-4650</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2068611">MOTOR-978</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2068610">NODE-4312</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2068613">PHPC-2125</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2068612">PYTHON-3305</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2068614">RUBY-3027</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2068615">RUST-1365</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1958125">DRIVERS-2017</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                            <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_17052" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Downstream Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;ul&gt;
	&lt;li&gt;Sync CSE Unified Spec Tests for &lt;tt&gt;ClientEncryption.removeKeyAltName()&lt;/tt&gt; to &lt;a href=&quot;https://github.com/mongodb/specifications/commit/dade3e4dd6493e4c5cb8bcb47d6a80e843a7e34f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;dade3e4d&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;If applicable, update implementation of &lt;tt&gt;ClientEncryption.removeKeyAltName()&lt;/tt&gt; to use a single &lt;tt&gt;findOneAndUpdate()&lt;/tt&gt; for both &lt;tt&gt;keyAltName&lt;/tt&gt; removal and conditionally unsetting the &lt;tt&gt;keyAltNames&lt;/tt&gt; field.&lt;/li&gt;
&lt;/ul&gt;
</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10951" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Driver Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10748"><![CDATA[Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_23952" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Driver Compliance</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<style type='text/css'>
         #scriptField, #scriptField *{
                border: 1px solid black;
            }

            #scriptField{
                border-collapse: collapse;
            }

            #scriptField td {
                text-align: center; /* Center-align text in table cells */
            }

            #scriptField td.key {
                text-align: left; /* Left-align text in the Key column */
            }

            #scriptField a {
                text-decoration: none; /* Remove underlines from links */
                border: none; /* Remove border from links */
            }
            
            /* Add green background color to cells with FixVersion */
            #scriptField td.hasFixVersion {
                background-color: #00FF00; /* Green color code */
            }

            /* Center-align the first row headers */
            #scriptField th {
                text-align: center;
            }
        </style>
<table id='scriptField'>
  <tr>
    <th>Key</th>
    <th>Status/Resolution</th>
    <th>FixVersion</th>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CDRIVER-4406'>CDRIVER-4406</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>1.22.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CXX-2527'>CXX-2527</a>
    </td>
    <td>Done</td>
    <td class='hasFixVersion'>3.8.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CSHARP-4212'>CSHARP-4212</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>2.17.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/GODRIVER-2456'>GODRIVER-2456</a>
    </td>
    <td>Duplicate</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/JAVA-4650'>JAVA-4650</a>
    </td>
    <td>Done</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/NODE-4312'>NODE-4312</a>
    </td>
    <td>Done</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/MOTOR-978'>MOTOR-978</a>
    </td>
    <td>Duplicate</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PYTHON-3305'>PYTHON-3305</a>
    </td>
    <td>Duplicate</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PHPC-2125'>PHPC-2125</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>1.15.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/RUBY-3027'>RUBY-3027</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>2.18.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/RUST-1365'>RUST-1365</a>
    </td>
    <td>Duplicate</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/SWIFT-1584'>SWIFT-1584</a>
    </td>
    <td>Duplicate</td>
    <td class=''></td>
  </tr>
</table>]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>DRIVERS-1951</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_21553" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Quarter</customfieldname>
                        <customfieldvalues>
                                        <label>FY23Q2</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0hf74:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>