@mimik/mongooser
v4.0.0
Published
Helper for setting up mongodb using mongoose for mimik microservices
Readme
mongooser
Example
import mongodb from '@mimik/mongooser';- mongooser
- module.exports(config) ⇒ object ⏏
- async
- ~validate() ⇒ Promise
- sync
- ~getKMSProviders() ⇒ object
- ~initializeSync() ⇒ object
- ~replicaSet() ⇒ boolean
- async
- module.exports(config) ⇒ object ⏏
module.exports(config) ⇒ object ⏏
Creates a MongoDB connection manager for mimik microservices.
Kind: Exported function
Returns: object - Object with methods: initializeSync, validate, replicaSet, getKMSProviders.
| Param | Type | Description |
| --- | --- | --- |
| config | object | Service configuration object. |
| config.mongoSettings | object | MongoDB connection settings. |
| config.mongoSettings.url | string | MongoDB connection URL. |
| config.mongoSettings.options | object | Mongoose connection options. Must include heartbeatFrequencyMS. |
| [config.mongoSettings.password] | string | MongoDB password (masked in production logs). |
| config.mongoSettings.reconnectOffset | number | Reconnect offset in seconds. |
| config.mongoSettings.connectTimeout | number | Connection timeout in seconds. |
| config.mongoSettings.validationCheck | number | Validation check delay in milliseconds. |
| config.nodeEnvironment | string | Current node environment (e.g. 'production'). |
| [config.encryption] | object | Encryption settings for client-side field level encryption. |
| [config.encryption.set] | string | Set to 'on' to enable auto-encryption. |
| [config.encryption.kmsProvider] | string | KMS provider type ('local' or 'aws'). |
| [config.encryption.localMasterKey] | string | Base64-encoded local master key. |
| [config.encryption.aws] | object | AWS KMS provider settings. |
| [config.encryption.database] | string | Database name for key vault. |
| [config.encryption.keyVaultTable] | string | Collection name for key vault. |
module.exports~validate() ⇒ Promise
Database connection validation.
Kind: inner method of module.exports
Returns: Promise - Resolves to null on success.
Category: async
Throws:
- Error Will throw an error if the database connection is not
connected.
Will exit 1 if the connection request times out and the connection state is not connected.
Requires: module:@mimik/sumologic-winston-logger
module.exports~getKMSProviders() ⇒ object
AutoEncryption KMSProvider.
Kind: inner method of module.exports
Returns: object - The KMSProviders object.
Will return the kmsProvider settings for the service.
Requires config.encryption to be provided to the factory.
Category: sync
Throws:
- TypeError If encryption config was not provided to the factory.
module.exports~initializeSync() ⇒ object
Database initialization.
Kind: inner method of module.exports
Returns: object - The mongoose database object. Connection is established asynchronously in the background.
When encryption is enabled, configures auto-encryption by setting keyVaultNamespace and kmsProviders
on the mongoose connection options.
Check MongoDB documentation for the full autoEncryption specification: https://docs.mongodb.com/manual/reference/method/Mongo/#clientsidefieldlevelencryptionoptions
Will exit 1 if the connection request generates an error or the connection state is disconnected or disconnecting.
Category: sync
Requires: module:@mimik/sumologic-winston-logger
module.exports~replicaSet() ⇒ boolean
Indicates if the replica is set.
Kind: inner method of module.exports
Returns: boolean - True if replica is set, False if not.
Category: sync
