From 06d505c50ab088617d86ec505c27dab9d98adea9 Mon Sep 17 00:00:00 2001 From: marcosrodrigues-dadosfera Date: Sat, 13 Jun 2026 21:07:14 -0300 Subject: [PATCH] FEAT: remove deprecated protospack lib --- docsfera.json | 135 ++++++------------ package-lock.json | 18 +-- package.json | 3 +- src/app.module.ts | 2 - src/modules/catalog/catalog.module.ts | 3 - src/modules/inputs/dtos/old_interfaces.ts | 6 +- src/modules/pipelines/client.service.ts | 78 ---------- src/modules/pipelines/interfaces.d.ts | 36 ----- src/modules/pipelines/pipelines-client.ts | 33 ----- src/modules/pipelines/pipelines.controller.ts | 72 ---------- src/modules/pipelines/pipelines.module.ts | 19 --- src/modules/pipelines/pipelines.service.ts | 33 ----- src/modules/pipelinesV2/interfaces.ts | 7 +- .../pipelinesV2/pipelines.controller.ts | 8 +- src/modules/pipelinesV2/pipelines.module.ts | 2 - src/modules/pipelinesV2/pipelines.service.ts | 48 ++++++- src/modules/transformations/interfaces.d.ts | 7 +- 17 files changed, 115 insertions(+), 395 deletions(-) delete mode 100644 src/modules/pipelines/client.service.ts delete mode 100644 src/modules/pipelines/interfaces.d.ts delete mode 100644 src/modules/pipelines/pipelines-client.ts delete mode 100644 src/modules/pipelines/pipelines.controller.ts delete mode 100644 src/modules/pipelines/pipelines.module.ts delete mode 100644 src/modules/pipelines/pipelines.service.ts diff --git a/docsfera.json b/docsfera.json index c68e491..eaaf00e 100644 --- a/docsfera.json +++ b/docsfera.json @@ -3343,14 +3343,7 @@ ], "responses": { "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } + "description": "" } }, "tags": [ @@ -3874,88 +3867,6 @@ ] } }, - "/pipelines/start/{id}": { - "post": { - "operationId": "PipelinesController_activate", - "summary": "", - "deprecated": true, - "description": "This method is deprecated. Please use route /pipelinesV2/start/:id instead", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - } - }, - "tags": [ - "Pipelines" - ], - "security": [ - { - "access-token": [] - }, - { - "access-token": [] - } - ] - } - }, - "/pipelines/{id}/status": { - "get": { - "operationId": "PipelinesController_getPipelineStatus", - "summary": "", - "deprecated": true, - "description": "This method is deprecated. Please use route /pipelinesV2/:id/status instead", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - } - }, - "tags": [ - "Pipelines" - ], - "security": [ - { - "access-token": [] - }, - { - "access-token": [] - } - ] - } - }, "/transformations": { "post": { "operationId": "TransformationsController_create", @@ -4659,6 +4570,50 @@ ] } }, + "/platform/pipelines/{pipelineId}/pipeline_run/{runId}/jobs": { + "get": { + "operationId": "PlatformApiController_getPipelineRunJobs", + "summary": "Get pipeline run jobs", + "parameters": [ + { + "name": "pipelineId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "runId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "Platform API" + ], + "security": [ + { + "access-token": [] + } + ] + } + }, "/platform/jobs/{jobId}/input": { "put": { "operationId": "PlatformApiController_updateJobInput", diff --git a/package-lock.json b/package-lock.json index f26f5fe..28b3128 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,8 +16,7 @@ "@aws-sdk/lib-dynamodb": "^3.414.0", "@aws-sdk/signature-v4": "^3.370.0", "@dadosfera/dadosfera-logs": "^1.0.0-beta.4", - "@dadosfera/protospack": "2.5.3", - "@dadosfera/protospack-v2": "3.40.0-beta.9", + "@dadosfera/protospack-v2": "3.40.0-beta.10", "@grpc/grpc-js": "^1.9.3", "@grpc/proto-loader": "^0.7.9", "@nestjs/cli": "^9.5.0", @@ -1735,19 +1734,10 @@ "winston-log2gelf": "^2.4.0" } }, - "node_modules/@dadosfera/protospack": { - "version": "2.5.3", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com/npm/dadosfera-npm/@dadosfera/protospack/-/protospack-2.5.3.tgz", - "integrity": "sha512-yOLnd+s6n9VkPpZXO8HnUY27CQPHj/qs+ecddviA4Ldn0Gx4KGRgbVdsSSP45nPm0GHhCd2bHg4ap+la7xtRmA==", - "license": "ISC", - "dependencies": { - "rxjs": "^7.5.5" - } - }, "node_modules/@dadosfera/protospack-v2": { - "version": "3.40.0-beta.9", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.40.0-beta.9.tgz", - "integrity": "sha512-8jbCpzxQnDax41yhw8yQJLB1VVp4PY8grj2H5oBgV+BCUf2y5lp0EPzLwVZsnOsfsXNAXHyNmbZbAjmJC1ipaw==", + "version": "3.40.0-beta.10", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.40.0-beta.10.tgz", + "integrity": "sha512-F45dSEIKG+gwwDMYHayA242bFwhFTJbZm26KesQbGhf4I45ur6hYZD8dK0voNuVQInLMQhtm6+7th6/jJ8xpTQ==", "license": "ISC", "dependencies": { "@grpc/grpc-js": "^1.9.3", diff --git a/package.json b/package.json index 878d46a..dbd506b 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,7 @@ "@aws-sdk/lib-dynamodb": "^3.414.0", "@aws-sdk/signature-v4": "^3.370.0", "@dadosfera/dadosfera-logs": "^1.0.0-beta.4", - "@dadosfera/protospack": "2.5.3", - "@dadosfera/protospack-v2": "3.40.0-beta.9", + "@dadosfera/protospack-v2": "3.40.0-beta.10", "@grpc/grpc-js": "^1.9.3", "@grpc/proto-loader": "^0.7.9", "@nestjs/cli": "^9.5.0", diff --git a/src/app.module.ts b/src/app.module.ts index 4db914b..b0bc6ae 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -17,7 +17,6 @@ import { ConnectionTestModule } from './modules/connection-test/connection-test. import { NetworkConfigModule } from './modules/network-config/network-config.module'; import { InputsModule } from './modules/inputs/inputs.module'; import { OauthModule } from './modules/oauth/oauth.module'; -import { PipelinesModule } from './modules/pipelines/pipelines.module'; import { TransformationsModule } from './modules/transformations/transformations.module'; import { HealthModule } from './modules/health/health.module'; import { CatalogModule } from './modules/catalog/catalog.module'; @@ -60,7 +59,6 @@ import { ReleaseNoteModule } from './modules/release_note/release_note.module'; PermissionsModule, TermsOfUseModule, ConnectionTestModule, - PipelinesModule, TransformationsModule, UsersModule, RolesModule, diff --git a/src/modules/catalog/catalog.module.ts b/src/modules/catalog/catalog.module.ts index 8ce1579..982ef09 100644 --- a/src/modules/catalog/catalog.module.ts +++ b/src/modules/catalog/catalog.module.ts @@ -5,20 +5,17 @@ import { DadosferaLogger } from '@dadosfera/dadosfera-logs'; import { CatalogController } from './catalog.controller'; import { CatalogClientConfiguration } from './catalog-client'; import { ClientsModule } from '@nestjs/microservices'; -import { PipelinesModule as OldPipelineModule } from 'src/modules/pipelines/pipelines.module'; import { UsersModule } from '../users/users.module'; import { RolesModule } from '../roles/roles.module'; import { CustomersModule } from '../customers/customers.module'; import { ShareModule } from './share/share.module'; import { CatalogService } from './catalog.service'; -import { MixpanelModule } from '../mixpanel/mixpanel.module'; const client = new CatalogClientConfiguration(); @Module({ imports: [ ClientsModule.register([client.providerOptions]), - OldPipelineModule, UsersModule, RolesModule, CustomersModule, diff --git a/src/modules/inputs/dtos/old_interfaces.ts b/src/modules/inputs/dtos/old_interfaces.ts index 21c8cff..e02a567 100644 --- a/src/modules/inputs/dtos/old_interfaces.ts +++ b/src/modules/inputs/dtos/old_interfaces.ts @@ -1,4 +1,8 @@ -import { Info } from '@dadosfera/protospack/dist/lib/interfaces'; +export interface Info { + user_id: string; + customer_id: string; + customer: string; +} interface Values { jdbc_user: string; diff --git a/src/modules/pipelines/client.service.ts b/src/modules/pipelines/client.service.ts deleted file mode 100644 index 1dc395e..0000000 --- a/src/modules/pipelines/client.service.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { ConflictException, Inject, OnModuleInit } from '@nestjs/common'; -import { ClientGrpc } from '@nestjs/microservices'; -import { - PipelineServicesNames, - PipelinesServiceInterface, -} from '@dadosfera/protospack'; -import { lastValueFrom } from 'rxjs'; - -import { IIdRequest } from './interfaces'; - -import { DadosferaLogger } from '@dadosfera/dadosfera-logs'; -import { PipelinesClientConfiguration } from './pipelines-client'; - -export class PipelinesClientService implements OnModuleInit { - private pipelineService: PipelinesServiceInterface; - logger: DadosferaLogger; - - constructor( - @Inject(DadosferaLogger) - dadosferaLogger: DadosferaLogger, - @Inject(PipelinesClientConfiguration.name) - private readonly grpcClient: ClientGrpc, - ) { - this.logger = dadosferaLogger.logger; - } - - onModuleInit() { - this.pipelineService = - this.grpcClient.getService( - PipelineServicesNames.PipelineService, - ); - } - - async getPipelineStatus(data) { - this.logger.info('PipelinesClientService - GetPipelineStatus'); - - const statusPipelineResponse = await lastValueFrom( - this.pipelineService.getPipelineStatus(data), - ) - .then((res) => { - const statusArray = - res.status?.sort((a, b) => { - if (a.id < b.id) { - return 1; - } else { - return -1; - } - }) || []; - return { status: statusArray }; - }) - .catch((err) => { - this.logger.error(err.message); - throw new Error(err); - }); - this.logger.info('Done'); - - return statusPipelineResponse; - } - - async runPipeline({ id, info }: IIdRequest) { - this.logger.info('PipelinesClientService - RunPipeline'); - const statusPipelineResponse = await lastValueFrom( - this.pipelineService.triggerPipeline({ id, info }), - ).catch((err) => { - this.logger.error(err.message); - throw new Error(err); - }); - - if (statusPipelineResponse.status == false) { - throw new ConflictException( - 'This pipeline is not ready yet to execute, Try again later!', - ); - } - - this.logger.info('Done'); - return statusPipelineResponse; - } -} diff --git a/src/modules/pipelines/interfaces.d.ts b/src/modules/pipelines/interfaces.d.ts deleted file mode 100644 index 9a9dbc5..0000000 --- a/src/modules/pipelines/interfaces.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Info } from '@dadosfera/protospack/dist/lib/interfaces'; - -export interface ICreatePipelineDto { - input: IdRequest; - transformations: IdRequest[]; - output: IdRequest; - tags: string[]; - name: string; - description: string; - info: Info; -} - -export interface IdRequest { - id: string; -} - -export interface IIdRequest { - id: string; - info: Info; -} - -export interface IUpdatePipelineRequest { - input: IdRequest; - transformations: IdRequest[]; - output: IdRequest; - tags: string[]; - name: string; - description: string; - id: string; - info: Info; -} - -export interface IGetPipelineLogsRequest { - id: string; - details: string; -} diff --git a/src/modules/pipelines/pipelines-client.ts b/src/modules/pipelines/pipelines-client.ts deleted file mode 100644 index 2dcf630..0000000 --- a/src/modules/pipelines/pipelines-client.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { - ClientsProviderAsyncOptions, - GrpcOptions, - Transport, -} from '@nestjs/microservices'; -import { PipelinePackages, PipelineProtoFilePath } from '@dadosfera/protospack'; -import { credentials } from '@grpc/grpc-js'; - -const isLocalConnection = - process.env.PIFACTORY_URL.startsWith('pi-factory:') || - process.env.PIFACTORY_URL.includes('0.0.0.0'); - -export class PipelinesClientConfiguration { - public name = 'PipelinesClientConfiguration'; - private config: GrpcOptions = { - transport: Transport.GRPC, - options: { - url: process.env.PIFACTORY_URL, - package: PipelinePackages, - credentials: isLocalConnection ? undefined : credentials.createSsl(), - protoPath: PipelineProtoFilePath, - loader: { - keepCase: true, - enums: String, - defaults: false, - }, - }, - }; - providerOptions: ClientsProviderAsyncOptions = { - name: this.name, - ...this.config, - }; -} diff --git a/src/modules/pipelines/pipelines.controller.ts b/src/modules/pipelines/pipelines.controller.ts deleted file mode 100644 index 6054ff6..0000000 --- a/src/modules/pipelines/pipelines.controller.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { Body, Controller, Get, Inject, Param, Post } from '@nestjs/common'; -import { ApiOperation, ApiTags } from '@nestjs/swagger'; -import { - AuthenticateCondition, - Authenticated, - RequireSomePermission, -} from 'src/decorators/authentication.decorator'; -import { PERMISSIONS_GROUPS } from '../../authentication/permissions.enum'; -import { PipelinesService } from './pipelines.service'; -import { DadosferaLogger } from '@dadosfera/dadosfera-logs'; -import { ApiInternalOnlyController } from 'src/decorators/swagger.decorator'; - -@ApiInternalOnlyController() -@ApiTags('Pipelines') -@Controller('pipelines') -@Authenticated() -export class PipelinesController { - logger: DadosferaLogger; - constructor( - @Inject(DadosferaLogger) - dadosferaLogger: DadosferaLogger, - private pipelineService: PipelinesService, - ) { - this.logger = dadosferaLogger.logger; - } - - @Post('start/:id') - @RequireSomePermission(PERMISSIONS_GROUPS.PIPELINE.permissions.CREATE) - @ApiOperation({ - deprecated: true, - description: - 'This method is deprecated. Please use route /pipelinesV2/start/:id instead', - }) - async activate(@Param('id') id: string, @Body() body) { - const { info } = body; - - this.logger.info( - process.env.DEV_URL + `/pipeline/start/${id} - ON START PIPELINE ROUTE`, - { - user: body.info.user_id, - customer: body.info.customer, - }, - ); - - const response = await this.pipelineService.runPipeline({ id, info }); - - return response; - } - - @Get(':id/status') - @ApiOperation({ - deprecated: true, - description: - 'This method is deprecated. Please use route /pipelinesV2/:id/status instead', - }) - @RequireSomePermission(PERMISSIONS_GROUPS.IMPORT_FILES.permissions.VIEW, PERMISSIONS_GROUPS.PIPELINE.permissions.GET) - async getPipelineStatus(@Body() body, @Param('id') id: string) { - body.id = id; - - this.logger.info( - process.env.DEV_URL + `/pipeline/${id} - ON GET PIPELINE STATUS ROUTE`, - { - user: body.info.user_id, - customer: body.info.customer, - }, - ); - - const response = await this.pipelineService.getPipelineStatus(body); - - return response; - } -} diff --git a/src/modules/pipelines/pipelines.module.ts b/src/modules/pipelines/pipelines.module.ts deleted file mode 100644 index 192dcab..0000000 --- a/src/modules/pipelines/pipelines.module.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Module } from '@nestjs/common'; -import { ClientsModule } from '@nestjs/microservices'; -import { DadosferaLogger } from '@dadosfera/dadosfera-logs'; - -import { PipelinesController } from './pipelines.controller'; -import { PipelinesService } from './pipelines.service'; - -import { PipelinesClientConfiguration } from './pipelines-client'; -import { PipelinesClientService } from './client.service'; - -const client = new PipelinesClientConfiguration(); - -@Module({ - imports: [ClientsModule.register([client.providerOptions])], - controllers: [PipelinesController], - providers: [PipelinesService, PipelinesClientService, DadosferaLogger], - exports: [PipelinesService], -}) -export class PipelinesModule {} diff --git a/src/modules/pipelines/pipelines.service.ts b/src/modules/pipelines/pipelines.service.ts deleted file mode 100644 index afc8103..0000000 --- a/src/modules/pipelines/pipelines.service.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; -import { PipelinesClientService } from './client.service'; -import { IIdRequest } from './interfaces'; -import { objectCamelToSnake } from 'src/utils/CaseConverter'; - -@Injectable() -export class PipelinesService { - constructor(private pipelineClient: PipelinesClientService) {} - - async getPipelineStatus(data: IIdRequest) { - try { - const pipelineStatusResponse = - await this.pipelineClient.getPipelineStatus(data); - - return objectCamelToSnake(pipelineStatusResponse); - } catch (err) { - throw new HttpException(err.message, HttpStatus.NOT_FOUND); - } - } - - async runPipeline({ id, info }: IIdRequest) { - try { - const triggerPipelineResponse = await this.pipelineClient.runPipeline({ - id, - info, - }); - - return objectCamelToSnake(triggerPipelineResponse); - } catch (err) { - throw new HttpException(err.message, HttpStatus.NOT_FOUND); - } - } -} diff --git a/src/modules/pipelinesV2/interfaces.ts b/src/modules/pipelinesV2/interfaces.ts index 252b94c..635ae80 100644 --- a/src/modules/pipelinesV2/interfaces.ts +++ b/src/modules/pipelinesV2/interfaces.ts @@ -1,5 +1,4 @@ import { ApiProperty, ApiPropertyOptional, OmitType } from '@nestjs/swagger'; -import { Info } from '@dadosfera/protospack/dist/lib/interfaces'; export class PipelineInputsDTO { @ApiProperty() @@ -62,6 +61,12 @@ export interface IIdRequest { info: Info; } +export interface Info { + user_id: string; + customer_id: string; + customer: string; +} + export interface IUpdatePipelineRequest { input: IdRequest; transformations: IdRequest[]; diff --git a/src/modules/pipelinesV2/pipelines.controller.ts b/src/modules/pipelinesV2/pipelines.controller.ts index e90af52..70fab15 100644 --- a/src/modules/pipelinesV2/pipelines.controller.ts +++ b/src/modules/pipelinesV2/pipelines.controller.ts @@ -15,7 +15,6 @@ import { HttpException, BadRequestException, UseGuards, - Res, } from '@nestjs/common'; import { ApiCreatedResponse, @@ -35,7 +34,6 @@ import { Messages } from '@dadosfera/protospack-v2/dist/lib/PipelineV2'; import { RequestUser, User } from 'src/decorators/user.decorator'; import { PackTheMetadata } from 'src/utils/PackTheMetadata'; -import { PipelinesService as OldPipelineService } from 'src/modules/pipelines/pipelines.service'; import { ICompleteUploadCSVFile, ICreatePipelineCSVFile, @@ -64,9 +62,7 @@ export class PipelinesController { constructor( @Inject(DadosferaLogger) dadosferaLogger: DadosferaLogger, - private pipelinesClientService: PipelinesService, - private oldPipelinesService: OldPipelineService, ) { this.logger = dadosferaLogger.logger; } @@ -202,7 +198,7 @@ export class PipelinesController { customer: body.info.customer, }); - const response = await this.oldPipelinesService.getPipelineStatus(body); + const response = await this.pipelinesClientService.getPipelineStatus(body); return response; } @@ -513,7 +509,7 @@ export class PipelinesController { }, ); - const response = await this.oldPipelinesService.runPipeline({ id, info }); + const response = await this.pipelinesClientService.runPipeline({ id, info }); return response; } diff --git a/src/modules/pipelinesV2/pipelines.module.ts b/src/modules/pipelinesV2/pipelines.module.ts index 24562c9..b4f24af 100644 --- a/src/modules/pipelinesV2/pipelines.module.ts +++ b/src/modules/pipelinesV2/pipelines.module.ts @@ -7,7 +7,6 @@ import { PipelinesService } from './pipelines.service'; import { PipelinesClientConfiguration } from './pipelines-client'; -import { PipelinesModule as OldPipelineModule } from 'src/modules/pipelines/pipelines.module'; import { ConnectorModule } from '../connector/connector.module'; import { InputsModule } from '../inputs/inputs.module'; import { TransformationsModule } from '../transformations/transformations.module'; @@ -21,7 +20,6 @@ const client = new PipelinesClientConfiguration(); @Module({ imports: [ ClientsModule.register([client.providerOptions]), - OldPipelineModule, ConnectorModule, InputsModule, TransformationsModule, diff --git a/src/modules/pipelinesV2/pipelines.service.ts b/src/modules/pipelinesV2/pipelines.service.ts index 53d7711..2a8db84 100644 --- a/src/modules/pipelinesV2/pipelines.service.ts +++ b/src/modules/pipelinesV2/pipelines.service.ts @@ -1,6 +1,7 @@ /* eslint-disable no-async-promise-executor */ import { BadRequestException, + ConflictException, HttpException, HttpStatus, Inject, @@ -17,7 +18,7 @@ import { lastValueFrom } from 'rxjs'; import { DadosferaLogger } from '@dadosfera/dadosfera-logs'; import { PipelinesClientConfiguration } from './pipelines-client'; -import { ICreatePipelineV2Req, UpdatePlatformInputRequest, UpdateTableDTO } from './interfaces'; +import { ICreatePipelineV2Req, IIdRequest, UpdatePlatformInputRequest, UpdateTableDTO } from './interfaces'; import { PipelineV2CreateRequest } from '@dadosfera/protospack-v2/dist/lib/PipelineV2/interfaces/messages'; import { Metadata } from '@grpc/grpc-js'; import { ConnectorClientService } from '../connector/client.service'; @@ -632,4 +633,49 @@ export class PipelinesService implements OnModuleInit { return assets; } + async getPipelineStatus(data) { + this.logger.info('PipelinesClientService - GetPipelineStatus'); + + const statusPipelineResponse = await lastValueFrom( + this.pipelineReadService.PipelineV2GetPipelineV2Status(data), + ) + .then((res) => { + const statusArray = + res.status?.sort((a, b) => { + if (a.id < b.id) { + return 1; + } else { + return -1; + } + }) || []; + return { status: statusArray }; + }) + .catch((err) => { + this.logger.error(err.message); + throw new Error(err); + }); + this.logger.info('Done'); + + return statusPipelineResponse; + } + + async runPipeline({ id, info }: IIdRequest) { + this.logger.info('PipelinesClientService - RunPipeline'); + const statusPipelineResponse = await lastValueFrom( + this.pipelineWriteService.PipelineV2TriggerPipelineV2({ id, info }), + ).catch((err) => { + this.logger.error(err.message); + throw new Error(err); + }); + + if (statusPipelineResponse.status == false) { + throw new ConflictException( + 'This pipeline is not ready yet to execute, Try again later!', + ); + } + + this.logger.info('Done'); + return statusPipelineResponse; + } + } diff --git a/src/modules/transformations/interfaces.d.ts b/src/modules/transformations/interfaces.d.ts index 0e7ab3c..20ba822 100644 --- a/src/modules/transformations/interfaces.d.ts +++ b/src/modules/transformations/interfaces.d.ts @@ -1,5 +1,8 @@ -import { Info } from '@dadosfera/protospack/dist/lib/interfaces'; - +export interface Info { + user_id: string; + customer_id: string; + customer: string; +} export interface ICreateTransformationsRequest { transformations: Transformation[]; info: Info;