<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:44:55 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-80909] Add ability to publish full document only in changestream $source operator</title>
                <link>https://jira.mongodb.org/browse/SERVER-80909</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Most of the time, users who will be running stream queries will want to use the fullDocument of the change stream and not any metadata of the change stream event itself.&#160; As it is today, users who use MongoDB as a source will have to to change their code to add a stage in order to remove the extra Change Stream metadata&lt;/p&gt;

&lt;p&gt;$replaceRoot: { newRoot : &quot;$fullDocument&quot;}&lt;/p&gt;

&lt;p&gt;and modify their timeField as follows:&lt;/p&gt;

&lt;p&gt;timeField : { $dateFromString :&lt;/p&gt;

{ &quot;dateString&quot; : &quot;$fullDocument.timestamp&quot;}

&lt;p&gt;},&lt;/p&gt;

&lt;p&gt;A better user experience would be to add a single configuration option as we have in Kafka Connector, publish.full.document.only. that would return just the value of the fullDocument of the Change Stream Event.&lt;/p&gt;

&lt;p&gt;The task:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Amend ChangeStreamSourceOperators to support a &lt;em&gt;$source.fullDocumentOnly: bool&lt;/em&gt; field. See &lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/blob/master/src/streams/exec/stages.idl#L230&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo-enterprise-modules/blob/master/src/streams/exec/stages.idl#L230&lt;/a&gt; for the interface definition.&lt;/li&gt;
	&lt;li&gt;When fullDocumentOnly is true, `fullDocument: updateLookup, whenAvailable, or required` must also be specified.&lt;/li&gt;
	&lt;li&gt;When fullDocumentOnly is true, the ChangeStreamSourceOperator should project the `fullDocument` field from the change events. See &lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/blob/master/src/streams/exec/change_stream_source_operator.cpp#L347&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo-enterprise-modules/blob/master/src/streams/exec/change_stream_source_operator.cpp#L347&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Amend this test suite to test the changes: &lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/blob/master/jstests/streams/change_stream_source.js&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo-enterprise-modules/blob/master/jstests/streams/change_stream_source.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;See some related documentation in the Kafka connector below:&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&lt;b&gt;publish.full.document.only&lt;/b&gt;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&lt;b&gt;Type:&lt;/b&gt;&#160;boolean&lt;br/&gt;
&#160;&lt;br/&gt;
&lt;b&gt;Description:&lt;/b&gt;&lt;br/&gt;
Whether to return only the&#160;&lt;tt&gt;fullDocument&lt;/tt&gt;&#160;field from the change stream event document produced by any update event. The&#160;&lt;tt&gt;fullDocument&lt;/tt&gt;&#160;field contains the most current version of the updated document. To learn more about the&#160;&lt;tt&gt;fullDocument&lt;/tt&gt;&#160;field, see the&#160;&lt;a href=&quot;https://www.mongodb.com/docs/rapid/reference/change-events/update/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Server manual page on update events&lt;/a&gt;.&lt;br/&gt;
When set to&#160;&lt;tt&gt;true&lt;/tt&gt;, the connector overrides the&#160;&lt;tt&gt;change.stream.full.document&lt;/tt&gt;&#160;setting and sets it to&#160;&lt;tt&gt;updateLookup&lt;/tt&gt;&#160;so that the&#160;&lt;tt&gt;fullDocument&lt;/tt&gt;&#160;field contains updated documents.&lt;br/&gt;
&lt;b&gt;Default&lt;/b&gt;:&#160;&lt;tt&gt;false&lt;/tt&gt;&lt;br/&gt;
&lt;b&gt;Accepted Values&lt;/b&gt;:&#160;&lt;tt&gt;true&lt;/tt&gt;&#160;or&#160;&lt;tt&gt;false&lt;/tt&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;


&lt;p&gt;&#160;&lt;br/&gt;
&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="2365728">SERVER-80909</key>
            <summary>Add ability to publish full document only in changestream $source operator</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="2" iconUrl="https://jira.mongodb.org/images/icons/priorities/critical.svg">Critical - P2</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="harendra.chawla@mongodb.com">Harendra Chawla</assignee>
                                    <reporter username="robert.walters@mongodb.com">Robert Walters</reporter>
                        <labels>
                            <label>init-337-m3</label>
                            <label>neweng</label>
                    </labels>
                <created>Mon, 12 Jun 2023 19:24:06 +0000</created>
                <updated>Tue, 14 Nov 2023 16:35:14 +0000</updated>
                            <resolved>Tue, 14 Nov 2023 16:35:14 +0000</resolved>
                                                    <fixVersion>7.2.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="5611963" author="JIRAUSER1272673" created="Thu, 3 Aug 2023 22:43:31 +0000"  >&lt;p&gt;+1 for getting this done. It&apos;s annoying to have to specify `fullDocument.` anywhere including in the `timeField`.&lt;/p&gt;</comment>
                            <comment id="5493668" author="JIRAUSER1272160" created="Mon, 12 Jun 2023 22:11:59 +0000"  >&lt;p&gt;Also, how would this appear in the syntax? ex.&lt;/p&gt;

&lt;p&gt;$source: {&lt;/p&gt;

&lt;p&gt;&#160; &#160;config: &lt;/p&gt;
{

&#160; &#160; &#160; publish.full.document.only = true|false

&#160; &#160;}

&lt;p&gt;}&lt;/p&gt;</comment>
                            <comment id="5493658" author="JIRAUSER1272160" created="Mon, 12 Jun 2023 22:10:00 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=robert.walters%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;robert.walters@mongodb.com&quot;&gt;robert.walters@mongodb.com&lt;/a&gt; , when &lt;b&gt;publish.full.document.only=true,&lt;/b&gt; is the expected output equivalent to &lt;b&gt;$replaceRoot: { newRoot : &quot;$fullDocument&quot;}&lt;/b&gt;&#160;&#160;on the full changestream?&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25414"><![CDATA[Atlas Streams]]></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>Mon, 12 Jun 2023 22:10:00 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        26 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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>STREAMS-483</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>matthew.normyle@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            26 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>harendra.chawla@mongodb.com</customfieldvalue>
            <customfieldvalue>matthew.normyle@mongodb.com</customfieldvalue>
            <customfieldvalue>robert.walters@mongodb.com</customfieldvalue>
            <customfieldvalue>sandeep.dhoot@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2dfwn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i2f4v4:</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_22250" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Special Downgrade Instructions Required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="23343"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="7838">Sprint 34</customfieldvalue>
    <customfieldvalue id="7839">Sprint 35</customfieldvalue>
    <customfieldvalue id="7840">Sprint 36</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|i2d21z:</customfieldvalue>

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