Commit Graph
8202 Commits
Author SHA1 Message Date
WeikoandGitHub 329af2b670 Add route trigger to twenty apps (#14864) 2025-10-03 12:11:18 +02:00
Paul RastoinandGitHub a6ffd4707a Dev seed ycombinator workspace is on v1 (#14868)
Tested v1:
- object CRUD
- FIELD CRUD
- VIEW CRUD
- VIEW FIELD CRUD
2025-10-03 10:01:00 +00:00
d0ff2d31a2 i18n - translations (#14866)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-10-03 10:35:40 +02:00
Raphaël BosiandGitHub d10ab5f67c Chart editor - Part 1 (#14820)
This PR is the first part of the creation of the Chart editor.


https://github.com/user-attachments/assets/8b0af8ea-be41-4506-84cb-e40f5521cbf0

Done:
- Bar chart settings (except filters)
- Line chart settings (except filters)

In progress:
- Pie chart settings
- Number chart settings
- Gauge chart settings

Left to do:
- Loosen the backend validation to allow the user to save a partial
configuration, validate the graph configuration in the frontend and
display a error friendly message in the graph if the config is not
completed yet
- Implement the filter edition
- Finish the other graph types settings
2025-10-03 10:25:45 +02:00
fc8b4f813c i18n - translations (#14863)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-10-03 00:32:40 +02:00
WeikoandGitHub 0b60aa4249 Add custom routes to migration v2 (#14846)
## Context
Add routes to migration V2
- Resolvers
- Service v2
- Builder
- Validator
- Action runner

Next PR: Add to twenty-cli to sync routes with serverless
2025-10-03 00:20:21 +02:00
Charles BochetandGitHub dcfae3821c Fix race condition user and views (#14861) 2025-10-02 23:46:47 +02:00
Thomas des FrancsandGitHub 14f2892b68 1.7 changelog (#14853) 2025-10-02 22:53:28 +02:00
Charles BochetandGitHub 5dcd0607b3 Fix performances on view loading (#14859)
## Context

We are experiencing bad performance on Twenty. One of the root cause
hypothesis is that computing `currentUser.currentWorkspace.views` is CPU
consuming. Without views, the GetCurrentUser response is ~1000 lines.
With its ~10000 lines.

As graphql is going through all fields recursively this can be quite
heavy on CPU. We had a similar issues on ObjectMetadataItems 2 years ago
and came with storing the response in redis.

Note: I thought there was also a cache in RAM but this is not the case,
so to invalidate the cache we can just empty redis.

## How

- Extract getting all views from GetCurrentUser and update frontend to
perform both queries
- Add views to cached graphql operations
- invalidate the cache manually on view or related core entities update
/ create / delete / destroy

## Tests

I have tested a lot on v1
2025-10-02 22:53:03 +02:00
martmullandGitHub 87256e82f5 Improve readme (#14858) 2025-10-02 22:50:37 +02:00
d4160bf064 feat(redis): add support for dedicated queue client configuration (#14840)
Fix https://github.com/twentyhq/core-team-issues/issues/452
Fix https://github.com/twentyhq/core-team-issues/issues/923

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
2025-10-02 19:14:12 +02:00
d2fad6754d i18n - translations (#14855)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-10-02 18:48:05 +02:00
Félix MalfaitandGitHub d4914aa130 Fix workspace logo, cookie security, and improve workspace impersonation (#14838)
3 small fixes:
- Fix workspace logo
- Improve cookie security
- Improve workspace impersonation
2025-10-02 18:36:52 +02:00
EtienneandGitHub 388e49a8cf fix impersonation guard on admin panel user lookup (#14845)
Mistakenly remove ImpersonateGuard on userLookupAdminPanel resolver ([cf
here](https://github.com/twentyhq/twenty/pull/14360/files#diff-01404fa6bc9b1350a87050b747889b299dc2deda50a62fe9b99327be3250bf96R49))
+ Add AdminPanelGuard

Re-create the previous ImpersonateGuard and add it to the resolver +
Remove the AdminPanelGuard
2025-10-02 16:35:58 +00:00
218c9d82f2 i18n - translations (#14850)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-10-02 18:21:23 +02:00
Paul RastoinandGitHub 170f6d27c5 Extract field metadata build out of object metadata build (#14763)
# Introduction

Extracting the legacy fields build and dispatch out of the object one to
follow the generic flat entity build, also update caches entries for
object

## Main tasks
- flat field map cache
- flat field builder
- refactored the dispatch matrix to return flat entity maps instead of
flat entity arrays
- orchestrator aggregator
- removing legacy code
- making universal identifier aka standardId of standard field for
custom object deterministically dynamic
- perfs debug logs for v2

## TODO
- [x] Refactor the generic entity builder to be dependency flat maps in
order to main foreign keys list in flat parent
- [x] Refactor the flat object metadata to contain the array of related
fields and avoid costy find object fields
- [ ] Improve the create field handler to handle multiple field at once
- [ ] Refactor the dispatch to embbed the comparison
- [ ] Improve perf by extracting from elements out of existing
- [ ] Fix the labelIdentifierId validators on object before field
creation ( integ tests are in failing mode )

## Debug logs snippet

```ts
[EntityBuilder fieldMetadata] matrix computation: 0.027ms
[EntityBuilder fieldMetadata] creation validation: 0.001ms
[EntityBuilder fieldMetadata] deletion validation: 0.293ms
[EntityBuilder fieldMetadata] update validation: 0.006ms
[EntityBuilder fieldMetadata] entity processing: 0.363ms
[EntityBuilder fieldMetadata] validateAndBuild: 0.455ms
[EntityBuilder index] matrix computation: 0.005ms
[EntityBuilder index] creation validation: 0.001ms
[EntityBuilder index] deletion validation: 0.146ms
[EntityBuilder index] update validation: 0.004ms
[EntityBuilder index] entity processing: 0.199ms
[EntityBuilder index] validateAndBuild: 0.228ms
[Runner] Initial cache retrieval: 0.549ms
[BaseWorkspaceMigrationRunnerActionHandlerService] delete_index executeForWorkspaceSchema: 11.665ms
[BaseWorkspaceMigrationRunnerActionHandlerService] delete_index executeForMetadata: 12.864ms
[BaseWorkspaceMigrationRunnerActionHandlerService] delete_field executeForWorkspaceSchema: 1.476ms
[BaseWorkspaceMigrationRunnerActionHandlerService] delete_field executeForMetadata: 6.816ms
[BaseWorkspaceMigrationRunnerActionHandlerService] delete_field executeForWorkspaceSchema: 0.062ms
[BaseWorkspaceMigrationRunnerActionHandlerService] delete_field executeForMetadata: 0.889ms
[Runner] Transaction execution: 23.434ms
[Runner] Cache invalidation: 316.662ms
[Runner] Total execution: 340.767ms
```
As you can see cache invalidation is way to long, we could replace the
cache by the optimistic in the end
2025-10-02 16:07:34 +00:00
Raphaël BosiandGitHub d4b83df3f5 Fix menu item overflowing hiding icon buttons (#14847)
FIxes https://github.com/twentyhq/twenty/issues/14764

<img width="3944" height="886" alt="CleanShot 2025-10-02 at 16 01 43@2x"
src="https://github.com/user-attachments/assets/9d6cbb73-903d-4fd1-9456-395aa9745c45"
/>

<img width="525" height="1266" alt="CleanShot 2025-10-02 at 16 06 34@2x"
src="https://github.com/user-attachments/assets/cc6d6e89-48f7-48da-abff-b8458c2e7ae3"
/>
2025-10-02 16:35:28 +02:00
Félix MalfaitandGitHub 4a4777ef78 Enforce 2FA for server-level impersonation (#14842)
Better for security
2025-10-02 16:20:36 +02:00
4d8b68cf4d Hacktoberfest 2025 Banner (#14843)
Co-authored-by: Charles Bochet <charles@twenty.com>
2025-10-02 16:17:55 +02:00
MarieandGitHub 8b2447a624 [Fix] Cannot remove any field filter (#14813)
Fixes https://github.com/twentyhq/twenty/issues/14766

To reproduce
1. create a view with a any field filter and save it. After, remove any
field filter clicking on the X on the chip. No "Update view" shows.
2. now add another regular filter to the view and save it. Now remove
any field filter clicking on the X on the chip and remove the regular
filter you just added. Now "Update view" shows, click it and refresh the
page. Any field filter still shows

There were two problems
1. UpdateViewButtonGroup is in charge of showing "Update View" button.
But is never mounted if shouldExpandViewBar is falsy.
shouldExpandViewBar was not considering
viewAnyFieldFilterDifferentFromCurrentAnyFieldFilter so even if any
field filter had changed, UpdateViewButtonGroup still wasn't going to
show "Update view" button because it wasn't mounted
2. At save time, we added anyFieldFilterValue to the mutation payload if
 ```
...(view.anyFieldFilterValue && {
      anyFieldFilterValue: view.anyFieldFilterValue,
    }),
    ```,
but in JS an empty string evaluates to falsy.
2025-10-02 14:14:51 +00:00
MarieandGitHub 98544a2479 [Fix] Handle deprecated viewFilterOperand - follow-up (#14841) v1.7.3 2025-10-02 13:16:42 +00:00
Ketan MehtaandGitHub 2f5cd0df6b fixed convertUpdateViewInputToCore for zero value (#14754)
fix #14745
2025-10-02 13:13:13 +00:00
martmullandGitHub 96aa4cd6a4 Fix typo (#14839)
as title
2025-10-02 14:25:34 +02:00
martmullandGitHub 0368d2a094 1574 extensibility twenty cli use workspace migration v2 to synchronize serverless function triggers (#14830)
twenty-cli serverless triggers follow up. Fixes:
- eventName don't support wildcard
- universalIdentifier not used to create or update trigger : update does
not work properly (does deletion then creation)
- add a base project in twenty-cli that is copied when creating a new
app
2025-10-02 14:06:56 +02:00
Antoine MoreauxandGitHub 326d2a99ed fix(integration-tests): add generateUniqString for tests (#14832) 2025-10-02 13:46:49 +02:00
MarieandGitHub aac1314f5b [Fix] Handle deprecated viewFilterOperand in workflows run & on interface (#14837)
In this PR https://github.com/twentyhq/twenty/pull/14785 we deprecated
viewFilterOperand (from camelCase to capital snakeCase values), but we
had not migrated the existing workflow steps values. Hence they cannot
be executed!

Let's fix that by dealing with both operands, new and deprecated, to
mitigate the issue. Then we will add a command to migrate the values.
v1.7.2
2025-10-02 13:08:24 +02:00
Abdul MateenandGitHub 8098391c21 Refactor Makefile for streamlined service definitions (#14757)
Streamline service definitions in the Makefile by ensuring the
`ensure-docker-network` dependency is called directly in each service
target instead of manual invocation. This change simplifies the process
of creating Docker services.

Closes #14715
2025-10-02 11:55:05 +02:00
WeikoandGitHub c2d45842a4 Add calendar view to feature lab (#14835) 2025-10-02 11:19:48 +02:00
Thomas TrompetteandGitHub 3fa12bb9fc Search record schema migration breaks following workflow steps (#14833)
If iterator loop feature flag is not enabled, `all` field in undefined
in search record schema. We need to handle that case properly.
2025-10-02 11:04:38 +02:00
EtienneandGitHub 7b16796a20 Fix server level impersonation (#14831)
Tested : 
- server level ok
- workspace level ok
- server level without canImpersonate or without allow impersonation -
fail ok
- workspace level without permission - fail ok
2025-10-02 10:46:59 +02:00
WeikoandGitHub 3f9c315d93 Add triggers to cli sync (#14828) 2025-10-02 02:08:38 +02:00
martmullandGitHub 6fdd7894a1 Add serverless function in twenty-cli (#14819)
- add serverlessFunction schema in twenty-cli
- add trigger schema in twenty-cli
- update serverless function code save and get
- sync serverless function
2025-10-01 22:11:03 +02:00
WeikoandGitHub 64dc726f50 rename application standardId to universalIdentifier (#14825)
## Context
Rename standardId in application table to universalIdentifier to align
with the rest of migration v2 guidelines
2025-10-01 20:20:20 +02:00
Charles BochetandGitHub ec317bd3d0 Fix workflow upgrade command (#14824)
While upgrading to 1.7.0, we are facing an error in the workflow version
upgrade for outdated workflow versions. Fixing the command
v1.7.1
2025-10-01 19:57:43 +02:00
9c4d9298f8 i18n - translations (#14822)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
v1.7.0
2025-10-01 18:48:18 +02:00
Abdul RahmanandGitHub 20403664e3 Feat: native model capabilities (#14787) 2025-10-01 18:37:21 +02:00
WeikoandGitHub d715533a90 Fix path retrieval for twenty apps in twenty-cli (#14818)
## Context

Now should not confuse package.json from non-twenty apps but check if
$schema correctly targets twenty manifest json
<img width="741" height="422" alt="Screenshot 2025-10-01 at 17 34 45"
src="https://github.com/user-attachments/assets/5b9e729e-8634-4eb8-a2a9-4991a63d49f0"
/>
2025-10-01 18:11:42 +02:00
GuillimandGitHub bb0d37d79f add the contextual text for multiselectavatar and selectavatar (#14807)
necessary for the new design from @bonapara in Figma here
https://www.figma.com/design/xt8O9mFeLl46C5InWwoMrN/Twenty?node-id=70184-191735&t=s5CaYKWjRp64ECkN-11

Should look like this
<img width="397" height="416" alt="Screenshot 2025-10-01 at 11 25 00"
src="https://github.com/user-attachments/assets/fe585d34-f9b9-438a-91e2-8177722cc922"
/>

As you can see in the storybook, it looks like this :
<img width="681" height="414" alt="Screenshot 2025-10-01 at 11 25 25"
src="https://github.com/user-attachments/assets/8fa1b99c-9eb0-4f1e-a0a2-4ad136f977cc"
/>


Tech:
I took the same wording as "contextualText" as defined in the other
select component but decided to stay string only since I did not want to
overcomplicate the API for now. In that, it slightly differs from the
other components designed by @bosiraphael a week ago I think
2025-10-01 16:42:48 +02:00
WeikoandGitHub 1b985ed5b1 Fix calendar padding and set calendar top bar fixed (#14815) 2025-10-01 16:31:41 +02:00
Thomas TrompetteandGitHub e945c83bbe Add workflow iterator to lab (#14814)
As title
2025-10-01 15:31:40 +02:00
ae4a93c993 feat: add create or update workflow trigger (#14708)
### Description

This PR focuses on
https://github.com/twentyhq/core-team-issues/issues/1476

- introduces the handling of upserted events in the workflow trigger
system


## Visual Appearance
<img width="1792" height="1039" alt="Screenshot 2025-09-21 at 11 40
28 PM"
src="https://github.com/user-attachments/assets/d926b566-f7d3-412b-b1ab-ed2064425f3d"
/>

<img width="501" height="1025" alt="Screenshot 2025-09-21 at 11 40
39 PM"
src="https://github.com/user-attachments/assets/13c3031a-0762-4c80-8df1-fa74ca70a540"
/>


### Changes
- Added `UPSERTED` action to the `DatabaseEventAction` enum.
- Updated the `WorkflowEditTriggerDatabaseEventForm` to support upserted
events.

---------

Co-authored-by: Thomas Trompette <thomas.trompette@sfr.fr>
2025-10-01 15:17:05 +02:00
Antoine MoreauxandGitHub b5e6703f35 refactor(captcha): add path-based captcha check and cleanup unused to… (#14803)
…ken requests
2025-10-01 15:15:40 +02:00
359036d9bc i18n - translations (#14812)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-10-01 15:01:05 +02:00
neo773andGitHub 62a1de221b Message Folders Redesign and Import Policy (#14714) 2025-10-01 14:48:46 +02:00
Baptiste DevessierandGitHub a68aa303aa Hide iteration switcher for steps following iterators (#14810)
## Before


https://github.com/user-attachments/assets/a8eca1aa-b2b6-4fdb-8848-65c8235a330c

## After


https://github.com/user-attachments/assets/84b7e969-423b-4f0e-8f53-524bfb11e2ca
2025-10-01 14:44:11 +02:00
Thomas TrompetteandGitHub f302b7c74e Put checkbox and tag into left content (#14811)
As title
2025-10-01 12:20:38 +00:00
Baptiste DevessierandGitHub b3153535a6 Fix step output for iterators (#14796)
It also prevents the app from crashing when opening the output of the
trigger node.

## Before

<img width="3738" height="2442" alt="CleanShot 2025-09-30 at 19 44
39@2x"
src="https://github.com/user-attachments/assets/39fa81b1-2c25-402e-9030-770054870f70"
/>

## After


https://github.com/user-attachments/assets/b7585690-dd3b-4875-9c3e-18b60b3acc3d
2025-10-01 14:15:07 +02:00
martmullandGitHub bc37a3a9bb Remove deprecated check (#14809)
as title
Thanks @Devessier for the report
2025-10-01 10:24:37 +00:00
346da2b2f2 i18n - translations (#14808)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2025-10-01 11:33:53 +02:00
Abdul RahmanandGitHub 3e61f91635 Structured agent chat messages follow up (#14797)
This PR addresses code review feedback from
[#14749](https://github.com/twentyhq/twenty/pull/14749)
2025-10-01 11:24:58 +02:00