diff options
| author | Adam Soltys <[email protected]> | 2021-09-23 23:18:00 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2021-09-23 23:19:42 -0700 |
| commit | 6fe6c1b9d715e7501ada4505af46062714a3d055 (patch) | |
| tree | 8e668f8a4e0079da7d5d04fd3b6275f521d52caa | |
| parent | 18814242ad055ecd6f9de1d23209958e12aee69c (diff) | |
| download | coinos-server-6fe6c1b9d715e7501ada4505af46062714a3d055.tar.gz coinos-server-6fe6c1b9d715e7501ada4505af46062714a3d055.zip | |
request logger
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | docker-compose.yml | 1 | ||||
| -rw-r--r-- | index.js | 5 | ||||
| -rw-r--r-- | lib/logging.js | 19 | ||||
| -rw-r--r-- | package.json | 5 | ||||
| -rw-r--r-- | routes/assets.js | 2 | ||||
| -rw-r--r-- | routes/payments.js | 3 | ||||
| -rw-r--r-- | yarn.lock | 164 |
9 files changed, 139 insertions, 62 deletions
@@ -18,3 +18,4 @@ mysql build.json build.sh watcher.sh +logs @@ -24,6 +24,7 @@ This repository contains the code for the backend API server which is implemente docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d --remove-orphans docker exec -i mariadb mysql -u root -ppassword < db/schema.sql docker exec -it liquid elements-cli -conf=/config/elements.conf sendtoaddress AzpsKhC6xE9FEK4aWAzMnbvueMLiSa5ym1xpuYogFkHzWgMHSt8B79aNNbFppQzCSQ2yZ9E4nL6RQJU7 1000000 + docker exec -it lnd lncli unlock Note the last step will take some time on first run as it will download the aforementioned docker images. diff --git a/docker-compose.yml b/docker-compose.yml index 1e4402da..9340f0a6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,6 +15,7 @@ services: NODE_ENV: development volumes: - ./:/app + - ./logs:/logs bitcoin: image: asoltys/bitcoin:latest container_name: bitcoin @@ -9,7 +9,6 @@ const persist = require("./lib/persist"); ah = require("express-async-handler"); -l = require("pino")(); config = require("./config"); networks = []; prod = process.env.NODE_ENV === "production"; @@ -22,7 +21,7 @@ logins = {}; sessions = {}; sockets = {}; -convert = persist('data/conversions.json'); +convert = persist("data/conversions.json"); SATS = 100000000; toSats = n => parseInt((n * SATS).toFixed()); @@ -57,6 +56,7 @@ app.use(compression()); server = require("http").Server(app); require("./db"); +require("./lib/logging"); require("./lib/utils"); require("./lib/sockets"); require("./lib/webhooks"); @@ -124,4 +124,3 @@ process.on("SIGINT", process.exit); process.on("uncaughtException", function(exception) { console.log(exception); }); - diff --git a/lib/logging.js b/lib/logging.js new file mode 100644 index 00000000..5b43bf9b --- /dev/null +++ b/lib/logging.js @@ -0,0 +1,19 @@ +const pino = require("pino"); +const expressPino = require("express-pino-logger")({ + logger: pino("./logs/requests.log"), + serializers: { + res: res => {}, + req: req => ({ + method: req.method, + url: req.url + }) + } +}); + +l = { + info: (...msgs) => pino().info(msgs.join(" ")), + warn: (...msgs) => pino().warn(msgs.join(" ")), + error: (...msgs) => pino().error(msgs.join(" ")) +}; + +app.use(expressPino); diff --git a/package.json b/package.json index 3a1449b3..eed789a4 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "date-fns": "^2.21.3", "express": "4.17.1", "express-async-handler": "^1.1.4", + "express-pino-logger": "^6.0.0", "express-session": "^1.16.2", "http-proxy-middleware": "^0.20.0", "imap": "^0.8.19", @@ -47,8 +48,8 @@ "passport": "0.4.0", "passport-jwt": "^4.0.0", "passport-local": "1.0.0", - "pino": "^5.17.0", - "pino-pretty": "^4.8.0", + "pino": "^6.13.2", + "pino-pretty": "^7.0.0", "pm2": "^5.1.0", "query-string": "^6.13.1", "sequelize": "^5.21.3", diff --git a/routes/assets.js b/routes/assets.js index b33e43b4..14d2c705 100644 --- a/routes/assets.js +++ b/routes/assets.js @@ -76,6 +76,8 @@ app.post( const { id: user_id } = req.user; const blind = false; + if (!user_id) throw new Error("unauthorized"); + const { address, domain, diff --git a/routes/payments.js b/routes/payments.js index 7ecfb36f..efe178b3 100644 --- a/routes/payments.js +++ b/routes/payments.js @@ -162,6 +162,9 @@ ah(async () => { if (unaccounted.length) l.warn("wallet transactions missing from database", unaccounted); + + // let s = fs.createWriteStream("exceptions", { flags: "a" }); + // unaccounted.map(tx => s.write(tx + "\n")); }; setTimeout(sanity, 5000); @@ -93,11 +93,6 @@ protobufjs "^6.10.0" yargs "^16.1.1" -"@hapi/bourne@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-2.0.0.tgz#5bb2193eb685c0007540ca61d166d4e1edaf918d" - integrity sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg== - "@mapbox/node-pre-gyp@^1.0.0": version "1.0.5" resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz#2a0b32fcb416fb3f2250fd24cb2a81421a4f5950" @@ -1093,14 +1088,6 @@ [email protected], chalk@^3.0.0, chalk@~3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - charm@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/charm/-/charm-0.1.2.tgz#06c21eed1a1b06aeb67553cdc53e23274bac2296" @@ -1237,6 +1224,11 @@ [email protected]: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colorette@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1772,6 +1764,13 @@ express-async-handler@^1.1.4: resolved "https://registry.yarnpkg.com/express-async-handler/-/express-async-handler-1.1.4.tgz#225a84908df63b35ae9df94b6f0f1af061266426" integrity sha512-HdmbVF4V4w1q/iz++RV7bUxIeepTukWewiJGkoCKQMtvPF11MLTa7It9PRc/reysXXZSEyD4Pthchju+IUbMiQ== +express-pino-logger@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/express-pino-logger/-/express-pino-logger-6.0.0.tgz#ed8f71dbbc3c2affbd4104a287f9c2a6a39b435b" + integrity sha512-YjBnalqgsNylRnWEpQGf8YzBP54stpoqX/o+SnpGr04OB7dRIQlsC1qvutFOyRjhLhXIWCe43pYJcjp9zM1Ccg== + dependencies: + pino-http "^5.3.0" + express-session@^1.16.2: version "1.17.2" resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.2.tgz#397020374f9bf7997f891b85ea338767b30d0efd" @@ -1864,16 +1863,33 @@ fast-printf@^1.3.0: dependencies: boolean "^3.0.2" -fast-redact@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-2.1.0.tgz#dfe3c1ca69367fb226f110aa4ec10ec85462ffdf" - integrity sha512-0LkHpTLyadJavq9sRzzyqIoMZemWli77K2/MGOkafrR64B9ItrvZ9aT+jluvNDsv0YEHjSNhlMBtbokuoqii4A== +fast-redact@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.0.2.tgz#c940ba7162dde3aeeefc522926ae8c5231412904" + integrity sha512-YN+CYfCVRVMUZOUPeinHNKgytM1wPI/C/UCLEi56EsY2dwwvI00kIJHJoI7pMVqGoMew8SMZ2SSfHKHULHXDsg== fast-safe-stringify@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== +fast-safe-stringify@^2.0.8: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fast-url-parser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0= + dependencies: + punycode "^1.3.2" + +fastify-warning@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/fastify-warning/-/fastify-warning-0.2.0.tgz#e717776026a4493dc9a2befa44db6d17f618008f" + integrity sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw== + [email protected], fclone@~1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/fclone/-/fclone-1.0.11.tgz#10e85da38bfea7fc599341c296ee1d77266ee640" @@ -2540,15 +2556,10 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jmespath@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" - integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= - -joycon@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615" - integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ== +joycon@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.0.1.tgz#9074c9b08ccf37a6726ff74a18485f85efcaddaf" + integrity sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA== js-git@^0.7.8: version "0.7.8" @@ -3513,40 +3524,62 @@ [email protected], pidusage@^2.0.21: dependencies: safe-buffer "^5.2.1" -pino-pretty@^4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-4.8.0.tgz#f2f3055bf222456217b14ffb04d8be0a0cc17fce" - integrity sha512-mhQfHG4rw5ZFpWL44m0Utjo4GC2+HMfdNvxyA8lLw0sIqn6fCf7uQe6dPckUcW/obly+OQHD7B/MTso6LNizYw== +pino-abstract-transport@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.2.0.tgz#e27d58d7bb16735c587c54e1d4efecc2cce27436" + integrity sha512-40sX7xrzDXsrUYr65brL0+bLm6rpZ+wCujDeeBmmZ/y5RVcPdVQsmz0bBe8NtTpELgmzmKwRRPVj1lvKjgFVHw== + dependencies: + split2 "^3.2.2" + +pino-http@^5.3.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/pino-http/-/pino-http-5.7.0.tgz#5d30e8e67c8bdf7105e896ee94201b804f8efcbd" + integrity sha512-BMpj8CKP48XALGGcEzf+rvaz+gVhVRAkxk08gvGPfyoOB4zAix6WKO7k2BHiw7UAwma1eoG1z2NzkAU/+fkyhA== + dependencies: + fast-url-parser "^1.1.3" + pino "^6.13.0" + pino-std-serializers "^4.0.0" + +pino-pretty@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-7.0.0.tgz#5a0a1e2ac0c98a4df94d421e52d3b9e19f32da56" + integrity sha512-lU5RpkfssYJxRI/veMGsUu7RqTUD/NDb2r+U4VIx7Dyo5vA3MbbbGMUOhAM4e02IAYXuTAa/PH56s8shstP9BA== dependencies: - "@hapi/bourne" "^2.0.0" args "^5.0.1" - chalk "^4.0.0" + colorette "^1.3.0" dateformat "^4.5.1" fast-safe-stringify "^2.0.7" - jmespath "^0.15.0" - joycon "^2.2.5" + joycon "^3.0.0" + pino-abstract-transport "^0.2.0" pump "^3.0.0" readable-stream "^3.6.0" rfdc "^1.3.0" - split2 "^3.1.1" + secure-json-parse "^2.4.0" + sonic-boom "^2.2.0" strip-json-comments "^3.1.1" -pino-std-serializers@^2.4.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-2.5.0.tgz#40ead781c65a0ce7ecd9c1c33f409d31fe712315" - integrity sha512-wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg== +pino-std-serializers@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" + integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== + +pino-std-serializers@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" + integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== -pino@^5.17.0: - version "5.17.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-5.17.0.tgz#b9def314e82402154f89a25d76a31f20ca84b4c8" - integrity sha512-LqrqmRcJz8etUjyV0ddqB6OTUutCgQULPFg2b4dtijRHUsucaAdBgSUW58vY6RFSX+NT8963F+q0tM6lNwGShA== +pino@^6.13.0, pino@^6.13.2: + version "6.13.2" + resolved "https://registry.yarnpkg.com/pino/-/pino-6.13.2.tgz#948a0fcadca668f3b5fb8a427f2854b08661eccf" + integrity sha512-vmD/cabJ4xKqo9GVuAoAEeQhra8XJ7YydPV/JyIP+0zDtFTu5JSKdtt8eksGVWKtTSrNGcRrzJ4/IzvUWep3FA== dependencies: - fast-redact "^2.0.0" - fast-safe-stringify "^2.0.7" + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.8" + fastify-warning "^0.2.0" flatstr "^1.0.12" - pino-std-serializers "^2.4.2" - quick-format-unescaped "^3.0.3" - sonic-boom "^0.7.5" + pino-std-serializers "^3.1.0" + quick-format-unescaped "^4.0.3" + sonic-boom "^1.0.2" please-upgrade-node@^3.2.0: version "3.2.0" @@ -3764,6 +3797,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -3803,10 +3841,10 @@ query-string@^6.13.1: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -quick-format-unescaped@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz#fb3e468ac64c01d22305806c39f121ddac0d1fb9" - integrity sha512-dy1yjycmn9blucmJLXOfZDx1ikZJUi6E8bBZLnhPG5gBrVhHXx2xVyqqgKBubVNEXmx51dBACMHpoMQK/N/AXQ== +quick-format-unescaped@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz#6d6b66b8207aa2b35eef12be1421bb24c428f652" + integrity sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg== random-bytes@~1.0.0: version "1.0.0" @@ -4069,6 +4107,11 @@ secp256k1@^3.4.0: nan "^2.14.0" safe-buffer "^5.1.2" +secure-json-parse@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.4.0.tgz#5aaeaaef85c7a417f76271a4f5b0cc3315ddca85" + integrity sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg== + semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" @@ -4234,14 +4277,21 @@ socks@~2.3.2: ip "1.1.5" smart-buffer "^4.1.0" -sonic-boom@^0.7.5: - version "0.7.7" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-0.7.7.tgz#d921de887428208bfa07b0ae32c278de043f350a" - integrity sha512-Ei5YOo5J64GKClHIL/5evJPgASXFVpfVYbJV9PILZQytTK6/LCwHvsZJW2Ig4p9FMC2OrBrMnXKgRN/OEoAWfg== +sonic-boom@^1.0.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.4.1.tgz#d35d6a74076624f12e6f917ade7b9d75e918f53e" + integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== dependencies: atomic-sleep "^1.0.0" flatstr "^1.0.12" +sonic-boom@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.2.3.tgz#4b97146c4986481b5245aec371bde025415db532" + integrity sha512-dm32bzlBchhXoJZe0yLY/kdYsHtXhZphidIcCzJib1aEjfciZyvHJ3NjA1zh6jJCO/OBLfdjc5iw6jLS/Go2fg== + dependencies: + atomic-sleep "^1.0.0" + version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" @@ -4260,7 +4310,7 @@ split-on-first@^1.0.0: resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== -split2@^3.1.1: +split2@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== |
