<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:36:57 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>[SERVER-55614] Permit Versioned API options for getMore and transaction-continuing commands</title>
                <link>https://jira.mongodb.org/browse/SERVER-55614</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The Versioned API design requires drivers and users to omit Versioned API parameters in the following two instances:&lt;br/&gt;
1. When calling &lt;tt&gt;getMore&lt;/tt&gt;&lt;br/&gt;
2. In any command that is part of a transaction, except for the command starting the transaction.&lt;/p&gt;

&lt;p&gt;The reason for not allowing them on &lt;tt&gt;getMore&lt;/tt&gt; calls is that it&apos;s bound to the API Version declared when creating the cursor. For transactions, the entire transaction operates under the same declared API Version, so later commands should not be able to override this.&lt;/p&gt;

&lt;p&gt;While this approach makes sense, it creates unnecessary workload in drivers. Drivers have to inspect command documents to know whether they should append Versioned API options for this instance. This can have a performance impact for drivers that already have raw BSON documents at this point.&lt;/p&gt;

&lt;p&gt;To fix this, Drivers and users should be required to include API versioning options for &lt;tt&gt;getMore&lt;/tt&gt; and transaction-continuing commands, with the server emitting a command error if there is an API Version mismatch (exact comparison, e.g. &lt;tt&gt;apiVersion&lt;/tt&gt;, &lt;tt&gt;apiStrict&lt;/tt&gt;, and &lt;tt&gt;apiDeprecationErrors&lt;/tt&gt; match).&lt;/p&gt;

&lt;p&gt;To aid with the transition to this new requirement, the options should be optional at first and can become required options once all drivers have updated their logic to always include these options.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1662879">SERVER-55614</key>
            <summary>Permit Versioned API options for getMore and transaction-continuing commands</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="jesse@mongodb.com">A. Jesse Jiryu Davis</assignee>
                                    <reporter username="andreas.braun@mongodb.com">Andreas Braun</reporter>
                        <labels>
                    </labels>
                <created>Tue, 30 Mar 2021 08:55:45 +0000</created>
                <updated>Sun, 29 Oct 2023 21:55:38 +0000</updated>
                            <resolved>Fri, 7 May 2021 01:22:25 +0000</resolved>
                                                    <fixVersion>5.0.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>11</watches>
                                                                                                                <comments>
                            <comment id="3760091" author="xgen-internal-githook" created="Fri, 7 May 2021 00:39:44 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;A. Jesse Jiryu Davis&apos;, &apos;email&apos;: &apos;jesse@mongodb.com&apos;, &apos;username&apos;: &apos;ajdavis&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-55614&quot; title=&quot;Permit Versioned API options for getMore and transaction-continuing commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-55614&quot;&gt;&lt;del&gt;SERVER-55614&lt;/del&gt;&lt;/a&gt; getMore accepts API version params&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/99fe7a8349fbe620e0ee4a7c070fa7a908635e01&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/99fe7a8349fbe620e0ee4a7c070fa7a908635e01&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3755630" author="jesse" created="Wed, 5 May 2021 02:16:08 +0000"  >&lt;p&gt;When I said &quot;4 commits&quot;, I&apos;d forgotten that I&apos;d accidentally made the shell &lt;b&gt;already&lt;/b&gt; pass API params in getMore and transaction-continuing commands (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-55593&quot; title=&quot;Iterating cursor fails when the shell is started with --apiVersion 1&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-55593&quot;&gt;&lt;del&gt;SERVER-55593&lt;/del&gt;&lt;/a&gt;). So it might just be 2.&lt;/p&gt;</comment>
                            <comment id="3755428" author="xgen-internal-githook" created="Tue, 4 May 2021 21:50:16 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;A. Jesse Jiryu Davis&apos;, &apos;email&apos;: &apos;jesse@mongodb.com&apos;, &apos;username&apos;: &apos;ajdavis&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-55614&quot; title=&quot;Permit Versioned API options for getMore and transaction-continuing commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-55614&quot;&gt;&lt;del&gt;SERVER-55614&lt;/del&gt;&lt;/a&gt; Make API params optional for cmds in txns&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/4aa27885874b90e098c1225fccb10f4daa3b3d38&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/4aa27885874b90e098c1225fccb10f4daa3b3d38&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3751156" author="jesse" created="Mon, 3 May 2021 02:16:25 +0000"  >&lt;p&gt;I plan on 4 commits:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Accept API params in transaction-continuing commands. If present they must match the transaction-initiating command&apos;s params. Update mongos to forward API params to shards with all commands in transactions, including commit/abortTransaction.&lt;/li&gt;
	&lt;li&gt;Update the shell to include API params in transaction-continuing commands if the shell was started with --apiVersion 1 etc.&lt;/li&gt;
	&lt;li&gt;Accept API params in getMore. If present they must match the cursor-initiating command&apos;s params. Update mongos&apos;s getMore to forward params to shards.&lt;/li&gt;
	&lt;li&gt;Update the shell to include API params in getMore if the shell was started with --apiVersion 1 etc.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="3690890" author="jesse" created="Tue, 30 Mar 2021 12:20:33 +0000"  >&lt;p&gt;I&apos;ve been involved in Slack conversations about this change. Since the driver authors say it will make their code simpler, I&apos;m in favor.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1698302">SERVER-56550</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10320">
                    <name>Documented</name>
                                                                <inwardlinks description="is documented by">
                                        <issuelink>
            <issuekey id="1697739">DOCS-14397</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1661765">SERVER-55593</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 30 Mar 2021 12:20:33 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 39 weeks, 6 days 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_17052" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Downstream Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>API parameters were prohibited for getMore. Now, if the cursor-creating command used API parameters, then getMore may use the same API parameters. Similarly, API parameters were prohibited for transaction-continuing commands. Now, transaction-continuing commands may use the same API parameters as the transaction-initiating command. In &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56550&quot; title=&quot;Require Versioned API options for getMore and transaction-continuing commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56550&quot;&gt;&lt;strike&gt;SERVER-56550&lt;/strike&gt;&lt;/a&gt; we&amp;#39;ll soon make API parameters required in these scenarios instead of optional. Note, we&amp;#39;re not requiring API parameters in general - only when an application used API parameters in a cursor-creating or transaction-continuing command.</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16942"><![CDATA[Needed]]></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, 39 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>jesse@mongodb.com</customfieldvalue>
            <customfieldvalue>andreas.braun@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hz1uxj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hyozif:</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_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="4859">Repl 2021-05-17</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_17051" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Teams Impacted</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16943"><![CDATA[Cloud]]></customfieldvalue>
    <customfieldvalue key="16944"><![CDATA[Docs]]></customfieldvalue>
    <customfieldvalue key="16945"><![CDATA[Drivers]]></customfieldvalue>
    <customfieldvalue key="20960"><![CDATA[DBX: DevTools (Compass, Shell, VS Code Ext)]]></customfieldvalue>
    <customfieldvalue key="16946"><![CDATA[Triage and Release]]></customfieldvalue>
    <customfieldvalue key="20958"><![CDATA[Atlas Data Federation and Data Lake]]></customfieldvalue>
    <customfieldvalue key="20959"><![CDATA[Charts]]></customfieldvalue>
    <customfieldvalue key="20961"><![CDATA[SQL Engines (Atlas SQL + BIC)]]></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_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hz1h6n:</customfieldvalue>

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