From 388ebe32928c83ff5e574db1db7e66a62d306396 Mon Sep 17 00:00:00 2001 From: Gideon Tong Date: Tue, 15 Dec 2020 09:46:17 -0800 Subject: [PATCH] Introduce MongoDB (major upgrade) --- SECURITY.md | 4 +- config/secrets-blank.json | 8 +++- docs/SECURITY.md | 6 +-- index.js | 11 +++++- package-lock.json | 79 ++++++++++++++++++++++++++++++++++++--- package.json | 4 +- 6 files changed, 97 insertions(+), 15 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index b5a38579..6e3bc608 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -6,9 +6,9 @@ The following table shows which versions still recieve security updates. As alwa | Version | Supported | | ------- | ------------------ | +| 3.2.x | :white_check_mark: | | 3.1.x | :white_check_mark: | -| 3.0.x | :white_check_mark: | -| < 3.0 | :x: | +| < 3.1 | :x: | As 1.3.x is considered end of life, it will no longer recieve feature or security updates. diff --git a/config/secrets-blank.json b/config/secrets-blank.json index 1caf501c..e9a4f8d8 100644 --- a/config/secrets-blank.json +++ b/config/secrets-blank.json @@ -1,5 +1,11 @@ { "amy": "YOUR_DISCORD_API_KEY_HERE", "kevin": "YOUR_DISCORD_API_KEY_HERE", - "stocks": "YOUR_ALPHA_VANTAGE_API_KEY_HERE" + "stocks": "YOUR_ALPHA_VANTAGE_API_KEY_HERE", + "mongodb": { + "username": "YOUR_MONGODB_USERNAME_HERE", + "password": "YOUR_MONGODB_PASSWORD_HERE", + "domain": "YOUR_MONGODB_DOMAIN_HERE", + "database": "YOUR_MONGODB_DATABASE_HERE" + } } \ No newline at end of file diff --git a/docs/SECURITY.md b/docs/SECURITY.md index be2640e2..d6c56ac0 100644 --- a/docs/SECURITY.md +++ b/docs/SECURITY.md @@ -15,9 +15,9 @@ The following table shows which versions still recieve security updates. As alwa | Version | Supported | | ------- | ------------------ | -| 2.0.x | :white_check_mark: | -| 1.3.x | :white_check_mark: | -| < 1.2 | :x: | +| 3.2.x | :white_check_mark: | +| 3.1.x | :white_check_mark: | +| < 3.1 | :x: | As 1.3.x is considered end of life, it will no longer recieve feature updates. However, additional security patches will be added as they are reported. diff --git a/index.js b/index.js index 0a8c8e64..9bdd5bb1 100644 --- a/index.js +++ b/index.js @@ -1,10 +1,11 @@ // Local imports -const { amy } = require('./config/secrets.json'); +const { amy, mongodb } = require('./config/secrets.json'); const { prefix, activities } = require('./config/config.json'); const { generateLogName } = require('./lib/MagicNumbers'); // Dependency imports const Discord = require('discord.js'); +const Mongo = require('mongodb').MongoClient; const log4js = require('log4js'); const client = new Discord.Client(); @@ -28,6 +29,14 @@ log4js.configure({ }); const log = log4js.getLogger('amy'); +const dbURI = `mongodb+srv://${mongodb.username}:${mongodb.password}@${mongodb.domain}/${mongodb.database}?retryWrties=true&w=majority`; +const database = new Mongo(uri, { useNewUrlParser: true }); +database.connect(err => { + const collection = database.db('test').collection('devices'); + // perform actions on the collection object + database.close(); +}); + // Client setup require('./event.js')(client); require('./kevin/index.js'); diff --git a/package-lock.json b/package-lock.json index bcb73c96..7e562ab0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "amy", - "version": "3.1.16", + "version": "3.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1095,6 +1095,15 @@ "tweetnacl": "^0.14.3" } }, + "bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1128,6 +1137,11 @@ "node-int64": "^0.4.0" } }, + "bson": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.5.tgz", + "integrity": "sha512-kDuEzldR21lHciPQAIulLs1LZlCXdLziXI6Mb/TDkwXhb//UORJNPXgcRs2CuO4H0DcMkpfT3/ySsP3unoZjBg==" + }, "buffer": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", @@ -1538,6 +1552,11 @@ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, + "denque": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", + "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==" + }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -3277,6 +3296,12 @@ "object-visit": "^1.0.0" } }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -3374,6 +3399,19 @@ "minimist": "^1.2.5" } }, + "mongodb": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.3.tgz", + "integrity": "sha512-rOZuR0QkodZiM+UbQE5kDsJykBqWi0CL4Ec2i1nrGrUI3KO11r6Fbxskqmq3JK2NH7aW4dcccBuUujAP0ERl5w==", + "requires": { + "bl": "^2.2.1", + "bson": "^1.1.4", + "denque": "^1.4.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -3476,11 +3514,6 @@ } } }, - "node-persist": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/node-persist/-/node-persist-3.1.0.tgz", - "integrity": "sha512-/j+fd/u71wNgKf3V2bx4tnDm+3GvLnlCuvf2MXbJ3wern+67IAb6zN9Leu1tCWPlPNZ+v1hLSibVukkPK2HqJw==" - }, "node-pre-gyp": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", @@ -4206,6 +4239,22 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "^2.0.0", + "semver": "^5.1.0" + }, + "dependencies": { + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + } + } + }, "resolve": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", @@ -4423,6 +4472,15 @@ } } }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -4692,6 +4750,15 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", diff --git a/package.json b/package.json index f02ac2bf..fec8291a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "amy", - "version": "3.1.22", + "version": "3.2.0", "description": "Your personal assisstant, reimagined", "author": "Gideon Tong ", "main": "index.js", @@ -25,7 +25,7 @@ "canvas": "^2.6.1", "discord.js": "^12.5.0", "log4js": "^6.3.0", - "node-persist": "^3.1.0", + "mongodb": "^3.6.3", "qrcode": "^1.4.4", "youtube-dl": "^3.0.2" },