- POST /exec now accepts environmentId (UUID) and credentials (alias → UUID) instead of raw payloads; resolves entities via EnvironmentService and CredentialService before passing data to browserService.exec - exec_code MCP tool updated with same schema: environmentId + credentials map - CredentialModule imported into BrowserModule and McpModule - docs(scenario): rewrite script runtime section for single context argument - docs(mcp): update exec_code description to reflect new parameter shapes - style: reorder imports across server source (formatter)
62 lines
2.2 KiB
TypeScript
62 lines
2.2 KiB
TypeScript
import { Module } from "@nestjs/common";
|
|
import { ConfigModule, ConfigService } from "@nestjs/config";
|
|
import { ScheduleModule } from "@nestjs/schedule";
|
|
import { TypeOrmModule } from "@nestjs/typeorm";
|
|
import { BrowserModule } from "./browser/browser.module";
|
|
import { AppConfig, validateAppConfig } from "./config/app.config";
|
|
import { CredentialEntity } from "./credential/credential.entity";
|
|
import { CredentialModule } from "./credential/credential.module";
|
|
import { EnvironmentEntity } from "./environment/environment.entity";
|
|
import { EnvironmentModule } from "./environment/environment.module";
|
|
import { HealthModule } from "./health/health.module";
|
|
import { McpModule } from "./mcp/mcp.module";
|
|
import { ScenarioCredentialEntity } from "./scenario/scenario-credential.entity";
|
|
import { ScenarioRunLogEntity } from "./scenario/scenario-run-log.entity";
|
|
import { ScenarioRunStepEntity } from "./scenario/scenario-run-step.entity";
|
|
import { ScenarioRunEntity } from "./scenario/scenario-run.entity";
|
|
import { ScenarioStepEntity } from "./scenario/scenario-step.entity";
|
|
import { ScenarioEntity } from "./scenario/scenario.entity";
|
|
import { ScenarioModule } from "./scenario/scenario.module";
|
|
import { SessionEntity } from "./session/session.entity";
|
|
import { SnippetEntity } from "./snippet/snippet.entity";
|
|
import { SnippetModule } from "./snippet/snippet.module";
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule.forRoot({
|
|
isGlobal: true,
|
|
envFilePath: ".env",
|
|
validate: validateAppConfig,
|
|
}),
|
|
ScheduleModule.forRoot(),
|
|
TypeOrmModule.forRootAsync({
|
|
inject: [ConfigService],
|
|
useFactory: (config: ConfigService<AppConfig, true>) => ({
|
|
type: "better-sqlite3",
|
|
database: config.get("DB_PATH"),
|
|
entities: [
|
|
SessionEntity,
|
|
EnvironmentEntity,
|
|
CredentialEntity,
|
|
ScenarioEntity,
|
|
ScenarioStepEntity,
|
|
ScenarioRunEntity,
|
|
ScenarioRunStepEntity,
|
|
ScenarioRunLogEntity,
|
|
ScenarioCredentialEntity,
|
|
SnippetEntity,
|
|
],
|
|
synchronize: true,
|
|
}),
|
|
}),
|
|
BrowserModule,
|
|
EnvironmentModule,
|
|
CredentialModule,
|
|
ScenarioModule,
|
|
SnippetModule,
|
|
McpModule,
|
|
HealthModule,
|
|
],
|
|
})
|
|
export class AppModule {}
|