diff --git a/packages/nocodb/src/controllers/auth/auth.controller.ts b/packages/nocodb/src/controllers/auth/auth.controller.ts index c7780cf61f..d21fe8efe7 100644 --- a/packages/nocodb/src/controllers/auth/auth.controller.ts +++ b/packages/nocodb/src/controllers/auth/auth.controller.ts @@ -5,10 +5,11 @@ import { HttpCode, Param, Post, - Request, - Response, + Req, + Res, UseGuards, } from '@nestjs/common'; +import { Request, Response } from 'express'; import { AuthGuard } from '@nestjs/passport'; import { ConfigService } from '@nestjs/config'; import { extractRolesObj } from 'nocodb-sdk'; @@ -41,7 +42,7 @@ export class AuthController { ]) @UseGuards(PublicApiLimiterGuard) @HttpCode(200) - async signup(@Req() req: Request, @Response() res: any): Promise { + async signup(@Req() req: Request, @Res() res:Response): Promise { if (this.config.get('auth', { infer: true }).disableEmailAuth) { NcError.forbidden('Email authentication is disabled'); } @@ -61,7 +62,7 @@ export class AuthController { ]) @UseGuards(PublicApiLimiterGuard) @HttpCode(200) - async refreshToken(@Req() req: Request, @Response() res: any): Promise { + async refreshToken(@Req() req: Request, @Res() res:Response): Promise { res.json( await this.usersService.refreshToken({ body: req.body, @@ -78,7 +79,7 @@ export class AuthController { ]) @UseGuards(PublicApiLimiterGuard, AuthGuard('local')) @HttpCode(200) - async signin(@Request() req, @Response() res) { + async signin(@Req() req:Request, @Res() res:Response) { if (this.config.get('auth', { infer: true }).disableEmailAuth) { NcError.forbidden('Email authentication is disabled'); } @@ -89,7 +90,7 @@ export class AuthController { @UseGuards(GlobalGuard) @Post('/api/v1/auth/user/signout') @HttpCode(200) - async signOut(@Request() req, @Response() res): Promise { + async signOut(@Req() req:Request, @Res() res:Response): Promise { if (!(req as any).isAuthenticated()) { NcError.forbidden('Not allowed'); } @@ -104,7 +105,7 @@ export class AuthController { @Post(`/auth/google/genTokenByCode`) @HttpCode(200) @UseGuards(PublicApiLimiterGuard, AuthGuard('google')) - async googleSignin(@Request() req, @Response() res) { + async googleSignin(@Req() req:Request, @Res() res:Response) { await this.setRefreshToken({ req, res }); res.json(await this.usersService.login(req.user, req)); } @@ -117,7 +118,7 @@ export class AuthController { @Get(['/auth/user/me', '/api/v1/db/auth/user/me', '/api/v1/auth/user/me']) @UseGuards(MetaApiLimiterGuard, GlobalGuard) - async me(@Request() req) { + async me(@Req() req:Request) { const user = { ...req.user, roles: extractRolesObj(req.user.roles), @@ -228,7 +229,7 @@ export class AuthController { @UseGuards(PublicApiLimiterGuard) async renderPasswordReset( @Req() req: Request, - @Response() res: any, + @Res() res:Response, @Param('tokenId') tokenId: string, ): Promise { try { diff --git a/packages/nocodb/src/controllers/forms.controller.ts b/packages/nocodb/src/controllers/forms.controller.ts index 7a6fd5369a..bbf2d65cdd 100644 --- a/packages/nocodb/src/controllers/forms.controller.ts +++ b/packages/nocodb/src/controllers/forms.controller.ts @@ -7,9 +7,9 @@ import { Patch, Post, Req, - Request, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { ViewCreateReqType } from 'nocodb-sdk'; import { GlobalGuard } from '~/guards/global/global.guard'; import { FormsService } from '~/services/forms.service'; diff --git a/packages/nocodb/src/controllers/galleries.controller.ts b/packages/nocodb/src/controllers/galleries.controller.ts index bcc8c96380..c9440b3cfe 100644 --- a/packages/nocodb/src/controllers/galleries.controller.ts +++ b/packages/nocodb/src/controllers/galleries.controller.ts @@ -9,6 +9,7 @@ import { Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { GalleryUpdateReqType, ViewCreateReqType } from 'nocodb-sdk'; import { GlobalGuard } from '~/guards/global/global.guard'; import { GalleriesService } from '~/services/galleries.service'; diff --git a/packages/nocodb/src/controllers/hooks.controller.ts b/packages/nocodb/src/controllers/hooks.controller.ts index 1b578abbea..ef3e951d4a 100644 --- a/packages/nocodb/src/controllers/hooks.controller.ts +++ b/packages/nocodb/src/controllers/hooks.controller.ts @@ -7,9 +7,10 @@ import { Param, Patch, Post, - Request, + Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { HookReqType, HookTestReqType } from 'nocodb-sdk'; import type { HookType } from 'nocodb-sdk'; import { GlobalGuard } from '~/guards/global/global.guard'; diff --git a/packages/nocodb/src/controllers/kanbans.controller.ts b/packages/nocodb/src/controllers/kanbans.controller.ts index 5641afa174..656bf59905 100644 --- a/packages/nocodb/src/controllers/kanbans.controller.ts +++ b/packages/nocodb/src/controllers/kanbans.controller.ts @@ -9,6 +9,7 @@ import { Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { ViewCreateReqType } from 'nocodb-sdk'; import { GlobalGuard } from '~/guards/global/global.guard'; import { KanbansService } from '~/services/kanbans.service'; diff --git a/packages/nocodb/src/controllers/maps.controller.ts b/packages/nocodb/src/controllers/maps.controller.ts index 48c5bcfbde..7131125e89 100644 --- a/packages/nocodb/src/controllers/maps.controller.ts +++ b/packages/nocodb/src/controllers/maps.controller.ts @@ -9,6 +9,7 @@ import { Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { MapUpdateReqType, ViewCreateReqType } from 'nocodb-sdk'; import { GlobalGuard } from '~/guards/global/global.guard'; import { MapsService } from '~/services/maps.service'; diff --git a/packages/nocodb/src/controllers/notifications.controller.ts b/packages/nocodb/src/controllers/notifications.controller.ts index c834bbc548..24c1d5addb 100644 --- a/packages/nocodb/src/controllers/notifications.controller.ts +++ b/packages/nocodb/src/controllers/notifications.controller.ts @@ -7,9 +7,10 @@ import { Param, Patch, Post, - Request, + Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { NotificationsService } from '~/services/notifications.service'; import { GlobalGuard } from '~/guards/global/global.guard'; import { extractProps } from '~/helpers/extractProps'; @@ -36,7 +37,7 @@ export class NotificationsController { async notificationUpdate( @Param('notificationId') notificationId, @Body() body, - @Request() req, + @Req() req:Request, ) { return this.notificationsService.notificationUpdate({ notificationId, @@ -47,7 +48,7 @@ export class NotificationsController { @Post('/api/v1/notifications/mark-all-read') @HttpCode(200) - async markAllRead(@Request() req) { + async markAllRead(@Req() req:Request) { return this.notificationsService.markAllRead({ user: req.user, }); @@ -57,7 +58,7 @@ export class NotificationsController { // @Acl('notificationDelete') async notificationDelete( @Param('notificationId') notificationId, - @Request() req, + @Req() req:Request, ) { return this.notificationsService.notificationUpdate({ notificationId, diff --git a/packages/nocodb/src/controllers/org-tokens.controller.ts b/packages/nocodb/src/controllers/org-tokens.controller.ts index 44e3eaf730..6654de192a 100644 --- a/packages/nocodb/src/controllers/org-tokens.controller.ts +++ b/packages/nocodb/src/controllers/org-tokens.controller.ts @@ -6,9 +6,10 @@ import { HttpCode, Param, Post, - Request, + Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { ApiTokenReqType } from 'nocodb-sdk'; import { AuthGuard } from '@nestjs/passport'; import { getConditionalHandler } from '~/helpers/getHandler'; @@ -46,7 +47,7 @@ export class OrgTokensController { scope: 'org', blockApiTokenAccess: true, }) - async apiTokenCreate(@Request() req, @Body() body: ApiTokenReqType) { + async apiTokenCreate(@Req() req:Request, @Body() body: ApiTokenReqType) { return await this.orgTokensService.apiTokenCreate({ apiToken: body, user: req['user'], @@ -60,7 +61,7 @@ export class OrgTokensController { // allowedRoles: [OrgUserRoles.SUPER], blockApiTokenAccess: true, }) - async apiTokenDelete(@Request() req, @Param('token') token: string) { + async apiTokenDelete(@Req() req:Request, @Param('token') token: string) { await this.orgTokensService.apiTokenDelete({ token, user: req['user'], diff --git a/packages/nocodb/src/controllers/org-users.controller.ts b/packages/nocodb/src/controllers/org-users.controller.ts index 96eeae2672..f7410f4039 100644 --- a/packages/nocodb/src/controllers/org-users.controller.ts +++ b/packages/nocodb/src/controllers/org-users.controller.ts @@ -7,9 +7,10 @@ import { Param, Patch, Post, - Request, + Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { OrgUserRoles } from 'nocodb-sdk'; import { GlobalGuard } from '~/guards/global/global.guard'; import { PagedResponseImpl } from '~/helpers/PagedResponse'; @@ -75,7 +76,7 @@ export class OrgUsersController { allowedRoles: [OrgUserRoles.SUPER_ADMIN], blockApiTokenAccess: true, }) - async userAdd(@Body() body, @Request() req) { + async userAdd(@Body() body, @Req() req: Request) { const result = await this.orgUsersService.userAdd({ user: req.body, req, @@ -104,7 +105,7 @@ export class OrgUsersController { blockApiTokenAccess: true, }) async userInviteResend( - @Request() req, + @Req() req: Request, @Param('userId') userId: string, ): Promise { await this.orgUsersService.userInviteResend({ @@ -122,7 +123,7 @@ export class OrgUsersController { allowedRoles: [OrgUserRoles.SUPER_ADMIN], blockApiTokenAccess: true, }) - async generateResetUrl(@Request() req, @Param('userId') userId: string) { + async generateResetUrl(@Req() req: Request, @Param('userId') userId: string) { const result = await this.orgUsersService.generateResetUrl({ siteUrl: req.ncSiteUrl, userId, diff --git a/packages/nocodb/src/controllers/public-metas.controller.ts b/packages/nocodb/src/controllers/public-metas.controller.ts index f1861c7ae1..f9bf2b67e5 100644 --- a/packages/nocodb/src/controllers/public-metas.controller.ts +++ b/packages/nocodb/src/controllers/public-metas.controller.ts @@ -1,4 +1,5 @@ -import { Controller, Get, Param, Request, UseGuards } from '@nestjs/common'; +import { Controller, Get, Param, Req, UseGuards } from '@nestjs/common'; +import { Request } from 'express'; import { PublicMetasService } from '~/services/public-metas.service'; import { PublicApiLimiterGuard } from '~/guards/public-api-limiter.guard'; diff --git a/packages/nocodb/src/controllers/shared-bases.controller.ts b/packages/nocodb/src/controllers/shared-bases.controller.ts index 52c2304d3b..5d8f73b377 100644 --- a/packages/nocodb/src/controllers/shared-bases.controller.ts +++ b/packages/nocodb/src/controllers/shared-bases.controller.ts @@ -7,9 +7,10 @@ import { Param, Patch, Post, - Request, + Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { GlobalGuard } from '~/guards/global/global.guard'; import { SharedBasesService } from '~/services/shared-bases.service'; import { Acl } from '~/middlewares/extract-ids/extract-ids.middleware'; @@ -27,7 +28,7 @@ export class SharedBasesController { @HttpCode(200) @Acl('createSharedBaseLink') async createSharedBaseLink( - @Request() req, + @Req() req:Request, @Body() body: any, @Param('baseId') baseId: string, ): Promise { @@ -48,7 +49,7 @@ export class SharedBasesController { ]) @Acl('updateSharedBaseLink') async updateSharedBaseLink( - @Request() req, + @Req() req:Request, @Body() body: any, @Param('baseId') baseId: string, ): Promise { @@ -86,7 +87,7 @@ export class SharedBasesController { ]) @Acl('getSharedBaseLink') async getSharedBaseLink( - @Request() req, + @Req() req:Request, @Param('baseId') baseId: string, ): Promise { const sharedBase = await this.sharedBasesService.getSharedBaseLink({ diff --git a/packages/nocodb/src/controllers/utils.controller.ts b/packages/nocodb/src/controllers/utils.controller.ts index e430fb459f..8725b0af18 100644 --- a/packages/nocodb/src/controllers/utils.controller.ts +++ b/packages/nocodb/src/controllers/utils.controller.ts @@ -6,9 +6,10 @@ import { Get, HttpCode, Post, - Request, + Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { GlobalGuard } from '~/guards/global/global.guard'; import { UtilsService } from '~/services/utils.service'; import { Acl } from '~/middlewares/extract-ids/extract-ids.middleware'; @@ -48,7 +49,7 @@ export class UtilsController { scope: 'org', }) @HttpCode(200) - async testConnection(@Body() body: any, @Request() _req: any) { + async testConnection(@Body() body: any, @Req() _req: Request) { body.pool = { min: 0, max: 1, diff --git a/packages/nocodb/src/controllers/views.controller.ts b/packages/nocodb/src/controllers/views.controller.ts index 2a12dc9661..3f5213ef7c 100644 --- a/packages/nocodb/src/controllers/views.controller.ts +++ b/packages/nocodb/src/controllers/views.controller.ts @@ -8,9 +8,10 @@ import { Patch, Post, Query, - Request, + Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { ViewUpdateReqType } from 'nocodb-sdk'; import { PagedResponseImpl } from '~/helpers/PagedResponse'; import { GlobalGuard } from '~/guards/global/global.guard'; @@ -101,7 +102,7 @@ export class ViewsController { ]) @HttpCode(200) @Acl('shareView') - async shareView(@Param('viewId') viewId: string, @Request() req) { + async shareView(@Param('viewId') viewId: string, @Req() req:Request) { return await this.viewsService.shareView({ viewId, user: req.user, req }); } @@ -126,7 +127,7 @@ export class ViewsController { async shareViewUpdate( @Param('viewId') viewId: string, @Body() body: ViewUpdateReqType, - @Request() req, + @Req() req:Request, ) { return await this.viewsService.shareViewUpdate({ viewId, @@ -141,7 +142,7 @@ export class ViewsController { '/api/v2/meta/views/:viewId/share', ]) @Acl('shareViewDelete') - async shareViewDelete(@Param('viewId') viewId: string, @Request() req) { + async shareViewDelete(@Param('viewId') viewId: string, @Req() req:Request) { return await this.viewsService.shareViewDelete({ viewId, user: req.user, diff --git a/packages/nocodb/src/modules/jobs/jobs.controller.ts b/packages/nocodb/src/modules/jobs/jobs.controller.ts index d83291a125..8fc4992d3c 100644 --- a/packages/nocodb/src/modules/jobs/jobs.controller.ts +++ b/packages/nocodb/src/modules/jobs/jobs.controller.ts @@ -4,10 +4,11 @@ import { HttpCode, Inject, Post, - Request, - Response, + Req, + Res, UseGuards, } from '@nestjs/common'; +import { Request, Response } from 'express'; import { OnEvent } from '@nestjs/event-emitter'; import { customAlphabet } from 'nanoid'; import { ModuleRef } from '@nestjs/core'; @@ -46,7 +47,7 @@ export class JobsController implements OnModuleInit { @Post('/jobs/listen') @HttpCode(200) async listen( - @Response() res, + @Res() res:Response &{resId?:string}, @Req() req: Request, @Body() body: { _mid: number; data: { id: string } }, ) { @@ -134,7 +135,7 @@ export class JobsController implements OnModuleInit { res.on('close', () => { if (jobId && this.jobRooms[jobId]?.listeners) { this.jobRooms[jobId].listeners = this.jobRooms[jobId].listeners.filter( - (r) => r.resId !== res.resId, + (r) => r.resId !== (res as any).resId, ); } }); diff --git a/packages/nocodb/src/modules/jobs/jobs/at-import/at-import.controller.ts b/packages/nocodb/src/modules/jobs/jobs/at-import/at-import.controller.ts index b1a2427ae0..129a75036a 100644 --- a/packages/nocodb/src/modules/jobs/jobs/at-import/at-import.controller.ts +++ b/packages/nocodb/src/modules/jobs/jobs/at-import/at-import.controller.ts @@ -3,9 +3,10 @@ import { HttpCode, Inject, Post, - Request, + Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { GlobalGuard } from '~/guards/global/global.guard'; import { Acl } from '~/middlewares/extract-ids/extract-ids.middleware'; import { SyncSource } from '~/models'; @@ -69,7 +70,7 @@ export class AtImportController { ]) @Acl('airtableImport') @HttpCode(200) - async abortImport(@Request() _) { + async abortImport() { return {}; } } diff --git a/packages/nocodb/src/modules/jobs/jobs/export-import/duplicate.controller.ts b/packages/nocodb/src/modules/jobs/jobs/export-import/duplicate.controller.ts index 9354ce40e3..7266b320b7 100644 --- a/packages/nocodb/src/modules/jobs/jobs/export-import/duplicate.controller.ts +++ b/packages/nocodb/src/modules/jobs/jobs/export-import/duplicate.controller.ts @@ -5,9 +5,10 @@ import { Inject, Param, Post, - Request, + Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { ProjectStatus } from 'nocodb-sdk'; import { GlobalGuard } from '~/guards/global/global.guard'; import { Acl } from '~/middlewares/extract-ids/extract-ids.middleware'; diff --git a/packages/nocodb/src/modules/jobs/jobs/meta-sync/meta-sync.controller.ts b/packages/nocodb/src/modules/jobs/jobs/meta-sync/meta-sync.controller.ts index 3319454bc3..061cab7467 100644 --- a/packages/nocodb/src/modules/jobs/jobs/meta-sync/meta-sync.controller.ts +++ b/packages/nocodb/src/modules/jobs/jobs/meta-sync/meta-sync.controller.ts @@ -4,9 +4,10 @@ import { Inject, Param, Post, - Request, + Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { GlobalGuard } from '~/guards/global/global.guard'; import { Acl } from '~/middlewares/extract-ids/extract-ids.middleware'; import { NcError } from '~/helpers/catchError'; diff --git a/packages/nocodb/src/modules/jobs/jobs/source-delete/source-delete.controller.ts b/packages/nocodb/src/modules/jobs/jobs/source-delete/source-delete.controller.ts index 6780edac03..09bfd00c7e 100644 --- a/packages/nocodb/src/modules/jobs/jobs/source-delete/source-delete.controller.ts +++ b/packages/nocodb/src/modules/jobs/jobs/source-delete/source-delete.controller.ts @@ -6,6 +6,7 @@ import { Req, UseGuards, } from '@nestjs/common'; +import { Request } from 'express'; import { GlobalGuard } from '~/guards/global/global.guard'; import { Acl } from '~/middlewares/extract-ids/extract-ids.middleware'; import { NcError } from '~/helpers/catchError'; diff --git a/packages/nocodb/src/types/express.d.ts b/packages/nocodb/src/types/express.d.ts index 58da809cdd..10f041fa6f 100644 --- a/packages/nocodb/src/types/express.d.ts +++ b/packages/nocodb/src/types/express.d.ts @@ -18,9 +18,10 @@ import { Express } from 'express-serve-static-core'; // } declare module 'express-serve-static-core' { interface Request { - // id?: string; - // ncWorkspaceId?: string; - // ncProjectId?: string; + ncWorkspaceId?: string; + ncProjectId?: string; user: any; + ncSiteUrl: string; + clientIp: string; } }