diff --git a/packages/nocodb/src/lib/noco/rest/RestApiBuilder.ts b/packages/nocodb/src/lib/noco/rest/RestApiBuilder.ts index db6fddec35..a51fab5810 100644 --- a/packages/nocodb/src/lib/noco/rest/RestApiBuilder.ts +++ b/packages/nocodb/src/lib/noco/rest/RestApiBuilder.ts @@ -1508,9 +1508,13 @@ export class RestApiBuilder extends BaseApiBuilder { let swaggerBaseDocument: any = JSON.parse(JSON.stringify(await import('./ui/auth/swagger-base.xc.json'))); if (this.config?.auth?.jwt?.dbAlias !== this.connectionConfig.meta.dbAlias) { - swaggerBaseDocument = {...swaggerBaseDocument, tags: [], definitions: {}, paths: {}, host: req.get('host')}; + swaggerBaseDocument = {...swaggerBaseDocument, tags: [], definitions: {}, paths: {}}; } - + + const host = process.env.NC_PUBLIC_URL ? new URL(process.env.NC_PUBLIC_URL)?.host : req.get('host'); + const scheme = process.env.NC_PUBLIC_URL ? new URL(process.env.NC_PUBLIC_URL)?.protocol.slice(0, -1) : req.protocol; + swaggerBaseDocument.host = host; + swaggerBaseDocument.schemes = [scheme]; glob.sync(path.join(this.config.toolDir, 'nc', this.projectId, this.getDbAlias(), 'swagger', 'swagger.json')).forEach(jsonFile => { const swaggerJson = JSON.parse(fs.readFileSync(jsonFile, 'utf8')); swaggerBaseDocument.tags.push(...swaggerJson.tags);