From 1de6e76123287de2b86f9481c8c9ce22ab92ffaa Mon Sep 17 00:00:00 2001 From: Roland Bernard <rolbernard@unibz.it> Date: Tue, 18 May 2021 10:28:53 +0200 Subject: [PATCH] Fixed more issues encountered with deployment --- server/.gitignore | 3 ++ server/package.json | 3 +- server/src/config.ts | 6 ++-- server/src/index.ts | 2 +- server/src/keys.ts | 29 +++++++++++------ server/src/knexconfig.ts | 25 ++++++++------ server/{ => src}/migrations/0000_initial.ts | 0 server/yarn.lock | 36 ++------------------- 8 files changed, 45 insertions(+), 59 deletions(-) rename server/{ => src}/migrations/0000_initial.ts (100%) diff --git a/server/.gitignore b/server/.gitignore index 004eb80..9f6ae97 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -14,3 +14,6 @@ *.db *.sqlite3 +# keys +/keys + diff --git a/server/package.json b/server/package.json index ebb6e48..d8737d4 100644 --- a/server/package.json +++ b/server/package.json @@ -38,9 +38,8 @@ "jest": "^26.6.3", "nodemon": "^2.0.7", "sqlite3": "^5.0.2", - "tsc": "^2.0.3", "ts-jest": "^26.5.4", - "ts-node": "^9.1.1", + "tsc": "^2.0.3", "typescript": "^4.2.4" } } diff --git a/server/src/config.ts b/server/src/config.ts index a5274f9..26fd98f 100644 --- a/server/src/config.ts +++ b/server/src/config.ts @@ -4,13 +4,13 @@ import { env } from 'process'; export const port = env.PORT ?? 8000; export const keys = { - private: '/etc/ssl/localcerts/cert.key', - public: '/etc/ssl/localcerts/cert.pem', + private: './keys/cert.key', + public: './keys/cert.pem', }; export const allowedOrigins = [ "*" ]; export const environment = (env.NODE_ENV ?? 'development') as ('development' | 'staging' | 'production'); -export const web_serve = '../client/build/' +export const web_serve = '../client/build/'; diff --git a/server/src/index.ts b/server/src/index.ts index 4d91eab..eade34b 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -3,7 +3,7 @@ import express, { Request, Response, NextFunction } from 'express'; import { json as bodyJson } from 'body-parser'; import fileupload from 'express-fileupload'; -import { port, environment, web_serve } from './config'; +import { port, web_serve } from './config'; import { addDefaultHeaders } from './headers'; import v1 from './v1'; diff --git a/server/src/keys.ts b/server/src/keys.ts index 8b42a1b..96e0edf 100644 --- a/server/src/keys.ts +++ b/server/src/keys.ts @@ -1,22 +1,31 @@ import { readFileBuffer } from './util'; +import { env } from 'process'; import { keys } from './config'; -let privateKey: Buffer; +let privateKey: string; -export async function getPrivateKey(): Promise<Buffer> { - if (!privateKey) { - privateKey = await readFileBuffer(keys.private); +export async function getPrivateKey(): Promise<string> { + if (env.JWT_PRIVATE_KEY) { + return env.JWT_PRIVATE_KEY; + } else { + if (!privateKey) { + privateKey = (await readFileBuffer(keys.private)).toString(); + } + return privateKey; } - return privateKey; } -let publicKey: Buffer; +let publicKey: string; -export async function getPublicKey(): Promise<Buffer> { - if (!publicKey) { - publicKey = await readFileBuffer(keys.public); +export async function getPublicKey(): Promise<string> { + if (env.JWT_PUBLIC_KEY) { + return env.JWT_PUBLIC_KEY; + } else { + if (!publicKey) { + publicKey = (await readFileBuffer(keys.public)).toString(); + } + return publicKey; } - return publicKey; } diff --git a/server/src/knexconfig.ts b/server/src/knexconfig.ts index 0d2eb3a..7f5a503 100644 --- a/server/src/knexconfig.ts +++ b/server/src/knexconfig.ts @@ -1,5 +1,6 @@ import { env } from 'process'; +import { join } from 'path'; import { parse } from 'pg-connection-string'; const pgconfig: any = parse(env.DATABASE_URL ?? ''); @@ -8,35 +9,41 @@ export default { development: { client: "sqlite3", connection: { - filename: "./dev.sqlite3" - } + filename: "./dev.sqlite3", + }, + migrations: { + tableName: "knex_migrations", + directory: join(__dirname, 'migrations'), + }, }, staging: { client: "postgresql", connection: pgconfig, pool: { min: 2, - max: 10 + max: 10, }, migrations: { - tableName: "knex_migrations" - } + tableName: "knex_migrations", + directory: join(__dirname, 'migrations'), + }, }, production: { client: "postgresql", connection: { ...pgconfig, ssl: { - rejectUnauthorized: false + rejectUnauthorized: false, } }, pool: { min: 2, - max: 10 + max: 10, }, migrations: { - tableName: "knex_migrations" - } + tableName: "knex_migrations", + directory: join(__dirname, 'migrations'), + }, } }; diff --git a/server/migrations/0000_initial.ts b/server/src/migrations/0000_initial.ts similarity index 100% rename from server/migrations/0000_initial.ts rename to server/src/migrations/0000_initial.ts diff --git a/server/yarn.lock b/server/yarn.lock index ae7177f..522520e 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -855,11 +855,6 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1490,11 +1485,6 @@ cors@^2.8.5: object-assign "^4" vary "^1" -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -1687,11 +1677,6 @@ diff-sequences@^26.6.2: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - domexception@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" @@ -3401,7 +3386,7 @@ make-dir@^3.0.0, make-dir@^3.1.0: dependencies: semver "^6.0.0" -make-error@1.x, make-error@^1.1.1: +make-error@1.x: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== @@ -4720,7 +4705,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.17, source-map-support@^0.5.6: +source-map-support@^0.5.6: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -5171,18 +5156,6 @@ ts-jest@^26.5.4: semver "7.x" yargs-parser "20.x" -ts-node@^9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" - integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== - dependencies: - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - tsc@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/tsc/-/tsc-2.0.3.tgz#037fe579e3bd67a5cbdaa604b43c6c1991b04bef" @@ -5566,8 +5539,3 @@ yargs@^15.4.1: which-module "^2.0.0" y18n "^4.0.0" yargs-parser "^18.1.2" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== -- GitLab