Serverless function timeout concerns (#9689)

closes https://github.com/twentyhq/core-team-issues/issues/242
- unify timeout behavior between local and lambda
- add timeout in serverless entity
- set timeout default to 300s (5min)
This commit is contained in:
martmull
2025-01-17 14:49:02 +01:00
committed by GitHub
parent 679429447d
commit f8f9bb2b78
14 changed files with 100 additions and 15 deletions

View File

@ -1,6 +1,13 @@
import { Field, InputType } from '@nestjs/graphql';
import { IsNotEmpty, IsOptional, IsString } from 'class-validator';
import {
IsNotEmpty,
IsNumber,
IsOptional,
IsString,
Max,
Min,
} from 'class-validator';
@InputType()
export class CreateServerlessFunctionInput {
@ -13,4 +20,11 @@ export class CreateServerlessFunctionInput {
@IsOptional()
@Field({ nullable: true })
description?: string;
@IsNumber()
@Field({ nullable: true })
@Min(1)
@Max(900)
@IsOptional()
timeoutSeconds?: number;
}

View File

@ -15,6 +15,7 @@ import {
IsDateString,
IsEnum,
IsNotEmpty,
IsNumber,
IsString,
IsUUID,
} from 'class-validator';
@ -58,6 +59,10 @@ export class ServerlessFunctionDTO {
@Field()
runtime: string;
@IsNumber()
@Field()
timeoutSeconds: number;
@IsString()
@Field({ nullable: true })
latestVersion: string;

View File

@ -1,6 +1,15 @@
import { Field, InputType } from '@nestjs/graphql';
import { IsNotEmpty, IsObject, IsString, IsUUID } from 'class-validator';
import {
IsNotEmpty,
IsNumber,
IsObject,
IsOptional,
IsString,
IsUUID,
Max,
Min,
} from 'class-validator';
import graphqlTypeJson from 'graphql-type-json';
import { UUIDScalarType } from 'src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars';
@ -20,8 +29,16 @@ export class UpdateServerlessFunctionInput {
@IsString()
@Field({ nullable: true })
@IsOptional()
description?: string;
@IsNumber()
@Field({ nullable: true })
@Min(1)
@Max(900)
@IsOptional()
timeoutSeconds?: number;
@Field(() => graphqlTypeJson)
@IsObject()
code: JSON;