Skip to content

Commit b03c13a

Browse files
Merge branch 'main' into saas-and-mobile-fixes
2 parents 432de92 + 6a3af80 commit b03c13a

33 files changed

Lines changed: 3352 additions & 3742 deletions

backend/eslint.config.mjs

Lines changed: 0 additions & 59 deletions
This file was deleted.

backend/package.json

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
"scripts": {
1010
"prebuild": "rimraf dist",
1111
"build": "nest build",
12-
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
1312
"start": "nest start",
1413
"start:dev": "nest start --watch --preserveWatchOutput",
1514
"start:debug": "nest start --debug --watch",
@@ -26,6 +25,7 @@
2625
},
2726
"dependencies": {
2827
"@amplitude/node": "1.10.2",
28+
"@aws-sdk/client-bedrock-runtime": "^3.954.0",
2929
"@aws-sdk/lib-dynamodb": "^3.953.0",
3030
"@electric-sql/pglite": "^0.3.14",
3131
"@faker-js/faker": "^10.1.0",
@@ -61,7 +61,6 @@
6161
"crypto-js": "4.2.0",
6262
"csv": "^6.4.1",
6363
"dotenv": "17.2.3",
64-
"eslint-plugin-security": "3.0.1",
6564
"express": "5.2.1",
6665
"fetch-blob": "^4.0.0",
6766
"helmet": "8.1.0",
@@ -110,15 +109,9 @@
110109
"@types/supertest": "^6.0.3",
111110
"@types/uuid": "^11.0.0",
112111
"@types/validator": "^13.15.10",
113-
"@typescript-eslint/eslint-plugin": "^8.50.0",
114-
"@typescript-eslint/parser": "^8.50.0",
115112
"ava": "6.4.1",
116-
"eslint": "^9.39.2",
117-
"eslint-config-prettier": "^10.1.8",
118-
"eslint-plugin-import": "^2.32.0",
119113
"knip": "^5.75.0",
120114
"nock": "^14.0.10",
121-
"prettier": "^3.7.4",
122115
"supertest": "^7.1.4",
123116
"ts-loader": "^9.5.4",
124117
"ts-node": "^10.9.2",

backend/src/app.controller.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
import { Controller, Get, Inject, UseInterceptors } from '@nestjs/common';
2+
import { ApiTags } from '@nestjs/swagger';
23
import { UseCaseType } from './common/data-injection.tokens.js';
34
import { InTransactionEnum } from './enums/index.js';
45
import { SentryInterceptor } from './interceptors/index.js';
56
import { IGetHello } from './use-cases-app/use-cases-app.interface.js';
6-
import { ApiTags } from '@nestjs/swagger';
77

88
@UseInterceptors(SentryInterceptor)
99
@Controller()
1010
@ApiTags('app')
1111
export class AppController {
12-
constructor(
13-
@Inject(UseCaseType.GET_HELLO)
14-
private readonly getHelloUseCase: IGetHello,
15-
) {}
12+
constructor(
13+
@Inject(UseCaseType.GET_HELLO)
14+
private readonly getHelloUseCase: IGetHello,
15+
) {}
1616

17-
@Get('/hello')
18-
async getHello(): Promise<string> {
19-
return this.getHelloUseCase.execute(undefined, InTransactionEnum.OFF);
20-
}
17+
@Get('/hello')
18+
async getHello(): Promise<string> {
19+
return this.getHelloUseCase.execute(undefined, InTransactionEnum.OFF);
20+
}
2121
}
22-

backend/src/app.module.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ import { SignInAuditModule } from './entities/user-sign-in-audit/sign-in-audit.m
8484
TableCategoriesModule,
8585
UserSecretModule,
8686
SignInAuditModule,
87+
AIModule,
8788
],
8889
controllers: [AppController],
8990
providers: [

backend/src/common/data-injection.tokens.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ export enum UseCaseType {
154154
DELETE_API_KEY = 'DELETE_API_KEY',
155155

156156
REQUEST_INFO_FROM_TABLE_WITH_AI_V2 = 'REQUEST_INFO_FROM_TABLE_WITH_AI_V2',
157+
REQUEST_AI_SETTINGS_AND_WIDGETS_CREATION = 'REQUEST_AI_SETTINGS_AND_WIDGETS_CREATION',
157158

158159
CREATE_TABLE_FILTERS = 'CREATE_TABLE_FILTERS',
159160
FIND_TABLE_FILTERS = 'FIND_TABLE_FILTERS',
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { ForeignKeyDS } from '@rocketadmin/shared-code/dist/src/data-access-layer/shared/data-structures/foreign-key.ds.js';
2+
import { PrimaryKeyDS } from '@rocketadmin/shared-code/dist/src/data-access-layer/shared/data-structures/primary-key.ds.js';
3+
import { TableStructureDS } from '@rocketadmin/shared-code/dist/src/data-access-layer/shared/data-structures/table-structure.ds.js';
4+
5+
export type TableInformation = {
6+
table_name: string;
7+
structure: Array<TableStructureDS>;
8+
foreignKeys: Array<ForeignKeyDS>;
9+
primaryColumns: Array<PrimaryKeyDS>;
10+
};
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
import { InTransactionEnum } from '../../enums/in-transaction.enum.js';
2+
import { FindOneConnectionDs } from '../connection/application/data-structures/find-one-connection.ds.js';
23
import { RequestInfoFromTableDSV2 } from './application/data-structures/request-info-from-table.ds.js';
34

45
export interface IRequestInfoFromTableV2 {
56
execute(inputData: RequestInfoFromTableDSV2, inTransaction: InTransactionEnum): Promise<void>;
67
}
8+
9+
export interface IAISettingsAndWidgetsCreation {
10+
execute(connectionData: FindOneConnectionDs, inTransaction: InTransactionEnum): Promise<void>;
11+
}

backend/src/entities/ai/ai.module.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
1-
import { MiddlewareConsumer, Module, NestModule, RequestMethod } from '@nestjs/common';
1+
import { Global, MiddlewareConsumer, Module, NestModule, RequestMethod } from '@nestjs/common';
22
import { TypeOrmModule } from '@nestjs/typeorm';
33
import { AuthMiddleware } from '../../authorization/auth.middleware.js';
44
import { GlobalDatabaseContext } from '../../common/application/global-database-context.js';
55
import { BaseType, UseCaseType } from '../../common/data-injection.tokens.js';
66
import { LogOutEntity } from '../log-out/log-out.entity.js';
77
import { UserEntity } from '../user/user.entity.js';
8+
import { AiService } from './ai.service.js';
9+
import { AmazonBedrockAiProvider } from './amazon-bedrock/amazon-bedrock.ai.provider.js';
810
import { RequestInfoFromTableWithAIUseCaseV4 } from './use-cases/request-info-from-table-with-ai-v4.use.case.js';
911
import { UserAIRequestsControllerV2 } from './user-ai-requests-v2.controller.js';
12+
import { RequestAISettingsAndWidgetsCreationUseCase } from './use-cases/request-ai-settings-and-widgets-creation.use.case.js';
1013

14+
@Global()
1115
@Module({
1216
imports: [TypeOrmModule.forFeature([UserEntity, LogOutEntity])],
1317
providers: [
@@ -19,11 +23,23 @@ import { UserAIRequestsControllerV2 } from './user-ai-requests-v2.controller.js'
1923
provide: UseCaseType.REQUEST_INFO_FROM_TABLE_WITH_AI_V2,
2024
useClass: RequestInfoFromTableWithAIUseCaseV4,
2125
},
26+
{
27+
provide: UseCaseType.REQUEST_AI_SETTINGS_AND_WIDGETS_CREATION,
28+
useClass: RequestAISettingsAndWidgetsCreationUseCase,
29+
},
30+
AmazonBedrockAiProvider,
31+
AiService,
2232
],
33+
exports: [AiService, AmazonBedrockAiProvider],
2334
controllers: [UserAIRequestsControllerV2],
2435
})
2536
export class AIModule implements NestModule {
2637
public configure(consumer: MiddlewareConsumer): any {
27-
consumer.apply(AuthMiddleware).forRoutes({ path: '/ai/v2/request/:connectionId', method: RequestMethod.POST });
38+
consumer
39+
.apply(AuthMiddleware)
40+
.forRoutes(
41+
{ path: '/ai/v2/request/:connectionId', method: RequestMethod.POST },
42+
{ path: '/ai/v2/setup/:connectionId', method: RequestMethod.GET },
43+
);
2844
}
2945
}

0 commit comments

Comments
 (0)