From 2be877ebbfa9e9affa382e772a9dd7658f5929aa Mon Sep 17 00:00:00 2001 From: Pranav C Balan Date: Fri, 11 Jun 2021 18:29:43 +0530 Subject: [PATCH 1/5] feat: add root db and project type in project info Signed-off-by: Pranav C Balan --- packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts b/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts index 1786b18ccb..873f6a8fb9 100644 --- a/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts +++ b/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts @@ -3114,12 +3114,14 @@ export default class NcMetaMgr { const config = this.projectConfigs[this.getProjectId(args)]; return { - node: process.version, - arch: process.arch, - platform: process.platform, - docker: isDocker(), - database: config.envs?.[process.env.NODE_ENV || 'dev']?.db?.[0]?.client, - packageVersion: packageInfo?.version + Node: process.version, + Arch: process.arch, + Platform: process.platform, + Docker: isDocker(), + Database: config.envs?.[process.env.NODE_ENV || 'dev']?.db?.[0]?.client, + 'ProjectOnRootDB': !!config?.prefix, + 'RootDB': this.config?.meta?.db?.client, + 'PackageVersion': packageInfo?.version } } From 9ff70334a672539bfda7a6f5e2292134ebb5a89c Mon Sep 17 00:00:00 2001 From: Pranav C Balan Date: Fri, 11 Jun 2021 19:02:05 +0530 Subject: [PATCH 2/5] refactor: update docker copose aliases and names Signed-off-by: Pranav C Balan --- docker-compose/mssql/docker-compose.yml | 8 ++++---- docker-compose/mysql/docker-compose.yml | 12 ++++++------ docker-compose/pg/docker-compose.yml | 10 +++++----- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/docker-compose/mssql/docker-compose.yml b/docker-compose/mssql/docker-compose.yml index f932a19b66..5262f20bea 100644 --- a/docker-compose/mssql/docker-compose.yml +++ b/docker-compose/mssql/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.3' services: - xcdb: + root_db: image: mcr.microsoft.com/mssql/server:2017-latest restart: always volumes: @@ -16,9 +16,9 @@ services: retries: 10 start_period: 10s - xc: + nocodb: depends_on: - xcdb: + root_db: condition: service_healthy image: nocodb/nocodb:latest ports: @@ -28,6 +28,6 @@ services: - "8083:8083" restart: always environment: - NC_DB: "mssql://xcdb:1433?u=sa&p=Password123.&d=xcdb" + NC_DB: "mssql://root_db:1433?u=sa&p=Password123.&d=root_db" volumes: db_data: {} \ No newline at end of file diff --git a/docker-compose/mysql/docker-compose.yml b/docker-compose/mysql/docker-compose.yml index c83a11d146..cc03c27297 100644 --- a/docker-compose/mysql/docker-compose.yml +++ b/docker-compose/mysql/docker-compose.yml @@ -1,24 +1,24 @@ version: '3.3' services: - xcdb: + root_db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: password - MYSQL_DATABASE: xcdb - MYSQL_USER: xc + MYSQL_DATABASE: root_db + MYSQL_USER: noco MYSQL_PASSWORD: password healthcheck: test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ] timeout: 20s retries: 10 - xc: + nocodb: depends_on: - xcdb: + root_db: condition: service_healthy image: nocodb/nocodb:latest ports: @@ -28,6 +28,6 @@ services: - "8083:8083" restart: always environment: - NC_DB: "mysql2://xcdb:3306?u=xc&p=password&d=xcdb" + NC_DB: "mysql2://root_db:3306?u=noco&p=password&d=root_db" volumes: db_data: {} \ No newline at end of file diff --git a/docker-compose/pg/docker-compose.yml b/docker-compose/pg/docker-compose.yml index a8130b4739..b4d9004213 100644 --- a/docker-compose/pg/docker-compose.yml +++ b/docker-compose/pg/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.3' services: - xcdb: + root_db: image: postgres restart: always volumes: @@ -9,15 +9,15 @@ services: environment: POSTGRES_PASSWORD: password POSTGRES_USER: postgres - POSTGRES_DB: xcdb + POSTGRES_DB: root_db healthcheck: test: pg_isready -U "$$POSTGRES_USER" -d "$$POSTGRES_DB" interval: 10s timeout: 2s retries: 10 - xc: + nocodb: depends_on: - xcdb: + root_db: condition: service_healthy image: nocodb/nocodb:latest ports: @@ -27,6 +27,6 @@ services: - "8083:8083" restart: always environment: - NC_DB: "pg://xcdb:5432?u=postgres&p=password&d=xcdb" + NC_DB: "pg://root_db:5432?u=postgres&p=password&d=root_db" volumes: db_data: {} \ No newline at end of file From ddac45b54983c5c9e6847aef9fde33725b5dbbe8 Mon Sep 17 00:00:00 2001 From: Pranav C Balan Date: Fri, 11 Jun 2021 19:31:05 +0530 Subject: [PATCH 3/5] fix: handle storage path in windows replaced `` with `/` using slash library Signed-off-by: Pranav C Balan --- .../nocodb/src/lib/noco/meta/NcMetaMgr.ts | 19 ++++++------------- .../noco/plugins/adapters/storage/Local.ts | 3 ++- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts b/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts index 873f6a8fb9..97706e30ef 100644 --- a/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts +++ b/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts @@ -10,9 +10,6 @@ import archiver from 'archiver'; import multer from 'multer'; import NcMetaIO, {META_TABLES} from "./NcMetaIO"; import { - // ExpressXcTsRoutesHm, - // ExpressXcTsRoutes, - // ExpressXcTsRoutesBt, SqlClientFactory, Tele } from 'nc-help' import NcHelp from "../../utils/NcHelp"; @@ -24,13 +21,15 @@ import ProjectMgr from '../../sqlMgr/ProjectMgr'; import {nanoid} from 'nanoid'; import mimetypes, {mimeIcons} from "../../utils/mimeTypes"; import IStorageAdapter from "../../../interface/IStorageAdapter"; -// import StorageFactory from "../plugins/adapters/storage/StorageFactory"; import IEmailAdapter from "../../../interface/IEmailAdapter"; import EmailFactory from "../plugins/adapters/email/EmailFactory"; import Twilio from "../plugins/adapters/twilio/Twilio"; import {NcConfigFactory} from "../../index"; import XcCache from "../plugins/adapters/cache/XcCache"; import axios from 'axios'; +import isDocker from 'is-docker'; +import slash from 'slash'; + import RestAuthCtrl from "../rest/RestAuthCtrlEE"; @@ -38,10 +37,6 @@ import ExpressXcTsRoutesHm from "../../sqlMgr/code/routes/xc-ts/ExpressXcTsRoute import ExpressXcTsRoutesBt from "../../sqlMgr/code/routes/xc-ts/ExpressXcTsRoutesBt"; import ExpressXcTsRoutes from "../../sqlMgr/code/routes/xc-ts/ExpressXcTsRoutes"; import NcPluginMgr from "../plugins/NcPluginMgr"; -import isDocker from 'is-docker'; -// import packageInfo from '../../../../package.json' -// require('pkginfo')(module, 'version'); - const XC_PLUGIN_DET = 'XC_PLUGIN_DET'; @@ -56,8 +51,6 @@ export default class NcMetaMgr { public readonly pluginMgr: NcPluginMgr; - // public storageAdapter: IStorageAdapter; - // public emailAdapter: IEmailAdapter; public twilioInstance: Twilio; protected app: Noco; @@ -103,7 +96,7 @@ export default class NcMetaMgr { router.get('/dl/:projectId/:dbAlias/:fileName', async (req, res) => { try { const type = mimetypes[path.extname(req.params.fileName).slice(1)] || 'text/plain'; - const img = await this.storageAdapter.fileRead(path.join('nc', req.params.projectId, req.params.dbAlias, 'uploads', req.params.fileName)); + const img = await this.storageAdapter.fileRead(slash(path.join('nc', req.params.projectId, req.params.dbAlias, 'uploads', req.params.fileName))); res.writeHead(200, {'Content-Type': type}); res.end(img, 'binary'); } catch (e) { @@ -925,7 +918,7 @@ export default class NcMetaMgr { const fileName = `${nanoid(6)}${path.extname(file.originalname)}` const destPath = path.join('nc', this.getProjectId(args), this.getDbAlias(args), 'uploads'); - await this.storageAdapter.fileCreate(path.join(destPath, fileName), file); + await this.storageAdapter.fileCreate(slash(path.join(destPath, fileName)), file); return { url: `${req.ncSiteUrl}/dl/${this.getProjectId(args)}/${this.getDbAlias(args)}/${fileName}`, @@ -949,7 +942,7 @@ export default class NcMetaMgr { } else { destPath = path.join('nc', this.getProjectId(args), this.getDbAlias(args), 'uploads'); } - let url = await this.storageAdapter.fileCreate(path.join(destPath, fileName), file); + let url = await this.storageAdapter.fileCreate(slash(path.join(destPath, fileName)), file); if (!url) { if (args?.args?.public) { url = `${req.ncSiteUrl}/dl/public/files/${fileName}`; diff --git a/packages/nocodb/src/lib/noco/plugins/adapters/storage/Local.ts b/packages/nocodb/src/lib/noco/plugins/adapters/storage/Local.ts index d4fe9dcbcd..ac41f73ca7 100644 --- a/packages/nocodb/src/lib/noco/plugins/adapters/storage/Local.ts +++ b/packages/nocodb/src/lib/noco/plugins/adapters/storage/Local.ts @@ -8,7 +8,8 @@ export default class Local implements IStorageAdapter { constructor() { } - public async fileCreate(destPath: string, file: XcFile): Promise { + public async fileCreate(key: string, file: XcFile): Promise { + const destPath = path.join(...key.split('/')); try { mkdirp.sync(path.dirname(destPath)); await fs.promises.rename(file.path, destPath); From a59e21e2999b807a02d8cc365bfd41d02c3dcc87 Mon Sep 17 00:00:00 2001 From: Pranav C Balan Date: Fri, 11 Jun 2021 20:02:14 +0530 Subject: [PATCH 4/5] fix(gui): handle api base url Signed-off-by: Pranav C Balan --- packages/nc-gui/components/project/spreadsheet/apis/gqlApi.js | 1 - .../nc-gui/components/project/spreadsheet/apis/restApi.js | 4 ---- 2 files changed, 5 deletions(-) diff --git a/packages/nc-gui/components/project/spreadsheet/apis/gqlApi.js b/packages/nc-gui/components/project/spreadsheet/apis/gqlApi.js index d74139aad8..926c99c1b3 100644 --- a/packages/nc-gui/components/project/spreadsheet/apis/gqlApi.js +++ b/packages/nc-gui/components/project/spreadsheet/apis/gqlApi.js @@ -32,7 +32,6 @@ export default class GqlApi { url, method: 'post', data: params, - baseURL: process.env.NODE_ENV === 'production' ? '/' : 'http://localhost:8080/' }) } diff --git a/packages/nc-gui/components/project/spreadsheet/apis/restApi.js b/packages/nc-gui/components/project/spreadsheet/apis/restApi.js index 8175efa945..ce675416a3 100644 --- a/packages/nc-gui/components/project/spreadsheet/apis/restApi.js +++ b/packages/nc-gui/components/project/spreadsheet/apis/restApi.js @@ -28,7 +28,6 @@ export default class RestApi { return this.$axios({ url, params, - baseURL: process.env.NODE_ENV === 'production' ? '/' : 'http://localhost:8080/' }) } @@ -45,7 +44,6 @@ export default class RestApi { method: 'put', url: `/nc/${this.$ctx.$route.params.project_id}/api/v1/${this.table}/${id}`, data, - baseURL: process.env.NODE_ENV === 'production' ? '/' : 'http://localhost:8080/' }); const colName = Object.keys(data)[0]; this.$ctx.$store.dispatch('sqlMgr/ActSqlOp', [{dbAlias: this.$ctx.nodes.dbAlias}, 'xcAuditCreate', { @@ -64,7 +62,6 @@ export default class RestApi { method: 'post', url: `/nc/${this.$ctx.$route.params.project_id}/api/v1/${this.table}`, data, - baseURL: process.env.NODE_ENV === 'production' ? '/' : 'http://localhost:8080/' })).data; } @@ -72,7 +69,6 @@ export default class RestApi { return this.$axios({ method: 'delete', url: `/nc/${this.$ctx.$route.params.project_id}/api/v1/${this.table}/${id}`, - baseURL: process.env.NODE_ENV === 'production' ? '/' : 'http://localhost:8080/' }) } From b19c0776c2988775356654caa88ff2409e66f75e Mon Sep 17 00:00:00 2001 From: Pranav C Balan Date: Fri, 11 Jun 2021 20:06:10 +0530 Subject: [PATCH 5/5] chore: published v0.9.30 Signed-off-by: Pranav C Balan --- packages/nc-lib-gui/package.json | 2 +- packages/nocodb/package-lock.json | 6 +++--- packages/nocodb/package.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/nc-lib-gui/package.json b/packages/nc-lib-gui/package.json index 84fa388b41..3b860ef8ce 100644 --- a/packages/nc-lib-gui/package.json +++ b/packages/nc-lib-gui/package.json @@ -1,6 +1,6 @@ { "name": "nc-lib-gui", - "version": "0.1.222", + "version": "0.1.224", "description": "> TODO: description", "author": "“pranavxc” ", "homepage": "https://gitlab.com/xgenecloud-ts/xgenecloud-ts#readme", diff --git a/packages/nocodb/package-lock.json b/packages/nocodb/package-lock.json index 2caaab23bb..329633b8d4 100644 --- a/packages/nocodb/package-lock.json +++ b/packages/nocodb/package-lock.json @@ -11203,9 +11203,9 @@ } }, "nc-lib-gui": { - "version": "0.1.218", - "resolved": "https://registry.npmjs.org/nc-lib-gui/-/nc-lib-gui-0.1.218.tgz", - "integrity": "sha512-p3twcw4gRWWzqSwAktdGFT2xd+1JAzAPCDaiDS0/rGcQ1PPOWEEyigK4/aXB8rPs062fzknoBEFofLWb/t9DlQ==", + "version": "0.1.224", + "resolved": "https://registry.npmjs.org/nc-lib-gui/-/nc-lib-gui-0.1.224.tgz", + "integrity": "sha512-PmBFTkZ+wu1Ib2pm+7WSGMuXlJaNe610Td+G5vODCheLrmKWuHVIWDGKnTl4Si4yjjXrzs8bGxmZhAcipHbsPA==", "requires": { "axios": "^0.19.2", "body-parser": "^1.19.0", diff --git a/packages/nocodb/package.json b/packages/nocodb/package.json index 5f93e5840b..1e23085231 100644 --- a/packages/nocodb/package.json +++ b/packages/nocodb/package.json @@ -1,6 +1,6 @@ { "name": "nocodb", - "version": "0.9.29", + "version": "0.9.30", "description": "xc-cli", "main": "dist/bundle.js", "repository": "https://github.com/nocodb/nocodb", @@ -54,9 +54,9 @@ "postbuild": "npm run copy-files", "copy-files": "copyfiles -u 1 \"src/**/*.ejs\" build/main && copyfiles -u 1 \"src/**/*.ejs\" build/module && copyfiles -u 1 \"src/**/*.ejs\" docker", "docker:build": "EE=\"true-xc-test\" webpack --config docker/webpack.config.js", - "docker:image:build": "docker build . -t nocodb/nocodb:latest -t nocodb/nocodb:0.9.29 --no-cache", + "docker:image:build": "docker build . -t nocodb/nocodb:latest -t nocodb/nocodb:0.9.30 --no-cache", "docker:image:buildx": "docker buildx build . --platform linux/arm64 -t nocodb/nocodb:arm64 --no-cache", - "docker:image:deploy": "docker push nocodb/nocodb:latest && docker push nocodb/nocodb:0.9.29", + "docker:image:deploy": "docker push nocodb/nocodb:latest && docker push nocodb/nocodb:0.9.30", "docker:build:publish:image": "npm run build && npm run docker:build && npm run docker:image:build && npm run docker:image:deploy", "docker:s3:image:build": "docker build . --file litestream/Dockerfile -t xgenecloud/xc-s3:latest -t xgenecloud/xc-s3:0.0.1 --no-cache", "docker:s3:image:deploy": "docker push xgenecloud/xc-s3:latest && docker push xgenecloud/xc-s3:0.0.1", @@ -143,7 +143,7 @@ "nanoid": "^3.1.20", "nc-common": "0.0.6", "nc-help": "^0.1.110", - "nc-lib-gui": "^0.1.218", + "nc-lib-gui": "^0.1.224", "nc-plugin": "^0.1.1", "nodemailer": "^6.4.10", "ora": "^4.0.4",