mongodb-build-info
Helpful functions to figure out if a connection is on Atlas, Atlas Data Lake,
Enterpise, or DocumentDB/CosmosDB.
Usage
const getBuildInfo = require('mongodb-build-info')
const MongoClient = require('mongodb').MongoClient
MongoClient.connect('localhost:27017', function (err, client) {
const adminDB = client.db('test').admin()
let buildInfo;
adminDB.command({ buildInfo: 1 }, {}, parseBuildInfo)
adminDB.command({ getCmdLineOpts: 1 }, {}, parseCmdLineOpts)
function parseBuildInfo (err, res) {
if (err) console.log('Command failed, ', err)
buildInfo = res
const { isDataLake, dlVersion } = getBuildInfo.getDataLake(buildInfo)
const isEnterprise = getBuildInfo.isEnterprise(buildInfo)
}
function parseCmdLineOpts (err, res) {
if (err) console.log('Command failed', err.message)
const { isGenuine, serverName } = getGenuineMongoDB(buildInfo, res)
}
})
API
getDataLake(buildInfo)
Returns an object:
isDataLake: boolean.
dlVersion: version of dataLake, a string.
isEnterprise(buildInfo)
Returns a boolean.
isAtlas(uri)
Returns a boolean.
isLocalAtlas(count: (db: string, coll: string, query: Document) => Promise<number>)
Returns a Promise<boolean>.
isAtlasStream(uri)
Returns a boolean.
isLocalhost(uri)
Returns a boolean.
isDigitalOcean(uri)
Returns a boolean.
getGenuineMongoDB(buildInfo, cmdLineOpts)
Returns an object:
isGenuine: boolean.
serverName: name of the server (mongoDB, cosmosDB, or documentDB).
getBuildEnv(buildInfo)
Returns an object:
serverOs: build's OS version (macOS, linux, windows etc.).
serverArch: build's architecture (e.g. x86_64).
Installation
npm install -S mongodb-build-info
License
Apache-2.0