Commit Graph
100 Commits
Author SHA1 Message Date
Charles Bochet b7c2f83abf Fix sign up (#5231)
Sign up was broken by #5199
2024-04-30 18:48:07 +02:00
Charles Bochet ccd1100773 Fix tests (#5228)
Fixing typecheck + storybook:modules!
2024-04-30 17:54:07 +02:00
Charles Bochet 6a14b1c6d6 Fix tasks (#5199)
## Query depth deprecation

I'm deprecating depth parameter in our graphql query / cache tooling.
They were obsolete since we introduce the possibility to provide
RecordGqlFields

## Refactor combinedFindManyRecordHook

The hook can now take an array of operationSignatures

## Fix tasks issues

Fix optimistic rendering issue. Note that we still haven't handle
optimisticEffect on creation properly
2024-04-29 23:33:23 +02:00
Charles Bochet e976a1bdfc Uniformize datasources (#5196)
## Context

We recently enabled the option to bypass SSL certificate authority
validation when establishing a connection to PostgreSQL. Previously, if
this validation failed, the server would revert to unencrypted traffic.
Now, it maintains encryption even if the SSL certificate check fails. In
the process, we overlooked a few DataSource setups, prompting a review
of DataSource creation within our code.

## Current State

Our DataSource initialization is distributed as follows:
- **Database folder**: Contains 'core', 'metadata', and 'raw'
DataSources. The 'core' and 'metadata' DataSources manage migrations and
static resolver calls to the database. The 'raw' DataSource is utilized
in scripts and commands that require handling both aspects.
- **typeorm.service.ts script**: These DataSources facilitate
multi-schema connections.

## Vision for Discussion
- **SystemSchema (formerly core) DataSource**: Manages system schema
migrations and system resolvers/repos. The 'core' schema will be renamed
to 'system' as the Core API will include parts of the system and
workspace schemas.
- **MetadataSchema DataSource**: Handles metadata schema migrations and
metadata API resolvers/repos.
- **(Dynamic) WorkspaceSchema DataSource**: Will be used in the Twenty
ORM to access a specific workspace schema.

We currently do not support cross-schema joins, so maintaining these
DataSources separately should be feasible. Core API resolvers will
select the appropriate DataSource based on the field context.
- **To be discussed**: The potential need for an AdminDataSource (akin
to 'Raw'), which would be used in commands, setup scripts, and the admin
panel to connect to any database schema without loading any model. This
DataSource should be reserved for cases where utilizing metadata,
system, or workspace entities is impractical.

## In This PR
- Ensuring all existing DataSources are compliant with the SSL update.
- Introducing RawDataSource to eliminate the need for declaring new
DataSource() instances in commands.
2024-04-27 11:43:44 +02:00
Charles Bochet 11a7db5672 Fix workspace schema caching when user is not logged in (#5173)
In this PR:
- Follow up on #5170 as we did not take into account not logged in users
- only apply throttler on root fields to avoid performance overhead
2024-04-25 14:45:14 +02:00
Charles Bochet 07c8779411 Fix broken sync-metadata (#5154)
An error has been recently introduced in the sync of fieldMetadata. This
PR fixes it

Additionnally, we are enabling email for trialing and past_due
workspaces. There is an ongoing work to introduce a more robust
activationStatus on workspace.
2024-04-24 17:45:17 +02:00
Charles Bochet b3e1d6becf Fix default value fixer script (#5144)
While trying to migrate a workspace from 0.3.3 to 0.10.0, we've faced an
issue with the script to migrate default-values format.
This PR fixes it.

We really need to add tests on this part ;)
2024-04-24 14:50:57 +02:00
Charles Bochet fafa56411c Fix email sync (#5132) 2024-04-23 18:50:37 +02:00
Charles Bochet 4bd2cdd580 Load all data on record boards (#5070)
## Context

For users with many records, only the first n*60 records were loaded on
board views (n being the number of visible columns). This was because of
the following behavior:
- watch for end of column visibility changes. If an end of column is
visible, try to fetch more. However, watching for visbility changes is
not reliable enough.

## What we want

If an end of column is visible, try to fetch more. If no more records is
availble in pagination, do not fetch more
2024-04-19 23:39:19 +02:00
Charles Bochet d07dc11124 Fix activity Target picker not being displayed (#5040)
<img width="1025" alt="image"
src="https://github.com/twentyhq/twenty/assets/12035771/3f37ed27-661e-43ea-bc15-f59efa12bfca">
2024-04-18 16:16:12 +02:00
Charles Bochet 03e0fd2a65 Fix storybook tests 2 (#5026) 2024-04-18 10:41:11 +02:00
Charles Bochet a52f2e5bd9 Fix Storybook stories (Datamodel edition / preview / signOut) (#5019)
As per title ; some small changes on broken stories
2024-04-17 18:48:41 +02:00
Charles Bochet 977927af04 Disable audit log on system objects (#5018)
## Context

We have recently added an event listener to create audit logs on objects
update. However, we have only created the structure (relations on event
standard objects) for Company, Person, Opportunity and custom objects.
There is a larger effort in #4936 to refactor this.
For now, we are disabling log auditing on all other objects

## How
Add @IsNotAuditLogged() annotation on all standard objects except
Company, Person, Opportunity
2024-04-17 17:52:39 +02:00
Charles Bochet d02509b1b6 Fix chromatic tests (#5012) 2024-04-17 16:56:39 +02:00
Charles Bochet 75fd430149 Increase storybook pages coverage (#4885)
On FE:
- refreshing metadata mocks
- updating jest tests
- fixing storybook pages coverage
- fixing storybook modules coverage
2024-04-17 16:24:04 +02:00
Charles Bochet 67db7d85c0 Proposal Date picker overflow (#4996)
Unfortunately, it is not possible in CSS to have an overflow:visible
over x-axis while having an overflow:hidden over y-axis, leading to the
following issue:

<img width="1512" alt="image"
src="https://github.com/twentyhq/twenty/assets/12035771/9b84cbbb-c6c4-4fd6-a630-a24f01eccf73">

I'm refactoring the RecordInlineCell and RecordTableCell to use
useFloating + createPortal to open the cell.
2024-04-17 11:35:45 +02:00
Charles Bochet f1cc1c60e0 Fix ID type being used in place of UUID in graphql and metadata queries (#4905)
We have recently discovered that we were using ID type in place of UUID
type in many place in the code.
We have merged #4895 but this introduced bugs as we forgot to replace it
everywhere
2024-04-10 11:33:17 +02:00
Charles Bochet b724c5e610 Fix graphql API accepting malformed UUIDs (#4895)
We have discovered that GraphQL inputs for fields of type ids in create
/ update input where using a more permissive ID type than the type used
in FilterInput in queries.

This PRs fixes it and make sure that all Input are using UUID graphql
scalar types
2024-04-09 16:44:52 +02:00
Charles Bochet 9f2c9ee76e Remove repetitive query of ClientConfig and CurrentWorkspace member (#4859)
## Removing repetitive queries (impacting performance on page load)

We have recently introduced the capability to detect schema version
mismatch. To do that, we add a new header in all our queries. On page
load, this header is added once we know the currentUser and especially
its currentWorkspace and related schema version.
However, applying this header to apollo client will re-trigger all
queries that have been already performed (GetClientConfig and
GetCurrentUser). To avoid re-triggering them, I'm introducing two new
"isLoaded" states and skip the query if the query has already been
performed

## Fixing Relation Detail not displaying data on show page

Small bug introduced in a previous PR
2024-04-05 20:33:02 +02:00
Charles Bochet 7774ef68a2 Release 0.4.0 (#4856)
0.4.0 Release!
2024-04-05 18:35:48 +02:00
Charles Bochet f4017119ab Various cosmetic fixes for 0.4.0 (#4844)
In this PR:
- fix empty list placeholder positionning
- prevent user from erasing custom address field as composite types
removal is not supported yet @ijreilly FYI
- fix show page relation error
- Implement address filter
2024-04-05 17:32:14 +02:00
Charles Bochet e8c58ae541 Make field input transparency consistent (#4828)
Minor fix until for the release 0.4.0 until we properly fix all input
background and backdrop-filters
2024-04-04 20:51:41 +02:00
Charles Bochet 499e1a09e3 Fix ScrollWrapper inner elements padding (#4827)
Closes https://github.com/twentyhq/twenty/issues/4824 and
https://github.com/twentyhq/twenty/issues/4788
2024-04-04 19:19:26 +02:00
Charles Bochet 48b1be9917 Fix ViewPicker create mode: view type switcher (#4821)
In this PR, I'm fixing two things on the ViewPicker in Create mode:
- if the Dropdown has no max height, it should not be scrollable (which
is causing issue with inner dropdowns being cut by overflow: hidden
- if the user has changed the icon, the type or the name of the view,
consider the create form as isDirty and prevent its value to be
overriden by re-renders (cache updates for example)
2024-04-04 18:32:55 +02:00
Charles Bochet b1a586d324 Fix View creation, view fields re-ordering, view filters and view sorts erratic behaviors (#4800)
We used to not type properly the return of getRecordFromCache before the
work from last week.
The getViewFromCache function was patching this temporarily in a "dirty"
way.

Now that this is cleaner, I'm removing the typescript patch. This fixing
several behaviors on viewBar
2024-04-04 13:24:58 +02:00
Charles Bochet 514417245a Add JsDom to server dependencies (#4740)
We were missing `JsDom` dependencies in the package.json generated by nx
while running `twenty-server`: `yarn nx build:packageJson`

Detailed explanation: 
- we are currently using nx paradigm which is to put dependencies of all
projets at root, which enables global package migrations for the whole
monorepo
- for production containers, we only want specific project dependency to
be added. This is done by running `yarn nx build:packageJson` on
`twenty-server`. Nx is statically analyzing twenty-server dependencies
and generating a tailored package.json that production containers can
later use.
- However, `nx` static analysis is not flawless and is missing some
packages. We are going to stop using it as the value is not there yet
but the burden for developers is high. The guideline is to put back
project dependencies into specific package `package.json`
- Therefore, I'm adding `jsdom` to twenty-server `package.json`
2024-04-02 12:07:12 +02:00
Charles Bochet 746747ba2b Fix jest tests broken with apollo metadata client (#4728)
The tests were broken. It turns out that it is not easy to mock two
apolloClients as apollo only provides "MockedProvider" component to mock
apollo in tests.
MockedProvider Api does not allow us to mock on client level.

For now, I'm defaulting to the base ApolloClient in test mode to avoid
the issue
2024-04-01 14:55:28 +02:00
Charles BochetandLucas Bordeau 02673a82af Feat/put target object identifier on use activities (#4682)
When writing to the normalized cache (record), it's crucial to use _refs
for relationships to avoid many problems. Essentially, we only deal with
level 0 and generate all fields to be comfortable with their defaults.

When writing in queries (which should be very rare, the only cases are
prefetch and the case of activities due to the nested query; I've
reduced this to a single file for activities
usePrepareFindManyActivitiesQuery 🙂), it's important to use queryFields
to avoid bugs. I've implemented them on the side of query generation and
record generation.

When doing an updateOne / createOne, etc., it's necessary to distinguish
between optimistic writing (which we actually want to do with _refs) and
the server response without refs. This allows for a clean write in the
optimistic cache without worrying about nesting (as the first point).

To simplify the whole activities part, write to the normalized cache
first. Then, base queries on it in an idempotent manner. This way,
there's no need to worry about the current page or action. The
normalized cache is up-to-date, so I update the queries. Same idea as
for optimisticEffects, actually.

Finally, I've triggered optimisticEffects rather than the manual update
of many queries.

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
2024-04-01 13:12:37 +02:00
Charles Bochet c54acb35b6 Update Dev Seeds to use Ids (#4663) 2024-03-26 14:19:40 +01:00
Charles Bochet e576fe0d67 Update yarn commands (#4644)
* Simplify commands

* Simplify commands

* Migrate all dev commands to project.json

* Fix tests
2024-03-25 12:31:18 +01:00
Charles Bochet 161137e87a Add events on Custom objects (#4625) 2024-03-22 20:02:00 +01:00
Charles Bochet 3c5c9c2f31 Release 0.3.3 (#4622)
* Release 0.3.3

* Fix tests
2024-03-22 17:28:53 +01:00
Charles Bochet 4a493b6ecf New view picker (#4610)
* Implement new view picker

* Complete feature

* Fixes according to review
2024-03-22 15:04:17 +01:00
Charles Bochet 3fa8c4bace Add KanbanFieldMetadataId on View standard object (#4604)
* Add KanbanFieldMetadataId on View standard object

* Deprecate Pipeline step

* Fix

* Use Constants instead of raw ids

* Fix

* Fix query runner

* Fix according to review

* Fix tests

* Fix tests

* Fix tests
2024-03-21 18:08:27 +01:00
Charles Bochet cfb0cce9b8 Refactor Views by cleaning the code, relying on apolloCache and improving performances (#4516)
* Wip refactoring view

* Post merge conflicts

* Fix review

* Add create view capability

* Fix create object missing view

* Fix tests
2024-03-20 14:21:58 +01:00
Charles Bochet feebc45d31 Fix storybook tests on IconPicker (#4510) 2024-03-15 21:47:07 +01:00
Charles Bochet e0ae12ffa1 Fix server deploy (#4509)
* Fix server deployment broken by nx

* Fix server deployment broken by nx

* Fix server deployment broken by nx

* Fix

* Fix

* Fix

* Fix
2024-03-15 21:15:14 +01:00
Charles BochetandLucas Bordeau afb9b3e375 Prefetching views and favorites (#4421)
* wip

* Push

* Complete work on prefetch

* Add comment

* Fix

* Fix

* Fix

* Fix

* Remove dead code

* Simplify

* Fix tests

* Fix tests

* Fix according to review

* Fix according to review

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
2024-03-15 18:35:40 +01:00
Charles Bochet 4eae3b8290 Fix front production container build (#4478)
* Fix deploy main

* Fix deploy main
2024-03-14 16:13:27 +01:00
Charles Bochet 4e1e4e2c4c Upgrade documentation UI component rendering (#4445)
Upgrade documenation UI component rendering
2024-03-13 13:26:46 +01:00
Charles Bochet 5287b7c4ab Add icon, position and key on View (#4413)
* Add view key field

* Update Prefill demo, seed dev, prefill new workspace
2024-03-11 17:00:19 +01:00
Charles Bochet ec384cc791 Implement eager load relations on graphqlQueries (#4391)
* Implement eager load relations on graphqlQueries

* Fix tests

* Fixes

* Fixes
2024-03-10 23:42:23 +01:00
Charles Bochet 86c0f311f5 Introduce ComponentState (#4386)
* Proof of concept ComponentState

* Migrate to createState and createFamilyState

* Refactor

* Fix

* Fix tests

* Fix lint

* Fix tests

* Re-enable coverage
2024-03-09 11:31:00 +01:00
Charles Bochet d2e2e50d8a Fix consistency issuesin relation onDelete behavior while creating a new relation (#4372)
* Fix consistency issuesin relation onDelete behavior while creating a new relation

* Fix according to review
2024-03-08 11:49:42 +01:00
Charles Bochet 9190bd8d7f Deprecate old board (#4352)
* Deprecate old board

* Fix tests

* Fix tests
2024-03-07 10:02:45 +01:00
Charles Bochet e5c09deae5 Improve performances of metadata endpoint (#4347) 2024-03-06 18:09:38 +01:00
Charles Bochet b08b361dc0 Command menu search bar (#4337)
* Improve performance on findMany queries

* Fix

* Fix command menu not emptying the search on toggle

* Fix tests
2024-03-06 14:20:05 +01:00
Charles Bochet e7857d7fa3 Improve performance on findMany queries (#4334)
* Improve performance on findMany queries

* Fix
2024-03-06 13:59:42 +01:00
Charles Bochet 706b5d3cf1 Release 0.3.2 (#4324)
* Release 0.3.2

* Fix Select search
2024-03-05 18:57:31 +01:00
Charles Bochet 614f3ed69e Fix click outside on select field (#4323)
* Fix click outside on select field

* Fix
2024-03-05 18:43:52 +01:00
Charles Bochet 0c2c57ab9b Fix blocklist standard object being unhealthy (#4255)
Fix blocklist standard object unhealthy
2024-03-01 10:39:22 +01:00
Charles Bochet ad4b3d0d59 Fix enum defaultValue broken (#4251)
* Fix enum defaultValue broken

* Fix

* Fix
2024-02-29 19:35:00 +01:00
Charles Bochet fb439e3045 Enable new record board and messaging for all workspaces except demo (#4243)
* Enable new record board and messaging for all workspaces except demo

* Fix according to PR
2024-02-29 18:22:32 +01:00
Charles Bochet f52a4141c9 Fix nullable being set to null for text field (#4239) 2024-02-29 11:29:17 +01:00
Charles Bochet e0bf8e43d1 Update relation cascade on standard objects favorite, attachment, activityTargets (#4227) 2024-02-28 17:49:45 +01:00
Charles Bochet 16fe79b044 Fix demo workspace seed (#4211) 2024-02-27 14:11:52 +01:00
Charles Bochet 6a1abba9ea Ignore defaultValue update for select fields (#4193)
* Ignore defaultValue update for select fields

* Fix tests
2024-02-26 18:41:29 +01:00
Charles Bochet a108d36040 Refactor sign-up into its own service (#4173)
* Refactor sign-up into its own service

* Fix tests
2024-02-25 11:51:17 +01:00
Charles Bochet 87f7c75057 Remove usage of toSorted as it is not fully supported (#4168) 2024-02-24 12:12:55 +01:00
Charles Bochet ba050cd33d Release 0.3.1 (#4031) 2024-02-16 20:11:38 +01:00
Charles Bochet 6f2b0f2068 Resolve bugs tied to record creations on table (#4011)
* Resolve bugs tied to record creations on table

* Fix according to PR

* Fix tests
2024-02-16 15:03:57 +01:00
Charles Bochet a5ecbf7df5 Integrations: design fixes and remove feature flag (#4003)
* Integrations: design fixes and remove feature flag

* Fix
2024-02-16 13:35:45 +01:00
Charles Bochet 88990144cf Fix website build (#3986)
* Fix website build

* Try fix

* Try fix
2024-02-15 11:03:29 +01:00
Charles Bochet 9777c5fbce Fix website build (#3983) 2024-02-14 21:28:26 +01:00
Charles Bochet 4613f64910 Add proper ORM and postgres support (#3978)
* Add postgresql support

* Fixes

* Fix perfs
2024-02-14 17:53:50 +01:00
Charles Bochet 0185c2a36e Fix logger behavior (#3897) 2024-02-09 14:43:36 +01:00
Charles Bochet 7eaf56f566 Fix IconPicker broken storybook tests (#3884) 2024-02-08 15:14:22 +01:00
Charles Bochet 8692e5d1ca Release 0.3.0 (#3793) 2024-02-03 09:05:11 +01:00
Charles Bochet 7b084ba46e Enable Rating Field (#3792) 2024-02-03 08:55:29 +01:00
Charles Bochet 39f4ec9e7b Fix storybook tests on Field Preview (Settings) (#3761) 2024-02-01 17:44:36 +01:00
Charles Bochet 4290db3566 Fix new board bugs (#3730)
* Fix freeze on field visibility change on board

* Fix

* Fix lint
2024-01-31 17:21:17 +01:00
Charles Bochet c8e4d0ab9a Board compact view and Company Picker for opportunity special case (#3713)
* Re-enabled board compact mode

* Add specific case for opportunity to display company picker

* Add infinite scroll

* Remove useEffect

* Fix

* Fix
2024-01-31 11:37:03 +01:00
Charles Bochet 2e4f2d54aa Refactor board and table options (#3700)
* Refactor board and table options

* Fix

* Fix
2024-01-30 18:38:31 +01:00
Charles Bochet f68de1a299 Board improvements (#3694)
* New board improvements

* Improve board

* Fix
2024-01-30 15:24:03 +01:00
Charles Bochet e951fb70f8 Add board Action bar and context menu (#3680)
* Add board Action bar and context menu

* Fix according to review
2024-01-30 09:21:02 +01:00
Charles Bochet 7fdd7119d2 Allow Card field update and card drag on new record board (#3661) 2024-01-29 08:59:13 +01:00
Charles Bochet 6eca6dc780 Fix Opportunities page (#3660)
* Fix Opportunities page

* Fix

* Fix tests
2024-01-28 23:33:36 +01:00
Charles Bochet 419f8adde6 Improve RecordTableCellperformances (#3659)
* Improve RecordTableCellperformances

* Fixes
2024-01-28 20:32:28 +01:00
Charles Bochet ada8f55574 Refactor Field Inputs (#3658)
* Rename field to record-field folder

* Simplify FieldInput

* Fix perfs

* Fixes

* Fixes

* Fix tests

* Fix tests
2024-01-27 23:42:39 +01:00
Charles Bochet d6f117c688 Display RecordBoardCards on new board (#3657)
* Before remove saveEditModeValue logic

* Fixes

* Fix tests

* Fix tests
2024-01-27 15:55:45 +01:00
Charles Bochet 070900e4eb Remap items in board (#3643)
* Remap items in board

* Fix according to review
2024-01-26 17:09:30 +01:00
Charles Bochet 377fd23c90 Display columns on Record Board (#3626)
* Display columns on Record board

* Fix

* Fix according to review

* Fix
2024-01-25 18:21:15 +01:00
Charles Bochet afbb87ae12 Add new Record board shell (#3609)
* Add new Record board shell

* Fix
2024-01-24 17:47:04 +01:00
Charles Bochet ccbf773fd4 Load empty board if view type is kanban (#3605)
* Load empty board if view type is kanban

* Fix tests

* Revert
2024-01-24 16:17:47 +01:00
Charles Bochet afc36c7329 Introduce new board feature flag (#3602) 2024-01-24 14:24:02 +01:00
Charles Bochet f48814f6d9 Tag current board as deprecated to make room for the new record board implementation (#3601) 2024-01-24 12:36:42 +01:00
Charles Bochet aa603f1ff4 Update contributing guidelines with PR precendence (#3590) 2024-01-23 17:29:10 +01:00
Charles Bochet 3f0743493b Fix Continuous Deployment script after adding twenty-emails package (#3589)
* Fix cd

* Fix server

* Fix server

* Fix server

* Fix server

* Fix

* Fix docs

* Fix
2024-01-23 12:30:03 +01:00
Charles Bochet a7265fa3b4 Remove flag relation select (#3588)
* Remove feature flag on relation and select

* Move packages back to twenty-server to enable smaller build without using nx

* Fix package.json
2024-01-23 09:59:00 +01:00
Charles Bochet 894f63a16f Standard Object prefill updates (#3570) 2024-01-22 11:13:43 +01:00
Charles Bochet 2cf4bd746a Improve health check command (#3553)
* Improve health check command

* Fix health check

* Fix health check
2024-01-19 16:54:43 +01:00
Charles Bochet 4316950cf9 Bump version to 0.2.3 (#3506) 2024-01-17 11:57:13 +01:00
Charles BochetandThaïs f3f20ad974 Improve opportunity behavior (#3487)
* Fix opportunity relation

* Fix

* Fix

* Fix tests

* Fix

* Fix

* Fix opportunities

* Fix Opportunity standard object and apply maxWidth to text ellipsis

* Update packages/twenty-front/src/modules/ui/field/display/components/EllipsisDisplay.tsx

Co-authored-by: Thaïs <guigon.thais@gmail.com>

* Fix

---------

Co-authored-by: Thaïs <guigon.thais@gmail.com>
2024-01-16 15:43:19 +01:00
Charles Bochet fb93bb69fb Fix opportunity relation (#3478)
* Fix opportunity relation

* Fix

* Fix

* Fix tests

* Fix

* Fix
2024-01-16 14:39:48 +01:00
Charles Bochet 16a24c5f0c Rework relations (#3431)
* Rework relations

* Fix tests
2024-01-15 12:07:23 +01:00
Charles Bochet 8893cbc05d Stop switching to a different datasource per workspace (#3425)
* Stop switching to a different datasource per workspace

* Add console

* Remove call to metadata
2024-01-14 00:21:21 +01:00
Charles Bochet 4f306f8955 Fix bug hover on table (#3404) 2024-01-12 16:30:32 +01:00
Charles Bochet 6672b04733 Fix docker-compose commands (#3403) 2024-01-12 14:31:47 +01:00
Charles Bochet 10fd67ba32 Fix relation creation bug + enable favorite for custom objects (#3392)
* Fix relation creation bug

* Fix vale CI

* Fix comment bug
2024-01-11 22:46:43 +01:00
Charles Bochet 3ad032cdc1 Fix 3 bugs (#3391)
* Fix Favorites

* Fix opportunities
2024-01-11 21:34:56 +01:00