62fe1d0e88
6653 serverless functions store and use environment variables in serverless function scripts ( #7390 )
...


2024-10-03 13:56:17 +02:00
523df5398a
Optimize metadata queries ( #7013 )
...
In this PR:
1. Refactor guards to avoid duplicated queries: WorkspaceAuthGuard and
UserAuthGuard only check for existence of workspace and user in the
request without querying the database
2024-09-13 19:42:22 +02:00
3190f4a87b
6658 workflows add a first twenty piece email sender ( #6965 )
2024-09-12 11:00:25 +02:00
7e03419c16
Serverless function improvements ( #6769 )
...
- add layer for lambda execution
- add layer for local execution
- add package resolve for the monaco editor
- add route to get installed package for serverless functions
- add layer versioning
2024-09-02 15:25:20 +02:00
cd06ae20e8
chore(*): remove unused code ( #6781 )
...
The code removed in the PR was flagged as unused by the JetBrains
inspector.
I did a QA on the dev environment but other checks are highly
recommended.
There is one commit by scope to make the review easier.
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2024-08-29 18:16:50 +02:00
9f69383aa2
Add function execution throttler ( #6742 )
...
Add throttler service to limit the number of function execution
2024-08-27 18:56:47 +02:00
873a4c1bd1
Fix serverless save when name empty ( #6720 )
...
- fix serverless function error on save when name empty
- remove useless unique constraint on serverless function names
2024-08-23 17:34:31 +02:00
6f9aa1e870
6654 serverless functions add a deploy button disable deploy when autosave ( #6715 )
...
- improvements on serverless function behavior (autosave performances,
deploy on execution only)
- add versioning to serverless functions
- add a publish endpoint to create a new version of a serverless
function
- add deploy and reset to lastVersion button in the settings section:
<img width="736" alt="image"
src="https://github.com/user-attachments/assets/2001f8d2-07a4-4f79-84dd-ec74b6f301d3 ">
2024-08-23 12:06:03 +02:00
4157a67bf8
Fix permissions for serverless functions ( #6555 )
...
Fixes #6525
(@martmull fyi it was not related to AWS but linked to the fact that we
recently enforced passing a token to access files)
2024-08-06 15:31:22 +02:00
6b4c79ff0d
Add workflow runner ( #6458 )
...
- add workflow runner module
- add an endpoint to trigger a workflow via api
- improve error handling for serverless functions
## Testing
- create 2 serverless functions
- create a workflow
- create this workflow Version
```
{
"type": "MANUAL",
"input": {"b": "bb"},
"nextAction": {
"name": "step_1",
"displayName": "Code",
"type": "CODE",
"valid": true,
"settings": {
"serverlessFunctionId": "Serverless function 1 Id",
"errorHandlingOptions": {
"retryOnFailure": {
"value": false
},
"continueOnFailure": {
"value": false
}
}
},
"nextAction": {
"name": "step_1",
"displayName": "Code",
"type": "CODE",
"valid": true,
"settings": {
"serverlessFunctionId": "Serverless function 1 Id",
"errorHandlingOptions": {
"retryOnFailure": {
"value": false
},
"continueOnFailure": {
"value": false
}
}
},
"nextAction": {
"name": "step_1",
"displayName": "Code",
"type": "CODE",
"valid": true,
"settings": {
"serverlessFunctionId": "Serverless function 2 Id",
"errorHandlingOptions": {
"retryOnFailure": {
"value": false
},
"continueOnFailure": {
"value": false
}
}
}
}
}
}
}
`
``
- call
```
mutation Trigger {
triggerWorkflow(workflowVersionId: "WORKFLOW_VERSION_ID") {
result
}
}
```
- try when errors are injected in serverless function
2024-07-31 12:48:33 +02:00
b85ae7e1ac
Fix googleApisSetRequestExtraParams ( #6455 )
2024-07-30 16:08:59 +02:00
fb0fd99a38
Fix error handling in serverless service ( #6442 )
...
- narrowing error handling in aws sdk usage
- updating dto to authorize null descriptions
2024-07-29 18:51:57 +02:00
00fea17920
Serverless function UI ( #6388 )
...
https://www.figma.com/design/xt8O9mFeLl46C5InWwoMrN/Twenty?node-id=36235-120877
Did not do the file manager part. A Function is defined using one unique
file at the moment
Feature protected by featureFlag `IS_FUNCTION_SETTINGS_ENABLED`
## Demo
https://github.com/user-attachments/assets/0acb8291-47b4-4521-a6fa-a88b9198609b
2024-07-29 13:03:09 +02:00
47ddc7be83
6181 workflows create a custom code executor ( #6235 )
...
Closes #6181
## Testing
- download Altair graphql dev tool https://altairgraphql.dev/#download
- create a file locally `test.ts` containing:
```
export const handler = async (event: object, context: object) => {
return { test: 'toto', data: event['data'] };
}
```
- play those requests in Altair:
mutation UpsertFunction($file: Upload!) {
upsertFunction(name: "toto", file: $file)
}
mutation ExecFunction {
executeFunction(name:"toto", payload: {data: "titi"})
}
- it will run the local driver, add those env variable to test with
lambda driver
```
CUSTOM_CODE_ENGINE_DRIVER_TYPE=lambda
LAMBDA_REGION=eu-west-2
LAMBDA_ROLE=<ASK_ME>
```
2024-07-17 17:53:01 +02:00