<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:24:27 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-1995] Do not error when parsing change stream event documents</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-1995</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;Some drivers parse change stream documents into language types.&lt;/p&gt;

&lt;p&gt;Proposed change is to avoid parsing errors of change stream events that prevent:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Server from adding new values to&#160;&lt;tt&gt;operationType&lt;/tt&gt;.&lt;/li&gt;
	&lt;li&gt;Server from adding fields.&lt;/li&gt;
	&lt;li&gt;Users from applying projection.&lt;/li&gt;
&lt;/ul&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;p&gt;Some drivers parse &lt;tt&gt;operationType&lt;/tt&gt; as an enumeration and throw an error if parsing an unrecognized &lt;tt&gt;operationType&lt;/tt&gt;. See &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1qZQXm__ILyxmoekjom7GiqQY6CdPCKdZIIrmQYaQvEg/edit#gid=0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this spreadsheet&lt;/a&gt; for a list of affected drivers.&lt;/p&gt;

&lt;p&gt;That behavior necessitated an opt-in flag for adding new change stream events in PM-1950. PM-1950 makes the assumption that introducing new change stream event types does not break user applications.&lt;/p&gt;

&lt;p&gt;Drivers should permit new fields to allow extension. C# throws on extra fields in the &lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/blob/master/src/MongoDB.Driver.Core/ChangeStreamDocumentCollectionNamespaceSerializer.cs#L54:L55&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;ns subdocument&lt;/a&gt;. The ns document could have fields added in the future. E.g. &lt;tt&gt;viewOn&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;One motivation is to avoid opt-in flags when adding events in the future.&lt;/p&gt;

&lt;p&gt;Another motivation is to allow users to apply a &lt;tt&gt;$project&lt;/tt&gt;&#160;stage. The server errors if &lt;tt&gt;_id&lt;/tt&gt; is projected out. Users should be free to add, remove or modify any other fields in the change stream event as they see fit.&lt;/p&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;Permitting unrecognized &lt;tt&gt;operationType&lt;/tt&gt; permits the server to add change stream events with a new &lt;tt&gt;operationType&lt;/tt&gt; without breaking existing user applications. Allowing extra fields permits the server to extend change stream events in the future. Permitting missing / modified fields permits the user to apply &lt;tt&gt;$project&lt;/tt&gt;.&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;If new &lt;tt&gt;operationType&lt;/tt&gt; values result in an error, it requires the server to add new change stream events behind an &quot;opt-in&quot; flag.&lt;/p&gt;

&lt;p&gt;If there is no &quot;opt-in&quot; flag, user applications will error when a server upgrade occurs before a driver upgrade. Example:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Atlas upgrades the backing server&lt;/li&gt;
	&lt;li&gt;User is stuck on an old driver that does not recognize the new &lt;tt&gt;operationType&lt;/tt&gt;&lt;/li&gt;
	&lt;li&gt;Change stream iteration errors when the new event is produced.&lt;/li&gt;
&lt;/ul&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;The query team believes it is likely that new change stream events will be added in the future.&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;If this is not done before PM-1950, the server will need to continue to add change stream events behind additional &quot;opt-in&quot; flags.&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;This ticket should be done on the timeline of PM-1950. That will enable all future events to be behind the one &quot;opt-in&quot; flag introduced in PM-1950.&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;Possibly Shell.&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. This has functional impact.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="1934810">DRIVERS-1995</key>
            <summary>Do not error when parsing change stream event documents</summary>
                <type id="14901" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14700&amp;avatarType=issuetype">Spec Change</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="13453" iconUrl="https://jira.mongodb.org/images/icons/status_generic.gif" description="">Implementing</status>
                    <statusCategory id="4" key="indeterminate" colorName="inprogress"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="james.kovacs@mongodb.com">James Kovacs</assignee>
                                    <reporter username="kevin.albertson@mongodb.com">Kevin Albertson</reporter>
                        <labels>
                            <label>spec-change</label>
                    </labels>
                <created>Mon, 29 Nov 2021 17:01:06 +0000</created>
                <updated>Sat, 21 May 2022 12:08:21 +0000</updated>
                                                                <component>Change Streams</component>
                                        <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="4536832" author="xgen-internal-githook" created="Mon, 9 May 2022 21:59:47 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Steven Silvester&apos;, &apos;email&apos;: &apos;steven.silvester@ieee.org&apos;, &apos;username&apos;: &apos;blink1073&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-1995&quot; title=&quot;Do not error when parsing change stream event documents&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-1995&quot;&gt;DRIVERS-1995&lt;/a&gt; Skip failing test on Server Version 5.3 (#1209)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/specifications/commit/92d77a6d1b9d54e60f261d56b7eb85ae295523b0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/commit/92d77a6d1b9d54e60f261d56b7eb85ae295523b0&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4477989" author="JIRAUSER1263701" created="Tue, 12 Apr 2022 18:19:47 +0000"  >&lt;p&gt;Thanks &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jmikola%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;jmikola@mongodb.com&quot;&gt;jmikola@mongodb.com&lt;/a&gt;, I opened &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-65497&quot; title=&quot;Server Error when using a new structure in ns document&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-65497&quot;&gt;&lt;del&gt;SERVER-65497&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4475415" author="jmikola@gmail.com" created="Tue, 12 Apr 2022 01:37:21 +0000"  >&lt;blockquote&gt;&lt;p&gt;We&apos;re not validating the operationType as expected, but with the latest and rapid versions of the server we&apos;re getting an error back:&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=steve.silvester%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;steve.silvester@mongodb.com&quot;&gt;steve.silvester@mongodb.com&lt;/a&gt;: Can you clarify exactly what test case(s) reproduce this server assertion failure? If it&apos;s only &lt;a href=&quot;https://github.com/mongodb/specifications/commit/dbed22d67ef3b005c73a0a4b0ce576a5ee81b170#diff-ba3c94557f77e83f167fb27ed81eb223e4eb3e6178238f3d93def75f37adb301R251&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Test unknown operationType MUST NOT err&lt;/a&gt;, I might suggest opening a SERVER ticket to inform them of a possible regression and confirm whether the error is expected or not. Since these spec tests are mostly executing &lt;tt&gt;watch()&lt;/tt&gt; operations, you should be able to create a &lt;span class=&quot;error&quot;&gt;&amp;#91;minimal reproducible example&amp;#93;&lt;/span&gt;|https://stackoverflow.com/help/minimal-reproducible-example] using the shell (e.g. &lt;a href=&quot;https://www.mongodb.com/docs/manual/reference/method/db.collection.watch/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;db.collection.watch()&lt;/a&gt;) to make it easier for the server team to triage/diagnose.&lt;/p&gt;

&lt;p&gt;Even if the server did add some extra validation that prohibits projecting an unsupported value into the &lt;tt&gt;operationType&lt;/tt&gt; field, I&apos;d expect a more straightforward error message than what you&apos;re seeing. A blanket prohibition on projecting that field could even be preferable (similar to the prohibition on projecting out the &lt;tt&gt;_id&lt;/tt&gt; field IIRC).&lt;/p&gt;</comment>
                            <comment id="4475358" author="JIRAUSER1263701" created="Tue, 12 Apr 2022 00:43:08 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=james.kovacs%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;james.kovacs@mongodb.com&quot;&gt;james.kovacs@mongodb.com&lt;/a&gt;, I&apos;m trying to implement this for the Python driver in &lt;a href=&quot;https://github.com/mongodb/mongo-python-driver/pull/924&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;pymongo&lt;/a&gt;.  We&apos;re not validating the &lt;tt&gt;operationType&lt;/tt&gt; as expected, but with the &lt;tt&gt;latest&lt;/tt&gt; and &lt;tt&gt;rapid&lt;/tt&gt; versions of the server we&apos;re getting an error back:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;pymongo.errors.OperationFailure: assertion src/mongo/db/exec/document_value/value.h:478, full error: {&apos;ok&apos;: 0.0, &apos;errmsg&apos;: &apos;assertion src/mongo/db/exec/document_value/value.h:478&apos;, &apos;code&apos;: 8, &apos;codeName&apos;: &apos;UnknownError&apos;, &apos;$clusterTime&apos;: {&apos;clusterTime&apos;: Timestamp(1649448273, 1), &apos;signature&apos;: {&apos;hash&apos;: b&apos;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&apos;, &apos;keyId&apos;: 0}}, &apos;operationTime&apos;: Timestamp(1649448273, 1)}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
</comment>
                            <comment id="4462970" author="xgen-internal-githook" created="Wed, 6 Apr 2022 22:16:11 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;BorisDog&apos;, &apos;email&apos;: &apos;BorisDog@users.noreply.github.com&apos;, &apos;username&apos;: &apos;BorisDog&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-1995&quot; title=&quot;Do not error when parsing change stream event documents&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-1995&quot;&gt;DRIVERS-1995&lt;/a&gt;: Restrict &quot;test server error on projecting out _id&quot; test to 4.2 an higher (#1172)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/specifications/commit/3cb20c18bd987096ac404aefb201a3b69a3c2585&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/commit/3cb20c18bd987096ac404aefb201a3b69a3c2585&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4449325" author="jmikola@gmail.com" created="Thu, 31 Mar 2022 23:59:08 +0000"  >&lt;p&gt;Adding &quot;has to be done after&quot;&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2231&quot; title=&quot;ChangeStream Spec: fullDocument field in ChangeStreamOptions should be an optional to handle &amp;quot;default&amp;quot; case.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2231&quot;&gt;&lt;del&gt;DRIVERS-2231&lt;/del&gt;&lt;/a&gt;, since drivers that have yet to implement that ticket may run into trouble with the commandStartedEvent assertions. See &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2261&quot; title=&quot;Remove $$unsetOrMatches in poc-change-streams tests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2261&quot;&gt;DRIVERS-2261&lt;/a&gt; for more details.&lt;/p&gt;</comment>
                            <comment id="4448596" author="xgen-internal-githook" created="Thu, 31 Mar 2022 19:21:22 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;James Kovacs&apos;, &apos;email&apos;: &apos;jkovacs@post.harvard.edu&apos;, &apos;username&apos;: &apos;JamesKovacs&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-1995&quot; title=&quot;Do not error when parsing change stream event documents&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-1995&quot;&gt;DRIVERS-1995&lt;/a&gt;: Do not error when parsing change stream event documents (#1164)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/specifications/commit/dbed22d67ef3b005c73a0a4b0ce576a5ee81b170&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/commit/dbed22d67ef3b005c73a0a4b0ce576a5ee81b170&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10020">
                    <name>Gantt Dependency</name>
                                                                <inwardlinks description="has to be done after">
                                        <issuelink>
            <issuekey id="2023509">SERVER-65497</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="830374">DRIVERS-2231</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                            <outwardlinks description="split to">
                                        <issuelink>
            <issuekey id="1976087">PHPLIB-829</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1976089">RUST-1168</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1976083">JAVA-4470</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1976079">CDRIVER-4279</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1976085">MOTOR-880</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1976084">NODE-3940</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1976086">PYTHON-3095</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1976088">RUBY-2893</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1976081">CSHARP-4036</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1976080">CXX-2440</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1976082">GODRIVER-2296</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2013787">DRIVERS-2261</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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;p&gt;Updated the Change Streams spec and added new unified tests. Drivers should sync unified change stream tests with &lt;a href=&quot;https://github.com/mongodb/specifications/commit/dbed22d67ef3b005c73a0a4b0ce576a5ee81b170&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;dbed22d&lt;/a&gt; and &lt;a href=&quot;https://github.com/mongodb/specifications/commit/3cb20c18bd987096ac404aefb201a3b69a3c2585&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;3cb20c1&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Note: drivers that have yet to implement &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2231&quot; title=&quot;ChangeStream Spec: fullDocument field in ChangeStreamOptions should be an optional to handle &amp;quot;default&amp;quot; case.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2231&quot;&gt;&lt;del&gt;DRIVERS-2231&lt;/del&gt;&lt;/a&gt; should do so before this ticket; otherwise, commandStartedEvent assertions may fail due to an unexpected &lt;tt&gt;fullDocument&lt;/tt&gt; field appearing in observed events.&lt;/p&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-4279'>CDRIVER-4279</a>
    </td>
    <td>Backlog</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CXX-2440'>CXX-2440</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>3.7.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CSHARP-4036'>CSHARP-4036</a>
    </td>
    <td>Done</td>
    <td class='hasFixVersion'>2.16.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/GODRIVER-2296'>GODRIVER-2296</a>
    </td>
    <td>Done</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/JAVA-4470'>JAVA-4470</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>4.6.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/NODE-3940'>NODE-3940</a>
    </td>
    <td>Done</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/MOTOR-880'>MOTOR-880</a>
    </td>
    <td>Duplicate</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PYTHON-3095'>PYTHON-3095</a>
    </td>
    <td>Duplicate</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PHPLIB-829'>PHPLIB-829</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>1.13.0-beta1, 1.13.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/RUBY-2893'>RUBY-2893</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-1168'>RUST-1168</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>2.3.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/SWIFT-1474'>SWIFT-1474</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
</table>]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18362" key="com.atlassian.jira.plugin.system.customfieldtypes:userpicker">
                        <customfieldname>Engineering Lead</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>james.kovacs@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_18358" key="com.atlassian.jira.plugin.system.customfieldtypes:userpicker">
                        <customfieldname>Product Manager</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>rachelle.palmer@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_21553" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Quarter</customfieldname>
                        <customfieldvalues>
                                        <label>FY23Q1</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hzv8yv:</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>