Skip to content

Commit 51c5850

Browse files
feat: enable In-Use Encryption COMPASS-5634 (#3145)
1 parent 3adb574 commit 51c5850

File tree

11 files changed

+34
-111
lines changed

11 files changed

+34
-111
lines changed

packages/compass-e2e-tests/helpers/commands/add-collection.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,7 @@ export async function addCollection(
139139
await expireField.setValue(options.clustered.expireAfterSeconds.toString());
140140
}
141141

142-
if (
143-
options &&
144-
options.encryptedFields &&
145-
process.env.COMPASS_CSFLE_SUPPORT === 'true'
146-
) {
142+
if (options && options.encryptedFields) {
147143
await browser.clickVisible(Selectors.CreateCollectionFLE2CheckboxLabel);
148144
await browser.setAceValue(
149145
Selectors.CreateCollectionFLE2,

packages/compass-e2e-tests/helpers/commands/set-connect-form-state.ts

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ export async function setConnectFormState(
1919
Selectors.connectionFormSchemeRadio(state.scheme)
2020
);
2121
}
22-
2322
if (state.hosts) {
2423
for (let i = 0; i < state.hosts.length; ++i) {
2524
if (i > 0) {
@@ -33,7 +32,6 @@ export async function setConnectFormState(
3332
);
3433
}
3534
}
36-
3735
if (state.directConnection) {
3836
await browser.clickParent(Selectors.ConnectionFormDirectConnectionCheckbox);
3937
}
@@ -135,39 +133,37 @@ export async function setConnectFormState(
135133
state.awsSessionToken
136134
);
137135
}
138-
139-
// FLE2
140-
if (process.env.COMPASS_CSFLE_SUPPORT === 'true') {
141-
await browser.navigateToConnectTab('In-Use Encryption');
142-
if (state.fleKeyVaultNamespace) {
143-
await browser.setValueVisible(
144-
Selectors.ConnectionFormInputFLEKeyVaultNamespace,
145-
state.fleKeyVaultNamespace
146-
);
147-
}
148-
if (state.fleKey) {
149-
await browser.expandAccordion(Selectors.ConnectionFormInputFLELocalKMS);
150-
await browser.setValueVisible(
151-
Selectors.ConnectionFormInputFLELocalKey,
152-
state.fleKey
153-
);
154-
}
155-
if (state.fleEncryptedFieldsMap) {
156-
// set the text in the editor
157-
await browser.setAceValue(
158-
Selectors.ConnectionFormInputFLEEncryptedFieldsMap,
159-
state.fleEncryptedFieldsMap
160-
);
161-
}
162-
}
163-
164136
if (state.awsSessionToken) {
165137
await browser.setValueVisible(
166138
Selectors.ConnectionFormInputAWSSessionToken,
167139
state.awsSessionToken
168140
);
169141
}
170142

143+
// FLE2
144+
await browser.navigateToConnectTab('In-Use Encryption');
145+
146+
if (state.fleKeyVaultNamespace) {
147+
await browser.setValueVisible(
148+
Selectors.ConnectionFormInputFLEKeyVaultNamespace,
149+
state.fleKeyVaultNamespace
150+
);
151+
}
152+
if (state.fleKey) {
153+
await browser.expandAccordion(Selectors.ConnectionFormInputFLELocalKMS);
154+
await browser.setValueVisible(
155+
Selectors.ConnectionFormInputFLELocalKey,
156+
state.fleKey
157+
);
158+
}
159+
if (state.fleEncryptedFieldsMap) {
160+
// set the text in the editor
161+
await browser.setAceValue(
162+
Selectors.ConnectionFormInputFLEEncryptedFieldsMap,
163+
state.fleEncryptedFieldsMap
164+
);
165+
}
166+
171167
// TLS/SSL
172168
await browser.navigateToConnectTab('TLS/SSL');
173169

@@ -176,7 +172,6 @@ export async function setConnectFormState(
176172
Selectors.connectionFormSSLConnectionRadio(state.sslConnection)
177173
);
178174
}
179-
180175
if (state.tlsCAFile) {
181176
await browser.selectFile(
182177
Selectors.ConnectionFormTlsCaFile,

packages/compass-e2e-tests/tests/connection.test.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -692,18 +692,14 @@ describe('System CA access', function () {
692692
describe('FLE2', function () {
693693
let compass: Compass;
694694
let browser: CompassBrowser;
695-
let initialEnvVars: NodeJS.ProcessEnv;
696695

697696
before(async function () {
698-
initialEnvVars = Object.assign({}, process.env);
699-
process.env.COMPASS_CSFLE_SUPPORT = 'true';
700697
compass = await beforeTests();
701698
browser = compass.browser;
702699
});
703700

704701
after(async function () {
705702
await afterTests(compass, this.currentTest);
706-
process.env = initialEnvVars;
707703
});
708704

709705
it('can connect using local KMS', async function () {

packages/compass-e2e-tests/tests/in-use-encryption.test.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import { createDummyCollections } from '../helpers/insert-data';
99
import { getFirstListDocument } from '../helpers/read-first-document-content';
1010

1111
describe('FLE2', function () {
12-
let initialEnvVars: NodeJS.ProcessEnv;
13-
1412
before(async function () {
1513
if (
1614
semver.lt(MONGODB_VERSION, '6.0.0-rc0') ||
@@ -19,18 +17,9 @@ describe('FLE2', function () {
1917
return this.skip();
2018
}
2119

22-
initialEnvVars = Object.assign({}, process.env);
23-
process.env.COMPASS_CSFLE_SUPPORT = 'true';
24-
2520
await createDummyCollections();
2621
});
2722

28-
after(function () {
29-
if (initialEnvVars) {
30-
process.env = initialEnvVars;
31-
}
32-
});
33-
3423
describe('when fleEncryptedFieldsMap is not specified while connecting', function () {
3524
const databaseName = 'test';
3625
const collectionName = 'my-encrypted-collection';

packages/compass/src/index.d.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@ declare module 'process' {
4848
*/
4949
COMPASS_SHOW_NEW_TOOLBARS?: 'true' | 'false';
5050

51-
COMPASS_CSFLE_SUPPORT?: 'true' | 'false';
52-
5351
COMPASS_CLUSTERED_COLLECTIONS?: 'true' | 'false';
5452

5553
/**

packages/connection-form/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@
3838
"depcheck": "depcheck",
3939
"check": "npm run lint && npm run depcheck",
4040
"check-ci": "npm run check",
41-
"test": "cross-env COMPASS_CSFLE_SUPPORT='true' mocha",
42-
"test-electron": "cross-env COMPASS_CSFLE_SUPPORT='true' xvfb-maybe electron-mocha --no-sandbox",
43-
"test-cov": "cross-env COMPASS_CSFLE_SUPPORT='true' nyc -x \"**/*.spec.*\" --reporter=lcov --reporter=text --reporter=html npm run test",
41+
"test": "mocha",
42+
"test-electron": "xvfb-maybe electron-mocha --no-sandbox",
43+
"test-cov": "nyc -x \"**/*.spec.*\" --reporter=lcov --reporter=text --reporter=html npm run test",
4444
"test-watch": "npm run test -- --watch",
4545
"test-ci": "npm run test-cov",
4646
"test-ci-electron": "npm run test-electron",

packages/connection-form/src/components/advanced-options-tabs/advanced-options-tabs.tsx

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ import type { ConnectionFormError, TabId } from '../../utils/validation';
2121
import { errorsByFieldTab } from '../../utils/validation';
2222
import { defaultConnectionString } from '../../constants/default-connection';
2323

24-
const csfleFeatureFlag = process?.env?.COMPASS_CSFLE_SUPPORT === 'true';
25-
2624
const tabsStyles = css({
2725
marginTop: spacing[2],
2826
});
@@ -72,21 +70,13 @@ function AdvancedOptionsTabs({
7270
},
7371
{ name: 'TLS/SSL', id: 'tls', component: TLSTab },
7472
{ name: 'Proxy/SSH', id: 'proxy', component: ProxyAndSshTunnelTab },
75-
{ name: 'Advanced', id: 'advanced', component: AdvancedTab },
76-
];
77-
78-
if (csfleFeatureFlag) {
79-
// Add before advanced
80-
tabs.splice(-1, 0, {
73+
{
8174
name: 'In-Use Encryption',
8275
id: 'csfle',
8376
component: CSFLETab,
84-
});
85-
// TODO(COMPASS-5634): Figure out the exact spacing properties
86-
// for fitting all the tabs in here.
87-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
88-
tabs.find((tab) => tab.id === 'proxy')!.name = 'Proxy/SSH';
89-
}
77+
},
78+
{ name: 'Advanced', id: 'advanced', component: AdvancedTab },
79+
];
9080

9181
const connectionStringUrl = useMemo(() => {
9282
try {

packages/connection-form/src/components/connect-form.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,11 @@ import { useConnectForm } from '../hooks/use-connect-form';
2727
import { validateConnectionOptionsErrors } from '../utils/validation';
2828
import SaveConnectionModal from './save-connection-modal';
2929

30-
const csfleFeatureFlag = process?.env?.COMPASS_CSFLE_SUPPORT === 'true';
31-
3230
const formContainerStyles = css({
3331
margin: 0,
3432
padding: 0,
3533
height: 'fit-content',
36-
width: spacing[6] * (10 + (csfleFeatureFlag ? 2 : 0)),
34+
width: spacing[6] * 12,
3735
position: 'relative',
3836
display: 'inline-block',
3937
});

packages/data-service/src/data-service.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,7 @@ describe('DataService', function () {
244244
});
245245
if (
246246
(buildInfo.versionArray?.[0] ?? 0) <= 5 ||
247-
dataService.currentTopologyType() === 'Single' ||
248-
process.env.COMPASS_CSFLE_SUPPORT !== 'true'
247+
dataService.currentTopologyType() === 'Single'
249248
) {
250249
return this.skip(); // FLE2 requires 6.0+ replset
251250
}

packages/databases-collections/src/components/collection-fields/has-fle2-support.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,6 @@ import semver from 'semver';
33
const MIN_FLE2_SERVER_VERSION = '6.0.0-alpha0';
44

55
export default function hasFLE2Support(serverVersion, currentTopologyType, configuredKMSProviders) {
6-
const fle2FeatureFlag = process?.env?.COMPASS_CSFLE_SUPPORT === 'true';
7-
8-
if (!fle2FeatureFlag) {
9-
return false;
10-
}
11-
126
if (currentTopologyType === 'Single') {
137
return false;
148
}

0 commit comments

Comments
 (0)