[Apps] Fix - app-synced object should be searchable (#19206)
## Summary - **Make app-synced objects searchable**: `isSearchable` was hardcoded to `false` and the `searchVector` field was missing the `GENERATED ALWAYS AS (...)` expression, causing all records to have a `NULL` search vector and be excluded from search results. Fixed by defaulting `isSearchable` to `true` (configurable via the object manifest), computing the `asExpression` from the label identifier field, and allowing the update-field-action-handler to handle the `null` → defined `asExpression` transition. - **Make `isSearchable` updatable on an object**: The property had `toCompare: false` in the entity properties configuration, so updates via the API were silently ignored and never persisted. Fixed by setting `toCompare: true`.
This commit is contained in:
+1
@@ -142,6 +142,7 @@ exports[`ALL_UNIVERSAL_FLAT_ENTITY_PROPERTIES_TO_COMPARE_AND_STRINGIFY should ma
|
||||
"nameSingular",
|
||||
"labelIdentifierFieldMetadataUniversalIdentifier",
|
||||
"standardOverrides",
|
||||
"isSearchable",
|
||||
],
|
||||
"propertiesToStringify": [
|
||||
"standardOverrides",
|
||||
|
||||
+1
-1
@@ -227,7 +227,7 @@ export const ALL_ENTITY_PROPERTIES_CONFIGURATION_BY_METADATA_NAME = {
|
||||
universalProperty: undefined,
|
||||
},
|
||||
isSearchable: {
|
||||
toCompare: false,
|
||||
toCompare: true,
|
||||
toStringify: false,
|
||||
universalProperty: undefined,
|
||||
},
|
||||
|
||||
+2
-1
@@ -1,7 +1,7 @@
|
||||
import {
|
||||
type HasAllProperties,
|
||||
type Equal,
|
||||
type Expect,
|
||||
type HasAllProperties,
|
||||
} from 'twenty-shared/testing';
|
||||
|
||||
import { type FlatEntityUpdate } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-update.type';
|
||||
@@ -49,6 +49,7 @@ type Assertions = [
|
||||
| 'labelPlural'
|
||||
| 'labelIdentifierFieldMetadataId'
|
||||
| 'labelIdentifierFieldMetadataUniversalIdentifier'
|
||||
| 'isSearchable'
|
||||
>
|
||||
>,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user