From b07e8f4941266482a7a107ff989e3349b1eb5c98 Mon Sep 17 00:00:00 2001 From: rob Date: Sat, 1 Oct 2022 16:46:49 -0400 Subject: [PATCH 1/8] dev.base.digitaltelepresence.com --- gulpfile.js | 4 ++-- ssl/mkcert | 10 ++++++---- ssl/openssl.cnf | 6 +++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index e812596..34821b3 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -22,10 +22,10 @@ function util_start_browsersync ( ) { return new Promise((resolve, reject) => { browserSync.init({ proxy: { - target: 'https://localhost:3410', + target: 'https://dev.base.digitaltelepresence.com:3410', ws: true, }, - host: 'localhost', + host: 'dev.base.digitaltelepresence.com', open: 'local', https: { key: path.join(__dirname, 'ssl', 'dtp-webapp.key'), diff --git a/ssl/mkcert b/ssl/mkcert index 091f3f4..bad5d23 100755 --- a/ssl/mkcert +++ b/ssl/mkcert @@ -1,7 +1,9 @@ #!/bin/bash -openssl genrsa -out dtp-webapp.key -openssl req -new -out dtp-webapp.csr -key dtp-webapp.key -config openssl.cnf -openssl x509 -req -days 3650 -in dtp-webapp.csr -signkey dtp-webapp.key -out dtp-webapp.crt -extensions v3_req -extfile openssl.cnf +rm -f *crt *key -rm dtp-webapp.csr \ No newline at end of file +openssl genrsa -out dtp-base.key +openssl req -new -out dtp-base.csr -key dtp-base.key -config openssl.cnf +openssl x509 -req -days 3650 -in dtp-base.csr -signkey dtp-base.key -out dtp-base.crt -extensions v3_req -extfile openssl.cnf + +rm dtp-base.csr \ No newline at end of file diff --git a/ssl/openssl.cnf b/ssl/openssl.cnf index d09b85a..9c6acad 100644 --- a/ssl/openssl.cnf +++ b/ssl/openssl.cnf @@ -11,15 +11,15 @@ localityName = Pittsburgh localityName_default = Pittsburgh organizationalUnitName = DTP Technologies, LLC organizationalUnitName_default = DTP Technologies, LLC -commonName = *.digitaltelepresence.com +commonName = dev.base.digitaltelepresence.com commonName_max = 64 -[ v3_req ] +[v3_req] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] -DNS.1 = *.digitaltelepresence.com +DNS.1 = *.dev.base.digitaltelepresence.com DNS.2 = localhost \ No newline at end of file From d2c5d48ee24a3865b85b6c86ef6c5d238c5b4048 Mon Sep 17 00:00:00 2001 From: rob Date: Sat, 1 Oct 2022 16:46:54 -0400 Subject: [PATCH 2/8] v0.3.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 369b226..d851a67 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dtp-base", - "version": "0.3.0", + "version": "0.3.1", "description": "Open source web app engine for the Digital Telepresence Platform.", "main": "dtp-webapp.js", "author": "DTP Technologies, LLC", From c2a618492086a4f8ccd43cc9d2e0841acc469390 Mon Sep 17 00:00:00 2001 From: rob Date: Sat, 1 Oct 2022 19:14:17 -0400 Subject: [PATCH 3/8] rename icon directory --- .../dtp-sites.icon.png | Bin .../icon-114x114.png | Bin .../icon-120x120.png | Bin .../icon-144x144.png | Bin .../icon-150x150.png | Bin .../icon-152x152.png | Bin .../icon-16x16.png | Bin .../icon-180x180.png | Bin .../icon-192x192.png | Bin .../icon-256x256.png | Bin .../icon-310x310.png | Bin .../icon-32x32.png | Bin .../icon-36x36.png | Bin .../icon-384x384.png | Bin .../icon-48x48.png | Bin .../icon-512x512.png | Bin .../icon-57x57.png | Bin .../icon-60x60.png | Bin .../icon-70x70.png | Bin .../icon-72x72.png | Bin .../icon-76x76.png | Bin .../icon-96x96.png | Bin 22 files changed, 0 insertions(+), 0 deletions(-) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/dtp-sites.icon.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-114x114.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-120x120.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-144x144.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-150x150.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-152x152.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-16x16.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-180x180.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-192x192.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-256x256.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-310x310.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-32x32.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-36x36.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-384x384.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-48x48.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-512x512.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-57x57.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-60x60.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-70x70.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-72x72.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-76x76.png (100%) rename client/img/icon/{webapp.digitaltelepresence.com => base.digitaltelepresence.com}/icon-96x96.png (100%) diff --git a/client/img/icon/webapp.digitaltelepresence.com/dtp-sites.icon.png b/client/img/icon/base.digitaltelepresence.com/dtp-sites.icon.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/dtp-sites.icon.png rename to client/img/icon/base.digitaltelepresence.com/dtp-sites.icon.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-114x114.png b/client/img/icon/base.digitaltelepresence.com/icon-114x114.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-114x114.png rename to client/img/icon/base.digitaltelepresence.com/icon-114x114.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-120x120.png b/client/img/icon/base.digitaltelepresence.com/icon-120x120.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-120x120.png rename to client/img/icon/base.digitaltelepresence.com/icon-120x120.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-144x144.png b/client/img/icon/base.digitaltelepresence.com/icon-144x144.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-144x144.png rename to client/img/icon/base.digitaltelepresence.com/icon-144x144.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-150x150.png b/client/img/icon/base.digitaltelepresence.com/icon-150x150.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-150x150.png rename to client/img/icon/base.digitaltelepresence.com/icon-150x150.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-152x152.png b/client/img/icon/base.digitaltelepresence.com/icon-152x152.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-152x152.png rename to client/img/icon/base.digitaltelepresence.com/icon-152x152.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-16x16.png b/client/img/icon/base.digitaltelepresence.com/icon-16x16.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-16x16.png rename to client/img/icon/base.digitaltelepresence.com/icon-16x16.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-180x180.png b/client/img/icon/base.digitaltelepresence.com/icon-180x180.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-180x180.png rename to client/img/icon/base.digitaltelepresence.com/icon-180x180.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-192x192.png b/client/img/icon/base.digitaltelepresence.com/icon-192x192.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-192x192.png rename to client/img/icon/base.digitaltelepresence.com/icon-192x192.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-256x256.png b/client/img/icon/base.digitaltelepresence.com/icon-256x256.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-256x256.png rename to client/img/icon/base.digitaltelepresence.com/icon-256x256.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-310x310.png b/client/img/icon/base.digitaltelepresence.com/icon-310x310.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-310x310.png rename to client/img/icon/base.digitaltelepresence.com/icon-310x310.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-32x32.png b/client/img/icon/base.digitaltelepresence.com/icon-32x32.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-32x32.png rename to client/img/icon/base.digitaltelepresence.com/icon-32x32.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-36x36.png b/client/img/icon/base.digitaltelepresence.com/icon-36x36.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-36x36.png rename to client/img/icon/base.digitaltelepresence.com/icon-36x36.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-384x384.png b/client/img/icon/base.digitaltelepresence.com/icon-384x384.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-384x384.png rename to client/img/icon/base.digitaltelepresence.com/icon-384x384.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-48x48.png b/client/img/icon/base.digitaltelepresence.com/icon-48x48.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-48x48.png rename to client/img/icon/base.digitaltelepresence.com/icon-48x48.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-512x512.png b/client/img/icon/base.digitaltelepresence.com/icon-512x512.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-512x512.png rename to client/img/icon/base.digitaltelepresence.com/icon-512x512.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-57x57.png b/client/img/icon/base.digitaltelepresence.com/icon-57x57.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-57x57.png rename to client/img/icon/base.digitaltelepresence.com/icon-57x57.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-60x60.png b/client/img/icon/base.digitaltelepresence.com/icon-60x60.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-60x60.png rename to client/img/icon/base.digitaltelepresence.com/icon-60x60.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-70x70.png b/client/img/icon/base.digitaltelepresence.com/icon-70x70.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-70x70.png rename to client/img/icon/base.digitaltelepresence.com/icon-70x70.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-72x72.png b/client/img/icon/base.digitaltelepresence.com/icon-72x72.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-72x72.png rename to client/img/icon/base.digitaltelepresence.com/icon-72x72.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-76x76.png b/client/img/icon/base.digitaltelepresence.com/icon-76x76.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-76x76.png rename to client/img/icon/base.digitaltelepresence.com/icon-76x76.png diff --git a/client/img/icon/webapp.digitaltelepresence.com/icon-96x96.png b/client/img/icon/base.digitaltelepresence.com/icon-96x96.png similarity index 100% rename from client/img/icon/webapp.digitaltelepresence.com/icon-96x96.png rename to client/img/icon/base.digitaltelepresence.com/icon-96x96.png From 953af890685e85dfe2a2ccc108ea121c17312dc0 Mon Sep 17 00:00:00 2001 From: rob Date: Sat, 1 Oct 2022 19:14:33 -0400 Subject: [PATCH 4/8] remove password from log write --- app/services/user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/user.js b/app/services/user.js index 6e0afb8..c41ba30 100644 --- a/app/services/user.js +++ b/app/services/user.js @@ -349,7 +349,7 @@ class UserService extends SiteService { async handleLocalLogin (username, password, done) { const now = new Date(); - this.log.info('handleLocalLogin', { username, password }); + this.log.info('handleLocalLogin', { username }); try { const user = await this.authenticate({ username, password }, { adminRequired: false }); await this.startUserSession(user, now); From 43464cefb0dfa1660bd3add3f178ae9000705a33 Mon Sep 17 00:00:00 2001 From: rob Date: Sat, 1 Oct 2022 19:17:36 -0400 Subject: [PATCH 5/8] manually load BrowserSync in dev environments We are simply no longer using the BrowserSync proxy and will be loading directly from Express in dev. --- app/views/layouts/main.pug | 3 +++ gulpfile.js | 9 ++++++--- lib/site-platform.js | 17 ++++++++++++++--- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/app/views/layouts/main.pug b/app/views/layouts/main.pug index c22e0d1..9f765fa 100644 --- a/app/views/layouts/main.pug +++ b/app/views/layouts/main.pug @@ -89,6 +89,9 @@ html(lang='en') script(src=`/numeral/numeral.min.js?v=${pkg.version}`) script(src=`/socket.io/socket.io.js?v=${pkg.version}`) + if process.env.NODE_ENV !== 'production' + script(src="https://localhost:3310/browser-sync/browser-sync-client.js?v=2.27.7") + block vendorjs script. diff --git a/gulpfile.js b/gulpfile.js index 34821b3..4deede3 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -24,12 +24,15 @@ function util_start_browsersync ( ) { proxy: { target: 'https://dev.base.digitaltelepresence.com:3410', ws: true, + reqHeaders: { + 'X-Forwarded-For': '127.0.0.1, 127.0.0.1', + }, }, host: 'dev.base.digitaltelepresence.com', - open: 'local', + open: 'external', https: { - key: path.join(__dirname, 'ssl', 'dtp-webapp.key'), - cert: path.join(__dirname, 'ssl', 'dtp-webapp.crt'), + key: path.join(__dirname, 'ssl', 'dtp-base.key'), + cert: path.join(__dirname, 'ssl', 'dtp-base.crt'), }, port: 3310, cors: true, diff --git a/lib/site-platform.js b/lib/site-platform.js index 7f7b0e3..b8b5e34 100644 --- a/lib/site-platform.js +++ b/lib/site-platform.js @@ -202,6 +202,7 @@ module.exports.startPlatform = async (dtp) => { }; module.exports.startWebServer = async (dtp) => { + const IS_PRODUCTION = (process.env.NODE_ENV === 'production'); dtp.app = module.app = express(); module.app.set('views', path.join(dtp.config.root, 'app', 'views')); @@ -288,6 +289,7 @@ module.exports.startWebServer = async (dtp) => { /* * Express sessions */ + module.log.info('initializing redis session store'); var sessionStore = new RedisSessionStore({ client: module.redis }); @@ -296,19 +298,28 @@ module.exports.startWebServer = async (dtp) => { name: `dtp:${process.env.DTP_SITE_DOMAIN_KEY}.${process.env.NODE_ENV}`, secret: process.env.HTTP_SESSION_SECRET, resave: true, + proxy: IS_PRODUCTION, saveUninitialized: true, cookie: { - domain: process.env.DTP_SITE_DOMAIN, + domain: process.env.DTP_SITE_DOMAIN_KEY, path: '/', httpOnly: true, - secure: process.env.HTTP_COOKIE_SECURE === 'enabled', + secure: true, sameSite: process.env.HTTP_COOKIE_SAMESITE || false, expires: SESSION_DURATION, }, store: null, }; + module.log.info('configuring session handler', { + domain: module.sessionConfig.cookie.domain, + httpOnly: module.sessionConfig.cookie.httpOnly, + secure: module.sessionConfig.cookie.secure, + sameSite: module.sessionConfig.cookie.sameSite, + expires: module.sessionConfig.cookie.expires, + }); module.sessionConfig.store = sessionStore; - if (process.env.NODE_ENV === 'production') { + if (IS_PRODUCTION && module.sessionConfig.cookie.secure) { + module.log.info('session will be trusting first proxy'); module.app.set('trust proxy', 1); } module.app.use(session(module.sessionConfig)); From ec80a4ec9b7c9639df0920de29662c56012588ba Mon Sep 17 00:00:00 2001 From: rob Date: Sat, 1 Oct 2022 19:18:52 -0400 Subject: [PATCH 6/8] v0.3.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d851a67..bb1ad8d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dtp-base", - "version": "0.3.1", + "version": "0.3.2", "description": "Open source web app engine for the Digital Telepresence Platform.", "main": "dtp-webapp.js", "author": "DTP Technologies, LLC", From 74d7e47bcc6da185224e123385552c839764203b Mon Sep 17 00:00:00 2001 From: rob Date: Sat, 1 Oct 2022 19:24:04 -0400 Subject: [PATCH 7/8] remove x-forwarded-for (not needed) --- gulpfile.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 4deede3..915b4f1 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -24,9 +24,6 @@ function util_start_browsersync ( ) { proxy: { target: 'https://dev.base.digitaltelepresence.com:3410', ws: true, - reqHeaders: { - 'X-Forwarded-For': '127.0.0.1, 127.0.0.1', - }, }, host: 'dev.base.digitaltelepresence.com', open: 'external', From d1fb9b69b82f69f632eeef2bb57bdabbbc4f9454 Mon Sep 17 00:00:00 2001 From: rob Date: Sat, 1 Oct 2022 19:24:10 -0400 Subject: [PATCH 8/8] v0.3.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bb1ad8d..0b71ccb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dtp-base", - "version": "0.3.2", + "version": "0.3.3", "description": "Open source web app engine for the Digital Telepresence Platform.", "main": "dtp-webapp.js", "author": "DTP Technologies, LLC",