From e351e82129b0b6abc8ec6e4ff8dbd7086c4bb2c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Wed, 27 Apr 2022 09:51:53 +0200 Subject: [PATCH 01/10] Add NVM config files --- admin/.nvmrc | 1 + backend/.nvmrc | 1 + database/.nvmrc | 1 + frontend/.nvmrc | 1 + 4 files changed, 4 insertions(+) create mode 100644 admin/.nvmrc create mode 100644 backend/.nvmrc create mode 100644 database/.nvmrc create mode 100644 frontend/.nvmrc diff --git a/admin/.nvmrc b/admin/.nvmrc new file mode 100644 index 000000000..ce4572cce --- /dev/null +++ b/admin/.nvmrc @@ -0,0 +1 @@ +v17.9.0 \ No newline at end of file diff --git a/backend/.nvmrc b/backend/.nvmrc new file mode 100644 index 000000000..ce4572cce --- /dev/null +++ b/backend/.nvmrc @@ -0,0 +1 @@ +v17.9.0 \ No newline at end of file diff --git a/database/.nvmrc b/database/.nvmrc new file mode 100644 index 000000000..ce4572cce --- /dev/null +++ b/database/.nvmrc @@ -0,0 +1 @@ +v17.9.0 \ No newline at end of file diff --git a/frontend/.nvmrc b/frontend/.nvmrc new file mode 100644 index 000000000..ce4572cce --- /dev/null +++ b/frontend/.nvmrc @@ -0,0 +1 @@ +v17.9.0 \ No newline at end of file From fe4e87f5760bf2e708008bfffed8c2469df18d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Thu, 28 Apr 2022 08:41:17 +0200 Subject: [PATCH 02/10] Add NVM config file as well for the main folder --- .nvmrc | 1 + 1 file changed, 1 insertion(+) create mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..ce4572cce --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v17.9.0 \ No newline at end of file From 5496ab5a970d06a39fc7a4ed857aa02179373538 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Thu, 28 Apr 2022 15:42:14 +0200 Subject: [PATCH 03/10] Ignore .nvmrc files in sub directories --- .gitignore | 1 + admin/.gitignore | 3 ++- backend/.gitignore | 3 ++- database/.gitignore | 3 ++- frontend/.gitignore | 3 ++- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index b02b9d6ec..f771e49f4 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ package-lock.json /deployment/bare_metal/nginx/update-page/updating.html /deployment/bare_metal/log /deployment/bare_metal/backup +/.nvmrc diff --git a/admin/.gitignore b/admin/.gitignore index 6bb62f667..d78b066c1 100644 --- a/admin/.gitignore +++ b/admin/.gitignore @@ -9,4 +9,5 @@ dist/ coverage/ # emacs -*~ \ No newline at end of file +*~ +/.nvmrc diff --git a/backend/.gitignore b/backend/.gitignore index 147e82849..2381e9abc 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -5,4 +5,5 @@ package-json.lock coverage # emacs -*~ \ No newline at end of file +*~ +/.nvmrc diff --git a/database/.gitignore b/database/.gitignore index bce5da58f..d1bd69ed3 100644 --- a/database/.gitignore +++ b/database/.gitignore @@ -24,4 +24,5 @@ package-lock.json coverage/ -*~ \ No newline at end of file +*~ +/.nvmrc diff --git a/frontend/.gitignore b/frontend/.gitignore index b19667d17..2054a5cd5 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -23,4 +23,5 @@ package-lock.json coverage/ -*~ \ No newline at end of file +*~ +/.nvmrc From 833c8f64ecfc055bdfb93edcbc8488baa45ec2b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Thu, 28 Apr 2022 15:57:13 +0200 Subject: [PATCH 04/10] Revert "Add NVM config file as well for the main folder" This reverts commit fe4e87f5760bf2e708008bfffed8c2469df18d86. --- .nvmrc | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index ce4572cce..000000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v17.9.0 \ No newline at end of file From 715dfb56751917424bb4f443590342ceafa6368a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Thu, 28 Apr 2022 15:57:13 +0200 Subject: [PATCH 05/10] Revert "Add NVM config files" This reverts commit e351e82129b0b6abc8ec6e4ff8dbd7086c4bb2c4. --- admin/.nvmrc | 1 - backend/.nvmrc | 1 - database/.nvmrc | 1 - frontend/.nvmrc | 1 - 4 files changed, 4 deletions(-) delete mode 100644 admin/.nvmrc delete mode 100644 backend/.nvmrc delete mode 100644 database/.nvmrc delete mode 100644 frontend/.nvmrc diff --git a/admin/.nvmrc b/admin/.nvmrc deleted file mode 100644 index ce4572cce..000000000 --- a/admin/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v17.9.0 \ No newline at end of file diff --git a/backend/.nvmrc b/backend/.nvmrc deleted file mode 100644 index ce4572cce..000000000 --- a/backend/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v17.9.0 \ No newline at end of file diff --git a/database/.nvmrc b/database/.nvmrc deleted file mode 100644 index ce4572cce..000000000 --- a/database/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v17.9.0 \ No newline at end of file diff --git a/frontend/.nvmrc b/frontend/.nvmrc deleted file mode 100644 index ce4572cce..000000000 --- a/frontend/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v17.9.0 \ No newline at end of file From 151f701eb9f1af221bd7db7230aa749d6e3c6744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Sat, 30 Apr 2022 00:22:16 +0200 Subject: [PATCH 06/10] excude .dbeaver(eclipse db-plugin) and eclipse-project --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index b02b9d6ec..32e11f545 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.dbeaver +.project *.log /node_modules/* messages.pot From ff35897e01c4c0028fcc14ccd8739aa1d0e70993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Sat, 30 Apr 2022 00:24:05 +0200 Subject: [PATCH 07/10] log4j in createServer and configuration file --- backend/log4js-config.json | 64 ++++++++++++++++++++++++++++++ backend/src/server/createServer.ts | 11 ++++- 2 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 backend/log4js-config.json diff --git a/backend/log4js-config.json b/backend/log4js-config.json new file mode 100644 index 000000000..3578c126c --- /dev/null +++ b/backend/log4js-config.json @@ -0,0 +1,64 @@ +{ + "appenders": + { + "access": + { + "type": "dateFile", + "filename": "../logs/backend/access.log", + "pattern": "%d %p %c %f:%l %m%n", + "compress" : true, + "keepFileExt" : true, + "fileNameSep" : "_" + }, + "apollo": + { + "type": "dateFile", + "filename": "../logs/backend/apollo.log", + "pattern": "%d %p %c %f:%l %m%n", + "compress" : true, + "keepFileExt" : true, + "fileNameSep" : "_" + }, + "errorFile": + { + "type": "dateFile", + "filename": "../logs/backend/errors.log", + "pattern": "%d %p %c %f:%l %m%n", + "compress" : true, + "keepFileExt" : true, + "fileNameSep" : "_" + }, + "errors": + { + "type": "logLevelFilter", + "level": "error", + "appender": "errorFile" + }, + "out": + { + "type": "stdout" + } + }, + "categories": + { + "default": + { + "appenders": + [ + "out", + "apollo", + "errors" + ], + "level": "all", + "enableCallStack": true + }, + "http": + { + "appenders": + [ + "access" + ], + "level": "info" + } + } +} diff --git a/backend/src/server/createServer.ts b/backend/src/server/createServer.ts index 1e355586e..ff5722ff0 100644 --- a/backend/src/server/createServer.ts +++ b/backend/src/server/createServer.ts @@ -29,8 +29,15 @@ import { Connection } from '@dbTools/typeorm' type ServerDef = { apollo: ApolloServer; app: Express; con: Connection } -const logger = log4js.getLogger() -logger.level = 'debug' +log4js.configure(CONFIG.LOG4JS_CONFIG) + +const logger = log4js.getLogger('backend') +logger.debug('This little thing went to market') +logger.info('This little thing stayed at home') +logger.error('This little thing had roast beef') +logger.fatal('This little thing had none') +logger.trace('and this little thing went wee, wee, wee, all the way home.') + // eslint-disable-next-line @typescript-eslint/no-explicit-any const createServer = async (context: any = serverContext): Promise => { From 754dc16e989b22da90594b1c656a78df93501f1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Sat, 30 Apr 2022 00:25:09 +0200 Subject: [PATCH 08/10] test loggers included --- backend/src/apis/HttpRequest.ts | 9 +++++++++ backend/src/graphql/resolver/UserResolver.ts | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/backend/src/apis/HttpRequest.ts b/backend/src/apis/HttpRequest.ts index c1f99dc46..75b7ea66a 100644 --- a/backend/src/apis/HttpRequest.ts +++ b/backend/src/apis/HttpRequest.ts @@ -1,10 +1,17 @@ import axios from 'axios' +import log4js from 'log4js' +import CONFIG from '@/config' + +log4js.configure(CONFIG.LOG4JS_CONFIG) +const logger = log4js.getLogger('http') // eslint-disable-next-line @typescript-eslint/no-explicit-any export const apiPost = async (url: string, payload: unknown): Promise => { + logger.trace('POST: url=' + url + ' payload=' + payload) return axios .post(url, payload) .then((result) => { + logger.trace('POST-Response: result=' + result) if (result.status !== 200) { throw new Error('HTTP Status Error ' + result.status) } @@ -20,9 +27,11 @@ export const apiPost = async (url: string, payload: unknown): Promise => { // eslint-disable-next-line @typescript-eslint/no-explicit-any export const apiGet = async (url: string): Promise => { + logger.trace('GET: url=' + url) return axios .get(url) .then((result) => { + logger.trace('GET-Response: result=' + result) if (result.status !== 200) { throw new Error('HTTP Status Error ' + result.status) } diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 4ab5a901b..e56158a6e 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -1,4 +1,6 @@ import fs from 'fs' +import log4js from 'log4js' + import { Context, getUser } from '@/server/context' import { Resolver, Query, Args, Arg, Authorized, Ctx, UseMiddleware, Mutation } from 'type-graphql' import { getConnection, getCustomRepository } from '@dbTools/typeorm' @@ -21,6 +23,10 @@ import { klicktippSignIn } from '@/apis/KlicktippController' import { RIGHTS } from '@/auth/RIGHTS' import { hasElopageBuys } from '@/util/hasElopageBuys' +log4js.configure(CONFIG.LOG4JS_CONFIG) +const logger = log4js.getLogger('graphql.resolver.UserResolver') + + // eslint-disable-next-line @typescript-eslint/no-var-requires const sodium = require('sodium-native') // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -217,25 +223,31 @@ export class UserResolver { ): Promise { email = email.trim().toLowerCase() const dbUser = await DbUser.findOneOrFail({ email }, { withDeleted: true }).catch(() => { + logger.error('User does not exists with this email=' + email) throw new Error('No user with this credentials') }) if (dbUser.deletedAt) { + logger.error('The User was permanently deleted in database. email=' + email) throw new Error('This user was permanently deleted. Contact support for questions.') } if (!dbUser.emailChecked) { + logger.error('The Users email is not validate yet. email=' + email) throw new Error('User email not validated') } if (dbUser.password === BigInt(0)) { + logger.error('The User has not set a password yet. email=' + email) // TODO we want to catch this on the frontend and ask the user to check his emails or resend code throw new Error('User has no password set yet') } if (!dbUser.pubKey || !dbUser.privKey) { + logger.error('The User has no private or publicKey. email=' + email) // TODO we want to catch this on the frontend and ask the user to check his emails or resend code throw new Error('User has no private or publicKey') } const passwordHash = SecretKeyCryptographyCreateKey(email, password) // return short and long hash const loginUserPassword = BigInt(dbUser.password.toString()) if (loginUserPassword !== passwordHash[0].readBigUInt64LE()) { + logger.error('The User has no valid credentials. email=' + email) throw new Error('No user with this credentials') } From 74c49aebf6a04b5d1a640a8473cd146d2aff4d54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Sat, 30 Apr 2022 00:26:01 +0200 Subject: [PATCH 09/10] log4j configfile in general configuration included --- backend/src/config/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index 1eee1b9a4..b38997be0 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -12,6 +12,7 @@ Decimal.set({ const constants = { DB_VERSION: '0035-admin_pending_creations_decimal', DECAY_START_TIME: new Date('2021-05-13 17:46:31'), // GMT+0 + LOG4JS_CONFIG: 'log4js-config.json', CONFIG_VERSION: { DEFAULT: 'DEFAULT', EXPECTED: 'v6.2022-04-21', From 5824657d759d5e1ea23e2baf126147b5df9204c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Sat, 30 Apr 2022 00:26:56 +0200 Subject: [PATCH 10/10] test loggers --- backend/src/server/plugins.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/backend/src/server/plugins.ts b/backend/src/server/plugins.ts index 130045ea4..1acb03797 100644 --- a/backend/src/server/plugins.ts +++ b/backend/src/server/plugins.ts @@ -22,14 +22,13 @@ const setHeadersPlugin = { const logPlugin = { requestDidStart(requestContext: any) { const logger = requestContext.logger - logger.debug(requestContext.request.query) - logger.debug(JSON.stringify(requestContext.request.variables, null, 2)) + logger.trace('Request:' + JSON.stringify(requestContext.request.variables, null, 2)) // logger.log('debug', JSON.stringify(requestContext.request, null, 2)) return { willSendResponse(requestContext: any) { // console.log(requestContext) - logger.debug(JSON.stringify(requestContext.response.errors, null, 2)) - logger.debug(JSON.stringify(requestContext.response.data, null, 2)) + logger.trace('Response-Data:' + JSON.stringify(requestContext.response.errors, null, 2)) + logger.trace('Response-Errors:' + JSON.stringify(requestContext.response.data, null, 2)) return requestContext }, }