Page layout tab v2 (#16319)

# Introduction
Migrating `pageLayoutTab` to the v2 engine
- Types and constants
- Builder and validate
- Runner

Introduced a new `StrictSyncableEntity` that enforces that
`universalIdentifier` and `applicationId` are defined
As these entities are brand new we could enforce this rule already
This still requires a migration command to associate the existing
entities to custom workspace application instance and define
universalIdentifier

Handled retro-comp of the migration through a migration as upgrade
command fallback

---------

Co-authored-by: bosiraphael <raphael.bosi@gmail.com>
This commit is contained in:
Paul Rastoin
2025-12-04 17:37:16 +01:00
committed by GitHub
parent 1981cf0ed6
commit b2d785de4b
56 changed files with 1284 additions and 13 deletions
@@ -86,7 +86,7 @@ export class DevSeederService {
);
}
const { twentyStandardFlatApplication } =
const { twentyStandardFlatApplication, workspaceCustomFlatApplication } =
await this.applicationService.findWorkspaceTwentyStandardAndCustomApplicationOrThrow(
{
workspaceId,
@@ -116,7 +116,12 @@ export class DevSeederService {
});
await seedPageLayouts(this.coreDataSource, 'core', workspaceId);
await seedPageLayoutTabs(this.coreDataSource, 'core', workspaceId);
await seedPageLayoutTabs({
applicationId: workspaceCustomFlatApplication.id,
workspaceId,
dataSource: this.coreDataSource,
schemaName: 'core',
});
const objectMetadataRepository =
this.coreDataSource.getRepository(ObjectMetadataEntity);