diff --git a/api/.env.defaults b/api/.env.defaults new file mode 100644 index 0000000000000000000000000000000000000000..63d5e94dc49793acee86be230ae90ff3783eff32 --- /dev/null +++ b/api/.env.defaults @@ -0,0 +1,3 @@ +ENGINE_TYPE=exareme +ENGINE_BASE_URL=http://127.0.0.1:8080/services/ +GATEWAY_PORT=8081 \ No newline at end of file diff --git a/api/package-lock.json b/api/package-lock.json index c564f292ce87de51fe2f29be8fab6f19a2c06ceb..0fa22675542e222a5d4fd602ce9fb51114f28903 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "@nestjs/axios": "^0.0.1", "@nestjs/common": "^8.0.0", + "@nestjs/config": "^1.0.1", "@nestjs/core": "^8.0.0", "@nestjs/graphql": "^9.0.4", "@nestjs/platform-express": "^8.0.0", @@ -1765,6 +1766,32 @@ } } }, + "node_modules/@nestjs/config": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-1.0.1.tgz", + "integrity": "sha512-azMl4uYlFIhYsywFxPJT81RxF3Pnn0TZW3EEmr0Wa0Wex8R2xpvBNrCcrOgW3TB1xGMP7eqBrlfsVh5ZP82szg==", + "dependencies": { + "dotenv": "10.0.0", + "dotenv-expand": "5.1.0", + "lodash.get": "4.4.2", + "lodash.has": "4.5.2", + "lodash.set": "4.3.2", + "uuid": "8.3.2" + }, + "peerDependencies": { + "@nestjs/common": "^7.0.0 || ^8.0.0", + "reflect-metadata": "^0.1.13", + "rxjs": "^6.0.0 || ^7.2.0" + } + }, + "node_modules/@nestjs/config/node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, "node_modules/@nestjs/core": { "version": "8.0.6", "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.0.6.tgz", @@ -4392,6 +4419,11 @@ "node": ">=10" } }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -7217,12 +7249,27 @@ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "node_modules/lodash.has": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", + "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=" + }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -11891,6 +11938,26 @@ "uuid": "8.3.2" } }, + "@nestjs/config": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-1.0.1.tgz", + "integrity": "sha512-azMl4uYlFIhYsywFxPJT81RxF3Pnn0TZW3EEmr0Wa0Wex8R2xpvBNrCcrOgW3TB1xGMP7eqBrlfsVh5ZP82szg==", + "requires": { + "dotenv": "10.0.0", + "dotenv-expand": "5.1.0", + "lodash.get": "4.4.2", + "lodash.has": "4.5.2", + "lodash.set": "4.3.2", + "uuid": "8.3.2" + }, + "dependencies": { + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + } + } + }, "@nestjs/core": { "version": "8.0.6", "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.0.6.tgz", @@ -13914,6 +13981,11 @@ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", "peer": true }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -16061,12 +16133,27 @@ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "lodash.has": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", + "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=" + }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=" + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", diff --git a/api/package.json b/api/package.json index c467c3162a253b554f8c90d90e10cff550646752..1c4d897f3900ecfbf4eb4eebe6a835b5e164c04b 100644 --- a/api/package.json +++ b/api/package.json @@ -23,6 +23,7 @@ "dependencies": { "@nestjs/axios": "^0.0.1", "@nestjs/common": "^8.0.0", + "@nestjs/config": "^1.0.1", "@nestjs/core": "^8.0.0", "@nestjs/graphql": "^9.0.4", "@nestjs/platform-express": "^8.0.0", diff --git a/api/src/main.ts b/api/src/main.ts index af521d9150d9eecb68faf0d83fa7fd789b91ce98..5f3c7f944ec32c52a62e6a4b0bdd081e71b611e6 100644 --- a/api/src/main.ts +++ b/api/src/main.ts @@ -2,7 +2,7 @@ import { NestFactory } from '@nestjs/core'; import { AppModule } from './main/app.module'; async function bootstrap() { - const app = await NestFactory.create(AppModule); - await app.listen(3000); + const app = await NestFactory.create(AppModule, {cors: true}); + await app.listen(process.env.GATEWAY_PORT); } bootstrap(); diff --git a/api/src/main/app.module.ts b/api/src/main/app.module.ts index 302746526a7ea75609e579f01306b0e944413aa5..326ae1d1de2dd87483264dd4a578632a5f275e15 100644 --- a/api/src/main/app.module.ts +++ b/api/src/main/app.module.ts @@ -1,12 +1,18 @@ import { Module } from '@nestjs/common'; +import { ConfigModule } from '@nestjs/config'; import { EngineModule } from 'src/engine/engine.module'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ + ConfigModule.forRoot({ + isGlobal: true, + envFilePath: ['.env', '.env.defaults'] + }), EngineModule.forRootAsync({ - type: process.env.ENGINE_TYPE || "exareme" + type: process.env.ENGINE_TYPE, + baseurl: process.env.ENGINE_BASE_URL, })], controllers: [AppController], providers: [AppService],