Skip to content

Commit a2292d0

Browse files
committed
feat: append metadata to MongoClient
1 parent 774cc54 commit a2292d0

File tree

4 files changed

+35
-0
lines changed

4 files changed

+35
-0
lines changed

spec/GridFSBucketStorageAdapter.spec.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const GridFSBucketAdapter = require('../lib/Adapters/Files/GridFSBucketAdapter')
22
.GridFSBucketAdapter;
33
const { randomString } = require('../lib/cryptoUtils');
4+
const { MongoClient } = require('mongodb');
45
const databaseURI = 'mongodb://localhost:27017/parse';
56
const request = require('../lib/request');
67

@@ -475,4 +476,16 @@ describe_only_db('mongo')('GridFSBucket', () => {
475476
expect(e.message).toEqual('Client must be connected before running operations');
476477
}
477478
});
479+
480+
it('pass metadata to MongoClient', async () => {
481+
const pkg = require('../package.json');
482+
spyOn(MongoClient.prototype, 'appendMetadata').and.callThrough();
483+
484+
const gfsAdapter = new GridFSBucketAdapter(databaseURI);
485+
await gfsAdapter._connect();
486+
expect(MongoClient.prototype.appendMetadata).toHaveBeenCalledWith({
487+
name: 'Parse Server',
488+
version: pkg.version,
489+
});
490+
});
478491
});

spec/MongoStorageAdapter.spec.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,18 @@ describe_only_db('mongo')('MongoStorageAdapter', () => {
449449
expect(schemaAfterDeletion.fields.test).toBeUndefined();
450450
});
451451

452+
it('pass metadata to MongoClient', async () => {
453+
const pkg = require('../package.json');
454+
spyOn(MongoClient.prototype, 'appendMetadata').and.callThrough();
455+
456+
const adapter = new MongoStorageAdapter({ uri: databaseURI });
457+
await adapter.connect();
458+
expect(adapter.client.appendMetadata).toHaveBeenCalledWith({
459+
name: 'Parse Server',
460+
version: pkg.version,
461+
});
462+
});
463+
452464
if (process.env.MONGODB_TOPOLOGY === 'replicaset') {
453465
describe('transactions', () => {
454466
const headers = {

src/Adapters/Files/GridFSBucketAdapter.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import { MongoClient, GridFSBucket, Db } from 'mongodb';
1111
import { FilesAdapter, validateFilename } from './FilesAdapter';
1212
import defaults, { ParseServerDatabaseOptions } from '../../defaults';
13+
import pkg from '../../../package.json';
1314
const crypto = require('crypto');
1415

1516
export class GridFSBucketAdapter extends FilesAdapter {
@@ -47,6 +48,10 @@ export class GridFSBucketAdapter extends FilesAdapter {
4748
if (!this._connectionPromise) {
4849
this._connectionPromise = MongoClient.connect(this._databaseURI, this._mongoOptions).then(
4950
client => {
51+
client.appendMetadata?.({
52+
name: 'Parse Server',
53+
version: pkg.version,
54+
});
5055
this._client = client;
5156
return client.db(client.s.options.dbName);
5257
}

src/Adapters/Storage/Mongo/MongoStorageAdapter.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import _ from 'lodash';
1919
import defaults, { ParseServerDatabaseOptions } from '../../../defaults';
2020
import logger from '../../../logger';
2121
import Utils from '../../../Utils';
22+
import pkg from '../../../../package.json';
2223

2324
// @flow-disable-next
2425
const mongodb = require('mongodb');
@@ -184,6 +185,10 @@ export class MongoStorageAdapter implements StorageAdapter {
184185
// Starting mongoDB 3.0, the MongoClient.connect don't return a DB anymore but a client
185186
// Fortunately, we can get back the options and use them to select the proper DB.
186187
// https://github.com/mongodb/node-mongodb-native/blob/2c35d76f08574225b8db02d7bef687123e6bb018/lib/mongo_client.js#L885
188+
client.appendMetadata?.({
189+
name: 'Parse Server',
190+
version: pkg.version,
191+
});
187192
const options = client.s.options;
188193
const database = client.db(options.dbName);
189194
if (!database) {

0 commit comments

Comments
 (0)