From 8d23eaeea249c656acb94ef335dc31c55d526505 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Thu, 30 Jun 2022 16:55:46 -0300 Subject: [PATCH 01/19] Code artifact and Get Connectors Tags --- .npmrc | 1 - Dockerfile | 7 +- package-lock.json | 93 +++++++------------ package.json | 4 +- src/clients/auth/client.service.ts | 6 +- src/clients/connector/client.config.ts | 2 +- src/clients/connector/client.service.ts | 29 +++++- src/clients/duc/client.config.ts | 12 +-- src/clients/inputs/client.config.ts | 2 +- src/clients/inputs/client.service.ts | 2 +- src/clients/outputs/client.config.ts | 2 +- src/clients/outputs/client.service.ts | 2 +- src/clients/permissions/client.service.ts | 6 +- src/clients/pipelines/client.config.ts | 2 +- src/clients/pipelines/client.service.ts | 2 +- src/clients/transformations/client.config.ts | 2 +- src/clients/transformations/client.service.ts | 2 +- src/modules/auth/auth.controller.ts | 2 +- src/modules/connector/connector.controller.ts | 5 + src/modules/inputs/inputs.service.ts | 2 +- src/modules/pipelines/pipelines.service.ts | 2 +- 21 files changed, 99 insertions(+), 88 deletions(-) delete mode 100644 .npmrc diff --git a/.npmrc b/.npmrc deleted file mode 100644 index bd3327a..0000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -//registry.npmjs.org/:_authToken=${NPM_TOKEN} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 6f073d4..a7b9287 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,9 +3,12 @@ WORKDIR /packages ARG NPM_TOKEN COPY package.json . COPY package-lock.json . -COPY .npmrc . + +RUN apk update +RUN apk add --no-cache aws-cli +RUN aws codeartifact login --tool npm --repository dadosfera-npm --domain dadosfera --domain-owner 611330257153 --region us-east-1 + RUN npm install -RUN rm -f ./.npmrc FROM node:14.15.4-alpine3.12 WORKDIR /app diff --git a/package-lock.json b/package-lock.json index 75ef80e..4d4ae77 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,8 +21,6 @@ "@nestjs/platform-express": "^8.4.7", "@nestjs/schedule": "^1.1.0", "@nestjs/swagger": "^5.2.1", - "@victorradael/protospack": "2.5.0", - "@victorradael/protospack-v2": "1.1.1", "axios": "^0.25.0", "cron-parser": "^4.4.0", "dotenv": "^14.3.2", @@ -35,6 +33,8 @@ "passport-google-oauth20": "^2.0.0", "passport-hubspot-oauth2": "^1.0.3", "passport-mailchimp": "^1.1.0", + "protospack": "2.5.2", + "protospack-v2": "2.6.3", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", "rxjs": "^7.5.5", @@ -3364,23 +3364,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@victorradael/protospack": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@victorradael/protospack/-/protospack-2.5.0.tgz", - "integrity": "sha512-DORlm3uHAYVH9dlcmwyOxjA4rk1UZWFyYUpD02k0bFfrH+uzSWe8qiPtTgZym9P8U9D8bXYRWeLlroasBj2Rdw==", - "dependencies": { - "rxjs": "^7.5.5" - } - }, - "node_modules/@victorradael/protospack-v2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@victorradael/protospack-v2/-/protospack-v2-1.1.1.tgz", - "integrity": "sha512-K9SuHcCGa7wynbzTG1aVnODksajTKfr9+tDHw6qfFfPwBruJXv5HsbMMylizAg+HTgEr/D6h/L1PO05rygDJCw==", - "dependencies": { - "rxjs": "^7.5.5", - "ts-proto": "^1.112.2" - } - }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -5747,20 +5730,6 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -8604,6 +8573,23 @@ "pbts": "bin/pbts" } }, + "node_modules/protospack": { + "version": "2.5.2", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack/-/protospack-2.5.2.tgz", + "integrity": "sha512-t7NyWE4WDuAVixjL10SDUXHu8iW4H0azndTC3n/w335D/IodPgN47ebm3iMXbvoQTlQcCbjjc+HblaRa9oR8bA==", + "dependencies": { + "rxjs": "^7.5.5" + } + }, + "node_modules/protospack-v2": { + "version": "2.6.3", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-2.6.3.tgz", + "integrity": "sha512-9mIEON2bUAVKoIysODlmaJqEjBhpN/exUyTM9snZBqO4ajB2yLIyAv1MTRB8ZepH7k9ZHKx8afrTJoLadz20pQ==", + "dependencies": { + "rxjs": "^7.5.5", + "ts-proto": "^1.112.2" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -13040,23 +13026,6 @@ "eslint-visitor-keys": "^3.3.0" } }, - "@victorradael/protospack": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@victorradael/protospack/-/protospack-2.5.0.tgz", - "integrity": "sha512-DORlm3uHAYVH9dlcmwyOxjA4rk1UZWFyYUpD02k0bFfrH+uzSWe8qiPtTgZym9P8U9D8bXYRWeLlroasBj2Rdw==", - "requires": { - "rxjs": "^7.5.5" - } - }, - "@victorradael/protospack-v2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@victorradael/protospack-v2/-/protospack-v2-1.1.1.tgz", - "integrity": "sha512-K9SuHcCGa7wynbzTG1aVnODksajTKfr9+tDHw6qfFfPwBruJXv5HsbMMylizAg+HTgEr/D6h/L1PO05rygDJCw==", - "requires": { - "rxjs": "^7.5.5", - "ts-proto": "^1.112.2" - } - }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -14894,13 +14863,6 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -17055,6 +17017,23 @@ "long": "^4.0.0" } }, + "protospack": { + "version": "2.5.2", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack/-/protospack-2.5.2.tgz", + "integrity": "sha512-t7NyWE4WDuAVixjL10SDUXHu8iW4H0azndTC3n/w335D/IodPgN47ebm3iMXbvoQTlQcCbjjc+HblaRa9oR8bA==", + "requires": { + "rxjs": "^7.5.5" + } + }, + "protospack-v2": { + "version": "2.6.3", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-2.6.3.tgz", + "integrity": "sha512-9mIEON2bUAVKoIysODlmaJqEjBhpN/exUyTM9snZBqO4ajB2yLIyAv1MTRB8ZepH7k9ZHKx8afrTJoLadz20pQ==", + "requires": { + "rxjs": "^7.5.5", + "ts-proto": "^1.112.2" + } + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", diff --git a/package.json b/package.json index 20d1b49..e0a8574 100644 --- a/package.json +++ b/package.json @@ -36,8 +36,8 @@ "@nestjs/platform-express": "^8.4.7", "@nestjs/schedule": "^1.1.0", "@nestjs/swagger": "^5.2.1", - "@victorradael/protospack": "2.5.0", - "@victorradael/protospack-v2": "1.1.1", + "protospack": "2.5.2", + "protospack-v2": "2.6.3", "axios": "^0.25.0", "cron-parser": "^4.4.0", "dotenv": "^14.3.2", diff --git a/src/clients/auth/client.service.ts b/src/clients/auth/client.service.ts index 15a1faa..9ffd148 100644 --- a/src/clients/auth/client.service.ts +++ b/src/clients/auth/client.service.ts @@ -1,8 +1,8 @@ import { Logger, OnModuleInit, Inject } from '@nestjs/common'; import { ClientGrpc } from '@nestjs/microservices'; -import { ProtoServices } from '@victorradael/protospack-v2/dist/lib/Duc'; -import { AuthProtoService as AuthServiceInterface } from '@victorradael/protospack-v2/dist/lib/Duc/interfaces/write-service'; +import { ProtoServices } from 'protospack-v2/dist/lib/Duc'; +import { AuthProtoService as AuthServiceInterface } from 'protospack-v2/dist/lib/Duc/interfaces/write-service'; import { AuthGetPublicKeysResponse, AuthSignInRequest, @@ -25,7 +25,7 @@ import { AuthVerifyResetPasswordCodeResponse, AuthConfirmResetPasswordRequest, AuthConfirmResetPasswordResponse, -} from '@victorradael/protospack-v2/dist/lib/Duc/interfaces/messages'; +} from 'protospack-v2/dist/lib/Duc/interfaces/messages'; import grpcHandler from '../../utils/grpcHandler'; diff --git a/src/clients/connector/client.config.ts b/src/clients/connector/client.config.ts index 61db9a1..a22a9c8 100644 --- a/src/clients/connector/client.config.ts +++ b/src/clients/connector/client.config.ts @@ -1,6 +1,6 @@ import { credentials } from '@grpc/grpc-js'; import { ClientOptions, Transport } from '@nestjs/microservices'; -import { ConnectorManager } from '@victorradael/protospack-v2'; +import { ConnectorManager } from 'protospack-v2'; export class ConnectorClientConfiguration { config(): ClientOptions { diff --git a/src/clients/connector/client.service.ts b/src/clients/connector/client.service.ts index e9b4ed1..2a3793b 100644 --- a/src/clients/connector/client.service.ts +++ b/src/clients/connector/client.service.ts @@ -5,7 +5,7 @@ import { HttpStatus, } from '@nestjs/common'; import { ClientGrpc } from '@nestjs/microservices'; -import { ConnectorManager } from '@victorradael/protospack-v2'; +import { ConnectorManager } from 'protospack-v2'; import { from } from 'rxjs'; export class ConnectorClientService implements OnModuleInit { @@ -200,6 +200,33 @@ export class ConnectorClientService implements OnModuleInit { return result; } + async getConnectorsTags() { + const observable = from(this.connectorServiceRead.GetConnectorsTags({})); + const result = await new Promise((resolve, reject) => { + observable.subscribe({ + next(x) { + resolve(x); + }, + error(err) { + console.log('Observable Error'); + reject(err); + }, + complete() { + console.log('done'); + }, + }); + }).catch((err) => { + throw new HttpException( + err.details, + err.code === 6 ? HttpStatus.CONFLICT : 400, + ); + }); + + console.log('ConnectorClientService', 'getAllConnectors'); + + return result; + } + async deleteConnector(plugin: string, version: string) { const observable = from( this.connectorServiceWrite.DeleteConnector({ diff --git a/src/clients/duc/client.config.ts b/src/clients/duc/client.config.ts index e1f5de6..f3384f3 100644 --- a/src/clients/duc/client.config.ts +++ b/src/clients/duc/client.config.ts @@ -1,9 +1,6 @@ import { credentials } from '@grpc/grpc-js'; import { ClientOptions, Transport } from '@nestjs/microservices'; -import { - ProtoPackages, - ProtoPaths, -} from '@victorradael/protospack-v2/dist/lib/Duc'; +import { ProtoPackages, ProtoPaths } from 'protospack-v2/dist/lib/Duc'; export class DucClient { config(): ClientOptions { @@ -12,9 +9,10 @@ export class DucClient { options: { url: process.env.DUC_URL, package: ProtoPackages.WritePackage, - credentials: process.env.LOCAL_ENV - ? undefined - : credentials.createSsl(), + credentials: + process.env.LOCAL_ENV === 'local' + ? undefined + : credentials.createSsl(), protoPath: ProtoPaths.WriteFilePath, loader: { keepCase: true, diff --git a/src/clients/inputs/client.config.ts b/src/clients/inputs/client.config.ts index 06c6340..525b5eb 100644 --- a/src/clients/inputs/client.config.ts +++ b/src/clients/inputs/client.config.ts @@ -1,7 +1,7 @@ import { credentials } from '@grpc/grpc-js'; import { ClientOptions, Transport } from '@nestjs/microservices'; -import { InputPackages, InputProtoFilePath } from '@victorradael/protospack'; +import { InputPackages, InputProtoFilePath } from 'protospack'; export class InputsClientConfiguration { config(): ClientOptions { diff --git a/src/clients/inputs/client.service.ts b/src/clients/inputs/client.service.ts index 88582c8..4777d24 100644 --- a/src/clients/inputs/client.service.ts +++ b/src/clients/inputs/client.service.ts @@ -15,7 +15,7 @@ import { InputService, TestConnectionGetColumnsRequest, TestConnectionRequest, -} from '@victorradael/protospack'; +} from 'protospack'; import axios, { AxiosRequestConfig } from 'axios'; import { lastValueFrom } from 'rxjs'; import { InputModel } from 'src/modules/inputs/dtos/input.model'; diff --git a/src/clients/outputs/client.config.ts b/src/clients/outputs/client.config.ts index a9a5bc0..3fac08f 100644 --- a/src/clients/outputs/client.config.ts +++ b/src/clients/outputs/client.config.ts @@ -1,4 +1,4 @@ -import { OutputPackages, OutputProtoFilePath } from '@victorradael/protospack'; +import { OutputPackages, OutputProtoFilePath } from 'protospack'; import { ClientOptions, Transport } from '@nestjs/microservices'; import { credentials } from '@grpc/grpc-js'; diff --git a/src/clients/outputs/client.service.ts b/src/clients/outputs/client.service.ts index c05663f..9c09f83 100644 --- a/src/clients/outputs/client.service.ts +++ b/src/clients/outputs/client.service.ts @@ -3,7 +3,7 @@ import { ClientGrpc, Payload } from '@nestjs/microservices'; import { OutputServicesNames, OutputsServiceInterface, -} from '@victorradael/protospack'; +} from 'protospack'; import { objectCamelToSnake, objectSnakeToCamel, diff --git a/src/clients/permissions/client.service.ts b/src/clients/permissions/client.service.ts index 7e9236b..1912cbf 100644 --- a/src/clients/permissions/client.service.ts +++ b/src/clients/permissions/client.service.ts @@ -1,12 +1,12 @@ import { Logger, OnModuleInit, Inject } from '@nestjs/common'; import { ClientGrpc } from '@nestjs/microservices'; -import { ProtoServices } from '@victorradael/protospack-v2/dist/lib/Duc'; -import { PermissionsProtoService as PermissionsServiceInterface } from '@victorradael/protospack-v2/dist/lib/Duc/interfaces/write-service'; +import { ProtoServices } from 'protospack-v2/dist/lib/Duc'; +import { PermissionsProtoService as PermissionsServiceInterface } from 'protospack-v2/dist/lib/Duc/interfaces/write-service'; import { Empty, InjectPermissionsRequest, -} from '@victorradael/protospack-v2/dist/lib/Duc/interfaces/messages'; +} from 'protospack-v2/dist/lib/Duc/interfaces/messages'; import grpcHandler from '../../utils/grpcHandler'; diff --git a/src/clients/pipelines/client.config.ts b/src/clients/pipelines/client.config.ts index 21d9a9e..01083eb 100644 --- a/src/clients/pipelines/client.config.ts +++ b/src/clients/pipelines/client.config.ts @@ -2,7 +2,7 @@ import { ClientOptions, Transport } from '@nestjs/microservices'; import { PipelinePackages, PipelineProtoFilePath, -} from '@victorradael/protospack'; +} from 'protospack'; import { credentials } from '@grpc/grpc-js'; export class PipelinesClientConfiguration { diff --git a/src/clients/pipelines/client.service.ts b/src/clients/pipelines/client.service.ts index b10af2f..f65c2a4 100644 --- a/src/clients/pipelines/client.service.ts +++ b/src/clients/pipelines/client.service.ts @@ -8,7 +8,7 @@ import { ClientGrpc, Payload } from '@nestjs/microservices'; import { PipelineServicesNames, PipelinesServiceInterface, -} from '@victorradael/protospack'; +} from 'protospack'; import { lastValueFrom } from 'rxjs'; import { objectCamelToSnake, diff --git a/src/clients/transformations/client.config.ts b/src/clients/transformations/client.config.ts index 461e6a9..26c52f1 100644 --- a/src/clients/transformations/client.config.ts +++ b/src/clients/transformations/client.config.ts @@ -2,7 +2,7 @@ import { ClientOptions, Transport } from '@nestjs/microservices'; import { TransformationPackages, TransformationProtoFilePath, -} from '@victorradael/protospack'; +} from 'protospack'; import { credentials } from '@grpc/grpc-js'; export class TransformationsClientConfiguration { diff --git a/src/clients/transformations/client.service.ts b/src/clients/transformations/client.service.ts index 9c5c9cc..2d62550 100644 --- a/src/clients/transformations/client.service.ts +++ b/src/clients/transformations/client.service.ts @@ -1,6 +1,6 @@ import { Controller, Inject, OnModuleInit, Post } from '@nestjs/common'; import { ClientGrpc } from '@nestjs/microservices'; -import { TransformationsServiceInterface } from '@victorradael/protospack'; +import { TransformationsServiceInterface } from 'protospack'; import { objectCamelToSnake, objectSnakeToCamel, diff --git a/src/modules/auth/auth.controller.ts b/src/modules/auth/auth.controller.ts index 97e1794..4895391 100644 --- a/src/modules/auth/auth.controller.ts +++ b/src/modules/auth/auth.controller.ts @@ -19,7 +19,7 @@ import { AuthEnableTotpMfaRequest, AuthDisableTotpMfaRequest, AuthVerifyTotpMfaRequest, -} from '@victorradael/protospack-v2/dist/lib/Duc/interfaces/messages'; +} from 'protospack-v2/dist/lib/Duc/interfaces/messages'; import { AuthClientService } from '../../clients/auth/client.service'; import { PermissionsClientService } from '../../clients/permissions/client.service'; diff --git a/src/modules/connector/connector.controller.ts b/src/modules/connector/connector.controller.ts index 4b8f8ad..a9566ee 100644 --- a/src/modules/connector/connector.controller.ts +++ b/src/modules/connector/connector.controller.ts @@ -78,6 +78,11 @@ export class ConnectorController { }; } + @Get('/tags') + async getConnectorsTags() { + return await this.connectorClientService.getConnectorsTags(); + } + @Get('/:plugin') async getConnector( @Param('plugin') plugin: string, diff --git a/src/modules/inputs/inputs.service.ts b/src/modules/inputs/inputs.service.ts index a7c3715..56f548f 100644 --- a/src/modules/inputs/inputs.service.ts +++ b/src/modules/inputs/inputs.service.ts @@ -1,6 +1,6 @@ import { Body, HttpException, HttpStatus, Injectable } from '@nestjs/common'; import { Timeout } from '@nestjs/schedule'; -import { DecodeGrpcStruct } from '@victorradael/protospack'; +import { DecodeGrpcStruct } from 'protospack'; import CronParser, { CronExpression } from 'cron-parser'; import { InputsClientService } from 'src/clients/inputs/client.service'; import { IIdRequest, Info } from 'src/clients/inputs/interfaces'; diff --git a/src/modules/pipelines/pipelines.service.ts b/src/modules/pipelines/pipelines.service.ts index 416ae97..2ed3c3a 100644 --- a/src/modules/pipelines/pipelines.service.ts +++ b/src/modules/pipelines/pipelines.service.ts @@ -1,5 +1,5 @@ import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; -import { DecodeGrpcStruct } from '@victorradael/protospack'; +import { DecodeGrpcStruct } from 'protospack'; import { PipelinesClientService } from 'src/clients/pipelines/client.service'; import { IIdRequest, Info } from 'src/clients/pipelines/interfaces'; import { objectCamelToSnake } from 'src/utils/CaseConverter'; From 6803ab342077c8f4df1abaafdcdb8b15841520e2 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Thu, 7 Jul 2022 16:36:28 -0300 Subject: [PATCH 02/19] Merge main --- package-lock.json | 16 +- package.json | 4 +- src/app.module.ts | 13 +- src/clients/connector/client.config.ts | 31 -- src/clients/connector/client.service.ts | 334 ------------------ src/clients/duc/client.config.ts | 5 +- src/modules/connector/connector.controller.ts | 21 +- src/modules/connector/dtos/get-all.ts | 9 + 8 files changed, 42 insertions(+), 391 deletions(-) delete mode 100644 src/clients/connector/client.config.ts delete mode 100644 src/clients/connector/client.service.ts diff --git a/package-lock.json b/package-lock.json index 6126ab4..e6f550a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,8 +35,8 @@ "passport-google-oauth20": "^2.0.0", "passport-hubspot-oauth2": "^1.0.3", "passport-mailchimp": "^1.1.0", - "protospack": "2.5.1", - "protospack-v2": "3.0.0", + "protospack": "2.5.2", + "protospack-v2": "3.0.1", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", "rxjs": "^7.5.5", @@ -8997,9 +8997,9 @@ } }, "node_modules/protospack-v2": { - "version": "3.0.0", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.0.0.tgz", - "integrity": "sha512-GEFbf8+vVaq/lA28K4nFf7bOSlghQJn/aeVnrYzh4YJUaa1+ccNz3uQs9p5OGbfjt2u/fFE5rHGEBUtueAA8KA==", + "version": "3.0.1", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.0.1.tgz", + "integrity": "sha512-gbcuF4Q+n+nikKB8jjuM+MJ0PyUAX3puJsk2/u47FhRcwkFB8mjj1a1xjYsJeOBHqGVq88QDemcIwxGEEQpX0Q==", "dependencies": { "rxjs": "^7.5.5", "ts-proto": "^1.112.2" @@ -17198,9 +17198,9 @@ } }, "protospack-v2": { - "version": "3.0.0", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.0.0.tgz", - "integrity": "sha512-GEFbf8+vVaq/lA28K4nFf7bOSlghQJn/aeVnrYzh4YJUaa1+ccNz3uQs9p5OGbfjt2u/fFE5rHGEBUtueAA8KA==", + "version": "3.0.1", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.0.1.tgz", + "integrity": "sha512-gbcuF4Q+n+nikKB8jjuM+MJ0PyUAX3puJsk2/u47FhRcwkFB8mjj1a1xjYsJeOBHqGVq88QDemcIwxGEEQpX0Q==", "requires": { "rxjs": "^7.5.5", "ts-proto": "^1.112.2" diff --git a/package.json b/package.json index c3e5c80..fe07ee7 100644 --- a/package.json +++ b/package.json @@ -50,8 +50,8 @@ "passport-google-oauth20": "^2.0.0", "passport-hubspot-oauth2": "^1.0.3", "passport-mailchimp": "^1.1.0", - "protospack": "2.5.1", - "protospack-v2": "3.0.0", + "protospack": "2.5.2", + "protospack-v2": "3.0.1", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", "rxjs": "^7.5.5", diff --git a/src/app.module.ts b/src/app.module.ts index 5653cf5..64473b1 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -37,15 +37,13 @@ import { APP_GUARD } from '@nestjs/core'; import { GoogleStrategy } from './modules/oauth/passport-strategies/google-strategy'; import { MailChimpStrategy } from './modules/oauth/passport-strategies/mailchimp-strategy'; import { SalesforceStrategy } from './modules/oauth/passport-strategies/salesforce-strategy'; -import { ConnectorClientConfiguration } from './clients/connector/client.config'; -import { ConnectorController } from './modules/connector/connector.controller'; -import { ConnectorClientService } from './clients/connector/client.service'; + +import { ConnectorModule } from './modules/connector/connector.module'; const inputClient = new InputsClientConfiguration(); const outputClient = new OutputsClientConfiguration(); const pipelineClient = new PipelinesClientConfiguration(); const transformationClient = new TransformationsClientConfiguration(); -const connectorClient = new ConnectorClientConfiguration(); @Module({ controllers: [ @@ -56,7 +54,6 @@ const connectorClient = new ConnectorClientConfiguration(); HealthController, CatalogController, OauthController, - ConnectorController, ], providers: [ DadosferaLogger, @@ -65,7 +62,6 @@ const connectorClient = new ConnectorClientConfiguration(); TransformationsService, OutputsService, PipelinesService, - ConnectorClientService, HealthService, InputsClientService, TransformationsClientService, @@ -88,6 +84,7 @@ const connectorClient = new ConnectorClientConfiguration(); }), AuthModule, PermissionsModule, + ConnectorModule, ClientsModule.register([ { @@ -106,10 +103,6 @@ const connectorClient = new ConnectorClientConfiguration(); name: 'PIPELINES_PACKAGE', ...pipelineClient.config(), }, - { - name: 'CONNECTOR_PACKAGE', - ...connectorClient.config(), - }, ]), ], }) diff --git a/src/clients/connector/client.config.ts b/src/clients/connector/client.config.ts deleted file mode 100644 index a22a9c8..0000000 --- a/src/clients/connector/client.config.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { credentials } from '@grpc/grpc-js'; -import { ClientOptions, Transport } from '@nestjs/microservices'; -import { ConnectorManager } from 'protospack-v2'; - -export class ConnectorClientConfiguration { - config(): ClientOptions { - return { - transport: Transport.GRPC, - options: { - url: process.env.INFACTORY_URL, - package: [ - ConnectorManager.ProtoPackages.WritePackage, - ConnectorManager.ProtoPackages.ReadPackage, - ], - credentials: - process.env.LOCAL_ENV === 'local' - ? undefined - : credentials.createSsl(), - protoPath: [ - ConnectorManager.ProtoPaths.WriteFilePath, - ConnectorManager.ProtoPaths.ReadFilePath, - ], - loader: { - enums: String, - objects: true, - arrays: true, - }, - }, - }; - } -} diff --git a/src/clients/connector/client.service.ts b/src/clients/connector/client.service.ts deleted file mode 100644 index 2ca6a8c..0000000 --- a/src/clients/connector/client.service.ts +++ /dev/null @@ -1,334 +0,0 @@ -import { - OnModuleInit, - Inject, - HttpException, - HttpStatus, -} from '@nestjs/common'; -import { DadosferaLogger } from 'dadosfera-logs'; -import { ClientGrpc } from '@nestjs/microservices'; -import { ConnectorManager } from 'protospack-v2'; -import { from } from 'rxjs'; - -export class ConnectorClientService implements OnModuleInit { - private connectorServiceRead: ConnectorManager.ReadService.ConnectorManagerReadServices; - private connectorServiceWrite: ConnectorManager.WriteService.ConnectorManagerWriteServices; - logger: any; - constructor( - @Inject(DadosferaLogger) - dadosferaLogger: DadosferaLogger, - @Inject('CONNECTOR_PACKAGE') private readonly grpcClient: ClientGrpc, - ) { - this.logger = dadosferaLogger.logger; - } - - onModuleInit() { - this.connectorServiceWrite = - this.grpcClient.getService( - ConnectorManager.ProtoServices.ConnectorManagerWriteServices, - ); - - this.connectorServiceRead = - this.grpcClient.getService( - ConnectorManager.ProtoServices.ConnectorManagerReadServices, - ); - } - - async uploadConnector(uploadConnector) { - const connector: ConnectorManager.Entities.ConnectorCreateRequest = { - file: { - buffer: uploadConnector.file.buffer, - mimetypes: uploadConnector.file.mimetype, - }, - connector: JSON.stringify(uploadConnector.connector), - }; - const serviceBody: ConnectorManager.Messages.RegisterConnectorRequest = { - connector, - }; - - const observable = from( - this.connectorServiceWrite.RegisterConnector(serviceBody), - ); - - const result = await new Promise((resolve, reject) => { - observable.subscribe({ - next(x) { - resolve(x); - }, - error(err) { - reject(err); - }, - complete() { - //console.log('done'); - }, - }); - }) - .then((res) => { - this.logger.info('Done'); - return res; - }) - .catch((err) => { - this.logger.error(err.details); - this.logger.error(err); - throw new HttpException( - err.details, - err.code === 6 ? HttpStatus.CONFLICT : 400, - ); - }); - - this.logger.info('ConnectorClientService - Upload'); - - return result; - } - - async uploadFile(uploadFile) { - const body: ConnectorManager.Messages.UploadFileRequest = { - file: { - buffer: uploadFile.file.buffer, - mimetypes: uploadFile.file.mimetype, - }, - name: uploadFile.name, - }; - - const observable = from(this.connectorServiceWrite.UploadFile(body)); - - const result = await new Promise((resolve, reject) => { - observable.subscribe({ - next(x) { - resolve(x); - }, - error(err) { - reject(err); - }, - complete() { - //console.log('done'); - }, - }); - }) - .then((res) => { - this.logger.info('Done'); - return res; - }) - .catch((err) => { - this.logger.error(err.details); - this.logger.error(err); - throw new HttpException( - err.details, - err.code === 6 ? HttpStatus.CONFLICT : 400, - ); - }); - - this.logger.info('ConnectorClientService - Upload'); - - return result; - } - - async getAllConnectors(body) { - const observable = from( - this.connectorServiceRead.GetAllConnectors({ - search: body.search, - filters: JSON.stringify(body.filters), - }), - ); - const result = await new Promise((resolve, reject) => { - observable.subscribe({ - next(x) { - resolve(x); - }, - error(err) { - reject(err); - }, - complete() { - //console.log('done'); - }, - }); - }) - .then((res) => { - this.logger.info('Done'); - return res; - }) - .catch((err) => { - this.logger.error(err); - throw new HttpException( - err.details, - err.code === 6 ? HttpStatus.CONFLICT : 400, - ); - }); - - this.logger.info('ConnectorClientService - getAllConnectors'); - - return result; - } - - async getConnectorDetails(plugin: string) { - const observable = from( - this.connectorServiceRead.GetConnectorDetails({ - plugin, - }), - ); - const result = await new Promise((resolve, reject) => { - observable.subscribe({ - next(x) { - resolve(x); - }, - error(err) { - reject(err); - }, - complete() { - //console.log('done'); - }, - }); - }) - .then((res) => { - this.logger.info('Done'); - return res; - }) - .catch((err) => { - this.logger.error(err); - throw new HttpException( - err.details, - err.code === 6 ? HttpStatus.CONFLICT : 400, - ); - }); - - this.logger.info('ConnectorClientService - getAllConnectors'); - - return result; - } - - async getConnector(plugin: string) { - const observable = from( - this.connectorServiceRead.GetConnector({ - plugin, - }), - ); - const result = await new Promise((resolve, reject) => { - observable.subscribe({ - next(x) { - resolve(x); - }, - error(err) { - reject(err); - }, - complete() { - //console.log('done'); - }, - }); - }) - .then((res) => { - this.logger.info('Done'); - return res; - }) - .catch((err) => { - this.logger.error(err); - throw new HttpException( - err.details, - err.code === 6 ? HttpStatus.CONFLICT : 400, - ); - }); - - this.logger.info('ConnectorClientService - getAllConnectors'); - - return result; - } - - async getConnectorsTags() { - const observable = from(this.connectorServiceRead.GetConnectorsTags({})); - const result = await new Promise((resolve, reject) => { - observable.subscribe({ - next(x) { - resolve(x); - }, - error(err) { - console.log('Observable Error'); - reject(err); - }, - complete() { - console.log('done'); - }, - }); - }).catch((err) => { - throw new HttpException( - err.details, - err.code === 6 ? HttpStatus.CONFLICT : 400, - ); - }); - - console.log('ConnectorClientService', 'getAllConnectors'); - - return result; - } - - async deleteConnector(plugin: string, version: string) { - const observable = from( - this.connectorServiceWrite.DeleteConnector({ - version, - plugin, - }), - ); - const result = await new Promise((resolve, reject) => { - observable.subscribe({ - next(x) { - resolve(x); - }, - error(err) { - reject(err); - }, - complete() { - //console.log('done'); - }, - }); - }) - .then((res) => { - this.logger.info('Done'); - return res; - }) - .catch((err) => { - this.logger.error(err); - throw new HttpException( - err.details, - err.code === 6 ? HttpStatus.CONFLICT : 400, - ); - }); - - this.logger.info('ConnectorClientService - getAllConnectors'); - - return result; - } - - async updateConnector({ plugin, changes }) { - const observable = from( - this.connectorServiceWrite.UpdateConnector({ - plugin, - changes, - }), - ); - const result = await new Promise((resolve, reject) => { - observable.subscribe({ - next(x) { - resolve(x); - }, - error(err) { - reject(err); - }, - complete() { - //console.log('done'); - }, - }); - }) - .then((res) => { - this.logger.info('Done'); - return res; - }) - .catch((err) => { - this.logger.error(err); - throw new HttpException( - err.details, - err.code === 6 ? HttpStatus.CONFLICT : 400, - ); - }); - - this.logger.info('ConnectorClientService - getAllConnectors'); - - return result; - } -} diff --git a/src/clients/duc/client.config.ts b/src/clients/duc/client.config.ts index f3384f3..ada4aca 100644 --- a/src/clients/duc/client.config.ts +++ b/src/clients/duc/client.config.ts @@ -9,10 +9,7 @@ export class DucClient { options: { url: process.env.DUC_URL, package: ProtoPackages.WritePackage, - credentials: - process.env.LOCAL_ENV === 'local' - ? undefined - : credentials.createSsl(), + credentials: credentials.createSsl(), protoPath: ProtoPaths.WriteFilePath, loader: { keepCase: true, diff --git a/src/modules/connector/connector.controller.ts b/src/modules/connector/connector.controller.ts index 4f84a3d..79714a9 100644 --- a/src/modules/connector/connector.controller.ts +++ b/src/modules/connector/connector.controller.ts @@ -14,9 +14,10 @@ import { } from '@nestjs/common'; import { FileInterceptor } from '@nestjs/platform-express'; import { ApiBearerAuth, ApiConsumes, ApiTags } from '@nestjs/swagger'; -import { ConnectorClientService } from 'src/clients/connector/client.service'; +import { ConnectorClientService } from './client.service'; import { AddTagDto } from './dtos/add-tag'; import { CreateConnectorDto } from './dtos/create-connector'; +import { UploadConnectorsFileDto } from './dtos/create-multiple-connector'; import { DeleteConnectorDto } from './dtos/delete-connector'; import { GetAllDto } from './dtos/get-all'; import { RemoveTagDto } from './dtos/remove-tag'; @@ -68,15 +69,31 @@ export class ConnectorController { return response; } + @Post('/multiple-connectors-upload') + @ApiConsumes('multipart/form-data') + @UseInterceptors(FileInterceptor('file')) + async uploadConnectorsFile(@UploadedFile() file: UploadConnectorsFileDto) { + console.log(`/upload`, 'Upload Connector Route'); + + const response = await this.connectorClientService.uploadConnectorsFile({ + file, + }); + + return response; + } + @Get() async getAllConnectors(@Query() queries: GetAllDto) { this.logger.info('/upload - Upload Connector Route'); - const { search, ...filters } = queries; + const { search, language, size, page, ...filters } = queries; const response: any = await this.connectorClientService.getAllConnectors({ filters: filters || {}, search: search || '', + language: language || 'pt-br', + size: size || 10, + page: page || 1, }); const connectors = JSON.parse(response.connectors).connectors; diff --git a/src/modules/connector/dtos/get-all.ts b/src/modules/connector/dtos/get-all.ts index c42980c..28e6ed5 100644 --- a/src/modules/connector/dtos/get-all.ts +++ b/src/modules/connector/dtos/get-all.ts @@ -4,6 +4,15 @@ export class GetAllDto { @ApiProperty() search: string; + @ApiProperty() + language: string; + + @ApiProperty() + size: string; + + @ApiProperty() + page: string; + @ApiProperty() filters: any; } From 9791b8bdb02f2c5dc375afe05f84d255b6ceae8d Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Thu, 7 Jul 2022 16:55:04 -0300 Subject: [PATCH 03/19] Merge main --- src/app.module.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/app.module.ts b/src/app.module.ts index 64473b1..39a893f 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -27,6 +27,7 @@ import { TransformationsClientConfiguration } from './clients/transformations/cl import { InputsClientConfiguration } from './clients/inputs/client.config'; import { PipelinesClientConfiguration } from './clients/pipelines/client.config'; import { CatalogController } from './modules/catalog/catalog.controller'; +import { ConnectorModule } from './modules/connector/connector.module'; import { CatalogService } from './modules/catalog/catalog.service'; import { OauthController } from './modules/oauth/oauth.controller'; import { getOauthSecrets } from './utils/OauthSecrets'; @@ -37,8 +38,11 @@ import { APP_GUARD } from '@nestjs/core'; import { GoogleStrategy } from './modules/oauth/passport-strategies/google-strategy'; import { MailChimpStrategy } from './modules/oauth/passport-strategies/mailchimp-strategy'; import { SalesforceStrategy } from './modules/oauth/passport-strategies/salesforce-strategy'; +<<<<<<< Updated upstream +======= import { ConnectorModule } from './modules/connector/connector.module'; +>>>>>>> Stashed changes const inputClient = new InputsClientConfiguration(); const outputClient = new OutputsClientConfiguration(); @@ -82,6 +86,8 @@ const transformationClient = new TransformationsClientConfiguration(); ConfigModule.forRoot({ isGlobal: true, }), + ConnectorModule, + AuthModule, PermissionsModule, ConnectorModule, From 0c69cebca15187647b813198c4c743a29cba7c96 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Thu, 7 Jul 2022 16:55:52 -0300 Subject: [PATCH 04/19] Merge main --- src/app.module.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/app.module.ts b/src/app.module.ts index 39a893f..5dce3dd 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -27,7 +27,6 @@ import { TransformationsClientConfiguration } from './clients/transformations/cl import { InputsClientConfiguration } from './clients/inputs/client.config'; import { PipelinesClientConfiguration } from './clients/pipelines/client.config'; import { CatalogController } from './modules/catalog/catalog.controller'; -import { ConnectorModule } from './modules/connector/connector.module'; import { CatalogService } from './modules/catalog/catalog.service'; import { OauthController } from './modules/oauth/oauth.controller'; import { getOauthSecrets } from './utils/OauthSecrets'; @@ -38,11 +37,8 @@ import { APP_GUARD } from '@nestjs/core'; import { GoogleStrategy } from './modules/oauth/passport-strategies/google-strategy'; import { MailChimpStrategy } from './modules/oauth/passport-strategies/mailchimp-strategy'; import { SalesforceStrategy } from './modules/oauth/passport-strategies/salesforce-strategy'; -<<<<<<< Updated upstream -======= import { ConnectorModule } from './modules/connector/connector.module'; ->>>>>>> Stashed changes const inputClient = new InputsClientConfiguration(); const outputClient = new OutputsClientConfiguration(); From 9514134db10692e14a6898692ed0efc2e39434bf Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Thu, 7 Jul 2022 16:58:33 -0300 Subject: [PATCH 05/19] Merge main --- src/app.module.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/app.module.ts b/src/app.module.ts index 5dce3dd..f9988e5 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,12 +1,12 @@ import { Module } from '@nestjs/common'; import { ClientsModule } from '@nestjs/microservices'; import { ConfigModule } from '@nestjs/config'; -import { DadosferaLogger } from 'dadosfera-logs'; import { InputsController } from './modules/inputs/inputs.controller'; import { TransformationsController } from './modules/transformations/transformations.controller'; import { OutputsController } from './modules/outputs/outputs.controllers'; import { PipelinesController } from './modules/pipelines/pipelines.controller'; +import { AuthController } from './modules/auth/auth.controller'; import { HealthController } from './modules/health/health.controller'; import { InputsService } from './modules/inputs/inputs.service'; @@ -15,15 +15,16 @@ import { OutputsService } from './modules/outputs/outputs.service'; import { PipelinesService } from './modules/pipelines/pipelines.service'; import { HealthService } from './modules/health/health.service'; -import { AuthModule } from './modules/auth/auth.module'; +import { AuthClientService } from './clients/auth/client.service'; import { InputsClientService } from './clients/inputs/client.service'; import { TransformationsClientService } from './clients/transformations/client.service'; import { OutputsClientService } from './clients/outputs/client.service'; import { PipelinesClientService } from './clients/pipelines/client.service'; -import { PermissionsModule } from './modules/permissions/permissions.module'; +import { PermissionsClientService } from './clients/permissions/client.service'; import { OutputsClientConfiguration } from './clients/outputs/client.config'; import { TransformationsClientConfiguration } from './clients/transformations/client.config'; +import { DucClient } from './clients/duc/client.config'; import { InputsClientConfiguration } from './clients/inputs/client.config'; import { PipelinesClientConfiguration } from './clients/pipelines/client.config'; import { CatalogController } from './modules/catalog/catalog.controller'; @@ -40,6 +41,7 @@ import { SalesforceStrategy } from './modules/oauth/passport-strategies/salesfor import { ConnectorModule } from './modules/connector/connector.module'; +const ducClient = new DucClient(); const inputClient = new InputsClientConfiguration(); const outputClient = new OutputsClientConfiguration(); const pipelineClient = new PipelinesClientConfiguration(); @@ -51,12 +53,12 @@ const transformationClient = new TransformationsClientConfiguration(); TransformationsController, OutputsController, PipelinesController, + AuthController, HealthController, CatalogController, OauthController, ], providers: [ - DadosferaLogger, { provide: 'OAUTH_SECRETS', useValue: getOauthSecrets() }, InputsService, TransformationsService, @@ -67,6 +69,8 @@ const transformationClient = new TransformationsClientConfiguration(); TransformationsClientService, OutputsClientService, PipelinesClientService, + AuthClientService, + PermissionsClientService, CatalogService, HubspotStrategy, FacebookStrategy, @@ -84,10 +88,6 @@ const transformationClient = new TransformationsClientConfiguration(); }), ConnectorModule, - AuthModule, - PermissionsModule, - ConnectorModule, - ClientsModule.register([ { name: 'INPUTS_PACKAGE', @@ -101,6 +101,10 @@ const transformationClient = new TransformationsClientConfiguration(); name: 'OUTPUTS_PACKAGE', ...outputClient.config(), }, + { + name: 'DUC_PACKAGE', + ...ducClient.config(), + }, { name: 'PIPELINES_PACKAGE', ...pipelineClient.config(), From 2d69e6db70a34117ecb6682044e243997dd9ce93 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Thu, 7 Jul 2022 17:13:30 -0300 Subject: [PATCH 06/19] Merge main --- src/clients/duc/client.config.ts | 4 +- src/modules/connector/client.config.ts | 30 +++ src/modules/connector/client.service.ts | 175 ++++++++++++++++++ src/modules/connector/connector.module.ts | 21 +++ .../dtos/create-multiple-connector.ts | 6 + 5 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 src/modules/connector/client.config.ts create mode 100644 src/modules/connector/client.service.ts create mode 100644 src/modules/connector/connector.module.ts create mode 100644 src/modules/connector/dtos/create-multiple-connector.ts diff --git a/src/clients/duc/client.config.ts b/src/clients/duc/client.config.ts index ada4aca..59ff8a8 100644 --- a/src/clients/duc/client.config.ts +++ b/src/clients/duc/client.config.ts @@ -9,7 +9,9 @@ export class DucClient { options: { url: process.env.DUC_URL, package: ProtoPackages.WritePackage, - credentials: credentials.createSsl(), + credentials: process.env.LOCAL_ENV + ? undefined + : credentials.createSsl(), protoPath: ProtoPaths.WriteFilePath, loader: { keepCase: true, diff --git a/src/modules/connector/client.config.ts b/src/modules/connector/client.config.ts new file mode 100644 index 0000000..9f5c0f0 --- /dev/null +++ b/src/modules/connector/client.config.ts @@ -0,0 +1,30 @@ +import { credentials } from '@grpc/grpc-js'; +import { ClientOptions, Transport } from '@nestjs/microservices'; +import { ConnectorManager } from 'protospack-v2'; + +export class ConnectorClientConfiguration { + config(): ClientOptions { + return { + transport: Transport.GRPC, + options: { + url: process.env.INFACTORY_URL, + package: [ + ConnectorManager.ProtoPackages.WritePackage, + ConnectorManager.ProtoPackages.ReadPackage, + ], + credentials: process.env.LOCAL_ENV + ? undefined + : credentials.createSsl(), + protoPath: [ + ConnectorManager.ProtoPaths.WriteFilePath, + ConnectorManager.ProtoPaths.ReadFilePath, + ], + loader: { + enums: String, + objects: true, + arrays: true, + }, + }, + }; + } +} diff --git a/src/modules/connector/client.service.ts b/src/modules/connector/client.service.ts new file mode 100644 index 0000000..2370b5a --- /dev/null +++ b/src/modules/connector/client.service.ts @@ -0,0 +1,175 @@ +import { + OnModuleInit, + Inject, + HttpException, + HttpStatus, +} from '@nestjs/common'; +import { ClientGrpc } from '@nestjs/microservices'; +import { ConnectorManager } from 'protospack-v2'; +import { lastValueFrom } from 'rxjs'; + +export class ConnectorClientService implements OnModuleInit { + private connectorServiceRead: ConnectorManager.ReadService.ConnectorManagerReadServices; + private connectorServiceWrite: ConnectorManager.WriteService.ConnectorManagerWriteServices; + constructor( + @Inject('CONNECTOR_PACKAGE') private readonly grpcClient: ClientGrpc, + ) {} + + onModuleInit() { + this.connectorServiceWrite = + this.grpcClient.getService( + ConnectorManager.ProtoServices.ConnectorManagerWriteServices, + ); + + this.connectorServiceRead = + this.grpcClient.getService( + ConnectorManager.ProtoServices.ConnectorManagerReadServices, + ); + } + + async uploadConnector(uploadConnector) { + const connector: ConnectorManager.Entities.ConnectorCreateRequest = { + file: { + buffer: uploadConnector.file.buffer, + mimetypes: uploadConnector.file.mimetype, + }, + connector: JSON.stringify(uploadConnector.connector), + }; + const serviceBody: ConnectorManager.Messages.RegisterConnectorRequest = { + connector, + }; + + return lastValueFrom( + this.connectorServiceWrite.RegisterConnector(serviceBody), + ).catch((err) => { + console.log(err.details); + throw new HttpException( + err.details, + err.code === 6 ? HttpStatus.CONFLICT : 400, + ); + }); + } + + async uploadFile(uploadFile) { + const body: ConnectorManager.Messages.UploadFileRequest = { + file: { + buffer: uploadFile.file.buffer, + mimetypes: uploadFile.file.mimetype, + }, + name: uploadFile.name, + }; + + return lastValueFrom(this.connectorServiceWrite.UploadFile(body)).catch( + (err) => { + console.log(err.details); + throw new HttpException( + err.details, + err.code === 6 ? HttpStatus.CONFLICT : 400, + ); + }, + ); + } + + async uploadConnectorsFile(uploadFile) { + const connectors = JSON.parse(uploadFile.file.buffer.toString('utf8')); + + const body = connectors.map((connector) => { + return JSON.stringify(connector); + }); + + const request = { + connectors: body, + }; + + return lastValueFrom( + this.connectorServiceWrite.RegisterMultipleConnectorsWithoutImage( + request, + ), + ).catch((err) => { + console.log(err.details); + throw new HttpException( + err.details, + err.code === 6 ? HttpStatus.CONFLICT : 400, + ); + }); + } + + async getAllConnectors(body) { + return lastValueFrom( + this.connectorServiceRead.GetAllConnectors({ + search: body.search, + filters: JSON.stringify(body.filters), + }), + ).catch((err) => { + throw new HttpException( + err.details, + err.code === 6 ? HttpStatus.CONFLICT : 400, + ); + }); + } + + async getConnectorDetails(plugin: string) { + return lastValueFrom( + this.connectorServiceRead.GetConnectorDetails({ + plugin, + }), + ).catch((err) => { + throw new HttpException( + err.details, + err.code === 6 ? HttpStatus.CONFLICT : 400, + ); + }); + } + + async getConnector(plugin: string) { + return lastValueFrom( + this.connectorServiceRead.GetConnector({ + plugin, + }), + ).catch((err) => { + throw new HttpException( + err.details, + err.code === 6 ? HttpStatus.CONFLICT : 400, + ); + }); + } + + async getConnectorsTags() { + return lastValueFrom(this.connectorServiceRead.GetConnectorsTags({})).catch( + (err) => { + throw new HttpException( + err.details, + err.code === 6 ? HttpStatus.CONFLICT : 400, + ); + }, + ); + } + + async deleteConnector(plugin: string, version: string) { + return lastValueFrom( + this.connectorServiceWrite.DeleteConnector({ + version, + plugin, + }), + ).catch((err) => { + throw new HttpException( + err.details, + err.code === 6 ? HttpStatus.CONFLICT : 400, + ); + }); + } + + async updateConnector({ plugin, changes }) { + return lastValueFrom( + this.connectorServiceWrite.UpdateConnector({ + plugin, + changes, + }), + ).catch((err) => { + throw new HttpException( + err.details, + err.code === 6 ? HttpStatus.CONFLICT : 400, + ); + }); + } +} diff --git a/src/modules/connector/connector.module.ts b/src/modules/connector/connector.module.ts new file mode 100644 index 0000000..2ab2e1e --- /dev/null +++ b/src/modules/connector/connector.module.ts @@ -0,0 +1,21 @@ +import { Module } from '@nestjs/common'; +import { ClientsModule } from '@nestjs/microservices'; +import { ConnectorClientService } from './client.service'; +import { ConnectorClientConfiguration } from './client.config'; +import { ConnectorController } from './connector.controller'; + +const connectorClient = new ConnectorClientConfiguration(); + +@Module({ + controllers: [ConnectorController], + providers: [ConnectorClientService], + imports: [ + ClientsModule.register([ + { + name: 'CONNECTOR_PACKAGE', + ...connectorClient.config(), + }, + ]), + ], +}) +export class ConnectorModule {} diff --git a/src/modules/connector/dtos/create-multiple-connector.ts b/src/modules/connector/dtos/create-multiple-connector.ts new file mode 100644 index 0000000..979e105 --- /dev/null +++ b/src/modules/connector/dtos/create-multiple-connector.ts @@ -0,0 +1,6 @@ +import { ApiProperty } from '@nestjs/swagger'; + +export class UploadConnectorsFileDto { + @ApiProperty({ format: 'binary' }) + file: string; +} From 395db05b05f7c47e37f67bcd03e1ac9cb8b6be56 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Thu, 7 Jul 2022 17:17:57 -0300 Subject: [PATCH 07/19] Merge main --- src/app.module.ts | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/app.module.ts b/src/app.module.ts index f9988e5..dd3e823 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -15,16 +15,13 @@ import { OutputsService } from './modules/outputs/outputs.service'; import { PipelinesService } from './modules/pipelines/pipelines.service'; import { HealthService } from './modules/health/health.service'; -import { AuthClientService } from './clients/auth/client.service'; import { InputsClientService } from './clients/inputs/client.service'; import { TransformationsClientService } from './clients/transformations/client.service'; import { OutputsClientService } from './clients/outputs/client.service'; import { PipelinesClientService } from './clients/pipelines/client.service'; -import { PermissionsClientService } from './clients/permissions/client.service'; import { OutputsClientConfiguration } from './clients/outputs/client.config'; import { TransformationsClientConfiguration } from './clients/transformations/client.config'; -import { DucClient } from './clients/duc/client.config'; import { InputsClientConfiguration } from './clients/inputs/client.config'; import { PipelinesClientConfiguration } from './clients/pipelines/client.config'; import { CatalogController } from './modules/catalog/catalog.controller'; @@ -40,8 +37,9 @@ import { MailChimpStrategy } from './modules/oauth/passport-strategies/mailchimp import { SalesforceStrategy } from './modules/oauth/passport-strategies/salesforce-strategy'; import { ConnectorModule } from './modules/connector/connector.module'; +import { AuthModule } from './modules/auth/auth.module'; +import { PermissionsModule } from './modules/permissions/permissions.module'; -const ducClient = new DucClient(); const inputClient = new InputsClientConfiguration(); const outputClient = new OutputsClientConfiguration(); const pipelineClient = new PipelinesClientConfiguration(); @@ -69,8 +67,6 @@ const transformationClient = new TransformationsClientConfiguration(); TransformationsClientService, OutputsClientService, PipelinesClientService, - AuthClientService, - PermissionsClientService, CatalogService, HubspotStrategy, FacebookStrategy, @@ -87,6 +83,8 @@ const transformationClient = new TransformationsClientConfiguration(); isGlobal: true, }), ConnectorModule, + AuthModule, + PermissionsModule, ClientsModule.register([ { @@ -101,10 +99,6 @@ const transformationClient = new TransformationsClientConfiguration(); name: 'OUTPUTS_PACKAGE', ...outputClient.config(), }, - { - name: 'DUC_PACKAGE', - ...ducClient.config(), - }, { name: 'PIPELINES_PACKAGE', ...pipelineClient.config(), From 03d42df3fd80b6a1019e90b9dc5d0f24590bc5b9 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Fri, 8 Jul 2022 13:06:26 -0300 Subject: [PATCH 08/19] Att Modules --- src/app.module.ts | 3 +++ src/modules/connector/connector.module.ts | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/app.module.ts b/src/app.module.ts index dd3e823..0d51e99 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -40,6 +40,8 @@ import { ConnectorModule } from './modules/connector/connector.module'; import { AuthModule } from './modules/auth/auth.module'; import { PermissionsModule } from './modules/permissions/permissions.module'; +import { DadosferaLogger } from 'dadosfera-logs'; + const inputClient = new InputsClientConfiguration(); const outputClient = new OutputsClientConfiguration(); const pipelineClient = new PipelinesClientConfiguration(); @@ -57,6 +59,7 @@ const transformationClient = new TransformationsClientConfiguration(); OauthController, ], providers: [ + DadosferaLogger, { provide: 'OAUTH_SECRETS', useValue: getOauthSecrets() }, InputsService, TransformationsService, diff --git a/src/modules/connector/connector.module.ts b/src/modules/connector/connector.module.ts index 2ab2e1e..417380b 100644 --- a/src/modules/connector/connector.module.ts +++ b/src/modules/connector/connector.module.ts @@ -3,12 +3,13 @@ import { ClientsModule } from '@nestjs/microservices'; import { ConnectorClientService } from './client.service'; import { ConnectorClientConfiguration } from './client.config'; import { ConnectorController } from './connector.controller'; +import { DadosferaLogger } from 'dadosfera-logs'; const connectorClient = new ConnectorClientConfiguration(); @Module({ controllers: [ConnectorController], - providers: [ConnectorClientService], + providers: [ConnectorClientService, DadosferaLogger], imports: [ ClientsModule.register([ { From d309c20cbf3233aa20efd833839dfd9c733f2034 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Fri, 8 Jul 2022 18:32:06 -0300 Subject: [PATCH 09/19] New features to Connector's Search --- package-lock.json | 26 ++++++++++++------------- package.json | 2 +- src/clients/duc/client.config.ts | 7 ++++--- src/modules/connector/client.config.ts | 7 ++++--- src/modules/connector/client.service.ts | 3 +++ 5 files changed, 25 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index e6f550a..f88fe67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "passport-hubspot-oauth2": "^1.0.3", "passport-mailchimp": "^1.1.0", "protospack": "2.5.2", - "protospack-v2": "3.0.1", + "protospack-v2": "3.1.1", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", "rxjs": "^7.5.5", @@ -8989,17 +8989,17 @@ } }, "node_modules/protospack": { - "version": "2.5.1", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack/-/protospack-2.5.1.tgz", - "integrity": "sha512-4JTx7B7WxpC1G3S8T7SUEAEgVM9UjdYrOG37fr42wKxl9y6wOyCZJYjG/lXeAqFXOEPj9KSlM+MqBfLIMHWHeA==", + "version": "2.5.2", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack/-/protospack-2.5.2.tgz", + "integrity": "sha512-t7NyWE4WDuAVixjL10SDUXHu8iW4H0azndTC3n/w335D/IodPgN47ebm3iMXbvoQTlQcCbjjc+HblaRa9oR8bA==", "dependencies": { "rxjs": "^7.5.5" } }, "node_modules/protospack-v2": { - "version": "3.0.1", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.0.1.tgz", - "integrity": "sha512-gbcuF4Q+n+nikKB8jjuM+MJ0PyUAX3puJsk2/u47FhRcwkFB8mjj1a1xjYsJeOBHqGVq88QDemcIwxGEEQpX0Q==", + "version": "3.1.1", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.1.1.tgz", + "integrity": "sha512-uY9hsP2oO7kar1EUUjUhVLI8VQ3seWO2+WVS0XS9vjWZPUI82k7KqB70uYB+5ws2dMSowomPjiqpQ13VNjk6ZQ==", "dependencies": { "rxjs": "^7.5.5", "ts-proto": "^1.112.2" @@ -17190,17 +17190,17 @@ } }, "protospack": { - "version": "2.5.1", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack/-/protospack-2.5.1.tgz", - "integrity": "sha512-4JTx7B7WxpC1G3S8T7SUEAEgVM9UjdYrOG37fr42wKxl9y6wOyCZJYjG/lXeAqFXOEPj9KSlM+MqBfLIMHWHeA==", + "version": "2.5.2", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack/-/protospack-2.5.2.tgz", + "integrity": "sha512-t7NyWE4WDuAVixjL10SDUXHu8iW4H0azndTC3n/w335D/IodPgN47ebm3iMXbvoQTlQcCbjjc+HblaRa9oR8bA==", "requires": { "rxjs": "^7.5.5" } }, "protospack-v2": { - "version": "3.0.1", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.0.1.tgz", - "integrity": "sha512-gbcuF4Q+n+nikKB8jjuM+MJ0PyUAX3puJsk2/u47FhRcwkFB8mjj1a1xjYsJeOBHqGVq88QDemcIwxGEEQpX0Q==", + "version": "3.1.1", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.1.1.tgz", + "integrity": "sha512-uY9hsP2oO7kar1EUUjUhVLI8VQ3seWO2+WVS0XS9vjWZPUI82k7KqB70uYB+5ws2dMSowomPjiqpQ13VNjk6ZQ==", "requires": { "rxjs": "^7.5.5", "ts-proto": "^1.112.2" diff --git a/package.json b/package.json index fe07ee7..07bb429 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "passport-hubspot-oauth2": "^1.0.3", "passport-mailchimp": "^1.1.0", "protospack": "2.5.2", - "protospack-v2": "3.0.1", + "protospack-v2": "3.1.1", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", "rxjs": "^7.5.5", diff --git a/src/clients/duc/client.config.ts b/src/clients/duc/client.config.ts index 59ff8a8..bbc92db 100644 --- a/src/clients/duc/client.config.ts +++ b/src/clients/duc/client.config.ts @@ -9,9 +9,10 @@ export class DucClient { options: { url: process.env.DUC_URL, package: ProtoPackages.WritePackage, - credentials: process.env.LOCAL_ENV - ? undefined - : credentials.createSsl(), + credentials: credentials.createSsl(), + // credentials: process.env.LOCAL_ENV + // ? undefined + // : credentials.createSsl(), protoPath: ProtoPaths.WriteFilePath, loader: { keepCase: true, diff --git a/src/modules/connector/client.config.ts b/src/modules/connector/client.config.ts index 9f5c0f0..b093a8c 100644 --- a/src/modules/connector/client.config.ts +++ b/src/modules/connector/client.config.ts @@ -12,9 +12,10 @@ export class ConnectorClientConfiguration { ConnectorManager.ProtoPackages.WritePackage, ConnectorManager.ProtoPackages.ReadPackage, ], - credentials: process.env.LOCAL_ENV - ? undefined - : credentials.createSsl(), + credentials: undefined, + // credentials: process.env.LOCAL_ENV + // ? undefined + // : credentials.createSsl(), protoPath: [ ConnectorManager.ProtoPaths.WriteFilePath, ConnectorManager.ProtoPaths.ReadFilePath, diff --git a/src/modules/connector/client.service.ts b/src/modules/connector/client.service.ts index 2370b5a..8dedba6 100644 --- a/src/modules/connector/client.service.ts +++ b/src/modules/connector/client.service.ts @@ -99,6 +99,9 @@ export class ConnectorClientService implements OnModuleInit { this.connectorServiceRead.GetAllConnectors({ search: body.search, filters: JSON.stringify(body.filters), + language: body.language, + page: body.page, + size: body.size, }), ).catch((err) => { throw new HttpException( From 04e1e1ff2be51ebc7e02ba5010901e1948daaff6 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Fri, 8 Jul 2022 18:33:58 -0300 Subject: [PATCH 10/19] New features to Connector's Search --- src/clients/duc/client.config.ts | 8 ++++---- src/modules/connector/client.config.ts | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/clients/duc/client.config.ts b/src/clients/duc/client.config.ts index bbc92db..bac3a13 100644 --- a/src/clients/duc/client.config.ts +++ b/src/clients/duc/client.config.ts @@ -9,10 +9,10 @@ export class DucClient { options: { url: process.env.DUC_URL, package: ProtoPackages.WritePackage, - credentials: credentials.createSsl(), - // credentials: process.env.LOCAL_ENV - // ? undefined - // : credentials.createSsl(), + // credentials: credentials.createSsl(), + credentials: process.env.LOCAL_ENV + ? undefined + : credentials.createSsl(), protoPath: ProtoPaths.WriteFilePath, loader: { keepCase: true, diff --git a/src/modules/connector/client.config.ts b/src/modules/connector/client.config.ts index b093a8c..c35707c 100644 --- a/src/modules/connector/client.config.ts +++ b/src/modules/connector/client.config.ts @@ -12,10 +12,10 @@ export class ConnectorClientConfiguration { ConnectorManager.ProtoPackages.WritePackage, ConnectorManager.ProtoPackages.ReadPackage, ], - credentials: undefined, - // credentials: process.env.LOCAL_ENV - // ? undefined - // : credentials.createSsl(), + // credentials: undefined, + credentials: process.env.LOCAL_ENV + ? undefined + : credentials.createSsl(), protoPath: [ ConnectorManager.ProtoPaths.WriteFilePath, ConnectorManager.ProtoPaths.ReadFilePath, From e7b37629a11273229e2ac962a72f97c98c108fd0 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Mon, 11 Jul 2022 14:08:25 -0300 Subject: [PATCH 11/19] Insomnia File --- Insomnia_2022-06-23.zip | Bin 3774 -> 0 bytes Insomnia_2022-07-11.zip | Bin 0 -> 6369 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Insomnia_2022-06-23.zip create mode 100644 Insomnia_2022-07-11.zip diff --git a/Insomnia_2022-06-23.zip b/Insomnia_2022-06-23.zip deleted file mode 100644 index 7103d04cb19c37a25ec7375fa59ebaecbdd84773..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3774 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 v0Q}`dh$#gnC)NKl{X2D8{$BqD@*R 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 Date: Tue, 12 Jul 2022 09:21:45 -0300 Subject: [PATCH 12/19] FEAT: Accept-Language --- package-lock.json | 16 +++++++++------- package.json | 2 +- src/modules/connector/client.service.ts | 14 ++++++++++---- src/modules/connector/connector.controller.ts | 10 ++++++++-- 4 files changed, 28 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index f88fe67..7daed3d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "passport-hubspot-oauth2": "^1.0.3", "passport-mailchimp": "^1.1.0", "protospack": "2.5.2", - "protospack-v2": "3.1.1", + "protospack-v2": "3.4.0", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", "rxjs": "^7.5.5", @@ -8997,10 +8997,11 @@ } }, "node_modules/protospack-v2": { - "version": "3.1.1", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.1.1.tgz", - "integrity": "sha512-uY9hsP2oO7kar1EUUjUhVLI8VQ3seWO2+WVS0XS9vjWZPUI82k7KqB70uYB+5ws2dMSowomPjiqpQ13VNjk6ZQ==", + "version": "3.4.0", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.4.0.tgz", + "integrity": "sha512-KJZR0HtzUaBQnsdWzn4J6IqMUtceeO5gV41hdLrS1EbTKwn2A2EsbcOGQRm4/8kPzU2i4pe9o6zKTR3xCvWavw==", "dependencies": { + "@grpc/grpc-js": "^1.6.7", "rxjs": "^7.5.5", "ts-proto": "^1.112.2" } @@ -17198,10 +17199,11 @@ } }, "protospack-v2": { - "version": "3.1.1", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.1.1.tgz", - "integrity": "sha512-uY9hsP2oO7kar1EUUjUhVLI8VQ3seWO2+WVS0XS9vjWZPUI82k7KqB70uYB+5ws2dMSowomPjiqpQ13VNjk6ZQ==", + "version": "3.4.0", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.4.0.tgz", + "integrity": "sha512-KJZR0HtzUaBQnsdWzn4J6IqMUtceeO5gV41hdLrS1EbTKwn2A2EsbcOGQRm4/8kPzU2i4pe9o6zKTR3xCvWavw==", "requires": { + "@grpc/grpc-js": "^1.6.7", "rxjs": "^7.5.5", "ts-proto": "^1.112.2" } diff --git a/package.json b/package.json index 07bb429..1ca35a7 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "passport-hubspot-oauth2": "^1.0.3", "passport-mailchimp": "^1.1.0", "protospack": "2.5.2", - "protospack-v2": "3.1.1", + "protospack-v2": "3.4.0", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", "rxjs": "^7.5.5", diff --git a/src/modules/connector/client.service.ts b/src/modules/connector/client.service.ts index 8dedba6..be9601f 100644 --- a/src/modules/connector/client.service.ts +++ b/src/modules/connector/client.service.ts @@ -1,3 +1,4 @@ +import { Metadata } from '@grpc/grpc-js'; import { OnModuleInit, Inject, @@ -111,11 +112,16 @@ export class ConnectorClientService implements OnModuleInit { }); } - async getConnectorDetails(plugin: string) { + async getConnectorDetails(plugin: string, language: string) { + const meta = new Metadata(); + meta.add('Language', language); return lastValueFrom( - this.connectorServiceRead.GetConnectorDetails({ - plugin, - }), + this.connectorServiceRead.GetConnectorDetails( + { + plugin, + }, + meta, + ), ).catch((err) => { throw new HttpException( err.details, diff --git a/src/modules/connector/connector.controller.ts b/src/modules/connector/connector.controller.ts index 79714a9..e53d0fa 100644 --- a/src/modules/connector/connector.controller.ts +++ b/src/modules/connector/connector.controller.ts @@ -11,6 +11,7 @@ import { UploadedFile, UseInterceptors, Inject, + Headers, } from '@nestjs/common'; import { FileInterceptor } from '@nestjs/platform-express'; import { ApiBearerAuth, ApiConsumes, ApiTags } from '@nestjs/swagger'; @@ -83,10 +84,13 @@ export class ConnectorController { } @Get() - async getAllConnectors(@Query() queries: GetAllDto) { + async getAllConnectors( + @Headers('accept-language') language, + @Query() queries: GetAllDto, + ) { this.logger.info('/upload - Upload Connector Route'); - const { search, language, size, page, ...filters } = queries; + const { search, size, page, ...filters } = queries; const response: any = await this.connectorClientService.getAllConnectors({ filters: filters || {}, @@ -130,6 +134,7 @@ export class ConnectorController { @Get('/:plugin/details') async getConnectorDetails( + @Headers('accept-language') language, @Param('plugin') plugin: string, @Query('version') version: string, ) { @@ -139,6 +144,7 @@ export class ConnectorController { const response: any = await this.connectorClientService.getConnectorDetails( pluginId, + language || 'pt-br', ); return { From 23a65d18a60b60b0335a749219c7365037773694 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Tue, 12 Jul 2022 17:04:25 -0300 Subject: [PATCH 13/19] Search Adapt fields --- src/modules/connector/client.service.ts | 13 +++++++++---- src/modules/connector/connector.controller.ts | 6 ++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/modules/connector/client.service.ts b/src/modules/connector/client.service.ts index be9601f..4b13a0c 100644 --- a/src/modules/connector/client.service.ts +++ b/src/modules/connector/client.service.ts @@ -130,11 +130,16 @@ export class ConnectorClientService implements OnModuleInit { }); } - async getConnector(plugin: string) { + async getConnector(plugin: string, language: string) { + const meta = new Metadata(); + meta.add('Language', language); return lastValueFrom( - this.connectorServiceRead.GetConnector({ - plugin, - }), + this.connectorServiceRead.GetConnector( + { + plugin, + }, + meta, + ), ).catch((err) => { throw new HttpException( err.details, diff --git a/src/modules/connector/connector.controller.ts b/src/modules/connector/connector.controller.ts index e53d0fa..df1a19b 100644 --- a/src/modules/connector/connector.controller.ts +++ b/src/modules/connector/connector.controller.ts @@ -85,7 +85,7 @@ export class ConnectorController { @Get() async getAllConnectors( - @Headers('accept-language') language, + @Headers('dadosfera-lang') language, @Query() queries: GetAllDto, ) { this.logger.info('/upload - Upload Connector Route'); @@ -115,6 +115,7 @@ export class ConnectorController { @Get('/:plugin') async getConnector( + @Headers('dadosfera-lang') language, @Param('plugin') plugin: string, @Query('version') version: string, ) { @@ -124,6 +125,7 @@ export class ConnectorController { const response: any = await this.connectorClientService.getConnector( pluginId, + language, ); return { @@ -134,7 +136,7 @@ export class ConnectorController { @Get('/:plugin/details') async getConnectorDetails( - @Headers('accept-language') language, + @Headers('dadosfera-lang') language, @Param('plugin') plugin: string, @Query('version') version: string, ) { From 6dec2c1e5646cecc2c49f883c25f1bf308081457 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Wed, 13 Jul 2022 14:11:35 -0300 Subject: [PATCH 14/19] FIX: Header Dadosfera-Lang --- src/clients/duc/client.config.ts | 8 ++++---- src/modules/connector/client.config.ts | 8 ++++---- src/modules/connector/client.service.ts | 19 ++++++++++++------- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/clients/duc/client.config.ts b/src/clients/duc/client.config.ts index bac3a13..bbc92db 100644 --- a/src/clients/duc/client.config.ts +++ b/src/clients/duc/client.config.ts @@ -9,10 +9,10 @@ export class DucClient { options: { url: process.env.DUC_URL, package: ProtoPackages.WritePackage, - // credentials: credentials.createSsl(), - credentials: process.env.LOCAL_ENV - ? undefined - : credentials.createSsl(), + credentials: credentials.createSsl(), + // credentials: process.env.LOCAL_ENV + // ? undefined + // : credentials.createSsl(), protoPath: ProtoPaths.WriteFilePath, loader: { keepCase: true, diff --git a/src/modules/connector/client.config.ts b/src/modules/connector/client.config.ts index c35707c..b093a8c 100644 --- a/src/modules/connector/client.config.ts +++ b/src/modules/connector/client.config.ts @@ -12,10 +12,10 @@ export class ConnectorClientConfiguration { ConnectorManager.ProtoPackages.WritePackage, ConnectorManager.ProtoPackages.ReadPackage, ], - // credentials: undefined, - credentials: process.env.LOCAL_ENV - ? undefined - : credentials.createSsl(), + credentials: undefined, + // credentials: process.env.LOCAL_ENV + // ? undefined + // : credentials.createSsl(), protoPath: [ ConnectorManager.ProtoPaths.WriteFilePath, ConnectorManager.ProtoPaths.ReadFilePath, diff --git a/src/modules/connector/client.service.ts b/src/modules/connector/client.service.ts index 4b13a0c..c628b24 100644 --- a/src/modules/connector/client.service.ts +++ b/src/modules/connector/client.service.ts @@ -96,14 +96,19 @@ export class ConnectorClientService implements OnModuleInit { } async getAllConnectors(body) { + const meta = new Metadata(); + meta.add('Language', body.language); return lastValueFrom( - this.connectorServiceRead.GetAllConnectors({ - search: body.search, - filters: JSON.stringify(body.filters), - language: body.language, - page: body.page, - size: body.size, - }), + this.connectorServiceRead.GetAllConnectors( + { + search: body.search, + filters: JSON.stringify(body.filters), + language: body.language, + page: body.page, + size: body.size, + }, + meta, + ), ).catch((err) => { throw new HttpException( err.details, From 9d10e58b1bf925e7c384880aba9bb9ed2194240a Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Wed, 13 Jul 2022 14:14:48 -0300 Subject: [PATCH 15/19] FIX: SSL --- src/clients/duc/client.config.ts | 8 ++++---- src/modules/connector/client.config.ts | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/clients/duc/client.config.ts b/src/clients/duc/client.config.ts index bbc92db..bac3a13 100644 --- a/src/clients/duc/client.config.ts +++ b/src/clients/duc/client.config.ts @@ -9,10 +9,10 @@ export class DucClient { options: { url: process.env.DUC_URL, package: ProtoPackages.WritePackage, - credentials: credentials.createSsl(), - // credentials: process.env.LOCAL_ENV - // ? undefined - // : credentials.createSsl(), + // credentials: credentials.createSsl(), + credentials: process.env.LOCAL_ENV + ? undefined + : credentials.createSsl(), protoPath: ProtoPaths.WriteFilePath, loader: { keepCase: true, diff --git a/src/modules/connector/client.config.ts b/src/modules/connector/client.config.ts index b093a8c..c35707c 100644 --- a/src/modules/connector/client.config.ts +++ b/src/modules/connector/client.config.ts @@ -12,10 +12,10 @@ export class ConnectorClientConfiguration { ConnectorManager.ProtoPackages.WritePackage, ConnectorManager.ProtoPackages.ReadPackage, ], - credentials: undefined, - // credentials: process.env.LOCAL_ENV - // ? undefined - // : credentials.createSsl(), + // credentials: undefined, + credentials: process.env.LOCAL_ENV + ? undefined + : credentials.createSsl(), protoPath: [ ConnectorManager.ProtoPaths.WriteFilePath, ConnectorManager.ProtoPaths.ReadFilePath, From d01b0357ed06ce20dad77187b49bac0a1ee93271 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Thu, 14 Jul 2022 17:31:12 -0300 Subject: [PATCH 16/19] FIX: Remove logs and add Authenticated --- src/modules/connector/client.service.ts | 1 - src/modules/connector/connector.controller.ts | 12 ++++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/modules/connector/client.service.ts b/src/modules/connector/client.service.ts index c628b24..6400b9b 100644 --- a/src/modules/connector/client.service.ts +++ b/src/modules/connector/client.service.ts @@ -87,7 +87,6 @@ export class ConnectorClientService implements OnModuleInit { request, ), ).catch((err) => { - console.log(err.details); throw new HttpException( err.details, err.code === 6 ? HttpStatus.CONFLICT : 400, diff --git a/src/modules/connector/connector.controller.ts b/src/modules/connector/connector.controller.ts index df1a19b..5360670 100644 --- a/src/modules/connector/connector.controller.ts +++ b/src/modules/connector/connector.controller.ts @@ -25,6 +25,7 @@ import { RemoveTagDto } from './dtos/remove-tag'; import { UpdateDto } from './dtos/update'; import { UploadFileDto } from './dtos/upload-file'; import { DadosferaLogger } from 'dadosfera-logs'; +import { Authenticated } from 'src/authentication/authentication.decorator'; @ApiTags('connectors') @ApiBearerAuth() @@ -40,6 +41,7 @@ export class ConnectorController { } @Post() + @Authenticated() @ApiConsumes('multipart/form-data') @UseInterceptors(FileInterceptor('file')) async uploadConnector( @@ -57,6 +59,7 @@ export class ConnectorController { } @Post('/upload') + @Authenticated() @ApiConsumes('multipart/form-data') @UseInterceptors(FileInterceptor('file')) async uploadFile(@UploadedFile() file, @Body() { name }: UploadFileDto) { @@ -71,6 +74,7 @@ export class ConnectorController { } @Post('/multiple-connectors-upload') + @Authenticated() @ApiConsumes('multipart/form-data') @UseInterceptors(FileInterceptor('file')) async uploadConnectorsFile(@UploadedFile() file: UploadConnectorsFileDto) { @@ -84,6 +88,7 @@ export class ConnectorController { } @Get() + @Authenticated() async getAllConnectors( @Headers('dadosfera-lang') language, @Query() queries: GetAllDto, @@ -109,11 +114,13 @@ export class ConnectorController { } @Get('/tags') + @Authenticated() async getConnectorsTags() { return await this.connectorClientService.getConnectorsTags(); } @Get('/:plugin') + @Authenticated() async getConnector( @Headers('dadosfera-lang') language, @Param('plugin') plugin: string, @@ -135,6 +142,7 @@ export class ConnectorController { } @Get('/:plugin/details') + @Authenticated() async getConnectorDetails( @Headers('dadosfera-lang') language, @Param('plugin') plugin: string, @@ -156,6 +164,7 @@ export class ConnectorController { } @Put('/:plugin') + @Authenticated() @ApiConsumes('multipart/form-data') async updateConnector( @Param('plugin') plugin: string, @@ -177,6 +186,7 @@ export class ConnectorController { } @Put('/:plugin/add-tag') + @Authenticated() async addTagOnConnector( @Param('plugin') plugin: string, @Body() body: AddTagDto, @@ -203,6 +213,7 @@ export class ConnectorController { } @Put('/:plugin/remove-tag') + @Authenticated() async removeTagOnConnector( @Param('plugin') plugin: string, @Body() body: RemoveTagDto, @@ -230,6 +241,7 @@ export class ConnectorController { } @Delete('/:plugin') + @Authenticated() async deleteConnector( @Param('plugin') plugin: string, @Body() { version }: DeleteConnectorDto, From c87ceec77ba915c93d837b5b6ee0c8d940abe945 Mon Sep 17 00:00:00 2001 From: Victor Radael Date: Fri, 15 Jul 2022 15:10:11 -0300 Subject: [PATCH 17/19] FIX: Upload Imaga Files and add permissions --- src/modules/connector/connector.controller.ts | 49 +++++++++++-------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/src/modules/connector/connector.controller.ts b/src/modules/connector/connector.controller.ts index 5360670..1141ac5 100644 --- a/src/modules/connector/connector.controller.ts +++ b/src/modules/connector/connector.controller.ts @@ -12,8 +12,9 @@ import { UseInterceptors, Inject, Headers, + UploadedFiles, } from '@nestjs/common'; -import { FileInterceptor } from '@nestjs/platform-express'; +import { FileInterceptor, FilesInterceptor } from '@nestjs/platform-express'; import { ApiBearerAuth, ApiConsumes, ApiTags } from '@nestjs/swagger'; import { ConnectorClientService } from './client.service'; import { AddTagDto } from './dtos/add-tag'; @@ -23,12 +24,16 @@ import { DeleteConnectorDto } from './dtos/delete-connector'; import { GetAllDto } from './dtos/get-all'; import { RemoveTagDto } from './dtos/remove-tag'; import { UpdateDto } from './dtos/update'; -import { UploadFileDto } from './dtos/upload-file'; import { DadosferaLogger } from 'dadosfera-logs'; -import { Authenticated } from 'src/authentication/authentication.decorator'; +import { + Authenticated, + RequireAllPermissions, +} from 'src/authentication/authentication.decorator'; +import { Permissions } from 'src/authentication/permissions.enum'; @ApiTags('connectors') @ApiBearerAuth() +@Authenticated() @Controller('connectors') export class ConnectorController { logger: any; @@ -41,7 +46,7 @@ export class ConnectorController { } @Post() - @Authenticated() + @RequireAllPermissions(Permissions.CONNECTORS.CREATE) @ApiConsumes('multipart/form-data') @UseInterceptors(FileInterceptor('file')) async uploadConnector( @@ -58,23 +63,25 @@ export class ConnectorController { return response; } - @Post('/upload') - @Authenticated() + @Post('/uploads') + @RequireAllPermissions(Permissions.CONNECTORS.CREATE) @ApiConsumes('multipart/form-data') - @UseInterceptors(FileInterceptor('file')) - async uploadFile(@UploadedFile() file, @Body() { name }: UploadFileDto) { + @UseInterceptors(FilesInterceptor('files')) + async uploadFile(@UploadedFiles() files) { this.logger.info('/upload - Upload Connector Route'); - - const response = await this.connectorClientService.uploadFile({ - file, - name, + const promises = files.map(async (file) => { + return await this.connectorClientService.uploadFile({ + file, + name: file.originalname.split('.')[0], + }); }); + const response = await Promise.all(promises); return response; } @Post('/multiple-connectors-upload') - @Authenticated() + @RequireAllPermissions(Permissions.CONNECTORS.CREATE) @ApiConsumes('multipart/form-data') @UseInterceptors(FileInterceptor('file')) async uploadConnectorsFile(@UploadedFile() file: UploadConnectorsFileDto) { @@ -88,7 +95,7 @@ export class ConnectorController { } @Get() - @Authenticated() + @RequireAllPermissions(Permissions.CONNECTORS.GET) async getAllConnectors( @Headers('dadosfera-lang') language, @Query() queries: GetAllDto, @@ -114,13 +121,13 @@ export class ConnectorController { } @Get('/tags') - @Authenticated() + @RequireAllPermissions(Permissions.CONNECTORS.GET) async getConnectorsTags() { return await this.connectorClientService.getConnectorsTags(); } @Get('/:plugin') - @Authenticated() + @RequireAllPermissions(Permissions.CONNECTORS.GET) async getConnector( @Headers('dadosfera-lang') language, @Param('plugin') plugin: string, @@ -142,7 +149,7 @@ export class ConnectorController { } @Get('/:plugin/details') - @Authenticated() + @RequireAllPermissions(Permissions.CONNECTORS.GET) async getConnectorDetails( @Headers('dadosfera-lang') language, @Param('plugin') plugin: string, @@ -164,7 +171,7 @@ export class ConnectorController { } @Put('/:plugin') - @Authenticated() + @RequireAllPermissions(Permissions.CONNECTORS.UPDATE) @ApiConsumes('multipart/form-data') async updateConnector( @Param('plugin') plugin: string, @@ -186,7 +193,7 @@ export class ConnectorController { } @Put('/:plugin/add-tag') - @Authenticated() + @RequireAllPermissions(Permissions.CONNECTORS.UPDATE) async addTagOnConnector( @Param('plugin') plugin: string, @Body() body: AddTagDto, @@ -213,7 +220,7 @@ export class ConnectorController { } @Put('/:plugin/remove-tag') - @Authenticated() + @RequireAllPermissions(Permissions.CONNECTORS.UPDATE) async removeTagOnConnector( @Param('plugin') plugin: string, @Body() body: RemoveTagDto, @@ -241,7 +248,7 @@ export class ConnectorController { } @Delete('/:plugin') - @Authenticated() + @RequireAllPermissions(Permissions.CONNECTORS.DELETE) async deleteConnector( @Param('plugin') plugin: string, @Body() { version }: DeleteConnectorDto, From a5e424c854ef876905efcac7d32bc81fcbfadae6 Mon Sep 17 00:00:00 2001 From: Victor Radael <53879758+victorradael@users.noreply.github.com> Date: Fri, 15 Jul 2022 17:53:38 -0300 Subject: [PATCH 18/19] Update app.module.ts --- src/app.module.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app.module.ts b/src/app.module.ts index 3eff0d1..e28c53e 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -54,7 +54,6 @@ const transformationClient = new TransformationsClientConfiguration(); TransformationsController, OutputsController, PipelinesController, - AuthController, HealthController, CatalogController, OauthController, From ccef7628f9f51c60280275bc28f17357abf8ddb7 Mon Sep 17 00:00:00 2001 From: Victor Radael <53879758+victorradael@users.noreply.github.com> Date: Fri, 15 Jul 2022 18:00:09 -0300 Subject: [PATCH 19/19] FIX: Remove AuthController --- src/app.module.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app.module.ts b/src/app.module.ts index e28c53e..03dafda 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,7 +1,6 @@ import { Module } from '@nestjs/common'; import { ClientsModule } from '@nestjs/microservices'; import { ConfigModule } from '@nestjs/config'; - import { InputsController } from './modules/inputs/inputs.controller'; import { TransformationsController } from './modules/transformations/transformations.controller'; import { OutputsController } from './modules/outputs/outputs.controllers';