From 231df22ca1c839170cab26473369f519784d7640 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 24 May 2023 17:23:13 +0800 Subject: [PATCH 1/8] fix(nocodb): move the logic to Noco.ts --- .../nocodb/src/middlewares/public/public.middleware.ts | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/packages/nocodb/src/middlewares/public/public.middleware.ts b/packages/nocodb/src/middlewares/public/public.middleware.ts index 4c5761065c..7e83597467 100644 --- a/packages/nocodb/src/middlewares/public/public.middleware.ts +++ b/packages/nocodb/src/middlewares/public/public.middleware.ts @@ -1,7 +1,4 @@ -import path, { join } from 'path'; import { Injectable } from '@nestjs/common'; -import express from 'express'; -import isDocker from 'is-docker'; import type { NestMiddleware } from '@nestjs/common'; @Injectable() @@ -12,12 +9,5 @@ export class PublicMiddleware implements NestMiddleware { const dashboardPath = process.env.NC_DASHBOARD_URL || '/dashboard'; return res.redirect(dashboardPath); } - - // serve static files from public folder - if (isDocker()) { - express.static(join(process.cwd(), 'docker', 'public'))(req, res, next); - } else { - express.static(join(process.cwd(), 'public'))(req, res, next); - } } } From e590cb245a1ad11e2cbb1e52a29852314fd39dd0 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 24 May 2023 17:31:28 +0800 Subject: [PATCH 2/8] refactor(nocodb): move public to src/public --- packages/nocodb/Dockerfile | 6 +++--- packages/nocodb/Dockerfile.local | 6 +++--- .../{ => src}/public/css/fonts.montserrat.css | 0 .../nocodb/{ => src}/public/css/fonts.roboto.css | 0 .../public/css/materialdesignicons.5.x.min.css | 0 .../public/css/swagger-ui-bundle.4.5.2.min.css | 0 .../nocodb/{ => src}/public/css/vuetify.2.x.min.css | 0 packages/nocodb/{ => src}/public/favicon.ico | Bin packages/nocodb/{ => src}/public/icon.png | Bin .../nocodb/{ => src}/public/js/axios.0.19.2.min.js | 0 .../{ => src}/public/js/redoc.standalone.min.js | 0 .../public/js/swagger-ui-bundle.4.5.2.min.js | 0 .../nocodb/{ => src}/public/js/vue.2.6.14.min.js | 0 packages/nocodb/{ => src}/public/js/vue.global.js | 0 .../nocodb/{ => src}/public/js/vuetify.2.x.min.js | 0 packages/nocodb/webpack.config.js | 2 +- 16 files changed, 7 insertions(+), 7 deletions(-) rename packages/nocodb/{ => src}/public/css/fonts.montserrat.css (100%) rename packages/nocodb/{ => src}/public/css/fonts.roboto.css (100%) rename packages/nocodb/{ => src}/public/css/materialdesignicons.5.x.min.css (100%) rename packages/nocodb/{ => src}/public/css/swagger-ui-bundle.4.5.2.min.css (100%) rename packages/nocodb/{ => src}/public/css/vuetify.2.x.min.css (100%) rename packages/nocodb/{ => src}/public/favicon.ico (100%) rename packages/nocodb/{ => src}/public/icon.png (100%) rename packages/nocodb/{ => src}/public/js/axios.0.19.2.min.js (100%) rename packages/nocodb/{ => src}/public/js/redoc.standalone.min.js (100%) rename packages/nocodb/{ => src}/public/js/swagger-ui-bundle.4.5.2.min.js (100%) rename packages/nocodb/{ => src}/public/js/vue.2.6.14.min.js (100%) rename packages/nocodb/{ => src}/public/js/vue.global.js (100%) rename packages/nocodb/{ => src}/public/js/vuetify.2.x.min.js (100%) diff --git a/packages/nocodb/Dockerfile b/packages/nocodb/Dockerfile index 7cf4135a59..4da153703b 100644 --- a/packages/nocodb/Dockerfile +++ b/packages/nocodb/Dockerfile @@ -31,9 +31,9 @@ COPY ./package*.json ./ COPY ./docker/main.js ./docker/main.js #COPY ./docker/start.sh /usr/src/appEntry/start.sh COPY ./docker/start-litestream.sh /usr/src/appEntry/start.sh -COPY ./public/css/*.css ./docker/public/css/ -COPY ./public/js/*.js ./docker/public/js/ -COPY ./public/favicon.ico ./docker/public/ +COPY src/public/css/*.css ./docker/public/css/ +COPY src/public/js/*.js ./docker/public/js/ +COPY src/public/favicon.ico ./docker/public/ # install production dependencies, # reduce node_module size with modclean & removing sqlite deps, diff --git a/packages/nocodb/Dockerfile.local b/packages/nocodb/Dockerfile.local index 07b3c07c00..0e7cd57224 100644 --- a/packages/nocodb/Dockerfile.local +++ b/packages/nocodb/Dockerfile.local @@ -14,9 +14,9 @@ COPY ./package*.json ./ COPY ./docker/nc-gui/ ./docker/nc-gui/ COPY ./docker/main.js ./docker/index.js COPY ./docker/start-local.sh /usr/src/appEntry/start.sh -COPY ./public/css/*.css ./docker/public/css/ -COPY ./public/js/*.js ./docker/public/js/ -COPY ./public/favicon.ico ./docker/public/ +COPY src/public/css/*.css ./docker/public/css/ +COPY src/public/js/*.js ./docker/public/js/ +COPY src/public/favicon.ico ./docker/public/ # install production dependencies, # reduce node_module size with modclean & removing sqlite deps, diff --git a/packages/nocodb/public/css/fonts.montserrat.css b/packages/nocodb/src/public/css/fonts.montserrat.css similarity index 100% rename from packages/nocodb/public/css/fonts.montserrat.css rename to packages/nocodb/src/public/css/fonts.montserrat.css diff --git a/packages/nocodb/public/css/fonts.roboto.css b/packages/nocodb/src/public/css/fonts.roboto.css similarity index 100% rename from packages/nocodb/public/css/fonts.roboto.css rename to packages/nocodb/src/public/css/fonts.roboto.css diff --git a/packages/nocodb/public/css/materialdesignicons.5.x.min.css b/packages/nocodb/src/public/css/materialdesignicons.5.x.min.css similarity index 100% rename from packages/nocodb/public/css/materialdesignicons.5.x.min.css rename to packages/nocodb/src/public/css/materialdesignicons.5.x.min.css diff --git a/packages/nocodb/public/css/swagger-ui-bundle.4.5.2.min.css b/packages/nocodb/src/public/css/swagger-ui-bundle.4.5.2.min.css similarity index 100% rename from packages/nocodb/public/css/swagger-ui-bundle.4.5.2.min.css rename to packages/nocodb/src/public/css/swagger-ui-bundle.4.5.2.min.css diff --git a/packages/nocodb/public/css/vuetify.2.x.min.css b/packages/nocodb/src/public/css/vuetify.2.x.min.css similarity index 100% rename from packages/nocodb/public/css/vuetify.2.x.min.css rename to packages/nocodb/src/public/css/vuetify.2.x.min.css diff --git a/packages/nocodb/public/favicon.ico b/packages/nocodb/src/public/favicon.ico similarity index 100% rename from packages/nocodb/public/favicon.ico rename to packages/nocodb/src/public/favicon.ico diff --git a/packages/nocodb/public/icon.png b/packages/nocodb/src/public/icon.png similarity index 100% rename from packages/nocodb/public/icon.png rename to packages/nocodb/src/public/icon.png diff --git a/packages/nocodb/public/js/axios.0.19.2.min.js b/packages/nocodb/src/public/js/axios.0.19.2.min.js similarity index 100% rename from packages/nocodb/public/js/axios.0.19.2.min.js rename to packages/nocodb/src/public/js/axios.0.19.2.min.js diff --git a/packages/nocodb/public/js/redoc.standalone.min.js b/packages/nocodb/src/public/js/redoc.standalone.min.js similarity index 100% rename from packages/nocodb/public/js/redoc.standalone.min.js rename to packages/nocodb/src/public/js/redoc.standalone.min.js diff --git a/packages/nocodb/public/js/swagger-ui-bundle.4.5.2.min.js b/packages/nocodb/src/public/js/swagger-ui-bundle.4.5.2.min.js similarity index 100% rename from packages/nocodb/public/js/swagger-ui-bundle.4.5.2.min.js rename to packages/nocodb/src/public/js/swagger-ui-bundle.4.5.2.min.js diff --git a/packages/nocodb/public/js/vue.2.6.14.min.js b/packages/nocodb/src/public/js/vue.2.6.14.min.js similarity index 100% rename from packages/nocodb/public/js/vue.2.6.14.min.js rename to packages/nocodb/src/public/js/vue.2.6.14.min.js diff --git a/packages/nocodb/public/js/vue.global.js b/packages/nocodb/src/public/js/vue.global.js similarity index 100% rename from packages/nocodb/public/js/vue.global.js rename to packages/nocodb/src/public/js/vue.global.js diff --git a/packages/nocodb/public/js/vuetify.2.x.min.js b/packages/nocodb/src/public/js/vuetify.2.x.min.js similarity index 100% rename from packages/nocodb/public/js/vuetify.2.x.min.js rename to packages/nocodb/src/public/js/vuetify.2.x.min.js diff --git a/packages/nocodb/webpack.config.js b/packages/nocodb/webpack.config.js index 9f462d4c1d..4e3789a283 100644 --- a/packages/nocodb/webpack.config.js +++ b/packages/nocodb/webpack.config.js @@ -44,7 +44,7 @@ module.exports = { plugins: [ new webpack.EnvironmentPlugin(['EE']), new CopyPlugin({ - patterns: [{ from: 'public', to: 'public' }], + patterns: [{ from: 'src/public', to: 'public' }], }), ], From 3dfe2e41c432b4e5a3b22a2433f88b974c01c6d4 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 24 May 2023 17:55:39 +0800 Subject: [PATCH 3/8] fix(nocodb): add static public directory --- packages/nocodb/src/Noco.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/nocodb/src/Noco.ts b/packages/nocodb/src/Noco.ts index 942ce717f6..1b93161bb7 100644 --- a/packages/nocodb/src/Noco.ts +++ b/packages/nocodb/src/Noco.ts @@ -1,5 +1,6 @@ import Sentry, { Handlers } from '@sentry/node'; import { Logger } from '@nestjs/common'; +import path from 'path'; import { NestFactory } from '@nestjs/core'; import clear from 'clear'; import * as express from 'express'; @@ -122,6 +123,7 @@ export default class Noco { const dashboardPath = process.env.NC_DASHBOARD_URL || '/dashboard'; server.use(NcToolGui.expressMiddleware(dashboardPath)); + server.use(express.static(path.join(__dirname, 'public'))); server.get('/', (_req, res) => res.redirect(dashboardPath)); this.initSentryErrorHandler(server); From ab090838ce3856662fbf723f115ca5bcbab605c6 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 24 May 2023 17:55:55 +0800 Subject: [PATCH 4/8] fix(nocodb): add missing next() in public.middleware.tes --- packages/nocodb/src/middlewares/public/public.middleware.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/nocodb/src/middlewares/public/public.middleware.ts b/packages/nocodb/src/middlewares/public/public.middleware.ts index 7e83597467..cc95a349a4 100644 --- a/packages/nocodb/src/middlewares/public/public.middleware.ts +++ b/packages/nocodb/src/middlewares/public/public.middleware.ts @@ -9,5 +9,6 @@ export class PublicMiddleware implements NestMiddleware { const dashboardPath = process.env.NC_DASHBOARD_URL || '/dashboard'; return res.redirect(dashboardPath); } + next(); } } From b2a92cf491838e989e62adb382d9302b425fb9a8 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 24 May 2023 18:42:11 +0800 Subject: [PATCH 5/8] refactor(nocodb): copy all files in public --- packages/nocodb/Dockerfile | 4 +--- packages/nocodb/Dockerfile.local | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/nocodb/Dockerfile b/packages/nocodb/Dockerfile index 4da153703b..4eac4af1d3 100644 --- a/packages/nocodb/Dockerfile +++ b/packages/nocodb/Dockerfile @@ -31,9 +31,7 @@ COPY ./package*.json ./ COPY ./docker/main.js ./docker/main.js #COPY ./docker/start.sh /usr/src/appEntry/start.sh COPY ./docker/start-litestream.sh /usr/src/appEntry/start.sh -COPY src/public/css/*.css ./docker/public/css/ -COPY src/public/js/*.js ./docker/public/js/ -COPY src/public/favicon.ico ./docker/public/ +COPY src/public/ ./docker/public/ # install production dependencies, # reduce node_module size with modclean & removing sqlite deps, diff --git a/packages/nocodb/Dockerfile.local b/packages/nocodb/Dockerfile.local index 0e7cd57224..390deb32dd 100644 --- a/packages/nocodb/Dockerfile.local +++ b/packages/nocodb/Dockerfile.local @@ -14,9 +14,7 @@ COPY ./package*.json ./ COPY ./docker/nc-gui/ ./docker/nc-gui/ COPY ./docker/main.js ./docker/index.js COPY ./docker/start-local.sh /usr/src/appEntry/start.sh -COPY src/public/css/*.css ./docker/public/css/ -COPY src/public/js/*.js ./docker/public/js/ -COPY src/public/favicon.ico ./docker/public/ +COPY src/public/ ./docker/public/ # install production dependencies, # reduce node_module size with modclean & removing sqlite deps, From edeae9bc0612025cf6397a5ce7a3653935fb18df Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 24 May 2023 18:44:19 +0800 Subject: [PATCH 6/8] refactor(nocodb): delete public middleware since it is included in Noco.ts --- .../middlewares/public/public.middleware.spec.ts | 7 ------- .../src/middlewares/public/public.middleware.ts | 14 -------------- 2 files changed, 21 deletions(-) delete mode 100644 packages/nocodb/src/middlewares/public/public.middleware.spec.ts delete mode 100644 packages/nocodb/src/middlewares/public/public.middleware.ts diff --git a/packages/nocodb/src/middlewares/public/public.middleware.spec.ts b/packages/nocodb/src/middlewares/public/public.middleware.spec.ts deleted file mode 100644 index 7b5e460f52..0000000000 --- a/packages/nocodb/src/middlewares/public/public.middleware.spec.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { PublicMiddleware } from './public.middleware'; - -describe('PublicMiddleware', () => { - it('should be defined', () => { - expect(new PublicMiddleware()).toBeDefined(); - }); -}); diff --git a/packages/nocodb/src/middlewares/public/public.middleware.ts b/packages/nocodb/src/middlewares/public/public.middleware.ts deleted file mode 100644 index cc95a349a4..0000000000 --- a/packages/nocodb/src/middlewares/public/public.middleware.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Injectable } from '@nestjs/common'; -import type { NestMiddleware } from '@nestjs/common'; - -@Injectable() -export class PublicMiddleware implements NestMiddleware { - use(req: any, res: any, next: () => void) { - // redirect root to dashboard - if (req.path === '/') { - const dashboardPath = process.env.NC_DASHBOARD_URL || '/dashboard'; - return res.redirect(dashboardPath); - } - next(); - } -} From 1a871e9bdb22d4b6d5223924736ee3cd6c46bb55 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 24 May 2023 18:50:03 +0800 Subject: [PATCH 7/8] refactor(nocodb): remove unused PublicMiddleware --- packages/nocodb/src/app.module.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/nocodb/src/app.module.ts b/packages/nocodb/src/app.module.ts index e87e17a37e..1916940616 100644 --- a/packages/nocodb/src/app.module.ts +++ b/packages/nocodb/src/app.module.ts @@ -59,8 +59,6 @@ export class AppModule { consumer .apply(GuiMiddleware) .forRoutes({ path: '*', method: RequestMethod.GET }) - .apply(PublicMiddleware) - .forRoutes({ path: '*', method: RequestMethod.GET }) .apply(GlobalMiddleware) .forRoutes({ path: '*', method: RequestMethod.ALL }); } From 1e4d92c24e96deedb008d42c73a0ade134a8ef82 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 24 May 2023 18:50:28 +0800 Subject: [PATCH 8/8] refactor(nocodb): remove PublicMiddleware import --- packages/nocodb/src/app.module.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/nocodb/src/app.module.ts b/packages/nocodb/src/app.module.ts index 1916940616..f5a4e8f1b7 100644 --- a/packages/nocodb/src/app.module.ts +++ b/packages/nocodb/src/app.module.ts @@ -5,7 +5,6 @@ import { EventEmitterModule as NestJsEventEmitter } from '@nestjs/event-emitter' import { GlobalExceptionFilter } from './filters/global-exception/global-exception.filter'; import { GlobalMiddleware } from './middlewares/global/global.middleware'; import { GuiMiddleware } from './middlewares/gui/gui.middleware'; -import { PublicMiddleware } from './middlewares/public/public.middleware'; import { DatasModule } from './modules/datas/datas.module'; import { EventEmitterModule } from './modules/event-emitter/event-emitter.module'; import { AuthService } from './services/auth.service';