1541 extensibility twenty cli use workspace migration v2 to synchronize application objects fields views (#14706)

- synchronize objects


https://github.com/user-attachments/assets/257317bc-2881-4b98-a3d4-6ae52bd72aa0
This commit is contained in:
martmull
2025-09-25 11:22:11 +02:00
committed by GitHub
parent 71216b4db8
commit edb331d68b
34 changed files with 596 additions and 683 deletions
@@ -54,6 +54,20 @@ export class AgentService {
}));
}
async findOneByApplicationAndStandardId({
applicationId,
standardId,
workspaceId,
}: {
applicationId: string;
standardId: string;
workspaceId: string;
}) {
return await this.agentRepository.findOne({
where: { applicationId, standardId, workspaceId },
});
}
async findOneAgent(id: string, workspaceId: string) {
const agent = await this.agentRepository.findOne({
where: { id, workspaceId },
@@ -1,4 +1,4 @@
import { Field, InputType } from '@nestjs/graphql';
import { Field, HideField, InputType } from '@nestjs/graphql';
import {
IsNotEmpty,
@@ -53,4 +53,10 @@ export class CreateAgentInput {
@IsOptional()
@Field(() => GraphQLJSON, { nullable: true })
responseFormat?: object;
@HideField()
standardId?: string;
@HideField()
applicationId?: string;
}
@@ -99,6 +99,7 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
"description": "new field description",
"flatRelationTargetFieldMetadata": null,
"flatRelationTargetObjectMetadata": {
"applicationId": null,
"createdAt": Any<String>,
"description": null,
"duplicateCriteria": null,
@@ -154,6 +155,7 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
"workspaceId": Any<String>,
},
"flatRelationTargetObjectMetadata": {
"applicationId": null,
"createdAt": Any<String>,
"description": "A rocket",
"duplicateCriteria": null,
@@ -211,6 +213,7 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
"workspaceId": Any<String>,
},
"flatRelationTargetObjectMetadata": {
"applicationId": null,
"createdAt": Any<String>,
"description": null,
"duplicateCriteria": null,
@@ -275,6 +278,7 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
"description": "new field description",
"flatRelationTargetFieldMetadata": null,
"flatRelationTargetObjectMetadata": {
"applicationId": null,
"createdAt": Any<String>,
"description": null,
"duplicateCriteria": null,
@@ -330,6 +334,7 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
"workspaceId": Any<String>,
},
"flatRelationTargetObjectMetadata": {
"applicationId": null,
"createdAt": Any<String>,
"description": "A rocket",
"duplicateCriteria": null,
@@ -400,6 +405,7 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
"description": "new field description",
"flatRelationTargetFieldMetadata": null,
"flatRelationTargetObjectMetadata": {
"applicationId": null,
"createdAt": Any<String>,
"description": "A company",
"duplicateCriteria": null,
@@ -455,6 +461,7 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
"workspaceId": Any<String>,
},
"flatRelationTargetObjectMetadata": {
"applicationId": null,
"createdAt": Any<String>,
"description": "A rocket",
"duplicateCriteria": null,
@@ -512,6 +519,7 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
"workspaceId": Any<String>,
},
"flatRelationTargetObjectMetadata": {
"applicationId": null,
"createdAt": Any<String>,
"description": "A company",
"duplicateCriteria": null,
@@ -576,6 +584,7 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
"description": "new field description",
"flatRelationTargetFieldMetadata": null,
"flatRelationTargetObjectMetadata": {
"applicationId": null,
"createdAt": Any<String>,
"description": "A company",
"duplicateCriteria": null,
@@ -631,6 +640,7 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
"workspaceId": Any<String>,
},
"flatRelationTargetObjectMetadata": {
"applicationId": null,
"createdAt": Any<String>,
"description": "A rocket",
"duplicateCriteria": null,
@@ -33,6 +33,7 @@ export const getFlatObjectMetadataMock = (
nameSingular: 'defaultflatObjectMetadataNameSingular',
shortcut: 'shortcut',
standardId: null,
applicationId: null,
standardOverrides: null,
targetTableName: '',
workspaceId: faker.string.uuid(),
@@ -76,8 +76,9 @@ export const fromCreateObjectInputToFlatObjectMetadataAndFlatFieldMetadatasToCre
namePlural: createObjectInput.namePlural,
nameSingular: createObjectInput.nameSingular,
shortcut: createObjectInput.shortcut ?? null,
standardId: null,
standardId: createObjectInput.standardId ?? null,
standardOverrides: null,
applicationId: createObjectInput.applicationId ?? null,
universalIdentifier: objectMetadataId,
targetTableName: 'DEPRECATED',
workspaceId,
@@ -56,6 +56,12 @@ export class CreateObjectInput {
@HideField()
workspaceId: string;
@HideField()
applicationId?: string;
@HideField()
standardId?: string;
@IsBoolean()
@IsOptional()
@Field({ nullable: true })
@@ -171,9 +171,11 @@ export class ObjectMetadataServiceV2 {
async deleteOne({
deleteObjectInput,
workspaceId,
isSystemBuild = false,
}: {
deleteObjectInput: DeleteOneObjectInput;
workspaceId: string;
isSystemBuild?: boolean;
}): Promise<ObjectMetadataDTO> {
const {
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
@@ -253,7 +255,7 @@ export class ObjectMetadataServiceV2 {
},
buildOptions: {
inferDeletionFromMissingEntities: true,
isSystemBuild: false,
isSystemBuild,
},
workspaceId,
},
@@ -34,6 +34,9 @@ export class ObjectMetadataEntity implements Required<ObjectMetadataEntity> {
@Column({ nullable: true, type: 'uuid' })
standardId: string | null;
@Column({ nullable: true, type: 'uuid' })
applicationId: string | null;
@Column({ nullable: false, type: 'uuid' })
dataSourceId: string;
@@ -115,6 +115,6 @@ import { WorkspaceMigrationV2Module } from 'src/engine/workspace-manager/workspa
ObjectMetadataResolver,
BeforeUpdateOneObject,
],
exports: [ObjectMetadataService],
exports: [ObjectMetadataService, ObjectMetadataServiceV2],
})
export class ObjectMetadataModule {}