2114 extensibility manage serverless execution from built code (#17317)

Summary

- Serverless functions are now built when created/updated instead of at
execution time
  - Added builtHandlerPath field to track pre-built function artifacts
- Renamed base-typescript-project to seed-project with pre-built ESM
output included
- Renamed file folder enums for consistency (Functions → BuiltFunction,
SourceCode → Source)
  - supports backwards compatibility with existing serverless functions

Tested with all combinations
- storage : local driver and S3 driver
- serverless : local driver and lambda driver
This commit is contained in:
martmull
2026-01-22 12:56:44 +01:00
committed by GitHub
parent 9ee2cd0fe3
commit f92c8a98a4
34 changed files with 348 additions and 193 deletions
@@ -1032,6 +1032,7 @@ export type CreateRowLevelPermissionPredicateInput = {
};
export type CreateServerlessFunctionInput = {
builtHandlerPath?: InputMaybe<Scalars['String']>;
code?: InputMaybe<Scalars['JSON']>;
description?: InputMaybe<Scalars['String']>;
handlerName?: InputMaybe<Scalars['String']>;
@@ -1561,16 +1562,16 @@ export type File = {
export enum FileFolder {
AgentChat = 'AgentChat',
Assets = 'Assets',
Asset = 'Asset',
Attachment = 'Attachment',
BuiltFrontComponent = 'BuiltFrontComponent',
BuiltFunction = 'BuiltFunction',
File = 'File',
FrontComponents = 'FrontComponents',
Functions = 'Functions',
PersonPicture = 'PersonPicture',
ProfilePicture = 'ProfilePicture',
ServerlessFunction = 'ServerlessFunction',
ServerlessFunctionToDelete = 'ServerlessFunctionToDelete',
SourceCode = 'SourceCode',
Source = 'Source',
WorkspaceLogo = 'WorkspaceLogo'
}
@@ -4142,6 +4143,7 @@ export type Sentry = {
export type ServerlessFunction = {
__typename?: 'ServerlessFunction';
applicationId?: Maybe<Scalars['UUID']>;
builtHandlerPath: Scalars['String'];
createdAt: Scalars['DateTime'];
cronTriggers?: Maybe<Array<CronTrigger>>;
databaseEventTriggers?: Maybe<Array<DatabaseEventTrigger>>;