<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 22:45:25 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[COMPASS-7113] Investigate changes in NODE-5283: Move js logic from mongodb-client-encryption to the driver</title>
                <link>https://jira.mongodb.org/browse/COMPASS-7113</link>
                <project id="13182" key="COMPASS">Compass </project>
                    <description>&lt;h3&gt;&lt;a name=&quot;UseCase&quot;&gt;&lt;/a&gt;Use Case&lt;/h3&gt;

&lt;p&gt;As a... node driver developer&lt;br/&gt;
I want... fle bindings javascript logic to live in the driver&lt;br/&gt;
So that... there is less code duplication and testing and releases require less work&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;UserImpact&quot;&gt;&lt;/a&gt;User Impact&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Starting in driver 6.0.0 and mongodb-client-encryption 6.0.0, FLE logic will live in the driver instead of mongodb-client-encryption. If a user wishes to use FLE 6.0+, the user must
	&lt;ul&gt;
		&lt;li&gt;install a 6.0+ driver&lt;/li&gt;
		&lt;li&gt;install mongodb-client-encryption 6.0+&lt;/li&gt;
		&lt;li&gt;import the Javascript FLE code from the driver, instead of `mongodb-client-encryption`&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This is different from a pre-6.0 world, where the user was only required to install mongodb-client-encryption.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Dependencies&quot;&gt;&lt;/a&gt;Dependencies&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;N/A&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;&lt;a name=&quot;Unknowns&quot;&gt;&lt;/a&gt;Unknowns&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;N/A&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;&lt;a name=&quot;OpenQuestions&quot;&gt;&lt;/a&gt;Open Questions&lt;/h3&gt;

&lt;p&gt;Do we want to generate documentation for mongodb-client-encryption after these changes? - No, see doc requirements&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;AcceptanceCriteria&quot;&gt;&lt;/a&gt;Acceptance Criteria&lt;/h3&gt;
&lt;h4&gt;&lt;a name=&quot;ImplementationRequirements&quot;&gt;&lt;/a&gt;Implementation Requirements&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Add js bindings code to the driver
	&lt;ul&gt;
		&lt;li&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Subtask&amp;#93;&lt;/span&gt; Move JS logic and integrate into test suite&#160;
		&lt;ul&gt;
			&lt;li&gt;Add @aws-sdk/credential-providers and gcp-metadata as optional peer dependencies in the driver. Ensure that these dependencies are lazy loaded.
			&lt;ul&gt;
				&lt;li&gt;If `socks` is not a peer optional dependency when doing this work, do nothing.&#160; If `socks` is a peer optional dependency in the driver, make sure `socks` is lazy-loaded into the FLE code that uses it.&lt;/li&gt;
			&lt;/ul&gt;
			&lt;/li&gt;
			&lt;li&gt;Move tests from bindings/node/test to driver relevant test directories. Ensure tests pass against the local linked mongodb-client-encryption.&lt;/li&gt;
			&lt;li&gt;Export any code needed from the libmongocrypt bindings needed to get the tests passing in the driver (i.e., class MongoCrypt).&#160; A proper reworking of the bindings will come in a subsequent subtask but we need some restructuring here in order to run the driver&apos;s tests.&lt;/li&gt;
			&lt;li&gt;Add rough TS types for any changes to mongodb-client-encryption in deps.ts so that the driver can use it.&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Subtask&amp;#93;&lt;/span&gt; Clean up bindings in the driver
		&lt;ul&gt;
			&lt;li&gt;Convert to TS when moving - fix duplicate types.&lt;/li&gt;
			&lt;li&gt;Unify constants between the repos.&lt;/li&gt;
			&lt;li&gt;Make MongoCryptErrors (and subclasses) subclasses of MongoError&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li&gt;Release a 6.x pre-release of mongodb-client-encryption for driver to use (note: we plan to bump mongodb-client-encryption to 6.x at the next major so it aligns with the driver&#8217;s and bson&#8217;s major versions)&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Subtask&amp;#93;&lt;/span&gt; Remove js bindings code from libmongocrypt
	&lt;ul&gt;
		&lt;li&gt;Create unit tests in mongodb-client-encryption to test bindings only.&lt;/li&gt;
		&lt;li&gt;Cleanup driver evergreen tasks to no longer run the tests in mongodb-client-encryption.&lt;/li&gt;
		&lt;li&gt;Create public types for the bindings.&lt;/li&gt;
		&lt;li&gt;Cleanup unused dependencies from mongodb-client-encryption (@aws-sdk/credential-providers, gcp-metadata, socks, and mongodb)&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Subtask&amp;#93;&lt;/span&gt; Export new CSFLE types from the driver.&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Subtask&amp;#93;&lt;/span&gt; Add driver CI testing against the lowest supported peer dependency range version of the bindings alongside the latest version&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Subtask&amp;#93;&lt;/span&gt; Export javascript FLE logic from legacy mongodb package and setup driver testing with mongodb-legacy for all FLE logic.&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;&lt;a name=&quot;TestingRequirements&quot;&gt;&lt;/a&gt;Testing Requirements&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Unit tests if/as needed&lt;/li&gt;
	&lt;li&gt;CI test for lowest supported peer dependency range version (see above)&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;&lt;a name=&quot;DocumentationRequirements&quot;&gt;&lt;/a&gt;Documentation Requirements&lt;/h4&gt;

&lt;p&gt;The following changes are downstream docs changes (not driver API docs):&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Adjust FLE documentation for Node to install the driver and mongodb-client-encryption, instead of just mongodb-client-encryption.&lt;/li&gt;
	&lt;li&gt;Adjust existing FLE examples to import explicit encryption code from the driver, instead of from `mongodb-client-encryption`
	&lt;ul&gt;
		&lt;li&gt;Coordinate with the docs team to ensure any example code is updated.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;Add a note to mongodb-client-encryption readme stating that this package is not intended to be used in isolation and that we reserve the right to make changes that fall outside of semver&lt;/li&gt;
	&lt;li&gt;Adjust any internal documentation on generating docs and testing (in the driver and libmongocrypt) as necessary&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;&lt;a name=&quot;FollowUpRequirements&quot;&gt;&lt;/a&gt;Follow Up Requirements&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;N/A&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="2416880">COMPASS-7113</key>
            <summary>Investigate changes in NODE-5283: Move js logic from mongodb-client-encryption to the driver</summary>
                <type id="10501" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14720&amp;avatarType=issuetype">Investigation</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="9">Done</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="dbeng-pm-bot">PM Bot</reporter>
                        <labels>
                            <label>node-driver</label>
                    </labels>
                <created>Mon, 14 Aug 2023 15:52:57 +0000</created>
                <updated>Tue, 29 Aug 2023 12:44:23 +0000</updated>
                            <resolved>Tue, 29 Aug 2023 12:44:23 +0000</resolved>
                                                    <fixVersion>No version</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="5665644" author="JIRAUSER1256529" created="Tue, 29 Aug 2023 12:44:23 +0000"  >&lt;p&gt;This is part of &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOSH-1541&quot; title=&quot;Update Node.js driver, bson and mongodb-client-encryption to 6.0&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOSH-1541&quot;&gt;&lt;del&gt;MONGOSH-1541&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-7057&quot; title=&quot;Update mongosh to 2.0.0 and driver to 6.0.0 in Compass&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-7057&quot;&gt;&lt;del&gt;COMPASS-7057&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="2338488">NODE-5283</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>1.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 29 Aug 2023 12:44:23 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        23 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/NODE-5283'>NODE-5283</a></s>]]></customfieldvalue>


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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>MONGOSH-1319</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>anna.henningsen@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            23 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>anna.henningsen@mongodb.com</customfieldvalue>
            <customfieldvalue>dbeng-pm-bot</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2m7fr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i249hc:</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_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2ltl3:</customfieldvalue>

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