Commit Graph

7478 Commits

Author SHA1 Message Date
Charles Bochet 4772523edd Fix insert query builder not handling empty array (#13656) 2025-08-05 20:29:48 +02:00
Lucas Bordeau a3aabc6855 Fixed SettingsObjectFieldItemTableRow grid sizes (#13653)
This PR fixes a wrong change that happened during a refactor of some
tables in the settings permission area.

**Before**

<img width="662" height="657" alt="image"
src="https://github.com/user-attachments/assets/a3cf5ce1-4aaa-410c-ac5f-d085b590554d"
/>


**After** 

<img width="661" height="660" alt="image"
src="https://github.com/user-attachments/assets/5eefb129-5fd6-497b-ba2a-5efc0851172e"
/>
2025-08-05 17:03:36 +02:00
martmull 0bef766f63 Display edge button when whole edge is hovered (#13651)
As title

## Before
Need to aim center of edge


https://github.com/user-attachments/assets/5f014f15-af7b-4884-902d-3b7001782d2d


## After
Whole edge triggers hover behavior


https://github.com/user-attachments/assets/bddaa6b2-7d62-428a-bee5-c237db16a403
2025-08-05 14:53:08 +00:00
github-actions[bot] c60da685f7 i18n - translations (#13648)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2025-08-05 16:21:51 +02:00
Charles Bochet 345e98e557 Re add graphql middlware 2025-08-05 16:16:16 +02:00
martmull 44f5600300 Split workspace service (#13642)
Splits workflow-version-step workspace-service into multiple once
2025-08-05 14:10:11 +00:00
Charles Bochet d62a1e0b5a Re add graphql middlware (#13644) 2025-08-05 15:57:37 +02:00
Marie 46e43a62c4 [permissions] Handle fieldPermissions configuration for 1N relations (#13630)
When upserting a fieldPermission on a 1 <-> N relation field, we should
upsert the same fieldPermission on the relationTargetFieldMetadata to
avoid inconsistencies.
2025-08-05 15:48:39 +02:00
github-actions[bot] 287edd44ad i18n - translations (#13645)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-08-05 15:47:31 +02:00
Félix Malfait 1de3338551 Improve code editor style and enable full screen code editor (#13618)
<img width="1501" height="757" alt="Screenshot 2025-08-05 at 09 30 44"
src="https://github.com/user-attachments/assets/535e6dfb-a1b5-4812-b5a9-c19ab7bb7240"
/>
<img width="486" height="717" alt="Screenshot 2025-08-05 at 09 30 36"
src="https://github.com/user-attachments/assets/189407b3-fdec-4795-b115-7e00a11e6bc5"
/>
2025-08-05 15:38:54 +02:00
martmull 4ccd9e21e7 Fix workflow run command (#13641)
as title
2025-08-05 15:36:44 +02:00
Charles Bochet 90151425ac Remove graphql-middleware (#13638)
Graphql middleware is not used anymore in the project directly. However
it's a peer dependency of other graphql packages. This leads to a
conflict in our docker image
2025-08-05 15:11:30 +02:00
github-actions[bot] fe3cce8a1d i18n - translations (#13636)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-08-05 15:06:14 +02:00
nitin 111f083a24 [api keys] fix breadcrumb not appearing on api key details (#13633) 2025-08-05 14:37:11 +02:00
Charles Bochet db00fb6a50 Add immer in package.json (#13635) 2025-08-05 14:34:20 +02:00
Etienne 010c9b6250 fix typo (#13634) 2025-08-05 14:34:10 +02:00
Charles Bochet 6da416e27d Add apiKey upgrade command to 1.3 2025-08-05 14:25:31 +02:00
github-actions[bot] f27c650bc2 i18n - translations (#13632)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-08-05 14:22:55 +02:00
Charles Bochet 16d78b450c Fix email not verified issue while login through sso (#13631)
In this PR:
- fix race condition while getting token and redirecting to workspace
domain (missing await)
- add userFriendlyMessage when user does not have password and we try to
log in using password
- refactor computePartialUserFromUserPayload to remove side effect
- add isEmailAlreadyVerified in userPayload that will set
user.isEmailVerified to true
2025-08-05 12:01:55 +00:00
github-actions[bot] dcded4ae4f i18n - translations (#13627)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-08-05 12:01:18 +02:00
Thomas Trompette 6abef38993 Handle types that are not field metadata (#13604)
Some steps that do not return field metadata types need to be handled
2025-08-05 09:54:06 +00:00
Lucas Bordeau 04ed843aaf Field permission CRUD front-end implementation (#13524)
This PR implements what's needed to edit field permissions on a role.

Field permissions that aren't useful are kept in the database to avoid
the overhead of adding cleaning logics both in front end and back end.
They just won't be taken into account if object permission doesn't allow
it.

In this PR we also handle the case were there's no object permission
override but where there are only field permission overrides, which can
happen if an object inherits from a "all object can read" but restricts
read only on some fields.

<img width="547" height="642" alt="image"
src="https://github.com/user-attachments/assets/77d81f89-4af9-42b6-97f3-fae3a6ba1eeb"
/>


<img width="590" height="912" alt="image"
src="https://github.com/user-attachments/assets/69fab8ee-7252-401a-bc6f-8a8b7c7f6bc4"
/>

Fixes https://github.com/twentyhq/core-team-issues/issues/1152

This PR lowers unit test coverage because the essential unit tests for
this PR have been written and writing more tests would not be a great
tradeoff for this feature which has already taken a lot of efforts.
2025-08-05 11:50:23 +02:00
martmull 497fc2c0b2 Fix created step position (#13621)
This PR fixes create floating step position and insert step position in
workflow run when featureFlag IS_WORKFLOW_BRANCH_ENABLED is true

## Before


https://github.com/user-attachments/assets/eecef0f5-d2b1-468d-b3c1-0755db1f8278


https://github.com/user-attachments/assets/9995c7d4-c005-4d1f-8e3b-c624d05da32d




## After



https://github.com/user-attachments/assets/c6faa1d7-0b3f-473b-bdfe-67a2e08397d8


https://github.com/user-attachments/assets/c89fed0c-2bd5-42b6-956c-c62c297e0146
2025-08-05 11:25:20 +02:00
Paul Rastoin 6af99ab1ea FlatObjectMetadataMaps and non FP style refactor (#13590)
# Introduction
- Retrieveing flat-object-metadata-maps for input transpilation, we
decided not to introduce map merge for remaining validation operation
for the moment
- Refactored the field metadata service v2 to sequentially
optimistically render on each iteration
2025-08-05 08:46:28 +00:00
nitin ca9464e19d [Admin Panel] fix invalid uuid issue on health status (#13619)
Health status queries are failing at the moment - regression was
introduced in 01f25519f6
health status ids are not uuids, we use params to fetch them on the
frontend.
But maybe @FelixMalfait and @abdulrahmancodes have more context on this
one?
2025-08-05 08:09:07 +00:00
neo773 9ceb097ab7 IMAP Fixes & Improvements (#13582)
- Removed caching of IMAP client as it was problematic and didn't really
matter because of our pipeline, also added retry logic to client.
- Some code refactoring and cleanup
- Breaking changes:
   - Removed messageChannel.syncCursor
   - Uses messageFolder.syncCursor instead
- Removed Date based sync cursor in favor of message UID which is much
more reliable and precise

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2025-08-05 09:46:28 +02:00
github-actions[bot] ca6322cae6 i18n - translations (#13617)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-08-05 09:21:57 +02:00
nitin 676cf838af [CleanUp] Post api keys and webhooks migration cleanup (#13576) 2025-08-05 12:43:09 +05:30
github-actions[bot] df9136c6c0 i18n - translations (#13616)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-08-05 08:02:14 +02:00
Abdul Rahman b2452e83ad Fix soft delete unique constraints to allow reusing unique values after deletion (#13615)
Closes [#1297](https://github.com/twentyhq/core-team-issues/issues/1297)
2025-08-05 07:57:02 +02:00
Félix Malfait ade7f8b6ae Update object-level permissions design (#13614)
<img width="569" height="448" alt="Screenshot 2025-08-05 at 07 25 15"
src="https://github.com/user-attachments/assets/3bd628ed-e79e-4850-a24c-002e6cb246e7"
/>
<img width="549" height="441" alt="Screenshot 2025-08-05 at 07 25 26"
src="https://github.com/user-attachments/assets/0941541c-d28b-4c17-98ee-1d8fb0c47f6b"
/>

I did keep the empty state + "object rule" instead of rule for clarity
2025-08-05 07:51:18 +02:00
neo773 19dbe28786 feat: email and calendar events for opportunities (#13613) 2025-08-04 21:43:09 +00:00
Biswas Rai 2a0c73d276 Add snackbar on CSV exports (#13608)
#13516 

Add the snackbar on CSV exports



https://github.com/user-attachments/assets/d8288351-66f1-4175-814e-ecf0f5b57274

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
2025-08-04 23:33:00 +02:00
Félix Malfait d3fc1cd837 Remove unused dependencies (#13611)
Cleaning up unused dependencies
2025-08-04 22:44:24 +02:00
Félix Malfait 7383b0935c Remove unused files (#13612)
Remove a few unused files
2025-08-04 22:35:36 +02:00
Félix Malfait 69f2f94f50 Upgrade Vite6 to Vite7 (#13610)
As described in title
2025-08-04 22:01:32 +02:00
alexcohfr b10e7ef642 Update docker-compose.mdx (#13597)
Changes on the self-hosting tutorial to match env variables of the
actual docker-compose file and .env.example
2025-08-04 19:07:44 +02:00
Etienne 3c485ccb37 Upsert in CreateMany - fixes (#13598)
fixes https://github.com/twentyhq/twenty/issues/13553
and https://github.com/twentyhq/core-team-issues/issues/1300
2025-08-04 19:06:40 +02:00
Marie 932910e71e Refactor isReadOnly + introduce restrictedFields (#13533)
Closes https://github.com/twentyhq/core-team-issues/issues/1276 

We now need to take fields permissions into account when determining if
a cell is editable or not.

a record field (= a cell) is read only if one of the condition is met:
- the object of the record is read-only (can be determined at table
level) by permission setting
- the field of the object is read-only (can be determined at column
level) - either by permission settings or by system (some workflows
fields for intance)
- the record is deleted (can be determined at row level) 

we reorganized the code to avoid re-computing known information as much
as possible.

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2025-08-04 18:42:27 +02:00
Charles Bochet 42045667a4 Fix id typing in metadata generated schema (#13596)
In our Graphql schema, ids are typed as UUID.

Our FE codegen is typing it as 'any', unless we say otherwise. Fixing it
and fixing the impacts in the codebase
2025-08-04 18:40:26 +02:00
StephanieJoly4 32736ccd95 User guide - Getting around Twenty and 3 steps to get started articles
test new article for User Guide - overview of navigation
2025-08-04 17:31:22 +02:00
martmull b12fad533d Fix workflowRun real time updates (#13605)
as title
2025-08-04 15:28:22 +00:00
github-actions[bot] 99f8891f3a i18n - translations (#13606)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-08-04 17:21:24 +02:00
Charles Bochet 2eeddcddc6 Add TwentyORM query read timeout exception (#13603)
In this PR:
- adding a try / catch around all ORM internal methods save, insert,
upsert, findOne, ...
- leveraging this error to prevent messageChannels to get FAILED
- optimizing messaging BATCH_SIZE and THROTTLE threshold according to
local tests
- 

<img width="1510" height="851" alt="image"
src="https://github.com/user-attachments/assets/802fd933-caac-4291-9cde-34a1ddf59c06"
/>
2025-08-04 17:16:16 +02:00
Abdul Rahman d958447bb6 Update workflow stepId type (#13602) 2025-08-04 16:53:42 +02:00
Marie 2cebb72447 [permissions] Return all columns by default for upsert (#13587) 2025-08-04 16:49:56 +02:00
martmull 72ffee39a7 Fix seed workspace (#13601)
Add missing positions and nextStepIds to seed workspace
2025-08-04 14:39:52 +00:00
github-actions[bot] 8a2e38da87 i18n - translations (#13600)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-08-04 16:21:45 +02:00
martmull 9a05673093 Implement branch front end (#13489)
First PR to support workflow branches on frontend
2025-08-04 14:11:46 +00:00
Félix Malfait 2c87c6fc1b Add local storage effect to save sidebar state (#13591)
Add local storage effect to keep the behavior across sessions
2025-08-04 14:44:11 +02:00