diff --git a/packages/migrations/__tests__/migrations/5.35.0/001/ddb-es/001.data.ts b/packages/migrations/__tests__/migrations/5.35.0/001/ddb-es/001.data.ts deleted file mode 100644 index 7622bd66c61..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/001/ddb-es/001.data.ts +++ /dev/null @@ -1,234 +0,0 @@ -export const testData = [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:37:58.220Z", - _et: "TenancyTenant", - _md: "2023-01-25T09:37:58.220Z" - }, - { - PK: "T#sub-1", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "A sub-tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-01-25T09:37:58.183Z", - id: "sub-1", - name: "Subtenant 1", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:37:58.220Z", - _et: "TenancyTenant", - _md: "2023-01-25T09:37:58.220Z" - }, - { - PK: "T#sub-2", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "A sub-tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-01-25T09:37:58.183Z", - id: "sub-2", - name: "Subtenant 2", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:37:58.220Z", - _et: "TenancyTenant", - _md: "2023-01-25T09:37:58.220Z" - }, - // Root Tenant - { - PK: "T#root#I18N#L#D", - SK: "default", - code: "en-US", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:22.029Z", - default: true, - tenant: "root", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:22.041Z", - _et: "I18NLocale", - _md: "2023-01-25T09:38:22.041Z" - }, - { - PK: "T#root#I18N#L", - SK: "en-US", - code: "en-US", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:22.029Z", - default: true, - tenant: "root", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:22.041Z", - _et: "I18NLocale", - _md: "2023-01-25T09:38:22.041Z" - }, - // TODO: delete this record in 5.36.0 - { - PK: "T#root#FM#SETTINGS", - SK: "default", - srcPrefix: "https://d30lvz3v210qz3.cloudfront.net/files/", - uploadMaxFileSize: 26214401, - uploadMinFileSize: 0, - _ct: "2023-01-25T09:38:22.381Z", - _et: "Settings", - _md: "2023-01-25T09:38:22.381Z" - }, - // Subtenant 1 - { - PK: "T#sub-1#I18N#L#D", - SK: "default", - code: "de-DE", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:22.029Z", - default: true, - tenant: "sub-1", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:22.041Z", - _et: "I18NLocale", - _md: "2023-01-25T09:38:22.041Z" - }, - { - PK: "T#sub-1#I18N#L", - SK: "de-DE", - code: "de-DE", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:22.029Z", - default: true, - tenant: "sub-1", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:22.041Z", - _et: "I18NLocale", - _md: "2023-01-25T09:38:22.041Z" - }, - { - PK: "T#sub-1#I18N#L", - SK: "fr-FR", - code: "fr-FR", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:22.029Z", - default: true, - tenant: "sub-1", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:22.041Z", - _et: "I18NLocale", - _md: "2023-01-25T09:38:22.041Z" - }, - // TODO: delete this record in 5.36.0 - { - PK: "T#sub-1#FM#SETTINGS", - SK: "default", - srcPrefix: "https://d30lvz3v210qz3.cloudfront.net/files/", - uploadMaxFileSize: 26214401, - uploadMinFileSize: 0, - _ct: "2023-01-25T09:38:22.381Z", - _et: "Settings", - _md: "2023-01-25T09:38:22.381Z" - }, - // Subtenant 2 - { - PK: "T#sub-2#I18N#L#D", - SK: "default", - code: "ru-RU", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:22.029Z", - default: true, - tenant: "sub-2", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:22.041Z", - _et: "I18NLocale", - _md: "2023-01-25T09:38:22.041Z" - }, - { - PK: "T#sub-2#I18N#L", - SK: "ru-RU", - code: "ru-RU", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:22.029Z", - default: true, - tenant: "sub-2", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:22.041Z", - _et: "I18NLocale", - _md: "2023-01-25T09:38:22.041Z" - }, - { - PK: "T#sub-2#I18N#L", - SK: "jp-JP", - code: "jp-JP", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:22.029Z", - default: true, - tenant: "sub-2", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:22.041Z", - _et: "I18NLocale", - _md: "2023-01-25T09:38:22.041Z" - }, - // TODO: delete this record in 5.36.0 - { - PK: "T#sub-2#FM#SETTINGS", - SK: "default", - srcPrefix: "https://d30lvz3v210qz3.cloudfront.net/files/", - uploadMaxFileSize: 26214401, - uploadMinFileSize: 0, - _ct: "2023-01-25T09:38:22.381Z", - _et: "Settings", - _md: "2023-01-25T09:38:22.381Z" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.35.0/001/ddb-es/001.test.ts b/packages/migrations/__tests__/migrations/5.35.0/001/ddb-es/001.test.ts deleted file mode 100644 index 2b8aea3ee9a..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/001/ddb-es/001.test.ts +++ /dev/null @@ -1,245 +0,0 @@ -import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; -import { FileManager_5_35_0_001, File } from "~/migrations/5.35.0/001/ddb-es"; -import { - assertNotError, - getPrimaryDynamoDbTable, - insertDynamoDbTestData, - scanTable, - logTestNameBeforeEachTest, - createDdbEsMigrationHandler, - createId, - delay, - groupMigrations -} from "~tests/utils"; -import { testData } from "./001.data"; -import { - createLegacySettingsEntity, - createSettingsEntity -} from "~/migrations/5.35.0/001/entities/createSettingsEntity"; -import { insertElasticsearchTestData } from "~tests/utils/insertElasticsearchTestData"; -import { esGetIndexName } from "~/utils"; - -jest.retryTimes(0); -jest.setTimeout(1200000); - -/** - * Reduced number of records because it is not necessary anymore to run tests with large amount of records. - */ -const NUMBER_OF_FILES = 50; -const INDEX_TYPE = "file-manager"; -let numberOfGeneratedFiles = 0; - -describe("5.35.0-001", () => { - const table = getPrimaryDynamoDbTable(); - const elasticsearchClient = createElasticsearchClient(); - - beforeAll(async () => { - process.env.ELASTIC_SEARCH_INDEX_PREFIX = - new Date().toISOString().replace(/\.|\:/g, "-").toLowerCase() + "-"; - - await elasticsearchClient.indices.deleteAll(); - }); - afterEach(async () => { - await elasticsearchClient.indices.deleteAll(); - }); - - const insertTestFiles = async (numberOfFiles = NUMBER_OF_FILES) => { - const tenants = testData - .filter(item => item.TYPE === "tenancy.tenant") - .map(tenant => tenant.id) as string[]; - - for (const tenant of tenants) { - const locales = testData - .filter(item => item.PK === `T#${tenant}#I18N#L`) - .map(locale => locale.code) as string[]; - - for (const locale of locales) { - let batch = []; - const allFiles = []; - for (let index = 0; index < numberOfFiles; index++) { - if (index % 25 === 0) { - await insertDynamoDbTestData(table, batch); - batch = []; - } - - const id = createId(); - - const file = { - id, - createdOn: "2023-01-25T09:38:41.943Z", - key: id + "welcome-to-webiny-page-8ldbh4sq4-hero-block-bg.svg", - locale, - meta: { - private: true - }, - name: "welcome-to-webiny-page-8ldbh4sq4-hero-block-bg.svg", - size: 1864, - tags: [], - tenant, - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - type: "image/svg+xml", - webinyVersion: "0.0.0" - }; - - batch.push({ - PK: `T#${tenant}#L#${locale}#FM#F${id}`, - SK: "A", - TYPE: "fm.file", - _ct: "2023-01-25T09:38:41.961Z", - _et: "Files", - _md: "2023-01-25T09:38:41.961Z", - ...file - }); - - allFiles.push(file); - - if (allFiles.length > 3000) { - await insertElasticsearchTestData( - elasticsearchClient, - allFiles, - item => { - return esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - type: INDEX_TYPE - }); - } - ); - allFiles.length = 0; - } - } - await insertDynamoDbTestData(table, batch); - await insertElasticsearchTestData(elasticsearchClient, allFiles, item => { - return esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - type: INDEX_TYPE - }); - }); - - // Track generated files - numberOfGeneratedFiles += NUMBER_OF_FILES; - } - } - }; - - logTestNameBeforeEachTest(); - - it("should not run if system is not installed", async () => { - const handler = createDdbEsMigrationHandler({ - primaryTable: table, - dynamoToEsTable: table, - elasticsearchClient, - migrations: [FileManager_5_35_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - process.stdout.write("Inserting test data...\n"); - await insertDynamoDbTestData(table, testData); - await insertTestFiles(); - await delay(3000); - - process.stdout.write("Running migration...\n"); - const handler = createDdbEsMigrationHandler({ - primaryTable: table, - dynamoToEsTable: table, - elasticsearchClient, - migrations: [FileManager_5_35_0_001] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - // ASSERT FILE MANAGER FILE CHANGES - const allFiles = await scanTable(table, { - entity: "File", - filters: [ - { attr: "TYPE", eq: "fm.file" }, - { attr: "data", exists: true } - ] - }); - - expect(allFiles.length).toEqual(numberOfGeneratedFiles); - for (const file of allFiles) { - expect(file.GSI1_PK.endsWith("#FM#FILES")).toBe(true); - expect(file.GSI1_SK).toBe(file.id); - // We still have the original `id` attribute, so compare with that. - expect(file.data.id).toEqual(file.id); - expect(file.TYPE).toEqual("fm.file"); - expect(file.entity).toEqual("File"); - } - - // ASSERT FILE MANAGER SETTINGS CHANGES - const legacySettings = createLegacySettingsEntity(table); - const { Item: legacyRecord } = await legacySettings.get({ - PK: `T#root#FM#SETTINGS`, - SK: "default" - }); - - expect(legacyRecord).toBeTruthy(); - expect(legacyRecord.SK).toEqual("default"); - expect(legacyRecord.uploadMaxFileSize).toEqual(26214401); - expect(legacyRecord.srcPrefix).toEqual("https://d30lvz3v210qz3.cloudfront.net/files/"); - - const newSettings = createSettingsEntity(table); - const { Item: newRecord } = await newSettings.get({ - PK: `T#root#FM#SETTINGS`, - SK: "A" - }); - - expect(newRecord).toBeTruthy(); - expect(newRecord.SK).toEqual("A"); - expect(newRecord.data.uploadMaxFileSize).toEqual(26214401); - expect(newRecord.data.srcPrefix).toEqual("https://d30lvz3v210qz3.cloudfront.net/files/"); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertDynamoDbTestData(table, testData); - await insertTestFiles(25); - const handler = createDdbEsMigrationHandler({ - primaryTable: table, - dynamoToEsTable: table, - elasticsearchClient, - migrations: [FileManager_5_35_0_001] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.35.0/001/ddb/001.data.ts b/packages/migrations/__tests__/migrations/5.35.0/001/ddb/001.data.ts deleted file mode 100644 index 6f63e731eb0..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/001/ddb/001.data.ts +++ /dev/null @@ -1,67 +0,0 @@ -export const testData = [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:37:58.220Z", - _et: "TenancyTenant", - _md: "2023-01-25T09:37:58.220Z" - }, - { - PK: "T#root#I18N#L#D", - SK: "default", - code: "en-US", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:22.029Z", - default: true, - tenant: "root", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:22.041Z", - _et: "I18NLocale", - _md: "2023-01-25T09:38:22.041Z" - }, - { - PK: "T#root#I18N#L", - SK: "en-US", - code: "en-US", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:22.029Z", - default: true, - tenant: "root", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:22.041Z", - _et: "I18NLocale", - _md: "2023-01-25T09:38:22.041Z" - }, - // TODO: delete this record in 5.36.0 - { - PK: "T#root#FM#SETTINGS", - SK: "default", - srcPrefix: "https://d30lvz3v210qz3.cloudfront.net/files/", - uploadMaxFileSize: 26214401, - uploadMinFileSize: 0, - _ct: "2023-01-25T09:38:22.381Z", - _et: "Settings", - _md: "2023-01-25T09:38:22.381Z" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.35.0/001/ddb/001.test.ts b/packages/migrations/__tests__/migrations/5.35.0/001/ddb/001.test.ts deleted file mode 100644 index c102a3b9857..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/001/ddb/001.test.ts +++ /dev/null @@ -1,176 +0,0 @@ -import { FileManager_5_35_0_001 } from "~/migrations/5.35.0/001/ddb"; -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { testData } from "./001.data"; -import { - createLegacySettingsEntity, - createSettingsEntity -} from "~/migrations/5.35.0/001/entities/createSettingsEntity"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -/** - * Reduced number of records because it is not necessary anymore to run tests with large amount of records. - */ -const NUMBER_OF_FILES = 50; - -describe("5.35.0-001", () => { - const table = getPrimaryDynamoDbTable(); - - const insertTestFiles = async (numberOfFiles = NUMBER_OF_FILES) => { - let batch = []; - for (let index = 0; index < numberOfFiles; index++) { - if (index % 25 === 0) { - await insertDynamoDbTestData(table, batch); - batch = []; - } - - batch.push({ - PK: "T#root#L#en-US#FM#F", - SK: "63d0f8a1ce8f180008bb6054" + index, - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:41.943Z", - id: "63d0f8a1ce8f180008bb6054" + index, - key: index + "welcome-to-webiny-page-8ldbh4sq4-hero-block-bg.svg", - locale: "en-US", - meta: { - private: true - }, - name: "welcome-to-webiny-page-8ldbh4sq4-hero-block-bg.svg", - size: 1864, - tags: [], - tenant: "root", - TYPE: "fm.file", - type: "image/svg+xml", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:41.961Z", - _et: "Files", - _md: "2023-01-25T09:38:41.961Z" - }); - } - await insertDynamoDbTestData(table, batch); - }; - - logTestNameBeforeEachTest(); - - beforeEach(() => { - jest.restoreAllMocks(); - }); - - it("should not run if system is not installed", async () => { - const handler = createDdbMigrationHandler({ table, migrations: [FileManager_5_35_0_001] }); - - const spy = jest.spyOn(FileManager_5_35_0_001.prototype, "execute"); - - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(spy).toHaveBeenCalledTimes(0); - }); - - it("should execute migration", async () => { - process.stdout.write("Inserting test data...\n"); - await insertDynamoDbTestData(table, testData); - await insertTestFiles(); - - process.stdout.write("Running migration...\n"); - const handler = createDdbMigrationHandler({ table, migrations: [FileManager_5_35_0_001] }); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - - // ASSERT FILE CHANGES - - // Let's make sure that the number of migrated records corresponds to the number of the original records. - const allNewFiles = ( - await scanTable(table, { - entity: "File", - filters: [ - { attr: "TYPE", eq: "fm.file" }, - { attr: "data", exists: true } - ] - }) - ).sort((a, b) => (a.GSI1_SK > b.GSI1_SK ? 1 : -1)); - - const allOldFiles = ( - await scanTable(table, { - entity: "Files", - filters: [ - { attr: "TYPE", eq: "fm.file" }, - { attr: "GSI1_PK", exists: false }, - { attr: "GSI1_SK", exists: false } - ] - }) - ).sort((a, b) => (a.id > b.id ? 1 : -1)); - - expect(allNewFiles.length).toEqual(NUMBER_OF_FILES); - expect(allOldFiles.length).toEqual(NUMBER_OF_FILES); - - expect(allNewFiles[0].GSI1_PK.endsWith("#FM#FILES")).toBe(true); - expect(allNewFiles[0].data.id).toEqual(allOldFiles[0].id); - - // ASSERT FILE MANAGER SETTINGS CHANGES - const legacySettings = createLegacySettingsEntity(table); - const { Item: legacyRecord } = await legacySettings.get({ - PK: `T#root#FM#SETTINGS`, - SK: "default" - }); - - expect(legacyRecord).toBeTruthy(); - expect(legacyRecord!.SK).toEqual("default"); - expect(legacyRecord!.uploadMaxFileSize).toEqual(26214401); - expect(legacyRecord!.srcPrefix).toEqual("https://d30lvz3v210qz3.cloudfront.net/files/"); - - const newSettings = createSettingsEntity(table); - const { Item: newRecord } = await newSettings.get({ - PK: `T#root#FM#SETTINGS`, - SK: "A" - }); - - expect(newRecord).toBeTruthy(); - expect(newRecord!.SK).toEqual("A"); - expect(newRecord!.data.uploadMaxFileSize).toEqual(26214401); - expect(newRecord!.data.srcPrefix).toEqual("https://d30lvz3v210qz3.cloudfront.net/files/"); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertDynamoDbTestData(table, testData); - await insertTestFiles(25); - - const handler = createDdbMigrationHandler({ table, migrations: [FileManager_5_35_0_001] }); - - // Should run the migration - process.stdout.write("[First run]\n"); - const firstRun = await handler(); - assertNotError(firstRun.error); - const firstData = groupMigrations(firstRun.data.migrations); - expect(firstData.executed.length).toBe(1); - - // Should skip the migration - const spy = jest.spyOn(FileManager_5_35_0_001.prototype, "execute"); - process.stdout.write("[Second run]\n"); - const secondRun = await handler(); - assertNotError(secondRun.error); - const secondData = groupMigrations(secondRun.data.migrations); - expect(secondData.executed.length).toBe(0); - expect(secondData.skipped.length).toBe(1); - expect(spy).toHaveBeenCalledTimes(0); - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.35.0/002/002.data.ts b/packages/migrations/__tests__/migrations/5.35.0/002/002.data.ts deleted file mode 100644 index ad6bb0e191c..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/002/002.data.ts +++ /dev/null @@ -1,85 +0,0 @@ -export const testData = [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:37:58.220Z", - _et: "TenancyTenant", - _md: "2023-01-25T09:37:58.220Z" - }, - { - PK: "T#root#I18N#L#D", - SK: "default", - code: "en-US", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:22.029Z", - default: true, - tenant: "root", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:22.041Z", - _et: "I18NLocale", - _md: "2023-01-25T09:38:22.041Z" - }, - { - PK: "T#root#I18N#L", - SK: "en-US", - code: "en-US", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-01-25T09:38:22.029Z", - default: true, - tenant: "root", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:22.041Z", - _et: "I18NLocale", - _md: "2023-01-25T09:38:22.041Z" - }, - // TODO: delete this record in 5.36.0 - { - PK: "T#root#L#en-US#PB#SETTINGS", - SK: "default", - htmlTags: { - footer: null, - header: null - }, - locale: "en-US", - name: "Sandbox", - pages: { - home: "63d0f8a3ce8f180008bb606b", - notFound: "63d0f8a3ce8f180008bb606a" - }, - social: { - facebook: null, - image: null, - instagram: null, - twitter: null - }, - tenant: "root", - theme: "default", - TYPE: "pb.settings", - websitePreviewUrl: "http://localhost:3000", - websiteUrl: null, - _ct: "2023-02-04T14:03:21.503Z", - _et: "PbSettings", - _md: "2023-02-04T14:03:21.503Z" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.35.0/002/002.test.ts b/packages/migrations/__tests__/migrations/5.35.0/002/002.test.ts deleted file mode 100644 index 50aefb6d239..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/002/002.test.ts +++ /dev/null @@ -1,136 +0,0 @@ -import { PageBuilder_5_35_0_002 } from "~/migrations/5.35.0/002"; -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData, - logTestNameBeforeEachTest -} from "~tests/utils"; -import { testData } from "./002.data"; -import { - createLegacySettingsEntity, - createSettingsEntity -} from "~/migrations/5.35.0/002/createSettingsEntity"; - -jest.retryTimes(0); - -describe("5.35.0-002", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if system is not installed", async () => { - const handler = createDdbMigrationHandler({ table, migrations: [PageBuilder_5_35_0_002] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertDynamoDbTestData(table, testData); - const handler = createDdbMigrationHandler({ table, migrations: [PageBuilder_5_35_0_002] }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - // ASSERT PAGE BUILDER SETTINGS CHANGES - const legacySettings = createLegacySettingsEntity(table); - const { Item: legacyRecord } = await legacySettings.get({ - PK: "T#root#L#en-US#PB#SETTINGS", - SK: "default" - }); - - expect(legacyRecord).toBeTruthy(); - expect(legacyRecord.SK).toEqual("default"); - expect(legacyRecord).toMatchObject({ - htmlTags: { - footer: null, - header: null - }, - locale: "en-US", - name: "Sandbox", - pages: { - home: "63d0f8a3ce8f180008bb606b", - notFound: "63d0f8a3ce8f180008bb606a" - }, - social: { - facebook: null, - image: null, - instagram: null, - twitter: null - }, - tenant: "root", - theme: "default", - websitePreviewUrl: "http://localhost:3000", - websiteUrl: null - }); - - const newSettings = createSettingsEntity(table); - const { Item: newRecord } = await newSettings.get({ - PK: "T#root#L#en-US#PB#SETTINGS", - SK: "A" - }); - - expect(newRecord).toBeTruthy(); - expect(newRecord.SK).toEqual("A"); - expect(newRecord.data).toEqual({ - htmlTags: { - footer: null, - header: null - }, - locale: "en-US", - name: "Sandbox", - pages: { - home: "63d0f8a3ce8f180008bb606b", - notFound: "63d0f8a3ce8f180008bb606a" - }, - social: { - facebook: null, - image: null, - instagram: null, - twitter: null - }, - tenant: "root", - theme: "default", - websitePreviewUrl: "http://localhost:3000", - websiteUrl: null - }); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertDynamoDbTestData(table, testData); - const handler = createDdbMigrationHandler({ table, migrations: [PageBuilder_5_35_0_002] }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const firstRun = await handler(); - assertNotError(firstRun.error); - const grouped = groupMigrations(firstRun.data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const secondRun = await handler(); - assertNotError(secondRun.error); - const grouped = groupMigrations(secondRun.data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.35.0/003/003.data.ts b/packages/migrations/__tests__/migrations/5.35.0/003/003.data.ts deleted file mode 100644 index 9bb20e8c831..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/003/003.data.ts +++ /dev/null @@ -1,85 +0,0 @@ -export const testData = [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:37:58.220Z", - _et: "TenancyTenant", - _md: "2023-01-25T09:37:58.220Z" - }, - { - PK: "T#root#ADMIN_USER#e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - SK: "A", - createdOn: "2023-01-25T09:38:16.226Z", - email: "admin@webiny.com", - firstName: "Pavel", - group: "63d0f879ce8f180008bb6051", - GSI1_PK: "T#root#ADMIN_USERS", - GSI1_SK: "admin@webiny.com", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - lastName: "Denisjuk", - tenant: "root", - TYPE: "adminUsers.user", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:38:16.764Z", - _et: "AdminUsers.User", - _md: "2023-01-25T09:38:16.764Z" - }, - { - PK: "T#root#ADMIN_USER#4e1adbe9-abf4-4360-b7f4-3f00bce096d9", - SK: "A", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-03-10T08:44:24.401Z", - email: "user1@webiny.com", - firstName: "User 1", - group: "63d0f879ce8f180008bb6051", - GSI1_PK: "T#root#ADMIN_USERS", - GSI1_SK: "user1@webiny.com", - id: "4e1adbe9-abf4-4360-b7f4-3f00bce096d9", - lastName: "Last 1", - tenant: "root", - TYPE: "adminUsers.user", - webinyVersion: "5.35.0-dev", - _ct: "2023-03-10T08:44:26.330Z", - _et: "AdminUsers.User", - _md: "2023-03-10T08:44:26.331Z" - }, - { - PK: "T#root#ADMIN_USER#640af04d40bae30008a097c5", - SK: "A", - createdBy: { - displayName: "Pavel Denisjuk", - id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", - type: "admin" - }, - createdOn: "2023-03-10T08:54:37.618Z", - email: "user2@webiny.com", - firstName: "Modern", - group: "63d0f879ce8f180008bb6051", - GSI1_PK: "T#root#ADMIN_USERS", - GSI1_SK: "user2@webiny.com", - id: "640af04d40bae30008a097c5", - lastName: "User", - tenant: "root", - webinyVersion: "5.35.0-dev", - _ct: "2023-03-10T09:03:27.732Z", - _et: "AdminUsers.User", - _md: "2023-03-10T09:03:27.733Z" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.35.0/003/003.test.ts b/packages/migrations/__tests__/migrations/5.35.0/003/003.test.ts deleted file mode 100644 index 764e168ff96..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/003/003.test.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { AdminUsers_5_35_0_003 } from "~/migrations/5.35.0/003"; -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { testData } from "./003.data"; - -jest.retryTimes(0); - -describe("5.35.0-003", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if system is not installed", async () => { - const handler = createDdbMigrationHandler({ table, migrations: [AdminUsers_5_35_0_003] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertDynamoDbTestData(table, testData); - const handler = createDdbMigrationHandler({ table, migrations: [AdminUsers_5_35_0_003] }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const allUsers = await scanTable(table, { - index: "GSI1", - filters: [{ attr: "GSI1_PK", eq: "T#root#ADMIN_USERS" }] - }); - - expect(allUsers.length).toEqual(3); - expect(allUsers[0].data).toBeTruthy(); - expect(allUsers[0].data.id).toEqual(allUsers[0].id); - expect(allUsers[1].data).toBeTruthy(); - expect(allUsers[1].data.id).toEqual(allUsers[1].id); - expect(allUsers[2].data).toBeTruthy(); - expect(allUsers[2].data.id).toEqual(allUsers[2].id); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertDynamoDbTestData(table, testData); - const handler = createDdbMigrationHandler({ table, migrations: [AdminUsers_5_35_0_003] }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.35.0/004/004.data.ts b/packages/migrations/__tests__/migrations/5.35.0/004/004.data.ts deleted file mode 100644 index a2102675a15..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/004/004.data.ts +++ /dev/null @@ -1,64 +0,0 @@ -export const testData = [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - _ct: "2023-01-25T09:37:58.220Z", - _et: "TenancyTenant", - _md: "2023-01-25T09:37:58.220Z" - }, - { - PK: "T#640c50f510540f0008e0950c", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - id: "640c50f510540f0008e0950c", - name: "Tenant #1", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "5.35.0-dev", - _ct: "2023-03-11T09:59:17.327Z", - _et: "TenancyTenant", - _md: "2023-03-11T09:59:17.327Z" - }, - { - PK: "T#640c515627c444000857fb44", - SK: "A", - createdOn: "2023-03-11T10:00:54.963Z", - description: "Tenant #2", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T10:00:54.963Z", - id: "640c515627c444000857fb44", - name: "Tenant #2", - parent: "root", - savedOn: "2023-03-11T10:00:54.963Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "5.35.0-dev", - _ct: "2023-03-11T10:00:54.963Z", - _et: "TenancyTenant", - _md: "2023-03-11T10:00:54.963Z" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.35.0/004/004.test.ts b/packages/migrations/__tests__/migrations/5.35.0/004/004.test.ts deleted file mode 100644 index b4fa4cb66da..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/004/004.test.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { Tenancy_5_35_0_004 } from "~/migrations/5.35.0/004"; -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { testData } from "./004.data"; - -jest.retryTimes(0); - -describe("5.35.0-004", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if system is not installed", async () => { - const handler = createDdbMigrationHandler({ table, migrations: [Tenancy_5_35_0_004] }); - - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertDynamoDbTestData(table, testData); - const handler = createDdbMigrationHandler({ table, migrations: [Tenancy_5_35_0_004] }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const allTenants = await scanTable(table, { - index: "GSI1", - filters: [{ attr: "GSI1_PK", eq: "TENANTS" }] - }); - - expect(allTenants.length).toEqual(3); - expect(allTenants[0].data).toBeTruthy(); - expect(allTenants[0].data.id).toEqual(allTenants[0].id); - expect(allTenants[0].GSI1_SK).toEqual(testData[0].GSI1_SK); - expect(allTenants[1].data).toBeTruthy(); - expect(allTenants[1].data.id).toEqual(allTenants[1].id); - expect(allTenants[1].GSI1_SK).toEqual(testData[1].GSI1_SK); - expect(allTenants[2].data).toBeTruthy(); - expect(allTenants[2].data.id).toEqual(allTenants[2].id); - expect(allTenants[2].GSI1_SK).toEqual(testData[2].GSI1_SK); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertDynamoDbTestData(table, testData); - const handler = createDdbMigrationHandler({ table, migrations: [Tenancy_5_35_0_004] }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.35.0/005/005.data.ts b/packages/migrations/__tests__/migrations/5.35.0/005/005.data.ts deleted file mode 100644 index 8d773b21dc5..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/005/005.data.ts +++ /dev/null @@ -1,369 +0,0 @@ -import { CmsModel } from "~/migrations/5.35.0/005/types"; - -const createdBy = { - id: "admin", - type: "admin", - displayName: "Admin" -}; - -export const createTenantsData = () => { - return [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - }, - { - PK: "T#completelyOtherTenant", - SK: "A", - createdOn: "2023-03-11T10:00:54.963Z", - description: "Tenant #2", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T10:00:54.963Z", - data: { - id: "completelyOtherTenant", - name: "Completely Other Tenant", - parent: "root", - savedOn: "2023-03-11T10:00:54.963Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - } - ]; -}; - -export const createLocalesData = () => { - return [ - { - PK: `T#root#I18N#L`, - SK: "en-US", - code: "en-US", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#completelyOtherTenant#I18N#L`, - SK: "es-ES", - code: "es-ES", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "completelyOtherTenant", - webinyVersion: "0.0.0" - } - ]; -}; - -export const createModelsData = (): CmsModel[] => { - return [ - { - PK: "T#root#L#en-US#CMS#CM", - SK: "article", - TYPE: "cms.model", - _ct: "2023-01-25T09:37:58.220Z", - _et: "CmsModels", - _md: "2023-01-25T09:37:58.220Z", - modelId: "article", - name: "Article", - description: "A simple article model.", - fields: [], - layout: [], - lockedFields: [], - titleFieldId: "id", - group: { - id: "unknown", - name: "Unknown" - }, - locale: "en-US", - tenant: "root", - createdOn: "2023-01-25T09:37:58.183Z", - savedOn: "2023-01-25T09:37:58.183Z", - webinyVersion: "0.0.0", - createdBy - }, - { - PK: "T#root#L#en-US#CMS#CM", - SK: "category", - TYPE: "cms.model", - _ct: "2023-01-25T09:37:58.220Z", - _et: "CmsModels", - _md: "2023-01-25T09:37:58.220Z", - modelId: "category", - name: "Category", - description: "A simple category model.", - fields: [], - layout: [], - lockedFields: [], - titleFieldId: "id", - group: { - id: "unknown", - name: "Unknown" - }, - locale: "en-US", - tenant: "root", - createdOn: "2023-01-25T09:37:58.183Z", - savedOn: "2023-01-25T09:37:58.183Z", - webinyVersion: "0.0.0", - createdBy - }, - { - PK: "T#root#L#en-US#CMS#CM", - SK: "author", - TYPE: "cms.model", - _ct: "2023-01-25T09:37:58.220Z", - _et: "CmsModels", - _md: "2023-01-25T09:37:58.220Z", - modelId: "author", - name: "Author", - description: "A simple author model.", - fields: [], - layout: [], - lockedFields: [], - titleFieldId: "id", - group: { - id: "unknown", - name: "Unknown" - }, - locale: "en-US", - tenant: "root", - createdOn: "2023-01-25T09:37:58.183Z", - savedOn: "2023-01-25T09:37:58.183Z", - webinyVersion: "0.0.0", - createdBy - }, - { - PK: "T#root#L#de-DE#CMS#CM", - SK: "category", - TYPE: "cms.model", - _ct: "2023-01-25T09:37:58.220Z", - _et: "CmsModels", - _md: "2023-01-25T09:37:58.220Z", - modelId: "category", - name: "Category DE", - description: "A simple category model on DE locale.", - fields: [], - layout: [], - lockedFields: [], - titleFieldId: "id", - group: { - id: "unknown", - name: "Unknown" - }, - locale: "de-DE", - tenant: "root", - createdOn: "2023-01-25T09:37:58.183Z", - savedOn: "2023-01-25T09:37:58.183Z", - webinyVersion: "0.0.0", - createdBy - }, - { - PK: "T#root#L#fr-FR#CMS#CM", - SK: "category", - TYPE: "cms.model", - _ct: "2023-01-25T09:37:58.220Z", - _et: "CmsModels", - _md: "2023-01-25T09:37:58.220Z", - modelId: "category", - name: "Category FR", - description: "A simple category model on FR locale.", - fields: [], - layout: [], - lockedFields: [], - titleFieldId: "id", - group: { - id: "unknown", - name: "Unknown" - }, - locale: "fr-FR", - tenant: "root", - createdOn: "2023-01-25T09:37:58.183Z", - savedOn: "2023-01-25T09:37:58.183Z", - webinyVersion: "0.0.0", - createdBy - }, - { - PK: "T#root#L#fr-FR#CMS#CM", - SK: "author", - TYPE: "cms.model", - _ct: "2023-01-25T09:37:58.220Z", - _et: "CmsModels", - _md: "2023-01-25T09:37:58.220Z", - modelId: "author", - name: "Author FR", - description: "A simple author model on FR locale.", - fields: [], - layout: [], - lockedFields: [], - titleFieldId: "id", - group: { - id: "unknown", - name: "Unknown" - }, - locale: "fr-FR", - tenant: "root", - createdOn: "2023-01-25T09:37:58.183Z", - savedOn: "2023-01-25T09:37:58.183Z", - webinyVersion: "0.0.0", - createdBy - }, - { - PK: "T#otherTenant#L#de-DE#CMS#CM", - SK: "category", - TYPE: "cms.model", - _ct: "2023-01-25T09:37:58.220Z", - _et: "CmsModels", - _md: "2023-01-25T09:37:58.220Z", - modelId: "category", - name: "Category DE", - description: "A simple category model on DE locale on otherTenant.", - fields: [], - layout: [], - lockedFields: [], - titleFieldId: "id", - group: { - id: "unknown", - name: "Unknown" - }, - locale: "de-DE", - tenant: "otherTenant", - createdOn: "2023-01-25T09:37:58.183Z", - savedOn: "2023-01-25T09:37:58.183Z", - webinyVersion: "0.0.0", - createdBy - }, - { - PK: "T#otherTenant#L#fr-FR#CMS#CM", - SK: "category", - TYPE: "cms.model", - _ct: "2023-01-25T09:37:58.220Z", - _et: "CmsModels", - _md: "2023-01-25T09:37:58.220Z", - modelId: "category", - name: "Category FR", - description: "A simple category model on FR locale on otherTenant.", - fields: [], - layout: [], - lockedFields: [], - titleFieldId: "id", - group: { - id: "unknown", - name: "Unknown" - }, - locale: "fr-FR", - tenant: "otherTenant", - createdOn: "2023-01-25T09:37:58.183Z", - savedOn: "2023-01-25T09:37:58.183Z", - webinyVersion: "0.0.0", - createdBy - }, - { - PK: "T#completelyOtherTenant#L#es-ES#CMS#CM", - SK: "article", - TYPE: "cms.model", - _ct: "2023-01-25T09:37:58.220Z", - _et: "CmsModels", - _md: "2023-01-25T09:37:58.220Z", - modelId: "article", - name: "Article ES", - description: "A simple article model on ES locale and completelyOtherTenant.", - fields: [], - layout: [], - lockedFields: [], - titleFieldId: "id", - group: { - id: "unknown", - name: "Unknown" - }, - locale: "es-ES", - tenant: "completelyOtherTenant", - createdOn: "2023-01-25T09:37:58.183Z", - savedOn: "2023-01-25T09:37:58.183Z", - webinyVersion: "0.0.0", - createdBy - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.35.0/005/005.test.ts b/packages/migrations/__tests__/migrations/5.35.0/005/005.test.ts deleted file mode 100644 index 2a443b63dff..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/005/005.test.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { CmsModels_5_35_0_005 } from "~/migrations/5.35.0/005"; -import { createTenantsData, createLocalesData, createModelsData } from "./005.data"; -import upperFirst from "lodash/upperFirst"; -import camelCase from "lodash/camelCase"; -import pluralize from "pluralize"; - -jest.retryTimes(0); - -describe("5.35.0-005", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if there are no models", async () => { - const handler = createDdbMigrationHandler({ table, migrations: [CmsModels_5_35_0_005] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, [ - ...createTenantsData(), - ...createLocalesData(), - ...createModelsData() - ]); - - const handler = createDdbMigrationHandler({ table, migrations: [CmsModels_5_35_0_005] }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const models = await scanTable(table, { - filters: [ - { - attr: "TYPE", - eq: "cms.model" - } - ] - }); - - expect(models.length).toBe(9); - - for (const model of models) { - expect(model.singularApiName).toEqual(upperFirst(camelCase(model.modelId))); - expect(model.pluralApiName).toEqual(pluralize(upperFirst(camelCase(model.modelId)))); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.35.0/006/ddb-es/006.data.ts b/packages/migrations/__tests__/migrations/5.35.0/006/ddb-es/006.data.ts deleted file mode 100644 index a931b23c361..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/006/ddb-es/006.data.ts +++ /dev/null @@ -1,106 +0,0 @@ -export const createdBy = { - id: "admin", - type: "admin", - displayName: "Admin" -}; - -export const createTenantsData = () => { - return [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - } - ]; -}; - -export const createLocalesData = () => { - return [ - { - PK: `T#root#I18N#L`, - SK: "en-US", - code: "en-US", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "ja-JP", - code: "ja-JP", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.35.0/006/ddb-es/006.test.ts b/packages/migrations/__tests__/migrations/5.35.0/006/ddb-es/006.test.ts deleted file mode 100644 index 822fe114bb0..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/006/ddb-es/006.test.ts +++ /dev/null @@ -1,299 +0,0 @@ -import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; -import { - assertNotError, - createDdbEsMigrationHandler, - delay, - getDynamoToEsTable, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { AcoRecords_5_35_0_006 } from "~/migrations/5.35.0/006/ddb-es"; -import { createLocalesData, createTenantsData } from "./006.data"; -import { esGetIndexName } from "~/utils"; -import { getCompressedData } from "~/migrations/5.35.0/006/utils/getCompressedData"; -import { ACO_SEARCH_MODEL_ID, PB_PAGE_TYPE, ROOT_FOLDER } from "~/migrations/5.35.0/006/constants"; -import { insertTestPages } from "./insertTestPages"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.35.0-006", () => { - const ddbTable = getPrimaryDynamoDbTable(); - const ddbToEsTable = getDynamoToEsTable(); - const elasticsearchClient = createElasticsearchClient(); - - beforeEach(async () => { - process.env.ELASTIC_SEARCH_INDEX_PREFIX = - new Date().toISOString().replace(/\.|\:/g, "-").toLowerCase() + "-"; - - await elasticsearchClient.indices.deleteAll(); - }); - afterEach(async () => { - await elasticsearchClient.indices.deleteAll(); - }); - - logTestNameBeforeEachTest(); - - it("should not run if no tenant found", async () => { - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [AcoRecords_5_35_0_006] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no locale found", async () => { - await insertTestData(ddbTable, [...createTenantsData()]); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [AcoRecords_5_35_0_006] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no pages found", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [AcoRecords_5_35_0_006] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - const { ddbPages } = await insertTestPages({ - elasticsearchClient, - ddbTable, - esTable: ddbToEsTable - }); - await delay(3000); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [AcoRecords_5_35_0_006] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const ddbSearchRecords = await scanTable(ddbTable, { - entity: "CmsEntries", - filters: [ - { - attr: "modelId", - eq: "acoSearchRecord" - } - ] - }); - - const ddbEsSearchRecords = await scanTable(ddbToEsTable, { - entity: "CmsEntriesElasticsearch", - filters: [ - { - attr: "index", - contains: "acosearchrecord" - } - ] - }); - - expect(ddbSearchRecords.length).toBe(ddbPages.length * 2); - expect(ddbEsSearchRecords.length).toBe(ddbPages.length); - - for (const page of ddbPages) { - const { - createdBy, - createdOn, - id, - locale, - locked, - path, - pid, - savedOn, - status, - tenant, - title, - version, - webinyVersion - } = page; - - const ddbSearchRecord = ddbSearchRecords.find( - record => record.id === `wby-aco-${pid}#0001` - ); - const ddbEsSearchRecord = ddbEsSearchRecords.find( - record => record.PK === `T#${tenant}#L#${locale}#CMS#CME#wby-aco-${pid}` - ); - - // Checking DDB ACO search record - expect(ddbSearchRecord).toMatchObject({ - PK: `T#${tenant}#L#${locale}#CMS#CME#wby-aco-${pid}`, - SK: "L", - TYPE: "L", - entryId: `wby-aco-${pid}`, - id: `wby-aco-${pid}#0001`, - locale, - tenant, - version: 1, - webinyVersion, - values: { - "text@title": title, - "text@content": `${title} Heading ${pid} Lorem ipsum dolor sit amet.`, - "text@type": PB_PAGE_TYPE, - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "text@tags": [`tag-${pid}-1`, `tag-${pid}-2`], - "wby-aco-json@data": { - createdBy, - createdOn, - id, - locked, - path, - pid, - savedOn, - status, - title, - version - } - } - }); - - const data = await getCompressedData({ - modelId: ACO_SEARCH_MODEL_ID, - version: 1, - savedOn, - locale, - status: "draft", - values: { - "text@type": PB_PAGE_TYPE, - "text@title": title, - "text@content": `${title} Heading ${pid} Lorem ipsum dolor sit amet.`, - "text@tags": [`tag-${pid}-1`, `tag-${pid}-2`], - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "wby-aco-json@data": { - id: `${pid}#0001`, - pid, - title, - createdBy, - createdOn, - savedOn, - status, - version, - locked, - path - } - }, - createdBy, - entryId: `wby-aco-${pid}`, - tenant, - createdOn, - locked: false, - ownedBy: createdBy, - webinyVersion: process.env.WEBINY_VERSION, - id: `wby-aco-${pid}#0001`, - modifiedBy: createdBy, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - rawValues: { - "object@location": {} - } - }); - - // Checking DDB + ES ACO search record - expect(ddbEsSearchRecord).toMatchObject({ - PK: `T#${tenant}#L#${locale}#CMS#CME#wby-aco-${pid}`, - SK: "L", - index: esGetIndexName({ - tenant, - locale, - type: "acosearchrecord", - isHeadlessCmsModel: true - }), - data - }); - } - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - await insertTestPages({ - esTable: ddbToEsTable, - elasticsearchClient, - ddbTable, - numberOfPages: 1 - }); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [AcoRecords_5_35_0_006] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.35.0/006/ddb-es/insertTestPages.ts b/packages/migrations/__tests__/migrations/5.35.0/006/ddb-es/insertTestPages.ts deleted file mode 100644 index 79383d93aa4..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/006/ddb-es/insertTestPages.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { createdBy, createLocalesData, createTenantsData } from "./006.data"; -import { createId, insertDynamoDbTestData } from "~tests/utils"; -import { insertElasticsearchTestData } from "~tests/utils/insertElasticsearchTestData"; -import { Page } from "~/migrations/5.35.0/006/types"; -import { esGetIndexName } from "~/utils"; -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - OriginalDynamoDbPageRecord, - OriginalDynamoElasticsearchDbPageRecord, - OriginalElasticsearchPageRecord -} from "./types"; -import { ElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; - -/** - * Reduced number of records because it is not necessary anymore to run tests with large amount of records. - */ -const NUMBER_OF_PAGES = 15; -const INDEX_TYPE = "page-builder"; - -interface InsertTestPagesParams { - numberOfPages?: number; - elasticsearchClient: ElasticsearchClient; - ddbTable: Table; - esTable: Table; -} - -export const insertTestPages = async (params: InsertTestPagesParams) => { - const { numberOfPages = NUMBER_OF_PAGES, ddbTable, esTable, elasticsearchClient } = params; - - const ddbPages: OriginalDynamoDbPageRecord[] = []; - const ddbEsPages: OriginalDynamoElasticsearchDbPageRecord[] = []; - const esPages: OriginalElasticsearchPageRecord[] = []; - - const tenants = createTenantsData().map(tenant => tenant.data.id); - const testLocales = createLocalesData(); - - for (const tenant of tenants) { - const locales = testLocales - .filter(item => item.PK === `T#${tenant}#I18N#L`) - .map(locale => locale.code) as string[]; - - for (const locale of locales) { - for (let index = 0; index < numberOfPages; index++) { - const pid = createId(); - - const page: Page = { - category: "static", - createdBy, - createdOn: new Date().toISOString(), - editor: "page-builder", - id: `${pid}#0001`, - locale, - tenant, - locked: true, - ownedBy: createdBy, - path: `/untitled-${pid}`, - pid, - publishedOn: new Date().toISOString(), - savedOn: new Date().toISOString(), - status: "published", - title: `Page ${pid}`, - version: 1, - webinyVersion: "0.0.0", - content: null, - createdFrom: null, - settings: {} - }; - - ddbPages.push({ - ...page, - titleLC: page.title.toLowerCase(), - PK: `T#${tenant}#L#${locale}#PB#P#${pid}`, - SK: "L", - TYPE: "pb.page.l", - _ct: new Date().toISOString(), - _et: "PbPages", - _md: new Date().toISOString(), - content: { - compression: "jsonpack", - content: `id|e2BqxFH8H4|type|document|data|settings|elements|91eudXC1XO|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|Bol7kLmyfW|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|DOZwsXszAT|cell|size|asWyIzGneq|heading|text|typography|heading1|alignment|tag|h1|{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Heading+${pid}","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}|path|csorhPDr6y|paragraph|paragraph1|p|{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Lorem+ipsum+dolor+sit+amet.+","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|1J]|N|$A|Q]]]|6|@$0|14|2|15|4|$16|$A|$2|15|17|18|19|I|1A|1B]|4|$16|1C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1E|2|1F|4|$16|$A|$2|1F|17|1G|19|I|1A|1H]|4|$16|1I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R]]]|1D|@1|7|R]]]|1D|@1|7]]]|1D|@1]]]|1D|@]]` - }, - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: [`tag-${pid}-1`, `tag-${pid}-2`] - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - } - }); - - ddbEsPages.push({ - PK: `T#${tenant}#L#${locale}#PB#P#${pid}`, - SK: "L", - index: `${tenant.toLowerCase()}-${locale.toLowerCase()}-page-builder`, - _ct: "2023-04-05T09:37:05.038Z", - _et: "PbPagesEs", - _md: "2023-04-05T09:37:05.038Z", - data: { - __type: "page", - latest: true, - titleLC: page.title.toLowerCase(), - tags: [], - snippet: null, - images: null, - ...page - } - }); - - esPages.push({ - __type: "page", - latest: true, - titleLC: page.title.toLowerCase(), - tags: [], - snippet: null, - images: null, - ...page - }); - } - } - } - // Inserting useful data: latest page record - await insertDynamoDbTestData(ddbTable, ddbPages); - await insertDynamoDbTestData(esTable, ddbEsPages); - await insertElasticsearchTestData(elasticsearchClient, esPages, item => { - return esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - type: INDEX_TYPE - }); - }); - - await elasticsearchClient.indices.refreshAll(); - - return { - ddbPages, - ddbEsPages, - esPages - }; -}; diff --git a/packages/migrations/__tests__/migrations/5.35.0/006/ddb-es/types.ts b/packages/migrations/__tests__/migrations/5.35.0/006/ddb-es/types.ts deleted file mode 100644 index 5633c0e8a40..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/006/ddb-es/types.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Identity, Page } from "~/migrations/5.35.0/006/types"; - -export interface OriginalDynamoDbPageRecord { - PK: string; - SK: string; - TYPE: string; - category: "static" | string; - content: { - compression: "jsonpack"; - content: string; - }; - createdBy: Identity; - createdOn: string; - editor: "page-builder" | string; - id: string; - locale: string; - locked: boolean; - ownedBy: Identity; - path: string; - pid: string; - publishedOn: string | null; - savedOn: string; - settings: { - general: { - image?: string | null; - layout: "static"; - snippet?: string | null; - tags: string[]; - }; - seo: { - description?: string | null; - meta: any[]; - title: null; - }; - social: { - description?: string | null; - image?: string | null; - meta: any[]; - title?: string | null; - }; - }; - status: string; - tenant: string; - title: string; - titleLC: string; - version: number; - webinyVersion: string; - _ct: string; - _et: string; - _md: string; -} - -export interface OriginalDynamoElasticsearchDbPageRecord { - PK: string; - SK: string; - index: string; - _ct: string; - _md: string; - _et: string; - data: Page & { - __type: string; - latest: boolean; - titleLC: string; - tags: string[]; - snippet: null; - images: null; - }; -} - -export interface OriginalElasticsearchPageRecord extends Page { - __type: string; - latest: boolean; - titleLC: string; - tags: string[]; - snippet: null; - images: null; -} diff --git a/packages/migrations/__tests__/migrations/5.35.0/006/ddb/006.data.ts b/packages/migrations/__tests__/migrations/5.35.0/006/ddb/006.data.ts deleted file mode 100644 index 2470d145903..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/006/ddb/006.data.ts +++ /dev/null @@ -1,1618 +0,0 @@ -export const createdBy = { - id: "admin", - type: "admin", - displayName: "Admin" -}; - -export const createTenantsData = () => { - return [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - } - ]; -}; - -export const createLocalesData = () => { - return [ - { - PK: `T#root#I18N#L`, - SK: "en-US", - code: "en-US", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - } - ]; -}; - -export const createPagesData = () => { - return [ - { - PK: "T#root#L#en-US#PB#P", - SK: "64229f4fce15ca00086c890e", - category: "static", - content: { - compression: "jsonpack", - content: - "id|MolpC3bKAW|type|document|data|settings|elements|K54r8pib0f|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|5ZWEOYhcLm|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|dfFkB6NDdJ|cell|size|7HZSe8qd1q|heading|text|typography|heading1|alignment|tag|h1|Home+title|path|1EDaOTibHO|paragraph|paragraph1|p|Lorem+ipsum+dolor+sit+amet,+consectetur+adipiscing+elit.^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|1J]]]|6|@$0|14|2|15|4|$16|$A|$2|15|17|18|19|I|1A|1B]|4|$16|1C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1E|2|1F|4|$16|$A|$2|1F|17|1G|19|I|1A|1H]|4|$16|1I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R]]]|1D|@1|7|R]]]|1D|@1|7]]]|1D|@1]]]|1D|@]]" - }, - createdBy, - createdOn: "2023-03-28T08:03:27.410Z", - editor: "page-builder", - GSI1_PK: "T#root#L#en-US#PB#PATH", - GSI1_SK: "/untitled-lfrz14x0", - id: "64229f4fce15ca00086c890e#0001", - locale: "en-US", - locked: true, - ownedBy: createdBy, - path: "/untitled-lfrz14x0", - pid: "64229f4fce15ca00086c890e", - publishedOn: "2023-03-28T08:03:55.854Z", - savedOn: "2023-03-28T08:03:55.854Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "published", - tenant: "root", - title: "Home", - titleLC: "home", - TYPE: "pb.page.p", - version: 1, - webinyVersion: "0.0.0", - _ct: "2023-03-28T08:03:55.855Z", - _et: "PbPages", - _md: "2023-03-28T08:03:55.855Z" - }, - { - PK: "T#root#L#en-US#PB#L", - SK: "64229f4fce15ca00086c890e", - category: "static", - content: { - compression: "jsonpack", - content: - "id|MolpC3bKAW|type|document|data|settings|elements|K54r8pib0f|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|5ZWEOYhcLm|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|dfFkB6NDdJ|cell|size|7HZSe8qd1q|heading|text|typography|heading1|alignment|tag|h1|Home+title|path|1EDaOTibHO|paragraph|paragraph1|p|Lorem+ipsum+dolor+sit+amet,+consectetur+adipiscing+elit.^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|1J]]]|6|@$0|14|2|15|4|$16|$A|$2|15|17|18|19|I|1A|1B]|4|$16|1C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1E|2|1F|4|$16|$A|$2|1F|17|1G|19|I|1A|1H]|4|$16|1I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R]]]|1D|@1|7|R]]]|1D|@1|7]]]|1D|@1]]]|1D|@]]" - }, - createdBy, - createdOn: "2023-03-28T08:03:27.410Z", - editor: "page-builder", - id: "64229f4fce15ca00086c890e#0001", - locale: "en-US", - locked: true, - ownedBy: createdBy, - path: "/untitled-lfrz14x0", - pid: "64229f4fce15ca00086c890e", - publishedOn: "2023-03-28T08:03:55.854Z", - savedOn: "2023-03-28T08:03:55.854Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "published", - tenant: "root", - title: "Home", - titleLC: "home", - TYPE: "pb.page.l", - version: 1, - webinyVersion: "0.0.0", - _ct: "2023-03-28T08:03:55.855Z", - _et: "PbPages", - _md: "2023-03-28T08:03:55.855Z" - }, - { - PK: "T#root#L#en-US#PB#64229f4fce15ca00086c890e", - SK: "1", - category: "static", - content: { - compression: "jsonpack", - content: - "id|MolpC3bKAW|type|document|data|settings|elements|K54r8pib0f|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|5ZWEOYhcLm|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|dfFkB6NDdJ|cell|size|7HZSe8qd1q|heading|text|typography|heading1|alignment|tag|h1|Home+title|path|1EDaOTibHO|paragraph|paragraph1|p|Lorem+ipsum+dolor+sit+amet,+consectetur+adipiscing+elit.^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|1J]]]|6|@$0|14|2|15|4|$16|$A|$2|15|17|18|19|I|1A|1B]|4|$16|1C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1E|2|1F|4|$16|$A|$2|1F|17|1G|19|I|1A|1H]|4|$16|1I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R]]]|1D|@1|7|R]]]|1D|@1|7]]]|1D|@1]]]|1D|@]]" - }, - createdBy, - createdOn: "2023-03-28T08:03:27.410Z", - editor: "page-builder", - id: "64229f4fce15ca00086c890e#0001", - locale: "en-US", - locked: true, - ownedBy: createdBy, - path: "/untitled-lfrz14x0", - pid: "64229f4fce15ca00086c890e", - publishedOn: "2023-03-28T08:03:55.854Z", - savedOn: "2023-03-28T08:03:55.854Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "published", - tenant: "root", - title: "Home", - titleLC: "home", - TYPE: "pb.page", - version: 1, - webinyVersion: "0.0.0", - _ct: "2023-03-28T08:03:55.854Z", - _et: "PbPages", - _md: "2023-03-28T08:03:55.854Z" - }, - { - PK: "T#root#L#en-US#PB#P", - SK: "64229f6fce15ca00086c890f", - category: "static", - content: { - compression: "jsonpack", - content: - "id|HvJ84m0Iic|type|document|data|settings|elements|gXx1W7tITY|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|ZcqeQjzAt2|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|RQsf4x5nDb|cell|size|cZDkU3tEdt|heading|text|typography|heading1|alignment|tag|h1|Page+1+title|path|irEHg5T9fK|paragraph|paragraph1|p|Suspendisse+varius+enim+in+eros+elementum+tristique.^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|1J]]]|6|@$0|14|2|15|4|$16|$A|$2|15|17|18|19|I|1A|1B]|4|$16|1C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1E|2|1F|4|$16|$A|$2|1F|17|1G|19|I|1A|1H]|4|$16|1I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R]]]|1D|@1|7|R]]]|1D|@1|7]]]|1D|@1]]]|1D|@]]" - }, - createdBy, - createdOn: "2023-03-28T08:03:59.776Z", - editor: "page-builder", - GSI1_PK: "T#root#L#en-US#PB#PATH", - GSI1_SK: "/untitled-lfrz1twf", - id: "64229f6fce15ca00086c890f#0001", - locale: "en-US", - locked: true, - ownedBy: createdBy, - path: "/untitled-lfrz1twf", - pid: "64229f6fce15ca00086c890f", - publishedOn: "2023-03-28T08:04:25.918Z", - savedOn: "2023-03-28T08:04:25.918Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "published", - tenant: "root", - title: "Page 1", - titleLC: "page 1", - TYPE: "pb.page.p", - version: 1, - webinyVersion: "0.0.0", - _ct: "2023-03-28T08:04:25.919Z", - _et: "PbPages", - _md: "2023-03-28T08:04:25.919Z" - }, - { - PK: "T#root#L#en-US#PB#L", - SK: "64229f6fce15ca00086c890f", - category: "static", - content: { - compression: "jsonpack", - content: - "id|HvJ84m0Iic|type|document|data|settings|elements|gXx1W7tITY|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|ZcqeQjzAt2|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|RQsf4x5nDb|cell|size|cZDkU3tEdt|heading|text|typography|heading1|alignment|tag|h1|Page+1+title|path|irEHg5T9fK|paragraph|paragraph1|p|Suspendisse+varius+enim+in+eros+elementum+tristique.^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|1J]]]|6|@$0|14|2|15|4|$16|$A|$2|15|17|18|19|I|1A|1B]|4|$16|1C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1E|2|1F|4|$16|$A|$2|1F|17|1G|19|I|1A|1H]|4|$16|1I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R]]]|1D|@1|7|R]]]|1D|@1|7]]]|1D|@1]]]|1D|@]]" - }, - createdBy, - createdOn: "2023-03-28T08:03:59.776Z", - editor: "page-builder", - id: "64229f6fce15ca00086c890f#0001", - locale: "en-US", - locked: true, - ownedBy: createdBy, - path: "/untitled-lfrz1twf", - pid: "64229f6fce15ca00086c890f", - publishedOn: "2023-03-28T08:04:25.918Z", - savedOn: "2023-03-28T08:04:25.918Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "published", - tenant: "root", - title: "Page 1", - titleLC: "page 1", - TYPE: "pb.page.l", - version: 1, - webinyVersion: "0.0.0", - _ct: "2023-03-28T08:04:25.919Z", - _et: "PbPages", - _md: "2023-03-28T08:04:25.919Z" - }, - { - PK: "T#root#L#en-US#PB#64229f6fce15ca00086c890f", - SK: "1", - category: "static", - content: { - compression: "jsonpack", - content: - "id|HvJ84m0Iic|type|document|data|settings|elements|gXx1W7tITY|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|ZcqeQjzAt2|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|RQsf4x5nDb|cell|size|cZDkU3tEdt|heading|text|typography|heading1|alignment|tag|h1|Page+1+title|path|irEHg5T9fK|paragraph|paragraph1|p|Suspendisse+varius+enim+in+eros+elementum+tristique.^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|1J]]]|6|@$0|14|2|15|4|$16|$A|$2|15|17|18|19|I|1A|1B]|4|$16|1C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1E|2|1F|4|$16|$A|$2|1F|17|1G|19|I|1A|1H]|4|$16|1I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R]]]|1D|@1|7|R]]]|1D|@1|7]]]|1D|@1]]]|1D|@]]" - }, - createdBy, - createdOn: "2023-03-28T08:03:59.776Z", - editor: "page-builder", - id: "64229f6fce15ca00086c890f#0001", - locale: "en-US", - locked: true, - ownedBy: createdBy, - path: "/untitled-lfrz1twf", - pid: "64229f6fce15ca00086c890f", - publishedOn: "2023-03-28T08:04:25.918Z", - savedOn: "2023-03-28T08:04:25.918Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "published", - tenant: "root", - title: "Page 1", - titleLC: "page 1", - TYPE: "pb.page", - version: 1, - webinyVersion: "0.0.0", - _ct: "2023-03-28T08:04:25.918Z", - _et: "PbPages", - _md: "2023-03-28T08:04:25.918Z" - }, - { - PK: "T#root#L#en-US#PB#P", - SK: "642406c52a40e70008fee21d", - category: "static", - content: { - compression: "jsonpack", - content: - "id|FOT7NQ3gam|type|document|data|settings|elements|G47wKdHPBI|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|keUeUenx3P|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|Qt1p8OlyyH|cell|size|XD7a4LnuWx|heading|text|typography|heading1|alignment|tag|h1|Page+2|path|ozFJzuQseJ|paragraph|paragraph1|p|Aenean+faucibus+nibh+et+justo+cursus+id+rutrum+lorem+imperdiet.+Nunc+ut+sem+vitae+risus+tristique+posuere.|MLNrSLqBoU|list|div|
    \n++++++++++++++++++++
  • List+item+1
  • \n++++++++++++++++++++
  • List+item+2
  • \n++++++++++++++++++++
  • List+item+3
  • \n++++++++++++++++
|FhLTsIncSt|quote|
Block+Quote
|nZOfqLWtvc|image|file|6424072bfb907800086373fb|src|https://d10tqewv85yaar.cloudfront.net/files/8lfthvnc3-t_pzvyZZ_400x400.jpg|title|Cat+roll|link|href^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|20]]]|6|@$0|14|2|15|4|$16|$A|$2|15|17|18|19|I|1A|1B]|4|$16|1C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1E|2|1F|4|$16|$A|$2|1F|17|1G|19|I|1A|1H]|4|$16|1I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1J|2|1K|4|$16|$A|$2|1K|17|1K|19|I|1A|1L]|4|$16|1M]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1N|2|1O|4|$16|$A|$2|1O|17|1O|19|I|1A|1L]|4|$16|1P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1Q|2|1R|4|$5|$N|$A|O]|D|$A|$L|F]]|K|$A|$L|F]]]|1R|$1S|$0|1T|1U|1V]|1W|1X]|1Y|$1Z|-4]]|6|@]|1D|@1|7|R]]]|1D|@1|7|R]]]|1D|@1|7]]]|1D|@1]]]|1D|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T09:37:09.588Z", - editor: "page-builder", - GSI1_PK: "T#root#L#en-US#PB#PATH", - GSI1_SK: "/untitled-lfththow", - id: "642406c52a40e70008fee21d#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lfththow", - pid: "642406c52a40e70008fee21d", - publishedOn: "2023-03-29T09:52:16.643Z", - savedOn: "2023-03-29T09:52:16.643Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "published", - tenant: "root", - title: "Page 2", - titleLC: "page 2", - TYPE: "pb.page.p", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T09:52:16.653Z", - _et: "PbPages", - _md: "2023-03-29T09:52:16.653Z" - }, - { - PK: "T#root#L#en-US#PB#642406c52a40e70008fee21d", - SK: "1", - category: "static", - content: { - compression: "jsonpack", - content: - "id|FOT7NQ3gam|type|document|data|settings|elements|G47wKdHPBI|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|keUeUenx3P|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|Qt1p8OlyyH|cell|size|XD7a4LnuWx|heading|text|typography|heading1|alignment|tag|h1|Page+2|path|ozFJzuQseJ|paragraph|paragraph1|p|Aenean+faucibus+nibh+et+justo+cursus+id+rutrum+lorem+imperdiet.+Nunc+ut+sem+vitae+risus+tristique+posuere.|MLNrSLqBoU|list|div|
    \n++++++++++++++++++++
  • List+item+1
  • \n++++++++++++++++++++
  • List+item+2
  • \n++++++++++++++++++++
  • List+item+3
  • \n++++++++++++++++
|FhLTsIncSt|quote|
Block+Quote
|nZOfqLWtvc|image|file|6424072bfb907800086373fb|src|https://d10tqewv85yaar.cloudfront.net/files/8lfthvnc3-t_pzvyZZ_400x400.jpg|title|Cat+roll|link|href^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|20]]]|6|@$0|14|2|15|4|$16|$A|$2|15|17|18|19|I|1A|1B]|4|$16|1C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1E|2|1F|4|$16|$A|$2|1F|17|1G|19|I|1A|1H]|4|$16|1I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1J|2|1K|4|$16|$A|$2|1K|17|1K|19|I|1A|1L]|4|$16|1M]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1N|2|1O|4|$16|$A|$2|1O|17|1O|19|I|1A|1L]|4|$16|1P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1Q|2|1R|4|$5|$N|$A|O]|D|$A|$L|F]]|K|$A|$L|F]]]|1R|$1S|$0|1T|1U|1V]|1W|1X]|1Y|$1Z|-4]]|6|@]|1D|@1|7|R]]]|1D|@1|7|R]]]|1D|@1|7]]]|1D|@1]]]|1D|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T09:37:09.588Z", - editor: "page-builder", - id: "642406c52a40e70008fee21d#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lfththow", - pid: "642406c52a40e70008fee21d", - publishedOn: "2023-03-29T09:52:16.643Z", - savedOn: "2023-03-29T09:52:16.643Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "published", - tenant: "root", - title: "Page 2", - titleLC: "page 2", - TYPE: "pb.page", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T09:52:16.644Z", - _et: "PbPages", - _md: "2023-03-29T09:52:16.644Z" - }, - { - PK: "T#root#L#en-US#PB#642406c52a40e70008fee21d", - SK: "2", - category: "static", - content: { - compression: "jsonpack", - content: - "id|FOT7NQ3gam|type|document|data|settings|elements|G47wKdHPBI|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|keUeUenx3P|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|Qt1p8OlyyH|cell|size|XD7a4LnuWx|heading|text|typography|heading1|alignment|tag|h1|Page+2|path|ozFJzuQseJ|paragraph|paragraph1|p|Aenean+faucibus+nibh+et+justo+cursus+id+rutrum+lorem+imperdiet.+Nunc+ut+sem+vitae+risus+tristique+posuere.|MLNrSLqBoU|list|div|
    \n++++++++++++++++++++
  • List+item+1
  • \n++++++++++++++++++++
  • List+item+2
  • \n++++++++++++++++++++
  • List+item+3
  • \n++++++++++++++++
|FhLTsIncSt|quote|
Block+Quote
|nZOfqLWtvc|image|file|6424072bfb907800086373fb|src|https://d10tqewv85yaar.cloudfront.net/files/8lfthvnc3-t_pzvyZZ_400x400.jpg|title|Cat+roll|link|href|CxuIVTo4d3|button|default|buttonText|Demo+button|action|newTab|actionType^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|28]]]|6|@$0|14|2|15|4|$16|$A|$2|15|17|18|19|I|1A|1B]|4|$16|1C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1E|2|1F|4|$16|$A|$2|1F|17|1G|19|I|1A|1H]|4|$16|1I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1J|2|1K|4|$16|$A|$2|1K|17|1K|19|I|1A|1L]|4|$16|1M]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1N|2|1O|4|$16|$A|$2|1O|17|1O|19|I|1A|1L]|4|$16|1P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1Q|2|1R|4|$5|$N|$A|O]|D|$A|$L|F]]|K|$A|$L|F]]]|1R|$1S|$0|1T|1U|1V]|1W|1X]|1Y|$1Z|-4]]|6|@]|1D|@1|7|R|11]]|$0|20|2|21|4|$2|22|23|24|5|$D|$A|$L|F]]|N|$A|O]]|25|$1Z|-4|26|-2|27|1Y]]|6|@]|1D|@1|7|R]]]|1D|@1|7|R]]]|1D|@1|7]]]|1D|@1]]]|1D|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdFrom: "642406c52a40e70008fee21d#0001", - createdOn: "2023-03-29T09:52:22.978Z", - editor: "page-builder", - id: "642406c52a40e70008fee21d#0002", - locale: "en-US", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lfththow", - pid: "642406c52a40e70008fee21d", - savedOn: "2023-03-29T09:52:46.033Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 2", - titleLC: "page 2", - TYPE: "pb.page", - version: 2, - webinyVersion: "5.34.7", - _ct: "2023-03-29T09:52:46.095Z", - _et: "PbPages", - _md: "2023-03-29T09:52:46.095Z" - }, - { - PK: "T#root#L#en-US#PB#L", - SK: "642406c52a40e70008fee21d", - category: "static", - content: { - compression: "jsonpack", - content: - "id|FOT7NQ3gam|type|document|data|settings|elements|G47wKdHPBI|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|keUeUenx3P|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|Qt1p8OlyyH|cell|size|XD7a4LnuWx|heading|text|typography|heading1|alignment|tag|h1|Page+2|path|ozFJzuQseJ|paragraph|paragraph1|p|Aenean+faucibus+nibh+et+justo+cursus+id+rutrum+lorem+imperdiet.+Nunc+ut+sem+vitae+risus+tristique+posuere.|MLNrSLqBoU|list|div|
    \n++++++++++++++++++++
  • List+item+1
  • \n++++++++++++++++++++
  • List+item+2
  • \n++++++++++++++++++++
  • List+item+3
  • \n++++++++++++++++
|FhLTsIncSt|quote|
Block+Quote
|nZOfqLWtvc|image|file|6424072bfb907800086373fb|src|https://d10tqewv85yaar.cloudfront.net/files/8lfthvnc3-t_pzvyZZ_400x400.jpg|title|Cat+roll|link|href|CxuIVTo4d3|button|default|buttonText|Demo+button|action|newTab|actionType^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|28]]]|6|@$0|14|2|15|4|$16|$A|$2|15|17|18|19|I|1A|1B]|4|$16|1C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1E|2|1F|4|$16|$A|$2|1F|17|1G|19|I|1A|1H]|4|$16|1I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1J|2|1K|4|$16|$A|$2|1K|17|1K|19|I|1A|1L]|4|$16|1M]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1N|2|1O|4|$16|$A|$2|1O|17|1O|19|I|1A|1L]|4|$16|1P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1Q|2|1R|4|$5|$N|$A|O]|D|$A|$L|F]]|K|$A|$L|F]]]|1R|$1S|$0|1T|1U|1V]|1W|1X]|1Y|$1Z|-4]]|6|@]|1D|@1|7|R|11]]|$0|20|2|21|4|$2|22|23|24|5|$D|$A|$L|F]]|N|$A|O]]|25|$1Z|-4|26|-2|27|1Y]]|6|@]|1D|@1|7|R]]]|1D|@1|7|R]]]|1D|@1|7]]]|1D|@1]]]|1D|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdFrom: "642406c52a40e70008fee21d#0001", - createdOn: "2023-03-29T09:52:22.978Z", - editor: "page-builder", - id: "642406c52a40e70008fee21d#0002", - locale: "en-US", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lfththow", - pid: "642406c52a40e70008fee21d", - savedOn: "2023-03-29T09:52:46.033Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 2", - titleLC: "page 2", - TYPE: "pb.page.l", - version: 2, - webinyVersion: "5.34.7", - _ct: "2023-03-29T09:52:46.095Z", - _et: "PbPages", - _md: "2023-03-29T09:52:46.095Z" - }, - { - PK: "T#root#L#en-US#PB#64240c026a25550008918146", - SK: "1", - category: "static", - content: { - compression: "jsonpack", - content: - "id|lp1q0escIo|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T09:59:30.365Z", - editor: "page-builder", - id: "64240c026a25550008918146#0001", - locale: "en-US", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftim88r", - pid: "64240c026a25550008918146", - savedOn: "2023-03-29T09:59:37.541Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 3", - titleLC: "page 3", - TYPE: "pb.page", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T09:59:37.565Z", - _et: "PbPages", - _md: "2023-03-29T09:59:37.565Z" - }, - { - PK: "T#root#L#en-US#PB#L", - SK: "64240c026a25550008918146", - category: "static", - content: { - compression: "jsonpack", - content: - "id|lp1q0escIo|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T09:59:30.365Z", - editor: "page-builder", - id: "64240c026a25550008918146#0001", - locale: "en-US", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftim88r", - pid: "64240c026a25550008918146", - savedOn: "2023-03-29T09:59:37.541Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 3", - titleLC: "page 3", - TYPE: "pb.page.l", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T09:59:37.565Z", - _et: "PbPages", - _md: "2023-03-29T09:59:37.565Z" - }, - { - PK: "T#root#L#en-US#PB#L", - SK: "64240c0d6a25550008918147", - category: "static", - content: { - compression: "jsonpack", - content: - "id|r2pO3PhkZ5|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T09:59:41.577Z", - editor: "page-builder", - id: "64240c0d6a25550008918147#0001", - locale: "en-US", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftimgw8", - pid: "64240c0d6a25550008918147", - savedOn: "2023-03-29T09:59:46.483Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 4", - titleLC: "page 4", - TYPE: "pb.page.l", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T09:59:46.517Z", - _et: "PbPages", - _md: "2023-03-29T09:59:46.517Z" - }, - { - PK: "T#root#L#en-US#PB#64240c0d6a25550008918147", - SK: "1", - category: "static", - content: { - compression: "jsonpack", - content: - "id|r2pO3PhkZ5|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T09:59:41.577Z", - editor: "page-builder", - id: "64240c0d6a25550008918147#0001", - locale: "en-US", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftimgw8", - pid: "64240c0d6a25550008918147", - savedOn: "2023-03-29T09:59:46.483Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 4", - titleLC: "page 4", - TYPE: "pb.page", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T09:59:46.517Z", - _et: "PbPages", - _md: "2023-03-29T09:59:46.517Z" - }, - { - PK: "T#root#L#en-US#PB#L", - SK: "64240c156a25550008918148", - category: "static", - content: { - compression: "jsonpack", - content: - "id|9jHgMYRj3w|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T09:59:49.797Z", - editor: "page-builder", - id: "64240c156a25550008918148#0001", - locale: "en-US", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftimn8k", - pid: "64240c156a25550008918148", - savedOn: "2023-03-29T09:59:55.256Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 5", - titleLC: "page 5", - TYPE: "pb.page.l", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T09:59:55.277Z", - _et: "PbPages", - _md: "2023-03-29T09:59:55.277Z" - }, - { - PK: "T#root#L#en-US#PB#64240c156a25550008918148", - SK: "1", - category: "static", - content: { - compression: "jsonpack", - content: - "id|9jHgMYRj3w|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T09:59:49.797Z", - editor: "page-builder", - id: "64240c156a25550008918148#0001", - locale: "en-US", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftimn8k", - pid: "64240c156a25550008918148", - savedOn: "2023-03-29T09:59:55.256Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 5", - titleLC: "page 5", - TYPE: "pb.page", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T09:59:55.277Z", - _et: "PbPages", - _md: "2023-03-29T09:59:55.277Z" - }, - { - PK: "T#root#L#en-US#PB#64240c1e6a25550008918149", - SK: "1", - category: "static", - content: { - compression: "jsonpack", - content: - "id|kCkoMujQ1o|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T09:59:58.533Z", - editor: "page-builder", - id: "64240c1e6a25550008918149#0001", - locale: "de-DE", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftimtz9", - pid: "64240c1e6a25550008918149", - savedOn: "2023-03-29T10:00:03.640Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 6", - titleLC: "page 6", - TYPE: "pb.page", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T10:00:03.650Z", - _et: "PbPages", - _md: "2023-03-29T10:00:03.650Z" - }, - { - PK: "T#root#L#de-DE#PB#L", - SK: "64240c1e6a25550008918149", - category: "static", - content: { - compression: "jsonpack", - content: - "id|kCkoMujQ1o|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T09:59:58.533Z", - editor: "page-builder", - id: "64240c1e6a25550008918149#0001", - locale: "en-US", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftimtz9", - pid: "64240c1e6a25550008918149", - savedOn: "2023-03-29T10:00:03.640Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 6", - titleLC: "page 6", - TYPE: "pb.page.l", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T10:00:03.650Z", - _et: "PbPages", - _md: "2023-03-29T10:00:03.650Z" - }, - { - PK: "T#root#L#de-DE#PB#L", - SK: "64240c1e6a25550008918149", - category: "static", - content: { - compression: "jsonpack", - content: - "id|kCkoMujQ1o|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T09:59:58.533Z", - editor: "page-builder", - id: "64240c1e6a25550008918149#0001", - locale: "de-DE", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftimtz9", - pid: "64240c1e6a25550008918149", - savedOn: "2023-03-29T10:00:03.640Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 6", - titleLC: "page 6", - TYPE: "pb.page.l", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T10:00:03.650Z", - _et: "PbPages", - _md: "2023-03-29T10:00:03.650Z" - }, - { - PK: "T#root#L#de-DE#PB#64240c276a2555000891814a", - SK: "1", - category: "static", - content: { - compression: "jsonpack", - content: - "id|Rgv5ev8tZh|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T10:00:07.197Z", - editor: "page-builder", - id: "64240c276a2555000891814a#0001", - locale: "de-DE", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftin0nw", - pid: "64240c276a2555000891814a", - savedOn: "2023-03-29T10:00:13.023Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 7", - titleLC: "page 7", - TYPE: "pb.page", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T10:00:13.042Z", - _et: "PbPages", - _md: "2023-03-29T10:00:13.042Z" - }, - { - PK: "T#root#L#de-DE#PB#L", - SK: "64240c276a2555000891814a", - category: "static", - content: { - compression: "jsonpack", - content: - "id|Rgv5ev8tZh|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T10:00:07.197Z", - editor: "page-builder", - id: "64240c276a2555000891814a#0001", - locale: "de-DE", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftin0nw", - pid: "64240c276a2555000891814a", - savedOn: "2023-03-29T10:00:13.023Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 7", - titleLC: "page 7", - TYPE: "pb.page.l", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T10:00:13.042Z", - _et: "PbPages", - _md: "2023-03-29T10:00:13.042Z" - }, - { - PK: "T#root#L#fr-FR#PB#L", - SK: "64240c306a2555000891814b", - category: "static", - content: { - compression: "jsonpack", - content: - "id|w5NluYIkUJ|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T10:00:16.142Z", - editor: "page-builder", - id: "64240c306a2555000891814b#0001", - locale: "fr-FR", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftin7kd", - pid: "64240c306a2555000891814b", - savedOn: "2023-03-29T10:00:21.181Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 8", - titleLC: "page 8", - TYPE: "pb.page.l", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T10:00:21.197Z", - _et: "PbPages", - _md: "2023-03-29T10:00:21.197Z" - }, - { - PK: "T#root#L#fr-FR#PB#64240c306a2555000891814b", - SK: "1", - category: "static", - content: { - compression: "jsonpack", - content: - "id|w5NluYIkUJ|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T10:00:16.142Z", - editor: "page-builder", - id: "64240c306a2555000891814b#0001", - locale: "fr-FR", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftin7kd", - pid: "64240c306a2555000891814b", - savedOn: "2023-03-29T10:00:21.181Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "root", - title: "Page 8", - titleLC: "page 8", - TYPE: "pb.page", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T10:00:21.197Z", - _et: "PbPages", - _md: "2023-03-29T10:00:21.197Z" - }, - { - PK: "T#otherTenant#L#de-DE#PB#64240c386a2555000891814c", - SK: "1", - category: "static", - content: { - compression: "jsonpack", - content: - "id|VOYIMJbmls|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T10:00:24.698Z", - editor: "page-builder", - id: "64240c386a2555000891814c#0001", - locale: "de-DE", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftine61", - pid: "64240c386a2555000891814c", - savedOn: "2023-03-29T10:00:29.817Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "otherTenant", - title: "Page 9", - titleLC: "page 9", - TYPE: "pb.page", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T10:00:29.836Z", - _et: "PbPages", - _md: "2023-03-29T10:00:29.836Z" - }, - { - PK: "T#otherTenant#L#de-DE#PB#L", - SK: "64240c386a2555000891814c", - category: "static", - content: { - compression: "jsonpack", - content: - "id|VOYIMJbmls|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T10:00:24.698Z", - editor: "page-builder", - id: "64240c386a2555000891814c#0001", - locale: "de-DE", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftine61", - pid: "64240c386a2555000891814c", - savedOn: "2023-03-29T10:00:29.817Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "otherTenant", - title: "Page 9", - titleLC: "page 9", - TYPE: "pb.page.l", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T10:00:29.837Z", - _et: "PbPages", - _md: "2023-03-29T10:00:29.837Z" - }, - { - PK: "T#otherTenant#L#fr-FR#PB#L", - SK: "64240c416a2555000891814d", - category: "static", - content: { - compression: "jsonpack", - content: - "id|iQZiPRF1kL|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T10:00:33.958Z", - editor: "page-builder", - id: "64240c416a2555000891814d#0001", - locale: "fr-FR", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftinlb9", - pid: "64240c416a2555000891814d", - savedOn: "2023-03-29T10:00:39.123Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "otherTenant", - title: "Page 10", - titleLC: "page 10", - TYPE: "pb.page.l", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T10:00:39.143Z", - _et: "PbPages", - _md: "2023-03-29T10:00:39.143Z" - }, - { - PK: "T#otherTenant#L#fr-FRPB#64240c416a2555000891814d", - SK: "1", - category: "static", - content: { - compression: "jsonpack", - content: - "id|iQZiPRF1kL|type|document|data|settings|elements|path^^^$0|1|2|3|4|$5|$]]|6|@]|7|@]]" - }, - createdBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - createdOn: "2023-03-29T10:00:33.958Z", - editor: "page-builder", - id: "64240c416a2555000891814d#0001", - locale: "fr-FR", - locked: false, - ownedBy: { - displayName: "Leonardo Giacone", - id: "172d2b80-d554-439e-ad68-445b1486e60a", - type: "admin" - }, - path: "/untitled-lftinlb9", - pid: "64240c416a2555000891814d", - savedOn: "2023-03-29T10:00:39.123Z", - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: null - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "draft", - tenant: "otherTenant", - title: "Page 10", - titleLC: "page 10", - TYPE: "pb.page", - version: 1, - webinyVersion: "5.34.7", - _ct: "2023-03-29T10:00:39.143Z", - _et: "PbPages", - _md: "2023-03-29T10:00:39.143Z" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.35.0/006/ddb/006.test.ts b/packages/migrations/__tests__/migrations/5.35.0/006/ddb/006.test.ts deleted file mode 100644 index 0c5d0b3e3af..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/006/ddb/006.test.ts +++ /dev/null @@ -1,198 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { AcoRecords_5_35_0_006 } from "~/migrations/5.35.0/006/ddb"; -import { createLocalesData, createTenantsData } from "./006.data"; -import { ACO_SEARCH_MODEL_ID, PB_PAGE_TYPE, ROOT_FOLDER } from "~/migrations/5.35.0/006/constants"; -import { insertTestPages } from "./insertTestPages"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.35.0-006", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if no tenant found", async () => { - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_35_0_006] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no locale found", async () => { - await insertTestData(table, [...createTenantsData()]); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_35_0_006] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no pages found", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_35_0_006] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - const ddbPages = await insertTestPages(table); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_35_0_006] }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const searchRecords = await scanTable(table, { - filters: [ - { - attr: "modelId", - eq: "acoSearchRecord" - } - ] - }); - - expect(searchRecords.length).toBe(ddbPages.length * 2); - - for (const page of ddbPages) { - const { - createdBy, - createdOn, - id, - locale, - locked, - path, - pid, - savedOn, - status, - tenant, - title, - version - } = page; - - const latestSearchRecord = searchRecords.find( - record => record.id === `wby-aco-${pid}#0001` && record.SK === "L" - ); - const revisionSearchRecord = searchRecords.find( - record => record.id === `wby-aco-${pid}#0001` && record.SK === "REV#0001" - ); - - const values = { - "text@title": title, - "text@content": `${title} Heading ${pid} Lorem ipsum dolor sit amet.`, - "text@type": PB_PAGE_TYPE, - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "text@tags": [`tag-${pid}`], - "wby-aco-json@data": { - createdBy, - createdOn, - id, - locked, - path, - pid, - savedOn, - status, - title, - version - } - }; - - // Checking latest ACO search record - expect(latestSearchRecord).toMatchObject({ - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#wby-aco-${pid}`, - SK: "L", - id: `wby-aco-${pid}#0001`, - entryId: `wby-aco-${pid}`, - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#acoSearchRecord#L`, - GSI1_SK: `wby-aco-${pid}#0001`, - locale, - locked: false, - modelId: ACO_SEARCH_MODEL_ID, - status: "draft", - tenant, - TYPE: "cms.entry.l", - values - }); - - // Checking revision 1 ACO search record - expect(revisionSearchRecord).toMatchObject({ - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#wby-aco-${pid}`, - SK: "REV#0001", - id: `wby-aco-${pid}#0001`, - entryId: `wby-aco-${pid}`, - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#acoSearchRecord#A`, - GSI1_SK: `wby-aco-${pid}#0001`, - locale, - locked: false, - modelId: ACO_SEARCH_MODEL_ID, - status: "draft", - tenant, - TYPE: "cms.entry", - values - }); - } - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - await insertTestPages(table, 1); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_35_0_006] }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.35.0/006/ddb/insertTestPages.ts b/packages/migrations/__tests__/migrations/5.35.0/006/ddb/insertTestPages.ts deleted file mode 100644 index 8ec59f07972..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/006/ddb/insertTestPages.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createdBy, createLocalesData, createTenantsData } from "./006.data"; -import { createId, insertDynamoDbTestData } from "~tests/utils"; -import { OriginalPageRecord } from "./types"; - -/** - * Reduced number of records because it is not necessary anymore to run tests with large amount of records. - */ -export const insertTestPages = async (table: Table, numberOfPages = 15) => { - const ddbPages: OriginalPageRecord[] = []; - - const tenants = createTenantsData().map(tenant => tenant.data.id); - const testLocales = createLocalesData(); - - for (const tenant of tenants) { - const locales = testLocales - .filter(item => item.PK === `T#${tenant}#I18N#L`) - .map(locale => locale.code) as string[]; - - for (const locale of locales) { - for (let index = 0; index < numberOfPages; index++) { - const pid = createId(); - - ddbPages.push({ - PK: `T#${tenant}#L#${locale}#PB#L`, - SK: pid, - TYPE: "pb.page.l", - category: "static", - content: { - compression: "jsonpack", - content: `id|e2BqxFH8H4|type|document|data|settings|elements|91eudXC1XO|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|Bol7kLmyfW|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|DOZwsXszAT|cell|size|asWyIzGneq|heading|text|typography|heading1|alignment|tag|h1|{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Heading+${pid}","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}|path|csorhPDr6y|paragraph|paragraph1|p|{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Lorem+ipsum+dolor+sit+amet.+","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|1J]|N|$A|Q]]]|6|@$0|14|2|15|4|$16|$A|$2|15|17|18|19|I|1A|1B]|4|$16|1C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R|11]]|$0|1E|2|1F|4|$16|$A|$2|1F|17|1G|19|I|1A|1H]|4|$16|1I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]|1D|@1|7|R]]]|1D|@1|7|R]]]|1D|@1|7]]]|1D|@1]]]|1D|@]]` - }, - createdBy, - createdOn: new Date().toISOString(), - editor: "page-builder", - id: `${pid}#0001`, - locale, - locked: true, - ownedBy: createdBy, - path: `/path-to-${pid}`, - pid, - publishedOn: new Date().toISOString(), - savedOn: new Date().toISOString(), - settings: { - general: { - image: null, - layout: "static", - snippet: null, - tags: [`tag-${pid}`] - }, - seo: { - description: null, - meta: [], - title: null - }, - social: { - description: null, - image: null, - meta: [], - title: null - } - }, - status: "published", - tenant, - title: `Page ${pid}`, - titleLC: `page ${pid}`, - version: 1, - webinyVersion: "0.0.0", - _ct: new Date().toISOString(), - _et: "PbPages", - _md: new Date().toISOString() - }); - } - - // Inserting useful data: latest page record - } - } - await insertDynamoDbTestData(table, ddbPages); - return ddbPages; -}; diff --git a/packages/migrations/__tests__/migrations/5.35.0/006/ddb/types.ts b/packages/migrations/__tests__/migrations/5.35.0/006/ddb/types.ts deleted file mode 100644 index 6e4bb654f87..00000000000 --- a/packages/migrations/__tests__/migrations/5.35.0/006/ddb/types.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Identity } from "~/migrations/5.35.0/006/types"; - -export interface OriginalPageRecord { - PK: string; - SK: string; - TYPE: string; - category: "static"; - content: { - compression: "jsonpack"; - content: string; - }; - createdBy: Identity; - createdOn: string; - editor: "page-builder"; - id: string; - locale: string; - locked: boolean; - ownedBy: Identity; - path: string; - pid: string; - publishedOn: string; - savedOn: string; - settings: { - general: { - image?: string | null; - layout: "static"; - snippet?: string | null; - tags: string[]; - }; - seo: { - description?: string | null; - meta: any[]; - title: null; - }; - social: { - description?: string | null; - image?: string | null; - meta: any[]; - title?: string | null; - }; - }; - status: "published" | "draft" | "unpublished"; - tenant: string; - title: string; - titleLC: string; - version: number; - webinyVersion: "0.0.0"; - _ct: string; - _et: "PbPages"; - _md: string; -} diff --git a/packages/migrations/__tests__/migrations/5.36.0/001/ddb-es/001.data.ts b/packages/migrations/__tests__/migrations/5.36.0/001/ddb-es/001.data.ts deleted file mode 100644 index a931b23c361..00000000000 --- a/packages/migrations/__tests__/migrations/5.36.0/001/ddb-es/001.data.ts +++ /dev/null @@ -1,106 +0,0 @@ -export const createdBy = { - id: "admin", - type: "admin", - displayName: "Admin" -}; - -export const createTenantsData = () => { - return [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - } - ]; -}; - -export const createLocalesData = () => { - return [ - { - PK: `T#root#I18N#L`, - SK: "en-US", - code: "en-US", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "ja-JP", - code: "ja-JP", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.36.0/001/ddb-es/001.test.ts b/packages/migrations/__tests__/migrations/5.36.0/001/ddb-es/001.test.ts deleted file mode 100644 index 5dd419d21ac..00000000000 --- a/packages/migrations/__tests__/migrations/5.36.0/001/ddb-es/001.test.ts +++ /dev/null @@ -1,473 +0,0 @@ -import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; - -import { - assertNotError, - createDdbEsMigrationHandler, - createId, - delay, - getDynamoToEsTable, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; - -import { AcoRecords_5_36_0_001, File } from "~/migrations/5.36.0/001/ddb-es"; - -import { createdBy, createLocalesData, createTenantsData } from "./001.data"; -import { insertElasticsearchTestData } from "~tests/utils/insertElasticsearchTestData"; -import { esCreateIndex, esGetIndexName } from "~/utils"; -import { getCompressedData } from "~/migrations/5.36.0/001/utils/getCompressedData"; -import { ACO_SEARCH_MODEL_ID, FM_FILE_TYPE, ROOT_FOLDER } from "~/migrations/5.36.0/001/constants"; -import { addMimeTag } from "~/migrations/5.36.0/001/utils/createMimeTag"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -/** - * Reduced number of records because it is not necessary anymore to run tests with large amount of records. - */ -const NUMBER_OF_FILES = 50; -const INDEX_TYPE = "file-manager"; -let numberOfGeneratedFiles = 0; - -describe("5.36.0-001", () => { - const ddbTable = getPrimaryDynamoDbTable(); - const ddbToEsTable = getDynamoToEsTable(); - const elasticsearchClient = createElasticsearchClient(); - - const ddbFiles: Record[] = []; - const ddbEsFiles: Record[] = []; - const esFiles: any[] = []; - - beforeEach(async () => { - process.env.ELASTIC_SEARCH_INDEX_PREFIX = - new Date().toISOString().replace(/\.|\:/g, "-").toLowerCase() + "-"; - - await elasticsearchClient.indices.deleteAll(); - }); - afterEach(async () => { - await elasticsearchClient.indices.deleteAll(); - }); - - const insertTestFiles = async (numberOfFiles = NUMBER_OF_FILES, privateFile = false) => { - ddbFiles.length = 0; - ddbEsFiles.length = 0; - esFiles.length = 0; - - const tenants = createTenantsData().map(tenant => tenant.data.id); - const testLocales = createLocalesData(); - - for (const tenant of tenants) { - const locales = testLocales - .filter(item => item.PK === `T#${tenant}#I18N#L`) - .map(locale => locale.code) as string[]; - - for (const locale of locales) { - // We need to add an ACO record index, in the real world this has been already created by 5.35.0 migration - await esCreateIndex({ - elasticsearchClient, - tenant, - locale, - type: "acosearchrecord", - isHeadlessCmsModel: true - }); - - for (let index = 0; index < numberOfFiles; index++) { - const id = createId(); - - const file = { - aliases: [], - createdBy, - createdOn: new Date().toISOString(), - id, - key: `${id}/demo-image-${id}.png`, - locale, - meta: { - private: privateFile - }, - name: `demo-image-${id}.png`, - size: 10000, - tags: [`tag-a-${id}`, `tag-b-${id}`], - tenant, - type: "image/png", - webinyVersion: "0.0.0" - }; - - ddbFiles.push({ - PK: `T#root#L#en-US#FM#F${id}`, - SK: "A", - GSI1_PK: "T#root#L#en-US#FM#FILES", - GSI1_SK: id, - TYPE: "fm.file", - _ct: new Date().toISOString(), - _et: "FM.File", - _md: new Date().toISOString(), - data: file - }); - - ddbEsFiles.push({ - PK: `T#${tenant}#L#${locale}#FM#F${id}`, - SK: "A", - index: `${tenant.toLowerCase()}-${locale.toLowerCase()}-file-manager`, - _ct: new Date().toISOString(), - _et: "FilesElasticsearch", - _md: new Date().toISOString(), - data: getCompressedData(file) - }); - - esFiles.push(file); - } - - // Track generated files - numberOfGeneratedFiles += numberOfFiles; - } - } - // Inserting useful data: file records - await insertDynamoDbTestData(ddbTable, ddbFiles); - await insertDynamoDbTestData(ddbToEsTable, ddbFiles); - await insertElasticsearchTestData(elasticsearchClient, esFiles, item => { - return esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - type: INDEX_TYPE - }); - }); - await elasticsearchClient.indices.refreshAll(); - }; - - const insertEmptyFileIndexes = async () => { - const tenants = createTenantsData().map(tenant => tenant.data.id); - const testLocales = createLocalesData(); - - for (const tenant of tenants) { - const locales = testLocales - .filter(item => item.PK === `T#${tenant}#I18N#L`) - .map(locale => locale.code) as string[]; - - for (const locale of locales) { - await esCreateIndex({ - elasticsearchClient: elasticsearchClient, - tenant, - locale, - type: INDEX_TYPE, - isHeadlessCmsModel: false - }); - } - } - }; - - logTestNameBeforeEachTest(); - - it("should not run if no tenant found", async () => { - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [AcoRecords_5_36_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no locale found", async () => { - await insertTestData(ddbTable, [...createTenantsData()]); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [AcoRecords_5_36_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no files found - no index found", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [AcoRecords_5_36_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no files found - empty index", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - await insertEmptyFileIndexes(); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [AcoRecords_5_36_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - await insertTestFiles(); - await delay(3000); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [AcoRecords_5_36_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const ddbSearchRecords = await scanTable(ddbTable, { - entity: "CmsEntries", - filters: [ - { - attr: "modelId", - eq: "acoSearchRecord" - } - ] - }); - - const ddbEsSearchRecords = await scanTable(ddbToEsTable, { - entity: "CmsEntriesElasticsearch", - filters: [ - { - attr: "index", - contains: "acosearchrecord" - } - ] - }); - - expect(ddbSearchRecords.length).toBe(numberOfGeneratedFiles * 2); - expect(ddbEsSearchRecords.length).toBe(numberOfGeneratedFiles); - - for (const file of ddbFiles) { - const { - aliases, - createdBy, - createdOn, - id, - key, - locale, - meta, - name, - size, - tags, - tenant, - type, - webinyVersion - } = file.data; - - const ddbSearchRecord = ddbSearchRecords.find( - record => record.id === `wby-aco-${id}#0001` - ); - const ddbEsSearchRecord = ddbEsSearchRecords.find( - record => record.PK === `T#${tenant}#L#${locale}#CMS#CME#wby-aco-${id}` - ); - - // Checking DDB ACO search record - expect(ddbSearchRecord).toMatchObject({ - PK: `T#${tenant}#L#${locale}#CMS#CME#wby-aco-${id}`, - SK: "L", - TYPE: "L", - entryId: `wby-aco-${id}`, - id: `wby-aco-${id}#0001`, - locale, - tenant, - version: 1, - webinyVersion, - values: { - "text@title": name, - "text@type": FM_FILE_TYPE, - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "text@tags": addMimeTag(tags, type), - "wby-aco-json@data": { - aliases, - createdBy, - createdOn, - id, - key, - meta, - name, - size, - type - } - } - }); - - const data = await getCompressedData({ - modelId: ACO_SEARCH_MODEL_ID, - version: 1, - locale, - status: "draft", - values: { - "text@type": FM_FILE_TYPE, - "text@title": name, - "text@tags": addMimeTag(tags, type), - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "wby-aco-json@data": { - id, - key, - size, - type, - name, - createdOn, - createdBy, - aliases, - meta - } - }, - createdBy, - entryId: `wby-aco-${id}`, - tenant, - createdOn, - savedOn: createdOn, - locked: false, - ownedBy: createdBy, - webinyVersion: process.env.WEBINY_VERSION, - id: `wby-aco-${id}#0001`, - modifiedBy: createdBy, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - rawValues: { "object@location": {} } - }); - - // Checking DDB + ES ACO search record - expect(ddbEsSearchRecord).toMatchObject({ - PK: `T#${tenant}#L#${locale}#CMS#CME#wby-aco-${id}`, - SK: "L", - index: esGetIndexName({ - tenant, - locale, - type: "acosearchrecord", - isHeadlessCmsModel: true - }), - data - }); - } - }); - - it("should not migrate file records is marked as private", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - await insertTestFiles(5, true); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [AcoRecords_5_36_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const ddbSearchRecords = await scanTable(ddbTable, { - entity: "CmsEntries", - filters: [ - { - attr: "modelId", - eq: "acoSearchRecord" - } - ] - }); - - const ddbEsSearchRecords = await scanTable(ddbToEsTable, { - entity: "CmsEntriesElasticsearch", - filters: [ - { - attr: "index", - contains: "acosearchrecord" - } - ] - }); - - expect(ddbSearchRecords.length).toBe(0); - expect(ddbEsSearchRecords.length).toBe(0); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - await insertTestFiles(1); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [AcoRecords_5_36_0_001] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.36.0/001/ddb/001.data.ts b/packages/migrations/__tests__/migrations/5.36.0/001/ddb/001.data.ts deleted file mode 100644 index 61adde5b1b4..00000000000 --- a/packages/migrations/__tests__/migrations/5.36.0/001/ddb/001.data.ts +++ /dev/null @@ -1,106 +0,0 @@ -export const createdBy = { - id: "admin", - type: "admin", - displayName: "Admin" -}; - -export const createTenantsData = () => { - return [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - } - ]; -}; - -export const createLocalesData = () => { - return [ - { - PK: `T#root#I18N#L`, - SK: "en-US", - code: "en-US", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.36.0/001/ddb/001.test.ts b/packages/migrations/__tests__/migrations/5.36.0/001/ddb/001.test.ts deleted file mode 100644 index 20ad6eb4eaa..00000000000 --- a/packages/migrations/__tests__/migrations/5.36.0/001/ddb/001.test.ts +++ /dev/null @@ -1,345 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - createId, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; - -import { AcoRecords_5_36_0_001 } from "~/migrations/5.36.0/001/ddb"; -import { ACO_SEARCH_MODEL_ID, FM_FILE_TYPE, ROOT_FOLDER } from "~/migrations/5.36.0/001/constants"; - -import { createdBy, createLocalesData, createTenantsData } from "./001.data"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -/** - * Reduced number of records because it is not necessary anymore to run tests with large amount of records. - */ -const NUMBER_OF_FILES = 50; -let numberOfGeneratedFiles = 0; - -describe("5.36.0-001", () => { - const table = getPrimaryDynamoDbTable(); - - const ddbFiles: Record[] = []; - - logTestNameBeforeEachTest(); - - const insertTestFiles = async ( - numberOfFiles = NUMBER_OF_FILES, - privateFile = false, - skipLocales = 0 - ) => { - ddbFiles.length = 0; - numberOfGeneratedFiles = 0; - - const tenants = createTenantsData().map(tenant => tenant.data.id); - const testLocales = createLocalesData(); - - for (const tenant of tenants) { - const locales = testLocales - .slice(0, testLocales.length - skipLocales) // In case we don't want to insert files into one or more locales - .filter(item => item.PK === `T#${tenant}#I18N#L`) - .map(locale => locale.code) as string[]; - - for (const locale of locales) { - for (let index = 0; index < numberOfFiles; index++) { - const id = createId(); - - ddbFiles.push({ - PK: `T#${tenant}#L#${locale}#FM#FILE#${id}`, - SK: "A", - GSI1_PK: `T#${tenant}#L#${locale}#FM#FILES`, - GSI1_SK: id, - TYPE: "fm.file", - data: { - aliases: [], - createdBy, - createdOn: new Date().toISOString(), - id, - key: `${id}/demo-image-${id}.png`, - locale, - meta: { - private: privateFile - }, - name: `demo-image-${id}.png`, - size: 10000, - tags: [`tag-a-${id}`, `tag-b-${id}`], - tenant, - type: "image/png", - webinyVersion: "0.0.0" - }, - _ct: new Date().toISOString(), - _et: "FM.File", - _md: new Date().toISOString() - }); - } - - // Track generated files - numberOfGeneratedFiles += numberOfFiles; - } - } - // Inserting useful data: file record - await insertDynamoDbTestData(table, ddbFiles); - }; - - it("should not run if no tenant found", async () => { - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_36_0_001] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no locale found", async () => { - await insertTestData(table, [...createTenantsData()]); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_36_0_001] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no files found", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_36_0_001] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - await insertTestFiles(); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_36_0_001] }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const searchRecords = await scanTable(table, { - filters: [ - { - attr: "modelId", - eq: "acoSearchRecord" - } - ] - }); - - expect(searchRecords.length).toBe(numberOfGeneratedFiles * 2); - - for (const file of ddbFiles) { - const { - aliases, - createdBy, - createdOn, - id, - key, - locale, - meta, - name, - size, - tags, - tenant, - type - } = file.data; - - const latestSearchRecord = searchRecords.find( - record => record.id === `wby-aco-${id}#0001` && record.SK === "L" - ); - const revisionSearchRecord = searchRecords.find( - record => record.id === `wby-aco-${id}#0001` && record.SK === "REV#0001" - ); - - const values = { - "text@title": name, - "text@type": FM_FILE_TYPE, - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "text@tags": [...tags, "mime:image/png"], - "wby-aco-json@data": { - id, - key, - size, - type, - name, - createdOn, - createdBy, - aliases, - meta - } - }; - - // Checking latest ACO search record - expect(latestSearchRecord).toMatchObject({ - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#wby-aco-${id}`, - SK: "L", - id: `wby-aco-${id}#0001`, - entryId: `wby-aco-${id}`, - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#acoSearchRecord#L`, - GSI1_SK: `wby-aco-${id}#0001`, - locale, - locked: false, - modelId: ACO_SEARCH_MODEL_ID, - status: "draft", - tenant, - TYPE: "cms.entry.l", - values - }); - - // Checking revision 1 ACO search record - expect(revisionSearchRecord).toMatchObject({ - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#wby-aco-${id}`, - SK: "REV#0001", - id: `wby-aco-${id}#0001`, - entryId: `wby-aco-${id}`, - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#acoSearchRecord#A`, - GSI1_SK: `wby-aco-${id}#0001`, - locale, - locked: false, - modelId: ACO_SEARCH_MODEL_ID, - status: "draft", - tenant, - TYPE: "cms.entry", - values - }); - } - }); - - it("should not migrate file records is marked as private", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - await insertTestFiles(5, true); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_36_0_001] }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const searchRecords = await scanTable(table, { - filters: [ - { - attr: "modelId", - eq: "acoSearchRecord" - } - ] - }); - - expect(searchRecords.length).toBe(0); - }); - - it("should run migration successfully even in case of locale without file entries", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - await insertTestFiles(5, false, 1); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_36_0_001] }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const searchRecords = await scanTable(table, { - filters: [ - { - attr: "modelId", - eq: "acoSearchRecord" - } - ] - }); - - expect(searchRecords.length).toBe(numberOfGeneratedFiles * 2); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - await insertTestFiles(1); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_36_0_001] }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); - - it("should run the migration if forced via an ENV variable", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - await insertTestFiles(1); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_36_0_001] }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should force-run the migration - { - process.env["WEBINY_MIGRATION_FORCE_EXECUTE_5_36_0_001"] = "true"; - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.37.0/001/001.data.ts b/packages/migrations/__tests__/migrations/5.37.0/001/001.data.ts deleted file mode 100644 index ff48f1cea3a..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/001/001.data.ts +++ /dev/null @@ -1,149 +0,0 @@ -export const createdBy = { - id: "admin", - type: "admin", - displayName: "Admin" -}; - -export const createTenantsData = () => { - return [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - } - ]; -}; - -export const createTenantLinksData = () => { - return [ - { - PK: "IDENTITY#649429aad9bd1f0008416798", - SK: "LINK#T#root", - createdOn: "2023-06-22T10:59:55.552Z", - data: { - group: "649429a0d9bd1f0008416796", - permissions: [ - { - name: "*" - } - ] - }, - GSI1_PK: "T#root", - GSI1_SK: "TYPE#group#IDENTITY#649429aad9bd1f0008416798", - identity: "649429aad9bd1f0008416798", - tenant: "root", - type: "group", - webinyVersion: "5.36.2", - _ct: "2023-06-22T10:59:55.552Z", - _et: "SecurityIdentity2Tenant", - _md: "2023-06-22T10:59:55.552Z" - }, - { - PK: "IDENTITY#64942e46a5d103f5dacb7792", - SK: "LINK#T#root", - createdOn: "2023-06-22T10:59:55.552Z", - data: { - group: "649429a0d9bd1f0008416796", - permissions: [ - { - name: "content.i18n" - }, - { - name: "cms.endpoint.read" - }, - { - name: "cms.endpoint.manage" - }, - { - name: "cms.endpoint.preview" - } - ] - }, - GSI1_PK: "T#root", - GSI1_SK: "TYPE#group#IDENTITY#64942e46a5d103f5dacb7792", - identity: "64942e46a5d103f5dacb7792", - tenant: "root", - type: "group", - webinyVersion: "5.36.2", - _ct: "2023-06-22T10:59:55.552Z", - _et: "SecurityIdentity2Tenant", - _md: "2023-06-22T10:59:55.552Z" - }, - { - PK: "IDENTITY#64942e80610668b2ce7fd29d", - SK: "LINK#T#otherTenant", - createdOn: "2023-06-22T10:59:55.552Z", - data: { - group: "649429a0d9bd1f0008416796", - permissions: [ - { - name: "cms.contentModel", - models: { - "en-US": ["testAd", "adrianTest2", "adrianTest"] - }, - rwd: "rwd", - own: false, - pw: null - }, - { - name: "cms.contentModelGroup", - rwd: "r", - own: false, - pw: null - }, - { - name: "cms.contentEntry", - rwd: "rwd", - own: false, - pw: null - } - ] - }, - GSI1_PK: "T#otherTenant", - GSI1_SK: "TYPE#group#IDENTITY#64942e80610668b2ce7fd29d", - identity: "64942e80610668b2ce7fd29d", - tenant: "otherTenant", - type: "group", - webinyVersion: "5.36.2", - _ct: "2023-06-22T10:59:55.552Z", - _et: "SecurityIdentity2Tenant", - _md: "2023-06-22T10:59:55.552Z" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/001/001.test.ts b/packages/migrations/__tests__/migrations/5.37.0/001/001.test.ts deleted file mode 100644 index 2c98191eb5f..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/001/001.test.ts +++ /dev/null @@ -1,224 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { TenantLinkRecords_5_37_0_001 } from "~/migrations/5.37.0/001"; -import { createTenantLinksData, createTenantsData } from "./001.data"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.37.0-001", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if no tenant found", async () => { - const handler = createDdbMigrationHandler({ - table, - migrations: [TenantLinkRecords_5_37_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no tenant links found", async () => { - await insertTestData(table, createTenantsData()); - - const handler = createDdbMigrationHandler({ - table, - migrations: [TenantLinkRecords_5_37_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, [...createTenantsData(), ...createTenantLinksData()]); - - const handler = createDdbMigrationHandler({ - table, - migrations: [TenantLinkRecords_5_37_0_001] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const ddbItems = await scanTable(table, { - filters: [ - { - attr: "PK", - beginsWith: "IDENTITY#" - } - ] - }); - - expect(ddbItems).toMatchObject([ - { - entity: "SecurityIdentity2Tenant", - PK: "IDENTITY#64942e46a5d103f5dacb7792", - SK: "LINK#T#root", - GSI1_PK: "T#root", - GSI1_SK: "TYPE#group#IDENTITY#64942e46a5d103f5dacb7792", - - type: "group", - data: { - group: "649429a0d9bd1f0008416796", - permissions: [ - { name: "content.i18n" }, - { name: "cms.endpoint.read" }, - { name: "cms.endpoint.manage" }, - { name: "cms.endpoint.preview" } - ], - teams: [], - groups: [ - { - id: "649429a0d9bd1f0008416796", - permissions: [ - { name: "content.i18n" }, - { name: "cms.endpoint.read" }, - { name: "cms.endpoint.manage" }, - { name: "cms.endpoint.preview" } - ] - } - ] - } - }, - { - entity: "SecurityIdentity2Tenant", - PK: "IDENTITY#64942e80610668b2ce7fd29d", - SK: "LINK#T#otherTenant", - GSI1_PK: "T#otherTenant", - GSI1_SK: "TYPE#group#IDENTITY#64942e80610668b2ce7fd29d", - type: "group", - data: { - group: "649429a0d9bd1f0008416796", - permissions: [ - { - name: "cms.contentModel", - models: { - "en-US": ["testAd", "adrianTest2", "adrianTest"] - }, - rwd: "rwd", - own: false, - pw: null - }, - { - name: "cms.contentModelGroup", - rwd: "r", - own: false, - pw: null - }, - { - name: "cms.contentEntry", - rwd: "rwd", - own: false, - pw: null - } - ], - teams: [], - groups: [ - { - id: "649429a0d9bd1f0008416796", - permissions: [ - { - name: "cms.contentModel", - models: { - "en-US": ["testAd", "adrianTest2", "adrianTest"] - }, - rwd: "rwd", - own: false, - pw: null - }, - { - name: "cms.contentModelGroup", - rwd: "r", - own: false, - pw: null - }, - { - name: "cms.contentEntry", - rwd: "rwd", - own: false, - pw: null - } - ] - } - ] - } - }, - { - entity: "SecurityIdentity2Tenant", - PK: "IDENTITY#649429aad9bd1f0008416798", - SK: "LINK#T#root", - GSI1_PK: "T#root", - GSI1_SK: "TYPE#group#IDENTITY#649429aad9bd1f0008416798", - type: "group", - data: { - group: "649429a0d9bd1f0008416796", - permissions: [{ name: "*" }], - teams: [], - groups: [ - { - id: "649429a0d9bd1f0008416796", - permissions: [{ name: "*" }] - } - ] - } - } - ]); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(table, [...createTenantsData(), ...createTenantLinksData()]); - - const handler = createDdbMigrationHandler({ - table, - migrations: [TenantLinkRecords_5_37_0_001] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/002.test.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/002.test.ts deleted file mode 100644 index c81bea487f0..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/002.test.ts +++ /dev/null @@ -1,237 +0,0 @@ -import { - assertNotError, - createDdbEsMigrationHandler, - getDynamoToEsTable, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { CmsEntriesRootFolder_5_37_0_002 } from "~/migrations/5.37.0/002/ddb-es"; -import { ddbItemPushes, insertTestEntries } from "./insertTestEntries"; -import { getDocumentClient } from "@webiny/project-utils/testing/dynamodb"; -import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; -import { getDecompressedData } from "~tests/migrations/5.37.0/003/ddb-es/getDecompressedData"; -import { createLocalesData, createTenantsData } from "~tests/migrations/5.35.0/006/ddb-es/006.data"; -import { esGetIndexSettings } from "~/utils"; -import { transferDynamoDbToElasticsearch } from "~tests/utils/insertElasticsearchTestData"; -import { getRecordIndexName } from "~tests/migrations/5.37.0/002/ddb-es/helpers"; -import { listElasticsearchItems } from "~tests/utils/listElasticsearchItems"; - -jest.retryTimes(0); -jest.setTimeout(9000000); - -describe("5.37.0-002", () => { - const documentClient = getDocumentClient(); - const ddbTable = getPrimaryDynamoDbTable({ - documentClient - }); - const ddbToEsTable = getDynamoToEsTable({ - documentClient - }); - const elasticsearchClient = createElasticsearchClient(); - - beforeEach(async () => { - process.env.ELASTIC_SEARCH_INDEX_PREFIX = - new Date().toISOString().replace(/\.|\:/g, "-").toLowerCase() + "-"; - - await elasticsearchClient.indices.deleteAll(); - }); - afterEach(async () => { - await elasticsearchClient.indices.deleteAll(); - }); - - logTestNameBeforeEachTest(); - - it("should not run if no cms records found", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [CmsEntriesRootFolder_5_37_0_002] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - - let totalEntries = 0; - try { - totalEntries = await insertTestEntries({ - ddbTable, - ddbToEsTable, - elasticsearchClient, - options: { - maxItems: 100, - maxTenants: 2, - maxLocales: 2 - } - }); - } catch (ex) { - console.log(JSON.stringify(ex.data)); - console.error(ex.message); - console.log(ex.stack); - throw ex; - } - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [CmsEntriesRootFolder_5_37_0_002] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - await transferDynamoDbToElasticsearch( - elasticsearchClient, - ddbToEsTable, - getRecordIndexName - ); - /** - * Validations of the records. - */ - - const entries = await scanTable(ddbTable, { - filters: [ - { - attr: "TYPE", - beginsWith: "cms.entry" - } - ], - select: "specific_attributes", - attributes: ["PK", "SK", "location"], - limit: 10000000 - }); - /** - * Must be total items inserted. - * This is calculated from the tenant / locale combination, max items and amount of pushes for a single item. - */ - expect(entries.length).toBe(ddbItemPushes * totalEntries); - const setCheck = new Set(); - for (const entry of entries) { - expect(entry.location?.folderId).toBe("root"); - setCheck.add(`${entry.PK}:${entry.SK}`); - } - expect(setCheck.size).toBe(entries.length); - - const ddbEsRecords = await scanTable(ddbToEsTable, { - limit: 10000000 - }); - const indexes = new Set(); - /** - * We need to check if all the records in the DDB-ES table are present and updated. - */ - expect(ddbEsRecords.length).toBe(totalEntries * 2); - - for (const record of ddbEsRecords) { - const entry = await getDecompressedData(record.data); - expect(entry.location?.folderId).toBe("root"); - - indexes.add(getRecordIndexName(entry)); - } - expect(indexes.size).toBeGreaterThanOrEqual(1); - /** - * Then we are going to check all the indexes for the correct data. - */ - for (const index of indexes) { - const allItems = await listElasticsearchItems({ - client: elasticsearchClient, - index - }); - expect(allItems.length).toBeGreaterThanOrEqual(1); - for (const item of allItems) { - expect(item.location?.folderId).toEqual("root"); - } - const filteredItems = await listElasticsearchItems({ - client: elasticsearchClient, - index, - body: { - query: { - bool: { - must: [ - { - term: { - "location.folderId.keyword": "root" - } - } - ] - } - } - } - }); - expect(filteredItems).toHaveLength(allItems.length); - } - /** - * Test that all indexes have the expected settings after the migration. - */ - for (const index of indexes) { - const settings = await esGetIndexSettings({ - elasticsearchClient, - index, - fields: ["number_of_replicas", "refresh_interval"] - }); - expect(Number(settings?.number_of_replicas)).toBeGreaterThanOrEqual(1); - expect(settings?.refresh_interval).not.toBe(-1); - const interval = parseInt((settings?.refresh_interval as string).replace("s", "")); - expect(interval).toBeGreaterThanOrEqual(1); - } - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - await insertTestEntries({ - ddbTable, - ddbToEsTable, - options: { - maxItems: 1, - maxTenants: 1, - maxLocales: 1 - }, - elasticsearchClient - }); - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - dynamoToEsTable: ddbToEsTable, - elasticsearchClient, - migrations: [CmsEntriesRootFolder_5_37_0_002] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/helpers.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/helpers.ts deleted file mode 100644 index 8e1cec1cd05..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/helpers.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { esGetIndexName } from "~/utils"; -import { CmsEntry } from "@webiny/api-headless-cms/types"; - -export const getRecordIndexName = (entry: Pick) => { - return esGetIndexName({ - tenant: entry.tenant, - locale: entry.locale, - type: entry.modelId, - isHeadlessCmsModel: true - }); -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/insertTestEntries.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/insertTestEntries.ts deleted file mode 100644 index 1afc74f03ab..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/insertTestEntries.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { insertDynamoDbTestData } from "~tests/utils"; -import { transferDynamoDbToElasticsearch } from "~tests/utils/insertElasticsearchTestData"; -import { ElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; -import { createArticleEntry } from "~tests/migrations/5.37.0/002/ddb-es/mocks/entry"; -import { - createDynamoDbElasticsearchRecords, - createDynamoDbRecords -} from "~tests/migrations/5.37.0/002/ddb-es/mocks/record"; -import { createArticleModel } from "~tests/migrations/5.37.0/002/ddb-es/mocks/model"; -import { getStorageModel } from "./mocks/storageModel"; -import { getPlugins } from "./mocks/plugins"; -import { getRecordIndexName } from "~tests/migrations/5.37.0/002/ddb-es/helpers"; - -const tenants = [ - "root", - "not-root", - "webiny", - "admin", - "not-admin", - "webiny-admin", - "webiny-not-admin" -]; -const locales = [ - "en-US", - "de-DE", - "fr-FR", - "be-BE", - "nl-NL", - "hr-HR", - "it-IT", - "es-ES", - "pt-PT", - "pt-BR" -]; -/** - * Items generated per tenant / locale combination. - * This is used in the test which actually updates everything. - */ -const defaultMaxItems = 5; - -const revisionsArray = Array(3) - .fill(0) - .map((_, index) => { - return Number(index) + 1; - }); -/** - * !!! IMPORTANT !!! - * UPDATE IF YOU CHANGE THE NUMBER OF RECORDS PER ENTRY. - * Which records are pushed into the DynamoDB? - * - L - * - P - * - REV#0001 - * - REV#0002 - * - REV#0003 - */ -export const ddbItemPushes = revisionsArray.length + 2; - -interface Options { - maxItems?: number; - maxTenants?: number; - maxLocales?: number; -} - -interface Params { - ddbTable: Table; - ddbToEsTable: Table; - elasticsearchClient: ElasticsearchClient; - options?: Options; -} - -export const insertTestEntries = async (params: Params) => { - let entries = 0; - const plugins = getPlugins(); - const { ddbTable, ddbToEsTable, elasticsearchClient, options } = params; - const maxItems = options?.maxItems || defaultMaxItems; - const maxTenants = options?.maxTenants || tenants.length + 1; - const maxLocales = options?.maxLocales || locales.length + 1; - - let currentTenant = 0; - for (const tenant of tenants) { - currentTenant++; - let currentLocale = 0; - for (const locale of locales) { - currentLocale++; - const model = createArticleModel({ - tenant, - locale, - webinyVersion: "5.36.2" - }); - const storageModel = getStorageModel(model); - const items = []; - const esItems = []; - for (let i = 1; i <= maxItems; i++) { - entries++; - const entryId = `${tenant}-${locale}-${i}`; - const revisions = revisionsArray.map(version => { - return createArticleEntry({ - entryId, - tenant, - locale, - version, - published: version === revisionsArray.length - 1 - }); - }); - - const dynamoDbRecords = await createDynamoDbRecords({ - plugins, - model: storageModel, - revisions - }); - const dynamoDbElasticsearchRecords = await createDynamoDbElasticsearchRecords({ - plugins, - model: storageModel, - revisions - }); - - items.push(...dynamoDbRecords); - esItems.push(...dynamoDbElasticsearchRecords); - } - await insertDynamoDbTestData(ddbTable, items); - await insertDynamoDbTestData(ddbToEsTable, esItems); - await transferDynamoDbToElasticsearch( - elasticsearchClient, - ddbToEsTable, - getRecordIndexName - ); - if (currentLocale >= maxLocales) { - break; - } - } - if (currentTenant >= maxTenants) { - return entries; - } - } - return entries; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/entry.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/entry.ts deleted file mode 100644 index 9f94663e2ac..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/entry.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { CmsIdentity } from "@webiny/api-headless-cms/types"; -import { ArticleCmsEntry } from "./types"; -import { createValues } from "./values"; - -const identity: CmsIdentity = { - id: "abdefghijklmnopqrstuvwx", - displayName: "A Mocked User", - type: "admin," -}; - -export interface CreateCmsEntryParams { - entryId: string; - tenant: string; - locale: string; - version: number; - published?: boolean; -} - -export const createArticleEntry = (params: CreateCmsEntryParams): ArticleCmsEntry => { - const { entryId, version, tenant, locale, published } = params; - if (version < 1) { - throw new Error("Version must be greater than 0."); - } - return { - id: `${entryId}#${String(version).padStart(4, "0")}`, - entryId, - locked: true, - status: published ? "published" : "draft", - ownedBy: identity, - createdBy: identity, - modifiedBy: identity, - createdOn: new Date().toISOString(), - savedOn: new Date().toISOString(), - publishedOn: published ? new Date().toISOString() : undefined, - tenant, - locale, - modelId: "article", - version, - webinyVersion: "0.0.0", - meta: {}, - values: createValues(entryId) - }; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/model.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/model.ts deleted file mode 100644 index 09fd8897735..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/model.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { CmsModel, CmsModelField } from "@webiny/api-headless-cms/types"; - -const createTextField = (id?: string): CmsModelField => { - id = id || "textfieldabcdefg"; - return { - id, - fieldId: "textField", - label: "Title", - type: "text", - storageId: `text@${id}` - }; -}; -const createLongTextField = (id?: string): CmsModelField => { - id = id || "longtextfieldabcdefg"; - return { - id, - fieldId: "longTextField", - label: "Description", - type: "long-text", - storageId: `long-text@${id}` - }; -}; -const createRichTextField = (id?: string): CmsModelField => { - id = id || "richtextfieldabcdefg"; - return { - id, - fieldId: "richTextField", - label: "Body", - type: "rich-text", - storageId: `rich-text@${id}` - }; -}; -const createNumberField = (id?: string): CmsModelField => { - id = id || "numberfieldabcdefg"; - return { - id, - fieldId: "numberField", - label: "Number", - type: "number", - storageId: `number@${id}` - }; -}; -const createDateField = (id?: string): CmsModelField => { - id = id || "datetimefieldabcdefg"; - return { - id, - fieldId: "dateTimeField", - label: "DateTime", - type: "datetime", - storageId: `datetime@${id}`, - settings: { - type: "dateTimeWithTimezone" - } - }; -}; -const createTimeField = (id?: string): CmsModelField => { - id = id || "timefieldabcdefg"; - return { - id, - fieldId: "timeField", - label: "Time", - type: "datetime", - storageId: `datetime@${id}`, - settings: { - type: "time" - } - }; -}; -const createObjectField = (id?: string): CmsModelField => { - id = id || "objectfieldabcdefg"; - return { - id, - fieldId: "objectField", - label: "Object", - type: "object", - storageId: `object@${id}`, - settings: { - fields: [ - createTextField("objecttextfield"), - createLongTextField("objectlongtextfield"), - createRichTextField("objectrichtextfield"), - createNumberField("objectnumberfield"), - createDateField("objectdatetimefield"), - createTimeField("objecttimefield") - ] - }, - multipleValues: false - }; -}; -export const ARTICLE_MODEL_ID = "article"; - -interface Params { - tenant: string; - locale: string; - webinyVersion: `${number}.${number}.${number}`; -} - -export const createArticleModel = (params: Params): CmsModel => { - return { - ...params, - modelId: ARTICLE_MODEL_ID, - singularApiName: "Article", - pluralApiName: "Articles", - name: "Article", - group: { - id: "abcdefg", - name: "Test Group" - }, - fields: [ - createTextField(), - createLongTextField(), - createRichTextField(), - createNumberField(), - createDateField(), - createTimeField(), - createObjectField() - ], - layout: [], - description: "Article description", - titleFieldId: "textfield" - }; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/plugins.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/plugins.ts deleted file mode 100644 index b7fc85d2e66..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/plugins.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { PluginsContainer } from "@webiny/plugins"; -import { createGzipCompression, getElasticsearchOperators } from "@webiny/api-elasticsearch"; -import { createGraphQLFields } from "@webiny/api-headless-cms"; -import dynamoDbPlugins from "@webiny/db-dynamodb/plugins"; -import cmsElasticsearchPlugins from "@webiny/api-headless-cms-ddb-es/elasticsearch"; -import { createDynamoDbPlugins } from "@webiny/api-headless-cms-ddb-es/dynamoDb"; -import { createObjectStorageTransform } from "@webiny/api-headless-cms/storage/object"; -import { createDefaultStorageTransform } from "@webiny/api-headless-cms/storage/default"; -import { createFieldConverters } from "@webiny/api-headless-cms/fieldConverters"; - -const plugins = new PluginsContainer([ - // ddb - dynamoDbPlugins(), - // es - getElasticsearchOperators(), - createGzipCompression(), - // cms - createGraphQLFields(), - createObjectStorageTransform(), - createDefaultStorageTransform(), - createFieldConverters(), - // cms ddb+es - createDynamoDbPlugins(), - cmsElasticsearchPlugins() -]); - -export const getPlugins = () => { - return plugins; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/record.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/record.ts deleted file mode 100644 index eca77debf7b..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/record.ts +++ /dev/null @@ -1,136 +0,0 @@ -import { ArticleCmsEntry, DynamoDbRecord } from "./types"; -import { PluginsContainer } from "@webiny/plugins"; -import { StorageOperationsCmsModel } from "@webiny/api-headless-cms/types"; -import { entryToStorageTransform } from "@webiny/api-headless-cms"; -import { getRecordIndexName } from "~tests/migrations/5.37.0/002/ddb-es/helpers"; -import { createTransformer } from "@webiny/api-headless-cms-ddb-es/operations/entry/transformations"; - -interface ElasticsearchRecord { - index: string; - PK: string; - SK: string; - data: Record; -} - -interface CreateRecordsParams { - plugins: PluginsContainer; - revisions: ArticleCmsEntry[]; - model: StorageOperationsCmsModel; -} - -export const createDynamoDbRecords = async (params: CreateRecordsParams) => { - const { revisions: initialRevisions, plugins, model } = params; - - const revisions = ( - await Promise.all( - initialRevisions.map(async entry => { - return await entryToStorageTransform( - { - plugins - }, - model, - entry - ); - }) - ) - ).map(entry => { - return { - ...entry, - values: model.convertValueKeyToStorage({ - fields: model.fields, - values: entry.values - }) - } as ArticleCmsEntry; - }); - /** - * First we convert all the entries into DynamoDB Records. - */ - const records: DynamoDbRecord[] = revisions.map(entry => { - const { entryId, version, tenant, locale } = entry; - return { - ...entry, - version, - PK: `T#${tenant}#L#${locale}#CMS#CME#${entryId}`, - SK: `REV#${String(version).padStart(4, "0")}`, - TYPE: "cms.entry", - _et: "CmsEntries", - _md: entry.savedOn, - _ct: entry.createdOn - }; - }); - /** - * And then add latest... - */ - const entry = records[records.length - 1]; - const { entryId, tenant, locale, version } = entry; - records.push({ - ...entry, - version, - PK: `T#${tenant}#L#${locale}#CMS#CME#${entryId}`, - SK: `L`, - TYPE: "cms.entry.l", - _et: "CmsEntries", - _md: entry.savedOn, - _ct: entry.createdOn - }); - /** - * ...and published record. - */ - records.push({ - ...entry, - version, - PK: `T#${tenant}#L#${locale}#CMS#CME#${entryId}`, - SK: `P`, - TYPE: "cms.entry.p", - _et: "CmsEntries", - _md: entry.savedOn, - _ct: entry.createdOn - }); - - return records; -}; - -export const createDynamoDbElasticsearchRecords = async (params: CreateRecordsParams) => { - const { plugins, revisions, model } = params; - const records: ElasticsearchRecord[] = []; - - const entry = revisions[revisions.length - 1]; - const storageEntry = await entryToStorageTransform( - { - plugins - }, - model, - entry - ); - const { entryId, tenant, locale, modelId } = entry; - - const transformer = createTransformer({ - model, - plugins, - entry, - storageEntry - }); - /** - * Elasticsearch Data - */ - const index = getRecordIndexName({ - tenant, - locale, - modelId - }); - const latestData = await transformer.getElasticsearchLatestEntryData(); - const publishedData = await transformer.getElasticsearchPublishedEntryData(); - records.push({ - PK: `T#${tenant}#L#${locale}#CMS#CME#${entryId}`, - SK: `L`, - index, - data: latestData - }); - records.push({ - PK: `T#${tenant}#L#${locale}#CMS#CME#${entryId}`, - SK: `P`, - index, - data: publishedData - }); - return records; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/storageModel.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/storageModel.ts deleted file mode 100644 index 7970bca3db3..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/storageModel.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { createCmsModelFieldConvertersAttachFactory } from "@webiny/api-headless-cms/utils/converters/valueKeyStorageConverter"; -import { getPlugins } from "~tests/migrations/5.37.0/002/ddb-es/mocks/plugins"; -import { CmsModel, StorageOperationsCmsModel } from "@webiny/api-headless-cms/types"; - -const storageModels: Record = {}; - -const factory = createCmsModelFieldConvertersAttachFactory(getPlugins()); -export const getStorageModel = (model: CmsModel) => { - const key = `${model.tenant}:${model.locale}:${model.modelId}`; - if (storageModels[key]) { - return storageModels[key]; - } - return (storageModels[key] = factory(model)); -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/types.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/types.ts deleted file mode 100644 index 6d0a717d79b..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/types.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { CmsEntry, CmsEntryValues } from "@webiny/api-headless-cms/types"; - -export type ArticleCmsEntry = Omit, "location">; - -export interface ArticleCmsEntryValues extends CmsEntryValues { - textField: string; - longTextField: string; - richTextField: Record; - numberField: number; - dateTimeField: string; - timeField: string; - objectField: { - textField: string; - longTextField: string; - richTextField: Record; - numberField: number; - dateTimeField: string; - timeField: string; - }; -} - -export type DynamoDbRecord = T & { - PK: string; - SK: string; - TYPE: string; - _et: string; - _md: string; - _ct: string; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/index.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/index.ts deleted file mode 100644 index 1148d7e1632..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { createTextValue } from "~tests/migrations/5.37.0/002/ddb-es/mocks/values/text"; -import { createLongTextValue } from "~tests/migrations/5.37.0/002/ddb-es/mocks/values/longText"; -import { createRichTextValue } from "~tests/migrations/5.37.0/002/ddb-es/mocks/values/richText"; -import { createTimeValue } from "~tests/migrations/5.37.0/002/ddb-es/mocks/values/time"; -import { createNumberValue } from "~tests/migrations/5.37.0/002/ddb-es/mocks/values/number"; - -export * from "./longText"; -export * from "./number"; -export * from "./richText"; -export * from "./text"; -export * from "./time"; - -export const createValues = (id: string) => { - return { - textField: createTextValue(id), - longTextField: createLongTextValue(), - richTextField: createRichTextValue(), - dateTimeField: new Date().toISOString(), - timeField: createTimeValue(), - numberField: createNumberValue(), - objectField: { - textField: createTextValue(id), - dateTimeField: new Date().toISOString(), - timeField: createTimeValue(), - numberField: createNumberValue(100000), - longTextField: createLongTextValue(), - richTextField: createRichTextValue() - } - }; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/longText.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/longText.ts deleted file mode 100644 index a42e1894fa9..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/longText.ts +++ /dev/null @@ -1,22 +0,0 @@ -const values = [ - `Savings her pleased are several started females met. Short her not among being any. Thing of judge fruit charm views do. Miles mr an forty along as he. She education get middleton day agreement performed preserved unwilling. Do however as pleased offence outward beloved by present. By outward neither he so covered amiable greater. Juvenile proposal betrayed he an informed weddings followed. Precaution day see imprudence sympathize principles. At full leaf give quit to in they up. - -Abilities forfeited situation extremely my to he resembled. Old had conviction discretion understood put principles you. Match means keeps round one her quick. She forming two comfort invited. Yet she income effect edward. Entire desire way design few. Mrs sentiments led solicitude estimating friendship fat. Meant those event is weeks state it to or. Boy but has folly charm there its. Its fact ten spot drew. - -He difficult contented we determine ourselves me am earnestly. Hour no find it park. Eat welcomed any husbands moderate. Led was misery played waited almost cousin living. Of intention contained is by middleton am. Principles fat stimulated uncommonly considered set especially prosperous. Sons at park mr meet as fact like.`, - `Feet evil to hold long he open knew an no. Apartments occasional boisterous as solicitude to introduced. Or fifteen covered we enjoyed demesne is in prepare. In stimulated my everything it literature. Greatly explain attempt perhaps in feeling he. House men taste bed not drawn joy. Through enquire however do equally herself at. Greatly way old may you present improve. Wishing the feeling village him musical. - -Village did removed enjoyed explain nor ham saw calling talking. Securing as informed declared or margaret. Joy horrible moreover man feelings own shy. Request norland neither mistake for yet. Between the for morning assured country believe. On even feet time have an no at. Relation so in confined smallest children unpacked delicate. Why sir end believe uncivil respect. Always get adieus nature day course for common. My little garret repair to desire he esteem.`, - `Her old collecting she considered discovered. So at parties he warrant oh staying. Square new horses and put better end. Sincerity collected happiness do is contented. Sigh ever way now many. Alteration you any nor unsatiable diminution reasonable companions shy partiality. Leaf by left deal mile oh if easy. Added woman first get led joy not early jokes. - -Full he none no side. Uncommonly surrounded considered for him are its. It we is read good soon. My to considered delightful invitation announcing of no decisively boisterous. Did add dashwoods deficient man concluded additions resources. Or landlord packages overcame distance smallest in recurred. Wrong maids or be asked no on enjoy. Household few sometimes out attending described. Lain just fact four of am meet high.`, - `Piqued favour stairs it enable exeter as seeing. Remainder met improving but engrossed sincerity age. Better but length gay denied abroad are. Attachment astonished to on appearance imprudence so collecting in excellence. Tiled way blind lived whose new. The for fully had she there leave merit enjoy forth. - -Is at purse tried jokes china ready decay an. Small its shy way had woody downs power. To denoting admitted speaking learning my exercise so in. Procured shutters mr it feelings. To or three offer house begin taken am at. As dissuade cheerful overcame so of friendly he indulged unpacked. Alteration connection to so as collecting me. Difficult in delivered extensive at direction allowance. Alteration put use diminution can considered sentiments interested discretion. An seeing feebly stairs am branch income me unable. - -Now for manners use has company believe parlors. Least nor party who wrote while did. Excuse formed as is agreed admire so on result parish. Put use set uncommonly announcing and travelling. Allowance sweetness direction to as necessary. Principle oh explained excellent do my suspected conveying in. Excellent you did therefore perfectly supposing described.` -]; - -export const createLongTextValue = (): string => { - return [...values].sort(() => Math.random() - 0.5).shift() as string; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/number.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/number.ts deleted file mode 100644 index f7d6682bf39..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/number.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const createNumberValue = (start = 0, max = 10000): number => { - return start + Math.round(Math.random() * max); -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/richText.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/richText.ts deleted file mode 100644 index 8d70f6ad67f..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/richText.ts +++ /dev/null @@ -1,170 +0,0 @@ -export const createRichTextValue = (): Record => { - return { - root: { - children: [ - { - children: [ - { - detail: 0, - format: 0, - mode: "normal", - style: "", - text: "A rich text field value.", - type: "text", - version: 1 - } - ], - direction: "ltr", - format: "", - indent: 0, - type: "paragraph-element", - version: 1, - styles: [ - { - styleId: "paragraph1", - type: "typography" - } - ] - }, - { - children: [ - { - detail: 0, - format: 0, - mode: "normal", - style: "", - text: "We will add some titles and paragraphs and lists.", - type: "text", - version: 1 - } - ], - direction: "ltr", - format: "", - indent: 0, - type: "paragraph-element", - version: 1, - styles: [ - { - styleId: "paragraph1", - type: "typography" - } - ] - }, - { - children: [], - direction: null, - format: "", - indent: 0, - type: "paragraph-element", - version: 1, - styles: [ - { - styleId: "paragraph1", - type: "typography" - } - ] - }, - { - children: [ - { - detail: 0, - format: 0, - mode: "normal", - style: "", - text: "A title", - type: "text", - version: 1 - } - ], - direction: "ltr", - format: "", - indent: 0, - type: "heading-element", - version: 1, - tag: "h2", - styles: [ - { - styleId: "heading2", - type: "typography" - } - ] - }, - { - children: [ - { - children: [ - { - detail: 0, - format: 0, - mode: "normal", - style: "", - text: "A list", - type: "text", - version: 1 - } - ], - direction: "ltr", - format: "", - indent: 0, - type: "webiny-listitem", - version: 1, - value: 1 - }, - { - children: [ - { - detail: 0, - format: 0, - mode: "normal", - style: "", - text: "B list", - type: "text", - version: 1 - } - ], - direction: "ltr", - format: "", - indent: 0, - type: "webiny-listitem", - version: 1, - value: 2 - }, - { - children: [ - { - detail: 0, - format: 0, - mode: "normal", - style: "", - text: "C list", - type: "text", - version: 1 - } - ], - direction: "ltr", - format: "", - indent: 0, - type: "webiny-listitem", - version: 1, - value: 3 - } - ], - direction: "ltr", - format: "", - indent: 0, - type: "webiny-list", - version: 1, - themeStyleId: "list", - listType: "bullet", - start: 1, - tag: "ul" - } - ], - direction: "ltr", - format: "", - indent: 0, - type: "root", - version: 1 - } - }; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/text.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/text.ts deleted file mode 100644 index d5b3c212cbd..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/text.ts +++ /dev/null @@ -1,27 +0,0 @@ -const values = [ - `Exploring the Benefits of a Headless CMS`, - `The Advantages of Headless CMS: A Comprehensive Guide`, - `Everything You Need to Know About Headless CMS`, - `How to Get Started with a Headless CMS`, - `Headless CMS: A Step-by-Step Guide`, - `10 Reasons to Choose a Headless CMS`, - `Top 7 Features of a Headless CMS`, - `10 Ideas for Utilizing a Headless CMS`, - `10 Ways to Utilize a Headless CMS`, - `10 Tips for Choosing the Right Headless CMS`, - `Revolutionizing Business with Headless CMS`, - `Headless CMS: The Future of Cloud Computing`, - `Maximizing Efficiency with a Headless CMS`, - `Headless CMS: The Future of Business Automation`, - `The Impact of Headless CMS on Businesses`, - `How Does a Headless CMS Work?`, - `Is a Headless CMS Right for You?`, - `When Is the Best Time to Use a Headless CMS?`, - `Where Can You Find a Headless CMS?`, - `Who Can Benefit from a Headless CMS?` -]; - -export const createTextValue = (id: string) => { - const value = [...values].sort(() => Math.random() - 0.5).shift() as string; - return `${value} - ${id}`; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/time.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/time.ts deleted file mode 100644 index fa1792fdb60..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb-es/mocks/values/time.ts +++ /dev/null @@ -1,7 +0,0 @@ -const pad = (value: number): string => { - return String(value).padStart(2, "0"); -}; -export const createTimeValue = () => { - const date = new Date(); - return [pad(date.getHours()), pad(date.getMinutes()), pad(date.getSeconds())].join(":"); -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb/002.test.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb/002.test.ts deleted file mode 100644 index 5f94a248c7c..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb/002.test.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { CmsEntriesRootFolder_5_37_0_002 } from "~/migrations/5.37.0/002/ddb"; -import { - getTotalItems, - insertTestEntries -} from "~tests/migrations/5.37.0/002/ddb/insertTestEntries"; -import { createLocalesData, createTenantsData } from "~tests/migrations/5.35.0/006/ddb/006.data"; - -jest.retryTimes(0); -jest.setTimeout(9000000); - -describe("5.37.0-002", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if no cms records found", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - const handler = createDdbMigrationHandler({ - table, - migrations: [CmsEntriesRootFolder_5_37_0_002] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - await insertTestEntries(table); - - const handler = createDdbMigrationHandler({ - table, - migrations: [CmsEntriesRootFolder_5_37_0_002] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const entries = await scanTable(table, { - index: "GSI1", - filters: [ - { - attr: "TYPE", - beginsWith: "cms.entry" - } - ], - select: "specific_attributes", - attributes: ["PK", "SK", "location"], - limit: 10000000 - }); - /** - * Must be total items inserted. - * This is calculated from the tenant / locale combination, max items and amount of pushes for a single item. - */ - expect(entries.length).toBe(getTotalItems()); - const setCheck = new Set(); - for (const entry of entries) { - expect(entry.location?.folderId).toBe("root"); - setCheck.add(`${entry.PK}:${entry.SK}`); - } - expect(setCheck.size).toBe(entries.length); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - await insertTestEntries(table, { - maxItems: 10 - }); - const handler = createDdbMigrationHandler({ - table, - migrations: [CmsEntriesRootFolder_5_37_0_002] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.37.0/002/ddb/insertTestEntries.ts b/packages/migrations/__tests__/migrations/5.37.0/002/ddb/insertTestEntries.ts deleted file mode 100644 index 9c5fb91f0d6..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/002/ddb/insertTestEntries.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { CmsEntry, Identity } from "~/migrations/5.37.0/002/types"; -import { insertDynamoDbTestData } from "~tests/utils"; - -type DbItem = T & { - PK: string; - SK: string; - GSI1_PK: string; - GSI1_SK: string; - TYPE: string; - _et: string; - _md: string; - _ct: string; -}; - -const identity: Identity = { - id: "root", - displayName: "Root", - type: "admin" -}; - -const tenants = [ - "root", - "not-root", - "webiny", - "admin", - "not-admin", - "webiny-admin", - "webiny-not-admin" -]; -const locales = [ - "en-US", - "de-DE", - "fr-FR", - "be-BE", - "nl-NL", - "hr-HR", - "it-IT", - "es-ES", - "pt-PT", - "pt-BR" -]; -/** - * Items generated per tenant / locale combination. - * This is used in the test which actually updates everything. - */ -const defaultMaxItems = 25; -/** - * !!! IMPORTANT !!! - * UPDATE IF YOU CHANGE THE NUMBER OF RECORDS PER ENTRY. - * Which records are pushed into the DynamoDB? - * - L - * - P - * - REV#0001 - * - REV#0002 - */ -const itemPushes = 4; - -export const getTotalItems = () => { - return tenants.length * locales.length * defaultMaxItems * itemPushes; -}; - -interface Options { - maxItems?: number; -} - -export const insertTestEntries = async ( - table: Table, - options?: Options -) => { - const maxItems = options?.maxItems || defaultMaxItems; - for (const tenant of tenants) { - const items = []; - for (const locale of locales) { - for (let i = 1; i <= maxItems; i++) { - const entryId = `${tenant}-${locale}-${i}`; - - const item: DbItem = { - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#${entryId}`, - SK: "REV#0001", - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#randomModelId#L`, - GSI1_SK: `${entryId}#0001`, - _et: "CmsEntries", - _md: new Date().toISOString(), - _ct: new Date().toISOString(), - tenant, - locale, - id: `${entryId}#0001`, - entryId, - modelId: "randomModelId", - TYPE: "cms.entry", - locked: true, - status: "published", - ownedBy: identity, - createdBy: identity, - createdOn: new Date().toISOString(), - savedOn: new Date().toISOString(), - publishedOn: new Date().toISOString(), - values: { - title: `Entry ${entryId}` - }, - webinyVersion: "5.36.2", - version: 1 - }; - // REV 1 - items.push(item); - // REV 2 - items.push({ - ...item, - id: `${entryId}#0002`, - SK: "REV#0002" - }); - // latest - items.push({ - ...item, - TYPE: "cms.entry.l", - id: `${entryId}#0002`, - SK: "L", - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#randomModelId#A` - }); - // published - items.push({ - ...item, - TYPE: "cms.entry.p", - id: `${entryId}#0002`, - SK: "P", - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#randomModelId#P` - }); - } - } - await insertDynamoDbTestData(table, items); - } -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/003/common/createdBy.ts b/packages/migrations/__tests__/migrations/5.37.0/003/common/createdBy.ts deleted file mode 100644 index 9239a8d288d..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/003/common/createdBy.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { CreatedBy } from "../types"; - -export const createdBy: CreatedBy = { - id: "admin", - type: "admin", - displayName: "Admin" -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/003/common/index.ts b/packages/migrations/__tests__/migrations/5.37.0/003/common/index.ts deleted file mode 100644 index 2f8412efb12..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/003/common/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./createdBy"; -export * from "./locales"; -export * from "./tenants"; diff --git a/packages/migrations/__tests__/migrations/5.37.0/003/common/locales.ts b/packages/migrations/__tests__/migrations/5.37.0/003/common/locales.ts deleted file mode 100644 index 74c6170e03b..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/003/common/locales.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { LocaleDdbItem } from "../types"; -import { createdBy } from "./createdBy"; - -export const createLocalesData = (): LocaleDdbItem[] => { - return [ - { - PK: `T#root#I18N#L`, - SK: "en-US", - code: "en-US", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/003/common/tenants.ts b/packages/migrations/__tests__/migrations/5.37.0/003/common/tenants.ts deleted file mode 100644 index ab3813cadb6..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/003/common/tenants.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { TenantDdbItem } from "../types"; -import { createdBy } from "./createdBy"; - -export const createTenantsData = (): TenantDdbItem[] => { - return [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/003/ddb-es/003.test.ts b/packages/migrations/__tests__/migrations/5.37.0/003/ddb-es/003.test.ts deleted file mode 100644 index 0df4e0e7233..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/003/ddb-es/003.test.ts +++ /dev/null @@ -1,307 +0,0 @@ -import { - assertNotError, - createDdbEsMigrationHandler, - getDynamoToEsTable, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { AcoFolders_5_37_0_003, CmsEntryAcoFolder } from "~/migrations/5.37.0/003/ddb-es"; -import { - ACO_FOLDER_MODEL_ID, - ROOT_FOLDER, - UPPERCASE_ROOT_FOLDER -} from "~/migrations/5.37.0/003/constants"; -import { getDocumentClient } from "@webiny/project-utils/testing/dynamodb"; -import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; -import { createLocalesData, createTenantsData } from "../common"; -import { insertEmptyIndexes, insertTestFolders } from "./insertTestFolders"; -import { - FolderDdbToElasticsearchWriteItem, - FolderDdbWriteItem -} from "~tests/migrations/5.37.0/003/types"; -import { getDecompressedData } from "./getDecompressedData"; -import { esGetIndexName } from "~/utils"; -import { transferDynamoDbToElasticsearch } from "~tests/utils/insertElasticsearchTestData"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.37.0-003", () => { - const documentClient = getDocumentClient(); - const ddbTable = getPrimaryDynamoDbTable({ - documentClient - }); - const ddbToEsTable = getDynamoToEsTable({ - documentClient - }); - const elasticsearchClient = createElasticsearchClient(); - - beforeEach(async () => { - process.env.ELASTIC_SEARCH_INDEX_PREFIX = - new Date().toISOString().replace(/\.|\:/g, "-").toLowerCase() + "-"; - - await elasticsearchClient.indices.deleteAll(); - }); - afterEach(async () => { - await elasticsearchClient.indices.deleteAll(); - }); - - logTestNameBeforeEachTest(); - - it("should not run if no tenant found", async () => { - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoFolders_5_37_0_003] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no locale found", async () => { - await insertTestData(ddbTable, [...createTenantsData()]); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoFolders_5_37_0_003] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no folders found", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoFolders_5_37_0_003] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no folders found - empty index", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - await insertEmptyIndexes(elasticsearchClient); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoFolders_5_37_0_003] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - const { ddbFolders, tenants } = await insertTestFolders({ - table: ddbTable, - esTable: ddbToEsTable, - elasticsearchClient - }); - - const ddbFolderRecordsPrepare = (await scanTable(ddbTable)).filter( - record => record.modelId === ACO_FOLDER_MODEL_ID - ); - - const ddbEsFolderRecordsPrepare = (await scanTable(ddbToEsTable)).filter(record => { - return (record.index || "").includes(ACO_FOLDER_MODEL_ID.toLowerCase()); - }); - - expect(ddbFolderRecordsPrepare.length).toBe(ddbFolders.length * 2); - expect(ddbEsFolderRecordsPrepare.length).toBe(ddbFolders.length); - /** - * And then we execute current the 5.37.0_001 migration. - */ - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoFolders_5_37_0_003] - }); - const { data, error } = await handler(); - - await elasticsearchClient.indices.refreshAll(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const searchRecordsAfterMigrations = await scanTable(ddbTable, { - filters: [ - { - attr: "modelId", - eq: ACO_FOLDER_MODEL_ID - } - ] - }); - const cmsEntries = searchRecordsAfterMigrations.filter(r => { - return r.modelId === ACO_FOLDER_MODEL_ID; - }); - - expect(searchRecordsAfterMigrations).toHaveLength(ddbFolders.length * 2); - expect(cmsEntries).toHaveLength(ddbFolders.length * 2); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - /** - * First we check the DDB records. - */ - const folderDdbRecords: FolderDdbWriteItem[] = await scanTable(ddbTable, { - filters: [ - { - attr: "modelId", - eq: ACO_FOLDER_MODEL_ID - } - ] - }); - - expect(folderDdbRecords.length).toBe(ddbFolders.length * 2); - - for (const folder of folderDdbRecords) { - /** - * We just need to make sure that no folder has "root" or "ROOT" as parent - */ - const parent = (folder.values.parentId || "").toLowerCase(); - if (parent?.toLowerCase() === "root") { - console.log("we have a bogus!"); - } - - expect(parent).not.toBe(ROOT_FOLDER); - expect(parent).not.toBe(UPPERCASE_ROOT_FOLDER); - } - /** - * Then we check the DDB -> ES records. - */ - const folderEsRecords: FolderDdbToElasticsearchWriteItem[] = await scanTable(ddbToEsTable, { - filters: [ - { - attr: "index", - contains: ACO_FOLDER_MODEL_ID.toLowerCase() - } - ] - }); - for (const folder of folderEsRecords) { - const data = await getDecompressedData(folder.data); - - const parent = (data.values.parentId || "").toLowerCase(); - - expect(parent).not.toBe(ROOT_FOLDER); - expect(parent).not.toBe(UPPERCASE_ROOT_FOLDER); - } - /** - * And in the end, we check the Elasticsearch data. - */ - for (const item of tenants) { - const tenant = item.tenant; - for (const locale of item.locales) { - const response = await elasticsearchClient.search({ - index: esGetIndexName({ - tenant, - locale, - type: ACO_FOLDER_MODEL_ID, - isHeadlessCmsModel: true - }), - body: { - size: 10000 - } - }); - const folders = response.body.hits.hits.map((item: any) => item._source); - expect(folders).toHaveLength(14); - } - } - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - await insertTestFolders({ - table: ddbTable, - esTable: ddbToEsTable, - elasticsearchClient - }); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoFolders_5_37_0_003] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - await elasticsearchClient.indices.refreshAll(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - } - /** - * We need to transfer the Elasticsearch data from the DDB-ES table to the Elasticsearch because the migration does not insert into the Elasticsearch directly. - */ - await transferDynamoDbToElasticsearch(elasticsearchClient, ddbToEsTable, item => { - return esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - isHeadlessCmsModel: true, - type: ACO_FOLDER_MODEL_ID - }); - }); - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.37.0/003/ddb-es/data.ts b/packages/migrations/__tests__/migrations/5.37.0/003/ddb-es/data.ts deleted file mode 100644 index 8343514eaf9..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/003/ddb-es/data.ts +++ /dev/null @@ -1,80 +0,0 @@ -export interface Folder { - id: string; - parent?: string | null | "root"; - title: string; -} - -export const createOldFoldersData = (): Folder[] => { - return [ - { - id: "test-1", - parent: "ROOT", - title: "Test 1" - }, - { - id: "test-2", - parent: null, - title: "Test 2" - }, - { - id: "test-3", - parent: undefined, - title: "Test 3" - }, - { - id: "test-4", - parent: "root", - title: "Test 4" - }, - { - id: "test-1-1", - parent: "test-1", - title: "Test 1-1" - }, - { - id: "test-1-2", - parent: "test-1", - title: "Test 1-2" - }, - { - id: "test-2-1", - parent: "test-2", - title: "Test 2-1" - }, - { - id: "test-2-2", - parent: "test-2", - title: "Test 2-2" - }, - { - id: "test-3-1", - parent: "test-3", - title: "Test 3-1" - }, - { - id: "test-3-2", - parent: "test-3", - title: "Test 3-2" - }, - { - id: "test-3-3", - parent: "test-3", - title: "Test 3-3" - }, - { - id: "test-4-1", - parent: "test-4", - title: "Test 4-1" - }, - { - id: "test-4-2", - parent: "test-4", - title: "Test 4-2" - }, - { - id: "test-4-3", - parent: "test-4", - title: "Test 4-3" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/003/ddb-es/insertTestFolders.ts b/packages/migrations/__tests__/migrations/5.37.0/003/ddb-es/insertTestFolders.ts deleted file mode 100644 index 63f8bb0e2d9..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/003/ddb-es/insertTestFolders.ts +++ /dev/null @@ -1,192 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { insertDynamoDbTestData } from "~tests/utils"; -import { ACO_FOLDER_MODEL_ID } from "~/migrations/5.37.0/003/constants"; -import { - FolderDdbEsWriteItem, - FolderDdbItem, - FolderDdbToElasticsearchWriteItem, - FolderItem -} from "../types"; -import { createOldFoldersData, Folder } from "./data"; -import { createLocalesData, createTenantsData } from "../common"; -import { insertElasticsearchTestData } from "~tests/utils/insertElasticsearchTestData"; -import { esCreateIndex, esGetIndexName } from "~/utils"; -import { ElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; -import { getElasticsearchLatestEntryData } from "~/migrations/5.37.0/003/ddb-es/latestElasticsearchData"; - -interface TenantsResponse { - tenant: string; - locales: string[]; -} - -interface Response { - folders: Folder[]; - ddbFolders: FolderDdbItem[]; - tenants: TenantsResponse[]; -} - -interface Params { - elasticsearchClient: ElasticsearchClient; - table: Table; - esTable: Table; -} - -export const insertTestFolders = async (params: Params): Promise => { - const { table, esTable, elasticsearchClient } = params; - const folders = createOldFoldersData(); - const testLocales = createLocalesData(); - const tenants = createTenantsData() - .map(tenant => tenant.data.id) - .map(tenant => { - return { - tenant, - locales: testLocales - .filter(item => item.PK === `T#${tenant}#I18N#L`) - .map(locale => locale.code) - }; - }); - - const ddbItems: FolderDdbEsWriteItem[] = []; - const ddbToEsItems: FolderDdbToElasticsearchWriteItem[] = []; - const esItems: any[] = []; - const ddbFolders: FolderDdbItem[] = []; - - for (const tenant of tenants) { - for (const locale of tenant.locales) { - for (const folder of folders) { - const { id, parent, title } = folder; - - const partitionKey = `T#${tenant.tenant}#L#${locale}#CMS#CME#${id}`; - - const values = { - title, - slug: id, - parentId: parent, - type: "cms" - }; - - /** - * Exact entry revision. - */ - ddbItems.push({ - PK: partitionKey, - SK: "REV#0001", - id: `${id}#0001`, - entryId: id, - locale, - locked: false, - modelId: ACO_FOLDER_MODEL_ID, - status: "draft", - tenant: tenant.tenant, - TYPE: "cms.entry", - values - }); - /** - * Latest entry revision. - */ - ddbItems.push({ - PK: partitionKey, - SK: "L", - id: `${id}#0001`, - entryId: id, - locale, - locked: false, - modelId: ACO_FOLDER_MODEL_ID, - status: "draft", - tenant: tenant.tenant, - TYPE: "cms.entry.l", - values - }); - - const folderItem: FolderItem = { - id: `${id}#0001`, - entryId: id, - locale, - locked: false, - modelId: ACO_FOLDER_MODEL_ID, - status: "draft", - tenant: tenant.tenant, - TYPE: "cms.entry.l", - values - }; - - const latestElasticsearchData = await getElasticsearchLatestEntryData({ - ...folderItem - }); - ddbToEsItems.push({ - PK: partitionKey, - SK: "L", - index: esGetIndexName({ - tenant: tenant.tenant, - locale, - isHeadlessCmsModel: true, - type: ACO_FOLDER_MODEL_ID - }), - data: latestElasticsearchData - }); - - esItems.push({ - ...folderItem, - PK: partitionKey, - SK: "L", - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - }); - /** - * This is for the verification purposes only. - */ - ddbFolders.push({ - PK: partitionKey, - id, - locale, - tenant: tenant.tenant - }); - } - } - } - - await insertDynamoDbTestData(table, ddbItems); - await insertDynamoDbTestData(esTable, ddbToEsItems); - await insertElasticsearchTestData(elasticsearchClient, esItems, item => { - return esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - isHeadlessCmsModel: true, - type: ACO_FOLDER_MODEL_ID - }); - }); - await elasticsearchClient.indices.refreshAll(); - - return { - folders, - ddbFolders, - tenants - }; -}; - -export const insertEmptyIndexes = async (client: ElasticsearchClient): Promise => { - const testLocales = createLocalesData(); - const tenants = createTenantsData() - .map(tenant => tenant.data.id) - .map(tenant => { - return { - tenant, - locales: testLocales - .filter(item => item.PK === `T#${tenant}#I18N#L`) - .map(locale => locale.code) - }; - }); - - for (const tenant of tenants) { - for (const locale of tenant.locales) { - await esCreateIndex({ - elasticsearchClient: client, - tenant: tenant.tenant, - locale, - type: ACO_FOLDER_MODEL_ID, - isHeadlessCmsModel: true - }); - } - } -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/003/ddb/003.test.ts b/packages/migrations/__tests__/migrations/5.37.0/003/ddb/003.test.ts deleted file mode 100644 index 4dd19a0efa3..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/003/ddb/003.test.ts +++ /dev/null @@ -1,214 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { AcoFolders_5_37_0_003 } from "~/migrations/5.37.0/003/ddb"; -import { ACO_FOLDER_MODEL_ID, ROOT_FOLDER } from "~/migrations/5.37.0/003/constants"; -import { insertTestFolders } from "./insertTestFolders"; -import { FolderDdbWriteItem } from "../types"; -import { createLocalesData, createTenantsData } from "../common"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.37.0-003", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if no tenant found", async () => { - const handler = createDdbMigrationHandler({ table, migrations: [AcoFolders_5_37_0_003] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no locale found", async () => { - await insertTestData(table, [...createTenantsData()]); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoFolders_5_37_0_003] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no pages found", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoFolders_5_37_0_003] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - const { folders, ddbFolders } = await insertTestFolders(table); - - const handler = createDdbMigrationHandler({ - table, - migrations: [AcoFolders_5_37_0_003] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const folderRecords: FolderDdbWriteItem[] = await scanTable(table, { - filters: [ - { - attr: "modelId", - eq: ACO_FOLDER_MODEL_ID - } - ] - }); - - expect(folderRecords).toHaveLength(ddbFolders.length * 2); - - const numberOfFoldersInRoot = folderRecords.filter(folder => { - return !folder.values.parentId || folder.values.parentId.toLowerCase() === ROOT_FOLDER; - }); - // 15 folders but * 2 because of last / revision records - expect(numberOfFoldersInRoot).toHaveLength(30); - - let numberOfValidatedRecords = 0; - let numberOfValidatedRecordsWithNullParent = 0; - let numberOfValidatedRecordsWithSomeParent = 0; - - for (const ddbFolder of ddbFolders) { - const folder = folders.find(f => f.id === ddbFolder.id); - if (!folder) { - throw new Error(`Missing folder with ID "${ddbFolder.id}".`); - } - const { id, parent, title } = folder; - const { tenant, locale } = ddbFolder; - - const latestFolderRecord = folderRecords.find(record => { - return ( - record.tenant === tenant && - record.locale === locale && - record.entryId === id && - record.SK === "L" - ); - }); - const revisionFolderRecord = folderRecords.find(record => { - return ( - record.tenant === tenant && - record.locale === locale && - record.entryId === id && - record.SK === "REV#0001" - ); - }); - - const values: Record = { - title: title, - slug: id, - type: "cms" - }; - if (!parent || parent?.toLowerCase() === ROOT_FOLDER) { - numberOfValidatedRecordsWithNullParent++; - } else { - numberOfValidatedRecordsWithSomeParent++; - values.parentId = parent; - } - - const partitionKey = `T#${tenant}#L#${locale}#CMS#CME#CME#${id}`; - - // Checking latest ACO search record - expect(latestFolderRecord).toMatchObject({ - PK: partitionKey, - SK: "L", - id: `${id}#0001`, - entryId: `${id}`, - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#${ACO_FOLDER_MODEL_ID}#L`, - GSI1_SK: `${id}#0001`, - locale, - locked: false, - modelId: ACO_FOLDER_MODEL_ID, - status: "draft", - tenant, - TYPE: "cms.entry.l", - values - }); - - // Checking revision 1 ACO search record - expect(revisionFolderRecord).toMatchObject({ - PK: partitionKey, - SK: "REV#0001", - id: `${id}#0001`, - entryId: `${id}`, - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#${ACO_FOLDER_MODEL_ID}#A`, - GSI1_SK: `${id}#0001`, - locale, - locked: false, - modelId: ACO_FOLDER_MODEL_ID, - status: "draft", - tenant, - TYPE: "cms.entry", - values - }); - - numberOfValidatedRecords++; - } - expect(numberOfValidatedRecords).toEqual(ddbFolders.length); - expect(numberOfValidatedRecordsWithSomeParent).toEqual(35); - expect(numberOfValidatedRecordsWithNullParent).toEqual(15); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - await insertTestFolders(table); - - const handler = createDdbMigrationHandler({ - table, - migrations: [AcoFolders_5_37_0_003] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.37.0/003/ddb/data.ts b/packages/migrations/__tests__/migrations/5.37.0/003/ddb/data.ts deleted file mode 100644 index acca7d1baff..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/003/ddb/data.ts +++ /dev/null @@ -1,60 +0,0 @@ -export interface Folder { - id: string; - parent?: string | null | "root"; - title: string; -} - -export const createOldFoldersData = (): Folder[] => { - return [ - { - id: "test-1", - parent: "ROOT", - title: "Test 1" - }, - { - id: "test-2", - parent: null, - title: "Test 2" - }, - { - id: "test-3", - parent: undefined, - title: "Test 3" - }, - { - id: "test-1-1", - parent: "test-1", - title: "Test 1-1" - }, - { - id: "test-1-2", - parent: "test-1", - title: "Test 1-2" - }, - { - id: "test-2-1", - parent: "test-2", - title: "Test 2-1" - }, - { - id: "test-2-2", - parent: "test-2", - title: "Test 2-2" - }, - { - id: "test-3-1", - parent: "test-3", - title: "Test 3-1" - }, - { - id: "test-3-2", - parent: "test-3", - title: "Test 3-2" - }, - { - id: "test-3-3", - parent: "test-3", - title: "Test 3-3" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/003/ddb/insertTestFolders.ts b/packages/migrations/__tests__/migrations/5.37.0/003/ddb/insertTestFolders.ts deleted file mode 100644 index c46b6e73023..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/003/ddb/insertTestFolders.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { insertDynamoDbTestData } from "~tests/utils"; -import { ACO_FOLDER_MODEL_ID } from "~/migrations/5.37.0/003/constants"; -import { FolderDdbItem, FolderDdbWriteItem } from "../types"; -import { createOldFoldersData, Folder } from "./data"; -import { createLocalesData, createTenantsData } from "../common"; - -interface Response { - folders: Folder[]; - ddbFolders: FolderDdbItem[]; -} - -export const insertTestFolders = async ( - table: Table -): Promise => { - const folders = createOldFoldersData(); - const tenants = createTenantsData().map(tenant => tenant.data.id); - const testLocales = createLocalesData(); - - const items: FolderDdbWriteItem[] = []; - const ddbFolders: FolderDdbItem[] = []; - - for (const tenant of tenants) { - const locales = testLocales - .filter(item => item.PK === `T#${tenant}#I18N#L`) - .map(locale => locale.code); - for (const locale of locales) { - for (const folder of folders) { - const { id, parent, title } = folder; - - const partitionKey = `T#${tenant}#L#${locale}#CMS#CME#CME#${id}`; - - const values = { - title: title, - slug: id, - parentId: parent, - type: "cms" - }; - /** - * Exact entry revision. - */ - items.push({ - PK: partitionKey, - SK: "REV#0001", - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#${ACO_FOLDER_MODEL_ID}#A`, - GSI1_SK: `${id}#0001`, - id: `${id}#0001`, - entryId: id, - locale, - locked: false, - modelId: ACO_FOLDER_MODEL_ID, - status: "draft", - tenant, - TYPE: "cms.entry", - values - }); - /** - * Latest entry revision. - */ - items.push({ - PK: partitionKey, - SK: "L", - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#${ACO_FOLDER_MODEL_ID}#L`, - GSI1_SK: `${id}#0001`, - id: `${id}#0001`, - entryId: id, - locale, - locked: false, - modelId: ACO_FOLDER_MODEL_ID, - status: "draft", - tenant, - TYPE: "cms.entry.l", - values - }); - /** - * This is for the verification purposes only. - */ - ddbFolders.push({ - PK: partitionKey, - id, - locale, - tenant - }); - } - } - } - - await insertDynamoDbTestData(table, items); - - return { - folders, - ddbFolders - }; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/003/types.ts b/packages/migrations/__tests__/migrations/5.37.0/003/types.ts deleted file mode 100644 index 9da99301c8c..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/003/types.ts +++ /dev/null @@ -1,82 +0,0 @@ -export interface CreatedBy { - id: string; - type: string; - displayName: string; -} - -export interface LocaleDdbItem { - PK: string; - SK: string; - code: string; - default: boolean; - createdOn: string; - createdBy: CreatedBy; - tenant: string; - webinyVersion: string; -} - -export interface TenantDdbItem { - PK: string; - SK: string; - createdOn: string; - description: string; - GSI1_PK: string; - GSI1_SK: string; - data: { - id: string; - name: string; - parent?: string | null; - savedOn: string; - settings: { - domains: string[]; - }; - status: string; - TYPE: string; - webinyVersion: string; - createdBy: CreatedBy; - }; -} - -export interface FolderDdbToElasticsearchWriteItem { - PK: string; - SK: string; - index: string; - data: any; -} - -export interface FolderDdbWriteItem extends FolderItem { - PK: string; - SK: string; - GSI1_PK: string; - GSI1_SK: string; -} - -export type FolderDdbEsWriteItem = Omit; - -export interface FolderItem { - id: string; - entryId: string; - locale: string; - tenant: string; - locked: boolean; - modelId: string; - status: string; - TYPE: string; - values: { - title: string; - slug: string; - parentId?: string | null; - type: string; - }; -} - -export interface FolderDdbItem { - PK: string; - id: string; - locale: string; - tenant: string; -} - -export interface FolderDdbEsItem { - PK: string; -} diff --git a/packages/migrations/__tests__/migrations/5.37.0/004/ddb-es/004.test.ts b/packages/migrations/__tests__/migrations/5.37.0/004/ddb-es/004.test.ts deleted file mode 100644 index 5e16b077e9d..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/004/ddb-es/004.test.ts +++ /dev/null @@ -1,349 +0,0 @@ -import { - assertNotError, - createDdbEsMigrationHandler, - getDynamoToEsTable, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { AcoRecords_5_37_0_004 } from "~/migrations/5.37.0/004/ddb-es"; -import { - PB_ACO_SEARCH_MODEL_ID, - PB_PAGE_TYPE, - ROOT_FOLDER -} from "~/migrations/5.37.0/004/constants"; -/** - * We are using the original 5.35.0 006 migration data and migration to set up the test data. - */ -import { AcoRecords_5_35_0_006 } from "~/migrations/5.35.0/006/ddb-es"; -import { insertTestPages } from "~tests/migrations/5.35.0/006/ddb-es/insertTestPages"; -import { createLocalesData, createTenantsData } from "~tests/migrations/5.35.0/006/ddb-es/006.data"; -import { getDocumentClient } from "@webiny/project-utils/testing/dynamodb"; -import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.37.0-004", () => { - const documentClient = getDocumentClient(); - const ddbTable = getPrimaryDynamoDbTable(); - const ddbToEsTable = getDynamoToEsTable({ - documentClient - }); - const elasticsearchClient = createElasticsearchClient(); - - beforeEach(async () => { - process.env.ELASTIC_SEARCH_INDEX_PREFIX = - new Date().toISOString().replace(/\.|\:/g, "-").toLowerCase() + "-"; - - await elasticsearchClient.indices.deleteAll(); - }); - afterEach(async () => { - await elasticsearchClient.indices.deleteAll(); - }); - - logTestNameBeforeEachTest(); - - it("should not run if no tenant found", async () => { - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoRecords_5_37_0_004] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no locale found", async () => { - await insertTestData(ddbTable, [...createTenantsData()]); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoRecords_5_37_0_004] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no pages found", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoRecords_5_37_0_004] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - const { ddbPages } = await insertTestPages({ - ddbTable, - esTable: ddbToEsTable, - elasticsearchClient - }); - - const searchRecordsBeforeMigrations = await scanTable(ddbTable, { - filters: [ - { - attr: "_et", - eq: "CmsEntries" - } - ] - }); - - expect(searchRecordsBeforeMigrations).toHaveLength(0); - /** - * First we are executing the 5.35.0_006 migration as it creates the original ACO Search Records. - */ - const handlerPrepare = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoRecords_5_35_0_006] - }); - const { data: dataPrepare, error: errorPrepare } = await handlerPrepare(); - - assertNotError(errorPrepare); - const groupedPrepare = groupMigrations(dataPrepare.migrations); - expect(groupedPrepare.executed.length).toBe(1); - expect(groupedPrepare.skipped.length).toBe(0); - expect(groupedPrepare.notApplicable.length).toBe(0); - - const ddbSearchRecordsPrepare = await scanTable(ddbTable, { - entity: "CmsEntries", - filters: [ - { - attr: "modelId", - eq: "acoSearchRecord" - } - ] - }); - - const ddbEsSearchRecordsPrepare = await scanTable(ddbToEsTable, { - entity: "CmsEntriesElasticsearch", - filters: [ - { - attr: "index", - contains: "acosearchrecord" - } - ] - }); - - expect(ddbSearchRecordsPrepare.length).toBe(ddbPages.length * 2); - expect(ddbEsSearchRecordsPrepare.length).toBe(ddbPages.length); - /** - * And then we execute current the 5.37.0_004 migration. - */ - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoRecords_5_37_0_004] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBeGreaterThanOrEqual(1); - expect(grouped.skipped.length).toBeGreaterThanOrEqual(0); - expect(grouped.notApplicable.length).toBe(0); - - const searchRecordsAfterMigrations = await scanTable(ddbTable, { - filters: [ - { - attr: "_et", - eq: "CmsEntries" - } - ] - }); - const cmsEntries = searchRecordsAfterMigrations.filter(r => { - return r.modelId === PB_ACO_SEARCH_MODEL_ID; - }); - - expect(searchRecordsAfterMigrations).toHaveLength(ddbPages.length * 2); - expect(cmsEntries).toHaveLength(ddbPages.length * 2); - /** - * We are expecting that the AcoRecords_5_37_0_004 will be executed. - * For the AcoRecords_5_35_0_006 it is possible that it is a second iteration of the migration runs and at that point it is not executed. - * Because of that, we are checking for skipped to be 1 or less and executed to be 1 or 2. - */ - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const searchRecords = await scanTable(ddbTable, { - filters: [ - { - attr: "modelId", - eq: PB_ACO_SEARCH_MODEL_ID - } - ] - }); - - expect(searchRecords.length).toBe(ddbPages.length * 2); - - for (const page of ddbPages) { - const { - createdBy, - createdOn, - id, - locale, - locked, - path, - pid, - savedOn, - status, - tenant, - title, - version - } = page; - - const latestSearchRecord = searchRecords.find( - record => record.id === `wby-aco-${pid}#0001` && record.SK === "L" - ); - const revisionSearchRecord = searchRecords.find( - record => record.id === `wby-aco-${pid}#0001` && record.SK === "REV#0001" - ); - - const values = { - "text@title": title, - "text@content": `${title} Heading ${pid} Lorem ipsum dolor sit amet.`, - "text@type": PB_PAGE_TYPE, - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "text@tags": [`tag-${pid}-1`, `tag-${pid}-2`], - "object@data": { - ["object@createdBy"]: { - ["text@id"]: createdBy.id, - ["text@type"]: createdBy.type, - ["text@displayName"]: createdBy.displayName - }, - ["datetime@createdOn"]: createdOn, - ["text@id"]: id, - ["boolean@locked"]: locked, - ["text@path"]: path, - ["text@pid"]: pid, - ["datetime@savedOn"]: savedOn, - ["text@status"]: status, - ["text@title"]: title, - ["number@version"]: version - } - }; - - // Checking latest ACO search record - expect(latestSearchRecord).toMatchObject({ - PK: `T#${tenant}#L#${locale}#CMS#CME#wby-aco-${pid}`, - SK: "L", - id: `wby-aco-${pid}#0001`, - entryId: `wby-aco-${pid}`, - locale, - locked: false, - modelId: PB_ACO_SEARCH_MODEL_ID, - status: "draft", - tenant, - TYPE: "cms.entry.l", - values - }); - - // Checking revision 1 ACO search record - expect(revisionSearchRecord).toMatchObject({ - PK: `T#${tenant}#L#${locale}#CMS#CME#wby-aco-${pid}`, - SK: "REV#0001", - id: `wby-aco-${pid}#0001`, - entryId: `wby-aco-${pid}`, - locale, - locked: false, - modelId: PB_ACO_SEARCH_MODEL_ID, - status: "draft", - tenant, - TYPE: "cms.entry", - values - }); - } - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - await insertTestPages({ - ddbTable, - esTable: ddbToEsTable, - elasticsearchClient, - numberOfPages: 1 - }); - - /** - * First we are executing the 5.35.0_006 migration as it creates the original ACO Search Records. - */ - const handlerPrepare = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoRecords_5_35_0_006] - }); - /** - * We do not need to check values in the response as those are tested already. - */ - await handlerPrepare(); - /** - * And then we execute current the 5.37.0_004 migration. - */ - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [AcoRecords_5_37_0_004] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.37.0/004/ddb/004.test.ts b/packages/migrations/__tests__/migrations/5.37.0/004/ddb/004.test.ts deleted file mode 100644 index b4140575a3b..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/004/ddb/004.test.ts +++ /dev/null @@ -1,248 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { AcoRecords_5_37_0_004 } from "~/migrations/5.37.0/004/ddb"; -import { - PB_ACO_SEARCH_MODEL_ID, - PB_PAGE_TYPE, - ROOT_FOLDER -} from "~/migrations/5.37.0/004/constants"; -/** - * We are using the original 5.35.0 006 migration data and migration to set up the test data. - */ -import { AcoRecords_5_35_0_006 } from "~/migrations/5.35.0/006/ddb"; -import { insertTestPages } from "~tests/migrations/5.35.0/006/ddb/insertTestPages"; -import { createLocalesData, createTenantsData } from "~tests/migrations/5.35.0/006/ddb/006.data"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.37.0-004", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if no tenant found", async () => { - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_37_0_004] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no locale found", async () => { - await insertTestData(table, [...createTenantsData()]); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_37_0_004] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no pages found", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - - const handler = createDdbMigrationHandler({ table, migrations: [AcoRecords_5_37_0_004] }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - const ddbPages = await insertTestPages(table); - - /** - * First we are executing the 5.35.0_006 migration as it creates the original ACO Search Records. - */ - const handlerPrepare = createDdbMigrationHandler({ - table, - migrations: [AcoRecords_5_35_0_006] - }); - const { data: dataPrepare, error: errorPrepare } = await handlerPrepare(); - - assertNotError(errorPrepare); - const groupedPrepare = groupMigrations(dataPrepare.migrations); - - expect(groupedPrepare.executed.length).toBe(1); - expect(groupedPrepare.skipped.length).toBe(0); - expect(groupedPrepare.notApplicable.length).toBe(0); - - /** - * And then we execute current the 5.37.0_004 migration. - */ - const handler = createDdbMigrationHandler({ - table, - migrations: [AcoRecords_5_37_0_004] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const searchRecords = await scanTable(table, { - filters: [ - { - attr: "modelId", - eq: "acoSearchRecord-pbpage" - } - ] - }); - - expect(searchRecords.length).toBe(ddbPages.length * 2); - - for (const page of ddbPages) { - const { - createdBy, - createdOn, - id, - locale, - locked, - path, - pid, - savedOn, - status, - tenant, - title, - version - } = page; - - const latestSearchRecord = searchRecords.find( - record => record.id === `wby-aco-${pid}#0001` && record.SK === "L" - ); - const revisionSearchRecord = searchRecords.find( - record => record.id === `wby-aco-${pid}#0001` && record.SK === "REV#0001" - ); - - const values = { - "text@title": title, - "text@content": `${title} Heading ${pid} Lorem ipsum dolor sit amet.`, - "text@type": PB_PAGE_TYPE, - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "text@tags": [`tag-${pid}`], - "object@data": { - ["object@createdBy"]: { - ["text@id"]: createdBy.id, - ["text@type"]: createdBy.type, - ["text@displayName"]: createdBy.displayName - }, - ["datetime@createdOn"]: createdOn, - ["text@id"]: id, - ["boolean@locked"]: locked, - ["text@path"]: path, - ["text@pid"]: pid, - ["datetime@savedOn"]: savedOn, - ["text@status"]: status, - ["text@title"]: title, - ["number@version"]: version - } - }; - - // Checking latest ACO search record - expect(latestSearchRecord).toMatchObject({ - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#wby-aco-${pid}`, - SK: "L", - id: `wby-aco-${pid}#0001`, - entryId: `wby-aco-${pid}`, - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#${PB_ACO_SEARCH_MODEL_ID}#L`, - GSI1_SK: `wby-aco-${pid}#0001`, - locale, - locked: false, - modelId: PB_ACO_SEARCH_MODEL_ID, - status: "draft", - tenant, - TYPE: "cms.entry.l", - values - }); - - // Checking revision 1 ACO search record - expect(revisionSearchRecord).toMatchObject({ - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#wby-aco-${pid}`, - SK: "REV#0001", - id: `wby-aco-${pid}#0001`, - entryId: `wby-aco-${pid}`, - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#${PB_ACO_SEARCH_MODEL_ID}#A`, - GSI1_SK: `wby-aco-${pid}#0001`, - locale, - locked: false, - modelId: PB_ACO_SEARCH_MODEL_ID, - status: "draft", - tenant, - TYPE: "cms.entry", - values - }); - } - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(table, [...createTenantsData(), ...createLocalesData()]); - await insertTestPages(table, 1); - - /** - * First we are executing the 5.35.0_006 migration as it creates the original ACO Search Records. - */ - const handlerPrepare = createDdbMigrationHandler({ - table, - migrations: [AcoRecords_5_35_0_006] - }); - - await handlerPrepare(); - - /** - * And then we execute current the 5.37.0_004 migration. - */ - const handler = createDdbMigrationHandler({ - table, - migrations: [AcoRecords_5_37_0_004] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.37.0/005/ddb-es/005.test.ts b/packages/migrations/__tests__/migrations/5.37.0/005/ddb-es/005.test.ts deleted file mode 100644 index b23f4a1a68f..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/005/ddb-es/005.test.ts +++ /dev/null @@ -1,203 +0,0 @@ -import { - assertNotError, - createDdbEsMigrationHandler, - getDynamoToEsTable, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { FileManager_5_37_0_005 } from "~/migrations/5.37.0/005/ddb-es"; -import { createLocalesData, createTenantsData } from "~tests/migrations/5.35.0/006/ddb-es/006.data"; -import { getDocumentClient } from "@webiny/project-utils/testing/dynamodb"; -import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; -import { createSourceFileRecords } from "./primaryTable.data"; -import { createSourceEsTableRecords } from "./esTable.data"; -import { transferDynamoDbToElasticsearch } from "~tests/utils/insertElasticsearchTestData"; -import { esGetIndexName } from "~/utils"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.37.0-005", () => { - const documentClient = getDocumentClient(); - const ddbTable = getPrimaryDynamoDbTable(); - const ddbToEsTable = getDynamoToEsTable({ - documentClient - }); - const elasticsearchClient = createElasticsearchClient(); - - const transferDataToEs = () => { - return transferDynamoDbToElasticsearch(elasticsearchClient, ddbToEsTable, item => { - const isHeadlessCmsModel = item.TYPE && item.TYPE.startsWith("cms.entry"); - const type = isHeadlessCmsModel ? item.modelId.toLowerCase() : "file-manager"; - - return esGetIndexName({ - tenant: item.tenant ?? item.data.tenant, - locale: item.locale ?? item.data.locale, - isHeadlessCmsModel, - type - }); - }); - }; - - beforeEach(async () => { - process.env.ELASTIC_SEARCH_INDEX_PREFIX = - new Date().toISOString().replace(/\.|\:/g, "-").toLowerCase() + "-"; - - await elasticsearchClient.indices.deleteAll(); - }); - afterEach(async () => { - await elasticsearchClient.indices.deleteAll(); - }); - - logTestNameBeforeEachTest(); - - it("should not run if no tenant found", async () => { - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [FileManager_5_37_0_005] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no locale found", async () => { - await insertTestData(ddbTable, [...createTenantsData()]); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [FileManager_5_37_0_005] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should not run if no files were found", async () => { - await insertTestData(ddbTable, [...createTenantsData(), ...createLocalesData()]); - - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [FileManager_5_37_0_005] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - const AMOUNT_OF_RECORDS = 100; - - await insertTestData(ddbTable, [ - ...createTenantsData(), - ...createLocalesData(), - ...createSourceFileRecords(AMOUNT_OF_RECORDS) - ]); - - await insertTestData(ddbToEsTable, [ - ...(await createSourceEsTableRecords(AMOUNT_OF_RECORDS)) - ]); - - await transferDataToEs(); - - // Assert - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [FileManager_5_37_0_005] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBeGreaterThanOrEqual(1); - expect(grouped.skipped.length).toBeGreaterThanOrEqual(0); - expect(grouped.notApplicable.length).toBe(0); - - await transferDataToEs(); - - const cmsRecords = await scanTable(ddbTable, { - filters: [ - { - attr: "TYPE", - eq: "cms.entry" - }, - { - attr: "modelId", - eq: "fmFile" - } - ] - }); - - expect(cmsRecords.length).toBe(AMOUNT_OF_RECORDS); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(ddbTable, [ - ...createTenantsData(), - ...createLocalesData(), - ...createSourceFileRecords(10) - ]); - - await insertTestData(ddbToEsTable, [...(await createSourceEsTableRecords(10))]); - - await transferDataToEs(); - - // Assert - const handler = createDdbEsMigrationHandler({ - primaryTable: ddbTable, - elasticsearchClient, - dynamoToEsTable: ddbToEsTable, - migrations: [FileManager_5_37_0_005] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.37.0/005/ddb-es/createFileRecord.ts b/packages/migrations/__tests__/migrations/5.37.0/005/ddb-es/createFileRecord.ts deleted file mode 100644 index 275ee77bb44..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/005/ddb-es/createFileRecord.ts +++ /dev/null @@ -1,98 +0,0 @@ -export const createFileRecord = (index: number) => { - return { - _md: "2023-06-27T14:06:16.328Z", - data: { - aliases: [], - type: "image/jpeg", - locale: "en-US", - createdOn: "2023-06-27T14:06:16.328Z", - tags: [], - size: 286270, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "649aeb9dfa4a560008fa2ec6" - }, - webinyVersion: "5.36.2", - meta: { - private: false - }, - name: "image-41.jpg", - id: `649aecd7fa4a560008fa2f1c${index}`, - key: `649aecd7fa4a560008fa2f1c${index}/image-${index}.jpg`, - tenant: "root" - }, - GSI1_SK: `649aecd7fa4a560008fa2f1c${index}`, - SK: "A", - PK: `T#root#L#en-US#FM#F649aecd7fa4a560008fa2f1c${index}`, - _et: "FM.File", - _ct: "2023-06-27T14:06:16.328Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }; -}; - -export const createLatestSearchRecord = (index: number) => { - return { - modelId: "acoSearchRecord", - version: 1, - savedOn: "2023-06-27T14:06:40.491Z", - locale: "en-US", - status: "draft", - values: { - "object@location": { - "text@folderId": "ROOT" - }, - "text@title": `image-${index}.jpg`, - "text@type": "FmFile", - "wby-aco-json@data": { - aliases: [], - size: 137015, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "649aeb9dfa4a560008fa2ec6" - }, - meta: { - private: false - }, - name: "image-49.jpg", - id: `649aecd7fa4a560008fa2f1c${index}`, - key: `649aecd7fa4a560008fa2f1c${index}/image-${index}.jpg`, - type: "image/jpeg", - createdOn: "2023-06-27T14:06:40.463Z" - }, - "text@tags": ["mime:image/jpeg"] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "649aeb9dfa4a560008fa2ec6" - }, - _ct: "2023-06-27T14:06:40.504Z", - TYPE: "cms.entry.l", - entryId: `wby-aco-649aecd7fa4a560008fa2f1c${index}`, - tenant: "root", - _md: "2023-06-27T14:06:40.504Z", - createdOn: "2023-06-27T14:06:40.491Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "649aeb9dfa4a560008fa2ec6" - }, - SK: "L", - webinyVersion: "5.36.2", - id: `wby-aco-649aecd7fa4a560008fa2f1c${index}#0001`, - PK: `T#root#L#en-US#CMS#CME#wby-aco-649aecd7fa4a560008fa2f1c${index}` - }; -}; - -export const createSearchRecordRevision = (index: number) => { - return { - ...createLatestSearchRecord(index), - TYPE: "cms.entry", - SK: "REV#0001" - }; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/005/ddb-es/esTable.data.ts b/packages/migrations/__tests__/migrations/5.37.0/005/ddb-es/esTable.data.ts deleted file mode 100644 index 6b6e92e60bd..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/005/ddb-es/esTable.data.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { createGzipCompression } from "@webiny/api-elasticsearch"; -import { - createFileRecord, - createLatestSearchRecord -} from "~tests/migrations/5.37.0/005/ddb-es/createFileRecord"; - -const compression = createGzipCompression(); - -export const createSourceEsTableRecords = async (amount = 10000) => { - const records: any[] = []; - - for (let index = 0; index < amount; index++) { - const acoRecord = createLatestSearchRecord(index); - const fileRecord = createFileRecord(index); - - records.push({ - index: "root-headless-cms-en-us-acosearchrecord", - _md: "2023-06-27T14:06:40.523Z", - data: await compression.compress(acoRecord), - SK: "L", - PK: acoRecord.PK, - _et: "CmsEntriesElasticsearch", - _ct: "2023-06-27T14:06:40.523Z" - }); - - records.push({ - index: "root-en-us-file-manager", - _md: "2023-06-27T14:05:12.366Z", - data: await compression.compress(fileRecord.data), - SK: "A", - PK: fileRecord.PK, - _et: "FilesElasticsearch", - _ct: "2023-06-27T14:05:12.366Z" - }); - } - - return records; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/005/ddb-es/primaryTable.data.ts b/packages/migrations/__tests__/migrations/5.37.0/005/ddb-es/primaryTable.data.ts deleted file mode 100644 index df9e5be5eaf..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/005/ddb-es/primaryTable.data.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { - createFileRecord, - createLatestSearchRecord, - createSearchRecordRevision -} from "./createFileRecord"; - -export const createSourceFileRecords = (amount = 10000) => { - const records: any[] = []; - Array.from({ length: amount }).forEach((_, index) => { - // Legacy file record - records.push(createFileRecord(index)); - - // ACO search record - Latest - records.push(createLatestSearchRecord(index)); - - // ACO search record - Revision - records.push(createSearchRecordRevision(index)); - }); - - return records; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/005/ddb/005.data.ts b/packages/migrations/__tests__/migrations/5.37.0/005/ddb/005.data.ts deleted file mode 100644 index b7a982e49a3..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/005/ddb/005.data.ts +++ /dev/null @@ -1,2509 +0,0 @@ -export const createdBy = { - id: "admin", - type: "admin", - displayName: "Admin" -}; - -export const createTenantsData = () => { - return [ - { - _md: "2023-06-26T13:06:52.315Z", - data: { - aliases: [], - type: "image/jpeg", - locale: "en-US", - createdOn: "2023-06-26T13:06:52.315Z", - tags: [], - size: 280166, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: false - }, - name: "image-1.jpg", - id: "64998d6b230aa40008c87c47", - key: "64998d6b230aa40008c87c47/image-1.jpg", - tenant: "root" - }, - GSI1_SK: "64998d6b230aa40008c87c47", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#64998d6b230aa40008c87c47", - _et: "FM.File", - _ct: "2023-06-26T13:06:52.315Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - modelId: "acoSearchRecord", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "cms.entry.l", - entryId: "wby-aco-64998d1a230aa40008c87c43", - _md: "2023-06-26T13:05:31.154Z", - GSI1_SK: "wby-aco-64998d1a230aa40008c87c43#0001", - SK: "L", - id: "wby-aco-64998d1a230aa40008c87c43#0001", - version: 1, - savedOn: "2023-06-26T13:05:31.137Z", - locale: "en-US", - values: { - "object@location": { - "text@folderId": "ROOT" - }, - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@type": "PbPage", - "wby-aco-json@data": { - path: "/welcome-to-webiny", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - savedOn: "2023-06-26T13:05:30.896Z", - pid: "64998d1a230aa40008c87c43", - id: "64998d1a230aa40008c87c43#0001", - title: "Welcome to Webiny", - locked: true, - createdOn: "2023-06-26T13:05:30.255Z", - version: 1, - status: "published" - }, - "text@tags": [] - }, - _et: "CmsEntries", - _ct: "2023-06-26T13:05:31.154Z", - tenant: "root", - createdOn: "2023-06-26T13:05:30.360Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d1a230aa40008c87c43", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#L" - }, - { - modelId: "acoSearchRecord", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "cms.entry", - entryId: "wby-aco-64998d1a230aa40008c87c43", - _md: "2023-06-26T13:05:31.153Z", - GSI1_SK: "wby-aco-64998d1a230aa40008c87c43#0001", - SK: "REV#0001", - id: "wby-aco-64998d1a230aa40008c87c43#0001", - version: 1, - savedOn: "2023-06-26T13:05:31.137Z", - locale: "en-US", - values: { - "object@location": { - "text@folderId": "ROOT" - }, - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@type": "PbPage", - "wby-aco-json@data": { - path: "/welcome-to-webiny", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - savedOn: "2023-06-26T13:05:30.896Z", - pid: "64998d1a230aa40008c87c43", - id: "64998d1a230aa40008c87c43#0001", - title: "Welcome to Webiny", - locked: true, - createdOn: "2023-06-26T13:05:30.255Z", - version: 1, - status: "published" - }, - "text@tags": [] - }, - _et: "CmsEntries", - _ct: "2023-06-26T13:05:31.153Z", - tenant: "root", - createdOn: "2023-06-26T13:05:30.360Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d1a230aa40008c87c43", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#A" - }, - { - _et: "SecurityIdentity2Tenant", - _ct: "2023-06-26T13:03:08.413Z", - tenant: "root", - identity: "64998c8b230aa40008c87c41", - _md: "2023-06-26T13:03:08.413Z", - createdOn: "2023-06-26T13:03:08.413Z", - data: { - permissions: [ - { - name: "*" - } - ], - group: "64998c56230aa40008c87c3f" - }, - GSI1_SK: "TYPE#group#IDENTITY#64998c8b230aa40008c87c41", - SK: "LINK#T#root", - webinyVersion: "5.36.2", - PK: "IDENTITY#64998c8b230aa40008c87c41", - type: "group", - GSI1_PK: "T#root" - }, - { - locale: "en-US", - slug: "static", - layout: "static", - url: "/static/", - _et: "PbCategories", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - name: "Static", - _ct: "2023-06-26T13:05:26.976Z", - TYPE: "pb.category", - tenant: "root", - _md: "2023-06-26T13:05:26.976Z", - createdOn: "2023-06-26T13:05:26.976Z", - SK: "static", - PK: "T#root#L#en-US#PB#C" - }, - { - _md: "2023-06-26T13:05:30.034Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 1758, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "serverless-cms-logo.svg", - id: "602281486639200009fd35eb", - key: "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - tenant: "root" - }, - GSI1_SK: "602281486639200009fd35eb", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#602281486639200009fd35eb", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.034Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - modelId: "acoSearchRecord", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "cms.entry.l", - entryId: "wby-aco-64998d6e230aa40008c87c4b", - _md: "2023-06-26T14:13:20.812Z", - GSI1_SK: "wby-aco-64998d6e230aa40008c87c4b#0001", - SK: "L", - id: "wby-aco-64998d6e230aa40008c87c4b#0001", - version: 1, - savedOn: "2023-06-26T14:13:20.803Z", - locale: "en-US", - values: { - "object@location": { - "text@folderId": "649998f258684a000835510e#0001" - }, - "text@title": "image-3.jpg", - "text@content": null, - "text@type": "FmFile", - "wby-aco-json@data": { - aliases: ["/space.jpg"], - size: 384490, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - meta: { - private: false - }, - name: "image-3.jpg", - id: "64998d6e230aa40008c87c4b", - type: "image/jpeg", - createdOn: "2023-06-26T13:06:54.775Z", - key: "64998d6e230aa40008c87c4b/image-3.jpg" - }, - "text@tags": ["space", "nature", "mime:image/jpeg"] - }, - _et: "CmsEntries", - _ct: "2023-06-26T14:13:20.812Z", - tenant: "root", - createdOn: "2023-06-26T13:06:54.796Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d6e230aa40008c87c4b", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#L" - }, - { - modelId: "acoSearchRecord", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "cms.entry", - entryId: "wby-aco-64998d6e230aa40008c87c4b", - _md: "2023-06-26T14:13:20.804Z", - GSI1_SK: "wby-aco-64998d6e230aa40008c87c4b#0001", - SK: "REV#0001", - id: "wby-aco-64998d6e230aa40008c87c4b#0001", - version: 1, - savedOn: "2023-06-26T14:13:20.803Z", - locale: "en-US", - values: { - "object@location": { - "text@folderId": "649998f258684a000835510e#0001" - }, - "text@title": "image-3.jpg", - "text@content": null, - "text@type": "FmFile", - "wby-aco-json@data": { - aliases: ["/space.jpg"], - size: 384490, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - meta: { - private: false - }, - name: "image-3.jpg", - id: "64998d6e230aa40008c87c4b", - type: "image/jpeg", - createdOn: "2023-06-26T13:06:54.775Z", - key: "64998d6e230aa40008c87c4b/image-3.jpg" - }, - "text@tags": ["space", "nature", "mime:image/jpeg"] - }, - _et: "CmsEntries", - _ct: "2023-06-26T14:13:20.804Z", - tenant: "root", - createdOn: "2023-06-26T13:06:54.796Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d6e230aa40008c87c4b", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#A" - }, - { - _md: "2023-06-26T13:05:30.094Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 27804, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "developer.svg", - id: "60228145f98841000981c721", - key: "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - tenant: "root" - }, - GSI1_SK: "60228145f98841000981c721", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#60228145f98841000981c721", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.094Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - locale: "en-US", - slug: "main-menu", - _et: "PbMenus", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - items: [], - _ct: "2023-06-26T13:05:30.198Z", - TYPE: "pb.menu", - tenant: "root", - _md: "2023-06-26T13:05:30.198Z", - createdOn: "2023-06-26T13:05:30.197Z", - SK: "main-menu", - description: "The main menu of the website, containing links to most important pages.", - PK: "T#root#L#en-US#PB#M", - title: "Main Menu" - }, - { - tenant: "root", - _md: "2023-06-26T13:05:41.616Z", - locale: "en-US", - reCaptcha: { - secretKey: null, - enabled: null, - siteKey: null - }, - SK: "default", - PK: "T#root#L#en-US#FB#SETTINGS", - _et: "FormBuilderSettings", - _ct: "2023-06-26T13:05:41.616Z", - domain: "https://d1d7pkrb4y3b4l.cloudfront.net" - }, - { - permissions: [ - { - name: "*" - } - ], - slug: "full-access", - _et: "SecurityGroup", - name: "Full Access", - _ct: "2023-06-26T13:02:14.592Z", - TYPE: "security.group", - tenant: "root", - system: true, - _md: "2023-06-26T13:02:14.592Z", - createdOn: "2023-06-26T13:02:14.592Z", - GSI1_SK: "full-access", - SK: "A", - description: "Grants full access to all apps.", - webinyVersion: "5.36.2", - id: "64998c56230aa40008c87c3f", - PK: "T#root#GROUP#64998c56230aa40008c87c3f", - GSI1_PK: "T#root#GROUPS" - }, - { - _md: "2023-06-26T13:05:30.034Z", - data: { - aliases: [], - type: "image/png", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 108898, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "webiny-serverless-cms.png ", - id: "602281486ed41f0008bc2dad", - key: "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - tenant: "root" - }, - GSI1_SK: "602281486ed41f0008bc2dad", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#602281486ed41f0008bc2dad", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.034Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:05:29.997Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 17711, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "security.svg", - id: "6022814bef4a940008b3ba27", - key: "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - tenant: "root" - }, - GSI1_SK: "6022814bef4a940008b3ba27", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#6022814bef4a940008b3ba27", - _et: "FM.File", - _ct: "2023-06-26T13:05:29.997Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - permissions: [], - slug: "anonymous", - _et: "SecurityGroup", - name: "Anonymous", - _ct: "2023-06-26T13:02:14.632Z", - TYPE: "security.group", - tenant: "root", - system: true, - _md: "2023-06-26T13:02:14.632Z", - createdOn: "2023-06-26T13:02:14.631Z", - GSI1_SK: "anonymous", - SK: "A", - description: "Permissions for anonymous users (public access).", - webinyVersion: "5.36.2", - id: "64998c56230aa40008c87c40", - PK: "T#root#GROUP#64998c56230aa40008c87c40", - GSI1_PK: "T#root#GROUPS" - }, - { - modelId: "acoSearchRecord", - version: 1, - savedOn: "2023-06-26T13:06:52.343Z", - locale: "en-US", - status: "draft", - values: { - "object@location": { - "text@folderId": "ROOT" - }, - "text@title": "image-1.jpg", - "text@type": "FmFile", - "wby-aco-json@data": { - aliases: [], - size: 280166, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - meta: { - private: false - }, - name: "image-1.jpg", - id: "64998d6b230aa40008c87c47", - type: "image/jpeg", - createdOn: "2023-06-26T13:06:52.315Z", - key: "64998d6b230aa40008c87c47/image-1.jpg" - }, - "text@tags": ["mime:image/jpeg"] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - _ct: "2023-06-26T13:06:52.344Z", - TYPE: "cms.entry.l", - entryId: "wby-aco-64998d6b230aa40008c87c47", - tenant: "root", - _md: "2023-06-26T13:06:52.344Z", - createdOn: "2023-06-26T13:06:52.343Z", - locked: false, - GSI1_SK: "wby-aco-64998d6b230aa40008c87c47#0001", - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - SK: "L", - webinyVersion: "5.36.2", - id: "wby-aco-64998d6b230aa40008c87c47#0001", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d6b230aa40008c87c47", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#L" - }, - { - modelId: "acoSearchRecord", - version: 1, - savedOn: "2023-06-26T13:06:52.343Z", - locale: "en-US", - status: "draft", - values: { - "object@location": { - "text@folderId": "ROOT" - }, - "text@title": "image-1.jpg", - "text@type": "FmFile", - "wby-aco-json@data": { - aliases: [], - size: 280166, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - meta: { - private: false - }, - name: "image-1.jpg", - id: "64998d6b230aa40008c87c47", - type: "image/jpeg", - createdOn: "2023-06-26T13:06:52.315Z", - key: "64998d6b230aa40008c87c47/image-1.jpg" - }, - "text@tags": ["mime:image/jpeg"] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - _ct: "2023-06-26T13:06:52.343Z", - TYPE: "cms.entry", - entryId: "wby-aco-64998d6b230aa40008c87c47", - tenant: "root", - _md: "2023-06-26T13:06:52.343Z", - createdOn: "2023-06-26T13:06:52.343Z", - locked: false, - GSI1_SK: "wby-aco-64998d6b230aa40008c87c47#0001", - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - SK: "REV#0001", - webinyVersion: "5.36.2", - id: "wby-aco-64998d6b230aa40008c87c47#0001", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d6b230aa40008c87c47", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#A" - }, - { - _md: "2023-06-26T13:06:55.683Z", - data: { - aliases: [], - type: "image/jpeg", - locale: "en-US", - createdOn: "2023-06-26T13:06:55.683Z", - tags: [], - size: 311514, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: false - }, - name: "image-4.jpg", - id: "64998d6f230aa40008c87c4d", - key: "64998d6f230aa40008c87c4d/image-4.jpg", - tenant: "root" - }, - GSI1_SK: "64998d6f230aa40008c87c4d", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#64998d6f230aa40008c87c4d", - _et: "FM.File", - _ct: "2023-06-26T13:06:55.683Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:05:30.094Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 73153, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "data-icon.svg", - id: "602281486ed41f0008bc2dac", - key: "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - tenant: "root" - }, - GSI1_SK: "602281486ed41f0008bc2dac", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#602281486ed41f0008bc2dac", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.094Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "pb.page", - _md: "2023-06-26T13:05:30.873Z", - titleLC: "not found", - SK: "1", - publishedOn: "2023-06-26T13:05:30.861Z", - id: "64998d1a230aa40008c87c42#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-06-26T13:05:30.861Z", - pid: "64998d1a230aa40008c87c42", - _et: "PbPages", - _ct: "2023-06-26T13:05:30.873Z", - tenant: "root", - createdOn: "2023-06-26T13:05:30.255Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#PB#64998d1a230aa40008c87c42", - title: "Not Found" - }, - { - _md: "2023-06-26T13:05:29.997Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.995Z", - tags: [], - size: 3661, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "webiny-serverless-application-framework.svg", - id: "6022814a0df4b000088735bb", - key: "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - tenant: "root" - }, - GSI1_SK: "6022814a0df4b000088735bb", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#6022814a0df4b000088735bb", - _et: "FM.File", - _ct: "2023-06-26T13:05:29.997Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - tenant: "root", - version: "5.36.2", - _md: "2023-06-26T13:03:08.435Z", - SK: "ADMIN_USERS", - PK: "T#root#SYSTEM", - _et: "AdminUsers.System", - _ct: "2023-06-26T13:03:08.435Z", - TYPE: "adminUsers.system" - }, - { - tenant: "root", - version: "5.36.2", - _md: "2023-06-26T13:05:55.080Z", - SK: "CMS", - PK: "T#root#SYSTEM", - _et: "CmsSystem", - _ct: "2023-06-26T13:05:55.080Z" - }, - { - tenant: "root", - version: "5.36.2", - _md: "2023-06-26T13:05:41.646Z", - SK: "FB", - PK: "T#root#SYSTEM", - _et: "FormBuilderSystem", - _ct: "2023-06-26T13:05:41.646Z" - }, - { - tenant: "root", - version: "5.36.2", - _md: "2023-06-26T13:05:05.760Z", - SK: "FM", - PK: "T#root#SYSTEM", - _et: "System", - _ct: "2023-06-26T13:05:05.760Z" - }, - { - tenant: "root", - version: "5.36.2", - _md: "2023-06-26T13:05:05.494Z", - SK: "I18N", - PK: "T#root#SYSTEM", - _et: "I18NSystem", - _ct: "2023-06-26T13:05:05.494Z" - }, - { - tenant: "root", - version: "5.36.2", - _md: "2023-06-26T13:05:31.354Z", - SK: "PB", - PK: "T#root#SYSTEM", - _et: "PbSystem", - _ct: "2023-06-26T13:05:31.354Z" - }, - { - tenant: "root", - version: "5.36.2", - _md: "2023-06-26T13:02:14.652Z", - SK: "SECURITY", - PK: "T#root#SYSTEM", - _et: "SecuritySystem", - _ct: "2023-06-26T13:02:14.652Z" - }, - { - version: "5.36.2", - _md: "2023-06-26T13:02:11.293Z", - SK: "TENANCY", - PK: "T#root#SYSTEM", - _et: "TenancySystem", - _ct: "2023-06-26T13:02:11.293Z" - }, - { - _md: "2023-06-26T13:06:53.701Z", - data: { - aliases: [], - type: "image/jpeg", - locale: "en-US", - createdOn: "2023-06-26T13:06:53.700Z", - tags: [], - size: 271223, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: false - }, - name: "image-2.jpg", - id: "64998d6c230aa40008c87c49", - key: "64998d6c230aa40008c87c49/image-2.jpg", - tenant: "root" - }, - GSI1_SK: "64998d6c230aa40008c87c49", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#64998d6c230aa40008c87c49", - _et: "FM.File", - _ct: "2023-06-26T13:06:53.701Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "pb.page", - _md: "2023-06-26T13:05:30.896Z", - titleLC: "welcome to webiny", - SK: "1", - publishedOn: "2023-06-26T13:05:30.896Z", - id: "64998d1a230aa40008c87c43#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-06-26T13:05:30.896Z", - pid: "64998d1a230aa40008c87c43", - _et: "PbPages", - _ct: "2023-06-26T13:05:30.896Z", - tenant: "root", - createdOn: "2023-06-26T13:05:30.255Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#PB#64998d1a230aa40008c87c43", - title: "Welcome to Webiny" - }, - { - _md: "2023-06-26T13:05:30.033Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 33888, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "scaffolding.svg", - id: "6022814bef4a940008b3ba26", - key: "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - tenant: "root" - }, - GSI1_SK: "6022814bef4a940008b3ba26", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#6022814bef4a940008b3ba26", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.033Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "pb.page.p", - _md: "2023-06-26T13:05:30.874Z", - GSI1_SK: "/not-found", - titleLC: "not found", - SK: "64998d1a230aa40008c87c42", - publishedOn: "2023-06-26T13:05:30.861Z", - id: "64998d1a230aa40008c87c42#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-06-26T13:05:30.861Z", - pid: "64998d1a230aa40008c87c42", - _et: "PbPages", - _ct: "2023-06-26T13:05:30.874Z", - tenant: "root", - createdOn: "2023-06-26T13:05:30.255Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#PB#P", - title: "Not Found", - GSI1_PK: "T#root#L#en-US#PB#PATH" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "pb.page.p", - _md: "2023-06-26T13:05:30.913Z", - GSI1_SK: "/welcome-to-webiny", - titleLC: "welcome to webiny", - SK: "64998d1a230aa40008c87c43", - publishedOn: "2023-06-26T13:05:30.896Z", - id: "64998d1a230aa40008c87c43#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-06-26T13:05:30.896Z", - pid: "64998d1a230aa40008c87c43", - _et: "PbPages", - _ct: "2023-06-26T13:05:30.913Z", - tenant: "root", - createdOn: "2023-06-26T13:05:30.255Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#PB#P", - title: "Welcome to Webiny", - GSI1_PK: "T#root#L#en-US#PB#PATH" - }, - { - _md: "2023-06-26T13:05:30.034Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 392, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "cms-benefits-shape.svg", - id: "602281486639200009fd35ec", - key: "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - tenant: "root" - }, - GSI1_SK: "602281486639200009fd35ec", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#602281486639200009fd35ec", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.034Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:05:30.094Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 30007, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "octo-cat.svg", - id: "60228145f98841000981c71f", - key: "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - tenant: "root" - }, - GSI1_SK: "60228145f98841000981c71f", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#60228145f98841000981c71f", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.094Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - tenant: "root", - code: "en-US", - _md: "2023-06-26T13:05:05.474Z", - default: true, - createdOn: "2023-06-26T13:05:05.462Z", - SK: "default", - webinyVersion: "5.36.2", - PK: "T#root#I18N#L#D", - _et: "I18NLocale", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - _ct: "2023-06-26T13:05:05.474Z" - }, - { - modelId: "acoFolder", - version: 1, - savedOn: "2023-06-26T13:56:02.727Z", - locale: "en-US", - status: "draft", - values: { - "text@title": "Nature", - "text@slug": "nature", - "text@type": "FmFile", - "text@parentId": null - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - _ct: "2023-06-26T13:56:02.787Z", - TYPE: "cms.entry.l", - entryId: "649998f258684a000835510e", - tenant: "root", - _md: "2023-06-26T13:56:02.787Z", - createdOn: "2023-06-26T13:56:02.727Z", - locked: false, - GSI1_SK: "649998f258684a000835510e#0001", - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - SK: "L", - webinyVersion: "5.36.2", - id: "649998f258684a000835510e#0001", - PK: "T#root#L#en-US#CMS#CME#CME#649998f258684a000835510e", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoFolder#L" - }, - { - modelId: "acoFolder", - version: 1, - savedOn: "2023-06-26T13:56:02.727Z", - locale: "en-US", - status: "draft", - values: { - "text@title": "Nature", - "text@slug": "nature", - "text@type": "FmFile", - "text@parentId": null - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - _ct: "2023-06-26T13:56:02.786Z", - TYPE: "cms.entry", - entryId: "649998f258684a000835510e", - tenant: "root", - _md: "2023-06-26T13:56:02.786Z", - createdOn: "2023-06-26T13:56:02.727Z", - locked: false, - GSI1_SK: "649998f258684a000835510e#0001", - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - SK: "REV#0001", - webinyVersion: "5.36.2", - id: "649998f258684a000835510e#0001", - PK: "T#root#L#en-US#CMS#CME#CME#649998f258684a000835510e", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoFolder#A" - }, - { - SK: "default", - eventTargetId: "wby-apw-scheduler-event-rule-target-1c46b77", - PK: "APW#SETTINGS", - mainGraphqlFunctionArn: - "arn:aws:lambda:eu-central-1:656932293860:function:wby-graphql-bbcf217", - eventRuleName: "wby-apw-scheduler-event-rule-0d18cc6" - }, - { - _md: "2023-06-26T13:05:29.996Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.995Z", - tags: [], - size: 1864, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "hero-block-bg.svg", - id: "6022814b7a77e60008f70d62", - key: "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - tenant: "root" - }, - GSI1_SK: "6022814b7a77e60008f70d62", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#6022814b7a77e60008f70d62", - _et: "FM.File", - _ct: "2023-06-26T13:05:29.996Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - modelId: "acoFolder", - version: 1, - savedOn: "2023-06-26T13:56:09.207Z", - locale: "en-US", - status: "draft", - values: { - "text@title": "Cities", - "text@slug": "cities", - "text@type": "FmFile", - "text@parentId": null - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - _ct: "2023-06-26T13:56:09.208Z", - TYPE: "cms.entry.l", - entryId: "649998f958684a000835510f", - tenant: "root", - _md: "2023-06-26T13:56:09.208Z", - createdOn: "2023-06-26T13:56:09.207Z", - locked: false, - GSI1_SK: "649998f958684a000835510f#0001", - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - SK: "L", - webinyVersion: "5.36.2", - id: "649998f958684a000835510f#0001", - PK: "T#root#L#en-US#CMS#CME#CME#649998f958684a000835510f", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoFolder#L" - }, - { - modelId: "acoFolder", - version: 1, - savedOn: "2023-06-26T13:56:09.207Z", - locale: "en-US", - status: "draft", - values: { - "text@title": "Cities", - "text@slug": "cities", - "text@type": "FmFile", - "text@parentId": null - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - _ct: "2023-06-26T13:56:09.208Z", - TYPE: "cms.entry", - entryId: "649998f958684a000835510f", - tenant: "root", - _md: "2023-06-26T13:56:09.208Z", - createdOn: "2023-06-26T13:56:09.207Z", - locked: false, - GSI1_SK: "649998f958684a000835510f#0001", - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - SK: "REV#0001", - webinyVersion: "5.36.2", - id: "649998f958684a000835510f#0001", - PK: "T#root#L#en-US#CMS#CME#CME#649998f958684a000835510f", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoFolder#A" - }, - { - modelId: "acoSearchRecord", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "cms.entry.l", - entryId: "wby-aco-64998d6c230aa40008c87c49", - _md: "2023-06-26T13:56:38.326Z", - GSI1_SK: "wby-aco-64998d6c230aa40008c87c49#0001", - SK: "L", - id: "wby-aco-64998d6c230aa40008c87c49#0001", - version: 1, - savedOn: "2023-06-26T13:56:38.307Z", - locale: "en-US", - values: { - "object@location": { - "text@folderId": "649998f958684a000835510f#0001" - }, - "text@title": "image-2.jpg", - "text@content": null, - "text@type": "FmFile", - "wby-aco-json@data": { - aliases: [], - size: 271223, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - src: "https://dvjzfkuy6p5e0.cloudfront.net/files/64998d6c230aa40008c87c49/image-2.jpg", - meta: { - private: false - }, - name: "image-2.jpg", - id: "64998d6c230aa40008c87c49", - type: "image/jpeg", - createdOn: "2023-06-26T13:06:53.700Z", - key: "64998d6c230aa40008c87c49/image-2.jpg" - }, - "text@tags": ["mime:image/jpeg"] - }, - _et: "CmsEntries", - _ct: "2023-06-26T13:56:38.326Z", - tenant: "root", - createdOn: "2023-06-26T13:06:53.715Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d6c230aa40008c87c49", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#L" - }, - { - modelId: "acoSearchRecord", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "cms.entry", - entryId: "wby-aco-64998d6c230aa40008c87c49", - _md: "2023-06-26T13:56:38.308Z", - GSI1_SK: "wby-aco-64998d6c230aa40008c87c49#0001", - SK: "REV#0001", - id: "wby-aco-64998d6c230aa40008c87c49#0001", - version: 1, - savedOn: "2023-06-26T13:56:38.307Z", - locale: "en-US", - values: { - "object@location": { - "text@folderId": "649998f958684a000835510f#0001" - }, - "text@title": "image-2.jpg", - "text@content": null, - "text@type": "FmFile", - "wby-aco-json@data": { - aliases: [], - size: 271223, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - src: "https://dvjzfkuy6p5e0.cloudfront.net/files/64998d6c230aa40008c87c49/image-2.jpg", - meta: { - private: false - }, - name: "image-2.jpg", - id: "64998d6c230aa40008c87c49", - type: "image/jpeg", - createdOn: "2023-06-26T13:06:53.700Z", - key: "64998d6c230aa40008c87c49/image-2.jpg" - }, - "text@tags": ["mime:image/jpeg"] - }, - _et: "CmsEntries", - _ct: "2023-06-26T13:56:38.308Z", - tenant: "root", - createdOn: "2023-06-26T13:06:53.715Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d6c230aa40008c87c49", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#A" - }, - { - modelId: "acoSearchRecord", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "cms.entry.l", - entryId: "wby-aco-64998d70230aa40008c87c4f", - _md: "2023-06-26T13:56:25.155Z", - GSI1_SK: "wby-aco-64998d70230aa40008c87c4f#0001", - SK: "L", - id: "wby-aco-64998d70230aa40008c87c4f#0001", - version: 1, - savedOn: "2023-06-26T13:56:25.153Z", - locale: "en-US", - values: { - "object@location": { - "text@folderId": "649998f958684a000835510f#0001" - }, - "text@title": "image-5.jpg", - "text@content": null, - "text@type": "FmFile", - "wby-aco-json@data": { - aliases: [], - size: 204019, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - src: "https://dvjzfkuy6p5e0.cloudfront.net/files/64998d70230aa40008c87c4f/image-5.jpg", - meta: { - private: false - }, - name: "image-5.jpg", - id: "64998d70230aa40008c87c4f", - type: "image/jpeg", - createdOn: "2023-06-26T13:06:56.459Z", - key: "64998d70230aa40008c87c4f/image-5.jpg" - }, - "text@tags": ["mime:image/jpeg"] - }, - _et: "CmsEntries", - _ct: "2023-06-26T13:56:25.155Z", - tenant: "root", - createdOn: "2023-06-26T13:06:56.475Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d70230aa40008c87c4f", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#L" - }, - { - modelId: "acoSearchRecord", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "cms.entry", - entryId: "wby-aco-64998d70230aa40008c87c4f", - _md: "2023-06-26T13:56:25.155Z", - GSI1_SK: "wby-aco-64998d70230aa40008c87c4f#0001", - SK: "REV#0001", - id: "wby-aco-64998d70230aa40008c87c4f#0001", - version: 1, - savedOn: "2023-06-26T13:56:25.153Z", - locale: "en-US", - values: { - "object@location": { - "text@folderId": "649998f958684a000835510f#0001" - }, - "text@title": "image-5.jpg", - "text@content": null, - "text@type": "FmFile", - "wby-aco-json@data": { - aliases: [], - size: 204019, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - src: "https://dvjzfkuy6p5e0.cloudfront.net/files/64998d70230aa40008c87c4f/image-5.jpg", - meta: { - private: false - }, - name: "image-5.jpg", - id: "64998d70230aa40008c87c4f", - type: "image/jpeg", - createdOn: "2023-06-26T13:06:56.459Z", - key: "64998d70230aa40008c87c4f/image-5.jpg" - }, - "text@tags": ["mime:image/jpeg"] - }, - _et: "CmsEntries", - _ct: "2023-06-26T13:56:25.155Z", - tenant: "root", - createdOn: "2023-06-26T13:06:56.475Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d70230aa40008c87c4f", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#A" - }, - { - _md: "2023-06-26T13:05:30.094Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 27878, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "idp.svg", - id: "60228148f98841000981c724", - key: "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - tenant: "root" - }, - GSI1_SK: "60228148f98841000981c724", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#60228148f98841000981c724", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.094Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:05:29.997Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.995Z", - tags: [], - size: 5053, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "webiny-logo.svg", - id: "6022814b0df4b000088735bc", - key: "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - tenant: "root" - }, - GSI1_SK: "6022814b0df4b000088735bc", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#6022814b0df4b000088735bc", - _et: "FM.File", - _ct: "2023-06-26T13:05:29.997Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - modelId: "acoSearchRecord", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "cms.entry.l", - entryId: "wby-aco-64998d1a230aa40008c87c42", - _md: "2023-06-26T13:05:31.116Z", - GSI1_SK: "wby-aco-64998d1a230aa40008c87c42#0001", - SK: "L", - id: "wby-aco-64998d1a230aa40008c87c42#0001", - version: 1, - savedOn: "2023-06-26T13:05:31.114Z", - locale: "en-US", - values: { - "object@location": { - "text@folderId": "ROOT" - }, - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@type": "PbPage", - "wby-aco-json@data": { - path: "/not-found", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - savedOn: "2023-06-26T13:05:30.861Z", - pid: "64998d1a230aa40008c87c42", - id: "64998d1a230aa40008c87c42#0001", - title: "Not Found", - locked: true, - createdOn: "2023-06-26T13:05:30.255Z", - version: 1, - status: "published" - }, - "text@tags": [] - }, - _et: "CmsEntries", - _ct: "2023-06-26T13:05:31.116Z", - tenant: "root", - createdOn: "2023-06-26T13:05:30.298Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d1a230aa40008c87c42", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#L" - }, - { - modelId: "acoSearchRecord", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "cms.entry", - entryId: "wby-aco-64998d1a230aa40008c87c42", - _md: "2023-06-26T13:05:31.115Z", - GSI1_SK: "wby-aco-64998d1a230aa40008c87c42#0001", - SK: "REV#0001", - id: "wby-aco-64998d1a230aa40008c87c42#0001", - version: 1, - savedOn: "2023-06-26T13:05:31.114Z", - locale: "en-US", - values: { - "object@location": { - "text@folderId": "ROOT" - }, - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@type": "PbPage", - "wby-aco-json@data": { - path: "/not-found", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - savedOn: "2023-06-26T13:05:30.861Z", - pid: "64998d1a230aa40008c87c42", - id: "64998d1a230aa40008c87c42#0001", - title: "Not Found", - locked: true, - createdOn: "2023-06-26T13:05:30.255Z", - version: 1, - status: "published" - }, - "text@tags": [] - }, - _et: "CmsEntries", - _ct: "2023-06-26T13:05:31.115Z", - tenant: "root", - createdOn: "2023-06-26T13:05:30.298Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d1a230aa40008c87c42", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#A" - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "pb.page.l", - _md: "2023-06-26T13:05:30.874Z", - titleLC: "not found", - SK: "64998d1a230aa40008c87c42", - publishedOn: "2023-06-26T13:05:30.861Z", - id: "64998d1a230aa40008c87c42#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-06-26T13:05:30.861Z", - pid: "64998d1a230aa40008c87c42", - _et: "PbPages", - _ct: "2023-06-26T13:05:30.874Z", - tenant: "root", - createdOn: "2023-06-26T13:05:30.255Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#PB#L", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://dvjzfkuy6p5e0.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "pb.page.l", - _md: "2023-06-26T13:05:30.897Z", - titleLC: "welcome to webiny", - SK: "64998d1a230aa40008c87c43", - publishedOn: "2023-06-26T13:05:30.896Z", - id: "64998d1a230aa40008c87c43#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-06-26T13:05:30.896Z", - pid: "64998d1a230aa40008c87c43", - _et: "PbPages", - _ct: "2023-06-26T13:05:30.897Z", - tenant: "root", - createdOn: "2023-06-26T13:05:30.255Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#PB#L", - title: "Welcome to Webiny" - }, - { - _md: "2023-06-26T14:13:20.763Z", - data: { - aliases: ["/space.jpg"], - type: "image/jpeg", - locale: "en-US", - createdOn: "2023-06-26T13:06:54.775Z", - tags: ["space", "nature"], - size: 384490, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: false - }, - name: "image-3.jpg", - id: "64998d6e230aa40008c87c4b", - key: "64998d6e230aa40008c87c4b/image-3.jpg", - tenant: "root" - }, - GSI1_SK: "64998d6e230aa40008c87c4b", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#64998d6e230aa40008c87c4b", - _et: "FM.File", - _ct: "2023-06-26T14:13:20.763Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T14:13:20.777Z", - data: { - alias: "/space.jpg", - locale: "en-US", - tenant: "root", - key: "64998d6e230aa40008c87c4b/image-3.jpg", - fileId: "64998d6e230aa40008c87c4b" - }, - GSI1_SK: "/space.jpg", - SK: "ALIAS#/space.jpg", - PK: "T#root#L#en-US#FM#FILE#64998d6e230aa40008c87c4b", - _et: "FM.FileAlias", - _ct: "2023-06-26T14:13:20.777Z", - TYPE: "fm.fileAlias", - GSI1_PK: "T#root#FM#FILE_ALIASES" - }, - { - icon: "fas/star", - savedOn: "2023-06-26T13:05:55.024Z", - locale: "en-US", - slug: "ungrouped", - _et: "CmsGroups", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - name: "Ungrouped", - _ct: "2023-06-26T13:05:55.059Z", - TYPE: "cms.group", - tenant: "root", - _md: "2023-06-26T13:05:55.059Z", - createdOn: "2023-06-26T13:05:55.024Z", - SK: "64998d33230aa40008c87c46", - description: "A generic content model group", - webinyVersion: "5.36.2", - id: "64998d33230aa40008c87c46", - PK: "T#root#L#en-US#CMS#CMG" - }, - { - modelId: "acoSearchRecord", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "cms.entry.l", - entryId: "wby-aco-64998d6f230aa40008c87c4d", - _md: "2023-06-26T13:56:49.228Z", - GSI1_SK: "wby-aco-64998d6f230aa40008c87c4d#0001", - SK: "L", - id: "wby-aco-64998d6f230aa40008c87c4d#0001", - version: 1, - savedOn: "2023-06-26T13:56:49.225Z", - locale: "en-US", - values: { - "object@location": { - "text@folderId": "649998f258684a000835510e#0001" - }, - "text@title": "image-4.jpg", - "text@content": null, - "text@type": "FmFile", - "wby-aco-json@data": { - aliases: [], - size: 311514, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - src: "https://dvjzfkuy6p5e0.cloudfront.net/files/64998d6f230aa40008c87c4d/image-4.jpg", - meta: { - private: false - }, - name: "image-4.jpg", - id: "64998d6f230aa40008c87c4d", - type: "image/jpeg", - createdOn: "2023-06-26T13:06:55.683Z", - key: "64998d6f230aa40008c87c4d/image-4.jpg" - }, - "text@tags": ["mime:image/jpeg"] - }, - _et: "CmsEntries", - _ct: "2023-06-26T13:56:49.228Z", - tenant: "root", - createdOn: "2023-06-26T13:06:55.695Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d6f230aa40008c87c4d", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#L" - }, - { - modelId: "acoSearchRecord", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - TYPE: "cms.entry", - entryId: "wby-aco-64998d6f230aa40008c87c4d", - _md: "2023-06-26T13:56:49.226Z", - GSI1_SK: "wby-aco-64998d6f230aa40008c87c4d#0001", - SK: "REV#0001", - id: "wby-aco-64998d6f230aa40008c87c4d#0001", - version: 1, - savedOn: "2023-06-26T13:56:49.225Z", - locale: "en-US", - values: { - "object@location": { - "text@folderId": "649998f258684a000835510e#0001" - }, - "text@title": "image-4.jpg", - "text@content": null, - "text@type": "FmFile", - "wby-aco-json@data": { - aliases: [], - size: 311514, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - src: "https://dvjzfkuy6p5e0.cloudfront.net/files/64998d6f230aa40008c87c4d/image-4.jpg", - meta: { - private: false - }, - name: "image-4.jpg", - id: "64998d6f230aa40008c87c4d", - type: "image/jpeg", - createdOn: "2023-06-26T13:06:55.683Z", - key: "64998d6f230aa40008c87c4d/image-4.jpg" - }, - "text@tags": ["mime:image/jpeg"] - }, - _et: "CmsEntries", - _ct: "2023-06-26T13:56:49.226Z", - tenant: "root", - createdOn: "2023-06-26T13:06:55.695Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-64998d6f230aa40008c87c4d", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord#A" - }, - { - _md: "2023-06-26T13:03:08.400Z", - data: { - firstName: "Pavel", - lastName: "Denisjuk", - createdBy: null, - webinyVersion: "5.36.2", - id: "64998c8b230aa40008c87c41", - createdOn: "2023-06-26T13:03:07.913Z", - email: "admin@webiny.com", - tenant: "root", - group: "64998c56230aa40008c87c3f" - }, - GSI1_SK: "admin@webiny.com", - SK: "A", - PK: "T#root#ADMIN_USER#64998c8b230aa40008c87c41", - _et: "AdminUsers.User", - _ct: "2023-06-26T13:03:08.400Z", - TYPE: "adminUsers.user", - GSI1_PK: "T#root#ADMIN_USERS" - }, - { - _md: "2023-06-26T13:05:30.093Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 28918, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "adaptable-icon.svg", - id: "60228145f98841000981c720", - key: "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - tenant: "root" - }, - GSI1_SK: "60228145f98841000981c720", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#60228145f98841000981c720", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.093Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:05:30.033Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 132767, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "environments.svg", - id: "6022814bef4a940008b3ba28", - key: "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - tenant: "root" - }, - GSI1_SK: "6022814bef4a940008b3ba28", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#6022814bef4a940008b3ba28", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.033Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:05:29.997Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.995Z", - tags: [], - size: 390, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "pink-shape.svg", - id: "60228148f98841000981c723", - key: "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - tenant: "root" - }, - GSI1_SK: "60228148f98841000981c723", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#60228148f98841000981c723", - _et: "FM.File", - _ct: "2023-06-26T13:05:29.997Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:05:30.094Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 60602, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "cost-icon.svg", - id: "6022814851197600081724ae", - key: "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - tenant: "root" - }, - GSI1_SK: "6022814851197600081724ae", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#6022814851197600081724ae", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.094Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:05:29.997Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.995Z", - tags: [], - size: 888, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "feature-card-bg.svg", - id: "602282e07a77e60008f70d63", - key: "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - tenant: "root" - }, - GSI1_SK: "602282e07a77e60008f70d63", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#602282e07a77e60008f70d63", - _et: "FM.File", - _ct: "2023-06-26T13:05:29.997Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:05:30.094Z", - data: { - aliases: [], - type: "image/png", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 17382, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "community-icon.png", - id: "60228148fa244d0008c47c7a", - key: "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - tenant: "root" - }, - GSI1_SK: "60228148fa244d0008c47c7a", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#60228148fa244d0008c47c7a", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.094Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:05:30.094Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 67402, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "permission-icon.svg", - id: "602281486ed41f0008bc2dab", - key: "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - tenant: "root" - }, - GSI1_SK: "602281486ed41f0008bc2dab", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#602281486ed41f0008bc2dab", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.094Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - tenant: "root", - code: "en-US", - _md: "2023-06-26T13:05:05.474Z", - default: true, - createdOn: "2023-06-26T13:05:05.462Z", - SK: "en-US", - webinyVersion: "5.36.2", - PK: "T#root#I18N#L", - _et: "I18NLocale", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - _ct: "2023-06-26T13:05:05.474Z" - }, - { - SK: "default", - PK: "ADMIN#SETTINGS", - data: { - appUrl: "https://d1d7pkrb4y3b4l.cloudfront.net" - } - }, - { - _md: "2023-06-26T13:05:30.034Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.996Z", - tags: [], - size: 7806, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "scalable-icon.svg", - id: "60228148fa244d0008c47c79", - key: "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - tenant: "root" - }, - GSI1_SK: "60228148fa244d0008c47c79", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#60228148fa244d0008c47c79", - _et: "FM.File", - _ct: "2023-06-26T13:05:30.034Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:02:11.257Z", - data: { - parent: null, - settings: { - domains: [] - }, - webinyVersion: "5.36.2", - savedOn: "2023-06-26T13:02:11.256Z", - name: "Root", - description: "The top-level Webiny tenant.", - id: "root", - createdOn: "2023-06-26T13:02:11.256Z", - tags: [], - status: "active" - }, - GSI1_SK: "T#null#2023-06-26T13:02:11.256Z", - SK: "A", - PK: "T#root", - _et: "TenancyTenant", - _ct: "2023-06-26T13:02:11.257Z", - TYPE: "tenancy.tenant", - GSI1_PK: "TENANTS" - }, - { - _md: "2023-06-26T13:05:31.315Z", - data: { - pages: { - notFound: "64998d1a230aa40008c87c42", - home: "64998d1a230aa40008c87c43" - }, - websiteUrl: null, - name: "Test", - prerendering: { - app: { - url: null - }, - meta: {}, - storage: { - name: null - } - }, - locale: "en-US", - type: "default", - tenant: "root" - }, - SK: "A", - PK: "T#root#L#en-US#PB#SETTINGS", - _et: "PbSettings", - _ct: "2023-06-26T13:05:31.315Z", - TYPE: "pb.settings" - }, - { - _md: "2023-06-26T13:05:29.997Z", - data: { - aliases: [], - type: "image/svg+xml", - locale: "en-US", - createdOn: "2023-06-26T13:05:29.995Z", - tags: [], - size: 90163, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: true - }, - name: "webiny-infrastructure-overview.svg", - id: "6022814891bd1300087bd24c", - key: "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - tenant: "root" - }, - GSI1_SK: "6022814891bd1300087bd24c", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#6022814891bd1300087bd24c", - _et: "FM.File", - _ct: "2023-06-26T13:05:29.997Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:06:56.460Z", - data: { - aliases: [], - type: "image/jpeg", - locale: "en-US", - createdOn: "2023-06-26T13:06:56.459Z", - tags: [], - size: 204019, - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - webinyVersion: "5.36.2", - meta: { - private: false - }, - name: "image-5.jpg", - id: "64998d70230aa40008c87c4f", - key: "64998d70230aa40008c87c4f/image-5.jpg", - tenant: "root" - }, - GSI1_SK: "64998d70230aa40008c87c4f", - SK: "A", - PK: "T#root#L#en-US#FM#FILE#64998d70230aa40008c87c4f", - _et: "FM.File", - _ct: "2023-06-26T13:06:56.460Z", - TYPE: "fm.file", - GSI1_PK: "T#root#L#en-US#FM#FILES" - }, - { - _md: "2023-06-26T13:05:05.743Z", - data: { - srcPrefix: "https://dvjzfkuy6p5e0.cloudfront.net/files/", - uploadMinFileSize: 0, - uploadMaxFileSize: 10737418240, - tenant: "root" - }, - SK: "A", - PK: "T#root#FM#SETTINGS", - _et: "FM.Settings", - _ct: "2023-06-26T13:05:05.743Z", - TYPE: "fm.settings" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.37.0/005/ddb/005.test.ts b/packages/migrations/__tests__/migrations/5.37.0/005/ddb/005.test.ts deleted file mode 100644 index 879b74b479e..00000000000 --- a/packages/migrations/__tests__/migrations/5.37.0/005/ddb/005.test.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { FileManager_5_37_0_005 } from "~/migrations/5.37.0/005/ddb"; -import { createTenantsData } from "./005.data"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.37.0-005", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if no tenant found", async () => { - const handler = createDdbMigrationHandler({ - table, - migrations: [FileManager_5_37_0_005] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, [...createTenantsData()]); - - const handler = createDdbMigrationHandler({ - table, - migrations: [FileManager_5_37_0_005] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const ddbItems = await scanTable(table, { - filters: [ - { - attr: "GSI1_PK", - eq: "T#root#L#en-US#CMS#CME#M#fmFile#L" - } - ] - }); - - const sortedItems = ddbItems.sort((a, b) => - new Date(a.createdOn).getTime() > new Date(b.createdOn).getTime() ? 1 : -1 - ); - - const privateFiles = sortedItems.filter( - item => item.values["object@meta"]["boolean@private"] === true - ); - - const publicFiles = sortedItems.filter( - item => item.values["object@meta"]["boolean@private"] === false - ); - - expect(ddbItems.length).toBe(26); - expect(publicFiles.length).toBe(5); - expect(privateFiles.length).toBe(21); - - expect(publicFiles[0]).toMatchObject({ - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - createdOn: "2023-06-26T13:06:52.315Z", - entryId: "64998d6b230aa40008c87c47", - id: `64998d6b230aa40008c87c47#0001`, - locked: false, - locale: "en-US", - location: { - folderId: "root" - }, - modelId: "fmFile", - modifiedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - ownedBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "64998c8b230aa40008c87c41" - }, - savedOn: expect.stringMatching("2023-06-26T13:06:52"), - status: "draft", - tenant: "root", - version: 1, - webinyVersion: expect.any(String), - values: { - "number@size": 280166, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": false - }, - "text@aliases": [], - "text@key": "64998d6b230aa40008c87c47/image-1.jpg", - "text@name": "image-1.jpg", - "text@tags": [], - "text@type": "image/jpeg" - } - }); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(table, [...createTenantsData()]); - - const handler = createDdbMigrationHandler({ - table, - migrations: [FileManager_5_37_0_005] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.38.0/001/ddb-es/001.data.ts b/packages/migrations/__tests__/migrations/5.38.0/001/ddb-es/001.data.ts deleted file mode 100644 index 1d62cc3b6a7..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/001/ddb-es/001.data.ts +++ /dev/null @@ -1,633 +0,0 @@ -export const createdBy = { - id: "admin", - type: "admin", - displayName: "Admin" -}; - -export const createFormsData = () => { - return [ - { - PK: "T#root#L#en-US#FB#F#653a578347a0da00088b9f2f", - SK: "L", - createdBy, - createdOn: "2023-10-26T12:12:53.100Z", - fields: [ - { - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "FtbDUq-AF" - }, - { - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "p3FAh-AjE" - } - ], - formId: "653a578347a0da00088b9f2f", - id: "653a578347a0da00088b9f2f#0003", - layout: [["FtbDUq-AF"], ["p3FAh-AjE"]], - locale: "en-US", - locked: false, - name: "Form 1 v3", - ownedBy: createdBy, - published: false, - savedOn: "2023-10-26T12:12:57.221Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a578347a0da00088b9f2f", - stats: { - submissions: 0, - views: 0 - }, - status: "draft", - tenant: "root", - TYPE: "fb.form.latest", - version: 3, - webinyVersion: "5.38.7", - _ct: "2023-10-26T12:12:57.227Z", - _et: "FormBuilderForm", - _md: "2023-10-26T12:12:57.227Z" - }, - { - PK: "T#root#L#en-US#FB#F#653a578347a0da00088b9f2f", - SK: "LP", - createdBy, - createdOn: "2023-10-26T12:12:34.218Z", - fields: [ - { - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "FtbDUq-AF" - }, - { - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "p3FAh-AjE" - } - ], - formId: "653a578347a0da00088b9f2f", - id: "653a578347a0da00088b9f2f#0002", - layout: [["FtbDUq-AF"], ["p3FAh-AjE"]], - locale: "en-US", - locked: true, - name: "Form 1 v2", - ownedBy: createdBy, - published: true, - publishedOn: "2023-10-26T12:12:44.998Z", - savedOn: "2023-10-26T12:12:44.998Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a578347a0da00088b9f2f", - stats: { - submissions: 0, - views: 0 - }, - status: "published", - tenant: "root", - TYPE: "fb.form.latestPublished", - version: 2, - webinyVersion: "5.38.7", - _ct: "2023-10-26T12:12:45.001Z", - _et: "FormBuilderForm", - _md: "2023-10-26T12:12:45.001Z" - }, - { - PK: "T#root#L#en-US#FB#F#653a578347a0da00088b9f2f", - SK: "REV#0001", - createdBy, - createdOn: "2023-10-26T12:11:47.668Z", - fields: [ - { - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "FtbDUq-AF" - }, - { - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "p3FAh-AjE" - }, - { - fieldId: "email", - helpText: null, - label: "Email", - name: "email", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [ - { - message: "Please enter a valid e-mail.", - name: "pattern", - settings: { - flags: null, - preset: "email", - regex: null - } - } - ], - _id: "xksWeGPE2" - } - ], - formId: "653a578347a0da00088b9f2f", - id: "653a578347a0da00088b9f2f#0001", - layout: [["FtbDUq-AF"], ["p3FAh-AjE"], ["xksWeGPE2"]], - locale: "en-US", - locked: true, - name: "Form 1", - ownedBy: createdBy, - published: true, - publishedOn: "2023-10-26T12:12:29.208Z", - savedOn: "2023-10-26T12:12:29.208Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a578347a0da00088b9f2f", - stats: { - submissions: 0, - views: 0 - }, - status: "published", - tenant: "root", - TYPE: "fb.form", - version: 1, - webinyVersion: "5.38.7", - _ct: "2023-10-26T12:12:29.222Z", - _et: "FormBuilderForm", - _md: "2023-10-26T12:12:29.222Z" - }, - { - PK: "T#root#L#en-US#FB#F#653a578347a0da00088b9f2f", - SK: "REV#0002", - createdBy, - createdOn: "2023-10-26T12:12:34.218Z", - fields: [ - { - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "FtbDUq-AF" - }, - { - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "p3FAh-AjE" - } - ], - formId: "653a578347a0da00088b9f2f", - id: "653a578347a0da00088b9f2f#0002", - layout: [["FtbDUq-AF"], ["p3FAh-AjE"]], - locale: "en-US", - locked: true, - name: "Form 1 v2", - ownedBy: createdBy, - published: true, - publishedOn: "2023-10-26T12:12:44.998Z", - savedOn: "2023-10-26T12:12:44.998Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a578347a0da00088b9f2f", - stats: { - submissions: 0, - views: 0 - }, - status: "published", - tenant: "root", - TYPE: "fb.form", - version: 2, - webinyVersion: "5.38.7", - _ct: "2023-10-26T12:12:45.004Z", - _et: "FormBuilderForm", - _md: "2023-10-26T12:12:45.004Z" - }, - { - PK: "T#root#L#en-US#FB#F#653a578347a0da00088b9f2f", - SK: "REV#0003", - createdBy, - createdOn: "2023-10-26T12:12:53.100Z", - fields: [ - { - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "FtbDUq-AF" - }, - { - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "p3FAh-AjE" - } - ], - formId: "653a578347a0da00088b9f2f", - id: "653a578347a0da00088b9f2f#0003", - layout: [["FtbDUq-AF"], ["p3FAh-AjE"]], - locale: "en-US", - locked: false, - name: "Form 1 v3", - ownedBy: createdBy, - published: false, - savedOn: "2023-10-26T12:12:57.221Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a578347a0da00088b9f2f", - stats: { - submissions: 0, - views: 0 - }, - status: "draft", - tenant: "root", - TYPE: "fb.form", - version: 3, - webinyVersion: "5.38.7", - _ct: "2023-10-26T12:12:57.227Z", - _et: "FormBuilderForm", - _md: "2023-10-26T12:12:57.227Z" - } - ]; -}; - -export const createEsFormsData = () => { - return [ - { - formId: "653a578347a0da00088b9f2f", - savedOn: "2023-10-26T12:12:57.221Z", - published: false, - locale: "en-US", - createdOn: "2023-10-26T12:12:53.100Z", - version: 3, - createdBy: { - displayName: "ad min", - id: "653a57005faa2500080227f4", - type: "admin" - }, - webinyVersion: "5.37.7", - __type: "fb.form", - name: "Form 1 v3", - id: "653a578347a0da00088b9f2f#0003", - locked: false, - ownedBy: { - displayName: "ad min", - id: "653a57005faa2500080227f4", - type: "admin" - }, - slug: "form-1-653a578347a0da00088b9f2f", - tenant: "root", - status: "draft" - }, - { - data: { - firstName: "one", - lastName: "two", - jobTitle: "four", - email: "three@three.com" - }, - form: { - layout: [["Dxye-uTxZ"], ["F7OHlHobd"], ["CTa88hKhF"], ["EZzUH0RuE"]], - parent: "653f80144866de00082fb764", - name: "Form1", - id: "653f80144866de00082fb764#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "Dxye-uTxZ", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "F7OHlHobd", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "email", - options: [], - placeholderText: null, - _id: "CTa88hKhF", - label: "Email", - type: "text", - validation: [ - { - settings: { - regex: null, - flags: null, - preset: "email" - }, - name: "pattern", - message: "Please enter a valid e-mail." - } - ], - fieldId: "email" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "EZzUH0RuE", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-30T10:08:03.069Z", - url: { - query: { - preview: "653f804a639a930008cde314#0001", - __tenant: "root", - __locale: "en-US" - }, - location: - "https://diorb6363f1go.cloudfront.net/untitled-locqk5st?preview=653f804a639a930008cde314%230001&__locale=en-US&__tenant=root" - } - }, - savedOn: "2023-10-30T10:08:03.403Z", - __type: "fb.submission", - id: "653f8083639a930008cde316", - locale: "en-US", - createdOn: "2023-10-30T10:08:03.403Z", - ownedBy: { - displayName: "ad min", - id: "653f7fc9639a930008cde2f9", - type: "admin" - }, - logs: [], - tenant: "root" - } - ]; -}; - -export const createTenantsData = () => { - return [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - } - ]; -}; - -export const createLocalesData = () => { - return [ - { - PK: `T#root#I18N#L`, - SK: "en-US", - code: "en-US", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.38.0/001/ddb-es/001.migratedTestData.ts b/packages/migrations/__tests__/migrations/5.38.0/001/ddb-es/001.migratedTestData.ts deleted file mode 100644 index 9cfe28904a6..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/001/ddb-es/001.migratedTestData.ts +++ /dev/null @@ -1,449 +0,0 @@ -export const migratedData = [ - { - PK: "T#root#L#en-US#FB#F#653a578347a0da00088b9f2f", - SK: "L", - TYPE: "fb.form.latest", - created: "2023-10-26T12:12:57.227Z", - createdBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - createdOn: "2023-10-26T12:12:53.100Z", - entity: "FormBuilderForm", - fields: [ - { - _id: "FtbDUq-AF", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "p3FAh-AjE", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - formId: "653a578347a0da00088b9f2f", - id: "653a578347a0da00088b9f2f#0003", - locale: "en-US", - locked: false, - modified: "2023-10-26T12:12:57.227Z", - name: "Form 1 v3", - ownedBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - published: false, - savedOn: "2023-10-26T12:12:57.221Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a578347a0da00088b9f2f", - stats: { - submissions: 0, - views: 0 - }, - status: "draft", - steps: [ - { - layout: [["FtbDUq-AF"], ["p3FAh-AjE"]], - title: "Step 1" - } - ], - tenant: "root", - version: 3, - webinyVersion: "5.38.7" - }, - { - PK: "T#root#L#en-US#FB#F#653a578347a0da00088b9f2f", - SK: "LP", - TYPE: "fb.form.latestPublished", - created: "2023-10-26T12:12:45.001Z", - createdBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - createdOn: "2023-10-26T12:12:34.218Z", - entity: "FormBuilderForm", - fields: [ - { - _id: "FtbDUq-AF", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "p3FAh-AjE", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - formId: "653a578347a0da00088b9f2f", - id: "653a578347a0da00088b9f2f#0002", - locale: "en-US", - locked: true, - modified: "2023-10-26T12:12:45.001Z", - name: "Form 1 v2", - ownedBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - published: true, - publishedOn: "2023-10-26T12:12:44.998Z", - savedOn: "2023-10-26T12:12:44.998Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a578347a0da00088b9f2f", - stats: { - submissions: 0, - views: 0 - }, - status: "published", - steps: [ - { - layout: [["FtbDUq-AF"], ["p3FAh-AjE"]], - title: "Step 1" - } - ], - tenant: "root", - version: 2, - webinyVersion: "5.38.7" - }, - { - PK: "T#root#L#en-US#FB#F#653a578347a0da00088b9f2f", - SK: "REV#0001", - TYPE: "fb.form", - created: "2023-10-26T12:12:29.222Z", - createdBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - createdOn: "2023-10-26T12:11:47.668Z", - entity: "FormBuilderForm", - fields: [ - { - _id: "FtbDUq-AF", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "p3FAh-AjE", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "xksWeGPE2", - fieldId: "email", - helpText: null, - label: "Email", - name: "email", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [ - { - message: "Please enter a valid e-mail.", - name: "pattern", - settings: { - flags: null, - preset: "email", - regex: null - } - } - ] - } - ], - formId: "653a578347a0da00088b9f2f", - id: "653a578347a0da00088b9f2f#0001", - locale: "en-US", - locked: true, - modified: "2023-10-26T12:12:29.222Z", - name: "Form 1", - ownedBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - published: true, - publishedOn: "2023-10-26T12:12:29.208Z", - savedOn: "2023-10-26T12:12:29.208Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a578347a0da00088b9f2f", - stats: { - submissions: 0, - views: 0 - }, - status: "published", - steps: [ - { - layout: [["FtbDUq-AF"], ["p3FAh-AjE"], ["xksWeGPE2"]], - title: "Step 1" - } - ], - tenant: "root", - version: 1, - webinyVersion: "5.38.7" - }, - { - PK: "T#root#L#en-US#FB#F#653a578347a0da00088b9f2f", - SK: "REV#0002", - TYPE: "fb.form", - created: "2023-10-26T12:12:45.004Z", - createdBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - createdOn: "2023-10-26T12:12:34.218Z", - entity: "FormBuilderForm", - fields: [ - { - _id: "FtbDUq-AF", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "p3FAh-AjE", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - formId: "653a578347a0da00088b9f2f", - id: "653a578347a0da00088b9f2f#0002", - locale: "en-US", - locked: true, - modified: "2023-10-26T12:12:45.004Z", - name: "Form 1 v2", - ownedBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - published: true, - publishedOn: "2023-10-26T12:12:44.998Z", - savedOn: "2023-10-26T12:12:44.998Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a578347a0da00088b9f2f", - stats: { - submissions: 0, - views: 0 - }, - status: "published", - steps: [ - { - layout: [["FtbDUq-AF"], ["p3FAh-AjE"]], - title: "Step 1" - } - ], - tenant: "root", - version: 2, - webinyVersion: "5.38.7" - }, - { - PK: "T#root#L#en-US#FB#F#653a578347a0da00088b9f2f", - SK: "REV#0003", - TYPE: "fb.form", - created: "2023-10-26T12:12:57.227Z", - createdBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - createdOn: "2023-10-26T12:12:53.100Z", - entity: "FormBuilderForm", - fields: [ - { - _id: "FtbDUq-AF", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "p3FAh-AjE", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - formId: "653a578347a0da00088b9f2f", - id: "653a578347a0da00088b9f2f#0003", - locale: "en-US", - locked: false, - modified: "2023-10-26T12:12:57.227Z", - name: "Form 1 v3", - ownedBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - published: false, - savedOn: "2023-10-26T12:12:57.221Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a578347a0da00088b9f2f", - stats: { - submissions: 0, - views: 0 - }, - status: "draft", - steps: [ - { - layout: [["FtbDUq-AF"], ["p3FAh-AjE"]], - title: "Step 1" - } - ], - tenant: "root", - version: 3, - webinyVersion: "5.38.7" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.38.0/001/ddb-es/001.test.ts b/packages/migrations/__tests__/migrations/5.38.0/001/ddb-es/001.test.ts deleted file mode 100644 index c34feb9be04..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/001/ddb-es/001.test.ts +++ /dev/null @@ -1,148 +0,0 @@ -import { - assertNotError, - createDdbEsMigrationHandler, - getDynamoToEsTable, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { MultiStepForms_5_38_0_001 } from "~/migrations/5.38.0/001/ddb-es"; -import { createFormsData, createEsFormsData } from "./001.data"; -import { migratedData } from "./001.migratedTestData"; -import { insertElasticsearchTestData } from "~tests/utils/insertElasticsearchTestData"; -import { esGetIndexName } from "~/utils"; -import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; -import { createLocalesData, createTenantsData } from "~tests/migrations/5.38.0/001/ddb/001.data"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.38.0-001", () => { - const primaryTable = getPrimaryDynamoDbTable(); - const dynamoToEsTable = getDynamoToEsTable(); - const elasticsearchClient = createElasticsearchClient(); - - beforeAll(async () => { - process.env.ELASTIC_SEARCH_INDEX_PREFIX = - new Date().toISOString().replace(/\.|\:/g, "-").toLowerCase() + "-"; - - await elasticsearchClient.indices.deleteAll(); - }); - afterEach(async () => { - await elasticsearchClient.indices.deleteAll(); - }); - - logTestNameBeforeEachTest(); - - it("should not run if no forms found", async () => { - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [MultiStepForms_5_38_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(primaryTable, [ - ...createFormsData(), - ...createTenantsData(), - ...createLocalesData() - ]); - - await insertElasticsearchTestData(elasticsearchClient, createEsFormsData(), item => { - return esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - isHeadlessCmsModel: false, - type: "form-builder" - }); - }); - - await elasticsearchClient.indices.refreshAll(); - - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [MultiStepForms_5_38_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - await expect( - scanTable(primaryTable, { - filters: [ - { - attr: "TYPE", - beginsWith: "fb.form" - } - ] - }) - ).resolves.toEqual(migratedData); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(primaryTable, [ - ...createFormsData(), - ...createTenantsData(), - ...createLocalesData() - ]); - - await insertElasticsearchTestData(elasticsearchClient, createEsFormsData(), item => { - return esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - isHeadlessCmsModel: false, - type: "form-builder" - }); - }); - - await elasticsearchClient.indices.refreshAll(); - - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [MultiStepForms_5_38_0_001] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.38.0/001/ddb/001.data.ts b/packages/migrations/__tests__/migrations/5.38.0/001/ddb/001.data.ts deleted file mode 100644 index 7c3404da65a..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/001/ddb/001.data.ts +++ /dev/null @@ -1,499 +0,0 @@ -export const createdBy = { - id: "admin", - type: "admin", - displayName: "Admin" -}; - -export const createFormsData = () => { - return [ - { - PK: "T#root#L#en-US#FB#F#L", - SK: "653a4ff9daeb1e00081ae00f", - createdBy, - createdOn: "2023-10-26T11:40:06.567Z", - fields: [ - { - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "Y9OCPiqvc" - }, - { - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "x-JujxcvA" - } - ], - formId: "653a4ff9daeb1e00081ae00f", - id: "653a4ff9daeb1e00081ae00f#0003", - layout: [["Y9OCPiqvc"], ["x-JujxcvA"]], - locale: "en-US", - locked: false, - name: "Form 1 v3", - ownedBy: createdBy, - published: false, - savedOn: "2023-10-26T11:40:09.749Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a4ff9daeb1e00081ae00f", - stats: { - submissions: 0, - views: 0 - }, - status: "draft", - tenant: "root", - TYPE: "fb.form.latest", - version: 3, - webinyVersion: "5.38.7", - _ct: "2023-10-26T11:40:09.807Z", - _et: "FormBuilderForm", - _md: "2023-10-26T11:40:09.807Z" - }, - { - PK: "T#root#L#en-US#FB#F#LP", - SK: "653a4ff9daeb1e00081ae00f", - createdBy, - createdOn: "2023-10-26T11:39:50.612Z", - fields: [ - { - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "Y9OCPiqvc" - }, - { - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "x-JujxcvA" - } - ], - formId: "653a4ff9daeb1e00081ae00f", - id: "653a4ff9daeb1e00081ae00f#0002", - layout: [["Y9OCPiqvc"], ["x-JujxcvA"]], - locale: "en-US", - locked: true, - name: "Form 1 v2", - ownedBy: createdBy, - published: true, - publishedOn: "2023-10-26T11:40:03.926Z", - savedOn: "2023-10-26T11:40:03.926Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a4ff9daeb1e00081ae00f", - stats: { - submissions: 0, - views: 0 - }, - status: "published", - tenant: "root", - TYPE: "fb.form.latestPublished", - version: 2, - webinyVersion: "5.38.7", - _ct: "2023-10-26T11:40:03.932Z", - _et: "FormBuilderForm", - _md: "2023-10-26T11:40:03.932Z" - }, - { - PK: "T#root#L#en-US#FB#F", - SK: "653a4ff9daeb1e00081ae00f#0001", - createdBy, - createdOn: "2023-10-26T11:39:38.238Z", - fields: [ - { - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "Y9OCPiqvc" - }, - { - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "x-JujxcvA" - }, - { - fieldId: "email", - helpText: null, - label: "Email", - name: "email", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [ - { - message: "Please enter a valid e-mail.", - name: "pattern", - settings: { - flags: null, - preset: "email", - regex: null - } - } - ], - _id: "KsMO9GY23" - } - ], - formId: "653a4ff9daeb1e00081ae00f", - GSI1_PK: "T#root#L#en-US#FB#F#653a4ff9daeb1e00081ae00f", - GSI1_SK: "1", - id: "653a4ff9daeb1e00081ae00f#0001", - layout: [["Y9OCPiqvc"], ["x-JujxcvA"], ["KsMO9GY23"]], - locale: "en-US", - locked: true, - name: "Form 1", - ownedBy: createdBy, - published: true, - publishedOn: "2023-10-26T11:39:48.651Z", - savedOn: "2023-10-26T11:39:48.651Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a4ff9daeb1e00081ae00f", - stats: { - submissions: 0, - views: 0 - }, - status: "published", - tenant: "root", - TYPE: "fb.form", - version: 1, - webinyVersion: "5.38.7", - _ct: "2023-10-26T11:39:48.657Z", - _et: "FormBuilderForm", - _md: "2023-10-26T11:39:48.657Z" - }, - { - PK: "T#root#L#en-US#FB#F", - SK: "653a4ff9daeb1e00081ae00f#0002", - createdBy, - createdOn: "2023-10-26T11:39:50.612Z", - fields: [ - { - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "Y9OCPiqvc" - }, - { - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "x-JujxcvA" - } - ], - formId: "653a4ff9daeb1e00081ae00f", - GSI1_PK: "T#root#L#en-US#FB#F#653a4ff9daeb1e00081ae00f", - GSI1_SK: "2", - id: "653a4ff9daeb1e00081ae00f#0002", - layout: [["Y9OCPiqvc"], ["x-JujxcvA"]], - locale: "en-US", - locked: true, - name: "Form 1 v2", - ownedBy: createdBy, - published: true, - publishedOn: "2023-10-26T11:40:03.926Z", - savedOn: "2023-10-26T11:40:03.926Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a4ff9daeb1e00081ae00f", - stats: { - submissions: 0, - views: 0 - }, - status: "published", - tenant: "root", - TYPE: "fb.form", - version: 2, - webinyVersion: "5.38.7", - _ct: "2023-10-26T11:40:03.932Z", - _et: "FormBuilderForm", - _md: "2023-10-26T11:40:03.932Z" - }, - { - PK: "T#root#L#en-US#FB#F", - SK: "653a4ff9daeb1e00081ae00f#0003", - createdBy, - createdOn: "2023-10-26T11:40:06.567Z", - fields: [ - { - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "Y9OCPiqvc" - }, - { - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [], - _id: "x-JujxcvA" - } - ], - formId: "653a4ff9daeb1e00081ae00f", - GSI1_PK: "T#root#L#en-US#FB#F#653a4ff9daeb1e00081ae00f", - GSI1_SK: "3", - id: "653a4ff9daeb1e00081ae00f#0003", - layout: [["Y9OCPiqvc"], ["x-JujxcvA"]], - locale: "en-US", - locked: false, - name: "Form 1 v3", - ownedBy: createdBy, - published: false, - savedOn: "2023-10-26T11:40:09.749Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a4ff9daeb1e00081ae00f", - stats: { - submissions: 0, - views: 0 - }, - status: "draft", - tenant: "root", - TYPE: "fb.form", - version: 3, - webinyVersion: "5.38.7", - _ct: "2023-10-26T11:40:09.807Z", - _et: "FormBuilderForm", - _md: "2023-10-26T11:40:09.807Z" - } - ]; -}; - -export const createTenantsData = () => { - return [ - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy - } - } - ]; -}; - -export const createLocalesData = () => { - return [ - { - PK: `T#root#I18N#L`, - SK: "en-US", - code: "en-US", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy, - tenant: "otherTenant", - webinyVersion: "0.0.0" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.38.0/001/ddb/001.migratedTestData.ts b/packages/migrations/__tests__/migrations/5.38.0/001/ddb/001.migratedTestData.ts deleted file mode 100644 index 8553665487c..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/001/ddb/001.migratedTestData.ts +++ /dev/null @@ -1,455 +0,0 @@ -export const migratedData = [ - { - GSI1_PK: "T#root#L#en-US#FB#F#653a4ff9daeb1e00081ae00f", - GSI1_SK: "1", - PK: "T#root#L#en-US#FB#F", - SK: "653a4ff9daeb1e00081ae00f#0001", - TYPE: "fb.form", - created: "2023-10-26T11:39:48.657Z", - createdBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - createdOn: "2023-10-26T11:39:38.238Z", - entity: "FormBuilderForm", - fields: [ - { - _id: "Y9OCPiqvc", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "x-JujxcvA", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "KsMO9GY23", - fieldId: "email", - helpText: null, - label: "Email", - name: "email", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [ - { - message: "Please enter a valid e-mail.", - name: "pattern", - settings: { - flags: null, - preset: "email", - regex: null - } - } - ] - } - ], - formId: "653a4ff9daeb1e00081ae00f", - id: "653a4ff9daeb1e00081ae00f#0001", - locale: "en-US", - locked: true, - modified: "2023-10-26T11:39:48.657Z", - name: "Form 1", - ownedBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - published: true, - publishedOn: "2023-10-26T11:39:48.651Z", - savedOn: "2023-10-26T11:39:48.651Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a4ff9daeb1e00081ae00f", - stats: { - submissions: 0, - views: 0 - }, - status: "published", - steps: [ - { - layout: [["Y9OCPiqvc"], ["x-JujxcvA"], ["KsMO9GY23"]], - title: "Step 1" - } - ], - tenant: "root", - version: 1, - webinyVersion: "5.38.7" - }, - { - GSI1_PK: "T#root#L#en-US#FB#F#653a4ff9daeb1e00081ae00f", - GSI1_SK: "2", - PK: "T#root#L#en-US#FB#F", - SK: "653a4ff9daeb1e00081ae00f#0002", - TYPE: "fb.form", - created: "2023-10-26T11:40:03.932Z", - createdBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - createdOn: "2023-10-26T11:39:50.612Z", - entity: "FormBuilderForm", - fields: [ - { - _id: "Y9OCPiqvc", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "x-JujxcvA", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - formId: "653a4ff9daeb1e00081ae00f", - id: "653a4ff9daeb1e00081ae00f#0002", - locale: "en-US", - locked: true, - modified: "2023-10-26T11:40:03.932Z", - name: "Form 1 v2", - ownedBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - published: true, - publishedOn: "2023-10-26T11:40:03.926Z", - savedOn: "2023-10-26T11:40:03.926Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a4ff9daeb1e00081ae00f", - stats: { - submissions: 0, - views: 0 - }, - status: "published", - steps: [ - { - layout: [["Y9OCPiqvc"], ["x-JujxcvA"]], - title: "Step 1" - } - ], - tenant: "root", - version: 2, - webinyVersion: "5.38.7" - }, - { - GSI1_PK: "T#root#L#en-US#FB#F#653a4ff9daeb1e00081ae00f", - GSI1_SK: "3", - PK: "T#root#L#en-US#FB#F", - SK: "653a4ff9daeb1e00081ae00f#0003", - TYPE: "fb.form", - created: "2023-10-26T11:40:09.807Z", - createdBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - createdOn: "2023-10-26T11:40:06.567Z", - entity: "FormBuilderForm", - fields: [ - { - _id: "Y9OCPiqvc", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "x-JujxcvA", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - formId: "653a4ff9daeb1e00081ae00f", - id: "653a4ff9daeb1e00081ae00f#0003", - locale: "en-US", - locked: false, - modified: "2023-10-26T11:40:09.807Z", - name: "Form 1 v3", - ownedBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - published: false, - savedOn: "2023-10-26T11:40:09.749Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a4ff9daeb1e00081ae00f", - stats: { - submissions: 0, - views: 0 - }, - status: "draft", - steps: [ - { - layout: [["Y9OCPiqvc"], ["x-JujxcvA"]], - title: "Step 1" - } - ], - tenant: "root", - version: 3, - webinyVersion: "5.38.7" - }, - { - PK: "T#root#L#en-US#FB#F#L", - SK: "653a4ff9daeb1e00081ae00f", - TYPE: "fb.form.latest", - created: "2023-10-26T11:40:09.807Z", - createdBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - createdOn: "2023-10-26T11:40:06.567Z", - entity: "FormBuilderForm", - fields: [ - { - _id: "Y9OCPiqvc", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "x-JujxcvA", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - formId: "653a4ff9daeb1e00081ae00f", - id: "653a4ff9daeb1e00081ae00f#0003", - locale: "en-US", - locked: false, - modified: "2023-10-26T11:40:09.807Z", - name: "Form 1 v3", - ownedBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - published: false, - savedOn: "2023-10-26T11:40:09.749Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a4ff9daeb1e00081ae00f", - stats: { - submissions: 0, - views: 0 - }, - status: "draft", - steps: [ - { - layout: [["Y9OCPiqvc"], ["x-JujxcvA"]], - title: "Step 1" - } - ], - tenant: "root", - version: 3, - webinyVersion: "5.38.7" - }, - { - PK: "T#root#L#en-US#FB#F#LP", - SK: "653a4ff9daeb1e00081ae00f", - TYPE: "fb.form.latestPublished", - created: "2023-10-26T11:40:03.932Z", - createdBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - createdOn: "2023-10-26T11:39:50.612Z", - entity: "FormBuilderForm", - fields: [ - { - _id: "Y9OCPiqvc", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "x-JujxcvA", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - formId: "653a4ff9daeb1e00081ae00f", - id: "653a4ff9daeb1e00081ae00f#0002", - locale: "en-US", - locked: true, - modified: "2023-10-26T11:40:03.932Z", - name: "Form 1 v2", - ownedBy: { - displayName: "Admin", - id: "admin", - type: "admin" - }, - published: true, - publishedOn: "2023-10-26T11:40:03.926Z", - savedOn: "2023-10-26T11:40:03.926Z", - settings: { - fullWidthSubmitButton: null, - layout: { - renderer: "default" - }, - reCaptcha: { - enabled: null, - errorMessage: "Please verify that you are not a robot." - }, - submitButtonLabel: null, - successMessage: null, - termsOfServiceMessage: null - }, - slug: "form-1-653a4ff9daeb1e00081ae00f", - stats: { - submissions: 0, - views: 0 - }, - status: "published", - steps: [ - { - layout: [["Y9OCPiqvc"], ["x-JujxcvA"]], - title: "Step 1" - } - ], - tenant: "root", - version: 2, - webinyVersion: "5.38.7" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.38.0/001/ddb/001.test.ts b/packages/migrations/__tests__/migrations/5.38.0/001/ddb/001.test.ts deleted file mode 100644 index ab3f9f2b1fc..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/001/ddb/001.test.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { MultiStepForms_5_38_0_001 } from "~/migrations/5.38.0/001/ddb"; -import { createFormsData, createLocalesData, createTenantsData } from "./001.data"; -import { migratedData } from "./001.migratedTestData"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.38.0-001", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if no forms found", async () => { - const handler = createDdbMigrationHandler({ - table, - migrations: [MultiStepForms_5_38_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, [ - ...createFormsData(), - ...createTenantsData(), - ...createLocalesData() - ]); - - const handler = createDdbMigrationHandler({ - table, - migrations: [MultiStepForms_5_38_0_001] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - await expect( - scanTable(table, { - filters: [ - { - attr: "TYPE", - beginsWith: "fb.form" - } - ] - }) - ).resolves.toEqual(migratedData); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(table, [ - ...createFormsData(), - ...createTenantsData(), - ...createLocalesData() - ]); - - const handler = createDdbMigrationHandler({ - table, - migrations: [MultiStepForms_5_38_0_001] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.ddbEsTableData.ts b/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.ddbEsTableData.ts deleted file mode 100644 index c92fb35bef9..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.ddbEsTableData.ts +++ /dev/null @@ -1,1187 +0,0 @@ -export const createDdbEsTableData = () => { - return [ - { - index: "root-en-us-page-builder", - _md: "2023-10-31T07:43:40.791Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-10-31T07:43:40.674Z", - publishedOn: "2023-10-31T07:43:40.674Z", - pid: "6540b02b571f860008816c33", - locale: "en-US", - title: "Welcome to Webiny", - createdOn: "2023-10-31T07:43:39.911Z", - version: 1, - tags: [], - path: "/welcome-to-webiny", - webinyVersion: "5.37.8", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - __type: "page", - id: "6540b02b571f860008816c33#0001", - titleLC: "welcome to webiny", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - tenant: "root", - status: "published", - latest: true - }, - SK: "L", - PK: "T#root#L#en-US#PB#P#6540b02b571f860008816c33", - _et: "PbPagesEs", - _ct: "2023-10-31T07:43:40.791Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-10-31T07:43:40.791Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-10-31T07:43:40.674Z", - publishedOn: "2023-10-31T07:43:40.674Z", - pid: "6540b02b571f860008816c33", - published: true, - locale: "en-US", - title: "Welcome to Webiny", - createdOn: "2023-10-31T07:43:39.911Z", - version: 1, - tags: [], - path: "/welcome-to-webiny", - webinyVersion: "5.37.8", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - __type: "page", - id: "6540b02b571f860008816c33#0001", - titleLC: "welcome to webiny", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - tenant: "root", - status: "published" - }, - SK: "P", - PK: "T#root#L#en-US#PB#P#6540b02b571f860008816c33", - _et: "PbPagesEs", - _ct: "2023-10-31T07:43:40.791Z" - }, - { - index: "root-en-us-form-builder", - _md: "2023-10-31T07:48:17.073Z", - data: { - data: { - firstName: "fname1", - lastName: "lname1", - jobTitle: "job1" - }, - form: { - name: "Form1 v2", - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - parent: "6540b090571f860008816c36", - id: "6540b090571f860008816c36#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - meta: { - submittedOn: "2023-10-31T07:48:16.770Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4", - query: {} - }, - ip: "0.0.0.0" - }, - savedOn: "2023-10-31T07:48:17.052Z", - __type: "fb.submission", - id: "6540b1416f87a60008837135", - locale: "en-US", - createdOn: "2023-10-31T07:48:17.052Z", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - logs: [], - tenant: "root" - }, - SK: "FS#6540b1416f87a60008837135", - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36", - _et: "FormBuilderSubmissionEs", - _ct: "2023-10-31T07:48:17.073Z", - TYPE: "fb.formSubmission" - }, - { - index: "root-en-us-form-builder", - _md: "2023-10-31T07:48:25.076Z", - data: { - data: { - firstName: "fname2", - lastName: "lname2", - jobTitle: "job2" - }, - form: { - name: "Form1 v2", - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - parent: "6540b090571f860008816c36", - id: "6540b090571f860008816c36#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - meta: { - submittedOn: "2023-10-31T07:48:24.791Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4", - query: {} - }, - ip: "0.0.0.0" - }, - savedOn: "2023-10-31T07:48:25.052Z", - __type: "fb.submission", - id: "6540b1496f87a60008837136", - locale: "en-US", - createdOn: "2023-10-31T07:48:25.052Z", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - logs: [], - tenant: "root" - }, - SK: "FS#6540b1496f87a60008837136", - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36", - _et: "FormBuilderSubmissionEs", - _ct: "2023-10-31T07:48:25.076Z", - TYPE: "fb.formSubmission" - }, - { - index: "root-en-us-form-builder", - _md: "2023-10-31T07:48:33.517Z", - data: { - data: { - firstName: "fname3", - lastName: "lname3", - jobTitle: "job3" - }, - form: { - name: "Form1 v2", - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - parent: "6540b090571f860008816c36", - id: "6540b090571f860008816c36#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - meta: { - submittedOn: "2023-10-31T07:48:33.211Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4", - query: {} - }, - ip: "0.0.0.0" - }, - savedOn: "2023-10-31T07:48:33.508Z", - __type: "fb.submission", - id: "6540b1516f87a60008837137", - locale: "en-US", - createdOn: "2023-10-31T07:48:33.508Z", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - logs: [], - tenant: "root" - }, - SK: "FS#6540b1516f87a60008837137", - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36", - _et: "FormBuilderSubmissionEs", - _ct: "2023-10-31T07:48:33.517Z", - TYPE: "fb.formSubmission" - }, - { - index: "root-en-us-form-builder", - _md: "2023-10-31T07:48:33.572Z", - data: { - formId: "6540b090571f860008816c36", - savedOn: "2023-10-31T07:45:50.290Z", - publishedOn: "2023-10-31T07:45:50.290Z", - published: true, - locale: "en-US", - createdOn: "2023-10-31T07:45:40.110Z", - version: 2, - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - __type: "fb.form", - name: "Form1 v2", - id: "6540b090571f860008816c36#0002", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - slug: "form1-6540b090571f860008816c36", - tenant: "root", - status: "published" - }, - SK: "L", - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36", - _et: "FormBuilderFormEs", - _ct: "2023-10-31T07:48:33.572Z", - TYPE: "fb.form.latest" - }, - { - index: "root-en-us-page-builder", - _md: "2023-10-31T07:43:40.611Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-10-31T07:43:40.608Z", - publishedOn: "2023-10-31T07:43:40.608Z", - pid: "6540b02b571f860008816c32", - locale: "en-US", - title: "Not Found", - createdOn: "2023-10-31T07:43:39.890Z", - version: 1, - tags: [], - path: "/not-found", - webinyVersion: "5.37.8", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - __type: "page", - id: "6540b02b571f860008816c32#0001", - titleLC: "not found", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - tenant: "root", - status: "published", - latest: true - }, - SK: "L", - PK: "T#root#L#en-US#PB#P#6540b02b571f860008816c32", - _et: "PbPagesEs", - _ct: "2023-10-31T07:43:40.611Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-10-31T07:43:40.611Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-10-31T07:43:40.608Z", - publishedOn: "2023-10-31T07:43:40.608Z", - pid: "6540b02b571f860008816c32", - published: true, - locale: "en-US", - title: "Not Found", - createdOn: "2023-10-31T07:43:39.890Z", - version: 1, - tags: [], - path: "/not-found", - webinyVersion: "5.37.8", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - __type: "page", - id: "6540b02b571f860008816c32#0001", - titleLC: "not found", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - tenant: "root", - status: "published" - }, - SK: "P", - PK: "T#root#L#en-US#PB#P#6540b02b571f860008816c32", - _et: "PbPagesEs", - _ct: "2023-10-31T07:43:40.611Z" - }, - { - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _md: "2023-10-31T07:47:59.888Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61UTY/TMBD9KytzbULcpE3oqUICiQtU7LKIRWg1jifbgGNHjtMSrfrfmThNVWi3vXCL5+vNm3mTZ1YZieqDZAsGublFsPn6M+bGyqAWNTwhm7AN2qY0mi34hCmTg/OPZ1YYJdH6XGuMY7sJa2CD8hN52TSaxgGPgpjfRekiSRezN2GWJg9sqKGQYlAHX27J0DhwbUMGaaFwZKjQASFQwQ2oFpsezeFvt3Rd3SeuxGpobTCWzpfrbTdfS7e+eW9sNXpzox1qd85vxE/M3fKYk085Q2wfKsE3NoSVfcB8lkSC83xeZCnMoyjKsjjlcfyKPvnYQ30x9CqPPXhuERzKt91pB1AUYpbyIhvK8nnOxVhWlk2toPsIVV8c5E1V6gPkME+QvY1oEj90ZYUj1vlVJlHIk7Rf5SH+8uLnUfYwQh6WXbdClc0aJXl0Wwm0y2OlCWMUgu6384tiFs62OI4T3JoKvG61H5kMlEEeGZP0FAZe8EQQ33/Q+++pHfOl9s+P5vJYqSbpyXZeH1vRBXQ4wcXdavD681o6NPTiaKc82l+J512Aaoi42er/TGKLotTd/ThyNgvjNMzGzGvERn3T/6MsyrG1a4J8SYv/yNDC9v5w+KdXenqPZy5kt6MwRc/GjeK5+7Z6RzB51YR+g6Ei7MfHPfqxefcHhnvwRhkFAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#wby-aco-6540b11c6f87a60008837133", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:47:59.888Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.550Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY+UQBD9K6Y9yjA0zADLaWKiiRc1cd1EjdkUUEza7Y9Jd8MsTvjvVgOTGLOuF29dr77eewUXdsZa6PEOrRNGs4rt46yISxYxjxq0J8Qa4ylG7e34riUgT9K05Lsaux3c7JIkKeushrSgIvFc/iU9ORUp06KcJ3XqrZBIkDQN0KOiLZvPnwhoLILH9kOglCZptuHJJuO3SVHtsior4zy/+UplDoZ/F62zXo+suqwM97sEuq7eF7wr88Cw5HnDaypuhTtJGN+DCnSgfaGEDm6MpyUO4RQxc9b/eSK5IjqxDNW9lBEbrkfhs0EPSIs6kA5JtwffO2pvLXThOgPIHl2gY+of2PhDcNTP3Rc65aM/dEa2aGfb54tO0YLrhZfDprfCj7EbjmxNPeAYVqAymxMc0W3/dtntU92rQKGodUv4q0clKad7VaM9OPGTsrwoOKlbOSv0EPjWxkgEfThZMdDlWOVtj1e+Ho6k89v3NQQpwOGMTMt3dFX9hGAL57tnjJr+ZDKFkcTA+YVDxG6/fHxDAxvl4vmHiIOk+/tV6+/w9As85TJ5XAMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.550Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.494Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSVM7aRtvThUSSFwAiWUlQGjlJJPKrD8i20k3VPnvjJNUQmhZLtw8bz783hv7Qs5QSTPegfPSGlKSfZoXKScJCWCECYg4awPGYIIb3zUIHGiWcbbbtzec7xil9IazusgYFsnn8i/xGIu0bUDNk1r9VipASNla4KHEWzafPyFQOxABmg+RUkazfMPoJme3tCh3eZnz9FDQr1jmxfDvonXW65GUl5XhfkdF21b7grX8gLQ4Z4eaVVjcSN8pMb4XOtIRzQstTXRj7JY4hlNC7Nn854noimzlMtT0SiVkuC6FzQY9AF7UCuUBdQcReo/tjRNt3M4gVA8+0rHVD6jDMToa5u4LrvIxHFurGnCz7fNGp2TBzcKrgQGU7cClfjiRNfcA45zSdtOJE/jt31a7fbJ9lSg19m4Rf/WoFeZMrytwRy9/YjYrON0lV9YagoiMK2sVCHPsnBxwd6QMrocr4yBOqPTb9zUUSgoPMzItL+mq+wnJTpzvnrFq+pPJFEciAx8WDgm5/fLxDQ6stU/nL5FGSff3q9bf4ekXuUXZSF4DAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.494Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.273Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTW/UQAz9K2g4kmTzsZuEnFZIReICSJRKtEKVkzjbofOxmplkG1b573iSrIQQLRdu42f7+T07ObMT1lyNN2gs14pVbBdlRVSygDlUoBwhRmtHMSpnxg8tAXmcpmWyrQsoCszjOC67Im7zlIr4S/nX9EyoSOoWxczUyfdcIEFCN0CPiqaEX78Q0BgEh+0nLymN0yxM4jBLruOi2mZVVkZ5/vaWyiwM/y5aud6NrDqvCnfbGLqu3hVJV84KyyRvkpqKW26PAsaPIL0caF9Jrvw2xuMS+3AKmD6p/8xIW+EdX0hVL0TAhstRknlBj0iDOhAWybcD11tqbw10/joDiB6tl6PrH9i4vd+om7vPdMont++0aNHMa58vOgULrhZdD2h0WPsxYX2I7HBga/4RRz8HpQ6PcEC7ee68m2cpVqtcUv+G8DdPUlBO9bJGs7f8J2WTMt8GF/ESHXjhtdYCQe2Phg90QlY50+NFuIMDGb77voYgOFickWn5oC72/+LcwOnmhY1NfyqZPCUpsG7RELDrb5+viLCRNpr/jMg7ur9frf4OT78ATf3HIGUDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.273Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.431Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UQBD8K2Z8FNgBbgF52pho4ouaeF6i5nJpoNmMNx+bmWH3cMN/twfYxFx0ffFtuqamuroazuyEjdDjHVonjGY12yZ5mVQsYh41aE+INcZTjdrb8X1HQMGzrMqQl1CWWHDOq77kXZETSVy7f0nHlEjKdChnpV69ExIJkqYFOtTUJf7ymYDWInjsPgZLGc/yOOVxnt7ysr7J67xKiuL1N6I5OP6btGq9GVl9Xh1ubzj0fbMt076aHVZp0aYNkTvhDhLGD6CCHeheKKFDGuNhqUM5Rcyc9H9WpFRELxZRPUgZseNlKekc0CNSox6kQ5rbgx8cPe8s9GE7R5ADumDHND+w9buQqJ9fn2mVT37XG9mhnWOfNzpFC64XXz1lNFiMW7Bd3OwTd9yzlfGIY+iEysQH2KPb/G3Bmysi67hCkcKG8FdPStKdHlSDdufET7qtqiq6+FfoIXhvjJEIenew4khbZLW3A168e9jTzN/v1xKkAIczMi3f1CWBPwxv4XR3JbTpuZMpSJID5xcPEbv9+uktCbbKJfPPkYSBHh7WSX+Hp1+7e0NXaAMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.431Z" - }, - { - index: "root-en-us-form-builder", - _md: "2023-10-31T07:50:10.361Z", - data: { - data: { - firstName: "fname1", - lastName: "lname1" - }, - form: { - name: "Form2", - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - parent: "6540b1636f87a60008837138", - id: "6540b1636f87a60008837138#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - meta: { - submittedOn: "2023-10-31T07:50:10.082Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu", - query: {} - }, - ip: "0.0.0.0" - }, - savedOn: "2023-10-31T07:50:10.335Z", - __type: "fb.submission", - id: "6540b1b2571f860008816c37", - locale: "en-US", - createdOn: "2023-10-31T07:50:10.335Z", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - logs: [], - tenant: "root" - }, - SK: "FS#6540b1b2571f860008816c37", - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138", - _et: "FormBuilderSubmissionEs", - _ct: "2023-10-31T07:50:10.361Z", - TYPE: "fb.formSubmission" - }, - { - index: "root-en-us-form-builder", - _md: "2023-10-31T07:50:16.740Z", - data: { - data: { - firstName: "fname2", - lastName: "lname2" - }, - form: { - name: "Form2", - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - parent: "6540b1636f87a60008837138", - id: "6540b1636f87a60008837138#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - meta: { - submittedOn: "2023-10-31T07:50:16.498Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu", - query: {} - }, - ip: "0.0.0.0" - }, - savedOn: "2023-10-31T07:50:16.733Z", - __type: "fb.submission", - id: "6540b1b8571f860008816c38", - locale: "en-US", - createdOn: "2023-10-31T07:50:16.733Z", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - logs: [], - tenant: "root" - }, - SK: "FS#6540b1b8571f860008816c38", - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138", - _et: "FormBuilderSubmissionEs", - _ct: "2023-10-31T07:50:16.740Z", - TYPE: "fb.formSubmission" - }, - { - index: "root-en-us-form-builder", - _md: "2023-10-31T07:50:23.217Z", - data: { - data: { - firstName: "fname3", - lastName: "lname3" - }, - form: { - name: "Form2", - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - parent: "6540b1636f87a60008837138", - id: "6540b1636f87a60008837138#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - meta: { - submittedOn: "2023-10-31T07:50:22.947Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu", - query: {} - }, - ip: "0.0.0.0" - }, - savedOn: "2023-10-31T07:50:23.198Z", - __type: "fb.submission", - id: "6540b1bf571f860008816c39", - locale: "en-US", - createdOn: "2023-10-31T07:50:23.198Z", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - logs: [], - tenant: "root" - }, - SK: "FS#6540b1bf571f860008816c39", - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138", - _et: "FormBuilderSubmissionEs", - _ct: "2023-10-31T07:50:23.217Z", - TYPE: "fb.formSubmission" - }, - { - index: "root-en-us-form-builder", - _md: "2023-10-31T07:50:23.261Z", - data: { - formId: "6540b1636f87a60008837138", - savedOn: "2023-10-31T07:49:04.307Z", - publishedOn: "2023-10-31T07:49:04.307Z", - published: true, - locale: "en-US", - createdOn: "2023-10-31T07:48:51.471Z", - version: 1, - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - __type: "fb.form", - name: "Form2", - id: "6540b1636f87a60008837138#0001", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - slug: "form2-6540b1636f87a60008837138", - tenant: "root", - status: "published" - }, - SK: "L", - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138", - _et: "FormBuilderFormEs", - _ct: "2023-10-31T07:50:23.261Z", - TYPE: "fb.form.latest" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.489Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY/TMBD8K8g8kqRx0qZuniokkHgBJI6TAJ1Om2RTmXPsKHbTC1X+O+t8SOjEHS+8ecfj2dnZ5MouWEg93GJnpdEsZ7so3UeCBcyhBu0I6YxxVKN23fChIiCLk0Tw7a4+CLHlcRwfBC/3SUwk+dL9azpyIjWmQjUp1c17qZAgZUqgQ05dwq9fCCg7BIfVJ28piZM05HGY8pt4n2/TPBVRlh2+E81C/2/SovV2YPl1cbjbxlDXxW7Pa5GRLSF4VvKCyJW0rYLhIzTeDlSvGql9GkM7174cA2Yu+j8rUiqylrOoPisVsH5dCp8CekBqVIOySHM7cGdLz6sOar+dHtQZrbdjip9YuqNP1E2vr7TKR3esjaqwm2KfNjoGM65XX9A6KBSGsjQ6sv2JLYQHHHwjbEzYwgnt5rn9bp7XWIaVDQlsCH/z2Ci60+emwO5o5S+6TcSBi2D136AD770wRiHoY9vJnrbIctedcfXu4EQz/7hbSlASLE7IOH9TawJ/Gb6Dy+0LoY1PnYxekhxYN3sI2M23z+9IsGxsNP0ckR/p/n6Z9U94/A2q9C+XaAMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.489Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.669Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTYvUQBD9K9IeTTL5miTkNAgKXlRwXXBFlkpSGdrtj9Ddk9k45L9bnWRARMeLt67X1a/ee5Vc2BkbrqZ7NJZrxWq2j7IyqljAHCpQjhCjtaMalTPTu46AIk7TKsmrArs86eM4rpo27aChJn7r/iUdE2qSukOxMPXyLRdIkNAt0KGmKeHnTwS0BsFh98FLSuM0C5M4zJK7uKzzrM6qqCjjB2qzMP67aeN6PbH6sinc5zH0fbMvk74qvMIqKdrEO+i4HQRM70F6OdC9kFz5NKZhrX05B0yf1X9mpFR4z1dSdRIiYON1KckS0BPSoB6ERfLtwJ0sPe8M9H47I4gTWi9HN9+xdQefqFteX2iVz+7Qa9GhWWJfNjoHK65WXQMaya2fF/JWq8iOR7Z1POHkJ6HU4QBHtLu/LXh3g2SzyyUx7Ah/9SwF3amTbNAcLP9Bt0WZx2lwdSDRgVffaC0Q1GEwfKQ9stqZE17VOziS66/fthIEB4sLMq9f1TWDP9g3cL6/Edv8u5LZU5IC61YNAbv78vENEbbSRsvvEXlLj4+b11/h+ScE7A1WagMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.669Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.553Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TQAz9K2g4kqb5ajqbU4UEEhdAYlkJEFo5iVMNOx/VzCTdUOW/40lSCSF2uXAbP9vP79nJhZ2xFnq8Q+uE0axiuzjfx5xFzKMG7QmxxniKUXs7vmsJKJMs42lRY1fATZEkCa/zGrKSisRz+Zf0TKlImRblzNSpt0IiQdI0QI+Kpmw+fyKgsQge2w9BUpZk+SZNNnl6m+yrIq9yHpflzVcqczD8u2jlej2y6rIq3BUJdF2926cdL4NCnpZNWlNxK9xJwvgeVJAD7QsldNjGeFriEE4RM2f9nxlpK6ITC6nupYzYcD1KOi/oAWlQB9Ih+fbge0ftrYUuXGcA2aMLckz9Axt/CBv1c/eFTvnoD52RLdp57fNFp2jB9aLLNSSfSoQ+xm44sjX7gGOYgspsTnBEt33quNsnCFabQlH3lvBXj0pSTveqRntw4idl85xzHl2VK/QQVNfGSAR9OFkx0P1Y5W2PV9UejuT22/c1BCnA4YxMy9d09f4X2xbOd8+sa/pTyRQoSYHzi4aI3X75+IYIG+Xi+beIg6X7+9Xr7/D0C8UXoLdiAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.553Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.451Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY+UQBD9K6Y9CgwNM8Bympho4kVNXDdRYzYFFJN2+2PS3cMsTvjvVgOTGLOuF29dr77eewUXdsZG6PEOrRNGs5rtkrxMKhYxjxq0J8Qa4ylG7e34riOgSLOs4ttqx/lNWaRpWvEy2wJSkXgu/5KenIqU6VDOk3r1VsjQJ00L9KhpS/z5EwGtRfDYfQiUsjTLY57GOb9Ny3qb13mVFMXNVypzMPy7aJ31emT1ZWW426bQ982u5H01M6x40fKGijvhjhLG96ACHeheKKGDG+NxiUM4Rcyc9X+eSK6IXixD9UnKiA3Xo/DZoAekRT1Ih6Tbgz85au8s9OE6A8gTukDHND+w9fvgqJ+7L3TKR7/vjezQzrbPF52iBdcLr9Y4H4vW6MQNB7bmHnAMO1CZ+AgHdJu/nXbzZPsqUSjq3RD+6lFJyumTatDunfhJ2SKlmdGVtUIPgXFjjETQ+6MVA92O1d6e8MrYw4GUfvu+hiAFOJyRafmSrrqfkGzhfPeMVdOfTKYwkhg4v3CI2O2Xj2+CX8ol8y+RBEn396vW3+HpFxaOThVeAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.451Z" - }, - { - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _md: "2023-10-31T07:49:51.067Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K5W5NiFO+pH2VCGBxAUqdlkEaLWaxJOtwYkjx2mJVv3vTJwmKtvQ5cDNHj/Pmzfz5onlWqB6L9iaQapvEEy6+4SpNsIrkxIekU3ZHk0ldcHWfMqUTsG6yxPLtBJo3F+jtWXHKatgj+IjvbIwCCOPB17Eb4PlerZaz7kfzMNvrMuhkDBYeJ9vKFBZsHVFAWEgsxTI0QIxUMI9qBqrls3iL7uxTdl+3CbbrrQuKK1L18YmX6TdTd5pk0/C/j3VhcXCjiN08gNTuznX5T6NiDtBBbjiOphsAYv5LEh4zBdZvIRFEARxHC15tHpFx6GK8ir0H7Sc6FODYFG8aS5rgCxL5kuexV1ivkh50icWsioVNB8gb9ODmOSyGEi7roJoYySUFKKVOfZc4wOdxT7nUTvQAX9t/IEfr9z4HeUw8rJOlKx2KOilqPMEzWbwWzhlidYKoWjn85Mwa2tq7BsKdkcJXteFa5rwlEYe1rJuJXS64JEovt/T/c+uneul8sdbc72tlJM8ZRrnkEPSeLQ+3tXpFuA86Nw0FDTerJB2ZRGfdsXpzkBVJFwfiv8s4oCJLJq7vuVs7kdLP+5/viSsdThvF1YLmcm+tJcM+TcvPrOhgcPdsP6Xe3q5kSMbcjwSTNG1sr15br9u3xJNmle+m6CviPvh4cR+Hj7+BiCbvGofBQAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#wby-aco-6540b1816f87a60008837139", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:49:51.067Z" - }, - { - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _md: "2023-10-31T07:43:40.949Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61U34/aMAz+V7LslXYt5UfhiU1i2jTtDg120m6aTknjQndpUqUprDrxv89NKWIHx73srXZsf/7sz32iuRYgPws6pSzRS2Am2XyDRBvhFbxga6A9ugVTZlrRadijUifMOuOJploKMC7XaG3pvkdLtgVxi6+0H/QjLwy8KFwF4+kgmg4CfxIF97StIQFjQHnfl+goLbNViQ5hWGrRkYNliIAFt0xWUDZoFv7Yma2LJnHBF21rrTOzrtyNtuSjrpToHhKtLCh7+kSaRKLQTBvzDVlqY+oe4ZUldgOkoUxqXZEdGCBS68dMrTHWkERXUrhMDm2yT1bvv8zJ1zn5dJs33Wj+GxI7O52R6+PCoA6hgjmibVjWBIyGg4AHfT4ch2k8CoIgjsNREvXf4mfYESuuhl6bywE3McAsiA/1OThL02cVQ95VFFlZSFbfsLypywTJM3VEa1fDRONDhkgNbJZDh3VZFdHEjydOFcf46xoaBfF9B3nUTVFxmZUbaBiqKudgZqei5VpLYKpZzCPGTK2poJsksxss8A736rmlNq23fNgaS//8hfa/0zrliW1fHsn1cWJN1KWpnSR2vPbw9ryr61TM6djJ59jQiyOdDOLDoTm+KZMlEtY79Z9J7IBnqr7rRk2HfjT24y7zNWKdpPEXlKVZ19prQnxJg8/kZ9ju7vjvOD/M8xO8cBn7PYZJNEvbiWb1YzFHmCQvfbdBXyL2w8MB/dS9/wtSi4LwXAUAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#wby-aco-6540b02b571f860008816c32", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:40.949Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.409Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY/TMBD8K8g8kqRJ06YhTxUSSLwAEsdJBzqdNsm6MvVHZLvphSr/nXWSSghxh4TIk3e8Hs/MOhd2xlro4RatE0azim2TfJeULGIeNWhPiDXGU43a2+F9S0CRrtdltoG05Zs6pa8sd/m2rqlJPLf/kpYZNSnTopyYuHonJBIkTQO0qOiW+MtnAhqL4LH9GCSt03UeZ2mcZzfprtrkVV4mRfH6K7U56P/etHC9GVh1WRRuNylwXm93GS+LSWFWNFlw0ArXSRg+gApyoH2hhA5pDN1ch3KMmDnr/8xIqQguZlJ9kjJi/XUo2RTQEekiDtIh+fbgT46OtxZ4mE4P8oQuyDH1d2z8PiTqp9MXGuWj33MjW7RT7NNEx2jG9axrfgexQ0vXSnQuhq6TYiaJuaWus7HHxPUHtpw84hAUoDJxBwd0q6cGv/oH8iUeoYh5RfirRyVpT59UjXbvxA/azYuColkMK/QQzNbGSAS976zoaeys8vaEV7MeDhTSt/ulBCnA4YSM8yO8RvaHtCycb59JefxdyRgoSYHzs4aI3dx9ekuEjXLJ9DclwdHDw2L1V3j8CezDdf2ZAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.409Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.571Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UMBT9K6Y+CgyF+ejwNDHRxBc1cd1EzWZT4DLW6QdpC7M44b/vLTCJ2azri2+9536dcy5cyBlKoYdbsE4YTQqySfJdwkhEPGiuPSLWGI8xaG+HDzUC2zTLGF2zZs/YmqZpume02mU5FomX8q/xSbFImRrkNKlR74UEhKSpOD4K3BJ//YJAZYF7qD8FSlma5TFN45zepLtinRc5S7bb/Xcsc7z/d9Ey6+1AisvCcLNOedOUmx1t2BZpMUa3FS2xuBaulXz4yFWgw+tXSujgxtDOcQjHiJiz/s8T0RXRiHmo7qSMSH89Cp0MOgEuarh0gLo9953D9tryJlyn57IDF+iY8hdU/hAc9VP3BU/54A+NkTXYyfbpomM043rm1Qp9it1P3kLi+iNZkicYwhJQJm75Edzqb7ddPd+/iBQKm1eIv3lQEnO6UyXYgxO/MZvv0+jKWoHngXFpjASuD60VPd6OFN52cGXs+RGV/rhbQi4FdzAh4/wlXXU/I9ny8+0LVo1PmYxhJDJwfuYQkZtvn9/hwEq5ZPolkiDo/n5R+ic8PgKV28mjXgMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.571Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-10-31T07:47:59.648Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-10-31T07:47:59.608Z", - publishedOn: "2023-10-31T07:47:59.608Z", - pid: "6540b11c6f87a60008837133", - locale: "en-US", - title: "Page With Form", - createdOn: "2023-10-31T07:47:40.147Z", - version: 1, - tags: [], - path: "/untitled-loe10oo4", - webinyVersion: "5.37.8", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - __type: "page", - id: "6540b11c6f87a60008837133#0001", - titleLC: "page with form", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - tenant: "root", - status: "published", - latest: true - }, - SK: "L", - PK: "T#root#L#en-US#PB#P#6540b11c6f87a60008837133", - _et: "PbPagesEs", - _ct: "2023-10-31T07:47:59.648Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-10-31T07:47:59.648Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-10-31T07:47:59.608Z", - publishedOn: "2023-10-31T07:47:59.608Z", - pid: "6540b11c6f87a60008837133", - published: true, - locale: "en-US", - title: "Page With Form", - createdOn: "2023-10-31T07:47:40.147Z", - version: 1, - tags: [], - path: "/untitled-loe10oo4", - webinyVersion: "5.37.8", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - __type: "page", - id: "6540b11c6f87a60008837133#0001", - titleLC: "page with form", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - tenant: "root", - status: "published" - }, - SK: "P", - PK: "T#root#L#en-US#PB#P#6540b11c6f87a60008837133", - _et: "PbPagesEs", - _ct: "2023-10-31T07:47:59.648Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.496Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY+UQBD9K6Y9CgwfA8Nwmpho4kVNXDdRs9kUUEza7Y9Jd8MsTvjvVgOTmI3uXuTU9bp49d4ruLAz1lyNt2gs14pVLI+yXVSygDlUoBwhRmtHNSpnxg8tAUWcpmWyLYsi26cxPfuuzXKsqYk/d/+ajgk1Sd2imJk6+Z4LJEjoBuhQ0ZTw6xcCGoPgsP3kJaVxmoVJHGbJTbyrtlmVlVFR7L9Tm4Xh5aaV6+3IqsuqMN/G0HV1vku6siBZZZkUTeIdtNyeBIwfQXo50L6SXPk0xtNS+3IKmD6r/8xIqfCOL6SqFyJgw3UpyRzQA9KgDoRF8u3A9ZZebw10fjsDiB6tl6Prn9i4g0/UzW9faJWP7tBp0aKZY583OgULrhZdFg3NE2ht2EgbCn3UkR2ObO16wNFPQ6nDExzRbv615M0LRKttLollQ/ibRynoTvWyRnOw/BfdJru8DK5GJDrwJmqtBYI6nAwfaJ2scqbHqwkHRzL/424tQXCwOCPT8nFdo/hLCgbOt8+kNz1VMnlKUmDdoiFgN98+vyNCshvNf0nkHd3fr1b/hKff8B8FuHEDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.496Z" - }, - { - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _md: "2023-10-31T07:43:41.008Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61YW3PbNhb+KxjtbPsisVKci+O+xHXb1LN24tZuMtudnQ5IHopYgQALgNYqHf/3/Q5AUpQvaR72wWMJl3P9zncO9OessSXp83J2MpOFvSbpivoXKqwrF23eyjXN5rNbcl5ZMztZzWfaFjLEL3/OKqtLcvGuszbM7uYzL2+pfI/d2bPls6PFark4Wt0sX508Pzp5vsxeH7/+bZZkaMIZMotfr7Hggwydx0LpZBWw0FCQ0ACBt1J35FlboP+GN2HX8sWr/CqZlhZViOI+ki5sQyJY8ZFyZXbDgcKaQCY8dkQ8thL/NXJDXqggSPodb+ed0qWQbatVioEX0pRiS7lXAUetwalW2EqEmoQnh7hp8pBhKid9cF0ROkci34nW2VtVKrMWO9uJrQq1kMKRLHeLRpYkzi6vo2wpSrolbdsG5gtIaWhr3SYT14igzDUNxsIqLwpphOfQsrU17vMnmNJYHyCowQqrZAnaytJn4p0VReeDbXDDat509EenHJWDYNKqUUayfyzKELbGWNy7i/UCToQD52GZOGMDqKqoCOr20GbXGQ7c09Ha1qqoRQEJXhwv/y7imQDvxIdLL34hb/UtjJsIKGqpNZk1VntNjhrLh7AevZicQLaiL2z/odX7LL+lwL5tjN0OEpHAEgZ6cYp6QfaLkMHLkjLxPbXa7rLh4PVe5ulepvhxSKX4Adu7UA9YGALcB5JBUEaJhyZ9Idayr0zu22/Fr54YyUPiTsSPndYLlF2xOZB72emgFqgVCbghsl3Sdnp17i9V4SwrUgWJC/CEAa6Qn1PDBaLIia2clMlhLL24qQmHJf4Aw91ENlIZRE26je4DDvPRYfjeWKOCdVNxVWeKeHUOVQH4IMO+cRF71i/hOdK7w0rMqjU05yj16g2+j9lRsG60ZW+Kj7bgPvEHdx/OTxTwAC7btNBhAA6tNgjQ2cVcOAsVZj0XlUJRomoc+Ct5yOHgSGYTUFRIPtLnOXEOjq5xv/UsBkaIr2SDnPrCtvhyTUXnVOh9KZB4JbXQcoeMKCOkOUDO3nNT6K7kmkBAgYVeIyeul4fG0EUCkeFrFJU1BihP4GQ3Oc1hAQ1vnWzrny8YJNkXmFvIivsGh+7nThUbJGpNhhyjPbeIjms1f47R7zyfO7s4F63u1sp4DhIYR8smL+UeCmyUoe3UFhw9i/SkPkWiHP3iWmAHSqok4C5OP16jdNeMs7kA1BzQJ4HxmNQjV4pWOg5viZTy/ZR6+JnS+34T5FycdqFezgWFIoMCNro3OCEJbMXtZAh+zHECjXlEciZiHbawmsytctY0EU7M1hwV0Be4S6wt4lmCrIugOaGM/YGYGM6Tu2PaOZQPGhsgOKCxp53mUf0VohPrAUr+EynvvUFg1ScEE7aYr9GiIJYL4ZwxIwVzG0wE8ztuYB5ECsrqe0wSKgXYszbAJ8qHZIPGlcoYZrkNhdhYeD2u5YwIrsNpX+TtxwiXu2iihRhrjysOWvb2RGYaEtQxRxpwDxlOiN5FNAS7JiYPAasYCGw/yszW5LmVDdzxlPpT4Tu0h3hryt/coAfO68MfI9tPKtlDxr4co5GmjUTV/fAx4dOzJEHUXT4c0oBLxyrSzXMTnDRIRWtdkNqLnzB4pM7Z340zoZ+yPPuSo0yRX78fPt4xdkJAdFJB8YQxfyoRMjUKQHWcURqCFciK2Y8pQ2u+N6iclrINUed3xFsQBjoxC4+goVZ7QM4RMuBuxDUaQJX6iOT7IrbZGPwYbLs1sd9C/gVaO88YnCgso7pr1cIFXS1qLIP29h336W7LAbk3vqTyWqMFxQstWS6rccrCNvxwQ6tvJMoYf1mider/ldxyJjyV9fWlvR2dxUVau2H4QpMe+OkfN6c9P0UVHvOcluCY72WQE1/3HdHvveaAIksy8ZgTJd/B2LBLJQX23y8XQA5z1xW5Rnl+MEQ8oQeIK7slhzYDX0f4D3uc+Xa80uvpuI9ABZikxosi4/Fhx8eqRHZSq7VJVR3Pj7QwpZZh+JkAsae+wxRxBOeHU/8kxTG+K57rIuGQW1ROgSL0+FBgwsqJmOLLvm2kcugvcBvGDF1y1vrxAvvNcODJsTNKgnq4/wxUC7iLHu77XCW+Lg/Ak+CCCpGN/MTFEtsxIzehL+tryE4kphz3cnF+m942dJum66bDDF4hZpxgZhinMHuBHnmi2qYXVCaOeK9pOsPN7CPF1EU70thfjHs88KPH4h1zI/VmmCjw6KQFc/k86gbvxmiN1Bq7AE85essATCMd9yRuon/glRjDlokPisY5HZreqvBTl+MpaHPmiDfTF2x8HT7yjO2PMq7HY4oPvHzxfJkvn+UvXq2q45fL5fL4ePWyODr6Gz6uhudm+9mjX/Jq7fX32f1u99AITFH3JK/yQXKpPEaY3TtMk/ysLxl9o9b0gJYlr8FTuIiu0tCg6/G3+9Hr7PVqxW/38fznX/ovXz3/bVA5vu7bLtfK11Rix3RNTu7N9KeFHM9IwJATtMGZExQoDRGVoYaAb3qoLYLlzsexuhv8kmuo+Ne/8f0walN/Yf7jofl8WCETfOJ2ESLbfLeQhV18Nr38fhrgNBr0dGhfrPqfRaLfFXgdjjM1/3+dSCH7MIR89iI7epUdDzf/yrEB4rGrqsG0vwLkU1i8B0Mntx/GX3oeFurDknykQu7ucIzfDj4M4Ln559UPUFM0PosZzDR0//57r326fPc/XAb0kgoTAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#wby-aco-6540b02b571f860008816c33", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:41.008Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.411Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdK4adM0pwoJJC6AxLISoNVqkkwqs/6obCfdUOW/M05SCa1g4cDN82b85s0b+8LOWAk93KJ1wmhWsm2S7ZKCRcyjBu0JscZ4ilF7O7xrCMjT9brgm2LPq4ZnaZoWu6pZb2oqEs/lX9KRU5EyDcqJqVVvhUSCpKmBDiV1iT9/IqC2CB6bD0HSOl1nMU/jjN+ku3KTlVmR5Pn+K5U56P9etHC9Hlh5WRRuNym0bbXd8bbIg8KC5zWvqLgR7iRheA8qyIHmhRI6uDGc5jiEY8TMWf9nRnJFtGIm1Z2UEeuvS+GTQQ9IjVqQDmluD75zdL2x0Ibt9CA7dEGOqb5j7Q/BUT/dvtAqH/2hNbJBO9k+bXSMZlzPuuZ3EAvdWnDedrXvLMaGNPQCz4nrj2y58IBDaIzKxCc4olv9ad+rf+dczBCKCFeEv3pUknK6UxXagxM/KLtPeZ5F1/kUegizVcZIBH04WdHTlllJffA6m4cjefLtbglBCnA4IeP85q4O/cYcC+fbZ0wdnyoZAyUpcH7WELGbLx/fEGGtXDJ9niSMdH+/zPorPP4EBeNi64gDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.411Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.649Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTW+bQBD9K9X2WMCssQ3hZFVqpVzSSk0jtVEVDTBY2+yHtbvgUIv/3lnAUlSl6aW3nTczb96bgTM7YSX0cIfWCaNZybZJlicFi5hHDdoTYo3xFKP2drhuCNil63XBN9v2qig2PE3Tq4LXOW+pSLyWf0tPTkXKNCgnplZ9FBIJkqYGepQ0Jf76hYDaInhsPgVJ63SdxTyNM36b5uUmK7Mi2eXpdypz0P+7aOF6P7DyvCjcblJo22pLqoodySoKvqt5RcWNcEcJww2oIAeaN0rosI3hOMchHCNmTvo/M9JWRCtmUt1JGbH+chQ+LegRaVAL0iH59uA7R+2NhTZcpwfZoQtyTPUTa78PG/VT95lO+eT3rZEN2mnt00XHaMb1rMvU3sTUkrj+wJbUIw5hBCoTH+GAbvW3y65e6l4MCkWtK8LfPSlJOd2pCu3eiV+UzYgjjy6aFXoIeitjJILeH63o6XKs9LbDi14PB/J5/2MJQQpwOCHj/B1dXL9g2MLp7pVFjX8qGQMlKXB+1hCx22+fPxBhrVwy/RBJsPTwsHh9Do+/AYZjZjRcAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.649Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.555Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTa/TMBD8K8gcSdJ8tGmaU4UEEhdA4vEkQOhpk6yLeY4d2U76QpX/zjpJJYSgXMjJO16PZ2adCztjJdR4j8YKrVjJdlG2jwoWMIcKlCPEaO2oRuXM+KYhII/TtEi2RZ5nhzSm78CbbIc1NYlb+89pmVBTqxuUMxNvXwuJBEldAy1KuiX8+IGA2iA4bN55SWmcZmESh1lyF+/LbVZmRZTnh8/UZmH4d9PK9XJk5WVVuNvGwHm12ye8yElWUSR5nVTU3AjbSRjfQuvlQPOsFcqnMXZL7cspYPqs/jMjpSK4WEhVL2XAhutQkjmgR6SLOEiL5NuB6y0dbwxwP50BZI/Wy9HVd6zd0Sfq5tMXGuWTO3ItGzRz7PNEp2DB1aKrbm1YoUIunA3tN+gwssOJrU2POPrLsNVhBye0m7/NeHObZzUtWiLZEP7iqZW0p/q2QnO04gftEmFwddGiA++g0loiqGNnxECzZKUzPV4dODiR8y9f1xKkAIszMi0v65rDHyIwcL6/Ed30u5LJU5IC6xYNAbv79P7Vkl80/yKRN/TwsDr9FZ5+ArwDl9tuAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.555Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.589Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY+UQBD9K6Y9CgxfAyyniYkmXtTEdRM1ZlNAMWm3PybdDbM44b9bDUxijLtevHW9qn79Xj24sDM2XE13aCzXitVsH2VlVLGAOVSgHCFGa0c1Kmemdx0BRZymVZJXPaR53sVxXLV52ZY3NMSf67+kY0JDUncoFqZevuUCCRK6BTrU9Er4+RMBrUFw2H3wktI4zcIkDrPkNi7rPKuzKiqKm680ZmH899DG9Xpi9WVTuM9j6PtmXyZ9VXiFVVK0SUPDHbcnAdN7kF4OdC8kV34b02mtfTkHTJ/Vf2akrfCer6RqECJg4zWUZFnQA9JDPQiL5NuBGyxd7wz0Pp0RxIDWy9HND2zdwW/ULbcvFOWjO/RadGiWtS+JzsGKq1WXpQCgERjyVqvIjke29R9w8u+g1OEJjmh3T8W7e5Jis8ol3d8R/upRCuqpQTZoDpb/pG5ZxUVwFS/RgRfeaC0Q1OFk+EgRstqZAa/CHRzJ8LfvWwmCg8UFmdcP6mr/L84NnO+e2dj8p5LZU5IC61YNAbv98vENEbbSRsufEXlH9/eb1d/h+RcBI+AKZQMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.589Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.491Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UMBT9K6Y+yjAUmKHD08REE1/UxHUTNZtNgcukbj9IW5jFCf/dW2ASs3HXF996T+89PeceuJAzVEKPt2CdMJqUZBdnRcxIRDxorj0i1hiPNWhvxw8NAvskTRnNWXtgLKdJkhwYrYs0xybx0v1rPFJsUqYBOTO16r2QgJA0NcdDia9svn5BoLbAPTSfgqQ0SbMNTTYZvUmKMs/KjMX7/eE7tjk+/Ltp5Xo7kvKyKtzlCW/balfQlu1RFmN0X9MKmxvhOsnHj1wFObx5pYQO2xi7pQ7lFBFz1v+ZEbciWrGQ6l7KiAzXUOi8oAfAh1ouHaBvz33vcLyxvA3pDFz24IIcU/2E2h/DRv08fcEoH/2xNbIBO699TnSKFlwvukTTxW44kRV9gDGwgzKbjp/AbZ8LdftkcLUlFE5tEX/zqCTe6V5VYI9O/MLbtGAFi65KFXgeVFbGSOD62FkxYF6k9LaHq0rPT+jux91acim4gxmZlq/n6vUvNi0/376wnumpkilQogLnFw0Rufn2+R0S1srF828QB0v396vXP+HpNwJaWRxSAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.491Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.493Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UQBD8K2Z8BZYBdiE8bUw08UVNPC9RYy4NNJvx5oPMDLvihv9uD7CJMd754tt0TU91VTVc2QUboad7tE4YzWq2T/IyqVjEPGrQnhBrjKcatbfT246AQ5plFS+qHrKi6NI0rdqibEugJvHc/Us6cmpSpkO5MPXqjZBIkDQt0KGmKfGnjwS0FsFj9z5IytIsj3ka5/wuLesir/MqOZTpF2pzcP5308b1amL1dVO4L1Lo+2Zf8r46BIUVP7S8oeZOuEHC9A5UkAPdCyV0SGMa1jqUc8TMRf9nRkpF9GIl1aOUETvflsKXgB6RBvUgHZJvD3509Lyz0IftnEGO6IIc03zH1h9Don55faVV/vDH3sgO7RL7stE5WnG96mqNUqMWfopFa3Qy6BPbGh5xCoNQmXiAE7rdU/vdPc2xmRWKCHYrrkfVoD068ZNueJlXWXTTrtBD0N0YIxH0cbDiTBtktbcj3nR7OJHfr9+2EqQAhwsyr9/Tzf1fjFu43D8T2PynkjlQkgLnVw0Ru/v84XVITblk+TESSZYeHjafv8PzLxXPRxJkAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.493Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.395Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdKkadKQU4UEEhdAYllpQWg1ScaVWX9UtpNuqPLfGSephBC7XMgh8rwZP783Y1/YGRuhx1u0ThjNalYk+T6pWMQ8atCeEGuMpxi1t+P7joAy3W6rbNekHacffVW1z4umpSLxXP4lLTMqUqZDOTNx9U5IJEiaFmhR0ynxl88EtBbBY/cxSNqm2zzO0jjPbtJ9vcvrvErK8vVXKnMw/Lto5XozsvqyKix2KXDeFPuMV+WsMCvbrKHiTriThPEDqCAHuhdK6NCN8bTEIZwiZs76PzNSVwQXC6nupYzYcB1KNjfoAekgDtIh+fbge0fbOws8TGcA2aMLckzzA1t/CB318+4LjfLRH7iRHdq57fNEp2jB9aJruQexNEeTuOHI1uwDjuEUVCY+wRHd5qnhbp4gWG0KRbs3hL96VJJyulcN2oMTPylbpEUeXYUr9BBEN8ZIBH04WTHQ+FjtbY9X0R6OZPbb9zUEKcDhjEzLZbpa/4trC+fbZ7o1/alkCpSkwPlFQ8Ru7j69JcJWuWR+FUlwdH+/Wv0dnn4BZemHZWEDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.395Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-10-31T07:49:50.908Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-10-31T07:49:50.892Z", - publishedOn: "2023-10-31T07:49:50.892Z", - pid: "6540b1816f87a60008837139", - locale: "en-US", - title: "Page With Form 2", - createdOn: "2023-10-31T07:49:48.113Z", - version: 2, - tags: [], - path: "/untitled-loe12uiu", - webinyVersion: "5.37.8", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - __type: "page", - id: "6540b1816f87a60008837139#0002", - titleLC: "page with form 2", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - tenant: "root", - status: "published", - latest: true - }, - SK: "L", - PK: "T#root#L#en-US#PB#P#6540b1816f87a60008837139", - _et: "PbPagesEs", - _ct: "2023-10-31T07:49:50.908Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-10-31T07:49:50.908Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-10-31T07:49:50.892Z", - publishedOn: "2023-10-31T07:49:50.892Z", - pid: "6540b1816f87a60008837139", - published: true, - locale: "en-US", - title: "Page With Form 2", - createdOn: "2023-10-31T07:49:48.113Z", - version: 2, - tags: [], - path: "/untitled-loe12uiu", - webinyVersion: "5.37.8", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - __type: "page", - id: "6540b1816f87a60008837139#0002", - titleLC: "page with form 2", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - tenant: "root", - status: "published" - }, - SK: "P", - PK: "T#root#L#en-US#PB#P#6540b1816f87a60008837139", - _et: "PbPagesEs", - _ct: "2023-10-31T07:49:50.908Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.569Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXYvbMBD8K0F9tR3LThyfn0Khhb60hV4PeqUca3sd1JMlI8lJ3eD/3pU/oJTe3cs9GKTRanZmVr6yC5ZCDXdorNCKFWwfpYcoZwFzqEA5QozWjvaonBk+1ARkcZLkfJdnWO94E8dxXlZJDTUViefO39CSU1Gra5QTU9O+FxIJkroCWhTUJfz6hYDKIDisP3lJSZykIY/DlN/Gh2KXFmkeZdnNPZVZOL9ctHC9HVhxXRTudzE0Tbk/8CbPvMKcZxUvqbgWtpMwfITWy4F60wrl0xi6ee+3Y8D0Rb0yI6UiGjGTql7KgJ3XofApoEekRg1Ii+TbgestXa8NNH46Z5A9Wi9Hlz+xckefqJtuX2mUv9yx0bJGM8U+TXQMZlzNuuZ3EFo01FaitWHV2qhTp82GLZWPOPiO2OqwgxPa7VOD3j5J5r+VbglAtMS1nXHVtyWaoxW/6YRThjd5sBpq0YE3U2otEdSxM+JMY2WFMz2uZhycKITvP5YtSAEWJ2ScH9kayX/SMHC5eybF8V8lo6ckBdbNGgJ2++3zOyL0Xqe/JZLk6eFhMfo3PP4BSdmIjHkDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.569Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.371Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Ty27UQBD8FTQc8Xr9WtvxaYUEUi4BiRAJIhS17fZqyDxWM2NvzMr/To/tlSJEwoXbdPWrqss+sxPWXI13aCzXilVsF6ZFWLKAOVSgHCFGa0cxKmfG65aAPEqSMs5q7DK4yqIoKuu0hsQ38dfyb+kZU5HULYp5Uic/coEECd0APSrasvn6hYDGIDhsP3lKSZSkmzjapPFtVFRZWqVlmOdX36nMwvDvonXW+5FV55XhLoug6+pdEXdl7hmWcd7ENRW33B4FjDcgPR1o30iu/DXG4xL7cAqYPqn/PJGuwju+DFW9EAEbLqbE84EekRZ1ICySbgeut9TeGui8OwOIHq2no+uf2Li9v6ibu89k5ZPbd1q0aOazz45OwYKrhReqgRutJNlsQzsc2Jp+xNGvQak3Rzig3b7k7valCatQLql9S/i7Jykop3pZo9lb/ouycZoUeRFcyEt04InXWgsEtT8aPpCFrHKmxwtxBwcSfP9jDUFwsDgj0/JBXeT/RbmB090rF5v+ZDL5kcTAuoVDwG6/ff5AAxtpw/nPCL2mh4dV7HN4+g3GapAtZQMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.371Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-10-31T07:43:39.471Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdI4adOQU4UEEhdAYllpQWg1iSeVWceubCfdUOW/M05SCaFluXDzvPnwe2/sCztjLfV4i9ZJo1nFdkm+T0oWMY8atCfEGuMpRu3t+F4QUKRZVvJtWaDY8jZN07JuMgENFcnn8i/pyKmoMwLVPKnt3kmFBCnTAB0quiX+8pmAxiJ4FB8DpSzN8pincc5v0n21zau8TIri9VcqczD8u2id9WZk1WVluNum0Lb1bs/bsggMS140vKZiId1JwfgBukAHxItO6uDGeFriEE4RM2f9nyeSK7KVy1DdKxWx4boUPhv0gHRRC8oh6fbge0ftwkIbtjOA6tEFOqb+gY0/BEf93H2hVT76Q2uUQDvbPm90ihZcL7wEeIhlY3TihiNbcw84hhR2Jj7BEd3mb6vdPNm+SpQd9W4If/XYKcrpvqvRHpz8Sdl9znd5dGXdoYfAuDZGIejDycqBdscqb3u8MvZwJKXfvq8hKAkOZ2RaXtJV9xOSLZxvn7Fq+pPJFEYSA+cXDhG7ufv0lgY2nUvmL5EESff3q9bf4ekXwxP9VF4DAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - _et: "CmsEntriesElasticsearch", - _ct: "2023-10-31T07:43:39.471Z" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.ddbPrimaryTableData.ts b/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.ddbPrimaryTableData.ts deleted file mode 100644 index dcc95176a62..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.ddbPrimaryTableData.ts +++ /dev/null @@ -1,5308 +0,0 @@ -export const createDdbPrimaryTableData = () => { - return [ - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page.l", - _md: "2023-10-31T07:43:40.791Z", - SK: "L", - publishedOn: "2023-10-31T07:43:40.674Z", - editor: "page-builder", - id: "6540b02b571f860008816c33#0001", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/welcome-to-webiny", - savedOn: "2023-10-31T07:43:40.674Z", - locale: "en-US", - pid: "6540b02b571f860008816c33", - _et: "PbPages", - _ct: "2023-10-31T07:43:40.791Z", - tenant: "root", - createdOn: "2023-10-31T07:43:39.911Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b02b571f860008816c33", - title: "Welcome to Webiny" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page.p", - _md: "2023-10-31T07:43:40.792Z", - SK: "P", - publishedOn: "2023-10-31T07:43:40.674Z", - id: "6540b02b571f860008816c33#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-10-31T07:43:40.674Z", - pid: "6540b02b571f860008816c33", - _et: "PbPages", - _ct: "2023-10-31T07:43:40.792Z", - tenant: "root", - createdOn: "2023-10-31T07:43:39.911Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b02b571f860008816c33", - title: "Welcome to Webiny" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page", - _md: "2023-10-31T07:43:40.791Z", - SK: "REV#0001", - publishedOn: "2023-10-31T07:43:40.674Z", - editor: "page-builder", - id: "6540b02b571f860008816c33#0001", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/welcome-to-webiny", - savedOn: "2023-10-31T07:43:40.674Z", - locale: "en-US", - pid: "6540b02b571f860008816c33", - _et: "PbPages", - _ct: "2023-10-31T07:43:40.791Z", - tenant: "root", - createdOn: "2023-10-31T07:43:39.911Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b02b571f860008816c33", - title: "Welcome to Webiny" - }, - { - savedOn: "2023-10-31T07:48:17.052Z", - locale: "en-US", - meta: { - submittedOn: "2023-10-31T07:48:16.770Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4", - query: {} - }, - ip: "0.0.0.0" - }, - _et: "FormBuilderSubmission", - _ct: "2023-10-31T07:48:17.187Z", - TYPE: "fb.formSubmission", - tenant: "root", - _md: "2023-10-31T07:48:17.187Z", - createdOn: "2023-10-31T07:48:17.052Z", - data: { - firstName: "fname1", - lastName: "lname1", - jobTitle: "job1" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "FS#6540b1416f87a60008837135", - form: { - name: "Form1 v2", - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - parent: "6540b090571f860008816c36", - id: "6540b090571f860008816c36#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - id: "6540b1416f87a60008837135", - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36" - }, - { - savedOn: "2023-10-31T07:48:25.052Z", - locale: "en-US", - meta: { - submittedOn: "2023-10-31T07:48:24.791Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4", - query: {} - }, - ip: "0.0.0.0" - }, - _et: "FormBuilderSubmission", - _ct: "2023-10-31T07:48:25.247Z", - TYPE: "fb.formSubmission", - tenant: "root", - _md: "2023-10-31T07:48:25.247Z", - createdOn: "2023-10-31T07:48:25.052Z", - data: { - firstName: "fname2", - lastName: "lname2", - jobTitle: "job2" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "FS#6540b1496f87a60008837136", - form: { - name: "Form1 v2", - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - parent: "6540b090571f860008816c36", - id: "6540b090571f860008816c36#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - id: "6540b1496f87a60008837136", - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36" - }, - { - savedOn: "2023-10-31T07:48:33.508Z", - locale: "en-US", - meta: { - submittedOn: "2023-10-31T07:48:33.211Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4", - query: {} - }, - ip: "0.0.0.0" - }, - _et: "FormBuilderSubmission", - _ct: "2023-10-31T07:48:33.611Z", - TYPE: "fb.formSubmission", - tenant: "root", - _md: "2023-10-31T07:48:33.611Z", - createdOn: "2023-10-31T07:48:33.508Z", - data: { - firstName: "fname3", - lastName: "lname3", - jobTitle: "job3" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "FS#6540b1516f87a60008837137", - form: { - name: "Form1 v2", - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - parent: "6540b090571f860008816c36", - id: "6540b090571f860008816c36#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - id: "6540b1516f87a60008837137", - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36" - }, - { - stats: { - submissions: 3, - views: 2 - }, - published: true, - formId: "6540b090571f860008816c36", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - name: "Form1 v2", - TYPE: "fb.form.latest", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - _md: "2023-10-31T07:48:33.551Z", - SK: "L", - publishedOn: "2023-10-31T07:45:50.290Z", - id: "6540b090571f860008816c36#0002", - version: 2, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-31T07:45:50.290Z", - slug: "form1-6540b090571f860008816c36", - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - _et: "FormBuilderForm", - _ct: "2023-10-31T07:48:33.551Z", - tenant: "root", - createdOn: "2023-10-31T07:45:40.110Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36" - }, - { - stats: { - submissions: 0, - views: 0 - }, - published: true, - formId: "6540b090571f860008816c36", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - name: "Form1 v2", - TYPE: "fb.form.latestPublished", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - _md: "2023-10-31T07:45:50.312Z", - SK: "LP", - publishedOn: "2023-10-31T07:45:50.290Z", - id: "6540b090571f860008816c36#0002", - version: 2, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-31T07:45:50.290Z", - slug: "form1-6540b090571f860008816c36", - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - _et: "FormBuilderForm", - _ct: "2023-10-31T07:45:50.312Z", - tenant: "root", - createdOn: "2023-10-31T07:45:40.110Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36" - }, - { - stats: { - views: 0, - submissions: 0 - }, - published: true, - formId: "6540b090571f860008816c36", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - name: "Form1", - TYPE: "fb.form", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - _md: "2023-10-31T07:45:32.895Z", - SK: "REV#0001", - publishedOn: "2023-10-31T07:45:32.890Z", - id: "6540b090571f860008816c36#0001", - version: 1, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-31T07:45:32.890Z", - slug: "form1-6540b090571f860008816c36", - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"]], - _et: "FormBuilderForm", - _ct: "2023-10-31T07:45:32.895Z", - tenant: "root", - createdOn: "2023-10-31T07:45:20.730Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36" - }, - { - stats: { - submissions: 3, - views: 2 - }, - published: true, - formId: "6540b090571f860008816c36", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - name: "Form1 v2", - TYPE: "fb.form", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - _md: "2023-10-31T07:48:33.551Z", - SK: "REV#0002", - publishedOn: "2023-10-31T07:45:50.290Z", - id: "6540b090571f860008816c36#0002", - version: 2, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-31T07:45:50.290Z", - slug: "form1-6540b090571f860008816c36", - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - _et: "FormBuilderForm", - _ct: "2023-10-31T07:48:33.551Z", - tenant: "root", - createdOn: "2023-10-31T07:45:40.110Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page.l", - _md: "2023-10-31T07:43:40.610Z", - SK: "L", - publishedOn: "2023-10-31T07:43:40.608Z", - editor: "page-builder", - id: "6540b02b571f860008816c32#0001", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/not-found", - savedOn: "2023-10-31T07:43:40.608Z", - locale: "en-US", - pid: "6540b02b571f860008816c32", - _et: "PbPages", - _ct: "2023-10-31T07:43:40.610Z", - tenant: "root", - createdOn: "2023-10-31T07:43:39.890Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b02b571f860008816c32", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page.p", - _md: "2023-10-31T07:43:40.612Z", - SK: "P", - publishedOn: "2023-10-31T07:43:40.608Z", - id: "6540b02b571f860008816c32#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-10-31T07:43:40.608Z", - pid: "6540b02b571f860008816c32", - _et: "PbPages", - _ct: "2023-10-31T07:43:40.612Z", - tenant: "root", - createdOn: "2023-10-31T07:43:39.890Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b02b571f860008816c32", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page", - _md: "2023-10-31T07:43:40.610Z", - SK: "REV#0001", - publishedOn: "2023-10-31T07:43:40.608Z", - editor: "page-builder", - id: "6540b02b571f860008816c32#0001", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/not-found", - savedOn: "2023-10-31T07:43:40.608Z", - locale: "en-US", - pid: "6540b02b571f860008816c32", - _et: "PbPages", - _ct: "2023-10-31T07:43:40.610Z", - tenant: "root", - createdOn: "2023-10-31T07:43:39.890Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b02b571f860008816c32", - title: "Not Found" - }, - { - _md: "2023-10-31T07:49:55.245Z", - data: { - path: "/untitled-loe12uiu", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { - value: "6540b1816f87a60008837139#0002", - key: "pb-page" - }, - { - value: "main-menu", - key: "pb-menu" - }, - { - value: "6540b1636f87a60008837138", - key: "fb-form" - } - ] - } - }, - { - name: "graphql.json", - type: "application/json", - meta: {} - } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/untitled-loe12uiu", - SK: "A", - PK: "T#root#PS#RENDER#/untitled-loe12uiu", - _et: "PrerenderingServiceRender", - _ct: "2023-10-31T07:49:55.245Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - _md: "2023-10-31T07:43:55.111Z", - data: { - path: "/welcome-to-webiny", - value: "6540b02b571f860008816c33#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#6540b02b571f860008816c33#0001#/welcome-to-webiny", - SK: "6540b02b571f860008816c33#0001#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-page#6540b02b571f860008816c33#0001#/welcome-to-webiny", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-31T07:43:55.111Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - locale: "en-US", - slug: "static", - layout: "static", - url: "/static/", - _et: "PbCategories", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - name: "Static", - _ct: "2023-10-31T07:43:37.689Z", - TYPE: "pb.category", - tenant: "root", - _md: "2023-10-31T07:43:37.689Z", - createdOn: "2023-10-31T07:43:37.689Z", - SK: "static", - PK: "T#root#L#en-US#PB#C" - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:47:59.874Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540affb571f860008816c1b" - }, - "text@id": "6540b11c6f87a60008837133#0001", - "text@title": "Page With Form", - "boolean@locked": true, - "datetime@createdOn": "2023-10-31T07:47:40.147Z", - "text@status": "published", - "text@path": "/untitled-loe10oo4", - "text@pid": "6540b11c6f87a60008837133", - "datetime@savedOn": "2023-10-31T07:47:59.608Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Page With Form", - "text@content": "Page With Form", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:47:59.887Z", - TYPE: "L", - entryId: "wby-aco-6540b11c6f87a60008837133", - tenant: "root", - _md: "2023-10-31T07:47:59.887Z", - createdOn: "2023-10-31T07:47:40.210Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "wby-aco-6540b11c6f87a60008837133#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-6540b11c6f87a60008837133", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - } - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:47:59.874Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540affb571f860008816c1b" - }, - "text@id": "6540b11c6f87a60008837133#0001", - "text@title": "Page With Form", - "boolean@locked": true, - "datetime@createdOn": "2023-10-31T07:47:40.147Z", - "text@status": "published", - "text@path": "/untitled-loe10oo4", - "text@pid": "6540b11c6f87a60008837133", - "datetime@savedOn": "2023-10-31T07:47:59.608Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Page With Form", - "text@content": "Page With Form", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:47:59.886Z", - TYPE: "cms.entry", - entryId: "wby-aco-6540b11c6f87a60008837133", - tenant: "root", - _md: "2023-10-31T07:47:59.886Z", - createdOn: "2023-10-31T07:47:40.210Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "wby-aco-6540b11c6f87a60008837133#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-6540b11c6f87a60008837133", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - } - }, - { - locale: "en-US", - slug: "main-menu", - _et: "PbMenus", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - items: [], - _ct: "2023-10-31T07:43:39.776Z", - TYPE: "pb.menu", - tenant: "root", - _md: "2023-10-31T07:43:39.776Z", - createdOn: "2023-10-31T07:43:39.776Z", - SK: "main-menu", - description: "The main menu of the website, containing links to most important pages.", - PK: "T#root#L#en-US#PB#M", - title: "Main Menu" - }, - { - tenant: "root", - _md: "2023-10-31T07:43:51.450Z", - locale: "en-US", - reCaptcha: { - secretKey: null, - enabled: null, - siteKey: null - }, - SK: "default", - PK: "T#root#L#en-US#FB#SETTINGS", - _et: "FormBuilderSettings", - _ct: "2023-10-31T07:43:51.450Z", - domain: "https://d3jgj5hx8me6qu.cloudfront.net" - }, - { - _md: "2023-10-31T07:44:03.614Z", - data: { - path: "/", - value: "main-menu", - tenant: "root", - key: "pb-menu" - }, - GSI1_SK: "pb-menu#main-menu#/", - SK: "main-menu#/", - PK: "T#root#PS#TAG#pb-menu#main-menu#/", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-31T07:44:03.614Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - _md: "2023-10-31T07:49:55.313Z", - data: { - path: "/untitled-loe12uiu", - value: "6540b1816f87a60008837139#0002", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#6540b1816f87a60008837139#0002#/untitled-loe12uiu", - SK: "6540b1816f87a60008837139#0002#/untitled-loe12uiu", - PK: "T#root#PS#TAG#pb-page#6540b1816f87a60008837139#0002#/untitled-loe12uiu", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-31T07:49:55.313Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814bef4a940008b3ba27/security.svg", - "text@aliases": [], - "number@size": 17711, - "text@name": "security.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.972Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba27", - tenant: "root", - _md: "2023-10-31T07:43:38.972Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814bef4a940008b3ba27#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814bef4a940008b3ba27/security.svg", - "text@aliases": [], - "number@size": 17711, - "text@name": "security.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.971Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba27", - tenant: "root", - _md: "2023-10-31T07:43:38.971Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814bef4a940008b3ba27#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.670Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228145f98841000981c721/developer.svg", - "text@aliases": [], - "number@size": 27804, - "text@name": "developer.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.129Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c721", - tenant: "root", - _md: "2023-10-31T07:43:39.129Z", - createdOn: "2023-10-31T07:43:38.670Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228145f98841000981c721#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.670Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228145f98841000981c721/developer.svg", - "text@aliases": [], - "number@size": 27804, - "text@name": "developer.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.129Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c721", - tenant: "root", - _md: "2023-10-31T07:43:39.129Z", - createdOn: "2023-10-31T07:43:38.670Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228145f98841000981c721#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721" - }, - { - tenant: "root", - version: "5.37.8", - _md: "2023-10-31T07:42:52.321Z", - SK: "ADMIN_USERS", - PK: "T#root#SYSTEM", - _et: "AdminUsers.System", - _ct: "2023-10-31T07:42:52.321Z", - TYPE: "adminUsers.system" - }, - { - tenant: "root", - version: "5.37.8", - _md: "2023-10-31T07:43:15.516Z", - SK: "CMS", - PK: "T#root#SYSTEM", - _et: "CmsSystem", - _ct: "2023-10-31T07:43:15.516Z" - }, - { - tenant: "root", - version: "5.37.8", - _md: "2023-10-31T07:43:51.469Z", - SK: "FB", - PK: "T#root#SYSTEM", - _et: "FormBuilderSystem", - _ct: "2023-10-31T07:43:51.469Z" - }, - { - tenant: "root", - version: "5.37.8", - _md: "2023-10-31T07:43:20.419Z", - SK: "FM", - PK: "T#root#SYSTEM", - _et: "System", - _ct: "2023-10-31T07:43:20.419Z" - }, - { - tenant: "root", - version: "5.37.8", - _md: "2023-10-31T07:43:03.817Z", - SK: "I18N", - PK: "T#root#SYSTEM", - _et: "I18NSystem", - _ct: "2023-10-31T07:43:03.817Z" - }, - { - tenant: "root", - version: "5.37.8", - _md: "2023-10-31T07:43:41.156Z", - SK: "PB", - PK: "T#root#SYSTEM", - _et: "PbSystem", - _ct: "2023-10-31T07:43:41.156Z" - }, - { - tenant: "root", - version: "5.37.8", - installedOn: "2023-10-31T07:42:35.750Z", - _md: "2023-10-31T07:42:35.750Z", - SK: "SECURITY", - PK: "T#root#SYSTEM", - _et: "SecuritySystem", - _ct: "2023-10-31T07:42:35.750Z" - }, - { - version: "5.37.8", - _md: "2023-10-31T07:42:31.370Z", - SK: "TENANCY", - PK: "T#root#SYSTEM", - _et: "TenancySystem", - _ct: "2023-10-31T07:42:31.370Z" - }, - { - _md: "2023-10-31T07:48:04.038Z", - data: { - path: "/untitled-loe10oo4", - value: "6540b11c6f87a60008837133#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#6540b11c6f87a60008837133#0001#/untitled-loe10oo4", - SK: "6540b11c6f87a60008837133#0001#/untitled-loe10oo4", - PK: "T#root#PS#TAG#pb-page#6540b11c6f87a60008837133#0001#/untitled-loe10oo4", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-31T07:48:04.038Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814b7a77e60008f70d62/hero-block-bg.svg", - "text@aliases": [], - "number@size": 1864, - "text@name": "hero-block-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.889Z", - TYPE: "cms.entry.l", - entryId: "6022814b7a77e60008f70d62", - tenant: "root", - _md: "2023-10-31T07:43:38.889Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814b7a77e60008f70d62#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814b7a77e60008f70d62/hero-block-bg.svg", - "text@aliases": [], - "number@size": 1864, - "text@name": "hero-block-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.889Z", - TYPE: "cms.entry", - entryId: "6022814b7a77e60008f70d62", - tenant: "root", - _md: "2023-10-31T07:43:38.889Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814b7a77e60008f70d62#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62" - }, - { - _md: "2023-10-31T07:43:59.239Z", - data: { - path: "/not-found", - value: "6540b02b571f860008816c32#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#6540b02b571f860008816c32#0001#/not-found", - SK: "6540b02b571f860008816c32#0001#/not-found", - PK: "T#root#PS#TAG#pb-page#6540b02b571f860008816c32#0001#/not-found", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-31T07:43:59.239Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602282e07a77e60008f70d63/feature-card-bg.svg", - "text@aliases": [], - "number@size": 888, - "text@name": "feature-card-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.909Z", - TYPE: "cms.entry.l", - entryId: "602282e07a77e60008f70d63", - tenant: "root", - _md: "2023-10-31T07:43:38.909Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "602282e07a77e60008f70d63#0001", - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602282e07a77e60008f70d63/feature-card-bg.svg", - "text@aliases": [], - "number@size": 888, - "text@name": "feature-card-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.909Z", - TYPE: "cms.entry", - entryId: "602282e07a77e60008f70d63", - tenant: "root", - _md: "2023-10-31T07:43:38.909Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "602282e07a77e60008f70d63#0001", - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63" - }, - { - _md: "2023-10-31T07:43:55.111Z", - data: { - path: "/welcome-to-webiny", - value: "main-menu", - tenant: "root", - key: "pb-menu" - }, - GSI1_SK: "pb-menu#main-menu#/welcome-to-webiny", - SK: "main-menu#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-menu#main-menu#/welcome-to-webiny", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-31T07:43:55.111Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - _md: "2023-10-30T20:41:38.116Z", - data: { - context: { - logGroupName: "/aws/lambda/wby-data-migration-e07c2e4", - logStreamName: "2023/10/30/[$LATEST]f07bb5298b3e4c8c99869fcc078e1bec" - }, - id: "654015021d02c2000845ffd5", - finishedOn: "2023-10-30T20:41:38.116Z", - startedOn: "2023-10-30T20:41:38.032Z", - migrations: [ - { - id: "5.35.0-001", - status: "not-applicable" - }, - { - id: "5.35.0-002", - status: "not-applicable" - }, - { - id: "5.35.0-003", - status: "not-applicable" - }, - { - id: "5.35.0-004", - status: "not-applicable" - }, - { - id: "5.35.0-005", - status: "not-applicable" - }, - { - id: "5.35.0-006", - status: "not-applicable" - }, - { - id: "5.36.0-001", - status: "not-applicable" - }, - { - id: "5.37.0-001", - status: "not-applicable" - }, - { - id: "5.37.0-002", - status: "not-applicable" - }, - { - id: "5.37.0-003", - status: "not-applicable" - }, - { - id: "5.37.0-004", - status: "not-applicable" - }, - { - id: "5.37.0-005", - status: "not-applicable" - } - ], - status: "done" - }, - GSI1_SK: "654015021d02c2000845ffd5", - SK: "A", - PK: "MIGRATION_RUN#654015021d02c2000845ffd5", - _et: "MigrationRun", - _ct: "2023-10-30T20:41:38.116Z", - TYPE: "migration.run", - GSI1_PK: "MIGRATION_RUNS" - }, - { - savedOn: "2023-10-31T07:50:10.335Z", - locale: "en-US", - meta: { - submittedOn: "2023-10-31T07:50:10.082Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu", - query: {} - }, - ip: "0.0.0.0" - }, - _et: "FormBuilderSubmission", - _ct: "2023-10-31T07:50:10.439Z", - TYPE: "fb.formSubmission", - tenant: "root", - _md: "2023-10-31T07:50:10.439Z", - createdOn: "2023-10-31T07:50:10.335Z", - data: { - firstName: "fname1", - lastName: "lname1" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "FS#6540b1b2571f860008816c37", - form: { - name: "Form2", - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - parent: "6540b1636f87a60008837138", - id: "6540b1636f87a60008837138#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - id: "6540b1b2571f860008816c37", - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138" - }, - { - savedOn: "2023-10-31T07:50:16.733Z", - locale: "en-US", - meta: { - submittedOn: "2023-10-31T07:50:16.498Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu", - query: {} - }, - ip: "0.0.0.0" - }, - _et: "FormBuilderSubmission", - _ct: "2023-10-31T07:50:16.833Z", - TYPE: "fb.formSubmission", - tenant: "root", - _md: "2023-10-31T07:50:16.833Z", - createdOn: "2023-10-31T07:50:16.733Z", - data: { - firstName: "fname2", - lastName: "lname2" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "FS#6540b1b8571f860008816c38", - form: { - name: "Form2", - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - parent: "6540b1636f87a60008837138", - id: "6540b1636f87a60008837138#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - id: "6540b1b8571f860008816c38", - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138" - }, - { - savedOn: "2023-10-31T07:50:23.198Z", - locale: "en-US", - meta: { - submittedOn: "2023-10-31T07:50:22.947Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu", - query: {} - }, - ip: "0.0.0.0" - }, - _et: "FormBuilderSubmission", - _ct: "2023-10-31T07:50:23.298Z", - TYPE: "fb.formSubmission", - tenant: "root", - _md: "2023-10-31T07:50:23.298Z", - createdOn: "2023-10-31T07:50:23.198Z", - data: { - firstName: "fname3", - lastName: "lname3" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "FS#6540b1bf571f860008816c39", - form: { - name: "Form2", - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - parent: "6540b1636f87a60008837138", - id: "6540b1636f87a60008837138#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - id: "6540b1bf571f860008816c39", - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138" - }, - { - stats: { - views: 3, - submissions: 3 - }, - published: true, - formId: "6540b1636f87a60008837138", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - name: "Form2", - TYPE: "fb.form.latest", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - _md: "2023-10-31T07:50:23.254Z", - SK: "L", - publishedOn: "2023-10-31T07:49:04.307Z", - id: "6540b1636f87a60008837138#0001", - version: 1, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-31T07:49:04.307Z", - slug: "form2-6540b1636f87a60008837138", - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - _et: "FormBuilderForm", - _ct: "2023-10-31T07:50:23.254Z", - tenant: "root", - createdOn: "2023-10-31T07:48:51.471Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138" - }, - { - stats: { - views: 0, - submissions: 0 - }, - published: true, - formId: "6540b1636f87a60008837138", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - name: "Form2", - TYPE: "fb.form.latestPublished", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - _md: "2023-10-31T07:49:04.328Z", - SK: "LP", - publishedOn: "2023-10-31T07:49:04.307Z", - id: "6540b1636f87a60008837138#0001", - version: 1, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-31T07:49:04.307Z", - slug: "form2-6540b1636f87a60008837138", - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - _et: "FormBuilderForm", - _ct: "2023-10-31T07:49:04.328Z", - tenant: "root", - createdOn: "2023-10-31T07:48:51.471Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138" - }, - { - stats: { - views: 3, - submissions: 3 - }, - published: true, - formId: "6540b1636f87a60008837138", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - name: "Form2", - TYPE: "fb.form", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - _md: "2023-10-31T07:50:23.253Z", - SK: "REV#0001", - publishedOn: "2023-10-31T07:49:04.307Z", - id: "6540b1636f87a60008837138#0001", - version: 1, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-31T07:49:04.307Z", - slug: "form2-6540b1636f87a60008837138", - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - _et: "FormBuilderForm", - _ct: "2023-10-31T07:50:23.253Z", - tenant: "root", - createdOn: "2023-10-31T07:48:51.471Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138" - }, - { - _md: "2023-10-31T07:48:04.038Z", - data: { - path: "/untitled-loe10oo4", - value: "main-menu", - tenant: "root", - key: "pb-menu" - }, - GSI1_SK: "pb-menu#main-menu#/untitled-loe10oo4", - SK: "main-menu#/untitled-loe10oo4", - PK: "T#root#PS#TAG#pb-menu#main-menu#/untitled-loe10oo4", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-31T07:48:04.038Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228145f98841000981c720/adaptable-icon.svg", - "text@aliases": [], - "number@size": 28918, - "text@name": "adaptable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.070Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c720", - tenant: "root", - _md: "2023-10-31T07:43:39.070Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228145f98841000981c720#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228145f98841000981c720/adaptable-icon.svg", - "text@aliases": [], - "number@size": 28918, - "text@name": "adaptable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.070Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c720", - tenant: "root", - _md: "2023-10-31T07:43:39.070Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228145f98841000981c720#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.670Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486ed41f0008bc2dab/permission-icon.svg", - "text@aliases": [], - "number@size": 67402, - "text@name": "permission-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.211Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dab", - tenant: "root", - _md: "2023-10-31T07:43:39.211Z", - createdOn: "2023-10-31T07:43:38.670Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "602281486ed41f0008bc2dab#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.670Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486ed41f0008bc2dab/permission-icon.svg", - "text@aliases": [], - "number@size": 67402, - "text@name": "permission-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.211Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dab", - tenant: "root", - _md: "2023-10-31T07:43:39.211Z", - createdOn: "2023-10-31T07:43:38.670Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "602281486ed41f0008bc2dab#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab" - }, - { - permissions: [ - { - name: "*" - } - ], - slug: "full-access", - _et: "SecurityGroup", - name: "Full Access", - _ct: "2023-10-31T07:42:35.609Z", - TYPE: "security.group", - tenant: "root", - system: true, - _md: "2023-10-31T07:42:35.609Z", - createdOn: "2023-10-31T07:42:35.608Z", - GSI1_SK: "full-access", - SK: "A", - description: "Grants full access to all apps.", - webinyVersion: "5.37.8", - id: "6540afeb571f860008816c19", - PK: "T#root#GROUP#6540afeb571f860008816c19", - GSI1_PK: "T#root#GROUPS" - }, - { - SK: "default", - eventTargetId: "wby-apw-scheduler-event-rule-target-2adc31a", - PK: "APW#SETTINGS", - mainGraphqlFunctionArn: - "arn:aws:lambda:eu-central-1:674320871285:function:wby-graphql-f390d6f", - eventRuleName: "wby-apw-scheduler-event-rule-33dac5e" - }, - { - _md: "2023-10-31T07:44:03.584Z", - data: { - path: "/", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { - value: "6540b02b571f860008816c33#0001", - key: "pb-page" - }, - { - value: "main-menu", - key: "pb-menu" - } - ] - } - }, - { - name: "graphql.json", - type: "application/json", - meta: {} - } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/", - SK: "A", - PK: "T#root#PS#RENDER#/", - _et: "PrerenderingServiceRender", - _ct: "2023-10-31T07:44:03.584Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - _md: "2023-10-30T20:41:38.090Z", - data: { - description: "starting point for applicable migrations detection", - reason: "initial migration", - id: "5.37.8-000", - finishedOn: "2023-10-30T20:41:38.090Z", - startedOn: "2023-10-30T20:41:38.090Z" - }, - GSI1_SK: "5.37.8-000", - SK: "A", - PK: "MIGRATION#5.37.8-000", - _et: "Migration", - _ct: "2023-10-30T20:41:38.090Z", - TYPE: "migration", - GSI1_PK: "MIGRATIONS" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814bef4a940008b3ba26/scaffolding.svg", - "text@aliases": [], - "number@size": 33888, - "text@name": "scaffolding.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.008Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba26", - tenant: "root", - _md: "2023-10-31T07:43:39.008Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814bef4a940008b3ba26#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814bef4a940008b3ba26/scaffolding.svg", - "text@aliases": [], - "number@size": 33888, - "text@name": "scaffolding.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.992Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba26", - tenant: "root", - _md: "2023-10-31T07:43:38.992Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814bef4a940008b3ba26#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26" - }, - { - _md: "2023-10-31T07:43:59.180Z", - data: { - path: "/not-found", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { - value: "6540b02b571f860008816c32#0001", - key: "pb-page" - }, - { - value: "main-menu", - key: "pb-menu" - } - ] - } - }, - { - name: "graphql.json", - type: "application/json", - meta: {} - } - ], - locale: "en-US", - tenant: "root", - tags: [ - { - value: true, - key: "notFoundPage" - } - ] - }, - GSI1_SK: "/not-found", - SK: "A", - PK: "T#root#PS#RENDER#/not-found", - _et: "PrerenderingServiceRender", - _ct: "2023-10-31T07:43:59.180Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814851197600081724ae/cost-icon.svg", - "text@aliases": [], - "number@size": 60602, - "text@name": "cost-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.074Z", - TYPE: "cms.entry.l", - entryId: "6022814851197600081724ae", - tenant: "root", - _md: "2023-10-31T07:43:39.074Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814851197600081724ae#0001", - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814851197600081724ae/cost-icon.svg", - "text@aliases": [], - "number@size": 60602, - "text@name": "cost-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.074Z", - TYPE: "cms.entry", - entryId: "6022814851197600081724ae", - tenant: "root", - _md: "2023-10-31T07:43:39.074Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814851197600081724ae#0001", - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae" - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:49:51.052Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 2, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540affb571f860008816c1b" - }, - "text@id": "6540b1816f87a60008837139#0002", - "text@title": "Page With Form 2", - "boolean@locked": true, - "datetime@createdOn": "2023-10-31T07:49:48.113Z", - "text@status": "published", - "text@path": "/untitled-loe12uiu", - "text@pid": "6540b1816f87a60008837139", - "datetime@savedOn": "2023-10-31T07:49:50.892Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Page With Form 2", - "text@content": "Page With Form 2", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:49:51.057Z", - TYPE: "L", - entryId: "wby-aco-6540b1816f87a60008837139", - tenant: "root", - _md: "2023-10-31T07:49:51.057Z", - createdOn: "2023-10-31T07:49:21.068Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "wby-aco-6540b1816f87a60008837139#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-6540b1816f87a60008837139", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - } - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:49:51.052Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 2, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540affb571f860008816c1b" - }, - "text@id": "6540b1816f87a60008837139#0002", - "text@title": "Page With Form 2", - "boolean@locked": true, - "datetime@createdOn": "2023-10-31T07:49:48.113Z", - "text@status": "published", - "text@path": "/untitled-loe12uiu", - "text@pid": "6540b1816f87a60008837139", - "datetime@savedOn": "2023-10-31T07:49:50.892Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Page With Form 2", - "text@content": "Page With Form 2", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:49:51.057Z", - TYPE: "cms.entry", - entryId: "wby-aco-6540b1816f87a60008837139", - tenant: "root", - _md: "2023-10-31T07:49:51.057Z", - createdOn: "2023-10-31T07:49:21.068Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "wby-aco-6540b1816f87a60008837139#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-6540b1816f87a60008837139", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - } - }, - { - _md: "2023-10-31T07:44:03.614Z", - data: { - path: "/", - value: "6540b02b571f860008816c33#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#6540b02b571f860008816c33#0001#/", - SK: "6540b02b571f860008816c33#0001#/", - PK: "T#root#PS#TAG#pb-page#6540b02b571f860008816c33#0001#/", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-31T07:44:03.614Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - _md: "2023-10-31T07:48:04.038Z", - data: { - path: "/untitled-loe10oo4", - value: "6540b090571f860008816c36", - tenant: "root", - key: "fb-form" - }, - GSI1_SK: "fb-form#6540b090571f860008816c36#/untitled-loe10oo4", - SK: "6540b090571f860008816c36#/untitled-loe10oo4", - PK: "T#root#PS#TAG#fb-form#6540b090571f860008816c36#/untitled-loe10oo4", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-31T07:48:04.038Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:40.930Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540affb571f860008816c1b" - }, - "text@id": "6540b02b571f860008816c32#0001", - "text@title": "Not Found", - "boolean@locked": true, - "datetime@createdOn": "2023-10-31T07:43:39.890Z", - "text@status": "published", - "text@path": "/not-found", - "text@pid": "6540b02b571f860008816c32", - "datetime@savedOn": "2023-10-31T07:43:40.608Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:40.948Z", - TYPE: "L", - entryId: "wby-aco-6540b02b571f860008816c32", - tenant: "root", - _md: "2023-10-31T07:43:40.948Z", - createdOn: "2023-10-31T07:43:39.948Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "wby-aco-6540b02b571f860008816c32#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-6540b02b571f860008816c32", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - } - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:40.930Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540affb571f860008816c1b" - }, - "text@id": "6540b02b571f860008816c32#0001", - "text@title": "Not Found", - "boolean@locked": true, - "datetime@createdOn": "2023-10-31T07:43:39.890Z", - "text@status": "published", - "text@path": "/not-found", - "text@pid": "6540b02b571f860008816c32", - "datetime@savedOn": "2023-10-31T07:43:40.608Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:40.936Z", - TYPE: "cms.entry", - entryId: "wby-aco-6540b02b571f860008816c32", - tenant: "root", - _md: "2023-10-31T07:43:40.936Z", - createdOn: "2023-10-31T07:43:39.948Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "wby-aco-6540b02b571f860008816c32#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-6540b02b571f860008816c32", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - } - }, - { - _md: "2023-10-31T07:49:55.313Z", - data: { - path: "/untitled-loe12uiu", - value: "main-menu", - tenant: "root", - key: "pb-menu" - }, - GSI1_SK: "pb-menu#main-menu#/untitled-loe12uiu", - SK: "main-menu#/untitled-loe12uiu", - PK: "T#root#PS#TAG#pb-menu#main-menu#/untitled-loe12uiu", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-31T07:49:55.313Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - icon: "fas/star", - savedOn: "2023-10-31T07:43:15.488Z", - locale: "en-US", - slug: "ungrouped", - _et: "CmsGroups", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - name: "Ungrouped", - _ct: "2023-10-31T07:43:15.509Z", - TYPE: "cms.group", - tenant: "root", - _md: "2023-10-31T07:43:15.509Z", - createdOn: "2023-10-31T07:43:15.488Z", - SK: "6540b013571f860008816c1c", - description: "A generic content model group", - webinyVersion: "5.37.8", - id: "6540b013571f860008816c1c", - PK: "T#root#L#en-US#CMS#CMG" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": - "demo-pages/6022814a0df4b000088735bb/webiny-serverless-application-framework.svg", - "text@aliases": [], - "number@size": 3661, - "text@name": "webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.929Z", - TYPE: "cms.entry.l", - entryId: "6022814a0df4b000088735bb", - tenant: "root", - _md: "2023-10-31T07:43:38.929Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814a0df4b000088735bb#0001", - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": - "demo-pages/6022814a0df4b000088735bb/webiny-serverless-application-framework.svg", - "text@aliases": [], - "number@size": 3661, - "text@name": "webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.928Z", - TYPE: "cms.entry", - entryId: "6022814a0df4b000088735bb", - tenant: "root", - _md: "2023-10-31T07:43:38.928Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814a0df4b000088735bb#0001", - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb" - }, - { - _md: "2023-10-31T07:43:55.082Z", - data: { - path: "/welcome-to-webiny", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { - value: "6540b02b571f860008816c33#0001", - key: "pb-page" - }, - { - value: "main-menu", - key: "pb-menu" - } - ] - } - }, - { - name: "graphql.json", - type: "application/json", - meta: {} - } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/welcome-to-webiny", - SK: "A", - PK: "T#root#PS#RENDER#/welcome-to-webiny", - _et: "PrerenderingServiceRender", - _ct: "2023-10-31T07:43:55.082Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148f98841000981c723/pink-shape.svg", - "text@aliases": [], - "number@size": 390, - "text@name": "pink-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.951Z", - TYPE: "cms.entry.l", - entryId: "60228148f98841000981c723", - tenant: "root", - _md: "2023-10-31T07:43:38.951Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228148f98841000981c723#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148f98841000981c723/pink-shape.svg", - "text@aliases": [], - "number@size": 390, - "text@name": "pink-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.951Z", - TYPE: "cms.entry", - entryId: "60228148f98841000981c723", - tenant: "root", - _md: "2023-10-31T07:43:38.951Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228148f98841000981c723#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page.l", - _md: "2023-10-31T07:47:59.647Z", - SK: "L", - publishedOn: "2023-10-31T07:47:59.608Z", - editor: "page-builder", - id: "6540b11c6f87a60008837133#0001", - version: 1, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-loe10oo4", - savedOn: "2023-10-31T07:47:59.608Z", - locale: "en-US", - pid: "6540b11c6f87a60008837133", - _et: "PbPages", - _ct: "2023-10-31T07:47:59.647Z", - tenant: "root", - createdOn: "2023-10-31T07:47:40.147Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b11c6f87a60008837133", - title: "Page With Form" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page.p", - _md: "2023-10-31T07:47:59.665Z", - SK: "P", - publishedOn: "2023-10-31T07:47:59.608Z", - id: "6540b11c6f87a60008837133#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-loe10oo4", - locale: "en-US", - savedOn: "2023-10-31T07:47:59.608Z", - pid: "6540b11c6f87a60008837133", - _et: "PbPages", - _ct: "2023-10-31T07:47:59.665Z", - tenant: "root", - createdOn: "2023-10-31T07:47:40.147Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b11c6f87a60008837133", - title: "Page With Form" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page", - _md: "2023-10-31T07:47:59.647Z", - SK: "REV#0001", - publishedOn: "2023-10-31T07:47:59.608Z", - editor: "page-builder", - id: "6540b11c6f87a60008837133#0001", - version: 1, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-loe10oo4", - savedOn: "2023-10-31T07:47:59.608Z", - locale: "en-US", - pid: "6540b11c6f87a60008837133", - _et: "PbPages", - _ct: "2023-10-31T07:47:59.647Z", - tenant: "root", - createdOn: "2023-10-31T07:47:40.147Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b11c6f87a60008837133", - title: "Page With Form" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486639200009fd35eb/serverless-cms-logo.svg", - "text@aliases": [], - "number@size": 1758, - "text@name": "serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.030Z", - TYPE: "cms.entry.l", - entryId: "602281486639200009fd35eb", - tenant: "root", - _md: "2023-10-31T07:43:39.030Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "602281486639200009fd35eb#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486639200009fd35eb/serverless-cms-logo.svg", - "text@aliases": [], - "number@size": 1758, - "text@name": "serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.029Z", - TYPE: "cms.entry", - entryId: "602281486639200009fd35eb", - tenant: "root", - _md: "2023-10-31T07:43:39.029Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "602281486639200009fd35eb#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb" - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:40.989Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540affb571f860008816c1b" - }, - "text@id": "6540b02b571f860008816c33#0001", - "text@title": "Welcome to Webiny", - "boolean@locked": true, - "datetime@createdOn": "2023-10-31T07:43:39.911Z", - "text@status": "published", - "text@path": "/welcome-to-webiny", - "text@pid": "6540b02b571f860008816c33", - "datetime@savedOn": "2023-10-31T07:43:40.674Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:40.995Z", - TYPE: "L", - entryId: "wby-aco-6540b02b571f860008816c33", - tenant: "root", - _md: "2023-10-31T07:43:40.995Z", - createdOn: "2023-10-31T07:43:39.951Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "wby-aco-6540b02b571f860008816c33#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-6540b02b571f860008816c33", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - } - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:40.989Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540affb571f860008816c1b" - }, - "text@id": "6540b02b571f860008816c33#0001", - "text@title": "Welcome to Webiny", - "boolean@locked": true, - "datetime@createdOn": "2023-10-31T07:43:39.911Z", - "text@status": "published", - "text@path": "/welcome-to-webiny", - "text@pid": "6540b02b571f860008816c33", - "datetime@savedOn": "2023-10-31T07:43:40.674Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:40.995Z", - TYPE: "cms.entry", - entryId: "wby-aco-6540b02b571f860008816c33", - tenant: "root", - _md: "2023-10-31T07:43:40.995Z", - createdOn: "2023-10-31T07:43:39.951Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "wby-aco-6540b02b571f860008816c33#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-6540b02b571f860008816c33", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - } - }, - { - _et: "SecurityIdentity2Tenant", - _ct: "2023-10-31T07:42:52.299Z", - tenant: "root", - identity: "6540affb571f860008816c1b", - _md: "2023-10-31T07:42:52.299Z", - createdOn: "2023-10-31T07:42:52.299Z", - data: { - teams: [], - groups: [ - { - permissions: [ - { - name: "*" - } - ], - id: "6540afeb571f860008816c19" - } - ] - }, - GSI1_SK: "TYPE#group#IDENTITY#6540affb571f860008816c1b", - SK: "LINK#T#root", - webinyVersion: "5.37.8", - PK: "IDENTITY#6540affb571f860008816c1b", - type: "group", - GSI1_PK: "T#root" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": - "demo-pages/6022814891bd1300087bd24c/webiny-infrastructure-overview.svg", - "text@aliases": [], - "number@size": 90163, - "text@name": "webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.948Z", - TYPE: "cms.entry.l", - entryId: "6022814891bd1300087bd24c", - tenant: "root", - _md: "2023-10-31T07:43:38.948Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814891bd1300087bd24c#0001", - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": - "demo-pages/6022814891bd1300087bd24c/webiny-infrastructure-overview.svg", - "text@aliases": [], - "number@size": 90163, - "text@name": "webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.932Z", - TYPE: "cms.entry", - entryId: "6022814891bd1300087bd24c", - tenant: "root", - _md: "2023-10-31T07:43:38.932Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814891bd1300087bd24c#0001", - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c" - }, - { - _md: "2023-10-31T07:49:55.313Z", - data: { - path: "/untitled-loe12uiu", - value: "6540b1636f87a60008837138", - tenant: "root", - key: "fb-form" - }, - GSI1_SK: "fb-form#6540b1636f87a60008837138#/untitled-loe12uiu", - SK: "6540b1636f87a60008837138#/untitled-loe12uiu", - PK: "T#root#PS#TAG#fb-form#6540b1636f87a60008837138#/untitled-loe12uiu", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-31T07:49:55.313Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.670Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228145f98841000981c71f/octo-cat.svg", - "text@aliases": [], - "number@size": 30007, - "text@name": "octo-cat.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.232Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c71f", - tenant: "root", - _md: "2023-10-31T07:43:39.232Z", - createdOn: "2023-10-31T07:43:38.670Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228145f98841000981c71f#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.670Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228145f98841000981c71f/octo-cat.svg", - "text@aliases": [], - "number@size": 30007, - "text@name": "octo-cat.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.231Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c71f", - tenant: "root", - _md: "2023-10-31T07:43:39.231Z", - createdOn: "2023-10-31T07:43:38.670Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228145f98841000981c71f#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486639200009fd35ec/cms-benefits-shape.svg", - "text@aliases": [], - "number@size": 392, - "text@name": "cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.989Z", - TYPE: "cms.entry.l", - entryId: "602281486639200009fd35ec", - tenant: "root", - _md: "2023-10-31T07:43:38.989Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "602281486639200009fd35ec#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486639200009fd35ec/cms-benefits-shape.svg", - "text@aliases": [], - "number@size": 392, - "text@name": "cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.988Z", - TYPE: "cms.entry", - entryId: "602281486639200009fd35ec", - tenant: "root", - _md: "2023-10-31T07:43:38.988Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "602281486639200009fd35ec#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148fa244d0008c47c79/scalable-icon.svg", - "text@aliases": [], - "number@size": 7806, - "text@name": "scalable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.049Z", - TYPE: "cms.entry.l", - entryId: "60228148fa244d0008c47c79", - tenant: "root", - _md: "2023-10-31T07:43:39.049Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228148fa244d0008c47c79#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148fa244d0008c47c79/scalable-icon.svg", - "text@aliases": [], - "number@size": 7806, - "text@name": "scalable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.049Z", - TYPE: "cms.entry", - entryId: "60228148fa244d0008c47c79", - tenant: "root", - _md: "2023-10-31T07:43:39.049Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228148fa244d0008c47c79#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148f98841000981c724/idp.svg", - "text@aliases": [], - "number@size": 27878, - "text@name": "idp.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.089Z", - TYPE: "cms.entry.l", - entryId: "60228148f98841000981c724", - tenant: "root", - _md: "2023-10-31T07:43:39.089Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228148f98841000981c724#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148f98841000981c724/idp.svg", - "text@aliases": [], - "number@size": 27878, - "text@name": "idp.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.089Z", - TYPE: "cms.entry", - entryId: "60228148f98841000981c724", - tenant: "root", - _md: "2023-10-31T07:43:39.089Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228148f98841000981c724#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724" - }, - { - tenant: "root", - code: "en-US", - _md: "2023-10-31T07:43:03.807Z", - default: true, - createdOn: "2023-10-31T07:42:58.768Z", - SK: "en-US", - webinyVersion: "5.37.8", - PK: "T#root#I18N#L", - _et: "I18NLocale", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:03.807Z" - }, - { - SK: "default", - PK: "ADMIN#SETTINGS", - data: { - appUrl: "https://d3jgj5hx8me6qu.cloudfront.net" - } - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page.p.path", - _md: "2023-10-31T07:43:40.611Z", - SK: "/not-found", - publishedOn: "2023-10-31T07:43:40.608Z", - id: "6540b02b571f860008816c32#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-10-31T07:43:40.608Z", - pid: "6540b02b571f860008816c32", - _et: "PbPages", - _ct: "2023-10-31T07:43:40.611Z", - tenant: "root", - createdOn: "2023-10-31T07:43:39.890Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#PATH", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page.p.path", - _md: "2023-10-31T07:47:59.649Z", - SK: "/untitled-loe10oo4", - publishedOn: "2023-10-31T07:47:59.608Z", - id: "6540b11c6f87a60008837133#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-loe10oo4", - locale: "en-US", - savedOn: "2023-10-31T07:47:59.608Z", - pid: "6540b11c6f87a60008837133", - _et: "PbPages", - _ct: "2023-10-31T07:47:59.649Z", - tenant: "root", - createdOn: "2023-10-31T07:47:40.147Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#PATH", - title: "Page With Form" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page.p.path", - _md: "2023-10-31T07:49:50.909Z", - SK: "/untitled-loe12uiu", - publishedOn: "2023-10-31T07:49:50.892Z", - id: "6540b1816f87a60008837139#0002", - editor: "page-builder", - version: 2, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-loe12uiu", - createdFrom: "6540b1816f87a60008837139#0001", - locale: "en-US", - savedOn: "2023-10-31T07:49:50.892Z", - pid: "6540b1816f87a60008837139", - _et: "PbPages", - _ct: "2023-10-31T07:49:50.909Z", - tenant: "root", - createdOn: "2023-10-31T07:49:48.113Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#PATH", - title: "Page With Form 2" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page.p.path", - _md: "2023-10-31T07:43:40.792Z", - SK: "/welcome-to-webiny", - publishedOn: "2023-10-31T07:43:40.674Z", - id: "6540b02b571f860008816c33#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-10-31T07:43:40.674Z", - pid: "6540b02b571f860008816c33", - _et: "PbPages", - _ct: "2023-10-31T07:43:40.792Z", - tenant: "root", - createdOn: "2023-10-31T07:43:39.911Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#PATH", - title: "Welcome to Webiny" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.670Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148fa244d0008c47c7a/community-icon.png", - "text@aliases": [], - "number@size": 17382, - "text@name": "community-icon.png", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.251Z", - TYPE: "cms.entry.l", - entryId: "60228148fa244d0008c47c7a", - tenant: "root", - _md: "2023-10-31T07:43:39.251Z", - createdOn: "2023-10-31T07:43:38.670Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228148fa244d0008c47c7a#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.670Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148fa244d0008c47c7a/community-icon.png", - "text@aliases": [], - "number@size": 17382, - "text@name": "community-icon.png", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.251Z", - TYPE: "cms.entry", - entryId: "60228148fa244d0008c47c7a", - tenant: "root", - _md: "2023-10-31T07:43:39.251Z", - createdOn: "2023-10-31T07:43:38.670Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228148fa244d0008c47c7a#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a" - }, - { - _md: "2023-10-31T07:48:04.002Z", - data: { - path: "/untitled-loe10oo4", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { - value: "6540b11c6f87a60008837133#0001", - key: "pb-page" - }, - { - value: "main-menu", - key: "pb-menu" - }, - { - value: "6540b090571f860008816c36", - key: "fb-form" - } - ] - } - }, - { - name: "graphql.json", - type: "application/json", - meta: {} - } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/untitled-loe10oo4", - SK: "A", - PK: "T#root#PS#RENDER#/untitled-loe10oo4", - _et: "PrerenderingServiceRender", - _ct: "2023-10-31T07:48:04.002Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - _md: "2023-10-31T07:43:41.109Z", - data: { - pages: { - notFound: "6540b02b571f860008816c32", - home: "6540b02b571f860008816c33" - }, - websiteUrl: null, - name: "devr", - prerendering: { - app: { - url: null - }, - meta: {}, - storage: { - name: null - } - }, - locale: "en-US", - type: "default", - tenant: "root" - }, - SK: "A", - PK: "T#root#L#en-US#PB#SETTINGS", - _et: "PbSettings", - _ct: "2023-10-31T07:43:41.109Z", - TYPE: "pb.settings" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814b0df4b000088735bc/webiny-logo.svg", - "text@aliases": [], - "number@size": 5053, - "text@name": "webiny-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.894Z", - TYPE: "cms.entry.l", - entryId: "6022814b0df4b000088735bc", - tenant: "root", - _md: "2023-10-31T07:43:38.894Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814b0df4b000088735bc#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814b0df4b000088735bc/webiny-logo.svg", - "text@aliases": [], - "number@size": 5053, - "text@name": "webiny-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:38.893Z", - TYPE: "cms.entry", - entryId: "6022814b0df4b000088735bc", - tenant: "root", - _md: "2023-10-31T07:43:38.893Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814b0df4b000088735bc#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page.l", - _md: "2023-10-31T07:49:50.907Z", - SK: "L", - publishedOn: "2023-10-31T07:49:50.892Z", - editor: "page-builder", - id: "6540b1816f87a60008837139#0002", - version: 2, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-loe12uiu", - createdFrom: "6540b1816f87a60008837139#0001", - savedOn: "2023-10-31T07:49:50.892Z", - locale: "en-US", - pid: "6540b1816f87a60008837139", - _et: "PbPages", - _ct: "2023-10-31T07:49:50.907Z", - tenant: "root", - createdOn: "2023-10-31T07:49:48.113Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b1816f87a60008837139", - title: "Page With Form 2" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page.p", - _md: "2023-10-31T07:49:50.909Z", - SK: "P", - publishedOn: "2023-10-31T07:49:50.892Z", - id: "6540b1816f87a60008837139#0002", - editor: "page-builder", - version: 2, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-loe12uiu", - createdFrom: "6540b1816f87a60008837139#0001", - locale: "en-US", - savedOn: "2023-10-31T07:49:50.892Z", - pid: "6540b1816f87a60008837139", - _et: "PbPages", - _ct: "2023-10-31T07:49:50.909Z", - tenant: "root", - createdOn: "2023-10-31T07:49:48.113Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b1816f87a60008837139", - title: "Page With Form 2" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "unpublished", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _md: "2023-10-31T07:49:50.908Z", - SK: "REV#0001", - publishedOn: "2023-10-31T07:49:41.889Z", - editor: "page-builder", - id: "6540b1816f87a60008837139#0001", - version: 1, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-loe12uiu", - savedOn: "2023-10-31T07:49:41.889Z", - locale: "en-US", - pid: "6540b1816f87a60008837139", - _et: "PbPages", - _ct: "2023-10-31T07:49:50.908Z", - tenant: "root", - createdOn: "2023-10-31T07:49:21.031Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b1816f87a60008837139", - title: "Page With Form 2" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - TYPE: "pb.page", - _md: "2023-10-31T07:49:50.907Z", - SK: "REV#0002", - publishedOn: "2023-10-31T07:49:50.892Z", - id: "6540b1816f87a60008837139#0002", - editor: "page-builder", - version: 2, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-loe12uiu", - createdFrom: "6540b1816f87a60008837139#0001", - locale: "en-US", - savedOn: "2023-10-31T07:49:50.892Z", - pid: "6540b1816f87a60008837139", - _et: "PbPages", - _ct: "2023-10-31T07:49:50.907Z", - tenant: "root", - createdOn: "2023-10-31T07:49:48.113Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P#6540b1816f87a60008837139", - title: "Page With Form 2" - }, - { - _md: "2023-10-31T07:43:20.408Z", - data: { - srcPrefix: "https://d207krpi9wj3wi.cloudfront.net/files/", - uploadMinFileSize: 0, - uploadMaxFileSize: 10737418240, - tenant: "root" - }, - SK: "A", - PK: "T#root#FM#SETTINGS", - _et: "FM.Settings", - _ct: "2023-10-31T07:43:20.408Z", - TYPE: "fm.settings" - }, - { - SK: "default", - PK: "PS#SETTINGS", - data: { - bucket: "wby-delivery-b8c57f2", - cloudfrontId: "E3UOOXUNYDRESV", - appUrl: "https://d1j9fvaw9jgyhc.cloudfront.net", - deliveryUrl: "https://d2r7h66rk9uitl.cloudfront.net", - sqsQueueUrl: - "https://sqs.eu-central-1.amazonaws.com/674320871285/wby-ps-render-queue-f961172.fifo" - } - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486ed41f0008bc2dad/webiny-serverless-cms.png.png", - "text@aliases": [], - "number@size": 108898, - "text@name": "webiny-serverless-cms.png ", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.011Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dad", - tenant: "root", - _md: "2023-10-31T07:43:39.011Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "602281486ed41f0008bc2dad#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486ed41f0008bc2dad/webiny-serverless-cms.png.png", - "text@aliases": [], - "number@size": 108898, - "text@name": "webiny-serverless-cms.png ", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.011Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dad", - tenant: "root", - _md: "2023-10-31T07:43:39.011Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "602281486ed41f0008bc2dad#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad" - }, - { - permissions: [], - slug: "anonymous", - _et: "SecurityGroup", - name: "Anonymous", - _ct: "2023-10-31T07:42:35.708Z", - TYPE: "security.group", - tenant: "root", - system: true, - _md: "2023-10-31T07:42:35.708Z", - createdOn: "2023-10-31T07:42:35.708Z", - GSI1_SK: "anonymous", - SK: "A", - description: "Permissions for anonymous users (public access).", - webinyVersion: "5.37.8", - id: "6540afeb571f860008816c1a", - PK: "T#root#GROUP#6540afeb571f860008816c1a", - GSI1_PK: "T#root#GROUPS" - }, - { - _md: "2023-10-31T07:43:59.239Z", - data: { - path: "/not-found", - value: "main-menu", - tenant: "root", - key: "pb-menu" - }, - GSI1_SK: "pb-menu#main-menu#/not-found", - SK: "main-menu#/not-found", - PK: "T#root#PS#TAG#pb-menu#main-menu#/not-found", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-31T07:43:59.239Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814bef4a940008b3ba28/environments.svg", - "text@aliases": [], - "number@size": 132767, - "text@name": "environments.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.014Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba28", - tenant: "root", - _md: "2023-10-31T07:43:39.014Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814bef4a940008b3ba28#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814bef4a940008b3ba28/environments.svg", - "text@aliases": [], - "number@size": 132767, - "text@name": "environments.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.014Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba28", - tenant: "root", - _md: "2023-10-31T07:43:39.014Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814bef4a940008b3ba28#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28" - }, - { - _md: "2023-10-31T07:42:52.287Z", - data: { - firstName: "ad", - lastName: "min", - createdBy: null, - webinyVersion: "5.37.8", - id: "6540affb571f860008816c1b", - createdOn: "2023-10-31T07:42:51.795Z", - email: "admin@webiny.com", - tenant: "root", - group: "6540afeb571f860008816c19" - }, - GSI1_SK: "admin@webiny.com", - SK: "A", - PK: "T#root#ADMIN_USER#6540affb571f860008816c1b", - _et: "AdminUsers.User", - _ct: "2023-10-31T07:42:52.287Z", - TYPE: "adminUsers.user", - GSI1_PK: "T#root#ADMIN_USERS" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486ed41f0008bc2dac/data-icon.svg", - "text@aliases": [], - "number@size": 73153, - "text@name": "data-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.110Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dac", - tenant: "root", - _md: "2023-10-31T07:43:39.110Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "602281486ed41f0008bc2dac#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-31T07:43:38.669Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486ed41f0008bc2dac/data-icon.svg", - "text@aliases": [], - "number@size": 73153, - "text@name": "data-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - _ct: "2023-10-31T07:43:39.109Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dac", - tenant: "root", - _md: "2023-10-31T07:43:39.109Z", - createdOn: "2023-10-31T07:43:38.669Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540affb571f860008816c1b" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "602281486ed41f0008bc2dac#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac" - }, - - // Tenants and locales 👇. - - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - } - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - } - } - }, - { - PK: `T#root#I18N#L`, - SK: "en-US", - code: "en-US", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "otherTenant", - webinyVersion: "0.0.0" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.esData.ts b/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.esData.ts deleted file mode 100644 index 2821e7035f4..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.esData.ts +++ /dev/null @@ -1,485 +0,0 @@ -export const createEsData = () => [ - { - data: { - firstName: "fname3", - lastName: "lname3", - jobTitle: "job3" - }, - form: { - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - parent: "6540b090571f860008816c36", - name: "Form1 v2", - id: "6540b090571f860008816c36#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:48:33.211Z", - url: { - query: {}, - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4" - } - }, - savedOn: "2023-10-31T07:48:33.508Z", - __type: "fb.submission", - id: "6540b1516f87a60008837137", - locale: "en-US", - createdOn: "2023-10-31T07:48:33.508Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - logs: [], - tenant: "root" - }, - { - data: { - firstName: "fname1", - lastName: "lname1" - }, - form: { - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - parent: "6540b1636f87a60008837138", - name: "Form2", - id: "6540b1636f87a60008837138#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:50:10.082Z", - url: { - query: {}, - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu" - } - }, - savedOn: "2023-10-31T07:50:10.335Z", - __type: "fb.submission", - id: "6540b1b2571f860008816c37", - locale: "en-US", - createdOn: "2023-10-31T07:50:10.335Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - logs: [], - tenant: "root" - }, - { - data: { - firstName: "fname3", - lastName: "lname3" - }, - form: { - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - parent: "6540b1636f87a60008837138", - name: "Form2", - id: "6540b1636f87a60008837138#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:50:22.947Z", - url: { - query: {}, - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu" - } - }, - savedOn: "2023-10-31T07:50:23.198Z", - __type: "fb.submission", - id: "6540b1bf571f860008816c39", - locale: "en-US", - createdOn: "2023-10-31T07:50:23.198Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - logs: [], - tenant: "root" - }, - { - data: { - firstName: "fname1", - lastName: "lname1", - jobTitle: "job1" - }, - form: { - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - parent: "6540b090571f860008816c36", - name: "Form1 v2", - id: "6540b090571f860008816c36#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:48:16.770Z", - url: { - query: {}, - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4" - } - }, - savedOn: "2023-10-31T07:48:17.052Z", - __type: "fb.submission", - id: "6540b1416f87a60008837135", - locale: "en-US", - createdOn: "2023-10-31T07:48:17.052Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - logs: [], - tenant: "root" - }, - { - data: { - firstName: "fname2", - lastName: "lname2", - jobTitle: "job2" - }, - form: { - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - parent: "6540b090571f860008816c36", - name: "Form1 v2", - id: "6540b090571f860008816c36#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:48:24.791Z", - url: { - query: {}, - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4" - } - }, - savedOn: "2023-10-31T07:48:25.052Z", - __type: "fb.submission", - id: "6540b1496f87a60008837136", - locale: "en-US", - createdOn: "2023-10-31T07:48:25.052Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - logs: [], - tenant: "root" - }, - { - data: { - firstName: "fname2", - lastName: "lname2" - }, - form: { - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - parent: "6540b1636f87a60008837138", - name: "Form2", - id: "6540b1636f87a60008837138#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:50:16.498Z", - url: { - query: {}, - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu" - } - }, - savedOn: "2023-10-31T07:50:16.733Z", - __type: "fb.submission", - id: "6540b1b8571f860008816c38", - locale: "en-US", - createdOn: "2023-10-31T07:50:16.733Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - logs: [], - tenant: "root" - }, - { - formId: "6540b1636f87a60008837138", - savedOn: "2023-10-31T07:49:04.307Z", - publishedOn: "2023-10-31T07:49:04.307Z", - published: true, - locale: "en-US", - createdOn: "2023-10-31T07:48:51.471Z", - version: 1, - createdBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - webinyVersion: "5.37.8", - __type: "fb.form", - name: "Form2", - id: "6540b1636f87a60008837138#0001", - locked: true, - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - slug: "form2-6540b1636f87a60008837138", - tenant: "root", - status: "published" - }, - { - formId: "6540b090571f860008816c36", - savedOn: "2023-10-31T07:45:50.290Z", - publishedOn: "2023-10-31T07:45:50.290Z", - published: true, - locale: "en-US", - createdOn: "2023-10-31T07:45:40.110Z", - version: 2, - createdBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - webinyVersion: "5.37.8", - __type: "fb.form", - name: "Form1 v2", - id: "6540b090571f860008816c36#0002", - locked: true, - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - slug: "form1-6540b090571f860008816c36", - tenant: "root", - status: "published" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.migratedDdbEsTableData.ts b/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.migratedDdbEsTableData.ts deleted file mode 100644 index cc816556241..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.migratedDdbEsTableData.ts +++ /dev/null @@ -1,515 +0,0 @@ -export const migratedDdbEsTableData = [ - { - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36", - SK: "FS#6540b1416f87a60008837135", - TYPE: "fb.formSubmission", - created: "2023-10-31T07:48:17.073Z", - data: { - __type: "fb.submission", - createdOn: "2023-10-31T07:48:17.052Z", - data: { - firstName: "fname1", - jobTitle: "job1", - lastName: "lname1" - }, - form: { - fields: [ - { - _id: "BBZ5U1Fdo", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "HkP2Uwplp", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "gpGvbcZ75", - fieldId: "jobTitle", - helpText: null, - label: "Job title", - name: "jobTitle", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "6540b090571f860008816c36#0002", - name: "Form1 v2", - parent: "6540b090571f860008816c36", - steps: [ - { - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - title: "Step 1" - } - ], - version: 2 - }, - id: "6540b1416f87a60008837135", - locale: "en-US", - logs: [], - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:48:16.770Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4", - query: {} - } - }, - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - savedOn: "2023-10-31T07:48:17.052Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - entity: "FormBuilderSubmissionEs", - index: "root-en-us-form-builder", - modified: "2023-10-31T07:48:17.073Z" - }, - { - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36", - SK: "FS#6540b1496f87a60008837136", - TYPE: "fb.formSubmission", - created: "2023-10-31T07:48:25.076Z", - data: { - __type: "fb.submission", - createdOn: "2023-10-31T07:48:25.052Z", - data: { - firstName: "fname2", - jobTitle: "job2", - lastName: "lname2" - }, - form: { - fields: [ - { - _id: "BBZ5U1Fdo", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "HkP2Uwplp", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "gpGvbcZ75", - fieldId: "jobTitle", - helpText: null, - label: "Job title", - name: "jobTitle", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "6540b090571f860008816c36#0002", - name: "Form1 v2", - parent: "6540b090571f860008816c36", - steps: [ - { - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - title: "Step 1" - } - ], - version: 2 - }, - id: "6540b1496f87a60008837136", - locale: "en-US", - logs: [], - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:48:24.791Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4", - query: {} - } - }, - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - savedOn: "2023-10-31T07:48:25.052Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - entity: "FormBuilderSubmissionEs", - index: "root-en-us-form-builder", - modified: "2023-10-31T07:48:25.076Z" - }, - { - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36", - SK: "FS#6540b1516f87a60008837137", - TYPE: "fb.formSubmission", - created: "2023-10-31T07:48:33.517Z", - data: { - __type: "fb.submission", - createdOn: "2023-10-31T07:48:33.508Z", - data: { - firstName: "fname3", - jobTitle: "job3", - lastName: "lname3" - }, - form: { - fields: [ - { - _id: "BBZ5U1Fdo", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "HkP2Uwplp", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "gpGvbcZ75", - fieldId: "jobTitle", - helpText: null, - label: "Job title", - name: "jobTitle", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "6540b090571f860008816c36#0002", - name: "Form1 v2", - parent: "6540b090571f860008816c36", - steps: [ - { - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - title: "Step 1" - } - ], - version: 2 - }, - id: "6540b1516f87a60008837137", - locale: "en-US", - logs: [], - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:48:33.211Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4", - query: {} - } - }, - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - savedOn: "2023-10-31T07:48:33.508Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - entity: "FormBuilderSubmissionEs", - index: "root-en-us-form-builder", - modified: "2023-10-31T07:48:33.517Z" - }, - { - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138", - SK: "FS#6540b1b2571f860008816c37", - TYPE: "fb.formSubmission", - created: "2023-10-31T07:50:10.361Z", - data: { - __type: "fb.submission", - createdOn: "2023-10-31T07:50:10.335Z", - data: { - firstName: "fname1", - lastName: "lname1" - }, - form: { - fields: [ - { - _id: "pK2B8sAdr", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "pifB2oRFO", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "6540b1636f87a60008837138#0001", - name: "Form2", - parent: "6540b1636f87a60008837138", - steps: [ - { - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - title: "Step 1" - } - ], - version: 1 - }, - id: "6540b1b2571f860008816c37", - locale: "en-US", - logs: [], - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:50:10.082Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu", - query: {} - } - }, - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - savedOn: "2023-10-31T07:50:10.335Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - entity: "FormBuilderSubmissionEs", - index: "root-en-us-form-builder", - modified: "2023-10-31T07:50:10.361Z" - }, - { - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138", - SK: "FS#6540b1b8571f860008816c38", - TYPE: "fb.formSubmission", - created: "2023-10-31T07:50:16.740Z", - data: { - __type: "fb.submission", - createdOn: "2023-10-31T07:50:16.733Z", - data: { - firstName: "fname2", - lastName: "lname2" - }, - form: { - fields: [ - { - _id: "pK2B8sAdr", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "pifB2oRFO", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "6540b1636f87a60008837138#0001", - name: "Form2", - parent: "6540b1636f87a60008837138", - steps: [ - { - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - title: "Step 1" - } - ], - version: 1 - }, - id: "6540b1b8571f860008816c38", - locale: "en-US", - logs: [], - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:50:16.498Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu", - query: {} - } - }, - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - savedOn: "2023-10-31T07:50:16.733Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - entity: "FormBuilderSubmissionEs", - index: "root-en-us-form-builder", - modified: "2023-10-31T07:50:16.740Z" - }, - { - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138", - SK: "FS#6540b1bf571f860008816c39", - TYPE: "fb.formSubmission", - created: "2023-10-31T07:50:23.217Z", - data: { - __type: "fb.submission", - createdOn: "2023-10-31T07:50:23.198Z", - data: { - firstName: "fname3", - lastName: "lname3" - }, - form: { - fields: [ - { - _id: "pK2B8sAdr", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "pifB2oRFO", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "6540b1636f87a60008837138#0001", - name: "Form2", - parent: "6540b1636f87a60008837138", - steps: [ - { - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - title: "Step 1" - } - ], - version: 1 - }, - id: "6540b1bf571f860008816c39", - locale: "en-US", - logs: [], - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:50:22.947Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu", - query: {} - } - }, - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - savedOn: "2023-10-31T07:50:23.198Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - entity: "FormBuilderSubmissionEs", - index: "root-en-us-form-builder", - modified: "2023-10-31T07:50:23.217Z" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.migratedDdbPrimaryTableData.ts b/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.migratedDdbPrimaryTableData.ts deleted file mode 100644 index da170621913..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.migratedDdbPrimaryTableData.ts +++ /dev/null @@ -1,485 +0,0 @@ -export const migratedDdbPrimaryTableData = [ - { - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36", - SK: "FS#6540b1416f87a60008837135", - TYPE: "fb.formSubmission", - created: "2023-10-31T07:48:17.187Z", - createdOn: "2023-10-31T07:48:17.052Z", - data: { - firstName: "fname1", - jobTitle: "job1", - lastName: "lname1" - }, - entity: "FormBuilderForm", - form: { - fields: [ - { - _id: "BBZ5U1Fdo", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "HkP2Uwplp", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "gpGvbcZ75", - fieldId: "jobTitle", - helpText: null, - label: "Job title", - name: "jobTitle", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "6540b090571f860008816c36#0002", - name: "Form1 v2", - parent: "6540b090571f860008816c36", - steps: [ - { - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - title: "Step 1" - } - ], - version: 2 - }, - id: "6540b1416f87a60008837135", - locale: "en-US", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:48:16.770Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4", - query: {} - } - }, - modified: "2023-10-31T07:48:17.187Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - savedOn: "2023-10-31T07:48:17.052Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - { - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36", - SK: "FS#6540b1496f87a60008837136", - TYPE: "fb.formSubmission", - created: "2023-10-31T07:48:25.247Z", - createdOn: "2023-10-31T07:48:25.052Z", - data: { - firstName: "fname2", - jobTitle: "job2", - lastName: "lname2" - }, - entity: "FormBuilderForm", - form: { - fields: [ - { - _id: "BBZ5U1Fdo", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "HkP2Uwplp", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "gpGvbcZ75", - fieldId: "jobTitle", - helpText: null, - label: "Job title", - name: "jobTitle", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "6540b090571f860008816c36#0002", - name: "Form1 v2", - parent: "6540b090571f860008816c36", - steps: [ - { - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - title: "Step 1" - } - ], - version: 2 - }, - id: "6540b1496f87a60008837136", - locale: "en-US", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:48:24.791Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4", - query: {} - } - }, - modified: "2023-10-31T07:48:25.247Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - savedOn: "2023-10-31T07:48:25.052Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - { - PK: "T#root#L#en-US#FB#F#6540b090571f860008816c36", - SK: "FS#6540b1516f87a60008837137", - TYPE: "fb.formSubmission", - created: "2023-10-31T07:48:33.611Z", - createdOn: "2023-10-31T07:48:33.508Z", - data: { - firstName: "fname3", - jobTitle: "job3", - lastName: "lname3" - }, - entity: "FormBuilderForm", - form: { - fields: [ - { - _id: "BBZ5U1Fdo", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "HkP2Uwplp", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "gpGvbcZ75", - fieldId: "jobTitle", - helpText: null, - label: "Job title", - name: "jobTitle", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "6540b090571f860008816c36#0002", - name: "Form1 v2", - parent: "6540b090571f860008816c36", - steps: [ - { - layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]], - title: "Step 1" - } - ], - version: 2 - }, - id: "6540b1516f87a60008837137", - locale: "en-US", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:48:33.211Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4", - query: {} - } - }, - modified: "2023-10-31T07:48:33.611Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - savedOn: "2023-10-31T07:48:33.508Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - { - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138", - SK: "FS#6540b1b2571f860008816c37", - TYPE: "fb.formSubmission", - created: "2023-10-31T07:50:10.439Z", - createdOn: "2023-10-31T07:50:10.335Z", - data: { - firstName: "fname1", - lastName: "lname1" - }, - entity: "FormBuilderForm", - form: { - fields: [ - { - _id: "pK2B8sAdr", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "pifB2oRFO", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "6540b1636f87a60008837138#0001", - name: "Form2", - parent: "6540b1636f87a60008837138", - steps: [ - { - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - title: "Step 1" - } - ], - version: 1 - }, - id: "6540b1b2571f860008816c37", - locale: "en-US", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:50:10.082Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu", - query: {} - } - }, - modified: "2023-10-31T07:50:10.439Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - savedOn: "2023-10-31T07:50:10.335Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - { - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138", - SK: "FS#6540b1b8571f860008816c38", - TYPE: "fb.formSubmission", - created: "2023-10-31T07:50:16.833Z", - createdOn: "2023-10-31T07:50:16.733Z", - data: { - firstName: "fname2", - lastName: "lname2" - }, - entity: "FormBuilderForm", - form: { - fields: [ - { - _id: "pK2B8sAdr", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "pifB2oRFO", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "6540b1636f87a60008837138#0001", - name: "Form2", - parent: "6540b1636f87a60008837138", - steps: [ - { - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - title: "Step 1" - } - ], - version: 1 - }, - id: "6540b1b8571f860008816c38", - locale: "en-US", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:50:16.498Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu", - query: {} - } - }, - modified: "2023-10-31T07:50:16.833Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - savedOn: "2023-10-31T07:50:16.733Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - { - PK: "T#root#L#en-US#FB#F#6540b1636f87a60008837138", - SK: "FS#6540b1bf571f860008816c39", - TYPE: "fb.formSubmission", - created: "2023-10-31T07:50:23.298Z", - createdOn: "2023-10-31T07:50:23.198Z", - data: { - firstName: "fname3", - lastName: "lname3" - }, - entity: "FormBuilderForm", - form: { - fields: [ - { - _id: "pK2B8sAdr", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "pifB2oRFO", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "6540b1636f87a60008837138#0001", - name: "Form2", - parent: "6540b1636f87a60008837138", - steps: [ - { - layout: [["pK2B8sAdr"], ["pifB2oRFO"]], - title: "Step 1" - } - ], - version: 1 - }, - id: "6540b1bf571f860008816c39", - locale: "en-US", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:50:22.947Z", - url: { - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu", - query: {} - } - }, - modified: "2023-10-31T07:50:23.298Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - savedOn: "2023-10-31T07:50:23.198Z", - tenant: "root", - webinyVersion: "5.37.8" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.migratedEsData.ts b/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.migratedEsData.ts deleted file mode 100644 index f410ba02624..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.migratedEsData.ts +++ /dev/null @@ -1,485 +0,0 @@ -export const createMigratedEsData = () => [ - { - data: { - firstName: "fname3", - lastName: "lname3", - jobTitle: "job3" - }, - form: { - steps: [{ title: "Step 1", layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]] }], - parent: "6540b090571f860008816c36", - name: "Form1 v2", - id: "6540b090571f860008816c36#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:48:33.211Z", - url: { - query: {}, - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4" - } - }, - savedOn: "2023-10-31T07:48:33.508Z", - __type: "fb.submission", - id: "6540b1516f87a60008837137", - locale: "en-US", - createdOn: "2023-10-31T07:48:33.508Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - logs: [], - tenant: "root" - }, - { - data: { - firstName: "fname1", - lastName: "lname1" - }, - form: { - steps: [{ title: "Step 1", layout: [["pK2B8sAdr"], ["pifB2oRFO"]] }], - parent: "6540b1636f87a60008837138", - name: "Form2", - id: "6540b1636f87a60008837138#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:50:10.082Z", - url: { - query: {}, - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu" - } - }, - savedOn: "2023-10-31T07:50:10.335Z", - __type: "fb.submission", - id: "6540b1b2571f860008816c37", - locale: "en-US", - createdOn: "2023-10-31T07:50:10.335Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - logs: [], - tenant: "root" - }, - { - data: { - firstName: "fname3", - lastName: "lname3" - }, - form: { - steps: [{ title: "Step 1", layout: [["pK2B8sAdr"], ["pifB2oRFO"]] }], - parent: "6540b1636f87a60008837138", - name: "Form2", - id: "6540b1636f87a60008837138#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:50:22.947Z", - url: { - query: {}, - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu" - } - }, - savedOn: "2023-10-31T07:50:23.198Z", - __type: "fb.submission", - id: "6540b1bf571f860008816c39", - locale: "en-US", - createdOn: "2023-10-31T07:50:23.198Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - logs: [], - tenant: "root" - }, - { - data: { - firstName: "fname1", - lastName: "lname1", - jobTitle: "job1" - }, - form: { - steps: [{ title: "Step 1", layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]] }], - parent: "6540b090571f860008816c36", - name: "Form1 v2", - id: "6540b090571f860008816c36#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:48:16.770Z", - url: { - query: {}, - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4" - } - }, - savedOn: "2023-10-31T07:48:17.052Z", - __type: "fb.submission", - id: "6540b1416f87a60008837135", - locale: "en-US", - createdOn: "2023-10-31T07:48:17.052Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - logs: [], - tenant: "root" - }, - { - data: { - firstName: "fname2", - lastName: "lname2", - jobTitle: "job2" - }, - form: { - steps: [{ title: "Step 1", layout: [["BBZ5U1Fdo"], ["HkP2Uwplp"], ["gpGvbcZ75"]] }], - parent: "6540b090571f860008816c36", - name: "Form1 v2", - id: "6540b090571f860008816c36#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "BBZ5U1Fdo", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "HkP2Uwplp", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "gpGvbcZ75", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:48:24.791Z", - url: { - query: {}, - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe10oo4" - } - }, - savedOn: "2023-10-31T07:48:25.052Z", - __type: "fb.submission", - id: "6540b1496f87a60008837136", - locale: "en-US", - createdOn: "2023-10-31T07:48:25.052Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - logs: [], - tenant: "root" - }, - { - data: { - firstName: "fname2", - lastName: "lname2" - }, - form: { - steps: [{ title: "Step 1", layout: [["pK2B8sAdr"], ["pifB2oRFO"]] }], - parent: "6540b1636f87a60008837138", - name: "Form2", - id: "6540b1636f87a60008837138#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "pK2B8sAdr", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "pifB2oRFO", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-31T07:50:16.498Z", - url: { - query: {}, - location: "https://d2r7h66rk9uitl.cloudfront.net/untitled-loe12uiu" - } - }, - savedOn: "2023-10-31T07:50:16.733Z", - __type: "fb.submission", - id: "6540b1b8571f860008816c38", - locale: "en-US", - createdOn: "2023-10-31T07:50:16.733Z", - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - logs: [], - tenant: "root" - }, - { - formId: "6540b1636f87a60008837138", - savedOn: "2023-10-31T07:49:04.307Z", - publishedOn: "2023-10-31T07:49:04.307Z", - published: true, - locale: "en-US", - createdOn: "2023-10-31T07:48:51.471Z", - version: 1, - createdBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - webinyVersion: "5.37.8", - __type: "fb.form", - name: "Form2", - id: "6540b1636f87a60008837138#0001", - locked: true, - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - slug: "form2-6540b1636f87a60008837138", - tenant: "root", - status: "published" - }, - { - formId: "6540b090571f860008816c36", - savedOn: "2023-10-31T07:45:50.290Z", - publishedOn: "2023-10-31T07:45:50.290Z", - published: true, - locale: "en-US", - createdOn: "2023-10-31T07:45:40.110Z", - version: 2, - createdBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - webinyVersion: "5.37.8", - __type: "fb.form", - name: "Form1 v2", - id: "6540b090571f860008816c36#0002", - locked: true, - ownedBy: { - displayName: "ad min", - id: "6540affb571f860008816c1b", - type: "admin" - }, - slug: "form1-6540b090571f860008816c36", - tenant: "root", - status: "published" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.test.ts b/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.test.ts deleted file mode 100644 index 7198d3f2865..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/002/ddb-es/002.test.ts +++ /dev/null @@ -1,147 +0,0 @@ -import { - assertNotError, - createDdbEsMigrationHandler, - getDynamoToEsTable, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { MultiStepForms_5_38_0_002 } from "~/migrations/5.38.0/002/ddb-es"; -import { createDdbPrimaryTableData } from "./002.ddbPrimaryTableData"; -import { createDdbEsTableData } from "./002.ddbEsTableData"; -import { createEsData } from "./002.esData"; -import { migratedDdbPrimaryTableData } from "./002.migratedDdbPrimaryTableData"; -import { migratedDdbEsTableData } from "./002.migratedDdbEsTableData"; -import { insertElasticsearchTestData } from "~tests/utils/insertElasticsearchTestData"; -import { esGetIndexName } from "~/utils"; -import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; -import { createMigratedEsData } from "~tests/migrations/5.38.0/002/ddb-es/002.migratedEsData"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.38.0-002", () => { - const primaryTable = getPrimaryDynamoDbTable(); - const dynamoToEsTable = getDynamoToEsTable(); - const elasticsearchClient = createElasticsearchClient(); - - beforeAll(async () => { - process.env.ELASTIC_SEARCH_INDEX_PREFIX = - new Date().toISOString().replace(/\.|\:/g, "-").toLowerCase() + "-"; - - await elasticsearchClient.indices.deleteAll(); - }); - afterEach(async () => { - await elasticsearchClient.indices.deleteAll(); - }); - - logTestNameBeforeEachTest(); - - it("should not run if no forms found", async () => { - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [MultiStepForms_5_38_0_002] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(primaryTable, createDdbPrimaryTableData()); - await insertTestData(dynamoToEsTable, createDdbEsTableData()); - - await insertElasticsearchTestData(elasticsearchClient, createEsData(), item => { - return esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - isHeadlessCmsModel: false, - type: "form-builder" - }); - }); - - await elasticsearchClient.indices.refreshAll(); - - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [MultiStepForms_5_38_0_002] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - await expect( - scanTable(primaryTable, { - filters: [ - { - attr: "TYPE", - beginsWith: "fb.formSubmission" - } - ] - }) - ).resolves.toEqual(migratedDdbPrimaryTableData); - - await expect( - scanTable(dynamoToEsTable, { - filters: [ - { - attr: "TYPE", - beginsWith: "fb.formSubmission" - } - ] - }) - ).resolves.toEqual(migratedDdbEsTableData); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(primaryTable, createDdbPrimaryTableData()); - await insertTestData(dynamoToEsTable, createDdbEsTableData()); - - await insertElasticsearchTestData(elasticsearchClient, createMigratedEsData(), item => { - return esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - isHeadlessCmsModel: false, - type: "form-builder" - }); - }); - - await elasticsearchClient.indices.refreshAll(); - - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [MultiStepForms_5_38_0_002] - }); - - // Should skip the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.38.0/002/ddb/002.data.migrated.ts b/packages/migrations/__tests__/migrations/5.38.0/002/ddb/002.data.migrated.ts deleted file mode 100644 index f74bf20eb88..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/002/ddb/002.data.migrated.ts +++ /dev/null @@ -1,487 +0,0 @@ -// We expect six items to be returned in the test, where all of them have the `form.steps` property. - -export const migratedData = [ - { - PK: "T#root#L#en-US#FB#FS#654023ed6dfea3000959c62f", - SK: "6540245e38144f000869c190", - TYPE: "fb.formSubmission", - created: "2023-10-30T21:47:10.536Z", - createdOn: "2023-10-30T21:47:10.523Z", - data: { - firstName: "fname1", - lastName: "lname1" - }, - entity: "FormBuilderForm", - form: { - fields: [ - { - _id: "NEmb72Y06", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "Z2OAXo7g4", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "654023ed6dfea3000959c62f#0001", - name: "Form2", - parent: "654023ed6dfea3000959c62f", - steps: [ - { - layout: [["NEmb72Y06"], ["Z2OAXo7g4"]], - title: "Step 1" - } - ], - version: 1 - }, - id: "6540245e38144f000869c190", - locale: "en-US", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-30T21:47:10.276Z", - url: { - location: "https://d35k1bx4m6ql8.cloudfront.net/untitled-lodfiimg", - query: {} - } - }, - modified: "2023-10-30T21:47:10.536Z", - ownedBy: { - displayName: "ad min", - id: "6540185ca0f1c30008594e34", - type: "admin" - }, - savedOn: "2023-10-30T21:47:10.523Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - { - PK: "T#root#L#en-US#FB#FS#654023ed6dfea3000959c62f", - SK: "6540246638144f000869c191", - TYPE: "fb.formSubmission", - created: "2023-10-30T21:47:18.179Z", - createdOn: "2023-10-30T21:47:18.179Z", - data: { - firstName: "fname2", - lastName: "lname2" - }, - entity: "FormBuilderForm", - form: { - fields: [ - { - _id: "NEmb72Y06", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "Z2OAXo7g4", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "654023ed6dfea3000959c62f#0001", - name: "Form2", - parent: "654023ed6dfea3000959c62f", - steps: [ - { - layout: [["NEmb72Y06"], ["Z2OAXo7g4"]], - title: "Step 1" - } - ], - version: 1 - }, - id: "6540246638144f000869c191", - locale: "en-US", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-30T21:47:17.837Z", - url: { - location: "https://d35k1bx4m6ql8.cloudfront.net/untitled-lodfiimg", - query: {} - } - }, - modified: "2023-10-30T21:47:18.179Z", - ownedBy: { - displayName: "ad min", - id: "6540185ca0f1c30008594e34", - type: "admin" - }, - savedOn: "2023-10-30T21:47:18.179Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - { - PK: "T#root#L#en-US#FB#FS#654023ed6dfea3000959c62f", - SK: "6540246d38144f000869c192", - TYPE: "fb.formSubmission", - created: "2023-10-30T21:47:25.681Z", - createdOn: "2023-10-30T21:47:25.681Z", - data: { - firstName: "fname3", - lastName: "lname3" - }, - entity: "FormBuilderForm", - form: { - fields: [ - { - _id: "NEmb72Y06", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "Z2OAXo7g4", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "654023ed6dfea3000959c62f#0001", - name: "Form2", - parent: "654023ed6dfea3000959c62f", - steps: [ - { - layout: [["NEmb72Y06"], ["Z2OAXo7g4"]], - title: "Step 1" - } - ], - version: 1 - }, - id: "6540246d38144f000869c192", - locale: "en-US", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-30T21:47:25.496Z", - url: { - location: "https://d35k1bx4m6ql8.cloudfront.net/untitled-lodfiimg", - query: {} - } - }, - modified: "2023-10-30T21:47:25.681Z", - ownedBy: { - displayName: "ad min", - id: "6540185ca0f1c30008594e34", - type: "admin" - }, - savedOn: "2023-10-30T21:47:25.681Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - { - PK: "T#root#L#en-US#FB#FS#654018e9a0f1c30008594e4f", - SK: "65401996fcb833000804ebfa", - TYPE: "fb.formSubmission", - created: "2023-10-30T21:01:10.016Z", - createdOn: "2023-10-30T21:01:10.015Z", - data: { - firstName: "fname1", - jobTitle: "job1", - lastName: "lname1" - }, - entity: "FormBuilderForm", - form: { - fields: [ - { - _id: "9m4KBx7r-", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "nLgWSfm7d", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "WtPAGFRMj", - fieldId: "jobTitle", - helpText: null, - label: "Job title", - name: "jobTitle", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "654018e9a0f1c30008594e4f#0002", - name: "Form1 v2", - parent: "654018e9a0f1c30008594e4f", - steps: [ - { - layout: [["9m4KBx7r-"], ["nLgWSfm7d"], ["WtPAGFRMj"]], - title: "Step 1" - } - ], - version: 2 - }, - id: "65401996fcb833000804ebfa", - locale: "en-US", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-30T21:01:09.776Z", - url: { - location: "https://d35k1bx4m6ql8.cloudfront.net/untitled-lodduenc", - query: {} - } - }, - modified: "2023-10-30T21:01:10.016Z", - ownedBy: { - displayName: "ad min", - id: "6540185ca0f1c30008594e34", - type: "admin" - }, - savedOn: "2023-10-30T21:01:10.015Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - { - PK: "T#root#L#en-US#FB#FS#654018e9a0f1c30008594e4f", - SK: "6540199ffcb833000804ebfb", - TYPE: "fb.formSubmission", - created: "2023-10-30T21:01:19.617Z", - createdOn: "2023-10-30T21:01:19.616Z", - data: { - firstName: "fname2", - jobTitle: "job2", - lastName: "lname2" - }, - entity: "FormBuilderForm", - form: { - fields: [ - { - _id: "9m4KBx7r-", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "nLgWSfm7d", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "WtPAGFRMj", - fieldId: "jobTitle", - helpText: null, - label: "Job title", - name: "jobTitle", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "654018e9a0f1c30008594e4f#0002", - name: "Form1 v2", - parent: "654018e9a0f1c30008594e4f", - steps: [ - { - layout: [["9m4KBx7r-"], ["nLgWSfm7d"], ["WtPAGFRMj"]], - title: "Step 1" - } - ], - version: 2 - }, - id: "6540199ffcb833000804ebfb", - locale: "en-US", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-30T21:01:19.368Z", - url: { - location: "https://d35k1bx4m6ql8.cloudfront.net/untitled-lodduenc", - query: {} - } - }, - modified: "2023-10-30T21:01:19.617Z", - ownedBy: { - displayName: "ad min", - id: "6540185ca0f1c30008594e34", - type: "admin" - }, - savedOn: "2023-10-30T21:01:19.616Z", - tenant: "root", - webinyVersion: "5.37.8" - }, - { - PK: "T#root#L#en-US#FB#FS#654018e9a0f1c30008594e4f", - SK: "654019aafcb833000804ebfc", - TYPE: "fb.formSubmission", - created: "2023-10-30T21:01:30.755Z", - createdOn: "2023-10-30T21:01:30.755Z", - data: { - firstName: "fname3", - jobTitle: "job3", - lastName: "lname3" - }, - entity: "FormBuilderForm", - form: { - fields: [ - { - _id: "9m4KBx7r-", - fieldId: "firstName", - helpText: null, - label: "First name", - name: "firstName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "nLgWSfm7d", - fieldId: "lastName", - helpText: null, - label: "Last name", - name: "lastName", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - }, - { - _id: "WtPAGFRMj", - fieldId: "jobTitle", - helpText: null, - label: "Job title", - name: "jobTitle", - options: [], - placeholderText: null, - settings: { - defaultValue: null - }, - type: "text", - validation: [] - } - ], - id: "654018e9a0f1c30008594e4f#0002", - name: "Form1 v2", - parent: "654018e9a0f1c30008594e4f", - steps: [ - { - layout: [["9m4KBx7r-"], ["nLgWSfm7d"], ["WtPAGFRMj"]], - title: "Step 1" - } - ], - version: 2 - }, - id: "654019aafcb833000804ebfc", - locale: "en-US", - meta: { - ip: "0.0.0.0", - submittedOn: "2023-10-30T21:01:30.347Z", - url: { - location: "https://d35k1bx4m6ql8.cloudfront.net/untitled-lodduenc", - query: {} - } - }, - modified: "2023-10-30T21:01:30.755Z", - ownedBy: { - displayName: "ad min", - id: "6540185ca0f1c30008594e34", - type: "admin" - }, - savedOn: "2023-10-30T21:01:30.755Z", - tenant: "root", - webinyVersion: "5.37.8" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.38.0/002/ddb/002.data.ts b/packages/migrations/__tests__/migrations/5.38.0/002/ddb/002.data.ts deleted file mode 100644 index 8a89a4f0091..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/002/ddb/002.data.ts +++ /dev/null @@ -1,5274 +0,0 @@ -export const createFormsData = () => { - return [ - { - permissions: [ - { - name: "*" - } - ], - slug: "full-access", - _et: "SecurityGroup", - name: "Full Access", - _ct: "2023-10-30T20:55:40.821Z", - TYPE: "security.group", - tenant: "root", - system: true, - _md: "2023-10-30T20:55:40.821Z", - createdOn: "2023-10-30T20:55:40.820Z", - GSI1_SK: "full-access", - SK: "A", - description: "Grants full access to all apps.", - webinyVersion: "5.37.8", - id: "6540184ca0f1c30008594e32", - PK: "T#root#GROUP#6540184ca0f1c30008594e32", - GSI1_PK: "T#root#GROUPS" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": - "demo-pages/6022814891bd1300087bd24c/webiny-infrastructure-overview.svg", - "text@aliases": [], - "number@size": 90163, - "text@name": "webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.839Z", - TYPE: "cms.entry.l", - entryId: "6022814891bd1300087bd24c", - tenant: "root", - _md: "2023-10-30T20:57:12.839Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "6022814891bd1300087bd24c#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814891bd1300087bd24c#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814891bd1300087bd24c", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": - "demo-pages/6022814891bd1300087bd24c/webiny-infrastructure-overview.svg", - "text@aliases": [], - "number@size": 90163, - "text@name": "webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.838Z", - TYPE: "cms.entry", - entryId: "6022814891bd1300087bd24c", - tenant: "root", - _md: "2023-10-30T20:57:12.838Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "6022814891bd1300087bd24c#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814891bd1300087bd24c#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814891bd1300087bd24c", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148f98841000981c724/idp.svg", - "text@aliases": [], - "number@size": 27878, - "text@name": "idp.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.058Z", - TYPE: "cms.entry.l", - entryId: "60228148f98841000981c724", - tenant: "root", - _md: "2023-10-30T20:57:13.058Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "60228148f98841000981c724#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228148f98841000981c724#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148f98841000981c724", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148f98841000981c724/idp.svg", - "text@aliases": [], - "number@size": 27878, - "text@name": "idp.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.057Z", - TYPE: "cms.entry", - entryId: "60228148f98841000981c724", - tenant: "root", - _md: "2023-10-30T20:57:13.057Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "60228148f98841000981c724#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228148f98841000981c724#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148f98841000981c724", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - permissions: [], - slug: "anonymous", - _et: "SecurityGroup", - name: "Anonymous", - _ct: "2023-10-30T20:55:40.855Z", - TYPE: "security.group", - tenant: "root", - system: true, - _md: "2023-10-30T20:55:40.855Z", - createdOn: "2023-10-30T20:55:40.855Z", - GSI1_SK: "anonymous", - SK: "A", - description: "Permissions for anonymous users (public access).", - webinyVersion: "5.37.8", - id: "6540184ca0f1c30008594e33", - PK: "T#root#GROUP#6540184ca0f1c30008594e33", - GSI1_PK: "T#root#GROUPS" - }, - { - _md: "2023-10-30T20:55:57.460Z", - data: { - firstName: "ad", - lastName: "min", - createdBy: null, - webinyVersion: "5.37.8", - id: "6540185ca0f1c30008594e34", - createdOn: "2023-10-30T20:55:57.016Z", - email: "admin@webiny.com", - tenant: "root", - group: "6540184ca0f1c30008594e32" - }, - GSI1_SK: "admin@webiny.com", - SK: "A", - PK: "T#root#ADMIN_USER#6540185ca0f1c30008594e34", - _et: "AdminUsers.User", - _ct: "2023-10-30T20:55:57.460Z", - TYPE: "adminUsers.user", - GSI1_PK: "T#root#ADMIN_USERS" - }, - { - content: { - compression: "jsonpack", - content: - "id|2OtxgA88gO|type|document|data|settings|elements|pEn5GXvoSI|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|0eAP7mqnZ8|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|Y67t2RQZbz|cell|size|DmUf1q1n65|form|parent|654018e9a0f1c30008594e4f#0002|revision|latest|path^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|1B]|N|$A|Q]]]|6|@$0|14|2|15|4|$5|$15|$16|17|18|19]]]|6|@]|1A|@1|7|R]]]|1A|@1|7|R]]]|1A|@1|7]]]|1A|@1]]]|1A|@]]" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page", - _md: "2023-10-30T21:00:26.882Z", - titleLC: "page with form", - SK: "1", - publishedOn: "2023-10-30T21:00:26.881Z", - id: "65401910a0f1c30008594e50#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-lodduenc", - locale: "en-US", - savedOn: "2023-10-30T21:00:26.881Z", - pid: "65401910a0f1c30008594e50", - _et: "PbPages", - _ct: "2023-10-30T21:00:26.882Z", - tenant: "root", - createdOn: "2023-10-30T20:58:56.041Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#65401910a0f1c30008594e50", - title: "Page With Form" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486ed41f0008bc2dab/permission-icon.svg", - "text@aliases": [], - "number@size": 67402, - "text@name": "permission-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.117Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dab", - tenant: "root", - _md: "2023-10-30T20:57:13.117Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "602281486ed41f0008bc2dab#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "602281486ed41f0008bc2dab#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dab", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486ed41f0008bc2dab/permission-icon.svg", - "text@aliases": [], - "number@size": 67402, - "text@name": "permission-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.116Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dab", - tenant: "root", - _md: "2023-10-30T20:57:13.116Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "602281486ed41f0008bc2dab#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "602281486ed41f0008bc2dab#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dab", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - locale: "en-US", - slug: "static", - layout: "static", - url: "/static/", - _et: "PbCategories", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - name: "Static", - _ct: "2023-10-30T20:57:11.643Z", - TYPE: "pb.category", - tenant: "root", - _md: "2023-10-30T20:57:11.643Z", - createdOn: "2023-10-30T20:57:11.642Z", - SK: "static", - PK: "T#root#L#en-US#PB#C" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486ed41f0008bc2dad/webiny-serverless-cms.png.png", - "text@aliases": [], - "number@size": 108898, - "text@name": "webiny-serverless-cms.png ", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.938Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dad", - tenant: "root", - _md: "2023-10-30T20:57:12.938Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "602281486ed41f0008bc2dad#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "602281486ed41f0008bc2dad#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dad", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486ed41f0008bc2dad/webiny-serverless-cms.png.png", - "text@aliases": [], - "number@size": 108898, - "text@name": "webiny-serverless-cms.png ", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.938Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dad", - tenant: "root", - _md: "2023-10-30T20:57:12.938Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "602281486ed41f0008bc2dad#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "602281486ed41f0008bc2dad#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dad", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - locale: "en-US", - slug: "main-menu", - _et: "PbMenus", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - items: [], - _ct: "2023-10-30T20:57:13.677Z", - TYPE: "pb.menu", - tenant: "root", - _md: "2023-10-30T20:57:13.677Z", - createdOn: "2023-10-30T20:57:13.676Z", - SK: "main-menu", - description: "The main menu of the website, containing links to most important pages.", - PK: "T#root#L#en-US#PB#M", - title: "Main Menu" - }, - { - tenant: "root", - _md: "2023-10-30T20:57:27.441Z", - locale: "en-US", - reCaptcha: { - secretKey: null, - enabled: null, - siteKey: null - }, - SK: "default", - PK: "T#root#L#en-US#FB#SETTINGS", - _et: "FormBuilderSettings", - _ct: "2023-10-30T20:57:27.441Z", - domain: "https://d3rt3q4zzmec8c.cloudfront.net" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228145f98841000981c721/developer.svg", - "text@aliases": [], - "number@size": 27804, - "text@name": "developer.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.177Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c721", - tenant: "root", - _md: "2023-10-30T20:57:13.177Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "60228145f98841000981c721#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228145f98841000981c721#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c721", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228145f98841000981c721/developer.svg", - "text@aliases": [], - "number@size": 27804, - "text@name": "developer.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.177Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c721", - tenant: "root", - _md: "2023-10-30T20:57:13.177Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "60228145f98841000981c721#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228145f98841000981c721#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c721", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - _md: "2023-10-30T20:57:38.592Z", - data: { - path: "/", - value: "main-menu", - tenant: "root", - key: "pb-menu" - }, - GSI1_SK: "pb-menu#main-menu#/", - SK: "main-menu#/", - PK: "T#root#PS#TAG#pb-menu#main-menu#/", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-30T20:57:38.592Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602282e07a77e60008f70d63/feature-card-bg.svg", - "text@aliases": [], - "number@size": 888, - "text@name": "feature-card-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.819Z", - TYPE: "cms.entry.l", - entryId: "602282e07a77e60008f70d63", - tenant: "root", - _md: "2023-10-30T20:57:12.819Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "602282e07a77e60008f70d63#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "602282e07a77e60008f70d63#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602282e07a77e60008f70d63", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602282e07a77e60008f70d63/feature-card-bg.svg", - "text@aliases": [], - "number@size": 888, - "text@name": "feature-card-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.818Z", - TYPE: "cms.entry", - entryId: "602282e07a77e60008f70d63", - tenant: "root", - _md: "2023-10-30T20:57:12.818Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "602282e07a77e60008f70d63#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "602282e07a77e60008f70d63#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602282e07a77e60008f70d63", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - _md: "2023-10-30T20:57:25.455Z", - data: { - path: "/welcome-to-webiny", - value: "654018a9a0f1c30008594e4b#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#654018a9a0f1c30008594e4b#0001#/welcome-to-webiny", - SK: "654018a9a0f1c30008594e4b#0001#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-page#654018a9a0f1c30008594e4b#0001#/welcome-to-webiny", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-30T20:57:25.455Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page", - _md: "2023-10-30T20:57:14.618Z", - titleLC: "welcome to webiny", - SK: "1", - publishedOn: "2023-10-30T20:57:14.478Z", - id: "654018a9a0f1c30008594e4b#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-10-30T20:57:14.478Z", - pid: "654018a9a0f1c30008594e4b", - _et: "PbPages", - _ct: "2023-10-30T20:57:14.617Z", - tenant: "root", - createdOn: "2023-10-30T20:57:13.765Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#654018a9a0f1c30008594e4b", - title: "Welcome to Webiny" - }, - { - modelId: "acoSearchRecord-pbpage", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "cms.entry.l", - entryId: "wby-aco-654018a9a0f1c30008594e4c", - _md: "2023-10-30T20:57:15.265Z", - GSI1_SK: "wby-aco-654018a9a0f1c30008594e4c#0001", - SK: "L", - id: "wby-aco-654018a9a0f1c30008594e4c#0001", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:15.259Z", - locale: "en-US", - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540185ca0f1c30008594e34" - }, - "text@id": "654018a9a0f1c30008594e4c#0001", - "text@title": "Not Found", - "boolean@locked": true, - "datetime@createdOn": "2023-10-30T20:57:13.778Z", - "text@status": "published", - "text@path": "/not-found", - "text@pid": "654018a9a0f1c30008594e4c", - "datetime@savedOn": "2023-10-30T20:57:14.657Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - _ct: "2023-10-30T20:57:15.265Z", - tenant: "root", - createdOn: "2023-10-30T20:57:13.822Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-654018a9a0f1c30008594e4c", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#L" - }, - { - modelId: "acoSearchRecord-pbpage", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "cms.entry", - entryId: "wby-aco-654018a9a0f1c30008594e4c", - _md: "2023-10-30T20:57:15.260Z", - GSI1_SK: "wby-aco-654018a9a0f1c30008594e4c#0001", - SK: "REV#0001", - id: "wby-aco-654018a9a0f1c30008594e4c#0001", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:15.259Z", - locale: "en-US", - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540185ca0f1c30008594e34" - }, - "text@id": "654018a9a0f1c30008594e4c#0001", - "text@title": "Not Found", - "boolean@locked": true, - "datetime@createdOn": "2023-10-30T20:57:13.778Z", - "text@status": "published", - "text@path": "/not-found", - "text@pid": "654018a9a0f1c30008594e4c", - "datetime@savedOn": "2023-10-30T20:57:14.657Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - _ct: "2023-10-30T20:57:15.259Z", - tenant: "root", - createdOn: "2023-10-30T20:57:13.822Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-654018a9a0f1c30008594e4c", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#A" - }, - { - stats: { - views: 0, - submissions: 0 - }, - published: true, - formId: "654018e9a0f1c30008594e4f", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - name: "Form1", - TYPE: "fb.form", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "9m4KBx7r-", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "nLgWSfm7d", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - _md: "2023-10-30T20:58:28.026Z", - GSI1_SK: "1", - SK: "654018e9a0f1c30008594e4f#0001", - publishedOn: "2023-10-30T20:58:28.021Z", - id: "654018e9a0f1c30008594e4f#0001", - version: 1, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-30T20:58:28.021Z", - slug: "form1-654018e9a0f1c30008594e4f", - layout: [["9m4KBx7r-"], ["nLgWSfm7d"]], - _et: "FormBuilderForm", - _ct: "2023-10-30T20:58:28.026Z", - tenant: "root", - createdOn: "2023-10-30T20:58:17.178Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F", - GSI1_PK: "T#root#L#en-US#FB#F#654018e9a0f1c30008594e4f" - }, - { - stats: { - submissions: 3, - views: 3 - }, - published: true, - formId: "654018e9a0f1c30008594e4f", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - name: "Form1 v2", - TYPE: "fb.form", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "9m4KBx7r-", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "nLgWSfm7d", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "WtPAGFRMj", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - _md: "2023-10-30T21:01:30.797Z", - GSI1_SK: "2", - SK: "654018e9a0f1c30008594e4f#0002", - publishedOn: "2023-10-30T20:58:44.545Z", - id: "654018e9a0f1c30008594e4f#0002", - version: 2, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-30T20:58:44.545Z", - slug: "form1-654018e9a0f1c30008594e4f", - layout: [["9m4KBx7r-"], ["nLgWSfm7d"], ["WtPAGFRMj"]], - _et: "FormBuilderForm", - _ct: "2023-10-30T21:01:30.797Z", - tenant: "root", - createdOn: "2023-10-30T20:58:31.579Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F", - GSI1_PK: "T#root#L#en-US#FB#F#654018e9a0f1c30008594e4f" - }, - { - stats: { - views: 2, - submissions: 3 - }, - published: true, - formId: "654023ed6dfea3000959c62f", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - name: "Form2", - TYPE: "fb.form", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "NEmb72Y06", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "Z2OAXo7g4", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - _md: "2023-10-30T21:47:25.716Z", - GSI1_SK: "1", - SK: "654023ed6dfea3000959c62f#0001", - publishedOn: "2023-10-30T21:45:29.333Z", - id: "654023ed6dfea3000959c62f#0001", - version: 1, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-30T21:45:29.333Z", - slug: "form-2-654023ed6dfea3000959c62f", - layout: [["NEmb72Y06"], ["Z2OAXo7g4"]], - _et: "FormBuilderForm", - _ct: "2023-10-30T21:47:25.716Z", - tenant: "root", - createdOn: "2023-10-30T21:45:17.389Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F", - GSI1_PK: "T#root#L#en-US#FB#F#654023ed6dfea3000959c62f" - }, - { - _md: "2023-10-30T20:57:38.592Z", - data: { - path: "/", - value: "654018a9a0f1c30008594e4b#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#654018a9a0f1c30008594e4b#0001#/", - SK: "654018a9a0f1c30008594e4b#0001#/", - PK: "T#root#PS#TAG#pb-page#654018a9a0f1c30008594e4b#0001#/", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-30T20:57:38.592Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148f98841000981c723/pink-shape.svg", - "text@aliases": [], - "number@size": 390, - "text@name": "pink-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.886Z", - TYPE: "cms.entry.l", - entryId: "60228148f98841000981c723", - tenant: "root", - _md: "2023-10-30T20:57:12.886Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "60228148f98841000981c723#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228148f98841000981c723#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148f98841000981c723", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148f98841000981c723/pink-shape.svg", - "text@aliases": [], - "number@size": 390, - "text@name": "pink-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.885Z", - TYPE: "cms.entry", - entryId: "60228148f98841000981c723", - tenant: "root", - _md: "2023-10-30T20:57:12.885Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "60228148f98841000981c723#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228148f98841000981c723#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148f98841000981c723", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - tenant: "root", - version: "5.37.8", - _md: "2023-10-30T20:55:57.496Z", - SK: "ADMIN_USERS", - PK: "T#root#SYSTEM", - _et: "AdminUsers.System", - _ct: "2023-10-30T20:55:57.496Z", - TYPE: "adminUsers.system" - }, - { - tenant: "root", - version: "5.37.8", - _md: "2023-10-30T20:56:19.584Z", - SK: "CMS", - PK: "T#root#SYSTEM", - _et: "CmsSystem", - _ct: "2023-10-30T20:56:19.584Z" - }, - { - tenant: "root", - version: "5.37.8", - _md: "2023-10-30T20:57:27.459Z", - SK: "FB", - PK: "T#root#SYSTEM", - _et: "FormBuilderSystem", - _ct: "2023-10-30T20:57:27.459Z" - }, - { - tenant: "root", - version: "5.37.8", - _md: "2023-10-30T20:56:24.461Z", - SK: "FM", - PK: "T#root#SYSTEM", - _et: "System", - _ct: "2023-10-30T20:56:24.461Z" - }, - { - tenant: "root", - version: "5.37.8", - _md: "2023-10-30T20:56:07.001Z", - SK: "I18N", - PK: "T#root#SYSTEM", - _et: "I18NSystem", - _ct: "2023-10-30T20:56:07.000Z" - }, - { - tenant: "root", - version: "5.37.8", - _md: "2023-10-30T20:57:15.411Z", - SK: "PB", - PK: "T#root#SYSTEM", - _et: "PbSystem", - _ct: "2023-10-30T20:57:15.411Z" - }, - { - tenant: "root", - version: "5.37.8", - installedOn: "2023-10-30T20:55:40.875Z", - _md: "2023-10-30T20:55:40.875Z", - SK: "SECURITY", - PK: "T#root#SYSTEM", - _et: "SecuritySystem", - _ct: "2023-10-30T20:55:40.875Z" - }, - { - version: "5.37.8", - _md: "2023-10-30T20:55:36.638Z", - SK: "TENANCY", - PK: "T#root#SYSTEM", - _et: "TenancySystem", - _ct: "2023-10-30T20:55:36.637Z" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814bef4a940008b3ba26/scaffolding.svg", - "text@aliases": [], - "number@size": 33888, - "text@name": "scaffolding.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.899Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba26", - tenant: "root", - _md: "2023-10-30T20:57:12.899Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "6022814bef4a940008b3ba26#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814bef4a940008b3ba26#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba26", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814bef4a940008b3ba26/scaffolding.svg", - "text@aliases": [], - "number@size": 33888, - "text@name": "scaffolding.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.899Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba26", - tenant: "root", - _md: "2023-10-30T20:57:12.899Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "6022814bef4a940008b3ba26#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814bef4a940008b3ba26#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba26", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228145f98841000981c720/adaptable-icon.svg", - "text@aliases": [], - "number@size": 28918, - "text@name": "adaptable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.997Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c720", - tenant: "root", - _md: "2023-10-30T20:57:12.997Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "60228145f98841000981c720#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228145f98841000981c720#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c720", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228145f98841000981c720/adaptable-icon.svg", - "text@aliases": [], - "number@size": 28918, - "text@name": "adaptable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.996Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c720", - tenant: "root", - _md: "2023-10-30T20:57:12.996Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "60228145f98841000981c720#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228145f98841000981c720#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c720", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - modelId: "acoSearchRecord-pbpage", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "cms.entry.l", - entryId: "wby-aco-654018a9a0f1c30008594e4b", - _md: "2023-10-30T20:57:15.199Z", - GSI1_SK: "wby-aco-654018a9a0f1c30008594e4b#0001", - SK: "L", - id: "wby-aco-654018a9a0f1c30008594e4b#0001", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:15.198Z", - locale: "en-US", - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540185ca0f1c30008594e34" - }, - "text@id": "654018a9a0f1c30008594e4b#0001", - "text@title": "Welcome to Webiny", - "boolean@locked": true, - "datetime@createdOn": "2023-10-30T20:57:13.765Z", - "text@status": "published", - "text@path": "/welcome-to-webiny", - "text@pid": "654018a9a0f1c30008594e4b", - "datetime@savedOn": "2023-10-30T20:57:14.478Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - _ct: "2023-10-30T20:57:15.199Z", - tenant: "root", - createdOn: "2023-10-30T20:57:13.817Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-654018a9a0f1c30008594e4b", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#L" - }, - { - modelId: "acoSearchRecord-pbpage", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "cms.entry", - entryId: "wby-aco-654018a9a0f1c30008594e4b", - _md: "2023-10-30T20:57:15.199Z", - GSI1_SK: "wby-aco-654018a9a0f1c30008594e4b#0001", - SK: "REV#0001", - id: "wby-aco-654018a9a0f1c30008594e4b#0001", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:15.198Z", - locale: "en-US", - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540185ca0f1c30008594e34" - }, - "text@id": "654018a9a0f1c30008594e4b#0001", - "text@title": "Welcome to Webiny", - "boolean@locked": true, - "datetime@createdOn": "2023-10-30T20:57:13.765Z", - "text@status": "published", - "text@path": "/welcome-to-webiny", - "text@pid": "654018a9a0f1c30008594e4b", - "datetime@savedOn": "2023-10-30T20:57:14.478Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - _ct: "2023-10-30T20:57:15.199Z", - tenant: "root", - createdOn: "2023-10-30T20:57:13.817Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-654018a9a0f1c30008594e4b", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#A" - }, - { - modelId: "acoSearchRecord-pbpage", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "cms.entry.l", - entryId: "wby-aco-65401910a0f1c30008594e50", - _md: "2023-10-30T21:00:26.999Z", - GSI1_SK: "wby-aco-65401910a0f1c30008594e50#0001", - SK: "L", - id: "wby-aco-65401910a0f1c30008594e50#0001", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T21:00:26.981Z", - locale: "en-US", - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540185ca0f1c30008594e34" - }, - "text@id": "65401910a0f1c30008594e50#0001", - "text@title": "Page With Form", - "boolean@locked": true, - "datetime@createdOn": "2023-10-30T20:58:56.041Z", - "text@status": "published", - "text@path": "/untitled-lodduenc", - "text@pid": "65401910a0f1c30008594e50", - "datetime@savedOn": "2023-10-30T21:00:26.881Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Page With Form", - "text@content": "Page With Form", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - _ct: "2023-10-30T21:00:26.999Z", - tenant: "root", - createdOn: "2023-10-30T20:58:56.079Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-65401910a0f1c30008594e50", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#L" - }, - { - modelId: "acoSearchRecord-pbpage", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "cms.entry", - entryId: "wby-aco-65401910a0f1c30008594e50", - _md: "2023-10-30T21:00:26.981Z", - GSI1_SK: "wby-aco-65401910a0f1c30008594e50#0001", - SK: "REV#0001", - id: "wby-aco-65401910a0f1c30008594e50#0001", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T21:00:26.981Z", - locale: "en-US", - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540185ca0f1c30008594e34" - }, - "text@id": "65401910a0f1c30008594e50#0001", - "text@title": "Page With Form", - "boolean@locked": true, - "datetime@createdOn": "2023-10-30T20:58:56.041Z", - "text@status": "published", - "text@path": "/untitled-lodduenc", - "text@pid": "65401910a0f1c30008594e50", - "datetime@savedOn": "2023-10-30T21:00:26.881Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Page With Form", - "text@content": "Page With Form", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - _ct: "2023-10-30T21:00:26.981Z", - tenant: "root", - createdOn: "2023-10-30T20:58:56.079Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-65401910a0f1c30008594e50", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#A" - }, - { - savedOn: "2023-10-30T21:47:10.523Z", - locale: "en-US", - meta: { - submittedOn: "2023-10-30T21:47:10.276Z", - url: { - location: "https://d35k1bx4m6ql8.cloudfront.net/untitled-lodfiimg", - query: {} - }, - ip: "0.0.0.0" - }, - _et: "FormBuilderSubmission", - _ct: "2023-10-30T21:47:10.536Z", - TYPE: "fb.formSubmission", - tenant: "root", - _md: "2023-10-30T21:47:10.536Z", - createdOn: "2023-10-30T21:47:10.523Z", - data: { - firstName: "fname1", - lastName: "lname1" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "6540245e38144f000869c190", - form: { - name: "Form2", - layout: [["NEmb72Y06"], ["Z2OAXo7g4"]], - parent: "654023ed6dfea3000959c62f", - id: "654023ed6dfea3000959c62f#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "NEmb72Y06", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "Z2OAXo7g4", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - id: "6540245e38144f000869c190", - PK: "T#root#L#en-US#FB#FS#654023ed6dfea3000959c62f" - }, - { - savedOn: "2023-10-30T21:47:18.179Z", - locale: "en-US", - meta: { - submittedOn: "2023-10-30T21:47:17.837Z", - url: { - location: "https://d35k1bx4m6ql8.cloudfront.net/untitled-lodfiimg", - query: {} - }, - ip: "0.0.0.0" - }, - _et: "FormBuilderSubmission", - _ct: "2023-10-30T21:47:18.179Z", - TYPE: "fb.formSubmission", - tenant: "root", - _md: "2023-10-30T21:47:18.179Z", - createdOn: "2023-10-30T21:47:18.179Z", - data: { - firstName: "fname2", - lastName: "lname2" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "6540246638144f000869c191", - form: { - name: "Form2", - layout: [["NEmb72Y06"], ["Z2OAXo7g4"]], - parent: "654023ed6dfea3000959c62f", - id: "654023ed6dfea3000959c62f#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "NEmb72Y06", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "Z2OAXo7g4", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - id: "6540246638144f000869c191", - PK: "T#root#L#en-US#FB#FS#654023ed6dfea3000959c62f" - }, - { - savedOn: "2023-10-30T21:47:25.681Z", - locale: "en-US", - meta: { - submittedOn: "2023-10-30T21:47:25.496Z", - url: { - location: "https://d35k1bx4m6ql8.cloudfront.net/untitled-lodfiimg", - query: {} - }, - ip: "0.0.0.0" - }, - _et: "FormBuilderSubmission", - _ct: "2023-10-30T21:47:25.681Z", - TYPE: "fb.formSubmission", - tenant: "root", - _md: "2023-10-30T21:47:25.681Z", - createdOn: "2023-10-30T21:47:25.681Z", - data: { - firstName: "fname3", - lastName: "lname3" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "6540246d38144f000869c192", - form: { - name: "Form2", - layout: [["NEmb72Y06"], ["Z2OAXo7g4"]], - parent: "654023ed6dfea3000959c62f", - id: "654023ed6dfea3000959c62f#0001", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "NEmb72Y06", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "Z2OAXo7g4", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - version: 1 - }, - webinyVersion: "5.37.8", - id: "6540246d38144f000869c192", - PK: "T#root#L#en-US#FB#FS#654023ed6dfea3000959c62f" - }, - { - _md: "2023-10-30T20:57:25.456Z", - data: { - path: "/welcome-to-webiny", - value: "main-menu", - tenant: "root", - key: "pb-menu" - }, - GSI1_SK: "pb-menu#main-menu#/welcome-to-webiny", - SK: "main-menu#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-menu#main-menu#/welcome-to-webiny", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-30T20:57:25.456Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814bef4a940008b3ba27/security.svg", - "text@aliases": [], - "number@size": 17711, - "text@name": "security.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.889Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba27", - tenant: "root", - _md: "2023-10-30T20:57:12.889Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "6022814bef4a940008b3ba27#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814bef4a940008b3ba27#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba27", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814bef4a940008b3ba27/security.svg", - "text@aliases": [], - "number@size": 17711, - "text@name": "security.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.889Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba27", - tenant: "root", - _md: "2023-10-30T20:57:12.889Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "6022814bef4a940008b3ba27#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814bef4a940008b3ba27#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba27", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page.p", - _md: "2023-10-30T20:57:14.618Z", - GSI1_SK: "/welcome-to-webiny", - titleLC: "welcome to webiny", - SK: "654018a9a0f1c30008594e4b", - publishedOn: "2023-10-30T20:57:14.478Z", - id: "654018a9a0f1c30008594e4b#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-10-30T20:57:14.478Z", - pid: "654018a9a0f1c30008594e4b", - _et: "PbPages", - _ct: "2023-10-30T20:57:14.618Z", - tenant: "root", - createdOn: "2023-10-30T20:57:13.765Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P", - title: "Welcome to Webiny", - GSI1_PK: "T#root#L#en-US#PB#PATH" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page.p", - _md: "2023-10-30T20:57:14.658Z", - GSI1_SK: "/not-found", - titleLC: "not found", - SK: "654018a9a0f1c30008594e4c", - publishedOn: "2023-10-30T20:57:14.657Z", - id: "654018a9a0f1c30008594e4c#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-10-30T20:57:14.657Z", - pid: "654018a9a0f1c30008594e4c", - _et: "PbPages", - _ct: "2023-10-30T20:57:14.658Z", - tenant: "root", - createdOn: "2023-10-30T20:57:13.778Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P", - title: "Not Found", - GSI1_PK: "T#root#L#en-US#PB#PATH" - }, - { - content: { - compression: "jsonpack", - content: - "id|2OtxgA88gO|type|document|data|settings|elements|pEn5GXvoSI|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|0eAP7mqnZ8|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|Y67t2RQZbz|cell|size|DmUf1q1n65|form|parent|654018e9a0f1c30008594e4f#0002|revision|latest|path^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|1B]|N|$A|Q]]]|6|@$0|14|2|15|4|$5|$15|$16|17|18|19]]]|6|@]|1A|@1|7|R]]]|1A|@1|7|R]]]|1A|@1|7]]]|1A|@1]]]|1A|@]]" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page.p", - _md: "2023-10-30T21:00:26.883Z", - GSI1_SK: "/untitled-lodduenc", - titleLC: "page with form", - SK: "65401910a0f1c30008594e50", - publishedOn: "2023-10-30T21:00:26.881Z", - id: "65401910a0f1c30008594e50#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-lodduenc", - locale: "en-US", - savedOn: "2023-10-30T21:00:26.881Z", - pid: "65401910a0f1c30008594e50", - _et: "PbPages", - _ct: "2023-10-30T21:00:26.883Z", - tenant: "root", - createdOn: "2023-10-30T20:58:56.041Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P", - title: "Page With Form", - GSI1_PK: "T#root#L#en-US#PB#PATH" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page.p", - _md: "2023-10-30T21:46:53.739Z", - GSI1_SK: "/untitled-lodfiimg", - titleLC: "page with form 2", - SK: "654024046dfea3000959c630", - publishedOn: "2023-10-30T21:46:53.736Z", - id: "654024046dfea3000959c630#0002", - editor: "page-builder", - version: 2, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-lodfiimg", - createdFrom: "654024046dfea3000959c630#0001", - locale: "en-US", - savedOn: "2023-10-30T21:46:53.736Z", - pid: "654024046dfea3000959c630", - _et: "PbPages", - _ct: "2023-10-30T21:46:53.739Z", - tenant: "root", - createdOn: "2023-10-30T21:46:38.236Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#P", - title: "Page With Form 2", - GSI1_PK: "T#root#L#en-US#PB#PATH" - }, - { - _md: "2023-10-30T20:57:34.240Z", - data: { - path: "/not-found", - value: "654018a9a0f1c30008594e4c#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#654018a9a0f1c30008594e4c#0001#/not-found", - SK: "654018a9a0f1c30008594e4c#0001#/not-found", - PK: "T#root#PS#TAG#pb-page#654018a9a0f1c30008594e4c#0001#/not-found", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-30T20:57:34.240Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - // { - // tenant: "root", - // code: "en-US", - // _md: "2023-10-30T20:56:06.965Z", - // default: true, - // createdOn: "2023-10-30T20:56:06.956Z", - // SK: "default", - // webinyVersion: "5.37.8", - // PK: "T#root#I18N#L#D", - // _et: "I18NLocale", - // createdBy: { - // type: "admin", - // displayName: "ad min", - // id: "6540185ca0f1c30008594e34" - // }, - // _ct: "2023-10-30T20:56:06.965Z" - // }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": - "demo-pages/6022814a0df4b000088735bb/webiny-serverless-application-framework.svg", - "text@aliases": [], - "number@size": 3661, - "text@name": "webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.823Z", - TYPE: "cms.entry.l", - entryId: "6022814a0df4b000088735bb", - tenant: "root", - _md: "2023-10-30T20:57:12.823Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "6022814a0df4b000088735bb#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814a0df4b000088735bb#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814a0df4b000088735bb", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": - "demo-pages/6022814a0df4b000088735bb/webiny-serverless-application-framework.svg", - "text@aliases": [], - "number@size": 3661, - "text@name": "webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.823Z", - TYPE: "cms.entry", - entryId: "6022814a0df4b000088735bb", - tenant: "root", - _md: "2023-10-30T20:57:12.823Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "6022814a0df4b000088735bb#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814a0df4b000088735bb#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814a0df4b000088735bb", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - SK: "default", - eventTargetId: "wby-apw-scheduler-event-rule-target-dffa50f", - PK: "APW#SETTINGS", - mainGraphqlFunctionArn: - "arn:aws:lambda:eu-central-1:674320871285:function:wby-graphql-8b542f3", - eventRuleName: "wby-apw-scheduler-event-rule-e75bead" - }, - { - _md: "2023-10-30T20:57:38.546Z", - data: { - path: "/", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { - value: "654018a9a0f1c30008594e4b#0001", - key: "pb-page" - }, - { - value: "main-menu", - key: "pb-menu" - } - ] - } - }, - { - name: "graphql.json", - type: "application/json", - meta: {} - } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/", - SK: "A", - PK: "T#root#PS#RENDER#/", - _et: "PrerenderingServiceRender", - _ct: "2023-10-30T20:57:38.546Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814b0df4b000088735bc/webiny-logo.svg", - "text@aliases": [], - "number@size": 5053, - "text@name": "webiny-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.798Z", - TYPE: "cms.entry.l", - entryId: "6022814b0df4b000088735bc", - tenant: "root", - _md: "2023-10-30T20:57:12.798Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "6022814b0df4b000088735bc#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814b0df4b000088735bc#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814b0df4b000088735bc", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814b0df4b000088735bc/webiny-logo.svg", - "text@aliases": [], - "number@size": 5053, - "text@name": "webiny-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.798Z", - TYPE: "cms.entry", - entryId: "6022814b0df4b000088735bc", - tenant: "root", - _md: "2023-10-30T20:57:12.798Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "6022814b0df4b000088735bc#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814b0df4b000088735bc#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814b0df4b000088735bc", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - savedOn: "2023-10-30T21:01:10.015Z", - locale: "en-US", - meta: { - submittedOn: "2023-10-30T21:01:09.776Z", - url: { - location: "https://d35k1bx4m6ql8.cloudfront.net/untitled-lodduenc", - query: {} - }, - ip: "0.0.0.0" - }, - _et: "FormBuilderSubmission", - _ct: "2023-10-30T21:01:10.016Z", - TYPE: "fb.formSubmission", - tenant: "root", - _md: "2023-10-30T21:01:10.016Z", - createdOn: "2023-10-30T21:01:10.015Z", - data: { - firstName: "fname1", - lastName: "lname1", - jobTitle: "job1" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "65401996fcb833000804ebfa", - form: { - name: "Form1 v2", - layout: [["9m4KBx7r-"], ["nLgWSfm7d"], ["WtPAGFRMj"]], - parent: "654018e9a0f1c30008594e4f", - id: "654018e9a0f1c30008594e4f#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "9m4KBx7r-", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "nLgWSfm7d", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "WtPAGFRMj", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - id: "65401996fcb833000804ebfa", - PK: "T#root#L#en-US#FB#FS#654018e9a0f1c30008594e4f" - }, - { - savedOn: "2023-10-30T21:01:19.616Z", - locale: "en-US", - meta: { - submittedOn: "2023-10-30T21:01:19.368Z", - url: { - location: "https://d35k1bx4m6ql8.cloudfront.net/untitled-lodduenc", - query: {} - }, - ip: "0.0.0.0" - }, - _et: "FormBuilderSubmission", - _ct: "2023-10-30T21:01:19.617Z", - TYPE: "fb.formSubmission", - tenant: "root", - _md: "2023-10-30T21:01:19.617Z", - createdOn: "2023-10-30T21:01:19.616Z", - data: { - firstName: "fname2", - lastName: "lname2", - jobTitle: "job2" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "6540199ffcb833000804ebfb", - form: { - name: "Form1 v2", - layout: [["9m4KBx7r-"], ["nLgWSfm7d"], ["WtPAGFRMj"]], - parent: "654018e9a0f1c30008594e4f", - id: "654018e9a0f1c30008594e4f#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "9m4KBx7r-", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "nLgWSfm7d", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "WtPAGFRMj", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - id: "6540199ffcb833000804ebfb", - PK: "T#root#L#en-US#FB#FS#654018e9a0f1c30008594e4f" - }, - { - savedOn: "2023-10-30T21:01:30.755Z", - locale: "en-US", - meta: { - submittedOn: "2023-10-30T21:01:30.347Z", - url: { - location: "https://d35k1bx4m6ql8.cloudfront.net/untitled-lodduenc", - query: {} - }, - ip: "0.0.0.0" - }, - _et: "FormBuilderSubmission", - _ct: "2023-10-30T21:01:30.755Z", - TYPE: "fb.formSubmission", - tenant: "root", - _md: "2023-10-30T21:01:30.755Z", - createdOn: "2023-10-30T21:01:30.755Z", - data: { - firstName: "fname3", - lastName: "lname3", - jobTitle: "job3" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "654019aafcb833000804ebfc", - form: { - name: "Form1 v2", - layout: [["9m4KBx7r-"], ["nLgWSfm7d"], ["WtPAGFRMj"]], - parent: "654018e9a0f1c30008594e4f", - id: "654018e9a0f1c30008594e4f#0002", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "9m4KBx7r-", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "nLgWSfm7d", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "WtPAGFRMj", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - version: 2 - }, - webinyVersion: "5.37.8", - id: "654019aafcb833000804ebfc", - PK: "T#root#L#en-US#FB#FS#654018e9a0f1c30008594e4f" - }, - { - _md: "2023-10-30T20:25:19.072Z", - data: { - description: "starting point for applicable migrations detection", - reason: "initial migration", - id: "5.37.8-000", - finishedOn: "2023-10-30T20:25:19.072Z", - startedOn: "2023-10-30T20:25:19.072Z" - }, - GSI1_SK: "5.37.8-000", - SK: "A", - PK: "MIGRATION#5.37.8-000", - _et: "Migration", - _ct: "2023-10-30T20:25:19.072Z", - TYPE: "migration", - GSI1_PK: "MIGRATIONS" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page", - _md: "2023-10-30T20:57:14.657Z", - titleLC: "not found", - SK: "1", - publishedOn: "2023-10-30T20:57:14.657Z", - id: "654018a9a0f1c30008594e4c#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-10-30T20:57:14.657Z", - pid: "654018a9a0f1c30008594e4c", - _et: "PbPages", - _ct: "2023-10-30T20:57:14.657Z", - tenant: "root", - createdOn: "2023-10-30T20:57:13.778Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#654018a9a0f1c30008594e4c", - title: "Not Found" - }, - { - _md: "2023-10-30T21:46:58.225Z", - data: { - path: "/untitled-lodfiimg", - value: "654023ed6dfea3000959c62f", - tenant: "root", - key: "fb-form" - }, - GSI1_SK: "fb-form#654023ed6dfea3000959c62f#/untitled-lodfiimg", - SK: "654023ed6dfea3000959c62f#/untitled-lodfiimg", - PK: "T#root#PS#TAG#fb-form#654023ed6dfea3000959c62f#/untitled-lodfiimg", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-30T21:46:58.225Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "acoSearchRecord-pbpage", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "cms.entry.l", - entryId: "wby-aco-654024046dfea3000959c630", - _md: "2023-10-30T21:46:53.838Z", - GSI1_SK: "wby-aco-654024046dfea3000959c630#0001", - SK: "L", - id: "wby-aco-654024046dfea3000959c630#0001", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T21:46:53.836Z", - locale: "en-US", - values: { - "object@data": { - "number@version": 2, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540185ca0f1c30008594e34" - }, - "text@id": "654024046dfea3000959c630#0002", - "text@title": "Page With Form 2", - "boolean@locked": true, - "datetime@createdOn": "2023-10-30T21:46:38.236Z", - "text@status": "published", - "text@path": "/untitled-lodfiimg", - "text@pid": "654024046dfea3000959c630", - "datetime@savedOn": "2023-10-30T21:46:53.736Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Page With Form 2", - "text@content": "Page With Form 2", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - _ct: "2023-10-30T21:46:53.838Z", - tenant: "root", - createdOn: "2023-10-30T21:45:40.578Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-654024046dfea3000959c630", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#L" - }, - { - modelId: "acoSearchRecord-pbpage", - status: "draft", - meta: {}, - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "cms.entry", - entryId: "wby-aco-654024046dfea3000959c630", - _md: "2023-10-30T21:46:53.837Z", - GSI1_SK: "wby-aco-654024046dfea3000959c630#0001", - SK: "REV#0001", - id: "wby-aco-654024046dfea3000959c630#0001", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T21:46:53.836Z", - locale: "en-US", - values: { - "object@data": { - "number@version": 2, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "6540185ca0f1c30008594e34" - }, - "text@id": "654024046dfea3000959c630#0002", - "text@title": "Page With Form 2", - "boolean@locked": true, - "datetime@createdOn": "2023-10-30T21:46:38.236Z", - "text@status": "published", - "text@path": "/untitled-lodfiimg", - "text@pid": "654024046dfea3000959c630", - "datetime@savedOn": "2023-10-30T21:46:53.736Z" - }, - "object@location": { - "text@folderId": "root" - }, - "text@title": "Page With Form 2", - "text@content": "Page With Form 2", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - _ct: "2023-10-30T21:46:53.837Z", - tenant: "root", - createdOn: "2023-10-30T21:45:40.578Z", - locked: false, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-654024046dfea3000959c630", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#A" - }, - { - _md: "2023-10-30T21:46:58.225Z", - data: { - path: "/untitled-lodfiimg", - value: "654024046dfea3000959c630#0002", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#654024046dfea3000959c630#0002#/untitled-lodfiimg", - SK: "654024046dfea3000959c630#0002#/untitled-lodfiimg", - PK: "T#root#PS#TAG#pb-page#654024046dfea3000959c630#0002#/untitled-lodfiimg", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-30T21:46:58.225Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - stats: { - submissions: 3, - views: 3 - }, - published: true, - formId: "654018e9a0f1c30008594e4f", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - name: "Form1 v2", - TYPE: "fb.form.latest", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "9m4KBx7r-", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "nLgWSfm7d", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "WtPAGFRMj", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - _md: "2023-10-30T21:01:30.798Z", - SK: "654018e9a0f1c30008594e4f", - publishedOn: "2023-10-30T20:58:44.545Z", - id: "654018e9a0f1c30008594e4f#0002", - version: 2, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-30T20:58:44.545Z", - slug: "form1-654018e9a0f1c30008594e4f", - layout: [["9m4KBx7r-"], ["nLgWSfm7d"], ["WtPAGFRMj"]], - _et: "FormBuilderForm", - _ct: "2023-10-30T21:01:30.798Z", - tenant: "root", - createdOn: "2023-10-30T20:58:31.579Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F#L" - }, - { - stats: { - views: 2, - submissions: 3 - }, - published: true, - formId: "654023ed6dfea3000959c62f", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - name: "Form2", - TYPE: "fb.form.latest", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "NEmb72Y06", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "Z2OAXo7g4", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - _md: "2023-10-30T21:47:25.716Z", - SK: "654023ed6dfea3000959c62f", - publishedOn: "2023-10-30T21:45:29.333Z", - id: "654023ed6dfea3000959c62f#0001", - version: 1, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-30T21:45:29.333Z", - slug: "form-2-654023ed6dfea3000959c62f", - layout: [["NEmb72Y06"], ["Z2OAXo7g4"]], - _et: "FormBuilderForm", - _ct: "2023-10-30T21:47:25.716Z", - tenant: "root", - createdOn: "2023-10-30T21:45:17.389Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F#L" - }, - { - _md: "2023-10-30T20:57:34.185Z", - data: { - path: "/not-found", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { - value: "654018a9a0f1c30008594e4c#0001", - key: "pb-page" - }, - { - value: "main-menu", - key: "pb-menu" - } - ] - } - }, - { - name: "graphql.json", - type: "application/json", - meta: {} - } - ], - locale: "en-US", - tenant: "root", - tags: [ - { - value: true, - key: "notFoundPage" - } - ] - }, - GSI1_SK: "/not-found", - SK: "A", - PK: "T#root#PS#RENDER#/not-found", - _et: "PrerenderingServiceRender", - _ct: "2023-10-30T20:57:34.185Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - content: { - compression: "jsonpack", - content: - "id|7wwoVlIUyb|type|document|data|settings|elements|7EGue0N6NS|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|zmkMESdHOt|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|htOxcLlMsy|cell|size|path^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|15]|N|$A|Q]]]|6|@]|14|@1|7|R]]]|14|@1|7]]]|14|@1]]]|14|@]]" - }, - status: "unpublished", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page", - _md: "2023-10-30T21:46:53.739Z", - titleLC: "page with form 2", - SK: "1", - publishedOn: "2023-10-30T21:46:14.036Z", - id: "654024046dfea3000959c630#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-lodfiimg", - locale: "en-US", - savedOn: "2023-10-30T21:46:14.036Z", - pid: "654024046dfea3000959c630", - _et: "PbPages", - _ct: "2023-10-30T21:46:53.739Z", - tenant: "root", - createdOn: "2023-10-30T21:45:40.554Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#654024046dfea3000959c630", - title: "Page With Form 2" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page", - _md: "2023-10-30T21:46:53.738Z", - titleLC: "page with form 2", - SK: "2", - publishedOn: "2023-10-30T21:46:53.736Z", - id: "654024046dfea3000959c630#0002", - editor: "page-builder", - version: 2, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-lodfiimg", - createdFrom: "654024046dfea3000959c630#0001", - locale: "en-US", - savedOn: "2023-10-30T21:46:53.736Z", - pid: "654024046dfea3000959c630", - _et: "PbPages", - _ct: "2023-10-30T21:46:53.738Z", - tenant: "root", - createdOn: "2023-10-30T21:46:38.236Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#654024046dfea3000959c630", - title: "Page With Form 2" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page.l", - _md: "2023-10-30T20:57:14.618Z", - titleLC: "welcome to webiny", - SK: "654018a9a0f1c30008594e4b", - publishedOn: "2023-10-30T20:57:14.478Z", - id: "654018a9a0f1c30008594e4b#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-10-30T20:57:14.478Z", - pid: "654018a9a0f1c30008594e4b", - _et: "PbPages", - _ct: "2023-10-30T20:57:14.618Z", - tenant: "root", - createdOn: "2023-10-30T20:57:13.765Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#L", - title: "Welcome to Webiny" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page.l", - _md: "2023-10-30T20:57:14.658Z", - titleLC: "not found", - SK: "654018a9a0f1c30008594e4c", - publishedOn: "2023-10-30T20:57:14.657Z", - id: "654018a9a0f1c30008594e4c#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - meta: [] - }, - general: { - layout: "static" - }, - social: { - meta: [] - } - }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-10-30T20:57:14.657Z", - pid: "654018a9a0f1c30008594e4c", - _et: "PbPages", - _ct: "2023-10-30T20:57:14.658Z", - tenant: "root", - createdOn: "2023-10-30T20:57:13.778Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#L", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: - "id|2OtxgA88gO|type|document|data|settings|elements|pEn5GXvoSI|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|0eAP7mqnZ8|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|Y67t2RQZbz|cell|size|DmUf1q1n65|form|parent|654018e9a0f1c30008594e4f#0002|revision|latest|path^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|S|$13|1B]|N|$A|Q]]]|6|@$0|14|2|15|4|$5|$15|$16|17|18|19]]]|6|@]|1A|@1|7|R]]]|1A|@1|7|R]]]|1A|@1|7]]]|1A|@1]]]|1A|@]]" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page.l", - _md: "2023-10-30T21:00:26.883Z", - titleLC: "page with form", - SK: "65401910a0f1c30008594e50", - publishedOn: "2023-10-30T21:00:26.881Z", - id: "65401910a0f1c30008594e50#0001", - editor: "page-builder", - version: 1, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-lodduenc", - locale: "en-US", - savedOn: "2023-10-30T21:00:26.881Z", - pid: "65401910a0f1c30008594e50", - _et: "PbPages", - _ct: "2023-10-30T21:00:26.883Z", - tenant: "root", - createdOn: "2023-10-30T20:58:56.041Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#L", - title: "Page With Form" - }, - { - content: { - compression: "jsonpack", - content: "REDACTED" - }, - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - TYPE: "pb.page.l", - _md: "2023-10-30T21:46:53.738Z", - titleLC: "page with form 2", - SK: "654024046dfea3000959c630", - publishedOn: "2023-10-30T21:46:53.736Z", - id: "654024046dfea3000959c630#0002", - editor: "page-builder", - version: 2, - settings: { - seo: { - title: null, - description: null, - meta: [] - }, - general: { - layout: "static", - tags: null - }, - social: { - description: null, - image: null, - title: null, - meta: [] - } - }, - path: "/untitled-lodfiimg", - createdFrom: "654024046dfea3000959c630#0001", - locale: "en-US", - savedOn: "2023-10-30T21:46:53.736Z", - pid: "654024046dfea3000959c630", - _et: "PbPages", - _ct: "2023-10-30T21:46:53.738Z", - tenant: "root", - createdOn: "2023-10-30T21:46:38.236Z", - locked: true, - category: "static", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#PB#L", - title: "Page With Form 2" - }, - { - _md: "2023-10-30T21:00:31.277Z", - data: { - path: "/untitled-lodduenc", - value: "65401910a0f1c30008594e50#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#65401910a0f1c30008594e50#0001#/untitled-lodduenc", - SK: "65401910a0f1c30008594e50#0001#/untitled-lodduenc", - PK: "T#root#PS#TAG#pb-page#65401910a0f1c30008594e50#0001#/untitled-lodduenc", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-30T21:00:31.277Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814bef4a940008b3ba28/environments.svg", - "text@aliases": [], - "number@size": 132767, - "text@name": "environments.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.919Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba28", - tenant: "root", - _md: "2023-10-30T20:57:12.919Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "6022814bef4a940008b3ba28#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814bef4a940008b3ba28#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba28", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.740Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814bef4a940008b3ba28/environments.svg", - "text@aliases": [], - "number@size": 132767, - "text@name": "environments.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.919Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba28", - tenant: "root", - _md: "2023-10-30T20:57:12.919Z", - createdOn: "2023-10-30T20:57:12.740Z", - locked: false, - GSI1_SK: "6022814bef4a940008b3ba28#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814bef4a940008b3ba28#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba28", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - icon: "fas/star", - savedOn: "2023-10-30T20:56:19.556Z", - locale: "en-US", - slug: "ungrouped", - _et: "CmsGroups", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - name: "Ungrouped", - _ct: "2023-10-30T20:56:19.577Z", - TYPE: "cms.group", - tenant: "root", - _md: "2023-10-30T20:56:19.577Z", - createdOn: "2023-10-30T20:56:19.556Z", - SK: "65401873a0f1c30008594e35", - description: "A generic content model group", - webinyVersion: "5.37.8", - id: "65401873a0f1c30008594e35", - PK: "T#root#L#en-US#CMS#CMG" - }, - { - _md: "2023-10-30T21:00:31.242Z", - data: { - path: "/untitled-lodduenc", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { - value: "65401910a0f1c30008594e50#0001", - key: "pb-page" - }, - { - value: "main-menu", - key: "pb-menu" - }, - { - value: "654018e9a0f1c30008594e4f", - key: "fb-form" - } - ] - } - }, - { - name: "graphql.json", - type: "application/json", - meta: {} - } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/untitled-lodduenc", - SK: "A", - PK: "T#root#PS#RENDER#/untitled-lodduenc", - _et: "PrerenderingServiceRender", - _ct: "2023-10-30T21:00:31.242Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - _md: "2023-10-30T20:57:25.412Z", - data: { - path: "/welcome-to-webiny", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { - value: "654018a9a0f1c30008594e4b#0001", - key: "pb-page" - }, - { - value: "main-menu", - key: "pb-menu" - } - ] - } - }, - { - name: "graphql.json", - type: "application/json", - meta: {} - } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/welcome-to-webiny", - SK: "A", - PK: "T#root#PS#RENDER#/welcome-to-webiny", - _et: "PrerenderingServiceRender", - _ct: "2023-10-30T20:57:25.412Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.739Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814b7a77e60008f70d62/hero-block-bg.svg", - "text@aliases": [], - "number@size": 1864, - "text@name": "hero-block-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.762Z", - TYPE: "cms.entry.l", - entryId: "6022814b7a77e60008f70d62", - tenant: "root", - _md: "2023-10-30T20:57:12.762Z", - createdOn: "2023-10-30T20:57:12.739Z", - locked: false, - GSI1_SK: "6022814b7a77e60008f70d62#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814b7a77e60008f70d62#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814b7a77e60008f70d62", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.739Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814b7a77e60008f70d62/hero-block-bg.svg", - "text@aliases": [], - "number@size": 1864, - "text@name": "hero-block-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.761Z", - TYPE: "cms.entry", - entryId: "6022814b7a77e60008f70d62", - tenant: "root", - _md: "2023-10-30T20:57:12.761Z", - createdOn: "2023-10-30T20:57:12.739Z", - locked: false, - GSI1_SK: "6022814b7a77e60008f70d62#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814b7a77e60008f70d62#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814b7a77e60008f70d62", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - _et: "SecurityIdentity2Tenant", - _ct: "2023-10-30T20:55:57.474Z", - tenant: "root", - identity: "6540185ca0f1c30008594e34", - _md: "2023-10-30T20:55:57.474Z", - createdOn: "2023-10-30T20:55:57.473Z", - data: { - teams: [], - groups: [ - { - permissions: [ - { - name: "*" - } - ], - id: "6540184ca0f1c30008594e32" - } - ] - }, - GSI1_SK: "TYPE#group#IDENTITY#6540185ca0f1c30008594e34", - SK: "LINK#T#root", - webinyVersion: "5.37.8", - PK: "IDENTITY#6540185ca0f1c30008594e34", - type: "group", - GSI1_PK: "T#root" - }, - { - _md: "2023-10-30T21:46:58.144Z", - data: { - path: "/untitled-lodfiimg", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { - value: "654024046dfea3000959c630#0002", - key: "pb-page" - }, - { - value: "main-menu", - key: "pb-menu" - }, - { - value: "654023ed6dfea3000959c62f", - key: "fb-form" - } - ] - } - }, - { - name: "graphql.json", - type: "application/json", - meta: {} - } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/untitled-lodfiimg", - SK: "A", - PK: "T#root#PS#RENDER#/untitled-lodfiimg", - _et: "PrerenderingServiceRender", - _ct: "2023-10-30T21:46:58.144Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - _md: "2023-10-30T21:00:31.277Z", - data: { - path: "/untitled-lodduenc", - value: "main-menu", - tenant: "root", - key: "pb-menu" - }, - GSI1_SK: "pb-menu#main-menu#/untitled-lodduenc", - SK: "main-menu#/untitled-lodduenc", - PK: "T#root#PS#TAG#pb-menu#main-menu#/untitled-lodduenc", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-30T21:00:31.277Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - _md: "2023-10-30T21:00:31.277Z", - data: { - path: "/untitled-lodduenc", - value: "654018e9a0f1c30008594e4f", - tenant: "root", - key: "fb-form" - }, - GSI1_SK: "fb-form#654018e9a0f1c30008594e4f#/untitled-lodduenc", - SK: "654018e9a0f1c30008594e4f#/untitled-lodduenc", - PK: "T#root#PS#TAG#fb-form#654018e9a0f1c30008594e4f#/untitled-lodduenc", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-30T21:00:31.277Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - _md: "2023-10-30T20:25:19.100Z", - data: { - context: { - logGroupName: "/aws/lambda/wby-data-migration-c904ab0", - logStreamName: "2023/10/30/[$LATEST]897ddc6b6d7d493f95bd9731611be165" - }, - id: "6540112fc2f88d0008fd14fd", - finishedOn: "2023-10-30T20:25:19.100Z", - startedOn: "2023-10-30T20:25:19.010Z", - migrations: [ - { - id: "5.35.0-001", - status: "not-applicable" - }, - { - id: "5.35.0-002", - status: "not-applicable" - }, - { - id: "5.35.0-003", - status: "not-applicable" - }, - { - id: "5.35.0-004", - status: "not-applicable" - }, - { - id: "5.35.0-005", - status: "not-applicable" - }, - { - id: "5.35.0-006", - status: "not-applicable" - }, - { - id: "5.36.0-001", - status: "not-applicable" - }, - { - id: "5.37.0-001", - status: "not-applicable" - }, - { - id: "5.37.0-002", - status: "not-applicable" - }, - { - id: "5.37.0-003", - status: "not-applicable" - }, - { - id: "5.37.0-004", - status: "not-applicable" - }, - { - id: "5.37.0-005", - status: "not-applicable" - } - ], - status: "done" - }, - GSI1_SK: "6540112fc2f88d0008fd14fd", - SK: "A", - PK: "MIGRATION_RUN#6540112fc2f88d0008fd14fd", - _et: "MigrationRun", - _ct: "2023-10-30T20:25:19.100Z", - TYPE: "migration.run", - GSI1_PK: "MIGRATION_RUNS" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486ed41f0008bc2dac/data-icon.svg", - "text@aliases": [], - "number@size": 73153, - "text@name": "data-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.078Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dac", - tenant: "root", - _md: "2023-10-30T20:57:13.078Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "602281486ed41f0008bc2dac#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "602281486ed41f0008bc2dac#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dac", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486ed41f0008bc2dac/data-icon.svg", - "text@aliases": [], - "number@size": 73153, - "text@name": "data-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.078Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dac", - tenant: "root", - _md: "2023-10-30T20:57:13.078Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "602281486ed41f0008bc2dac#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "602281486ed41f0008bc2dac#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dac", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - tenant: "root", - code: "en-US", - _md: "2023-10-30T20:56:06.965Z", - default: true, - createdOn: "2023-10-30T20:56:06.956Z", - SK: "en-US", - webinyVersion: "5.37.8", - PK: "T#root#I18N#L", - _et: "I18NLocale", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:56:06.964Z" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814851197600081724ae/cost-icon.svg", - "text@aliases": [], - "number@size": 60602, - "text@name": "cost-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.016Z", - TYPE: "cms.entry.l", - entryId: "6022814851197600081724ae", - tenant: "root", - _md: "2023-10-30T20:57:13.016Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "6022814851197600081724ae#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "6022814851197600081724ae#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814851197600081724ae", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/6022814851197600081724ae/cost-icon.svg", - "text@aliases": [], - "number@size": 60602, - "text@name": "cost-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.016Z", - TYPE: "cms.entry", - entryId: "6022814851197600081724ae", - tenant: "root", - _md: "2023-10-30T20:57:13.016Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "6022814851197600081724ae#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "6022814851197600081724ae#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814851197600081724ae", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - SK: "default", - PK: "ADMIN#SETTINGS", - data: { - appUrl: "https://d3rt3q4zzmec8c.cloudfront.net" - } - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228145f98841000981c71f/octo-cat.svg", - "text@aliases": [], - "number@size": 30007, - "text@name": "octo-cat.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.217Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c71f", - tenant: "root", - _md: "2023-10-30T20:57:13.217Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "60228145f98841000981c71f#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228145f98841000981c71f#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c71f", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228145f98841000981c71f/octo-cat.svg", - "text@aliases": [], - "number@size": 30007, - "text@name": "octo-cat.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.216Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c71f", - tenant: "root", - _md: "2023-10-30T20:57:13.216Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "60228145f98841000981c71f#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228145f98841000981c71f#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c71f", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486639200009fd35ec/cms-benefits-shape.svg", - "text@aliases": [], - "number@size": 392, - "text@name": "cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.977Z", - TYPE: "cms.entry.l", - entryId: "602281486639200009fd35ec", - tenant: "root", - _md: "2023-10-30T20:57:12.977Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "602281486639200009fd35ec#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "602281486639200009fd35ec#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486639200009fd35ec", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486639200009fd35ec/cms-benefits-shape.svg", - "text@aliases": [], - "number@size": 392, - "text@name": "cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.977Z", - TYPE: "cms.entry", - entryId: "602281486639200009fd35ec", - tenant: "root", - _md: "2023-10-30T20:57:12.977Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "602281486639200009fd35ec#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "602281486639200009fd35ec#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486639200009fd35ec", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148fa244d0008c47c79/scalable-icon.svg", - "text@aliases": [], - "number@size": 7806, - "text@name": "scalable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.981Z", - TYPE: "cms.entry.l", - entryId: "60228148fa244d0008c47c79", - tenant: "root", - _md: "2023-10-30T20:57:12.981Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "60228148fa244d0008c47c79#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228148fa244d0008c47c79#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148fa244d0008c47c79", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148fa244d0008c47c79/scalable-icon.svg", - "text@aliases": [], - "number@size": 7806, - "text@name": "scalable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.981Z", - TYPE: "cms.entry", - entryId: "60228148fa244d0008c47c79", - tenant: "root", - _md: "2023-10-30T20:57:12.981Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "60228148fa244d0008c47c79#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228148fa244d0008c47c79#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148fa244d0008c47c79", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - // { - // _md: "2023-10-30T20:55:36.576Z", - // data: { - // parent: null, - // settings: { - // domains: [] - // }, - // webinyVersion: "5.37.8", - // savedOn: "2023-10-30T20:55:36.576Z", - // name: "Root", - // description: "The top-level Webiny tenant.", - // id: "root", - // createdOn: "2023-10-30T20:55:36.576Z", - // tags: [], - // status: "active" - // }, - // GSI1_SK: "T#null#2023-10-30T20:55:36.576Z", - // SK: "A", - // PK: "T#root", - // _et: "TenancyTenant", - // _ct: "2023-10-30T20:55:36.576Z", - // TYPE: "tenancy.tenant", - // GSI1_PK: "TENANTS" - // }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148fa244d0008c47c7a/community-icon.png", - "text@aliases": [], - "number@size": 17382, - "text@name": "community-icon.png", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.237Z", - TYPE: "cms.entry.l", - entryId: "60228148fa244d0008c47c7a", - tenant: "root", - _md: "2023-10-30T20:57:13.237Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "60228148fa244d0008c47c7a#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "60228148fa244d0008c47c7a#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148fa244d0008c47c7a", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/60228148fa244d0008c47c7a/community-icon.png", - "text@aliases": [], - "number@size": 17382, - "text@name": "community-icon.png", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:13.236Z", - TYPE: "cms.entry", - entryId: "60228148fa244d0008c47c7a", - tenant: "root", - _md: "2023-10-30T20:57:13.237Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "60228148fa244d0008c47c7a#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "60228148fa244d0008c47c7a#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148fa244d0008c47c7a", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - _md: "2023-10-30T20:57:15.357Z", - data: { - pages: { - notFound: "654018a9a0f1c30008594e4c", - home: "654018a9a0f1c30008594e4b" - }, - websiteUrl: null, - name: "devr", - prerendering: { - app: { - url: null - }, - meta: {}, - storage: { - name: null - } - }, - locale: "en-US", - type: "default", - tenant: "root" - }, - SK: "A", - PK: "T#root#L#en-US#PB#SETTINGS", - _et: "PbSettings", - _ct: "2023-10-30T20:57:15.357Z", - TYPE: "pb.settings" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486639200009fd35eb/serverless-cms-logo.svg", - "text@aliases": [], - "number@size": 1758, - "text@name": "serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.942Z", - TYPE: "cms.entry.l", - entryId: "602281486639200009fd35eb", - tenant: "root", - _md: "2023-10-30T20:57:12.942Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "602281486639200009fd35eb#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "L", - webinyVersion: "5.37.8", - id: "602281486639200009fd35eb#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486639200009fd35eb", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L" - }, - { - modelId: "fmFile", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-10-30T20:57:12.741Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { - "boolean@private": true - }, - "object@location": { - "text@folderId": "root" - }, - "text@key": "demo-pages/602281486639200009fd35eb/serverless-cms-logo.svg", - "text@aliases": [], - "number@size": 1758, - "text@name": "serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - _ct: "2023-10-30T20:57:12.941Z", - TYPE: "cms.entry", - entryId: "602281486639200009fd35eb", - tenant: "root", - _md: "2023-10-30T20:57:12.941Z", - createdOn: "2023-10-30T20:57:12.741Z", - locked: false, - GSI1_SK: "602281486639200009fd35eb#0001", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - SK: "REV#0001", - webinyVersion: "5.37.8", - id: "602281486639200009fd35eb#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486639200009fd35eb", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A" - }, - { - _md: "2023-10-30T20:56:24.441Z", - data: { - srcPrefix: "https://d21bjsqwpynoag.cloudfront.net/files/", - uploadMinFileSize: 0, - uploadMaxFileSize: 10737418240, - tenant: "root" - }, - SK: "A", - PK: "T#root#FM#SETTINGS", - _et: "FM.Settings", - _ct: "2023-10-30T20:56:24.441Z", - TYPE: "fm.settings" - }, - { - SK: "default", - PK: "PS#SETTINGS", - data: { - bucket: "wby-delivery-7786cd6", - cloudfrontId: "E6WO5U5F83QZA", - appUrl: "https://d2x6n6o1b4j7sv.cloudfront.net", - deliveryUrl: "https://d35k1bx4m6ql8.cloudfront.net", - sqsQueueUrl: - "https://sqs.eu-central-1.amazonaws.com/674320871285/wby-ps-render-queue-c5836cc.fifo" - } - }, - { - _md: "2023-10-30T21:46:58.225Z", - data: { - path: "/untitled-lodfiimg", - value: "main-menu", - tenant: "root", - key: "pb-menu" - }, - GSI1_SK: "pb-menu#main-menu#/untitled-lodfiimg", - SK: "main-menu#/untitled-lodfiimg", - PK: "T#root#PS#TAG#pb-menu#main-menu#/untitled-lodfiimg", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-30T21:46:58.225Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - stats: { - submissions: 0, - views: 0 - }, - published: true, - formId: "654018e9a0f1c30008594e4f", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - name: "Form1 v2", - TYPE: "fb.form.latestPublished", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "9m4KBx7r-", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "nLgWSfm7d", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "jobTitle", - options: [], - placeholderText: null, - _id: "WtPAGFRMj", - label: "Job title", - type: "text", - validation: [], - fieldId: "jobTitle" - } - ], - _md: "2023-10-30T20:58:44.577Z", - SK: "654018e9a0f1c30008594e4f", - publishedOn: "2023-10-30T20:58:44.545Z", - id: "654018e9a0f1c30008594e4f#0002", - version: 2, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-30T20:58:44.545Z", - slug: "form1-654018e9a0f1c30008594e4f", - layout: [["9m4KBx7r-"], ["nLgWSfm7d"], ["WtPAGFRMj"]], - _et: "FormBuilderForm", - _ct: "2023-10-30T20:58:44.577Z", - tenant: "root", - createdOn: "2023-10-30T20:58:31.579Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F#LP" - }, - { - stats: { - views: 0, - submissions: 0 - }, - published: true, - formId: "654023ed6dfea3000959c62f", - status: "published", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - name: "Form2", - TYPE: "fb.form.latestPublished", - fields: [ - { - settings: { - defaultValue: null - }, - helpText: null, - name: "firstName", - options: [], - placeholderText: null, - _id: "NEmb72Y06", - label: "First name", - type: "text", - validation: [], - fieldId: "firstName" - }, - { - settings: { - defaultValue: null - }, - helpText: null, - name: "lastName", - options: [], - placeholderText: null, - _id: "Z2OAXo7g4", - label: "Last name", - type: "text", - validation: [], - fieldId: "lastName" - } - ], - _md: "2023-10-30T21:45:29.349Z", - SK: "654023ed6dfea3000959c62f", - publishedOn: "2023-10-30T21:45:29.333Z", - id: "654023ed6dfea3000959c62f#0001", - version: 1, - settings: { - layout: { - renderer: "default" - }, - submitButtonLabel: null, - termsOfServiceMessage: null, - successMessage: null, - fullWidthSubmitButton: null, - reCaptcha: { - errorMessage: "Please verify that you are not a robot.", - enabled: null - } - }, - locale: "en-US", - savedOn: "2023-10-30T21:45:29.333Z", - slug: "form-2-654023ed6dfea3000959c62f", - layout: [["NEmb72Y06"], ["Z2OAXo7g4"]], - _et: "FormBuilderForm", - _ct: "2023-10-30T21:45:29.349Z", - tenant: "root", - createdOn: "2023-10-30T21:45:17.389Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - webinyVersion: "5.37.8", - PK: "T#root#L#en-US#FB#F#LP" - }, - { - _md: "2023-10-30T20:57:34.240Z", - data: { - path: "/not-found", - value: "main-menu", - tenant: "root", - key: "pb-menu" - }, - GSI1_SK: "pb-menu#main-menu#/not-found", - SK: "main-menu#/not-found", - PK: "T#root#PS#TAG#pb-menu#main-menu#/not-found", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-10-30T20:57:34.240Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - } - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - } - } - }, - { - PK: `T#root#I18N#L`, - SK: "en-US", - code: "en-US", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "otherTenant", - webinyVersion: "0.0.0" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.38.0/002/ddb/002.test.ts b/packages/migrations/__tests__/migrations/5.38.0/002/ddb/002.test.ts deleted file mode 100644 index 20f6bde55d5..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/002/ddb/002.test.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { MultiStepForms_5_38_0_002 } from "~/migrations/5.38.0/002/ddb"; -import { createFormsData } from "./002.data"; -import { migratedData } from "./002.data.migrated"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.38.0-002", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if no form submissions found", async () => { - const handler = createDdbMigrationHandler({ - table, - migrations: [MultiStepForms_5_38_0_002] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, createFormsData()); - - const handler = createDdbMigrationHandler({ - table, - migrations: [MultiStepForms_5_38_0_002] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - await expect( - scanTable(table, { - filters: [ - { - attr: "TYPE", - beginsWith: "fb.formSubmission" - } - ] - }) - ).resolves.toEqual(migratedData); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(table, createFormsData()); - - const handler = createDdbMigrationHandler({ - table, - migrations: [MultiStepForms_5_38_0_002] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.38.0/003/ddb/003.data.migrated.ts b/packages/migrations/__tests__/migrations/5.38.0/003/ddb/003.data.migrated.ts deleted file mode 100644 index 79e5b1343c2..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/003/ddb/003.data.migrated.ts +++ /dev/null @@ -1,28 +0,0 @@ -export const createMigratedData = (content: unknown, amount = 100) => { - return Array.from({ length: amount }).map((_, index) => { - const id = `65415260b431680008ad4598${index.toString().padStart(4, "0")}`; - - return { - content, - locale: "en-US", - entity: "PbPageBlocks", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "6496fbd7d6062300081e4727" - }, - name: `Logo Cloud ${index}`, - created: "2023-10-31T19:15:44.897Z", - TYPE: "pb.pageBlock", - tenant: "root", - modified: "2023-10-31T19:15:44.897Z", - blockCategory: "logo-cloud", - createdOn: "2023-10-31T19:15:44.896Z", - id, - SK: `A`, - PK: `T#root#L#en-US#PB#BLOCK#${id}`, - GSI1_PK: `T#root#L#en-US#PB#BLOCKS`, - GSI1_SK: `logo-cloud#${id}` - }; - }); -}; diff --git a/packages/migrations/__tests__/migrations/5.38.0/003/ddb/003.data.ts b/packages/migrations/__tests__/migrations/5.38.0/003/ddb/003.data.ts deleted file mode 100644 index fdb3e508c15..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/003/ddb/003.data.ts +++ /dev/null @@ -1,404 +0,0 @@ -export const rawContent = { - path: ["vYyuUH3RPN"], - type: "block", - data: { - settings: { - width: { - desktop: { - value: "100%" - } - }, - padding: { - "mobile-portrait": { - top: "20px", - advanced: true, - bottom: "20px" - }, - desktop: { - all: "10px", - right: "10px", - top: "40px", - advanced: true, - left: "10px", - bottom: "20px" - } - }, - horizontalAlignFlex: { - desktop: "center" - }, - verticalAlign: { - desktop: "flex-start" - }, - margin: { - desktop: { - right: "0px", - top: "0px", - left: "0px", - advanced: true, - bottom: "0px" - } - }, - background: { - desktop: { - color: null - } - } - }, - variables: [ - { - id: "e0LV1SGW8E", - label: "Title", - type: "heading", - value: '{"root":{"children":[{"children":[{"detail":0,"format":1,"mode":"normal","style":"font-size: 18px;","text":"LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT","type":"font-color-node","version":1,"themeColor":"color4","color":"#616161"}],"direction":"ltr","format":"","indent":0,"type":"heading-element","version":1,"tag":"h3","styles":[{"styleId":"heading3","type":"typography"}]}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}' - }, - { - id: "RN9CtkSL0b", - label: "Logo Image", - type: "image", - value: { - src: "https://d2b8of00q5koup.cloudfront.net/files/648c2584fc82b0000881f865/LogoCloudV1.svg", - id: "648c2584fc82b0000881f865" - } - } - ] - }, - elements: [ - { - path: ["vYyuUH3RPN", "6JBEyzzdUY"], - type: "grid", - data: { - settings: { - gridSettings: { - tablet: { - flexDirection: "column" - }, - "mobile-landscape": { - flexDirection: "column" - }, - desktop: { - flexDirection: "column" - } - }, - padding: { - desktop: { - all: "10px" - } - }, - horizontalAlignFlex: { - desktop: "flex-start" - }, - verticalAlign: { - tablet: "stretch", - desktop: "stretch", - "mobile-landscape": "flex-start", - "mobile-portrait": "flex-start" - }, - margin: { - desktop: { - right: "0px", - top: "0px", - left: "0px", - advanced: true, - bottom: "0px" - } - }, - grid: { - cellsType: "12", - rowCount: 2 - }, - width: { - desktop: { - value: "1100px" - } - } - } - }, - elements: [ - { - path: ["vYyuUH3RPN", "6JBEyzzdUY", "j3XI0MiQ3M"], - type: "cell", - data: { - settings: { - padding: { - desktop: { - all: "0px" - } - }, - horizontalAlignFlex: { - desktop: "flex-start" - }, - verticalAlign: { - desktop: "center" - }, - margin: { - desktop: { - right: "0px", - top: "0px", - left: "0px", - advanced: true, - bottom: "0px" - } - }, - grid: { - size: 12 - } - } - }, - elements: [ - { - path: ["vYyuUH3RPN", "6JBEyzzdUY", "j3XI0MiQ3M", "h8QcsWnLnp"], - type: "heading", - data: { - settings: { - padding: { - desktop: { - all: "0px" - } - }, - margin: { - desktop: { - all: "0px" - } - } - }, - variableId: "e0LV1SGW8E", - text: { - data: { - text: '{"root":{"children":[{"children":[{"detail":0,"format":1,"mode":"normal","style":"font-size: 18px;","text":"LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT","type":"font-color-node","version":1,"themeColor":"color4","color":"#616161"}],"direction":"ltr","format":"","indent":0,"type":"heading-element","version":1,"tag":"h3","styles":[{"styleId":"heading3","type":"typography"}]}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}' - }, - desktop: { - type: "heading", - alignment: "center", - tag: "h1" - } - } - }, - elements: [] - } - ] - }, - { - path: ["vYyuUH3RPN", "6JBEyzzdUY", "j3XI0MiQ3M"], - type: "cell", - data: { - settings: { - padding: { - desktop: { - all: "0px" - } - }, - horizontalAlignFlex: { - desktop: "flex-start" - }, - margin: { - desktop: { - right: "0px", - top: "0px", - left: "0px", - advanced: true, - bottom: "0px" - } - }, - grid: { - size: 12 - } - } - }, - elements: [ - { - path: ["vYyuUH3RPN", "6JBEyzzdUY", "j3XI0MiQ3M", "XUrIerQSDG"], - type: "image", - data: { - link: { - href: null - }, - settings: { - horizontalAlignFlex: { - desktop: "center" - }, - padding: { - desktop: { - all: "0px" - } - }, - margin: { - desktop: { - all: "0px" - } - } - }, - image: { - file: { - name: "Logo Cloud V1.svg", - id: "65415260b431680008ad4596", - src: "https://d26watk6chcr2b.cloudfront.net/files/65415260b431680008ad4596/LogoCloudV1.svg", - key: "65415260b431680008ad4596/LogoCloudV1.svg" - } - }, - variableId: "RN9CtkSL0b" - }, - elements: [] - } - ] - } - ] - } - ] -}; - -export const createBlocksData = (amount = 100) => { - return [ - ...Array.from({ length: amount }).map((_, index) => { - const id = `65415260b431680008ad4598${index.toString().padStart(4, "0")}`; - - return { - content: rawContent, - locale: "en-US", - preview: { - src: "https://d26watk6chcr2b.cloudfront.net/files/64b0f8a3445a6d00084c8730/pb-editor-page-element-oOWuv3xSdP.png", - meta: { - width: 2000, - private: true, - height: 1562 - }, - id: "64b0f70a6b39f50008e02fc3" - }, - _et: "PbPageBlocks", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "6496fbd7d6062300081e4727" - }, - name: `Logo Cloud ${index}`, - _ct: "2023-10-31T19:15:44.897Z", - TYPE: "pb.pageBlock", - tenant: "root", - _md: "2023-10-31T19:15:44.897Z", - blockCategory: "logo-cloud", - createdOn: "2023-10-31T19:15:44.896Z", - SK: id, - id, - PK: "T#root#L#en-US#PB#B" - }; - }), - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - } - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - } - } - }, - { - PK: `T#root#I18N#L`, - SK: "en-US", - code: "en-US", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "otherTenant", - webinyVersion: "0.0.0" - } - ]; -}; diff --git a/packages/migrations/__tests__/migrations/5.38.0/003/ddb/003.test.ts b/packages/migrations/__tests__/migrations/5.38.0/003/ddb/003.test.ts deleted file mode 100644 index 792d919c246..00000000000 --- a/packages/migrations/__tests__/migrations/5.38.0/003/ddb/003.test.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { PageBlocks_5_38_0_003 } from "~/migrations/5.38.0/003/ddb"; -import { createBlocksData, rawContent } from "./003.data"; -import { createMigratedData } from "./003.data.migrated"; -import { PbPageBlock } from "~/migrations/5.38.0/003/types"; -import { compressContent } from "~/migrations/5.38.0/003/ddb/compressContent"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -const NUMBER_OF_RECORDS = 1000; - -const ascending = (a: PbPageBlock, b: PbPageBlock) => { - if (a.id > b.id) { - return 1; - } - - if (a.id < b.id) { - return -1; - } - - return 0; -}; - -describe("5.38.0-003", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if blocks already migrated", async () => { - const handler = createDdbMigrationHandler({ - table, - migrations: [PageBlocks_5_38_0_003] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, createBlocksData(NUMBER_OF_RECORDS)); - - const handler = createDdbMigrationHandler({ - table, - migrations: [PageBlocks_5_38_0_003] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const newData = await scanTable(table, { - execute: true, - parse: true, - filters: [ - { - attr: "TYPE", - eq: "pb.pageBlock" - }, - { - attr: "GSI1_PK", - exists: true - } - ] - }); - - const compressedContent = await compressContent(rawContent); - - expect(newData.sort(ascending)).toEqual( - createMigratedData(compressedContent, NUMBER_OF_RECORDS) - ); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(table, createBlocksData(NUMBER_OF_RECORDS)); - - const handler = createDdbMigrationHandler({ - table, - migrations: [PageBlocks_5_38_0_003] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.ddbEsTableData.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.ddbEsTableData.ts deleted file mode 100644 index d1c5abe7915..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.ddbEsTableData.ts +++ /dev/null @@ -1,562 +0,0 @@ -export const ddbEsTableData = [ - { - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _md: "2023-12-27T12:43:01.141Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61U32/aMBD+VzzvlWT5ARTyxCYxbZrWVoNVWqepsuMDsjo2chxoVPG/7+wQxFrG+tC33PnuvvvuvssjLbUA+VnQjLJcz4CZfPUNcm1EsOZrtgTaoxswVaEVzeIelTpn1huPdKGlAONzjdaW7nq0YhsQV/hKkyhJgzgJkot5nGT9NIuiMEr6t7StIQFjQAXfZ+ioLLN1hQ5h2MKiowTLEAELbpisoXJoFh7sxDZrl3jNr9vWWmdhfblLbclHXSvRPeRaWVD2+Im4RKLQXDjzDZlpY5oe4bUldgXEUSaNrskWDBCp9X2hlhhrSK5rKXwmhzY5JPP3X6bk65R8uipdN5r/htxOjmfk+zgxqH2oYJ5oG1a4gOFglMdcpHk65jyOomjUT2M+yN/iZ9wRW58NPTeXPW5ugFkQH5pT4BdPKvb7XUVRVGvJmktWurpMkLJQB7R2NUw4HzJEamCLEjqsU6pIssE4HA+9Kg7x5zU0HKa3HeRBN+uay6JagWOo6pKDmRyLlmstgSm3mHuMyaypoZsksyss8A73GvilutZbPmyJpX/+Qvuvaf1vUP+a0ZPxoC5N4yWx5U2AtxecXadiXsdePoeGXnBonu+CyQoJ6616ZRJb4IVqbrpR00GYjsIEA4uXEOskjb+gYlG8cmuGbW8O/47nh/n8BE9cxm6HYRLNynaimf+4niJMXlah32AoEfvubo9+7N79AR8950ZcBQAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:43:01.141Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-12-27T12:43:00.682Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-12-27T12:43:00.663Z", - publishedOn: "2023-12-27T12:43:00.663Z", - pid: "658c1bd3c39bb10008431b5c", - locale: "en-US", - title: "Not Found", - createdOn: "2023-12-27T12:42:59.964Z", - version: 1, - tags: [], - path: "/not-found", - webinyVersion: "5.38.2", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - __type: "page", - id: "658c1bd3c39bb10008431b5c#0001", - titleLC: "not found", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - tenant: "root", - status: "published", - latest: true - }, - SK: "L", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - _et: "PbPagesEs", - _ct: "2023-12-27T12:43:00.682Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-12-27T12:43:00.682Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-12-27T12:43:00.663Z", - publishedOn: "2023-12-27T12:43:00.663Z", - pid: "658c1bd3c39bb10008431b5c", - published: true, - locale: "en-US", - title: "Not Found", - createdOn: "2023-12-27T12:42:59.964Z", - version: 1, - tags: [], - path: "/not-found", - webinyVersion: "5.38.2", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - __type: "page", - id: "658c1bd3c39bb10008431b5c#0001", - titleLC: "not found", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - tenant: "root", - status: "published" - }, - SK: "P", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - _et: "PbPagesEs", - _ct: "2023-12-27T12:43:00.682Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.522Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY/TMBD8K8g8kqSxk5JeniokkHgBJI6TDoQqO9lU5vxR2U56ocp/Z52kEkLH8cJbdnY9npl1LuQMQprxDpyX1pCabLNilzGSkACGm4CIszZgDSa48X2LwOucsR0tBXQlvynzPN+JQnBW4ZB8rv8SPykOaduCmpk6/U4qQEjZhuNHjbekXz4j0DjgAdqPURLLWZFSlrLqlrK6ZPV2l1Xb8iuOeT78e2jlejOS+rIq3O4aKqqiKW6EoFFhWVBRljjcSn9SfPzAdZTD2xdampjGeFrqWE4JsWfznxkxFdnJhdT0SiVkuC6FzgE9AF7UceUBfQceeo/HW8e7uJ2Bqx58lGPFD2jCPiYa5tMXXOVj2HdWteDm2OeNTsmCm0WXh6Z3MoyZH45kbT3AGK8AbdMTP4Lf/G2zmzOoxmpIg02XB3U4PEW4epYa2TaIv3rUCnum1wLc3suf2KVVRdHwakND4NGCsFYBN/uTkwMuk9TB9XC1EPgRrX/7vpZcSe5hRqblaV2DeCIDx893z2Q3/alkipSowIdFQ0Ju7z+9RcJG+2z+R7Jo6XBYvf4OT78AoS6E/W8DAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.522Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.706Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UMBT9K6Y+CgwUEIaniYkmvqiJ6yar2UwKXCZ1+0HawixO+O/eApMYs7u++MY99/b0nHPLhZyh5mq6BWO5VqQieZSWESUBcaCYcogYrR3WoJyZPrYIvI0pLZMs7/ZlmSVxHO/LpClogkP8pf5r/PRDUrcgFqZOfuACEBK6YfhR4S3ht68INAaYg/azl0RjmoYJDWlxk9Aqo1VeRkWefccxy8Z/D21c7yZSXTaFedkkdZE26b6uvcIyS5M6y3C45bYXbPrEpJfD2leSK5/G1K+1L+eA6LP6z4yYCu/4SqoGIQIyXpeSLAE9AF7UMWEBfTvmBovHW8M6v52RiQGsl6Prn9C4g0/ULacvuMpHd+i0aMEssS8bnYMVV6uuFkYQugcT2fFEtt4DTEtL6rBnJ7C751a7O4NotITQ6XB9Ucfjk4ybay6Rbof4m0cpsKcGWYM5WP4Lu7Qo4yy4GpHgmDdRay2AqUNv+IjrJJUzA1xNOHZC8z/ut5IJziwsyLw+rmsUT6Rg2Pn2hfTmv5XMnhIVWLdqCMjN3Zf3SNhIGy1/SeQtHY+b1z/h+TfXujKFcQMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.706Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.361Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLESZtsThUSSFwAiWUlQKiyk0kx64/KdtINVf474ySVENpdLtw8b8Zv3ryxL+QMXOjxDqwTRpOabJO8SiiJiAfNtEfEGuMxBu3t+K5FYJdSWmUFL1lZwi5N06or03YXLonn8i/xmGGRMi3ImalTb4UEhKRpGB5q7BJ//oRAY4F5aD8ESTSleZzRmJa3Ga0LWm+rpNwWX7HMseHfRSvX65HUl1XhtmoyXuZNfsN5FhQWecaLAotb4U6Sje+ZCnJY+0IJHdwYT0scwiki5qz/MyO6IjqxkOpeyogM16Vks0H3gI06Jh3g3J753uH11rIubGdgsgcX5Bj+Exq/D476+fYFV/ng952RLdjZ9nmjU7TgetH1A6yJeWgT82PihiNZ8/cwhj6gTHxiR3Cbp9a7OYNsjILYm3h5VYfDk6zr9EIh5QbxVw9KYk73ioPdO/ELs1m1K6LrPAo8C7NwYyQwvT9ZMeBWSe1tD9dZPDuiB9++ryGTgjmYkWl5Y1dHHjHDsvPdMyZOfyuZAiUqcH7REJHbLx/fIGGjXDJ/liRMdDiso/4JT78BE5zmZXgDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.361Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.486Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdJ8tQk5VUggcQEklpUAoWqSTIpZf1S2k26o8t93nKQSQlAu3Dxvxm/evLEv7Iw1V+M9Gsu1YhXbRlkZpSxgDhUoR4jR2lGMypnxbUvALk7TMsW4gKLAXRzHZVfE7S6jIn4r/5yOCRVJ3aKYmTr5hgskSOgG6FBRl/DTRwIag+Cwfe8lpXGahUkapsVdklZ5Wm3LqNjmX6jMwvDvopXr1ciqy6pwWzZJXWRN9rKuE68wz5I6z6m45fYkYHwH0suB9pnkyrsxnpbYh1PA9Fn9Z0ZyhXd8IVW9EAEbrktJZoMekBp1ICzS3A5cb+l6a6Dz2xlA9Gi9HF3/wMbtvaNuvn2hVT66fadFi2a2fd7oFCy4WnR15FFvMGzAtGF9jOxwZGvFA46+E0odnuCIdvO3BW/OKBotMXQ6XN7V4fAdjQ5vkK82cEnMG8JfPEpBOdXLGs3e8p+ULcsyuM4l0YGfqdZaIKj9yfCBtssqZ3q8zuTgSF58/baGIDhYnJFpeWtXZ/5gioHz/Q0zp9+VTJ6SFFi3aAjY3ecPr4mwkTaaP03kBzoc1kl/hacnhEueWoADAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.486Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:25.736Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA62ST3OCMBDFvwqTHitMEkCUU3X00EP/zGidqRcnQGgzDcGSoEXH795NrHV64dRb9u2P5eVtjmjPM6G6FW+0qBVKURyEo4CiATJcMWVAaeraQM2Vabr7AoRhPMppNB4PhzjJOMZ4lJSEDBOARF//Bo4EoKouuHST3GkCkqxzJjkoXPkvCxDyhjPDiydriWIa+oT6NFmSMKU4pXFAw3gNmGa7HijBZH2dNe1Qerw6JFkS5uE4y4h1GIUkiyKAC6G3knWPrLJ2WOFVQtk0uu25tuVpgOq9+ueJkIUoxXmoaqUcoN1lKcQF9MHhR6ZpOVzbMNNq+HrbZlLod+gAzmTLtXVk+Je5K+ln3rYHS81m09v5wvO9B5u3N/HmdpcedcGrN9/xB2qKCsdFH386b8o4V0dU1rLgjdukeyTQbth+dfFhaQhem4vt5evzHNi80oF7TYEEB5vNTxJ/5d+b9W/39A3SUG1TwgIAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:25.736Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:25.737Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Sy26DMBD8FeQeC8g2r4RTEyWHHPqQ0kZqL5HBmxYVDMUmKYny77UhRDn0cenNHs/Ozs76gIqSQ77gKO5PE2SjLdQyKwWKiY3yMmWquxzQpsw51B23LkuFjjaSbAv8Xr8iiqnnEOrQ6JF4McUxDdwIkxfUa+SgOSCcp6UGpGKqkRqomiTP5Btw05XlDUjTR8GnutnQj7Rp9oY1m02v50vLsW6NQ2tizYWqW4t20uLV6fh7qniBA/4bXxtOa2AK+LTtGrWVscV4kQktxjNZ5ay9Y0WPWj2cGc0wGKUkibzUGycJwRiPfI8kvm80wcgvBhb1x+MwxFEChhVtCAkjraJAMKGG6M5GfsyOesEpu3cdT6zqBmxU7sQ/e99Bkol2NWwcBa43cull5XfzXOkj0aTz/v76AjXbrYb9Hi/qhsEenx/mWiEtpNul6Va6aL0+DXkJH78AOM3x+bMCAAA=" - }, - SK: "P", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:25.737Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.543Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXYvUMBT9KxIfbTtt2jqZPg2Cgi8quC6ssgxpezvEzUdp0s7Wof/dm36AyO764lvuyc3JOecmV3KBUujxFjorjCYFyaOURZQExIHm2iHSGeOwBu268WONwNuYUpZkeXNgLEviOD6wpNrTGJvES/uvcZlgkzI1yJmpUR+EBISkqTguCrwl/PYVgaoD7qD+7CXRmKZhQkO6v0lokdEiZ9E+z75jm+XDv5tWrncjKa6rwpxVSblPq/RQll4hy9KkzDJsroVtJR8/ceXl8PqVEtqnMbZL7cspIOai/zMjpiIasZDqXsqADNtQkjmgB8CLGi4toG/HXW/xeN3xxk9n4LIH6+WY8idU7ugTdfPpK47y0R0bI2vo5tjniU7BgutNF28dLyWEojI6ssOZrA0PMPqLQJmw5Wewu+fmu7uArIyC0JlweVan0/O0q3+hkHOH+JtHJXFP96qE7mjFL9yl7JCwYLOkwHFvpzRGAtfHthMDDpYUruths+P4GWP4cb+WXApuYUam5ZltoTyRR8cvty/kOP2tZPKUqMC6RUNAbu6+vEfCStlo/i+Rt3Q6rV7/hKffjOAaTXsDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.543Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.702Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLESduQU4UEEhdAYlkJ0Kqyk0ll1h+R7aQbqvx3xkkqoRWUCzfPm/GbN2/sCzkDF3q8B+uE0aQi2yQvE0oi4kEz7RGxxniMQXs7vm8Q2KWUlllR7qApsjZN05LXtGEci8St/Es8ZlikTANyZmrVOyEBIWlqhocKu8RfPiNQW2Aemo9BEk1pHmc0pvu7jFYFrbZlst8W37DMseHfRSvXm5FUl1Xhtqwzvs/r/DXnWVBY5BkvCixuhOskGz8wFeSw5oUSOrgxdkscwiki5qz/MyO6IlqxkOpeyogM16Vks0GPgI1aJh3g3J753uH1xrI2bGdgsgcX5Bj+A2p/CI76+fYFV/nkD62RDdjZ9nmjU7TgetHVgVXChX6xqI1O3HAia8UjjKETKBN37ARu87cFb84ga6Mg9iZe3tXxeIN3dUAoJN0g/upJSczpXnGwByd+Yna3L1IaXYdS4FkYiBsjgelDZ8WAqyWVtz1cB/LshEZ8f1hDJgVzMCPT8tCutvzBEcvO9zecnJ4rmQIlKnB+0RCRu6+f3iJhrVwy/5gkjHQ8rrP+Dk+/AEx3J3R9AwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.702Z" - }, - { - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _md: "2023-12-27T12:43:01.123Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61YW3PbNhb+KxjtbPsiceVLmsT7EtVtU8/aiVu7yWx3djogeSRiBQIsAEqrdPzf9zsASVGOnPVDHzyWcDnX73znQH9MaluSvionFxNZ2DuSrqh+psK6ctbkjVzRZDrZkPPKmsnFyXSibSFD/PLHZGl1SS7eddaGycN04uWGyvfYnZzOT89mJ6ez05f3J6cX52cX83k2n3/z6yTJ0IQzZGa/3GHBBxlaj4XSyWXAQk1BQgMEbqRuybO2QP8Nb8Ku4Yu3+W0yLS2qEMV9JF3YmkSw4iPlyuz6A4U1gUw4dkQcW4n/arkmL1QQJP2Ot/NW6VLIptEqxcALaUqxpdyrgKPW4FQj7FKEioQnh7hp8pBhlk764NoitI5EvhONsxtVKrMSO9uKrQqVkMKRLHezWpYkLm/uomwpStqQtk0N8wWk1LS1bp2JO0RQ5pp6Y2GVF4U0wnNo2doK9/kTTKmtDxBUY4VVsgRtZekz8c6KovXB1rhhNW86+r1VjspeMGlVKyPZPxZlCFtDLB7dxXoBJ8KB87BMXLIBtFxSEdTm0GbXGg7c09HaVqqoRAEJXrya/1XEMwHeiQ83XvxM3uoNjBsJKCqpNZkVVjtNjmrLh7AevRidQLaiL2z/odX7LL+lwL6tjd32EpHAEgZ6sUC9IPtFyOBlSZn4jhptd1l/8G4vc7GXKX7oUym+x/YuVD0W+gB3gWQQlFHioUnPxFr2lcl983fxiydGcp+4C/FDq/UMZVesD+TetDqoGWpFAm6IbJu0LW6v/I0qnGVFqiBxDZ4wwBXyszBcIIqc2MpRmRzG0ov7inBY4g8w3I1kI5VBVKSb6D7gMB0chu+1NSpYNxa3bE0Rr06hKgAfZNg3LmLP+iU8R3p3WIlZtYamHKVOvcH3ITsK1g227E3x0RbcJ/7gHsP5iQLuwWXrBjoMwKHVGgG6vJ4KZ6HCrKZiqVCUqBoH/koecjg4ktkIFEskH+nznDgHR1e433gWAyPEV7JGTn1hG3y5o6J1KnS+FEi8klpouUNGlBHSHCBn77kpdFtyTSCgwEKnkRPXyUNjaCOByPA1isoaA5QncLKbnOYwg4a3TjbVT9cMkuwZ5hZyyX2DQ/dTq4o1ErUiQ47RnltExzWaP8fot57PXV5fiUa3K2U8BwmMo2Wdl3IPBTbK0HZsC45eRnpSnyJRDn5xLbADJS0l4C4WH+9QuivG2VQAag7ok8B4TOqZK0UjHYe3REr5fko9/Ezpfb8OcioWbajmU0GhyKCAje4MTkgCW3E76YMfc5xAY45IzkSswwZWk9koZ00d4cRszVEBfYG7xMoiniXIugiaE8rY74mJ4Ty6O6SdQ/lZYwMEezR2tFMf1b9EdGI9QMl/IuW9Nwis+oRgwhbzNVoUxHIhXDFmpGBug4lgfscNzINIQVldj0lCpQB7Vgb4RPmQrNG4UhnDLLemEBsLr8e1nBHBdTjui7x9jHC5iyZaiLH2uOKgZW9PZKY+QS1zpAH3kOGE6F1EQ7ArYvIQsIqBwPajzGxFnltZzx1PqV8I36I9xFtj/uYG3XNeF/4Y2W5SyT5n7JshGmnaSFTdDR8jPr1MEkTV5v0hDbi0rCLdvDLBSYNUNNYFqb34EYNH6pzd3TgT+jHLsy85yhT59fvh4x1jJwREJxUUTxjTpxIhU6MAVIcZpSZYgayY/ZjSt+ZHg8qilE2IOr8l3oIw0ImZeQQNtdoBcoqQAXcDrtEAlqmPSL4vYpuNwY/BtlsT+y3kX6O184zBicIyqrtSDVzQy1mFZdDevuM+3W05II/Gl1ReK7SgeKEhy2U1TFnYhh+ub/W1RBnjL0u0Tt2/klvOiKeyrr60t4OzuEgr1w9faNI9P/3jftHxU1ThMc9pCY75TgY58nXfEf3eaw4osiQTjzlR8h2MDbtUUmD//XIB5DB33ZKrlecHQ8QTeoC4tVtyaDPwdYB/v8eZb4YrnZ6W+whUgEkqvCgyHh92fGyZyE5qtTKpquP5gRbG1NIPPyMgdtR3mCKO4PRw6h+lOMb3hOe6SDjkZkunQBF6eCgwYeVETPFl1zZSOXQXuA1jhi45a914gf26P/Dk2BklQT3cPwXVAu6ig/s+V4mvywPwJLigQmQtP3GxxHbMyE3oy7oasiOJKcedXJzfprcNbdJ0XbeYwZeIGSeYGcYpzF6gR56otukFlYkz3qvr1nAz+0gxddGONPYXwx4P/OixeMfcS73uJwo8OmnGXD6NusG7MVoDtcYuwFOO3jIA00jHPYmb6O94JcawZeKDomFOh6a3KvzY5ngK2pw54s34BRtfh0eesd1RxvVwTPGBb168Kk7y8qw4e53nJ/P5/NX52Un+Iv8LPp70z83mi0ef82rt9HfZ/XZ3zIiXjySfn/eSS+UxwuzeYZrkZ33J6Bu0pge0LHkNnsJFdJWael3H3u6nFy9eZ6/PX/LbfTj/5Zf+y9OzX3uVw+u+aXOtfEUldkxb5+TejH9ayPGMBAw5QWucuUCBUh9RGSoI+FsHtVmw3Pk4Vg+9X3IFFf/6N74fRO3/BeypWD0KE/jE7SJEtvluJgs7+2J6+f3Uw2kw6Bk/i0S/l+B1OM7U/Oc6kUL2oQ/55EV29io7xUH1HMd6iMeuqv5k05zcfhh+6fm8UD8vySMV8vCAY/x28KEHz/0/b7+HmqL2WcxgpqH7t9867ePlh/8BijuEYQoTAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:43:01.123Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-12-27T12:43:00.864Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-12-27T12:43:00.723Z", - publishedOn: "2023-12-27T12:43:00.723Z", - pid: "658c1bd3c39bb10008431b5b", - locale: "en-US", - title: "Welcome to Webiny", - createdOn: "2023-12-27T12:42:59.947Z", - version: 1, - tags: [], - path: "/welcome-to-webiny", - webinyVersion: "5.38.2", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - __type: "page", - id: "658c1bd3c39bb10008431b5b#0001", - titleLC: "welcome to webiny", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - tenant: "root", - status: "published", - latest: true - }, - SK: "L", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - _et: "PbPagesEs", - _ct: "2023-12-27T12:43:00.864Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-12-27T12:43:00.864Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-12-27T12:43:00.723Z", - publishedOn: "2023-12-27T12:43:00.723Z", - pid: "658c1bd3c39bb10008431b5b", - published: true, - locale: "en-US", - title: "Welcome to Webiny", - createdOn: "2023-12-27T12:42:59.947Z", - version: 1, - tags: [], - path: "/welcome-to-webiny", - webinyVersion: "5.38.2", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - __type: "page", - id: "658c1bd3c39bb10008431b5b#0001", - titleLC: "welcome to webiny", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - tenant: "root", - status: "published" - }, - SK: "P", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - _et: "PbPagesEs", - _ct: "2023-12-27T12:43:00.864Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.525Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UQBD8K2Z8FFgY2FuOp42JJr6oieclasymB5rNePOxYQb2cMN/twfYxBjvfPGNru6pqaoeLuyMQprxHjsnrWEV2yZ5mXAWMY8GjCeks9ZTjcZ347uGgJuU8zIrBLYF3BZpmpYiF8BvaEg+139JnxkNadugmpla/VYqJEjZGuijolviz58IqDsEj82HIImnPI8zHvPdXcarglfbMtlti6805mD499DK9Xpk1WVVuC3rTOzyOr8VIgsKizwTRUHDjXQnBeN70EEONC+0NCGN8bTUoZwiZs/mPzNSKrKVC6nplYrYcF1KNgf0gHRRC8oh+fbge0fHmw7asJ0BVI8uyLHiB9Z+HxL18+kLrfLR71urGuzm2OeNTtGCm0WXq6ENI9IcEzcc2dp9wDHcgtrGJzii2zy13M0ZVW01xt7Gy5s6HJ7gXJ1LTYQbwl89akU902uB3d7Jn9TN87Iso6sZjR6CEWGtQjD7UycHWimrfNfj1YiHIwXw7ftagpLgcEam5YFd4/hLEh2c759JcPpTyRQoSYHzi4aI3X35+IYIa+2S+U9JgqXDYfX6Ozz9AgsV+EF1AwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.525Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.561Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLYSZtsThUSSFwAiWUlQKvKSSaVWX9UtpNuqPLfGSephFbLcuHm+fCb997YF3KGWujxDqwTRpOKbJOsTBiJiAfNtceMNcZjDNrb8UOLiV3KWEnzckvpTbFL07SkBcs5YJN4qf4ajxSblGlBzkidei9kuCdNw/FQ4ZT46xdMNBa4h/ZToMRSlsWUxay4pazKWbUtk2Kbf8c2x4d/N61Yb0dSXVaG27KhdZE12U1d08Awz2id59jcCneSfPzIVaDD21dK6ODGeFriEE4RMWf9nxHRFdGJBVT3UkZkuC6FzgY9AA7quHSAuj33vcPrreVd2M7AZQ8u0DH1T2j8Pjjq59sXXOWj33dGtmBn2+eNTtGS1wuvxjgfi8boxA1HstYeYAwzQJn4xI/gNn9b7eYMsjEKYm/i5UUdDs8irqqFQrgN5t88Kok13asa7N6JX1jdpTgmugpR4HkQURsjgev9yYoB10kqb3u4ivD8iOJ/3K8hl4I7mDPT8riuVjzjguXnuxfcm54ymQIkMnB+4RCR22+f3wULlUvmX5IESYfDqvXP9PQb9c+2XXEDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.561Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.487Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXavTQBD9K7I+mqTNR9uYpyIo+KKC1wtXkTKbTMra/Qi7m/bGkv/ubJKCiF5BzNPOmdkzZ85sruyCXOjhHq0TRrOKbZK8TDIWMY8atCfEGuMpRu3t8LYhYLvOsjItYN20BV/TV5a7fMM5FYmn8s/pmFKRMg3KialVb4REgqSpgQ4VdYk/fSSgtggem/dBUrbO8jjN4mx3l2ZVkVWbMtltis9U5uD896KF69XAquuicFPWKd/ldf6S8zQoLPKUFwUVN8J1EoZ3oIIcaJ4poYMbQzfHIRwjZi76PzOSK6IVM6nupYzY+baUdDLohNSoBemQ5vbge0fXGwtt2M4ZZI8uyDH8G9Z+Hxz10+0rrfLR71sjG7ST7dNGx2jG9axrfgexQ0ttJToXQ9dJMZPEraWqi7GnxJ2PbLl5wiEoQGXiDo7oVn9a/OqCsjYKY2/iuc/h8A/9FseEomYrwl88Kkk53SuOdu/Ed8rm2y25tXig0EOYnxsjEfS+s+JML4FV3vZ4m9/DkXz78nUJQQpwOCHj/C5vLv7GQAuX+yeMH39VMgZKUuD8rCFidw8fXhNhrVwy/WBJmOhwWEb9GR5/AOAByTisAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.487Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:12.855Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA62ST3OCMBDFvwqTHisMCQiUU3X00EP/zGidqRcnIaHNNAQLQYuO372bWOv0UE+9Zd/+WF7eZo+2gkndL0TTylqjHA2DKAsIGiAjNNUGlKauDdRCm6a/4yAkw6wgccaSJEyZCMMwS0uMkwQgeal/BUcMUFVzodwkdxqBpOqCKgGK0P7zDISiEdQI/mgtkZBEPiY+Sec4ykmYYxxkBC8Ba+nmT4gEaTpcnmeNe5Tvzw4xS6MiumEMW4dxhFkcA8xlu1a0f6CVtUO5V0lt0+jXx9qWhwGqt/qfJ0IWspTHobpTaoA2p6VgF9C7gB+ZphNwbUNN18LX644p2b5BB3CqOtFaR0Z8mtuSfBRdt7PUZDK+ns4837u3eXsjb2p36WEXvH71Hb8jhlfhkF/iD8dNGedqj8pacdG4TbpHAu2GbhcnH5aG4Ftzsj1/eZoCW1Rt4F5ToMDBavWdxG/552aXt3v4AqHf5GfCAgAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:12.855Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:12.874Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Sy26DMBD8FeQeCwgbApRTEyWHHPqQkkZqL5GNNy0qGIpNUhLl32tDiHLo49KbPZ6dnZ31ARUlh3zOUdKfxshGW6hlVgqUYBvlZUpVdzmgTZlzqDtuXZYKHW0k6Rb4g35FxCO+g4lDoiX2E+IlmLhRNHpBvUYOmgPCeVpoQCqqGqmBqmF5Jt+Am640b0CaPgo+1e2GfKRNszes6XRyPVtYjnVnHFpjayZU3Vq4kxavTsffE8ULb8R/42vDaQ1UAZ+0XaO2MrYoLzKhxXgmq5y297ToUauHM6MZjuIUs8hP/RvGsOd5ceBjFgRGE4z8fGCRIGZh6EUMDCvaYByGWkWBoEIN0Z2N/JAddmOCT9m963gSVTdgo3In/tn7Dlgm2tWwcTRy/dgll5XfzXOljyb+8/7++gI13a2G/R4v6obBls+PM62QFtLt0nQrXbRen4a8hI9ffhzBm7MCAAA=" - }, - SK: "P", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:12.874Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.488Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXa+UMBD9K6Y+CiwU1u3ytDHRxBc18XoTNWZTYFjr9oO0hb244b87BTYx5np98Y05Mz0950y5kgtUQo/3YJ0wmpRkm+QsoSQiHjTXHhFrjMcatLfj2waBlymlLCtYu2esyNI03bOs3tEch8RT/ef4meGQMg3ImalVb4QEhKSpOX6UeEv86SMCtQXuoXkfJNGU5nFGY7q7y2hZ0HLLkt22+IJjjg//Hlq5Xo2kvK4Kt6zOql1e5/uqCgpZkWdVUeBwI1wn+fiOqyCHN8+U0CGNsVvqUE4RMRf9nxkxFdGKhVT3UkZkuC0lmwM6A17UcukAfXvue4fHG8vbsJ2Byx5ckGOqH1D7Q0jUz6evuMoHf2iNbMDOsc8bnaIF14uuTuhz7L7zDhI3nMjaPMMYLgFl4o6fwG3+ttvNBWRtFMTexMuTOh4fp1x9C4V8G8RfPCiJPd2rCuzBiZ/YzfdpdDOiwPNgojJGAteHzooB10lKb3u4mfD8hOa/fltLLgV3MCPT8rhuUTySguWX+yfSm/5UMgVKVOD8oiEid58/vEbCWrlk/kuSYOh4XJ3+Dk+/APbPY71xAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.488Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.527Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY+bMBD9K5V7LJBgICGcokqttJdtpW5XaldVZMMQueuPyDZkacR/7xiItKra3Us5ed6M37x5Yy7kDFzo4R6sE0aTihRJViaURMSDZtojYo3xGIP2drhpENisKS3TvNxssh1d47drm6wAjkXipfxbPKZYpEwDcmJq1UchASFpaoaHCrvEX78gUFtgHppPQRJd0yxOaUy3dymtcloVZbIt8u9Y5lj/etHC9X4g1WVRWJR1yrdZne04T1FWmWcpz3MsboQ7STbcMhXksOaNEjq4MZzmOIRjRMxZ/2dGdEW0YibVnZQR6a9LSSeDHgEbtUw6wLk9853D641lbdhOz2QHLsgx/CfUfh8c9dPtC67yye9bIxuwk+3TRsdoxvWsy4HFfhKci2vlYmmOJnH9kSxVjzCEbqBMfGJHcKt/LXl1BlkbBbE38fy2DodXuBcnhELiFeLvnpTEnO4UB7t34hdm021RRtfZFHgW5uLGSGB6f7Kixw2TytsOrnN5dkQ/Hn4sIZOCOZiQcX5vV3f+Yoxl5/sXDB3/VDIGSlTg/KwhInffPn9AQhw3mX6cJEx0OCyjPofH377bNOyEAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.527Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.523Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLYSbdpThUSSFwAiWUlQKvKSSaVWX9UtpNsqPLfGSephFawcODmeTN+8+aNfSEDVEKPd2CdMJqUZJtkRcJIRDxorj0i1hiPMWhvx3cNAjcpYwXNiz2tGpqlaVrsqoblNRaJ5/Iv8UixSJkG5MzUqrdCAkLS1BwPJXaJP39CoLbAPTQfgiSWsiymLGa7W8rKnJXbItlt869Y5nj/96KV6/VIysuqcFvUtNpldbavKhoU5hmt8hyLG+HOko/vuQpyePNCCR3cGM9LHMIpImbQ/5kRXRGtWEh1J2VE+utS6GzQA2CjlksHOLfnvnN4vbG8DdvpuezABTmm+g61PwRH/Xz7gqt89IfWyAbsbPu80SlacL3oWt5BLHRrufO2q31nITaooRcwJK4/kfXCA4yhMSgTn/kJ3OZP+94MIGujIPYmXuiPx39vs/ojFPbYIP7qUUnM6U5VYA9O/MDsPqU3WXQdWYHnYdzKGAlcH85W9Lh4UmIfuI7r+Qlt+na/hlwK7mBGpuUZXk37jV+WD3fP+Dw9VTIFSlTg/KIhIrdfPr5Bwlq5ZP5PSRjpeFxn/RWefgJvK6+zmwMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.523Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.563Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTW+cMBD9K5V7LLCYj8JyWlVqpFzaSk0jJVG0MjCs3PhjZRs2dMV/7xhYqaqS9NIb82b8/N4bcyYnqLkab8FYrhWpSB6lZZSQgDhQTDlEjNYOa1DOjNctAh/jJClplnfbssxoHMfbkjYF7XCIv9V/j58Uh6RuQcxMnbziAhASumH4UeEt4Y/vCDQGmIP2q5eUxEka0iRMihuaVFlS5WVU5Nk9jlk2/Hto5fo0kuq8KszLhtZF2qTbuvYKyyyldZbhcMvtUbDxC5NeDmvfSa58GuNxqX05BUSf1H9mxFR4xxdS1QsRkOGyFDoH9AR4UceEBfTtmOstHm8N6/x2BiZ6sF6Orn9C43Y+UTefPuMqn92u06IFM8c+b3QKFlwtunTjdIhHIjscyNp6gtFfAVKHR3YAu3lts5sTiEZLCJFjeVD7/UuEq2cukW2D+IdnKbCnelmD2Vn+C7sp0hbBxYYEx7yFWmsBTO2Ohg+4TFI508PFgmMHtP7wuJZMcGZhRqblaV2CeCEDw063b2Q3/a1k8pSowLpFQ0Bu7r59RsJG2mj+RyJvab9fvf4JT78BqJuFQm8DAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.563Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.541Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY+bMBD9K5V7LJBgICGcokqt1EtbqduVuqsqMjCk3vUHsg1ZGvHfOwYiVavd9FJOnjfjN2/emDM5QcnVcAvGcq1IQbIoySNKAuJAMeUQMVo7jEE5M3yqEdisKc3jNN9skh1d47dr6iSDCov4tfxbPMZYJHUNYmJq5EcuACGhK4aHAruE378hUBlgDuovXhJd0ySMaUi3NzEtUlpkebTN0jsss6z/d9HC9X4gxXlRmOVVXG6TKtmVZYyy8jSJyzTF4prbVrDhM5NeDqvfSK68G0M7xz4cA6JP6j8zoiu84TOp6oQISH9ZSjwZ9AjYqGHCAs7tmOssXq8Na/x2eiY6sF6OLh+gcnvvqJtun3GVT27faFGDmWyfNjoGM65mXZW0YQkKGu5saH+xFiLbH8lS9AiDbwZShy07gl29tuPVCUSlJYROh/PTOhyuUy8+cIm8K8TfPUmBOdXJEsze8t+YxR7BZTAJjvmhSq0FMLVvDe9xvaRwpoPLUI4d0Yz7n0vIBGcWJmScH9vFmhdcMex0e8XN8bmS0VOiAutmDQG5+fH1w2xpNP01kR/ocFgm/Rse/wBONimLgQMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.541Z" - }, - { - index: "root-headless-cms-en-us-modelb", - _md: "2023-12-27T13:22:46.132Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA62SP2+DMBDFvwpyxwaEDQTCVKFk6NA/UtJKzRIZ7DRWjUHYhKIo371np2nUoZm6+d79OJ7f+YAGXgo1vvJOi0ahHCVBlAUETZDhiioDStc0BmquTDfeMxCmSVaRhMSUlRVOwzCchRxThgES1/o3cLRQ3TAu3SR3KkCSTUUlB4Ur/2UJQtVxajh7spZISCIfE5+kKxzlhORxHExTsgZM0/2f0DQIZ3h9mVWMKD9cHOIyjapoVpYYbGVxhMs4BpgJ3Uo6PtLa2qHMq4WyaYztqbblcYKaQf3zRMhCbMVpqOqlnKD9eSnYBfTB4Uem6zlc21DTa/i67Usp9A46gFPZc20dGf5p7mLGWzKQHVDzeXG7WHq+92Dz9gpvYXfpYRe8evcdn1aJyYaBXuOPp00Z5+qAto1kvHObdI8E2h0dXs8+LA3Ba3O2vXp7XgBb1TpwrymQ4GCz+U7it/xzs+vbPX4BgnLwJMICAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:22:46.132Z" - }, - { - index: "root-headless-cms-en-us-modelb", - _md: "2023-12-27T13:22:46.134Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Sy26DMBD8FeQeCwgbCIRThZJDDn1ISSO1l8jgbYMKNsImFEX599oQohz6uPRmj2dnZ3Z9RJVgUK4YSsZTimx0gEYWgqME26gUOVXD5YjeRMmgGbiNEAqdbCTpAdijfkXEI76DiUOiDfYTQpJg5npz/IpGjRI0B7jzvNaAVFS1UgN1m5WF3AMzXWnZgjR9FHyqu4BBTTqy16zFIr1dri3HujcOrdRactX0Fh6k+bsz8KM8VHHX0d/42nDeAFXA0n5o1NfGFmVVwbUYK2Rd0v6BViNqjXBhAs/COMdZ5Of+PMuw53lx4OMsCIwmGPnVxCIhCSjLchxp1twDTJlxqoBTrqbRXYz8MLvAnUXkPLsPPZ5ENS3YSHT8n713kBW8304bR6Hrxy65rvwuz40+mlCX/f31BRrabaf9nq7qpmCbl6elVsgr6Q7TdGtdtNudQ17Dpy+tJHA1swIAAA==" - }, - SK: "P", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:22:46.134Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.528Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UQBD8K2Z8FFgY2IPjaWOiiS9q4nmJGrNphmYz3nxsmFn2cMN/twfYxBjvfPGNru6pqaoeLuyMjTTjPfZOWsNqtk3yKuEsYh4NGE9Ib62nGo3vx3ctATcp51VWVB3womjTNK1EUYrylobkc/2X9JnRkLYtqpmp02+lQoKUFUAfNd0Sf/5EgOgRPLYfgiSe8jzOeMzLu4zXBa+3VVJui6805mD499DK9Xpk9WVVuK1E1pS5yG+bJgsKizxrioKGW+mOCsb3oIMcaF9oaUIa43GpQzlFzJ7Nf2akVGQnF1JzUipiw3Up2RzQA9JFHSiH5NuDPzk63vbQhe0MoE7oghzb/EDhdyFRP5++0Cof/a6zqsV+jn3e6BQtuFl0OVoANApjKaxJ3HBga/8Bx3APahsf4YBu89R6N2dUwmqMvY2XV7XfP8m6upeaKDeEv3rUinrmpBvsd07+pG5ZpTfR1Y9GD8FLY61CMLtjLwfaKqt9f8KrFw8HyuDb97UEJcHhjEzLG7sm8pcwejjfPxPi9KeSKVCSAucXDRG7+/LxDREK7ZL5Z0mCo/1+tfo7PP0ChLfw5XgDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.528Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.684Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBT8K8gcSdLESYmbU4UEEhdAYllpQahykpfKrD8i2003VPnvPCephFbs7oWb3/h5PDPPvpAz1EKPt2CdMJpUZJvkLKEkIh401x4Ra4zHGrS348cWgbcppSwrWLdjrMjSNN2xrClpgU3iuf3XuMywSZkW5MzUqQ9CAkLSNBwXFd4Sf/uKQGOBe2g/B0k0pXmc0ZiWNxmtClptWVJui+/Y5vjwctPK9W4k1WVVuGVNVpd5k+/qOihkRZ7VRXDQCtdLPn7iKsjh7SsldEhj7Jc6lFNEzFn/Z0ZMRXRiIdUnKSMyXIeSzQHdA17UcekAfXvuTw6Pt5Z3YToDlydwQY6pf0Hj9yFRP5++4Cgf/L4zsgU7xz5PdIoWXC+6RNsnbjiSFb2HMbCDMnHPj+A2Tw11cwbZGAWxN/Hylg6HR1yrU6GQaIP4mwclcU+fVA1278Rv3KUlK1l0Fa/A8yC8NkYC1/veigFHSCpvT3AV7vkRDf/4uZZcCu5gRqblQV3t/8O55efbZxKbHiuZAiUqcH7REJGbuy/vkbBRLpl/RhIsHQ6r17/h6Q/nB7bbZQMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.684Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:34.215Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA62Sy27CMBBFfyVylyVRbOdVVgXBoos+JChSu0FO7LRWHYcmDjQg/r1jA626gFV3njsnk+s73qGNyKXuF6JpZa3REMUBzQKCBsgIzbQBpalrA7XQpunvOAhJnBUkYjhJwjQXYRhmaYlxkgEkL/Wv4IgBqmoulJvkTiOQVF0wJUAR2n+egVA0ghnBH60lEhLqY+KTdI7pkIRDSoM0jV8Ba9n6LBQF+AAdZ417NNz9OsR5Sgt6k+fYOowozqMIYC7blWL9A6usHca9SmqbRr861LbcD1C90f88EbKQpTwM1Z1SA7Q+LQW7gD4E/Mg0nYBrG2a6Fr5edbmS7Tt0AGeqE611ZMSXuS3JZ9F1W0tNJuPr6czzvXubtzfypnaXHnXB6zff8VtieBXG/DxPrE27KeNc7VBZKy4at0n3SKDdsM3i5MPSEHxrTrbnL09TYIuqDdxrChQ4WC6PSfyVf252ebv7b3cJr33CAgAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:34.215Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:34.216Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Sy26DMBD8FeQeCwjbvMqpiZJDDn1IaSO1l8jgTYsKhmKTlET599pQohwa9dKbPZ6dnZ31AZUVh2LBUTKcJshGW2hkXgmUYBsVVcZUfzmgTVVwaHpuU1UKHW0k2Rb4g35FxCPUwcQh0ROmCfES6rs4Cl7RoFGA5oBwnpcakIqpVmqgbtMil+/ATVdWtCBNHwVf6nZDPrO23RvWbDa9ni8tx7ozDq2JNReq6SzaS4s3p+fvieKlF/DLfGIMZw0wBXza9Y262thivMyFFuO5rAvW3bNyQK0Bzo1mGMQZTiOa0Zs0xZ7nxT7Fqe8bTTDyi5FFfIbD0ItSMKxog3EYaxUFggk1RncyciE76kan7D50PIlqWrBRtRP/7H0HaS661bhxFLg0dsl55W/zXOkj1qTT/v76Ag3brcb9Hs/qxsGeXh7nWiErpdun6da6aL3+GfIcPn4DcthPZ7MCAAA=" - }, - SK: "P", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:34.216Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.705Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXa+UMBD9K6a+AguFFeRpY6KJL2ri9SZqzGaAYVNvP0hbdsUN/90psIkx3uuLb53T6ek5Z9oru2Aj9HSP1gmjWc32SV4lnEXMowbtCbHGeKpRezu97Qh4kXJeZUXVAy+KLk3Tqi3KtgRqEk/tP6dlRk3KdCgXpl69ERIJkqYFWtR0S/zpIwGtRfDYvQ+SeMrzOOMxL+8yXhe83ldJuS++UJuD87+bNq5XE6uvm8J91WZNmbf5y6bJgsIiz5qioOZOuEHC9A5UkAPdMyV0SGMa1jqUc8TMRf9nRkpF9GIl1aOUETvfhpItAT0gXdSDdEi+PfjR0fHOQh+mcwY5ogtyTPMdW38Iifrl9JVG+cMfeiM7tEvsy0TnaMX1qqs1So1a+CkWrdHJoE9sa3jAKVyEysQDnNDtHpvv7oKSaDD2Jl6f1fH4OO3mXyji3K24HlWD9uDET9rJyrzi0c2OQg/BSmOMRNCHwYozDZXV3o54s+LhRBF8/baVIAU4XJB5fWK3QP6ShYXL/RMZzn8qmQMlKXB+1RCxu88fXocglUuWv5JIsnQ8bj5/h+dfsmotBXcDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.705Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.482Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLmi4acKiSQuAASy0qAVtU4mVRm/VHZTrqhyn9nnKQSWrHLhRyizPP4+b03zoWdkQs93qJ1wmhWszLJqyRjEfOoQXtCrDGeatTejh9aAl5vs6xKC75tO3rRU1W7vOQNNYnn1l/SZ0pNyrQoZ6ZOvRcSCZKmAfqo6ZT46xcCGovgsf0UJGXbLI/TLM52N2lWF1ldVsmuLL5Tm4Ph300r19uR1ZdVYVk1Kd/lTf6G8zQoLPKUFwU1t8KdJIwfQQU50L5QQoc0xtNSh3KKmDnr/8xIqYhOLKS6lzJiw3Uo6RzQPdJBHUiH5NuD7x1tby10YToDyB5dkGP4T2z8PiTq590XGuWD33dGtmjn2OeJTtGC60XXcg9iaY4mccORrav3OIZTUJn4BEd0m6eGuzmjbIzC2Jt44TocnuBcnQtFhBvCXz0oSWu6Vxzt3olftFpuyzy6elHoIfjgxkgEvT9ZMdBEWe1tj1cfHo7k/8fdWoIU4HBGpuV+XdP4SxAWzrfPBDg9VjIFSlLg/KIhYjffPr8jwka5ZP5RkuDocFit/glPvwF6hmKrdAMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.482Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:42.214Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61SPW/CMBD9K5E7lkS2E5KQqSAYOvRDokVqF+TEThXVcajtQAPiv/dsQO3ULt18757v3r27A9qJslHDSmjTdAoVaBzFeUTRCFmhmLKA6K6zEAtl9XDLAUjHeUUTxtIUZ6XAGOdZTUg6AVLzW/4KngRIbceF9JX8awqQ7ComBSBChc9LACotmBX8wUmimMYhoSHNnkhcUFwkNCI5fgWaYdu/SedaswEVh2+FpMziKp6UJXEKk5iUSQJk3piNZMM9a50cxoO2Uc6NYXOKXXgcoW6n/rkieNHUzamo6qUcoe1lKcQb9C6gUc2kETC3ZbY38J1rVrvtbJnshXFyrPi0NzX9qPp+7xjz+ex6sQzC4M6ZHUyDhVtkkHjX1Vvo+XtqeYvHbhKnxa3D+tYHVHeSC+3X5S8B0prtVpd+jg3uGrgUq3uQ9vTyuABu1ZrIn0wkodN6fR73J3z8Ah+WbBR+AgAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:42.214Z" - }, - { - index: "root-headless-cms-en-us-modelb", - _md: "2023-12-27T13:23:15.572Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61STU/DMAz9K1U4slZN0tKuJ5i2Awc+JMYkuKC0cSEiTacmpZSJ/47TMcQBIQ7cbMd+7/k5O9K0EvS5JMU+WpAZeYHOqtaQgs6IbivhpmRH6lZL6Kberm0deZ8RK15AXuErYTHjIWUhy9aUF4wXNI1SfnJP9hgasAdMeHuDBeuE6y0WZCdq5xmF7sF6Dgev7jSRsGUDe8KO5XJxvLoJwuDCqwsWwcq4bgxYcHu9PFuvlhO8eQynuaxKXT4M4i9zKL7qQDiQi9ETK7/WSZpXtMx4xedlSeM4zhNOyyRBFqnsVovxUjR+EyGDRhksu3G7z32KmOBpzg9YLOVUyLKiGWLNY8CE+SEwwriDjV9CfvKRFWkWxfPk08dnQOhaaAsz0g7mn8UPUCozbg7nJ2nE88gLVr8tdIQhxSb8P6pW/yypAYfn3GHUiWHz9U1qpeE0FW77lpueFKbXGls0umjRV9f16M/67nqFUFVjo+kqkUb8h4dPhu/l9w8+vp3CBwMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:23:15.572Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.544Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTYvbMBD9K0G92o5lOxuvT6HQQi9toduFbilBtsZBXX0YSU7qBv/3jvwBpXR3L3vzPI3evPdGvpIL1EIP92CdMJpUZJfkZZKRiHjQTHtErDEea9DeDh84AjdplpW0KG+AF7RN07Ssm4wzjk3iufM3+EmxSRkOcmJq1XshASFpGoYfFU6Jv35BoLHAPPBPQVKWZnlMszjb39GsKrJqVyb7XfGAbY6dX25auN4OpLouCndlQ+t93uS3dU2DwiKndVFgMxeuk2z4yFSQw/hGCR3SGLq5DuUYEXPRr8yIqYhWzKS6lzIi53UpdAroEXBQy6QD9O2Z7x1e55a1YTtnJntwQY6pf0LjDyFRP92+4ip/+UNrJAc7xT5tdIxmXM+65ncQO7A4VoJzcaNc0unTZkOWzkcYwkRQJu7YCdz2qUVvLyAboyD2Jp55j8cn+Vf2JQ+hkHo747pXNdiDE7/xhKZleVtGqz8FngVvtTESmD50Vpxxy6TytofVm2cnzOT7j6VkUjAHEzLOb25N6D/hWHa5fybU8V8lY6BEBc7PGiJy9+3zOyQMPqefJ5Ho6XhcjP4Nj38A+G24n4gDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.544Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.524Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY/TMBD8K8g8kqSNk15zeaqQQOIFkDhOAoSqdbKpzPmjst30QpX/zjpJJYS444W37Ox6PDPrXNgZhTTDPTovrWE122RFlXGWsIAGTCDEWRuoRhPc8K4l4GbNeZWXArsSbsv1el2JQgCvaEg+139JnzkNaduimpg6/VYqJEjZBuijplvSz58IaBxCwPZDlMTXvEhznvLtXc7rktebKttuyq805qH/99DC9Xpg9WVRuKmaXGyLprgVIo8KyyIXZUnDrfRHBcN70FEOtC+0NDGN4TjXsRwTZs/mPzNSKrKTM6k5KZWw/rqUfAroAemiDpRH8h0gnDwdbx10cTs9qBP6KMeKH9iEXUw0TKcvtMrHsOusatFNsU8bHZMZN7MuNL101mhas898f2BL+wGHeA1qmx7hgH711HZXZ1SN1ZgGm86Par9/inTxLjUxrgh/9agV9cxJC3Q7L39SNy/49mabXP1oDBC9CGsVgtkdnexpq6wO7oRXLwEOlMG370sJSoLHCRnnN3ZN5C9hODjfPxPi+KeSMVKSAh9mDQm7+/LxDRE22mfTz5JFT/v9YvZ3ePwFS0oiTngDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.524Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.703Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UQBD8K2Z8FFgY2FvkaWOiiS9q4nnJacymgWYz3nxsZgb2cMN/twfYxJjzfPGNru6pqaoeLuyMtdDjHVonjGYV2yZ5mXAWMY8atCfEGuOpRu3t+L4l4CblvMyK8gbbIuvSNC3rhrfQ0JB4rv+SPjMaUqZFOTN16p2QSJA0DdBHRbfEXz4T0FgEj+3HIImnPI8zHvPdbcarglfbMtlti6805mD499DK9WZk1WVVuC2brN7lTf66rrOgsMizuihouBXuJGH8ACrIgfaFEjqkMZ6WOpRTxMxZ/2dGSkV0YiHVvZQRG65LyeaAHpAu6kA6JN8efO/oeGuhC9sZQPboghxT/8DG70Oifj59oVU++n1nZIt2jn3e6BQtuF50teAhFo3RiRuObO094BhaqEx8giO6zd9WuzmjbIzC2Jt4eVGHw5OMq2uhiG5D+KtHJamne1Wj3Tvxk7q7PNvm0dWIQg/BRG2MRND7kxUDrZNV3vZ4NeHhSOa/fV9LkAIczsi0PK5rFE+kYOF890x6059KpkBJCpxfNETs9v7TWyJslEvmvyQJlg6H1evv8PQL5bUc+3EDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.703Z" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.ddbPrimaryTableData.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.ddbPrimaryTableData.ts deleted file mode 100644 index 38b51e896e6..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.ddbPrimaryTableData.ts +++ /dev/null @@ -1,2966 +0,0 @@ -export const ddbPrimaryTableData = [ - { - permissions: [{ name: "*" }], - slug: "full-access", - _et: "SecurityGroup", - name: "Full Access", - _ct: "2023-12-27T12:41:05.020Z", - TYPE: "security.group", - tenant: "root", - system: true, - _md: "2023-12-27T12:41:05.020Z", - createdOn: "2023-12-27T12:41:04.963Z", - GSI1_SK: "full-access", - SK: "A", - description: "Grants full access to all apps.", - webinyVersion: "5.38.2", - id: "658c1b60c39bb10008431b42", - PK: "T#root#GROUP#658c1b60c39bb10008431b42", - GSI1_PK: "T#root#GROUPS" - }, - { - _md: "2023-12-27T12:43:14.870Z", - data: { - path: "/welcome-to-webiny", - value: "658c1bd3c39bb10008431b5b#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - SK: "658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:14.870Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:43:00.024Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "658c1b73c39bb10008431b44" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@title": "Not Found", - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "text@status": "published", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "datetime@savedOn": "2023-12-27T12:43:00.663Z" - }, - "object@location": { "text@folderId": "root" }, - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:43:01.122Z", - TYPE: "L", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - tenant: "root", - _md: "2023-12-27T12:43:01.122Z", - createdOn: "2023-12-27T12:43:00.024Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:43:00.024Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "658c1b73c39bb10008431b44" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@title": "Not Found", - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "text@status": "published", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "datetime@savedOn": "2023-12-27T12:43:00.663Z" - }, - "object@location": { "text@folderId": "root" }, - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:43:01.121Z", - TYPE: "cms.entry", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - tenant: "root", - _md: "2023-12-27T12:43:01.121Z", - createdOn: "2023-12-27T12:43:00.024Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - locale: "en-US", - slug: "static", - layout: "static", - url: "/static/", - _et: "PbCategories", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - name: "Static", - _ct: "2023-12-27T12:42:57.966Z", - TYPE: "pb.category", - tenant: "root", - _md: "2023-12-27T12:42:57.966Z", - createdOn: "2023-12-27T12:42:57.965Z", - SK: "static", - PK: "T#root#L#en-US#PB#C" - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.l", - _md: "2023-12-27T12:43:00.681Z", - SK: "L", - publishedOn: "2023-12-27T12:43:00.663Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/not-found", - savedOn: "2023-12-27T12:43:00.663Z", - locale: "en-US", - pid: "658c1bd3c39bb10008431b5c", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.681Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.964Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.p", - _md: "2023-12-27T12:43:00.682Z", - SK: "P", - publishedOn: "2023-12-27T12:43:00.663Z", - id: "658c1bd3c39bb10008431b5c#0001", - editor: "page-builder", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-12-27T12:43:00.663Z", - pid: "658c1bd3c39bb10008431b5c", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.682Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.964Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page", - _md: "2023-12-27T12:43:00.681Z", - SK: "REV#0001", - publishedOn: "2023-12-27T12:43:00.663Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/not-found", - savedOn: "2023-12-27T12:43:00.663Z", - locale: "en-US", - pid: "658c1bd3c39bb10008431b5c", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.681Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.964Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - title: "Not Found" - }, - { - locale: "en-US", - slug: "main-menu", - _et: "PbMenus", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - items: [], - _ct: "2023-12-27T12:42:59.821Z", - TYPE: "pb.menu", - tenant: "root", - _md: "2023-12-27T12:42:59.821Z", - createdOn: "2023-12-27T12:42:59.821Z", - SK: "main-menu", - description: "The main menu of the website, containing links to most important pages.", - PK: "T#root#L#en-US#PB#M", - title: "Main Menu" - }, - { - _md: "2023-12-27T12:27:56.881Z", - data: { - context: { - logGroupName: "/aws/lambda/wby-data-migration-db1144d", - logStreamName: "2023/12/27/[$LATEST]4230e2d1a850456aa079f8fd4356284d" - }, - id: "658c184c554a6d00083aa519", - finishedOn: "2023-12-27T12:27:56.881Z", - startedOn: "2023-12-27T12:27:56.797Z", - migrations: [ - { id: "5.35.0-001", status: "not-applicable" }, - { id: "5.35.0-002", status: "not-applicable" }, - { id: "5.35.0-003", status: "not-applicable" }, - { id: "5.35.0-004", status: "not-applicable" }, - { id: "5.35.0-005", status: "not-applicable" }, - { id: "5.35.0-006", status: "not-applicable" }, - { id: "5.36.0-001", status: "not-applicable" }, - { id: "5.37.0-001", status: "not-applicable" }, - { id: "5.37.0-002", status: "not-applicable" }, - { id: "5.37.0-003", status: "not-applicable" }, - { id: "5.37.0-004", status: "not-applicable" }, - { id: "5.37.0-005", status: "not-applicable" }, - { id: "5.38.0-001", status: "not-applicable" }, - { id: "5.38.0-002", status: "not-applicable" }, - { id: "5.38.0-003", status: "not-applicable" } - ], - status: "done" - }, - GSI1_SK: "658c184c554a6d00083aa519", - SK: "A", - PK: "MIGRATION_RUN#658c184c554a6d00083aa519", - _et: "MigrationRun", - _ct: "2023-12-27T12:27:56.881Z", - TYPE: "migration.run", - GSI1_PK: "MIGRATION_RUNS" - }, - { - tenant: "root", - _md: "2023-12-27T12:43:01.966Z", - locale: "en-US", - reCaptcha: { secretKey: null, enabled: null, siteKey: null }, - SK: "default", - PK: "T#root#L#en-US#FB#SETTINGS", - _et: "FormBuilderSettings", - _ct: "2023-12-27T12:43:01.966Z", - domain: "https://d3hohw12noi930.cloudfront.net" - }, - { - _md: "2023-12-27T12:43:19.484Z", - data: { path: "/", value: "main-menu", tenant: "root", key: "pb-menu" }, - GSI1_SK: "pb-menu#main-menu#/", - SK: "main-menu#/", - PK: "T#root#PS#TAG#pb-menu#main-menu#/", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:19.484Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - permissions: [], - slug: "anonymous", - _et: "SecurityGroup", - name: "Anonymous", - _ct: "2023-12-27T12:41:05.147Z", - TYPE: "security.group", - tenant: "root", - system: true, - _md: "2023-12-27T12:41:05.147Z", - createdOn: "2023-12-27T12:41:05.146Z", - GSI1_SK: "anonymous", - SK: "A", - description: "Permissions for anonymous users (public access).", - webinyVersion: "5.38.2", - id: "658c1b61c39bb10008431b43", - PK: "T#root#GROUP#658c1b61c39bb10008431b43", - GSI1_PK: "T#root#GROUPS" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@aliases": [], - "number@size": 17711, - "text@name": "security.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.007Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba27", - tenant: "root", - _md: "2023-12-27T12:42:59.007Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba27#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@aliases": [], - "number@size": 17711, - "text@name": "security.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.007Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba27", - tenant: "root", - _md: "2023-12-27T12:42:59.007Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba27#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27" - }, - { - modelId: "modelA", - pluralApiName: "ModelAs", - group: { name: "Ungrouped", id: "658c1bcbc39bb10008431b45" }, - descriptionFieldId: "description", - imageFieldId: "image", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - name: "ModelA", - TYPE: "cms.model", - titleFieldId: "title", - fields: [ - { - multipleValues: false, - listValidation: [], - settings: {}, - renderer: { name: "text-input" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Title", - type: "text", - tags: [], - placeholderText: null, - id: "f2qcuuzs", - validation: [ - { name: "required", message: "Title is a required field.", settings: {} } - ], - storageId: "text@f2qcuuzs", - fieldId: "title" - }, - { - multipleValues: false, - listValidation: [], - settings: {}, - renderer: { name: "long-text-text-area" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Description", - type: "long-text", - tags: [], - placeholderText: null, - id: "z2tdm05d", - validation: [], - storageId: "long-text@z2tdm05d", - fieldId: "description" - }, - { - multipleValues: false, - listValidation: [], - settings: { imagesOnly: true }, - renderer: { name: "file-input" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Image", - type: "file", - tags: [], - placeholderText: null, - id: "8y67xrmj", - validation: [], - storageId: "file@8y67xrmj", - fieldId: "image" - } - ], - _md: "2023-12-27T13:20:12.156Z", - SK: "modelA", - singularApiName: "ModelA", - tags: ["type:model"], - locale: "en-US", - savedOn: "2023-12-27T13:18:39.298Z", - layout: [["f2qcuuzs"], ["z2tdm05d", "8y67xrmj"]], - lockedFields: [ - { multipleValues: false, type: "text", fieldId: "text@f2qcuuzs" }, - { multipleValues: false, type: "long-text", fieldId: "long-text@z2tdm05d" }, - { multipleValues: false, type: "file", fieldId: "file@8y67xrmj" } - ], - _et: "CmsModels", - _ct: "2023-12-27T13:20:12.156Z", - tenant: "root", - createdOn: "2023-12-27T13:18:26.594Z", - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#CMS#CM" - }, - { - modelId: "modelB", - pluralApiName: "ModelBs", - group: { name: "Ungrouped", id: "658c1bcbc39bb10008431b45" }, - descriptionFieldId: "description", - imageFieldId: "image", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - name: "ModelB", - TYPE: "cms.model", - titleFieldId: "title", - fields: [ - { - multipleValues: false, - listValidation: [], - settings: {}, - renderer: { name: "text-input" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Title", - type: "text", - tags: [], - placeholderText: null, - id: "4dep2w2h", - validation: [ - { name: "required", message: "Title is a required field.", settings: {} } - ], - storageId: "text@4dep2w2h", - fieldId: "title" - }, - { - multipleValues: false, - listValidation: [], - settings: {}, - renderer: { name: "long-text-text-area" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Description", - type: "long-text", - tags: [], - placeholderText: null, - id: "7c5t8wwa", - validation: [], - storageId: "long-text@7c5t8wwa", - fieldId: "description" - }, - { - multipleValues: false, - listValidation: [], - settings: { imagesOnly: true }, - renderer: { name: "file-input" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Image", - type: "file", - tags: [], - placeholderText: null, - id: "5atpz8nu", - validation: [], - storageId: "file@5atpz8nu", - fieldId: "image" - } - ], - _md: "2023-12-27T13:22:45.032Z", - SK: "modelB", - singularApiName: "ModelB", - tags: ["type:model"], - locale: "en-US", - savedOn: "2023-12-27T13:21:46.459Z", - layout: [["4dep2w2h"], ["7c5t8wwa", "5atpz8nu"]], - lockedFields: [ - { multipleValues: false, type: "text", fieldId: "text@4dep2w2h" }, - { multipleValues: false, type: "long-text", fieldId: "long-text@7c5t8wwa" }, - { multipleValues: false, type: "file", fieldId: "file@5atpz8nu" } - ], - _et: "CmsModels", - _ct: "2023-12-27T13:22:45.032Z", - tenant: "root", - createdOn: "2023-12-27T13:21:39.663Z", - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#CMS#CM" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@aliases": [], - "number@size": 27804, - "text@name": "developer.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.262Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c721", - tenant: "root", - _md: "2023-12-27T12:42:59.262Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228145f98841000981c721#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@aliases": [], - "number@size": 27804, - "text@name": "developer.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.261Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c721", - tenant: "root", - _md: "2023-12-27T12:42:59.261Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228145f98841000981c721#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:41:24.444Z", - SK: "ADMIN_USERS", - PK: "T#root#SYSTEM", - _et: "AdminUsers.System", - _ct: "2023-12-27T12:41:24.444Z", - TYPE: "adminUsers.system" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:42:51.969Z", - SK: "CMS", - PK: "T#root#SYSTEM", - _et: "CmsSystem", - _ct: "2023-12-27T12:42:51.969Z" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:43:01.981Z", - SK: "FB", - PK: "T#root#SYSTEM", - _et: "FormBuilderSystem", - _ct: "2023-12-27T12:43:01.981Z" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:42:52.301Z", - SK: "FM", - PK: "T#root#SYSTEM", - _et: "System", - _ct: "2023-12-27T12:42:52.301Z" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:42:49.990Z", - SK: "I18N", - PK: "T#root#SYSTEM", - _et: "I18NSystem", - _ct: "2023-12-27T12:42:49.990Z" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:43:01.256Z", - SK: "PB", - PK: "T#root#SYSTEM", - _et: "PbSystem", - _ct: "2023-12-27T12:43:01.256Z" - }, - { - tenant: "root", - version: "5.38.2", - installedOn: "2023-12-27T12:41:05.169Z", - _md: "2023-12-27T12:41:05.169Z", - SK: "SECURITY", - PK: "T#root#SYSTEM", - _et: "SecuritySystem", - _ct: "2023-12-27T12:41:05.169Z" - }, - { - version: "5.38.2", - _md: "2023-12-27T12:40:58.981Z", - SK: "TENANCY", - PK: "T#root#SYSTEM", - _et: "TenancySystem", - _ct: "2023-12-27T12:40:58.981Z" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@aliases": [], - "number@size": 1864, - "text@name": "hero-block-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.903Z", - TYPE: "cms.entry.l", - entryId: "6022814b7a77e60008f70d62", - tenant: "root", - _md: "2023-12-27T12:42:58.903Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814b7a77e60008f70d62#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@aliases": [], - "number@size": 1864, - "text@name": "hero-block-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.903Z", - TYPE: "cms.entry", - entryId: "6022814b7a77e60008f70d62", - tenant: "root", - _md: "2023-12-27T12:42:58.903Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814b7a77e60008f70d62#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@aliases": [], - "number@size": 888, - "text@name": "feature-card-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.944Z", - TYPE: "cms.entry.l", - entryId: "602282e07a77e60008f70d63", - tenant: "root", - _md: "2023-12-27T12:42:58.944Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602282e07a77e60008f70d63#0001", - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@aliases": [], - "number@size": 888, - "text@name": "feature-card-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.944Z", - TYPE: "cms.entry", - entryId: "602282e07a77e60008f70d63", - tenant: "root", - _md: "2023-12-27T12:42:58.944Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602282e07a77e60008f70d63#0001", - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63" - }, - { - _md: "2023-12-27T12:43:14.870Z", - data: { path: "/welcome-to-webiny", value: "main-menu", tenant: "root", key: "pb-menu" }, - GSI1_SK: "pb-menu#main-menu#/welcome-to-webiny", - SK: "main-menu#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-menu#main-menu#/welcome-to-webiny", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:14.870Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:25.735Z", - entryId: "658c24996607be00087f1167", - tenant: "root", - _md: "2023-12-27T13:20:25.735Z", - createdOn: "2023-12-27T13:20:25.235Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - publishedOn: "2023-12-27T13:20:25.701Z", - webinyVersion: "5.38.2", - id: "658c24996607be00087f1167#0001", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:25.724Z", - TYPE: "cms.entry.p", - entryId: "658c24996607be00087f1167", - tenant: "root", - _md: "2023-12-27T13:20:25.724Z", - createdOn: "2023-12-27T13:20:25.235Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "P", - publishedOn: "2023-12-27T13:20:25.701Z", - webinyVersion: "5.38.2", - id: "658c24996607be00087f1167#0001", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:25.723Z", - TYPE: "cms.entry", - entryId: "658c24996607be00087f1167", - tenant: "root", - _md: "2023-12-27T13:20:25.723Z", - createdOn: "2023-12-27T13:20:25.235Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - publishedOn: "2023-12-27T13:20:25.701Z", - webinyVersion: "5.38.2", - id: "658c24996607be00087f1167#0001", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@aliases": [], - "number@size": 28918, - "text@name": "adaptable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.105Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c720", - tenant: "root", - _md: "2023-12-27T12:42:59.105Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228145f98841000981c720#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@aliases": [], - "number@size": 28918, - "text@name": "adaptable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.105Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c720", - tenant: "root", - _md: "2023-12-27T12:42:59.105Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228145f98841000981c720#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@aliases": [], - "number@size": 67402, - "text@name": "permission-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.202Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dab", - tenant: "root", - _md: "2023-12-27T12:42:59.202Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dab#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@aliases": [], - "number@size": 67402, - "text@name": "permission-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.202Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dab", - tenant: "root", - _md: "2023-12-27T12:42:59.202Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dab#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab" - }, - { - tenant: "root", - code: "en-US", - _md: "2023-12-27T12:42:49.523Z", - default: true, - createdOn: "2023-12-27T12:42:48.245Z", - SK: "default", - webinyVersion: "5.38.2", - PK: "T#root#I18N#L#D", - _et: "I18NLocale", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:49.523Z" - }, - { - SK: "default", - eventTargetId: "wby-apw-scheduler-event-rule-target-34a2e04", - PK: "APW#SETTINGS", - mainGraphqlFunctionArn: - "arn:aws:lambda:eu-central-1:674320871285:function:wby-graphql-670ccd3", - eventRuleName: "wby-apw-scheduler-event-rule-3889a7f" - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:43:00.006Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "658c1b73c39bb10008431b44" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@title": "Welcome to Webiny", - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "text@status": "published", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "datetime@savedOn": "2023-12-27T12:43:00.723Z" - }, - "object@location": { "text@folderId": "root" }, - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:43:01.107Z", - TYPE: "L", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - tenant: "root", - _md: "2023-12-27T12:43:01.107Z", - createdOn: "2023-12-27T12:43:00.006Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:43:00.006Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "658c1b73c39bb10008431b44" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@title": "Welcome to Webiny", - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "text@status": "published", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "datetime@savedOn": "2023-12-27T12:43:00.723Z" - }, - "object@location": { "text@folderId": "root" }, - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:43:01.107Z", - TYPE: "cms.entry", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - tenant: "root", - _md: "2023-12-27T12:43:01.107Z", - createdOn: "2023-12-27T12:43:00.006Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - _md: "2023-12-27T12:43:19.454Z", - data: { - path: "/", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { value: "658c1bd3c39bb10008431b5b#0001", key: "pb-page" }, - { value: "main-menu", key: "pb-menu" } - ] - } - }, - { name: "graphql.json", type: "application/json", meta: {} } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/", - SK: "A", - PK: "T#root#PS#RENDER#/", - _et: "PrerenderingServiceRender", - _ct: "2023-12-27T12:43:19.454Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.l", - _md: "2023-12-27T12:43:00.864Z", - SK: "L", - publishedOn: "2023-12-27T12:43:00.723Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/welcome-to-webiny", - savedOn: "2023-12-27T12:43:00.723Z", - locale: "en-US", - pid: "658c1bd3c39bb10008431b5b", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.864Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.947Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - title: "Welcome to Webiny" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.p", - _md: "2023-12-27T12:43:00.881Z", - SK: "P", - publishedOn: "2023-12-27T12:43:00.723Z", - id: "658c1bd3c39bb10008431b5b#0001", - editor: "page-builder", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-12-27T12:43:00.723Z", - pid: "658c1bd3c39bb10008431b5b", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.881Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.947Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - title: "Welcome to Webiny" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page", - _md: "2023-12-27T12:43:00.864Z", - SK: "REV#0001", - publishedOn: "2023-12-27T12:43:00.723Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/welcome-to-webiny", - savedOn: "2023-12-27T12:43:00.723Z", - locale: "en-US", - pid: "658c1bd3c39bb10008431b5b", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.864Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.947Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - title: "Welcome to Webiny" - }, - { - _et: "SecurityIdentity2Tenant", - _ct: "2023-12-27T12:41:24.428Z", - tenant: "root", - identity: "658c1b73c39bb10008431b44", - _md: "2023-12-27T12:41:24.428Z", - createdOn: "2023-12-27T12:41:24.428Z", - data: { - teams: [], - groups: [{ permissions: [{ name: "*" }], id: "658c1b60c39bb10008431b42" }] - }, - GSI1_SK: "TYPE#group#IDENTITY#658c1b73c39bb10008431b44", - SK: "LINK#T#root", - webinyVersion: "5.38.2", - PK: "IDENTITY#658c1b73c39bb10008431b44", - type: "group", - GSI1_PK: "T#root" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@aliases": [], - "number@size": 33888, - "text@name": "scaffolding.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.041Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba26", - tenant: "root", - _md: "2023-12-27T12:42:59.041Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba26#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@aliases": [], - "number@size": 33888, - "text@name": "scaffolding.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.023Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba26", - tenant: "root", - _md: "2023-12-27T12:42:59.023Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba26#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26" - }, - { - _md: "2023-12-27T12:43:23.802Z", - data: { - path: "/not-found", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { value: "658c1bd3c39bb10008431b5c#0001", key: "pb-page" }, - { value: "main-menu", key: "pb-menu" } - ] - } - }, - { name: "graphql.json", type: "application/json", meta: {} } - ], - locale: "en-US", - tenant: "root", - tags: [{ value: true, key: "notFoundPage" }] - }, - GSI1_SK: "/not-found", - SK: "A", - PK: "T#root#PS#RENDER#/not-found", - _et: "PrerenderingServiceRender", - _ct: "2023-12-27T12:43:23.802Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@aliases": [], - "number@size": 60602, - "text@name": "cost-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.122Z", - TYPE: "cms.entry.l", - entryId: "6022814851197600081724ae", - tenant: "root", - _md: "2023-12-27T12:42:59.122Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814851197600081724ae#0001", - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@aliases": [], - "number@size": 60602, - "text@name": "cost-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.121Z", - TYPE: "cms.entry", - entryId: "6022814851197600081724ae", - tenant: "root", - _md: "2023-12-27T12:42:59.121Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814851197600081724ae#0001", - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae" - }, - { - icon: "fas/star", - savedOn: "2023-12-27T12:42:51.921Z", - locale: "en-US", - slug: "ungrouped", - _et: "CmsGroups", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - name: "Ungrouped", - _ct: "2023-12-27T12:42:51.962Z", - TYPE: "cms.group", - tenant: "root", - _md: "2023-12-27T12:42:51.962Z", - createdOn: "2023-12-27T12:42:51.921Z", - SK: "658c1bcbc39bb10008431b45", - description: "A generic content model group", - webinyVersion: "5.38.2", - id: "658c1bcbc39bb10008431b45", - PK: "T#root#L#en-US#CMS#CMG" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@aliases": [], - "number@size": 3661, - "text@name": "webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.964Z", - TYPE: "cms.entry.l", - entryId: "6022814a0df4b000088735bb", - tenant: "root", - _md: "2023-12-27T12:42:58.964Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814a0df4b000088735bb#0001", - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@aliases": [], - "number@size": 3661, - "text@name": "webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.964Z", - TYPE: "cms.entry", - entryId: "6022814a0df4b000088735bb", - tenant: "root", - _md: "2023-12-27T12:42:58.964Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814a0df4b000088735bb#0001", - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb" - }, - { - _md: "2023-12-27T12:43:14.832Z", - data: { - path: "/welcome-to-webiny", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { value: "658c1bd3c39bb10008431b5b#0001", key: "pb-page" }, - { value: "main-menu", key: "pb-menu" } - ] - } - }, - { name: "graphql.json", type: "application/json", meta: {} } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/welcome-to-webiny", - SK: "A", - PK: "T#root#PS#RENDER#/welcome-to-webiny", - _et: "PrerenderingServiceRender", - _ct: "2023-12-27T12:43:14.831Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:12.835Z", - entryId: "658c248b6607be00087f1166", - tenant: "root", - _md: "2023-12-27T13:20:12.835Z", - createdOn: "2023-12-27T13:20:11.821Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - publishedOn: "2023-12-27T13:20:12.775Z", - webinyVersion: "5.38.2", - id: "658c248b6607be00087f1166#0001", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:12.803Z", - TYPE: "cms.entry.p", - entryId: "658c248b6607be00087f1166", - tenant: "root", - _md: "2023-12-27T13:20:12.803Z", - createdOn: "2023-12-27T13:20:11.821Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "P", - publishedOn: "2023-12-27T13:20:12.775Z", - webinyVersion: "5.38.2", - id: "658c248b6607be00087f1166#0001", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:12.803Z", - TYPE: "cms.entry", - entryId: "658c248b6607be00087f1166", - tenant: "root", - _md: "2023-12-27T13:20:12.803Z", - createdOn: "2023-12-27T13:20:11.821Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - publishedOn: "2023-12-27T13:20:12.775Z", - webinyVersion: "5.38.2", - id: "658c248b6607be00087f1166#0001", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@aliases": [], - "number@size": 390, - "text@name": "pink-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.004Z", - TYPE: "cms.entry.l", - entryId: "60228148f98841000981c723", - tenant: "root", - _md: "2023-12-27T12:42:59.004Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228148f98841000981c723#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@aliases": [], - "number@size": 390, - "text@name": "pink-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.004Z", - TYPE: "cms.entry", - entryId: "60228148f98841000981c723", - tenant: "root", - _md: "2023-12-27T12:42:59.004Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228148f98841000981c723#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@aliases": [], - "number@size": 1758, - "text@name": "serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.065Z", - TYPE: "cms.entry.l", - entryId: "602281486639200009fd35eb", - tenant: "root", - _md: "2023-12-27T12:42:59.065Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486639200009fd35eb#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@aliases": [], - "number@size": 1758, - "text@name": "serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.065Z", - TYPE: "cms.entry", - entryId: "602281486639200009fd35eb", - tenant: "root", - _md: "2023-12-27T12:42:59.065Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486639200009fd35eb#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@aliases": [], - "number@size": 90163, - "text@name": "webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.984Z", - TYPE: "cms.entry.l", - entryId: "6022814891bd1300087bd24c", - tenant: "root", - _md: "2023-12-27T12:42:58.984Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814891bd1300087bd24c#0001", - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@aliases": [], - "number@size": 90163, - "text@name": "webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.984Z", - TYPE: "cms.entry", - entryId: "6022814891bd1300087bd24c", - tenant: "root", - _md: "2023-12-27T12:42:58.984Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814891bd1300087bd24c#0001", - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@aliases": [], - "number@size": 30007, - "text@name": "octo-cat.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.281Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c71f", - tenant: "root", - _md: "2023-12-27T12:42:59.281Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228145f98841000981c71f#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@aliases": [], - "number@size": 30007, - "text@name": "octo-cat.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.281Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c71f", - tenant: "root", - _md: "2023-12-27T12:42:59.281Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228145f98841000981c71f#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f" - }, - { - _md: "2023-12-27T12:27:56.852Z", - data: { - description: "starting point for applicable migrations detection", - reason: "initial migration", - id: "5.38.2-000", - finishedOn: "2023-12-27T12:27:56.852Z", - startedOn: "2023-12-27T12:27:56.852Z" - }, - GSI1_SK: "5.38.2-000", - SK: "A", - PK: "MIGRATION#5.38.2-000", - _et: "Migration", - _ct: "2023-12-27T12:27:56.852Z", - TYPE: "migration", - GSI1_PK: "MIGRATIONS" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@aliases": [], - "number@size": 392, - "text@name": "cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.081Z", - TYPE: "cms.entry.l", - entryId: "602281486639200009fd35ec", - tenant: "root", - _md: "2023-12-27T12:42:59.081Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486639200009fd35ec#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@aliases": [], - "number@size": 392, - "text@name": "cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.068Z", - TYPE: "cms.entry", - entryId: "602281486639200009fd35ec", - tenant: "root", - _md: "2023-12-27T12:42:59.068Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486639200009fd35ec#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec" - }, - { - _md: "2023-12-27T12:43:23.860Z", - data: { - path: "/not-found", - value: "658c1bd3c39bb10008431b5c#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5c#0001#/not-found", - SK: "658c1bd3c39bb10008431b5c#0001#/not-found", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5c#0001#/not-found", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:23.860Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:22:46.130Z", - entryId: "658c2524adbc1700090e1ad1", - tenant: "root", - _md: "2023-12-27T13:22:46.130Z", - createdOn: "2023-12-27T13:22:44.672Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - publishedOn: "2023-12-27T13:22:46.091Z", - webinyVersion: "5.38.2", - id: "658c2524adbc1700090e1ad1#0001", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1" - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:22:46.115Z", - TYPE: "cms.entry.p", - entryId: "658c2524adbc1700090e1ad1", - tenant: "root", - _md: "2023-12-27T13:22:46.115Z", - createdOn: "2023-12-27T13:22:44.672Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "P", - publishedOn: "2023-12-27T13:22:46.091Z", - webinyVersion: "5.38.2", - id: "658c2524adbc1700090e1ad1#0001", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1" - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:22:46.114Z", - TYPE: "cms.entry", - entryId: "658c2524adbc1700090e1ad1", - tenant: "root", - _md: "2023-12-27T13:22:46.114Z", - createdOn: "2023-12-27T13:22:44.672Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - publishedOn: "2023-12-27T13:22:46.091Z", - webinyVersion: "5.38.2", - id: "658c2524adbc1700090e1ad1#0001", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@aliases": [], - "number@size": 7806, - "text@name": "scalable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.102Z", - TYPE: "cms.entry.l", - entryId: "60228148fa244d0008c47c79", - tenant: "root", - _md: "2023-12-27T12:42:59.102Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228148fa244d0008c47c79#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@aliases": [], - "number@size": 7806, - "text@name": "scalable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.101Z", - TYPE: "cms.entry", - entryId: "60228148fa244d0008c47c79", - tenant: "root", - _md: "2023-12-27T12:42:59.101Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228148fa244d0008c47c79#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@aliases": [], - "number@size": 27878, - "text@name": "idp.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.146Z", - TYPE: "cms.entry.l", - entryId: "60228148f98841000981c724", - tenant: "root", - _md: "2023-12-27T12:42:59.146Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228148f98841000981c724#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@aliases": [], - "number@size": 27878, - "text@name": "idp.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.146Z", - TYPE: "cms.entry", - entryId: "60228148f98841000981c724", - tenant: "root", - _md: "2023-12-27T12:42:59.146Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228148f98841000981c724#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724" - }, - { - _md: "2023-12-27T12:43:19.484Z", - data: { path: "/", value: "658c1bd3c39bb10008431b5b#0001", tenant: "root", key: "pb-page" }, - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5b#0001#/", - SK: "658c1bd3c39bb10008431b5b#0001#/", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5b#0001#/", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:19.484Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - tenant: "root", - code: "en-US", - _md: "2023-12-27T12:42:49.523Z", - default: true, - createdOn: "2023-12-27T12:42:48.245Z", - SK: "en-US", - webinyVersion: "5.38.2", - PK: "T#root#I18N#L", - _et: "I18NLocale", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:49.523Z" - }, - { - SK: "default", - PK: "ADMIN#SETTINGS", - data: { appUrl: "https://d3hohw12noi930.cloudfront.net" } - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.p.path", - _md: "2023-12-27T12:43:00.682Z", - SK: "/not-found", - publishedOn: "2023-12-27T12:43:00.663Z", - id: "658c1bd3c39bb10008431b5c#0001", - editor: "page-builder", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-12-27T12:43:00.663Z", - pid: "658c1bd3c39bb10008431b5c", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.682Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.964Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#PATH", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.p.path", - _md: "2023-12-27T12:43:00.881Z", - SK: "/welcome-to-webiny", - publishedOn: "2023-12-27T12:43:00.723Z", - id: "658c1bd3c39bb10008431b5b#0001", - editor: "page-builder", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-12-27T12:43:00.723Z", - pid: "658c1bd3c39bb10008431b5b", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.881Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.947Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#PATH", - title: "Welcome to Webiny" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:34.204Z", - entryId: "658c24a16607be00087f1168", - tenant: "root", - _md: "2023-12-27T13:20:34.204Z", - createdOn: "2023-12-27T13:20:33.775Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - publishedOn: "2023-12-27T13:20:34.175Z", - webinyVersion: "5.38.2", - id: "658c24a16607be00087f1168#0001", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:34.199Z", - TYPE: "cms.entry.p", - entryId: "658c24a16607be00087f1168", - tenant: "root", - _md: "2023-12-27T13:20:34.199Z", - createdOn: "2023-12-27T13:20:33.775Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "P", - publishedOn: "2023-12-27T13:20:34.175Z", - webinyVersion: "5.38.2", - id: "658c24a16607be00087f1168#0001", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:34.199Z", - TYPE: "cms.entry", - entryId: "658c24a16607be00087f1168", - tenant: "root", - _md: "2023-12-27T13:20:34.199Z", - createdOn: "2023-12-27T13:20:33.775Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - publishedOn: "2023-12-27T13:20:34.175Z", - webinyVersion: "5.38.2", - id: "658c24a16607be00087f1168#0001", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@aliases": [], - "number@size": 17382, - "text@name": "community-icon.png", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.301Z", - TYPE: "cms.entry.l", - entryId: "60228148fa244d0008c47c7a", - tenant: "root", - _md: "2023-12-27T12:42:59.301Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228148fa244d0008c47c7a#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@aliases": [], - "number@size": 17382, - "text@name": "community-icon.png", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.301Z", - TYPE: "cms.entry", - entryId: "60228148fa244d0008c47c7a", - tenant: "root", - _md: "2023-12-27T12:42:59.301Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228148fa244d0008c47c7a#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a" - }, - { - _md: "2023-12-27T12:40:58.922Z", - data: { - parent: null, - settings: { domains: [] }, - webinyVersion: "5.38.2", - savedOn: "2023-12-27T12:40:58.921Z", - name: "Root", - description: "The top-level Webiny tenant.", - id: "root", - createdOn: "2023-12-27T12:40:58.921Z", - tags: [], - status: "active" - }, - GSI1_SK: "T#null#2023-12-27T12:40:58.921Z", - SK: "A", - PK: "T#root", - _et: "TenancyTenant", - _ct: "2023-12-27T12:40:58.922Z", - TYPE: "tenancy.tenant", - GSI1_PK: "TENANTS" - }, - { - _md: "2023-12-27T12:43:01.222Z", - data: { - pages: { notFound: "658c1bd3c39bb10008431b5c", home: "658c1bd3c39bb10008431b5b" }, - websiteUrl: null, - name: "devr", - prerendering: { app: { url: null }, meta: {}, storage: { name: null } }, - locale: "en-US", - type: "default", - tenant: "root" - }, - SK: "A", - PK: "T#root#L#en-US#PB#SETTINGS", - _et: "PbSettings", - _ct: "2023-12-27T12:43:01.222Z", - TYPE: "pb.settings" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@aliases": [], - "number@size": 5053, - "text@name": "webiny-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.924Z", - TYPE: "cms.entry.l", - entryId: "6022814b0df4b000088735bc", - tenant: "root", - _md: "2023-12-27T12:42:58.924Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814b0df4b000088735bc#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@aliases": [], - "number@size": 5053, - "text@name": "webiny-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.924Z", - TYPE: "cms.entry", - entryId: "6022814b0df4b000088735bc", - tenant: "root", - _md: "2023-12-27T12:42:58.924Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814b0df4b000088735bc#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc" - }, - { - _md: "2023-12-27T12:42:52.281Z", - data: { - srcPrefix: "https://d3oted5odtbsmd.cloudfront.net/files/", - uploadMinFileSize: 0, - uploadMaxFileSize: 10737418240, - tenant: "root" - }, - SK: "A", - PK: "T#root#FM#SETTINGS", - _et: "FM.Settings", - _ct: "2023-12-27T12:42:52.281Z", - TYPE: "fm.settings" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:42.180Z", - locale: "en-US", - status: "draft", - values: { - "long-text@z2tdm05d": { compression: "gzip", value: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:42.181Z", - TYPE: "cms.entry.l", - entryId: "658c24aa6607be00087f1169", - tenant: "root", - _md: "2023-12-27T13:20:42.181Z", - createdOn: "2023-12-27T13:20:42.180Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "658c24aa6607be00087f1169#0001", - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:42.180Z", - locale: "en-US", - status: "draft", - values: { - "long-text@z2tdm05d": { compression: "gzip", value: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:42.181Z", - TYPE: "cms.entry", - entryId: "658c24aa6607be00087f1169", - tenant: "root", - _md: "2023-12-27T13:20:42.181Z", - createdOn: "2023-12-27T13:20:42.180Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "658c24aa6607be00087f1169#0001", - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169" - }, - { - SK: "default", - PK: "PS#SETTINGS", - data: { - bucket: "wby-delivery-68ac55a", - cloudfrontId: "E12G8OCR2J2BDW", - appUrl: "https://d1c9xtq19d4x6u.cloudfront.net", - deliveryUrl: "https://d1jwcc7rxvj5th.cloudfront.net", - sqsQueueUrl: - "https://sqs.eu-central-1.amazonaws.com/674320871285/wby-ps-render-queue-bcd2dfd.fifo" - } - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:23:15.536Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "file@5atpz8nu": null, - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQA3yyBkIAAAAA==" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:23:15.570Z", - TYPE: "L", - entryId: "658c2531adbc1700090e1ad2", - tenant: "root", - _md: "2023-12-27T13:23:15.570Z", - createdOn: "2023-12-27T13:22:57.094Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "658c2531adbc1700090e1ad2#0001", - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:23:15.536Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "file@5atpz8nu": null, - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQA3yyBkIAAAAA==" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:23:15.570Z", - TYPE: "cms.entry", - entryId: "658c2531adbc1700090e1ad2", - tenant: "root", - _md: "2023-12-27T13:23:15.570Z", - createdOn: "2023-12-27T13:22:57.094Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "658c2531adbc1700090e1ad2#0001", - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@aliases": [], - "number@size": 108898, - "text@name": "webiny-serverless-cms.png ", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.062Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dad", - tenant: "root", - _md: "2023-12-27T12:42:59.062Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dad#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@aliases": [], - "number@size": 108898, - "text@name": "webiny-serverless-cms.png ", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.061Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dad", - tenant: "root", - _md: "2023-12-27T12:42:59.061Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dad#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad" - }, - { - _md: "2023-12-27T12:43:23.860Z", - data: { path: "/not-found", value: "main-menu", tenant: "root", key: "pb-menu" }, - GSI1_SK: "pb-menu#main-menu#/not-found", - SK: "main-menu#/not-found", - PK: "T#root#PS#TAG#pb-menu#main-menu#/not-found", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:23.860Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@aliases": [], - "number@size": 132767, - "text@name": "environments.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.045Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba28", - tenant: "root", - _md: "2023-12-27T12:42:59.045Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba28#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@aliases": [], - "number@size": 132767, - "text@name": "environments.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.045Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba28", - tenant: "root", - _md: "2023-12-27T12:42:59.045Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba28#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@aliases": [], - "number@size": 73153, - "text@name": "data-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.161Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dac", - tenant: "root", - _md: "2023-12-27T12:42:59.161Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dac#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@aliases": [], - "number@size": 73153, - "text@name": "data-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.161Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dac", - tenant: "root", - _md: "2023-12-27T12:42:59.161Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dac#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac" - }, - { - _md: "2023-12-27T12:41:24.417Z", - data: { - firstName: "ad", - lastName: "min", - createdBy: null, - webinyVersion: "5.38.2", - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - createdOn: "2023-12-27T12:41:23.982Z", - email: "admin@webiny.com", - tenant: "root", - group: "658c1b60c39bb10008431b42" - }, - GSI1_SK: "admin@webiny.com", - SK: "A", - PK: "T#root#ADMIN_USER#658c1b73c39bb10008431b44", - _et: "AdminUsers.User", - _ct: "2023-12-27T12:41:24.417Z", - TYPE: "adminUsers.user", - GSI1_PK: "T#root#ADMIN_USERS" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts deleted file mode 100644 index 01ef5abf8d9..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts +++ /dev/null @@ -1,148 +0,0 @@ -export const headlessCmsAcoSearchRecordPbPage = [ - { - _index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b:L", - _score: 1.0, - _source: { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T12:43:00.006Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "text@type": "PbPage", - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "object@location": { - "text@folderId": "root" - }, - "object@data": { - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@title": "Welcome to Webiny", - "object@createdBy": { - "text@id": "658c1b73c39bb10008431b44", - "text@displayName": "ad min", - "text@type": "admin" - }, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "text@status": "published", - "number@version": 1, - "boolean@locked": true, - "text@path": "/welcome-to-webiny" - }, - "text@tags": [] - }, - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - tenant: "root", - createdOn: "2023-12-27T12:43:00.006Z", - locked: false, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - modifiedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@data": { - "object@createdBy": {} - } - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c:L", - _score: 1.0, - _source: { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T12:43:00.024Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "text@type": "PbPage", - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "object@location": { - "text@folderId": "root" - }, - "object@data": { - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@title": "Not Found", - "object@createdBy": { - "text@id": "658c1b73c39bb10008431b44", - "text@displayName": "ad min", - "text@type": "admin" - }, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "text@status": "published", - "number@version": 1, - "boolean@locked": true, - "text@path": "/not-found" - }, - "text@tags": [] - }, - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - tenant: "root", - createdOn: "2023-12-27T12:43:00.024Z", - locked: false, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - modifiedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@data": { - "object@createdBy": {} - } - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.es-index-root-headless-cms-en-us-fmfile.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.es-index-root-headless-cms-en-us-fmfile.ts deleted file mode 100644 index 6da9a8108bb..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.es-index-root-headless-cms-en-us-fmfile.ts +++ /dev/null @@ -1,1150 +0,0 @@ -export const headlessCmsFmFile = [ - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814b0df4b000088735bc", - id: "6022814b0df4b000088735bc#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "webiny-logo.svg", - "text@key": - "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@type": "image/svg+xml", - "number@size": 5053, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486639200009fd35ec", - id: "602281486639200009fd35ec#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "cms-benefits-shape.svg", - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "number@size": 392, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228148f98841000981c723:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228148f98841000981c723", - id: "60228148f98841000981c723#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "pink-shape.svg", - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@type": "image/svg+xml", - "number@size": 390, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602282e07a77e60008f70d63", - id: "602282e07a77e60008f70d63#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "feature-card-bg.svg", - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@type": "image/svg+xml", - "number@size": 888, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228145f98841000981c720:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228145f98841000981c720", - id: "60228145f98841000981c720#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "adaptable-icon.svg", - "text@key": - "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@type": "image/svg+xml", - "number@size": 28918, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486ed41f0008bc2dab", - id: "602281486ed41f0008bc2dab#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "permission-icon.svg", - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@type": "image/svg+xml", - "number@size": 67402, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486639200009fd35eb", - id: "602281486639200009fd35eb#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "serverless-cms-logo.svg", - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "number@size": 1758, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814bef4a940008b3ba28", - id: "6022814bef4a940008b3ba28#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "environments.svg", - "text@key": - "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@type": "image/svg+xml", - "number@size": 132767, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486ed41f0008bc2dad", - id: "602281486ed41f0008bc2dad#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "webiny-serverless-cms.png ", - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@type": "image/png", - "number@size": 108898, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228148fa244d0008c47c7a", - id: "60228148fa244d0008c47c7a#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "community-icon.png", - "text@key": - "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@type": "image/png", - "number@size": 17382, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228145f98841000981c721:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228145f98841000981c721", - id: "60228145f98841000981c721#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "developer.svg", - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@type": "image/svg+xml", - "number@size": 27804, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228145f98841000981c71f", - id: "60228145f98841000981c71f#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "octo-cat.svg", - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@type": "image/svg+xml", - "number@size": 30007, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486ed41f0008bc2dac", - id: "602281486ed41f0008bc2dac#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "data-icon.svg", - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@type": "image/svg+xml", - "number@size": 73153, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814891bd1300087bd24c", - id: "6022814891bd1300087bd24c#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "webiny-infrastructure-overview.svg", - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "number@size": 90163, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814b7a77e60008f70d62", - id: "6022814b7a77e60008f70d62#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "hero-block-bg.svg", - "text@key": - "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@type": "image/svg+xml", - "number@size": 1864, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814bef4a940008b3ba26", - id: "6022814bef4a940008b3ba26#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "scaffolding.svg", - "text@key": - "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@type": "image/svg+xml", - "number@size": 33888, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814851197600081724ae:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814851197600081724ae", - id: "6022814851197600081724ae#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "cost-icon.svg", - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@type": "image/svg+xml", - "number@size": 60602, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228148fa244d0008c47c79", - id: "60228148fa244d0008c47c79#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "scalable-icon.svg", - "text@key": - "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@type": "image/svg+xml", - "number@size": 7806, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814bef4a940008b3ba27", - id: "6022814bef4a940008b3ba27#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "security.svg", - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@type": "image/svg+xml", - "number@size": 17711, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228148f98841000981c724:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228148f98841000981c724", - id: "60228148f98841000981c724#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "idp.svg", - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@type": "image/svg+xml", - "number@size": 27878, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814a0df4b000088735bb", - id: "6022814a0df4b000088735bb#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "webiny-serverless-application-framework.svg", - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "number@size": 3661, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.es-index-root-headless-cms-en-us-modela.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.es-index-root-headless-cms-en-us-modela.ts deleted file mode 100644 index 01c1fe4eab5..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.es-index-root-headless-cms-en-us-modela.ts +++ /dev/null @@ -1,292 +0,0 @@ -export const headlessCmsModelA = [ - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167:P", - _score: 1.0, - _source: { - modelId: "modelA", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 2", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2" - }, - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - entryId: "658c24996607be00087f1167", - tenant: "root", - createdOn: "2023-12-27T13:20:25.235Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - webinyVersion: "5.38.2", - id: "658c24996607be00087f1167#0001", - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - published: true, - TYPE: "cms.entry.p", - __type: "cms.entry.p" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166:P", - _score: 1.0, - _source: { - modelId: "modelA", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 1", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1" - }, - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - entryId: "658c248b6607be00087f1166", - tenant: "root", - createdOn: "2023-12-27T13:20:11.821Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - webinyVersion: "5.38.2", - id: "658c248b6607be00087f1166#0001", - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - published: true, - TYPE: "cms.entry.p", - __type: "cms.entry.p" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c248b6607be00087f1166", - id: "658c248b6607be00087f1166#0001", - modelId: "modelA", - locale: "en-US", - createdOn: "2023-12-27T13:20:11.821Z", - savedOn: "2023-12-27T13:20:12.775Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: true, - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 1", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - publishedOn: "2023-12-27T13:20:12.775Z" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c24a16607be00087f1168", - id: "658c24a16607be00087f1168#0001", - modelId: "modelA", - locale: "en-US", - createdOn: "2023-12-27T13:20:33.775Z", - savedOn: "2023-12-27T13:20:34.175Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: true, - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 3", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - publishedOn: "2023-12-27T13:20:34.175Z" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c24aa6607be00087f1169", - id: "658c24aa6607be00087f1169#0001", - modelId: "modelA", - locale: "en-US", - createdOn: "2023-12-27T13:20:42.180Z", - savedOn: "2023-12-27T13:20:42.180Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 4", - "long-text@z2tdm05d": "" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168:P", - _score: 1.0, - _source: { - modelId: "modelA", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 3", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2" - }, - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - entryId: "658c24a16607be00087f1168", - tenant: "root", - createdOn: "2023-12-27T13:20:33.775Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - webinyVersion: "5.38.2", - id: "658c24a16607be00087f1168#0001", - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - published: true, - TYPE: "cms.entry.p", - __type: "cms.entry.p" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c24996607be00087f1167", - id: "658c24996607be00087f1167#0001", - modelId: "modelA", - locale: "en-US", - createdOn: "2023-12-27T13:20:25.235Z", - savedOn: "2023-12-27T13:20:25.701Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: true, - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 2", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - publishedOn: "2023-12-27T13:20:25.701Z" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.es-index-root-headless-cms-en-us-modelb.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.es-index-root-headless-cms-en-us-modelb.ts deleted file mode 100644 index 2242004e3dc..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.es-index-root-headless-cms-en-us-modelb.ts +++ /dev/null @@ -1,133 +0,0 @@ -export const headlessCmsModelB = [ - { - _index: "root-headless-cms-en-us-modelb", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c2524adbc1700090e1ad1", - id: "658c2524adbc1700090e1ad1#0001", - modelId: "modelB", - locale: "en-US", - createdOn: "2023-12-27T13:22:44.672Z", - savedOn: "2023-12-27T13:22:46.091Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: true, - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - publishedOn: "2023-12-27T13:22:46.091Z" - } - }, - { - _index: "root-headless-cms-en-us-modelb", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1:P", - _score: 1.0, - _source: { - modelId: "modelB", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1" - }, - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - entryId: "658c2524adbc1700090e1ad1", - tenant: "root", - createdOn: "2023-12-27T13:22:44.672Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - webinyVersion: "5.38.2", - id: "658c2524adbc1700090e1ad1#0001", - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - published: true, - TYPE: "cms.entry.p", - __type: "cms.entry.p" - } - }, - { - _index: "root-headless-cms-en-us-modelb", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2:L", - _score: 1.0, - _source: { - modelId: "modelB", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:23:15.536Z", - locale: "en-US", - status: "draft", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED", - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 2 UPDATED" - }, - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - entryId: "658c2531adbc1700090e1ad2", - tenant: "root", - createdOn: "2023-12-27T13:22:57.094Z", - locked: false, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - webinyVersion: "5.38.2", - id: "658c2531adbc1700090e1ad2#0001", - modifiedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - meta: {}, - rawValues: { - "file@5atpz8nu": null - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.test.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.test.ts deleted file mode 100644 index 9bf6bf6a4cc..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/001.test.ts +++ /dev/null @@ -1,285 +0,0 @@ -import { Sort as ElasticsearchSort } from "elastic-ts"; -import { - assertNotError, - createDdbEsMigrationHandler, - getDynamoToEsTable, - importElasticsearchTestData, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { CmsEntriesInitNewMetaFields_5_39_0_001 } from "~/migrations/5.39.0/001/ddb-es"; - -import { transferDynamoDbToElasticsearch } from "~tests/utils/insertElasticsearchTestData"; -import { esGetIndexSettings } from "~/utils"; -import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; -import { getRecordIndexName } from "~tests/migrations/5.37.0/002/ddb-es/helpers"; -import { listElasticsearchItems } from "~tests/utils/listElasticsearchItems"; -import { getDecompressedData } from "~tests/migrations/5.37.0/003/ddb-es/getDecompressedData"; - -// Test data. -import { ddbPrimaryTableData } from "./001.ddbPrimaryTableData"; -import { ddbEsTableData } from "./001.ddbEsTableData"; -import { headlessCmsAcoSearchRecordPbPage } from "./001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage"; -import { headlessCmsFmFile } from "./001.es-index-root-headless-cms-en-us-fmfile"; -import { headlessCmsModelA } from "./001.es-index-root-headless-cms-en-us-modela"; -import { headlessCmsModelB } from "./001.es-index-root-headless-cms-en-us-modelb"; - -// Migrated test data. -import { ddbPrimaryTableDataMigrated } from "./migrated/001.ddbPrimaryTableData"; -import { ddbEsTableDataMigrated } from "./migrated/001.ddbEsTableData"; -import { headlessCmsAcoSearchRecordPbPageMigrated } from "./migrated/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage"; -import { headlessCmsFmFileMigrated } from "./migrated/001.es-index-root-headless-cms-en-us-fmfile"; -import { headlessCmsModelAMigrated } from "./migrated/001.es-index-root-headless-cms-en-us-modela"; -import { headlessCmsModelBMigrated } from "./migrated/001.es-index-root-headless-cms-en-us-modelb"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -// Ensures that either both modifiedOn and modifiedBy fields are set or none is set. -const expectModifiedFieldsAreSynced = (entry: Record) => { - const hasRevisionModifiedOn = !!entry.revisionModifiedOn; - const hasRevisionModifiedBy = !!entry.revisionModifiedBy; - expect(hasRevisionModifiedBy).toBe(hasRevisionModifiedOn); - - const hasEntryModifiedOn = !!entry.entryModifiedOn; - const hasEntryModifiedBy = !!entry.entryModifiedBy; - expect(hasEntryModifiedOn).toBe(hasEntryModifiedBy); -}; - -describe("5.39.0-001", () => { - const primaryTable = getPrimaryDynamoDbTable(); - const dynamoToEsTable = getDynamoToEsTable(); - const elasticsearchClient = createElasticsearchClient(); - - const insertAllTestData = async () => { - await insertTestData(primaryTable, ddbPrimaryTableData); - await insertTestData(dynamoToEsTable, ddbEsTableData); - - const esIndexData = { - "acosearchrecord-pbpage": headlessCmsAcoSearchRecordPbPage, - fmfile: headlessCmsFmFile, - modela: headlessCmsModelA, - modelb: headlessCmsModelB - }; - - for (const indexName in esIndexData) { - await importElasticsearchTestData( - elasticsearchClient, - esIndexData[indexName as keyof typeof esIndexData] - ); - } - - await elasticsearchClient.indices.refreshAll(); - }; - - beforeAll(async () => { - process.env.ELASTIC_SEARCH_INDEX_PREFIX = - new Date().toISOString().replace(/\.|\:/g, "-").toLowerCase() + "-"; - - await elasticsearchClient.indices.deleteAll(); - }); - afterEach(async () => { - await elasticsearchClient.indices.deleteAll(); - }); - - logTestNameBeforeEachTest(); - - it("should not run if no entries without new meta fields were found", async () => { - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [CmsEntriesInitNewMetaFields_5_39_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertAllTestData(); - - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [CmsEntriesInitNewMetaFields_5_39_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const primaryTableData = await scanTable(primaryTable, { - limit: 1_000_000 - }); - - // Primary DynamoDB table test data has migration-related items - // filtered out. We need to do the same here. - expect(primaryTableData.filter(item => !item.TYPE?.startsWith("migration"))).toEqual( - ddbPrimaryTableDataMigrated - ); - - const ddbEsTableRecordsCompressed = await scanTable(dynamoToEsTable, { - limit: 1_000_000 - }); - - const ddbEsTableRecordsDecompressed = await Promise.all( - ddbEsTableRecordsCompressed.map(async item => { - if (!item.PK.includes("#CMS#CME#")) { - return item; - } - - const decompressed = await getDecompressedData(item.data); - return { - ...item, - data: decompressed - }; - }) - ); - - expect(ddbEsTableRecordsDecompressed).toEqual(ddbEsTableDataMigrated); - - // In the following lines, we're going to check if the data in Elasticsearch is correct. - await transferDynamoDbToElasticsearch( - elasticsearchClient, - dynamoToEsTable, - getRecordIndexName - ); - - const indexes = new Set(); - for (const record of ddbEsTableData) { - const entry = await getDecompressedData(record.data); - if (entry && entry.modelId) { - indexes.add(getRecordIndexName(entry)); - } - } - - expect(indexes.size).toBe(4); - - const [ - headlessCmsAcoSearchRecordPbPageIndexName, - headlessCmsFmFileIndexName, - headlessCmsModelAIndexName, - headlessCmsModelBIndexName - ] = indexes; - - // Ensure correct data ended up in Elasticsearch. - const sort = [ - { - "id.keyword": { order: "desc", unmapped_type: "keyword" }, - "TYPE.keyword": { order: "asc", unmapped_type: "keyword" } - } - ] as ElasticsearchSort; - - // 1. Check ACO Search Record PB Page index. - const migratedHeadlessCmsAcoSearchRecordPbPageRecords = await listElasticsearchItems({ - client: elasticsearchClient, - index: headlessCmsAcoSearchRecordPbPageIndexName, - body: { sort } - }); - - expect(migratedHeadlessCmsAcoSearchRecordPbPageRecords).toBeArrayOfSize(2); - expect(migratedHeadlessCmsAcoSearchRecordPbPageRecords).toEqual( - headlessCmsAcoSearchRecordPbPageMigrated - ); - - headlessCmsAcoSearchRecordPbPageMigrated.forEach(expectModifiedFieldsAreSynced); - - // 2. Check FM File index. - const migratedHeadlessCmsFmFileRecords = await listElasticsearchItems({ - client: elasticsearchClient, - index: headlessCmsFmFileIndexName, - body: { sort } - }); - - expect(migratedHeadlessCmsFmFileRecords).toBeArrayOfSize(21); - expect(migratedHeadlessCmsFmFileRecords).toEqual(headlessCmsFmFileMigrated); - - headlessCmsFmFileMigrated.forEach(expectModifiedFieldsAreSynced); - - // 3. Check Model A index. - const migratedHeadlessCmsModelARecords = await listElasticsearchItems({ - client: elasticsearchClient, - index: headlessCmsModelAIndexName, - body: { sort } - }); - - expect(migratedHeadlessCmsModelARecords).toBeArrayOfSize(7); - expect(migratedHeadlessCmsModelARecords).toEqual(headlessCmsModelAMigrated); - - headlessCmsModelAMigrated.forEach(expectModifiedFieldsAreSynced); - - // 4. Check Model B index. - const migratedHeadlessCmsModelBRecords = await listElasticsearchItems({ - client: elasticsearchClient, - index: headlessCmsModelBIndexName, - body: { sort } - }); - - expect(migratedHeadlessCmsModelBRecords).toBeArrayOfSize(3); - expect(migratedHeadlessCmsModelBRecords).toEqual(headlessCmsModelBMigrated); - - headlessCmsModelBMigrated.forEach(expectModifiedFieldsAreSynced); - - /** - * Test that all indexes have the expected settings after the migration. - */ - for (const index of indexes) { - const settings = await esGetIndexSettings({ - elasticsearchClient, - index, - fields: ["number_of_replicas", "refresh_interval"] - }); - expect(Number(settings?.number_of_replicas)).toBeGreaterThanOrEqual(1); - expect(settings?.refresh_interval).not.toBe(-1); - const interval = parseInt((settings?.refresh_interval as string).replace("s", "")); - expect(interval).toBeGreaterThanOrEqual(1); - } - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertAllTestData(); - - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [CmsEntriesInitNewMetaFields_5_39_0_001] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.ddbEsTableData.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.ddbEsTableData.ts deleted file mode 100644 index ef3ea1c02ff..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.ddbEsTableData.ts +++ /dev/null @@ -1,3016 +0,0 @@ -// Note that the data is decompressed. -export const ddbEsTableDataMigrated = [ - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - SK: "L", - created: "2023-12-27T12:43:01.141Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.024Z", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - firstPublishedBy: null, - firstPublishedOn: null, - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.024Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@data": { - "object@createdBy": {} - }, - "object@location": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.024Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.024Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.024Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.024Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@status": "published", - "text@title": "Not Found" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@tags": [], - "text@title": "Not Found", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - modified: "2023-12-27T12:43:01.141Z" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "L", - _ct: "2023-12-27T12:43:00.682Z", - _et: "PbPagesEs", - _md: "2023-12-27T12:43:00.682Z", - data: { - __type: "page", - category: "static", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - images: {}, - latest: true, - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - snippet: null, - status: "published", - tags: [], - tenant: "root", - title: "Not Found", - titleLC: "not found", - version: 1, - webinyVersion: "5.38.2" - }, - index: "root-en-us-page-builder" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "P", - _ct: "2023-12-27T12:43:00.682Z", - _et: "PbPagesEs", - _md: "2023-12-27T12:43:00.682Z", - data: { - __type: "page", - category: "static", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - images: {}, - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - published: true, - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - snippet: null, - status: "published", - tags: [], - tenant: "root", - title: "Not Found", - titleLC: "not found", - version: 1, - webinyVersion: "5.38.2" - }, - index: "root-en-us-page-builder" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - SK: "L", - created: "2023-12-27T12:42:59.522Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba27", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba27#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17711, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@name": "security.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.522Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - SK: "L", - created: "2023-12-27T12:42:59.706Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c721", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c721#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27804, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@name": "developer.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.706Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - SK: "L", - created: "2023-12-27T12:42:59.361Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814b7a77e60008f70d62", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814b7a77e60008f70d62#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1864, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@name": "hero-block-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.361Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - SK: "L", - created: "2023-12-27T12:42:59.486Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602282e07a77e60008f70d63", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602282e07a77e60008f70d63#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@name": "feature-card-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.486Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "L", - created: "2023-12-27T13:20:25.736Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:25.736Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "P", - created: "2023-12-27T13:20:25.737Z", - data: { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:25.737Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - SK: "L", - created: "2023-12-27T12:42:59.543Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c720", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c720#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 28918, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@name": "adaptable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.543Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - SK: "L", - created: "2023-12-27T12:42:59.702Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dab", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dab#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 67402, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@name": "permission-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.702Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - SK: "L", - created: "2023-12-27T12:43:01.123Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.006Z", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - firstPublishedBy: null, - firstPublishedOn: null, - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.006Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@data": { - "object@createdBy": {} - }, - "object@location": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.006Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.006Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.006Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.006Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@status": "published", - "text@title": "Welcome to Webiny" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@tags": [], - "text@title": "Welcome to Webiny", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - modified: "2023-12-27T12:43:01.123Z" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "L", - _ct: "2023-12-27T12:43:00.864Z", - _et: "PbPagesEs", - _md: "2023-12-27T12:43:00.864Z", - data: { - __type: "page", - category: "static", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - images: {}, - latest: true, - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - snippet: null, - status: "published", - tags: [], - tenant: "root", - title: "Welcome to Webiny", - titleLC: "welcome to webiny", - version: 1, - webinyVersion: "5.38.2" - }, - index: "root-en-us-page-builder" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "P", - _ct: "2023-12-27T12:43:00.864Z", - _et: "PbPagesEs", - _md: "2023-12-27T12:43:00.864Z", - data: { - __type: "page", - category: "static", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - images: {}, - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - published: true, - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - snippet: null, - status: "published", - tags: [], - tenant: "root", - title: "Welcome to Webiny", - titleLC: "welcome to webiny", - version: 1, - webinyVersion: "5.38.2" - }, - index: "root-en-us-page-builder" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - SK: "L", - created: "2023-12-27T12:42:59.525Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba26", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba26#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 33888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@name": "scaffolding.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.525Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - SK: "L", - created: "2023-12-27T12:42:59.561Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814851197600081724ae", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814851197600081724ae#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 60602, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@name": "cost-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.561Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - SK: "L", - created: "2023-12-27T12:42:59.487Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814a0df4b000088735bb", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814a0df4b000088735bb#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 3661, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@name": "webiny-serverless-application-framework.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.487Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "L", - created: "2023-12-27T13:20:12.855Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1", - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:12.855Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "P", - created: "2023-12-27T13:20:12.874Z", - data: { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1", - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:12.874Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - SK: "L", - created: "2023-12-27T12:42:59.488Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148f98841000981c723", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148f98841000981c723#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 390, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@name": "pink-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.488Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - SK: "L", - created: "2023-12-27T12:42:59.527Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486639200009fd35eb", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486639200009fd35eb#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1758, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@name": "serverless-cms-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.527Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - SK: "L", - created: "2023-12-27T12:42:59.523Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814891bd1300087bd24c", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814891bd1300087bd24c#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 90163, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@name": "webiny-infrastructure-overview.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.523Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - SK: "L", - created: "2023-12-27T12:42:59.563Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c71f", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c71f#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 30007, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@name": "octo-cat.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.563Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - SK: "L", - created: "2023-12-27T12:42:59.541Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486639200009fd35ec", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486639200009fd35ec#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 392, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@name": "cms-benefits-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.541Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "L", - created: "2023-12-27T13:22:46.132Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1", - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modelb", - modified: "2023-12-27T13:22:46.132Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "P", - created: "2023-12-27T13:22:46.134Z", - data: { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1", - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modelb", - modified: "2023-12-27T13:22:46.134Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - SK: "L", - created: "2023-12-27T12:42:59.528Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148fa244d0008c47c79", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148fa244d0008c47c79#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 7806, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@name": "scalable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.528Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - SK: "L", - created: "2023-12-27T12:42:59.684Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148f98841000981c724", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148f98841000981c724#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27878, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@name": "idp.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.684Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "L", - created: "2023-12-27T13:20:34.215Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:34.215Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "P", - created: "2023-12-27T13:20:34.216Z", - data: { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:34.216Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - SK: "L", - created: "2023-12-27T12:42:59.705Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148fa244d0008c47c7a", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148fa244d0008c47c7a#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17382, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@name": "community-icon.png", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.705Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - SK: "L", - created: "2023-12-27T12:42:59.482Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814b0df4b000088735bc", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814b0df4b000088735bc#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 5053, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@name": "webiny-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.482Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169", - SK: "L", - created: "2023-12-27T13:20:42.214Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:42.180Z", - entryId: "658c24aa6607be00087f1169", - firstPublishedBy: null, - firstPublishedOn: null, - id: "658c24aa6607be00087f1169#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:42.180Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:42.180Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:42.180Z", - status: "draft", - tenant: "root", - values: { - "long-text@z2tdm05d": "", - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:42.214Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - SK: "L", - created: "2023-12-27T13:23:15.572Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:57.094Z", - entryId: "658c2531adbc1700090e1ad2", - firstPublishedBy: null, - firstPublishedOn: null, - id: "658c2531adbc1700090e1ad2#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "modelB", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:15.536Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "file@5atpz8nu": null - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:57.094Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:15.536Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:15.536Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:23:15.536Z", - status: "draft", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 2 UPDATED", - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modelb", - modified: "2023-12-27T13:23:15.572Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - SK: "L", - created: "2023-12-27T12:42:59.544Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dad", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dad#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 108898, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@name": "webiny-serverless-cms.png ", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.544Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - SK: "L", - created: "2023-12-27T12:42:59.524Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba28", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba28#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 132767, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@name": "environments.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.524Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - SK: "L", - created: "2023-12-27T12:42:59.703Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dac", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dac#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 73153, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@name": "data-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.703Z" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.ddbPrimaryTableData.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.ddbPrimaryTableData.ts deleted file mode 100644 index 5df7307d1b1..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.ddbPrimaryTableData.ts +++ /dev/null @@ -1,5458 +0,0 @@ -// We commented migrations-related records because of constant changes in these. -export const ddbPrimaryTableDataMigrated = [ - { - GSI1_PK: "T#root#GROUPS", - GSI1_SK: "full-access", - PK: "T#root#GROUP#658c1b60c39bb10008431b42", - SK: "A", - TYPE: "security.group", - _ct: "2023-12-27T12:41:05.020Z", - _et: "SecurityGroup", - _md: "2023-12-27T12:41:05.020Z", - createdOn: "2023-12-27T12:41:04.963Z", - description: "Grants full access to all apps.", - id: "658c1b60c39bb10008431b42", - name: "Full Access", - permissions: [ - { - name: "*" - } - ], - slug: "full-access", - system: true, - tenant: "root", - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - SK: "658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:14.870Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:14.870Z", - data: { - key: "pb-page", - path: "/welcome-to-webiny", - tenant: "root", - value: "658c1bd3c39bb10008431b5b#0001" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:43:01.122Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.024Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:43:01.122Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.024Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.024Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.024Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.024Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.024Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@status": "published", - "text@title": "Not Found" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@tags": [], - "text@title": "Not Found", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:43:01.121Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.024Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:43:01.121Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.024Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.024Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.024Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.024Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.024Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@status": "published", - "text@title": "Not Found" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@tags": [], - "text@title": "Not Found", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#C", - SK: "static", - TYPE: "pb.category", - _ct: "2023-12-27T12:42:57.966Z", - _et: "PbCategories", - _md: "2023-12-27T12:42:57.966Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:57.965Z", - layout: "static", - locale: "en-US", - name: "Static", - slug: "static", - tenant: "root", - url: "/static/" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "L", - TYPE: "pb.page.l", - _ct: "2023-12-27T12:43:00.681Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.681Z", - category: "static", - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Not Found", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "P", - TYPE: "pb.page.p", - _ct: "2023-12-27T12:43:00.682Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.682Z", - category: "static", - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Not Found", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "REV#0001", - TYPE: "pb.page", - _ct: "2023-12-27T12:43:00.681Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.681Z", - category: "static", - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Not Found", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#M", - SK: "main-menu", - TYPE: "pb.menu", - _ct: "2023-12-27T12:42:59.821Z", - _et: "PbMenus", - _md: "2023-12-27T12:42:59.821Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.821Z", - description: "The main menu of the website, containing links to most important pages.", - items: [], - locale: "en-US", - slug: "main-menu", - tenant: "root", - title: "Main Menu" - }, - { - PK: "T#root#L#en-US#FB#SETTINGS", - SK: "default", - _ct: "2023-12-27T12:43:01.966Z", - _et: "FormBuilderSettings", - _md: "2023-12-27T12:43:01.966Z", - domain: "https://d3hohw12noi930.cloudfront.net", - locale: "en-US", - reCaptcha: { - enabled: null, - secretKey: null, - siteKey: null - }, - tenant: "root" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-menu#main-menu#/", - PK: "T#root#PS#TAG#pb-menu#main-menu#/", - SK: "main-menu#/", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:19.484Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:19.484Z", - data: { - key: "pb-menu", - path: "/", - tenant: "root", - value: "main-menu" - } - }, - { - GSI1_PK: "T#root#GROUPS", - GSI1_SK: "anonymous", - PK: "T#root#GROUP#658c1b61c39bb10008431b43", - SK: "A", - TYPE: "security.group", - _ct: "2023-12-27T12:41:05.147Z", - _et: "SecurityGroup", - _md: "2023-12-27T12:41:05.147Z", - createdOn: "2023-12-27T12:41:05.146Z", - description: "Permissions for anonymous users (public access).", - id: "658c1b61c39bb10008431b43", - name: "Anonymous", - permissions: [], - slug: "anonymous", - system: true, - tenant: "root", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.007Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba27", - id: "6022814bef4a940008b3ba27#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.007Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17711, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@name": "security.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.007Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba27", - id: "6022814bef4a940008b3ba27#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.007Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17711, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@name": "security.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CM", - SK: "modelA", - TYPE: "cms.model", - _ct: "2023-12-27T13:20:12.156Z", - _et: "CmsModels", - _md: "2023-12-27T13:20:12.156Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:18:26.594Z", - descriptionFieldId: "description", - fields: [ - { - fieldId: "title", - helpText: null, - id: "f2qcuuzs", - label: "Title", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "text-input" - }, - settings: {}, - storageId: "text@f2qcuuzs", - tags: [], - type: "text", - validation: [ - { - message: "Title is a required field.", - name: "required", - settings: {} - } - ] - }, - { - fieldId: "description", - helpText: null, - id: "z2tdm05d", - label: "Description", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "long-text-text-area" - }, - settings: {}, - storageId: "long-text@z2tdm05d", - tags: [], - type: "long-text", - validation: [] - }, - { - fieldId: "image", - helpText: null, - id: "8y67xrmj", - label: "Image", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "file-input" - }, - settings: { - imagesOnly: true - }, - storageId: "file@8y67xrmj", - tags: [], - type: "file", - validation: [] - } - ], - group: { - id: "658c1bcbc39bb10008431b45", - name: "Ungrouped" - }, - imageFieldId: "image", - layout: [["f2qcuuzs"], ["z2tdm05d", "8y67xrmj"]], - locale: "en-US", - lockedFields: [ - { - fieldId: "text@f2qcuuzs", - multipleValues: false, - type: "text" - }, - { - fieldId: "long-text@z2tdm05d", - multipleValues: false, - type: "long-text" - }, - { - fieldId: "file@8y67xrmj", - multipleValues: false, - type: "file" - } - ], - modelId: "modelA", - name: "ModelA", - pluralApiName: "ModelAs", - savedOn: "2023-12-27T13:18:39.298Z", - singularApiName: "ModelA", - tags: ["type:model"], - tenant: "root", - titleFieldId: "title", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CM", - SK: "modelB", - TYPE: "cms.model", - _ct: "2023-12-27T13:22:45.032Z", - _et: "CmsModels", - _md: "2023-12-27T13:22:45.032Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:21:39.663Z", - descriptionFieldId: "description", - fields: [ - { - fieldId: "title", - helpText: null, - id: "4dep2w2h", - label: "Title", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "text-input" - }, - settings: {}, - storageId: "text@4dep2w2h", - tags: [], - type: "text", - validation: [ - { - message: "Title is a required field.", - name: "required", - settings: {} - } - ] - }, - { - fieldId: "description", - helpText: null, - id: "7c5t8wwa", - label: "Description", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "long-text-text-area" - }, - settings: {}, - storageId: "long-text@7c5t8wwa", - tags: [], - type: "long-text", - validation: [] - }, - { - fieldId: "image", - helpText: null, - id: "5atpz8nu", - label: "Image", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "file-input" - }, - settings: { - imagesOnly: true - }, - storageId: "file@5atpz8nu", - tags: [], - type: "file", - validation: [] - } - ], - group: { - id: "658c1bcbc39bb10008431b45", - name: "Ungrouped" - }, - imageFieldId: "image", - layout: [["4dep2w2h"], ["7c5t8wwa", "5atpz8nu"]], - locale: "en-US", - lockedFields: [ - { - fieldId: "text@4dep2w2h", - multipleValues: false, - type: "text" - }, - { - fieldId: "long-text@7c5t8wwa", - multipleValues: false, - type: "long-text" - }, - { - fieldId: "file@5atpz8nu", - multipleValues: false, - type: "file" - } - ], - modelId: "modelB", - name: "ModelB", - pluralApiName: "ModelBs", - savedOn: "2023-12-27T13:21:46.459Z", - singularApiName: "ModelB", - tags: ["type:model"], - tenant: "root", - titleFieldId: "title", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.262Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c721", - id: "60228145f98841000981c721#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.262Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27804, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@name": "developer.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.261Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c721", - id: "60228145f98841000981c721#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.261Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27804, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@name": "developer.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "ADMIN_USERS", - TYPE: "adminUsers.system", - _ct: "2023-12-27T12:41:24.444Z", - _et: "AdminUsers.System", - _md: "2023-12-27T12:41:24.444Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "CMS", - _ct: "2023-12-27T12:42:51.969Z", - _et: "CmsSystem", - _md: "2023-12-27T12:42:51.969Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "FB", - _ct: "2023-12-27T12:43:01.981Z", - _et: "FormBuilderSystem", - _md: "2023-12-27T12:43:01.981Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "FM", - _ct: "2023-12-27T12:42:52.301Z", - _et: "System", - _md: "2023-12-27T12:42:52.301Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "I18N", - _ct: "2023-12-27T12:42:49.990Z", - _et: "I18NSystem", - _md: "2023-12-27T12:42:49.990Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "PB", - _ct: "2023-12-27T12:43:01.256Z", - _et: "PbSystem", - _md: "2023-12-27T12:43:01.256Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "SECURITY", - _ct: "2023-12-27T12:41:05.169Z", - _et: "SecuritySystem", - _md: "2023-12-27T12:41:05.169Z", - installedOn: "2023-12-27T12:41:05.169Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "TENANCY", - _ct: "2023-12-27T12:40:58.981Z", - _et: "TenancySystem", - _md: "2023-12-27T12:40:58.981Z", - version: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.903Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814b7a77e60008f70d62", - id: "6022814b7a77e60008f70d62#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.903Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1864, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@name": "hero-block-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.903Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814b7a77e60008f70d62", - id: "6022814b7a77e60008f70d62#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.903Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1864, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@name": "hero-block-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.944Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602282e07a77e60008f70d63", - id: "602282e07a77e60008f70d63#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.944Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@name": "feature-card-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.944Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602282e07a77e60008f70d63", - id: "602282e07a77e60008f70d63#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.944Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@name": "feature-card-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-menu#main-menu#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-menu#main-menu#/welcome-to-webiny", - SK: "main-menu#/welcome-to-webiny", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:14.870Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:14.870Z", - data: { - key: "pb-menu", - path: "/welcome-to-webiny", - tenant: "root", - value: "main-menu" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:25.735Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entity: "CmsEntries", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:25.735Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:20:25.724Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entity: "CmsEntries", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:25.724Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:25.723Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entity: "CmsEntries", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:25.723Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.105Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c720", - id: "60228145f98841000981c720#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.105Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 28918, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@name": "adaptable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.105Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c720", - id: "60228145f98841000981c720#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.105Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 28918, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@name": "adaptable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.202Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dab", - id: "602281486ed41f0008bc2dab#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.202Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 67402, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@name": "permission-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.202Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dab", - id: "602281486ed41f0008bc2dab#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.202Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 67402, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@name": "permission-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#I18N#L#D", - SK: "default", - _ct: "2023-12-27T12:42:49.523Z", - _et: "I18NLocale", - _md: "2023-12-27T12:42:49.523Z", - code: "en-US", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:48.245Z", - default: true, - tenant: "root", - webinyVersion: "5.38.2" - }, - { - PK: "APW#SETTINGS", - SK: "default", - eventRuleName: "wby-apw-scheduler-event-rule-3889a7f", - eventTargetId: "wby-apw-scheduler-event-rule-target-34a2e04", - mainGraphqlFunctionArn: - "arn:aws:lambda:eu-central-1:674320871285:function:wby-graphql-670ccd3" - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:43:01.107Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.006Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:43:01.107Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.006Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.006Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.006Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.006Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.006Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@status": "published", - "text@title": "Welcome to Webiny" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@tags": [], - "text@title": "Welcome to Webiny", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:43:01.107Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.006Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:43:01.107Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.006Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.006Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.006Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.006Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.006Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@status": "published", - "text@title": "Welcome to Webiny" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@tags": [], - "text@title": "Welcome to Webiny", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#RENDER", - GSI1_SK: "/", - PK: "T#root#PS#RENDER#/", - SK: "A", - TYPE: "ps.render", - _ct: "2023-12-27T12:43:19.454Z", - _et: "PrerenderingServiceRender", - _md: "2023-12-27T12:43:19.454Z", - data: { - files: [ - { - meta: { - tags: [ - { - key: "pb-page", - value: "658c1bd3c39bb10008431b5b#0001" - }, - { - key: "pb-menu", - value: "main-menu" - } - ] - }, - name: "index.html", - type: "text/html" - }, - { - meta: {}, - name: "graphql.json", - type: "application/json" - } - ], - locale: "en-US", - path: "/", - tenant: "root" - } - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "L", - TYPE: "pb.page.l", - _ct: "2023-12-27T12:43:00.864Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.864Z", - category: "static", - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Welcome to Webiny", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "P", - TYPE: "pb.page.p", - _ct: "2023-12-27T12:43:00.881Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.881Z", - category: "static", - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Welcome to Webiny", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "REV#0001", - TYPE: "pb.page", - _ct: "2023-12-27T12:43:00.864Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.864Z", - category: "static", - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Welcome to Webiny", - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root", - GSI1_SK: "TYPE#group#IDENTITY#658c1b73c39bb10008431b44", - PK: "IDENTITY#658c1b73c39bb10008431b44", - SK: "LINK#T#root", - _ct: "2023-12-27T12:41:24.428Z", - _et: "SecurityIdentity2Tenant", - _md: "2023-12-27T12:41:24.428Z", - createdOn: "2023-12-27T12:41:24.428Z", - data: { - groups: [ - { - id: "658c1b60c39bb10008431b42", - permissions: [ - { - name: "*" - } - ] - } - ], - teams: [] - }, - identity: "658c1b73c39bb10008431b44", - tenant: "root", - type: "group", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.041Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba26", - id: "6022814bef4a940008b3ba26#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.041Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 33888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@name": "scaffolding.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.023Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba26", - id: "6022814bef4a940008b3ba26#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.023Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 33888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@name": "scaffolding.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#RENDER", - GSI1_SK: "/not-found", - PK: "T#root#PS#RENDER#/not-found", - SK: "A", - TYPE: "ps.render", - _ct: "2023-12-27T12:43:23.802Z", - _et: "PrerenderingServiceRender", - _md: "2023-12-27T12:43:23.802Z", - data: { - files: [ - { - meta: { - tags: [ - { - key: "pb-page", - value: "658c1bd3c39bb10008431b5c#0001" - }, - { - key: "pb-menu", - value: "main-menu" - } - ] - }, - name: "index.html", - type: "text/html" - }, - { - meta: {}, - name: "graphql.json", - type: "application/json" - } - ], - locale: "en-US", - path: "/not-found", - tags: [ - { - key: "notFoundPage", - value: true - } - ], - tenant: "root" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.122Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814851197600081724ae", - id: "6022814851197600081724ae#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.122Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 60602, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@name": "cost-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.121Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814851197600081724ae", - id: "6022814851197600081724ae#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.121Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 60602, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@name": "cost-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CMG", - SK: "658c1bcbc39bb10008431b45", - TYPE: "cms.group", - _ct: "2023-12-27T12:42:51.962Z", - _et: "CmsGroups", - _md: "2023-12-27T12:42:51.962Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:51.921Z", - description: "A generic content model group", - icon: "fas/star", - id: "658c1bcbc39bb10008431b45", - locale: "en-US", - name: "Ungrouped", - savedOn: "2023-12-27T12:42:51.921Z", - slug: "ungrouped", - tenant: "root", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.964Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814a0df4b000088735bb", - id: "6022814a0df4b000088735bb#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.964Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 3661, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@name": "webiny-serverless-application-framework.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.964Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814a0df4b000088735bb", - id: "6022814a0df4b000088735bb#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.964Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 3661, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@name": "webiny-serverless-application-framework.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#RENDER", - GSI1_SK: "/welcome-to-webiny", - PK: "T#root#PS#RENDER#/welcome-to-webiny", - SK: "A", - TYPE: "ps.render", - _ct: "2023-12-27T12:43:14.831Z", - _et: "PrerenderingServiceRender", - _md: "2023-12-27T12:43:14.832Z", - data: { - files: [ - { - meta: { - tags: [ - { - key: "pb-page", - value: "658c1bd3c39bb10008431b5b#0001" - }, - { - key: "pb-menu", - value: "main-menu" - } - ] - }, - name: "index.html", - type: "text/html" - }, - { - meta: {}, - name: "graphql.json", - type: "application/json" - } - ], - locale: "en-US", - path: "/welcome-to-webiny", - tenant: "root" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:12.835Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entity: "CmsEntries", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:12.835Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:12.775Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:20:12.803Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entity: "CmsEntries", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:12.803Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:12.775Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:12.803Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entity: "CmsEntries", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:12.803Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:12.775Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.004Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c723", - id: "60228148f98841000981c723#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.004Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 390, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@name": "pink-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.004Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c723", - id: "60228148f98841000981c723#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.004Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 390, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@name": "pink-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.065Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35eb", - id: "602281486639200009fd35eb#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.065Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1758, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@name": "serverless-cms-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.065Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35eb", - id: "602281486639200009fd35eb#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.065Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1758, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@name": "serverless-cms-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.984Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814891bd1300087bd24c", - id: "6022814891bd1300087bd24c#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.984Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 90163, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@name": "webiny-infrastructure-overview.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.984Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814891bd1300087bd24c", - id: "6022814891bd1300087bd24c#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.984Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 90163, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@name": "webiny-infrastructure-overview.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.281Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c71f", - id: "60228145f98841000981c71f#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.281Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 30007, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@name": "octo-cat.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.281Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c71f", - id: "60228145f98841000981c71f#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.281Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 30007, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@name": "octo-cat.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.081Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35ec", - id: "602281486639200009fd35ec#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.081Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 392, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@name": "cms-benefits-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.068Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35ec", - id: "602281486639200009fd35ec#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.068Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 392, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@name": "cms-benefits-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5c#0001#/not-found", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5c#0001#/not-found", - SK: "658c1bd3c39bb10008431b5c#0001#/not-found", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:23.860Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:23.860Z", - data: { - key: "pb-page", - path: "/not-found", - tenant: "root", - value: "658c1bd3c39bb10008431b5c#0001" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:22:46.130Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entity: "CmsEntries", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modified: "2023-12-27T13:22:46.130Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:22:46.115Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entity: "CmsEntries", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modified: "2023-12-27T13:22:46.115Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:22:46.114Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entity: "CmsEntries", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modified: "2023-12-27T13:22:46.114Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.102Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c79", - id: "60228148fa244d0008c47c79#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.102Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 7806, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@name": "scalable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.101Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c79", - id: "60228148fa244d0008c47c79#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.101Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 7806, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@name": "scalable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.146Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c724", - id: "60228148f98841000981c724#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.146Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27878, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@name": "idp.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.146Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c724", - id: "60228148f98841000981c724#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.146Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27878, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@name": "idp.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5b#0001#/", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5b#0001#/", - SK: "658c1bd3c39bb10008431b5b#0001#/", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:19.484Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:19.484Z", - data: { - key: "pb-page", - path: "/", - tenant: "root", - value: "658c1bd3c39bb10008431b5b#0001" - } - }, - { - PK: "T#root#I18N#L", - SK: "en-US", - _ct: "2023-12-27T12:42:49.523Z", - _et: "I18NLocale", - _md: "2023-12-27T12:42:49.523Z", - code: "en-US", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:48.245Z", - default: true, - tenant: "root", - webinyVersion: "5.38.2" - }, - { - PK: "ADMIN#SETTINGS", - SK: "default", - data: { - appUrl: "https://d3hohw12noi930.cloudfront.net" - } - }, - { - PK: "T#root#L#en-US#PB#PATH", - SK: "/not-found", - TYPE: "pb.page.p.path", - _ct: "2023-12-27T12:43:00.682Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.682Z", - category: "static", - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Not Found", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#PATH", - SK: "/welcome-to-webiny", - TYPE: "pb.page.p.path", - _ct: "2023-12-27T12:43:00.881Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.881Z", - category: "static", - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Welcome to Webiny", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:34.204Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entity: "CmsEntries", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:34.204Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:20:34.199Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entity: "CmsEntries", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:34.199Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:34.199Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entity: "CmsEntries", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:34.199Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.301Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c7a", - id: "60228148fa244d0008c47c7a#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.301Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17382, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@name": "community-icon.png", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.301Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c7a", - id: "60228148fa244d0008c47c7a#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.301Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17382, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@name": "community-icon.png", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-12-27T12:40:58.921Z", - PK: "T#root", - SK: "A", - TYPE: "tenancy.tenant", - _ct: "2023-12-27T12:40:58.922Z", - _et: "TenancyTenant", - _md: "2023-12-27T12:40:58.922Z", - data: { - createdOn: "2023-12-27T12:40:58.921Z", - description: "The top-level Webiny tenant.", - id: "root", - name: "Root", - parent: null, - savedOn: "2023-12-27T12:40:58.921Z", - settings: { - domains: [] - }, - status: "active", - tags: [], - webinyVersion: "5.38.2" - } - }, - { - PK: "T#root#L#en-US#PB#SETTINGS", - SK: "A", - TYPE: "pb.settings", - _ct: "2023-12-27T12:43:01.222Z", - _et: "PbSettings", - _md: "2023-12-27T12:43:01.222Z", - data: { - locale: "en-US", - name: "devr", - pages: { - home: "658c1bd3c39bb10008431b5b", - notFound: "658c1bd3c39bb10008431b5c" - }, - prerendering: { - app: { - url: null - }, - meta: {}, - storage: { - name: null - } - }, - tenant: "root", - type: "default", - websiteUrl: null - } - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.924Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814b0df4b000088735bc", - id: "6022814b0df4b000088735bc#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.924Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 5053, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@name": "webiny-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.924Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814b0df4b000088735bc", - id: "6022814b0df4b000088735bc#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.924Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 5053, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@name": "webiny-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#FM#SETTINGS", - SK: "A", - TYPE: "fm.settings", - _ct: "2023-12-27T12:42:52.281Z", - _et: "FM.Settings", - _md: "2023-12-27T12:42:52.281Z", - data: { - srcPrefix: "https://d3oted5odtbsmd.cloudfront.net/files/", - tenant: "root", - uploadMaxFileSize: 10737418240, - uploadMinFileSize: 0 - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:42.181Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:42.180Z", - entity: "CmsEntries", - entryId: "658c24aa6607be00087f1169", - id: "658c24aa6607be00087f1169#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "modelA", - modified: "2023-12-27T13:20:42.181Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:42.180Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:42.180Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:42.180Z", - status: "draft", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:42.181Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:42.180Z", - entity: "CmsEntries", - entryId: "658c24aa6607be00087f1169", - id: "658c24aa6607be00087f1169#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "modelA", - modified: "2023-12-27T13:20:42.181Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:42.180Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:42.180Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:42.180Z", - status: "draft", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "PS#SETTINGS", - SK: "default", - data: { - appUrl: "https://d1c9xtq19d4x6u.cloudfront.net", - bucket: "wby-delivery-68ac55a", - cloudfrontId: "E12G8OCR2J2BDW", - deliveryUrl: "https://d1jwcc7rxvj5th.cloudfront.net", - sqsQueueUrl: - "https://sqs.eu-central-1.amazonaws.com/674320871285/wby-ps-render-queue-bcd2dfd.fifo" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:23:15.570Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:57.094Z", - entity: "CmsEntries", - entryId: "658c2531adbc1700090e1ad2", - id: "658c2531adbc1700090e1ad2#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "modelB", - modified: "2023-12-27T13:23:15.570Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:15.536Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:57.094Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:15.536Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:15.536Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:23:15.536Z", - status: "draft", - tenant: "root", - values: { - "file@5atpz8nu": null, - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQA3yyBkIAAAAA==" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:23:15.570Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:57.094Z", - entity: "CmsEntries", - entryId: "658c2531adbc1700090e1ad2", - id: "658c2531adbc1700090e1ad2#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "modelB", - modified: "2023-12-27T13:23:15.570Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:15.536Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:57.094Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:15.536Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:15.536Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:23:15.536Z", - status: "draft", - tenant: "root", - values: { - "file@5atpz8nu": null, - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQA3yyBkIAAAAA==" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.062Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dad", - id: "602281486ed41f0008bc2dad#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.062Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 108898, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@name": "webiny-serverless-cms.png ", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.061Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dad", - id: "602281486ed41f0008bc2dad#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.061Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 108898, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@name": "webiny-serverless-cms.png ", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-menu#main-menu#/not-found", - PK: "T#root#PS#TAG#pb-menu#main-menu#/not-found", - SK: "main-menu#/not-found", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:23.860Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:23.860Z", - data: { - key: "pb-menu", - path: "/not-found", - tenant: "root", - value: "main-menu" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.045Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba28", - id: "6022814bef4a940008b3ba28#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.045Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 132767, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@name": "environments.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.045Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba28", - id: "6022814bef4a940008b3ba28#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.045Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 132767, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@name": "environments.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.161Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dac", - id: "602281486ed41f0008bc2dac#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.161Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 73153, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@name": "data-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.161Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dac", - id: "602281486ed41f0008bc2dac#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.161Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 73153, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@name": "data-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#ADMIN_USERS", - GSI1_SK: "admin@webiny.com", - PK: "T#root#ADMIN_USER#658c1b73c39bb10008431b44", - SK: "A", - TYPE: "adminUsers.user", - _ct: "2023-12-27T12:41:24.417Z", - _et: "AdminUsers.User", - _md: "2023-12-27T12:41:24.417Z", - data: { - createdBy: null, - createdOn: "2023-12-27T12:41:23.982Z", - displayName: "ad min", - email: "admin@webiny.com", - firstName: "ad", - group: "658c1b60c39bb10008431b42", - id: "658c1b73c39bb10008431b44", - lastName: "min", - tenant: "root", - webinyVersion: "5.38.2" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts deleted file mode 100644 index 6f2af35f719..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts +++ /dev/null @@ -1,200 +0,0 @@ -export const headlessCmsAcoSearchRecordPbPageMigrated = [ - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.024Z", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - firstPublishedBy: null, - firstPublishedOn: null, - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.024Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@data": { - "object@createdBy": {} - }, - "object@location": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.024Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.024Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.024Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.024Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@status": "published", - "text@title": "Not Found" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@tags": [], - "text@title": "Not Found", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.006Z", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - firstPublishedBy: null, - firstPublishedOn: null, - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.006Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@data": { - "object@createdBy": {} - }, - "object@location": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.006Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.006Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.006Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.006Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@status": "published", - "text@title": "Welcome to Webiny" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@tags": [], - "text@title": "Welcome to Webiny", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-fmfile.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-fmfile.ts deleted file mode 100644 index f10ae2611b2..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-fmfile.ts +++ /dev/null @@ -1,1605 +0,0 @@ -export const headlessCmsFmFileMigrated = [ - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602282e07a77e60008f70d63", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602282e07a77e60008f70d63#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@name": "feature-card-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba28", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba28#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 132767, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@name": "environments.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba27", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba27#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17711, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@name": "security.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba26", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba26#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 33888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@name": "scaffolding.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814b7a77e60008f70d62", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814b7a77e60008f70d62#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1864, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@name": "hero-block-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814b0df4b000088735bc", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814b0df4b000088735bc#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 5053, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@name": "webiny-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814a0df4b000088735bb", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814a0df4b000088735bb#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 3661, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@name": "webiny-serverless-application-framework.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148fa244d0008c47c7a", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148fa244d0008c47c7a#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17382, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@name": "community-icon.png", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148fa244d0008c47c79", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148fa244d0008c47c79#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 7806, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@name": "scalable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148f98841000981c724", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148f98841000981c724#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27878, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@name": "idp.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148f98841000981c723", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148f98841000981c723#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 390, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@name": "pink-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814891bd1300087bd24c", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814891bd1300087bd24c#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 90163, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@name": "webiny-infrastructure-overview.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dad", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dad#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 108898, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@name": "webiny-serverless-cms.png ", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dac", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dac#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 73153, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@name": "data-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dab", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dab#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 67402, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@name": "permission-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486639200009fd35ec", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486639200009fd35ec#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 392, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@name": "cms-benefits-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486639200009fd35eb", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486639200009fd35eb#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1758, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@name": "serverless-cms-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814851197600081724ae", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814851197600081724ae#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 60602, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@name": "cost-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c721", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c721#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27804, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@name": "developer.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c720", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c720#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 28918, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@name": "adaptable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c71f", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c71f#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 30007, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@name": "octo-cat.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modela.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modela.ts deleted file mode 100644 index d5a5ae100dc..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modela.ts +++ /dev/null @@ -1,545 +0,0 @@ -export const headlessCmsModelAMigrated = [ - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:42.180Z", - entryId: "658c24aa6607be00087f1169", - firstPublishedBy: null, - firstPublishedOn: null, - id: "658c24aa6607be00087f1169#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:42.180Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:42.180Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:42.180Z", - status: "draft", - tenant: "root", - values: { - "long-text@z2tdm05d": "", - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1", - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1", - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modelb.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modelb.ts deleted file mode 100644 index eeedafac38e..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modelb.ts +++ /dev/null @@ -1,236 +0,0 @@ -export const headlessCmsModelBMigrated = [ - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:57.094Z", - entryId: "658c2531adbc1700090e1ad2", - firstPublishedBy: null, - firstPublishedOn: null, - id: "658c2531adbc1700090e1ad2#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "modelB", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:15.536Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "file@5atpz8nu": null - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:57.094Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:15.536Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:15.536Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:23:15.536Z", - status: "draft", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 2 UPDATED", - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1", - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1", - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb/001.ddbPrimaryTableData.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb/001.ddbPrimaryTableData.ts deleted file mode 100644 index 28b19dfaac6..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb/001.ddbPrimaryTableData.ts +++ /dev/null @@ -1,2962 +0,0 @@ -export const ddbPrimaryTableData = [ - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814891bd1300087bd24c", - SK: "L", - _ct: "2023-12-27T12:41:44.052Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.052Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814891bd1300087bd24c", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814891bd1300087bd24c#0001", - id: "6022814891bd1300087bd24c#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "90163" }, - "text@name": { S: "webiny-infrastructure-overview.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814891bd1300087bd24c", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.052Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.052Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814891bd1300087bd24c", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814891bd1300087bd24c#0001", - id: "6022814891bd1300087bd24c#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "90163" }, - "text@name": { S: "webiny-infrastructure-overview.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228148f98841000981c724", - SK: "L", - _ct: "2023-12-27T12:41:44.193Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.193Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228148f98841000981c724", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228148f98841000981c724#0001", - id: "60228148f98841000981c724#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { S: "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg" }, - "text@aliases": { L: [] }, - "number@size": { N: "27878" }, - "text@name": { S: "idp.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228148f98841000981c724", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.192Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.192Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228148f98841000981c724", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228148f98841000981c724#0001", - id: "60228148f98841000981c724#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { S: "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg" }, - "text@aliases": { L: [] }, - "number@size": { N: "27878" }, - "text@name": { S: "idp.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c246b87b17d00085b6ee4", - SK: "L", - _ct: "2023-12-27T13:19:39.646Z", - _et: "CmsEntries", - _md: "2023-12-27T13:19:39.646Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:19:39.091Z", - entryId: "658c246b87b17d00085b6ee4", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#L", - GSI1_SK: "658c246b87b17d00085b6ee4#0001", - id: "658c246b87b17d00085b6ee4#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: true, - meta: "", - modelId: "modelA", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "2023-12-27T13:19:39.628Z", - savedOn: "2023-12-27T13:19:39.628Z", - status: "published", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "long-text@rvoj9mru": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAIAoKgAyxUAAAA=" } - } - }, - "text@prn21kdn": { S: "DDB - Model A Entry 2" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c246b87b17d00085b6ee4", - SK: "P", - _ct: "2023-12-27T13:19:39.646Z", - _et: "CmsEntries", - _md: "2023-12-27T13:19:39.646Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:19:39.091Z", - entryId: "658c246b87b17d00085b6ee4", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#P", - GSI1_SK: "658c246b87b17d00085b6ee4#0001", - id: "658c246b87b17d00085b6ee4#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: true, - meta: "", - modelId: "modelA", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "2023-12-27T13:19:39.628Z", - savedOn: "2023-12-27T13:19:39.628Z", - status: "published", - tenant: "root", - TYPE: "cms.entry.p", - values: { - "long-text@rvoj9mru": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAIAoKgAyxUAAAA=" } - } - }, - "text@prn21kdn": { S: "DDB - Model A Entry 2" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c246b87b17d00085b6ee4", - SK: "REV#0001", - _ct: "2023-12-27T13:19:39.645Z", - _et: "CmsEntries", - _md: "2023-12-27T13:19:39.645Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:19:39.091Z", - entryId: "658c246b87b17d00085b6ee4", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#A", - GSI1_SK: "658c246b87b17d00085b6ee4#0001", - id: "658c246b87b17d00085b6ee4#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: true, - meta: "", - modelId: "modelA", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "2023-12-27T13:19:39.628Z", - savedOn: "2023-12-27T13:19:39.628Z", - status: "published", - tenant: "root", - TYPE: "cms.entry", - values: { - "long-text@rvoj9mru": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAIAoKgAyxUAAAA=" } - } - }, - "text@prn21kdn": { S: "DDB - Model A Entry 2" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dab", - SK: "L", - _ct: "2023-12-27T12:41:44.254Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.254Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "602281486ed41f0008bc2dab", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "602281486ed41f0008bc2dab#0001", - id: "602281486ed41f0008bc2dab#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "67402" }, - "text@name": { S: "permission-icon.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dab", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.253Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.253Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "602281486ed41f0008bc2dab", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "602281486ed41f0008bc2dab#0001", - id: "602281486ed41f0008bc2dab#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "67402" }, - "text@name": { S: "permission-icon.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c250472719000081998d4", - SK: "L", - _ct: "2023-12-27T13:22:13.069Z", - _et: "CmsEntries", - _md: "2023-12-27T13:22:13.069Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:22:12.150Z", - entryId: "658c250472719000081998d4", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelB#L", - GSI1_SK: "658c250472719000081998d4#0001", - id: "658c250472719000081998d4#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: true, - meta: "", - modelId: "modelB", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "2023-12-27T13:22:13.017Z", - savedOn: "2023-12-27T13:22:13.017Z", - status: "published", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "long-text@vlql21jq": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBScM0rKapUMAQA38WEaxUAAAA=" } - } - }, - "text@avl2mpj0": { S: "DDB - Model B Entry 1" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c250472719000081998d4", - SK: "P", - _ct: "2023-12-27T13:22:13.069Z", - _et: "CmsEntries", - _md: "2023-12-27T13:22:13.069Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:22:12.150Z", - entryId: "658c250472719000081998d4", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelB#P", - GSI1_SK: "658c250472719000081998d4#0001", - id: "658c250472719000081998d4#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: true, - meta: "", - modelId: "modelB", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "2023-12-27T13:22:13.017Z", - savedOn: "2023-12-27T13:22:13.017Z", - status: "published", - tenant: "root", - TYPE: "cms.entry.p", - values: { - "long-text@vlql21jq": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBScM0rKapUMAQA38WEaxUAAAA=" } - } - }, - "text@avl2mpj0": { S: "DDB - Model B Entry 1" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c250472719000081998d4", - SK: "REV#0001", - _ct: "2023-12-27T13:22:13.069Z", - _et: "CmsEntries", - _md: "2023-12-27T13:22:13.069Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:22:12.150Z", - entryId: "658c250472719000081998d4", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelB#A", - GSI1_SK: "658c250472719000081998d4#0001", - id: "658c250472719000081998d4#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: true, - meta: "", - modelId: "modelB", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "2023-12-27T13:22:13.017Z", - savedOn: "2023-12-27T13:22:13.017Z", - status: "published", - tenant: "root", - TYPE: "cms.entry", - values: { - "long-text@vlql21jq": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBScM0rKapUMAQA38WEaxUAAAA=" } - } - }, - "text@avl2mpj0": { S: "DDB - Model B Entry 1" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dad", - SK: "L", - _ct: "2023-12-27T12:41:44.114Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.114Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "602281486ed41f0008bc2dad", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "602281486ed41f0008bc2dad#0001", - id: "602281486ed41f0008bc2dad#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png" - }, - "text@aliases": { L: [] }, - "number@size": { N: "108898" }, - "text@name": { S: "webiny-serverless-cms.png " }, - "text@type": { S: "image/png" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dad", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.114Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.114Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "602281486ed41f0008bc2dad", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "602281486ed41f0008bc2dad#0001", - id: "602281486ed41f0008bc2dad#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png" - }, - "text@aliases": { L: [] }, - "number@size": { N: "108898" }, - "text@name": { S: "webiny-serverless-cms.png " }, - "text@type": { S: "image/png" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c721", - SK: "L", - _ct: "2023-12-27T12:41:44.273Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.273Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228145f98841000981c721", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228145f98841000981c721#0001", - id: "60228145f98841000981c721#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "27804" }, - "text@name": { S: "developer.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c721", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.273Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.273Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228145f98841000981c721", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228145f98841000981c721#0001", - id: "60228145f98841000981c721#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "27804" }, - "text@name": { S: "developer.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-658c1b88bb44780008384722", - SK: "L", - _ct: "2023-12-27T12:41:45.894Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:45.894Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:44.910Z", - entryId: "wby-aco-658c1b88bb44780008384722", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#L", - GSI1_SK: "wby-aco-658c1b88bb44780008384722#0001", - id: "wby-aco-658c1b88bb44780008384722#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:44.910Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@data": { - M: { - "number@version": { N: "1" }, - "object@createdBy": { - M: { - "text@displayName": { S: "ad min" }, - "text@type": { S: "admin" }, - "text@id": "658c1b5fbb4478000838470b" - } - }, - "text@id": { S: "658c1b88bb44780008384722#0001" }, - "text@title": { S: "Not Found" }, - "boolean@locked": { BOOL: true }, - "datetime@createdOn": { S: "2023-12-27T12:41:44.881Z" }, - "text@status": { S: "published" }, - "text@path": { S: "/not-found" }, - "text@pid": { S: "658c1b88bb44780008384722" }, - "datetime@savedOn": { S: "2023-12-27T12:41:45.557Z" } - } - }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@title": { S: "Not Found" }, - "text@content": { - S: "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme" - }, - "text@type": { S: "PbPage" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-658c1b88bb44780008384722", - SK: "REV#0001", - _ct: "2023-12-27T12:41:45.894Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:45.894Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:44.910Z", - entryId: "wby-aco-658c1b88bb44780008384722", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#A", - GSI1_SK: "wby-aco-658c1b88bb44780008384722#0001", - id: "wby-aco-658c1b88bb44780008384722#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:44.910Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@data": { - M: { - "number@version": { N: "1" }, - "object@createdBy": { - M: { - "text@displayName": { S: "ad min" }, - "text@type": { S: "admin" }, - "text@id": "658c1b5fbb4478000838470b" - } - }, - "text@id": { S: "658c1b88bb44780008384722#0001" }, - "text@title": { S: "Not Found" }, - "boolean@locked": { BOOL: true }, - "datetime@createdOn": { S: "2023-12-27T12:41:44.881Z" }, - "text@status": { S: "published" }, - "text@path": { S: "/not-found" }, - "text@pid": { S: "658c1b88bb44780008384722" }, - "datetime@savedOn": { S: "2023-12-27T12:41:45.557Z" } - } - }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@title": { S: "Not Found" }, - "text@content": { - S: "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme" - }, - "text@type": { S: "PbPage" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#602282e07a77e60008f70d63", - SK: "L", - _ct: "2023-12-27T12:41:44.011Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.011Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "602282e07a77e60008f70d63", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "602282e07a77e60008f70d63#0001", - id: "602282e07a77e60008f70d63#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "888" }, - "text@name": { S: "feature-card-bg.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#602282e07a77e60008f70d63", - SK: "REV#0001", - _ct: "2023-12-27T12:41:43.975Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:43.975Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "602282e07a77e60008f70d63", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "602282e07a77e60008f70d63#0001", - id: "602282e07a77e60008f70d63#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "888" }, - "text@name": { S: "feature-card-bg.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c24b387b17d00085b6ee6", - SK: "L", - _ct: "2023-12-27T13:20:51.579Z", - _et: "CmsEntries", - _md: "2023-12-27T13:20:51.579Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:20:51.541Z", - entryId: "658c24b387b17d00085b6ee6", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#L", - GSI1_SK: "658c24b387b17d00085b6ee6#0001", - id: "658c24b387b17d00085b6ee6#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "modelA", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T13:20:51.541Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "long-text@rvoj9mru": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" } - } - }, - "text@prn21kdn": { S: "DDB - Model A Entry 4" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c24b387b17d00085b6ee6", - SK: "REV#0001", - _ct: "2023-12-27T13:20:51.579Z", - _et: "CmsEntries", - _md: "2023-12-27T13:20:51.579Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:20:51.541Z", - entryId: "658c24b387b17d00085b6ee6", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#A", - GSI1_SK: "658c24b387b17d00085b6ee6#0001", - id: "658c24b387b17d00085b6ee6#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "modelA", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T13:20:51.541Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "long-text@rvoj9mru": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" } - } - }, - "text@prn21kdn": { S: "DDB - Model A Entry 4" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c250d72719000081998d5", - SK: "L", - _ct: "2023-12-27T13:23:06.008Z", - _et: "CmsEntries", - _md: "2023-12-27T13:23:06.008Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:22:21.968Z", - entryId: "658c250d72719000081998d5", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelB#L", - GSI1_SK: "658c250d72719000081998d5#0001", - id: "658c250d72719000081998d5#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: {}, - modelId: "modelB", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T13:23:05.991Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "long-text@vlql21jq": { - M: { - compression: { S: "gzip" }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQBn8rDrHQAAAA==" - } - } - }, - "file@7dzsaeyd": { NULL: true }, - "text@avl2mpj0": { S: "DDB - Model B Entry 2 UPDATED" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c250d72719000081998d5", - SK: "REV#0001", - _ct: "2023-12-27T13:23:05.993Z", - _et: "CmsEntries", - _md: "2023-12-27T13:23:05.993Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:22:21.968Z", - entryId: "658c250d72719000081998d5", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelB#A", - GSI1_SK: "658c250d72719000081998d5#0001", - id: "658c250d72719000081998d5#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: {}, - modelId: "modelB", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T13:23:05.991Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "long-text@vlql21jq": { - M: { - compression: { S: "gzip" }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQBn8rDrHQAAAA==" - } - } - }, - "file@7dzsaeyd": { NULL: true }, - "text@avl2mpj0": { S: "DDB - Model B Entry 2 UPDATED" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228148f98841000981c723", - SK: "L", - _ct: "2023-12-27T12:41:44.055Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.055Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228148f98841000981c723", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228148f98841000981c723#0001", - id: "60228148f98841000981c723#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "390" }, - "text@name": { S: "pink-shape.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228148f98841000981c723", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.055Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.055Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228148f98841000981c723", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228148f98841000981c723#0001", - id: "60228148f98841000981c723#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "390" }, - "text@name": { S: "pink-shape.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba26", - SK: "L", - _ct: "2023-12-27T12:41:44.074Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.074Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814bef4a940008b3ba26", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814bef4a940008b3ba26#0001", - id: "6022814bef4a940008b3ba26#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "33888" }, - "text@name": { S: "scaffolding.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba26", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.074Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.074Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814bef4a940008b3ba26", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814bef4a940008b3ba26#0001", - id: "6022814bef4a940008b3ba26#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "33888" }, - "text@name": { S: "scaffolding.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c720", - SK: "L", - _ct: "2023-12-27T12:41:44.172Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.172Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228145f98841000981c720", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228145f98841000981c720#0001", - id: "60228145f98841000981c720#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "28918" }, - "text@name": { S: "adaptable-icon.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c720", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.172Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.172Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228145f98841000981c720", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228145f98841000981c720#0001", - id: "60228145f98841000981c720#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "28918" }, - "text@name": { S: "adaptable-icon.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba27", - SK: "L", - _ct: "2023-12-27T12:41:44.071Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.071Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814bef4a940008b3ba27", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814bef4a940008b3ba27#0001", - id: "6022814bef4a940008b3ba27#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "17711" }, - "text@name": { S: "security.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba27", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.058Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.058Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814bef4a940008b3ba27", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814bef4a940008b3ba27#0001", - id: "6022814bef4a940008b3ba27#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "17711" }, - "text@name": { S: "security.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814a0df4b000088735bb", - SK: "L", - _ct: "2023-12-27T12:41:44.032Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.032Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814a0df4b000088735bb", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814a0df4b000088735bb#0001", - id: "6022814a0df4b000088735bb#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "3661" }, - "text@name": { S: "webiny-serverless-application-framework.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814a0df4b000088735bb", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.031Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.031Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814a0df4b000088735bb", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814a0df4b000088735bb#0001", - id: "6022814a0df4b000088735bb#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "3661" }, - "text@name": { S: "webiny-serverless-application-framework.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814b0df4b000088735bc", - SK: "L", - _ct: "2023-12-27T12:41:43.972Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:43.972Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814b0df4b000088735bc", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814b0df4b000088735bc#0001", - id: "6022814b0df4b000088735bc#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "5053" }, - "text@name": { S: "webiny-logo.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814b0df4b000088735bc", - SK: "REV#0001", - _ct: "2023-12-27T12:41:43.971Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:43.971Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814b0df4b000088735bc", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814b0df4b000088735bc#0001", - id: "6022814b0df4b000088735bc#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "5053" }, - "text@name": { S: "webiny-logo.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c247c87b17d00085b6ee5", - SK: "L", - _ct: "2023-12-27T13:19:56.465Z", - _et: "CmsEntries", - _md: "2023-12-27T13:19:56.465Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:19:56.020Z", - entryId: "658c247c87b17d00085b6ee5", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#L", - GSI1_SK: "658c247c87b17d00085b6ee5#0001", - id: "658c247c87b17d00085b6ee5#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: true, - meta: "", - modelId: "modelA", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "2023-12-27T13:19:56.449Z", - savedOn: "2023-12-27T13:19:56.449Z", - status: "published", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "long-text@rvoj9mru": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAYANpgHvBUAAAA=" } - } - }, - "text@prn21kdn": { S: "DDB - Model A Entry 3" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c247c87b17d00085b6ee5", - SK: "P", - _ct: "2023-12-27T13:19:56.465Z", - _et: "CmsEntries", - _md: "2023-12-27T13:19:56.465Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:19:56.020Z", - entryId: "658c247c87b17d00085b6ee5", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#P", - GSI1_SK: "658c247c87b17d00085b6ee5#0001", - id: "658c247c87b17d00085b6ee5#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: true, - meta: "", - modelId: "modelA", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "2023-12-27T13:19:56.449Z", - savedOn: "2023-12-27T13:19:56.449Z", - status: "published", - tenant: "root", - TYPE: "cms.entry.p", - values: { - "long-text@rvoj9mru": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAYANpgHvBUAAAA=" } - } - }, - "text@prn21kdn": { S: "DDB - Model A Entry 3" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c247c87b17d00085b6ee5", - SK: "REV#0001", - _ct: "2023-12-27T13:19:56.464Z", - _et: "CmsEntries", - _md: "2023-12-27T13:19:56.464Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:19:56.020Z", - entryId: "658c247c87b17d00085b6ee5", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#A", - GSI1_SK: "658c247c87b17d00085b6ee5#0001", - id: "658c247c87b17d00085b6ee5#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: true, - meta: "", - modelId: "modelA", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "2023-12-27T13:19:56.449Z", - savedOn: "2023-12-27T13:19:56.449Z", - status: "published", - tenant: "root", - TYPE: "cms.entry", - values: { - "long-text@rvoj9mru": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAYANpgHvBUAAAA=" } - } - }, - "text@prn21kdn": { S: "DDB - Model A Entry 3" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba28", - SK: "L", - _ct: "2023-12-27T12:41:44.094Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.094Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814bef4a940008b3ba28", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814bef4a940008b3ba28#0001", - id: "6022814bef4a940008b3ba28#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "132767" }, - "text@name": { S: "environments.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba28", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.094Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.094Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814bef4a940008b3ba28", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814bef4a940008b3ba28#0001", - id: "6022814bef4a940008b3ba28#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "132767" }, - "text@name": { S: "environments.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-658c1b88bb44780008384724", - SK: "L", - _ct: "2023-12-27T12:41:45.959Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:45.959Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:44.944Z", - entryId: "wby-aco-658c1b88bb44780008384724", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#L", - GSI1_SK: "wby-aco-658c1b88bb44780008384724#0001", - id: "wby-aco-658c1b88bb44780008384724#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:44.944Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@data": { - M: { - "number@version": { N: "1" }, - "object@createdBy": { - M: { - "text@displayName": { S: "ad min" }, - "text@type": { S: "admin" }, - "text@id": "658c1b5fbb4478000838470b" - } - }, - "text@id": { S: "658c1b88bb44780008384724#0001" }, - "text@title": { S: "Welcome to Webiny" }, - "boolean@locked": { BOOL: true }, - "datetime@createdOn": { S: "2023-12-27T12:41:44.932Z" }, - "text@status": { S: "published" }, - "text@path": { S: "/welcome-to-webiny" }, - "text@pid": { S: "658c1b88bb44780008384724" }, - "datetime@savedOn": { S: "2023-12-27T12:41:45.612Z" } - } - }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@title": { S: "Welcome to Webiny" }, - "text@content": { - S: "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub" - }, - "text@type": { S: "PbPage" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-658c1b88bb44780008384724", - SK: "REV#0001", - _ct: "2023-12-27T12:41:45.952Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:45.952Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:44.944Z", - entryId: "wby-aco-658c1b88bb44780008384724", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#A", - GSI1_SK: "wby-aco-658c1b88bb44780008384724#0001", - id: "wby-aco-658c1b88bb44780008384724#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:44.944Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@data": { - M: { - "number@version": { N: "1" }, - "object@createdBy": { - M: { - "text@displayName": { S: "ad min" }, - "text@type": { S: "admin" }, - "text@id": "658c1b5fbb4478000838470b" - } - }, - "text@id": { S: "658c1b88bb44780008384724#0001" }, - "text@title": { S: "Welcome to Webiny" }, - "boolean@locked": { BOOL: true }, - "datetime@createdOn": { S: "2023-12-27T12:41:44.932Z" }, - "text@status": { S: "published" }, - "text@path": { S: "/welcome-to-webiny" }, - "text@pid": { S: "658c1b88bb44780008384724" }, - "datetime@savedOn": { S: "2023-12-27T12:41:45.612Z" } - } - }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@title": { S: "Welcome to Webiny" }, - "text@content": { - S: "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub" - }, - "text@type": { S: "PbPage" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814b7a77e60008f70d62", - SK: "L", - _ct: "2023-12-27T12:41:43.951Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:43.951Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814b7a77e60008f70d62", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814b7a77e60008f70d62#0001", - id: "6022814b7a77e60008f70d62#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "1864" }, - "text@name": { S: "hero-block-bg.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814b7a77e60008f70d62", - SK: "REV#0001", - _ct: "2023-12-27T12:41:43.935Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:43.935Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814b7a77e60008f70d62", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814b7a77e60008f70d62#0001", - id: "6022814b7a77e60008f70d62#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "1864" }, - "text@name": { S: "hero-block-bg.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dac", - SK: "L", - _ct: "2023-12-27T12:41:44.233Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.233Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "602281486ed41f0008bc2dac", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "602281486ed41f0008bc2dac#0001", - id: "602281486ed41f0008bc2dac#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "73153" }, - "text@name": { S: "data-icon.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dac", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.233Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.233Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "602281486ed41f0008bc2dac", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "602281486ed41f0008bc2dac#0001", - id: "602281486ed41f0008bc2dac#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "73153" }, - "text@name": { S: "data-icon.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814851197600081724ae", - SK: "L", - _ct: "2023-12-27T12:41:44.177Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.177Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814851197600081724ae", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814851197600081724ae#0001", - id: "6022814851197600081724ae#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "60602" }, - "text@name": { S: "cost-icon.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#6022814851197600081724ae", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.177Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.177Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "6022814851197600081724ae", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814851197600081724ae#0001", - id: "6022814851197600081724ae#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "60602" }, - "text@name": { S: "cost-icon.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c71f", - SK: "L", - _ct: "2023-12-27T12:41:44.293Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.293Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228145f98841000981c71f", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228145f98841000981c71f#0001", - id: "60228145f98841000981c71f#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "30007" }, - "text@name": { S: "octo-cat.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c71f", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.293Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.293Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228145f98841000981c71f", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228145f98841000981c71f#0001", - id: "60228145f98841000981c71f#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "30007" }, - "text@name": { S: "octo-cat.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#602281486639200009fd35ec", - SK: "L", - _ct: "2023-12-27T12:41:44.133Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.133Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "602281486639200009fd35ec", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "602281486639200009fd35ec#0001", - id: "602281486639200009fd35ec#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "392" }, - "text@name": { S: "cms-benefits-shape.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#602281486639200009fd35ec", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.133Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.133Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "602281486639200009fd35ec", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "602281486639200009fd35ec#0001", - id: "602281486639200009fd35ec#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "392" }, - "text@name": { S: "cms-benefits-shape.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228148fa244d0008c47c79", - SK: "L", - _ct: "2023-12-27T12:41:44.153Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.153Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228148fa244d0008c47c79", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228148fa244d0008c47c79#0001", - id: "60228148fa244d0008c47c79#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "7806" }, - "text@name": { S: "scalable-icon.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228148fa244d0008c47c79", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.152Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.152Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228148fa244d0008c47c79", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228148fa244d0008c47c79#0001", - id: "60228148fa244d0008c47c79#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "7806" }, - "text@name": { S: "scalable-icon.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c245d87b17d00085b6ee3", - SK: "L", - _ct: "2023-12-27T13:19:26.027Z", - _et: "CmsEntries", - _md: "2023-12-27T13:19:26.027Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:19:25.062Z", - entryId: "658c245d87b17d00085b6ee3", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#L", - GSI1_SK: "658c245d87b17d00085b6ee3#0001", - id: "658c245d87b17d00085b6ee3#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: true, - meta: "", - modelId: "modelA", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "2023-12-27T13:19:26.001Z", - savedOn: "2023-12-27T13:19:26.001Z", - status: "published", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "long-text@rvoj9mru": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAQAGvkJUhUAAAA=" } - } - }, - "text@prn21kdn": { S: "DDB - Model A Entry 1" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c245d87b17d00085b6ee3", - SK: "P", - _ct: "2023-12-27T13:19:26.027Z", - _et: "CmsEntries", - _md: "2023-12-27T13:19:26.027Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:19:25.062Z", - entryId: "658c245d87b17d00085b6ee3", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#P", - GSI1_SK: "658c245d87b17d00085b6ee3#0001", - id: "658c245d87b17d00085b6ee3#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: true, - meta: "", - modelId: "modelA", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "2023-12-27T13:19:26.001Z", - savedOn: "2023-12-27T13:19:26.001Z", - status: "published", - tenant: "root", - TYPE: "cms.entry.p", - values: { - "long-text@rvoj9mru": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAQAGvkJUhUAAAA=" } - } - }, - "text@prn21kdn": { S: "DDB - Model A Entry 1" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#658c245d87b17d00085b6ee3", - SK: "REV#0001", - _ct: "2023-12-27T13:19:26.027Z", - _et: "CmsEntries", - _md: "2023-12-27T13:19:26.027Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T13:19:25.062Z", - entryId: "658c245d87b17d00085b6ee3", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#A", - GSI1_SK: "658c245d87b17d00085b6ee3#0001", - id: "658c245d87b17d00085b6ee3#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: true, - meta: "", - modelId: "modelA", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "2023-12-27T13:19:26.001Z", - savedOn: "2023-12-27T13:19:26.001Z", - status: "published", - tenant: "root", - TYPE: "cms.entry", - values: { - "long-text@rvoj9mru": { - M: { - compression: { S: "gzip" }, - value: { S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAQAGvkJUhUAAAA=" } - } - }, - "text@prn21kdn": { S: "DDB - Model A Entry 1" } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228148fa244d0008c47c7a", - SK: "L", - _ct: "2023-12-27T12:41:44.314Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.314Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228148fa244d0008c47c7a", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228148fa244d0008c47c7a#0001", - id: "60228148fa244d0008c47c7a#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png" - }, - "text@aliases": { L: [] }, - "number@size": { N: "17382" }, - "text@name": { S: "community-icon.png" }, - "text@type": { S: "image/png" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#60228148fa244d0008c47c7a", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.313Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.313Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "60228148fa244d0008c47c7a", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228148fa244d0008c47c7a#0001", - id: "60228148fa244d0008c47c7a#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png" - }, - "text@aliases": { L: [] }, - "number@size": { N: "17382" }, - "text@name": { S: "community-icon.png" }, - "text@type": { S: "image/png" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#602281486639200009fd35eb", - SK: "L", - _ct: "2023-12-27T12:41:44.117Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.117Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "602281486639200009fd35eb", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "602281486639200009fd35eb#0001", - id: "602281486639200009fd35eb#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry.l", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "1758" }, - "text@name": { S: "serverless-cms-logo.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#CME#602281486639200009fd35eb", - SK: "REV#0001", - _ct: "2023-12-27T12:41:44.117Z", - _et: "CmsEntries", - _md: "2023-12-27T12:41:44.117Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entryId: "602281486639200009fd35eb", - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "602281486639200009fd35eb#0001", - id: "602281486639200009fd35eb#0001", - locale: "en-US", - location: { folderId: { S: "root" } }, - locked: false, - meta: "", - modelId: "fmFile", - modifiedBy: "", - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b5fbb4478000838470b" - }, - publishedOn: "", - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - TYPE: "cms.entry", - values: { - "object@meta": { M: { "boolean@private": { BOOL: true } } }, - "object@location": { M: { "text@folderId": { S: "root" } } }, - "text@key": { - S: "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg" - }, - "text@aliases": { L: [] }, - "number@size": { N: "1758" }, - "text@name": { S: "serverless-cms-logo.svg" }, - "text@type": { S: "image/svg+xml" }, - "text@tags": { L: [] } - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb/001.test.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb/001.test.ts deleted file mode 100644 index d22413db07e..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb/001.test.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { CmsEntriesInitNewMetaFields_5_39_0_001 } from "~/migrations/5.39.0/001/ddb"; -import { ddbPrimaryTableData } from "./001.ddbPrimaryTableData"; -import { ddbPrimaryTableDataMigrated } from "./migrated/001.ddbPrimaryTableData"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -describe("5.39.0-001", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if no entries without new meta fields were found", async () => { - const handler = createDdbMigrationHandler({ - table, - migrations: [CmsEntriesInitNewMetaFields_5_39_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed).toBeArrayOfSize(0); - expect(grouped.skipped).toBeArrayOfSize(1); - expect(grouped.notApplicable).toBeArrayOfSize(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, ddbPrimaryTableData); - - const handler = createDdbMigrationHandler({ - table, - migrations: [CmsEntriesInitNewMetaFields_5_39_0_001] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed).toBeArrayOfSize(1); - expect(grouped.skipped).toBeArrayOfSize(0); - expect(grouped.notApplicable).toBeArrayOfSize(0); - - await expect( - scanTable(table, { - filters: [ - { - attr: "_et", - eq: "CmsEntries" - } - ] - }) - ).resolves.toEqual(ddbPrimaryTableDataMigrated); - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertTestData(table, ddbPrimaryTableData); - - const handler = createDdbMigrationHandler({ - table, - migrations: [CmsEntriesInitNewMetaFields_5_39_0_001] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed).toBeArrayOfSize(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed).toBeArrayOfSize(0); - expect(grouped.skipped).toBeArrayOfSize(1); - expect(grouped.notApplicable).toBeArrayOfSize(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.39.0/001/ddb/migrated/001.ddbPrimaryTableData.ts b/packages/migrations/__tests__/migrations/5.39.0/001/ddb/migrated/001.ddbPrimaryTableData.ts deleted file mode 100644 index c708728d47a..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.0/001/ddb/migrated/001.ddbPrimaryTableData.ts +++ /dev/null @@ -1,5592 +0,0 @@ -export const ddbPrimaryTableDataMigrated = [ - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814891bd1300087bd24c#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814891bd1300087bd24c", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.052Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814891bd1300087bd24c", - id: "6022814891bd1300087bd24c#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.052Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "90163" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg" - }, - "text@name": { - S: "webiny-infrastructure-overview.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814891bd1300087bd24c#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814891bd1300087bd24c", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.052Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814891bd1300087bd24c", - id: "6022814891bd1300087bd24c#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.052Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "90163" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg" - }, - "text@name": { - S: "webiny-infrastructure-overview.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228148f98841000981c724#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148f98841000981c724", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.193Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c724", - id: "60228148f98841000981c724#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.193Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "27878" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg" - }, - "text@name": { - S: "idp.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228148f98841000981c724#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148f98841000981c724", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.192Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c724", - id: "60228148f98841000981c724#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.192Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "27878" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg" - }, - "text@name": { - S: "idp.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#L", - GSI1_SK: "658c246b87b17d00085b6ee4#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c246b87b17d00085b6ee4", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:19:39.646Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:19:39.091Z", - entity: "CmsEntries", - entryId: "658c246b87b17d00085b6ee4", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:19:39.628Z", - id: "658c246b87b17d00085b6ee4#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:19:39.628Z", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:19:39.646Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - publishedOn: "2023-12-27T13:19:39.628Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:19:39.091Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:19:39.628Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:19:39.628Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:19:39.628Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:19:39.628Z", - status: "published", - tenant: "root", - values: { - "long-text@rvoj9mru": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAIAoKgAyxUAAAA=" - } - } - }, - "text@prn21kdn": { - S: "DDB - Model A Entry 2" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#P", - GSI1_SK: "658c246b87b17d00085b6ee4#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c246b87b17d00085b6ee4", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:19:39.646Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:19:39.091Z", - entity: "CmsEntries", - entryId: "658c246b87b17d00085b6ee4", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:19:39.628Z", - id: "658c246b87b17d00085b6ee4#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:19:39.628Z", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:19:39.646Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - publishedOn: "2023-12-27T13:19:39.628Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:19:39.091Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:19:39.628Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:19:39.628Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:19:39.628Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:19:39.628Z", - status: "published", - tenant: "root", - values: { - "long-text@rvoj9mru": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAIAoKgAyxUAAAA=" - } - } - }, - "text@prn21kdn": { - S: "DDB - Model A Entry 2" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#A", - GSI1_SK: "658c246b87b17d00085b6ee4#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c246b87b17d00085b6ee4", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:19:39.645Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:19:39.091Z", - entity: "CmsEntries", - entryId: "658c246b87b17d00085b6ee4", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:19:39.628Z", - id: "658c246b87b17d00085b6ee4#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:19:39.628Z", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:19:39.645Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - publishedOn: "2023-12-27T13:19:39.628Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:19:39.091Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:19:39.628Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:19:39.628Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:19:39.628Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:19:39.628Z", - status: "published", - tenant: "root", - values: { - "long-text@rvoj9mru": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAIAoKgAyxUAAAA=" - } - } - }, - "text@prn21kdn": { - S: "DDB - Model A Entry 2" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "602281486ed41f0008bc2dab#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dab", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.254Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dab", - id: "602281486ed41f0008bc2dab#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.254Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "67402" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg" - }, - "text@name": { - S: "permission-icon.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "602281486ed41f0008bc2dab#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dab", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.253Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dab", - id: "602281486ed41f0008bc2dab#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.253Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "67402" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg" - }, - "text@name": { - S: "permission-icon.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelB#L", - GSI1_SK: "658c250472719000081998d4#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c250472719000081998d4", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:22:13.069Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:22:12.150Z", - entity: "CmsEntries", - entryId: "658c250472719000081998d4", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:13.017Z", - id: "658c250472719000081998d4#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:13.017Z", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: true, - modelId: "modelB", - modified: "2023-12-27T13:22:13.069Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:13.017Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:12.150Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:13.017Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:13.017Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:13.017Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:22:13.017Z", - status: "published", - tenant: "root", - values: { - "long-text@vlql21jq": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBScM0rKapUMAQA38WEaxUAAAA=" - } - } - }, - "text@avl2mpj0": { - S: "DDB - Model B Entry 1" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelB#P", - GSI1_SK: "658c250472719000081998d4#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c250472719000081998d4", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:22:13.069Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:22:12.150Z", - entity: "CmsEntries", - entryId: "658c250472719000081998d4", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:13.017Z", - id: "658c250472719000081998d4#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:13.017Z", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: true, - modelId: "modelB", - modified: "2023-12-27T13:22:13.069Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:13.017Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:12.150Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:13.017Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:13.017Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:13.017Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:22:13.017Z", - status: "published", - tenant: "root", - values: { - "long-text@vlql21jq": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBScM0rKapUMAQA38WEaxUAAAA=" - } - } - }, - "text@avl2mpj0": { - S: "DDB - Model B Entry 1" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelB#A", - GSI1_SK: "658c250472719000081998d4#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c250472719000081998d4", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:22:13.069Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:22:12.150Z", - entity: "CmsEntries", - entryId: "658c250472719000081998d4", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:13.017Z", - id: "658c250472719000081998d4#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:13.017Z", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: true, - modelId: "modelB", - modified: "2023-12-27T13:22:13.069Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:13.017Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:12.150Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:13.017Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:13.017Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:13.017Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:22:13.017Z", - status: "published", - tenant: "root", - values: { - "long-text@vlql21jq": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBScM0rKapUMAQA38WEaxUAAAA=" - } - } - }, - "text@avl2mpj0": { - S: "DDB - Model B Entry 1" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "602281486ed41f0008bc2dad#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dad", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.114Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dad", - id: "602281486ed41f0008bc2dad#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.114Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "108898" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png" - }, - "text@name": { - S: "webiny-serverless-cms.png " - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/png" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "602281486ed41f0008bc2dad#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dad", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.114Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dad", - id: "602281486ed41f0008bc2dad#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.114Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "108898" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png" - }, - "text@name": { - S: "webiny-serverless-cms.png " - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/png" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228145f98841000981c721#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c721", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.273Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c721", - id: "60228145f98841000981c721#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.273Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "27804" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg" - }, - "text@name": { - S: "developer.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228145f98841000981c721#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c721", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.273Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c721", - id: "60228145f98841000981c721#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.273Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "27804" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg" - }, - "text@name": { - S: "developer.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#L", - GSI1_SK: "wby-aco-658c1b88bb44780008384722#0001", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-658c1b88bb44780008384722", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:45.894Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:44.910Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1b88bb44780008384722", - id: "wby-aco-658c1b88bb44780008384722#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:41:45.894Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - modifiedOn: "2023-12-27T12:41:44.910Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:44.910Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:41:44.910Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:44.910Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:44.910Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - M: { - "boolean@locked": { - BOOL: true - }, - "datetime@createdOn": { - S: "2023-12-27T12:41:44.881Z" - }, - "datetime@savedOn": { - S: "2023-12-27T12:41:45.557Z" - }, - "number@version": { - N: "1" - }, - "object@createdBy": { - M: { - "text@displayName": { - S: "ad min" - }, - "text@id": "658c1b5fbb4478000838470b", - "text@type": { - S: "admin" - } - } - }, - "text@id": { - S: "658c1b88bb44780008384722#0001" - }, - "text@path": { - S: "/not-found" - }, - "text@pid": { - S: "658c1b88bb44780008384722" - }, - "text@status": { - S: "published" - }, - "text@title": { - S: "Not Found" - } - } - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "text@content": { - S: "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme" - }, - "text@tags": { - L: [] - }, - "text@title": { - S: "Not Found" - }, - "text@type": { - S: "PbPage" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#A", - GSI1_SK: "wby-aco-658c1b88bb44780008384722#0001", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-658c1b88bb44780008384722", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:45.894Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:44.910Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1b88bb44780008384722", - id: "wby-aco-658c1b88bb44780008384722#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:41:45.894Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - modifiedOn: "2023-12-27T12:41:44.910Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:44.910Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:41:44.910Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:44.910Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:44.910Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - M: { - "boolean@locked": { - BOOL: true - }, - "datetime@createdOn": { - S: "2023-12-27T12:41:44.881Z" - }, - "datetime@savedOn": { - S: "2023-12-27T12:41:45.557Z" - }, - "number@version": { - N: "1" - }, - "object@createdBy": { - M: { - "text@displayName": { - S: "ad min" - }, - "text@id": "658c1b5fbb4478000838470b", - "text@type": { - S: "admin" - } - } - }, - "text@id": { - S: "658c1b88bb44780008384722#0001" - }, - "text@path": { - S: "/not-found" - }, - "text@pid": { - S: "658c1b88bb44780008384722" - }, - "text@status": { - S: "published" - }, - "text@title": { - S: "Not Found" - } - } - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "text@content": { - S: "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme" - }, - "text@tags": { - L: [] - }, - "text@title": { - S: "Not Found" - }, - "text@type": { - S: "PbPage" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "602282e07a77e60008f70d63#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602282e07a77e60008f70d63", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.011Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "602282e07a77e60008f70d63", - id: "602282e07a77e60008f70d63#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.011Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "888" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg" - }, - "text@name": { - S: "feature-card-bg.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "602282e07a77e60008f70d63#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602282e07a77e60008f70d63", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:43.975Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "602282e07a77e60008f70d63", - id: "602282e07a77e60008f70d63#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:43.975Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "888" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg" - }, - "text@name": { - S: "feature-card-bg.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#L", - GSI1_SK: "658c24b387b17d00085b6ee6#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c24b387b17d00085b6ee6", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:51.579Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:20:51.541Z", - entity: "CmsEntries", - entryId: "658c24b387b17d00085b6ee6", - id: "658c24b387b17d00085b6ee6#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "modelA", - modified: "2023-12-27T13:20:51.579Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:51.541Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:51.541Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:20:51.541Z", - status: "draft", - tenant: "root", - values: { - "long-text@rvoj9mru": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" - } - } - }, - "text@prn21kdn": { - S: "DDB - Model A Entry 4" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#A", - GSI1_SK: "658c24b387b17d00085b6ee6#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c24b387b17d00085b6ee6", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:51.579Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:20:51.541Z", - entity: "CmsEntries", - entryId: "658c24b387b17d00085b6ee6", - id: "658c24b387b17d00085b6ee6#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "modelA", - modified: "2023-12-27T13:20:51.579Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:51.541Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:51.541Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:20:51.541Z", - status: "draft", - tenant: "root", - values: { - "long-text@rvoj9mru": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" - } - } - }, - "text@prn21kdn": { - S: "DDB - Model A Entry 4" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelB#L", - GSI1_SK: "658c250d72719000081998d5#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c250d72719000081998d5", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:23:06.008Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:22:21.968Z", - entity: "CmsEntries", - entryId: "658c250d72719000081998d5", - id: "658c250d72719000081998d5#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - meta: {}, - modelId: "modelB", - modified: "2023-12-27T13:23:06.008Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:05.991Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:21.968Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:05.991Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:05.991Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:23:05.991Z", - status: "draft", - tenant: "root", - values: { - "file@7dzsaeyd": { - NULL: true - }, - "long-text@vlql21jq": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQBn8rDrHQAAAA==" - } - } - }, - "text@avl2mpj0": { - S: "DDB - Model B Entry 2 UPDATED" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelB#A", - GSI1_SK: "658c250d72719000081998d5#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c250d72719000081998d5", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:23:05.993Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:22:21.968Z", - entity: "CmsEntries", - entryId: "658c250d72719000081998d5", - id: "658c250d72719000081998d5#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - meta: {}, - modelId: "modelB", - modified: "2023-12-27T13:23:05.993Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:05.991Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:21.968Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:05.991Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:05.991Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:23:05.991Z", - status: "draft", - tenant: "root", - values: { - "file@7dzsaeyd": { - NULL: true - }, - "long-text@vlql21jq": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQBn8rDrHQAAAA==" - } - } - }, - "text@avl2mpj0": { - S: "DDB - Model B Entry 2 UPDATED" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228148f98841000981c723#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148f98841000981c723", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.055Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c723", - id: "60228148f98841000981c723#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.055Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "390" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg" - }, - "text@name": { - S: "pink-shape.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228148f98841000981c723#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148f98841000981c723", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.055Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c723", - id: "60228148f98841000981c723#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.055Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "390" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg" - }, - "text@name": { - S: "pink-shape.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814bef4a940008b3ba26#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba26", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.074Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba26", - id: "6022814bef4a940008b3ba26#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.074Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "33888" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg" - }, - "text@name": { - S: "scaffolding.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814bef4a940008b3ba26#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba26", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.074Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba26", - id: "6022814bef4a940008b3ba26#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.074Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "33888" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg" - }, - "text@name": { - S: "scaffolding.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228145f98841000981c720#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c720", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.172Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c720", - id: "60228145f98841000981c720#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.172Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "28918" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg" - }, - "text@name": { - S: "adaptable-icon.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228145f98841000981c720#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c720", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.172Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c720", - id: "60228145f98841000981c720#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.172Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "28918" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg" - }, - "text@name": { - S: "adaptable-icon.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814bef4a940008b3ba27#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba27", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.071Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba27", - id: "6022814bef4a940008b3ba27#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.071Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "17711" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg" - }, - "text@name": { - S: "security.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814bef4a940008b3ba27#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba27", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.058Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba27", - id: "6022814bef4a940008b3ba27#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.058Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "17711" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg" - }, - "text@name": { - S: "security.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814a0df4b000088735bb#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814a0df4b000088735bb", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.032Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814a0df4b000088735bb", - id: "6022814a0df4b000088735bb#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.032Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "3661" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg" - }, - "text@name": { - S: "webiny-serverless-application-framework.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814a0df4b000088735bb#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814a0df4b000088735bb", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.031Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814a0df4b000088735bb", - id: "6022814a0df4b000088735bb#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.031Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "3661" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg" - }, - "text@name": { - S: "webiny-serverless-application-framework.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814b0df4b000088735bc#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814b0df4b000088735bc", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:43.972Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814b0df4b000088735bc", - id: "6022814b0df4b000088735bc#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:43.972Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "5053" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg" - }, - "text@name": { - S: "webiny-logo.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814b0df4b000088735bc#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814b0df4b000088735bc", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:43.971Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814b0df4b000088735bc", - id: "6022814b0df4b000088735bc#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:43.971Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "5053" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg" - }, - "text@name": { - S: "webiny-logo.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#L", - GSI1_SK: "658c247c87b17d00085b6ee5#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c247c87b17d00085b6ee5", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:19:56.465Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:19:56.020Z", - entity: "CmsEntries", - entryId: "658c247c87b17d00085b6ee5", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:19:56.449Z", - id: "658c247c87b17d00085b6ee5#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:19:56.449Z", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:19:56.465Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - publishedOn: "2023-12-27T13:19:56.449Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:19:56.020Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:19:56.449Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:19:56.449Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:19:56.449Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:19:56.449Z", - status: "published", - tenant: "root", - values: { - "long-text@rvoj9mru": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAYANpgHvBUAAAA=" - } - } - }, - "text@prn21kdn": { - S: "DDB - Model A Entry 3" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#P", - GSI1_SK: "658c247c87b17d00085b6ee5#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c247c87b17d00085b6ee5", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:19:56.465Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:19:56.020Z", - entity: "CmsEntries", - entryId: "658c247c87b17d00085b6ee5", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:19:56.449Z", - id: "658c247c87b17d00085b6ee5#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:19:56.449Z", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:19:56.465Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - publishedOn: "2023-12-27T13:19:56.449Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:19:56.020Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:19:56.449Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:19:56.449Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:19:56.449Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:19:56.449Z", - status: "published", - tenant: "root", - values: { - "long-text@rvoj9mru": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAYANpgHvBUAAAA=" - } - } - }, - "text@prn21kdn": { - S: "DDB - Model A Entry 3" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#A", - GSI1_SK: "658c247c87b17d00085b6ee5#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c247c87b17d00085b6ee5", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:19:56.464Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:19:56.020Z", - entity: "CmsEntries", - entryId: "658c247c87b17d00085b6ee5", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:19:56.449Z", - id: "658c247c87b17d00085b6ee5#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:19:56.449Z", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:19:56.464Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - publishedOn: "2023-12-27T13:19:56.449Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:19:56.020Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:19:56.449Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:19:56.449Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:19:56.449Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:19:56.449Z", - status: "published", - tenant: "root", - values: { - "long-text@rvoj9mru": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAYANpgHvBUAAAA=" - } - } - }, - "text@prn21kdn": { - S: "DDB - Model A Entry 3" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814bef4a940008b3ba28#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba28", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.094Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba28", - id: "6022814bef4a940008b3ba28#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.094Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "132767" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg" - }, - "text@name": { - S: "environments.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814bef4a940008b3ba28#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814bef4a940008b3ba28", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.094Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba28", - id: "6022814bef4a940008b3ba28#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.094Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "132767" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg" - }, - "text@name": { - S: "environments.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#L", - GSI1_SK: "wby-aco-658c1b88bb44780008384724#0001", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-658c1b88bb44780008384724", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:45.959Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:44.944Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1b88bb44780008384724", - id: "wby-aco-658c1b88bb44780008384724#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:41:45.959Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - modifiedOn: "2023-12-27T12:41:44.944Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:44.944Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:41:44.944Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:44.944Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:44.944Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - M: { - "boolean@locked": { - BOOL: true - }, - "datetime@createdOn": { - S: "2023-12-27T12:41:44.932Z" - }, - "datetime@savedOn": { - S: "2023-12-27T12:41:45.612Z" - }, - "number@version": { - N: "1" - }, - "object@createdBy": { - M: { - "text@displayName": { - S: "ad min" - }, - "text@id": "658c1b5fbb4478000838470b", - "text@type": { - S: "admin" - } - } - }, - "text@id": { - S: "658c1b88bb44780008384724#0001" - }, - "text@path": { - S: "/welcome-to-webiny" - }, - "text@pid": { - S: "658c1b88bb44780008384724" - }, - "text@status": { - S: "published" - }, - "text@title": { - S: "Welcome to Webiny" - } - } - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "text@content": { - S: "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub" - }, - "text@tags": { - L: [] - }, - "text@title": { - S: "Welcome to Webiny" - }, - "text@type": { - S: "PbPage" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#acoSearchRecord-pbpage#A", - GSI1_SK: "wby-aco-658c1b88bb44780008384724#0001", - PK: "T#root#L#en-US#CMS#CME#CME#wby-aco-658c1b88bb44780008384724", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:45.952Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:44.944Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1b88bb44780008384724", - id: "wby-aco-658c1b88bb44780008384724#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:41:45.952Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - modifiedOn: "2023-12-27T12:41:44.944Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:44.944Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:41:44.944Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:44.944Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:44.944Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - M: { - "boolean@locked": { - BOOL: true - }, - "datetime@createdOn": { - S: "2023-12-27T12:41:44.932Z" - }, - "datetime@savedOn": { - S: "2023-12-27T12:41:45.612Z" - }, - "number@version": { - N: "1" - }, - "object@createdBy": { - M: { - "text@displayName": { - S: "ad min" - }, - "text@id": "658c1b5fbb4478000838470b", - "text@type": { - S: "admin" - } - } - }, - "text@id": { - S: "658c1b88bb44780008384724#0001" - }, - "text@path": { - S: "/welcome-to-webiny" - }, - "text@pid": { - S: "658c1b88bb44780008384724" - }, - "text@status": { - S: "published" - }, - "text@title": { - S: "Welcome to Webiny" - } - } - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "text@content": { - S: "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub" - }, - "text@tags": { - L: [] - }, - "text@title": { - S: "Welcome to Webiny" - }, - "text@type": { - S: "PbPage" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814b7a77e60008f70d62#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814b7a77e60008f70d62", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:43.951Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814b7a77e60008f70d62", - id: "6022814b7a77e60008f70d62#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:43.951Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "1864" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg" - }, - "text@name": { - S: "hero-block-bg.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814b7a77e60008f70d62#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814b7a77e60008f70d62", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:43.935Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814b7a77e60008f70d62", - id: "6022814b7a77e60008f70d62#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:43.935Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "1864" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg" - }, - "text@name": { - S: "hero-block-bg.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "602281486ed41f0008bc2dac#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dac", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.233Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dac", - id: "602281486ed41f0008bc2dac#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.233Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "73153" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg" - }, - "text@name": { - S: "data-icon.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "602281486ed41f0008bc2dac#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486ed41f0008bc2dac", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.233Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dac", - id: "602281486ed41f0008bc2dac#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.233Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "73153" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg" - }, - "text@name": { - S: "data-icon.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "6022814851197600081724ae#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814851197600081724ae", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.177Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814851197600081724ae", - id: "6022814851197600081724ae#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.177Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "60602" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg" - }, - "text@name": { - S: "cost-icon.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "6022814851197600081724ae#0001", - PK: "T#root#L#en-US#CMS#CME#CME#6022814851197600081724ae", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.177Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "6022814851197600081724ae", - id: "6022814851197600081724ae#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.177Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "60602" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg" - }, - "text@name": { - S: "cost-icon.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228145f98841000981c71f#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c71f", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.293Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c71f", - id: "60228145f98841000981c71f#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.293Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "30007" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg" - }, - "text@name": { - S: "octo-cat.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228145f98841000981c71f#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228145f98841000981c71f", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.293Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c71f", - id: "60228145f98841000981c71f#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.293Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "30007" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg" - }, - "text@name": { - S: "octo-cat.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "602281486639200009fd35ec#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486639200009fd35ec", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.133Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35ec", - id: "602281486639200009fd35ec#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.133Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "392" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg" - }, - "text@name": { - S: "cms-benefits-shape.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "602281486639200009fd35ec#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486639200009fd35ec", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.133Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35ec", - id: "602281486639200009fd35ec#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.133Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "392" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg" - }, - "text@name": { - S: "cms-benefits-shape.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228148fa244d0008c47c79#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148fa244d0008c47c79", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.153Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c79", - id: "60228148fa244d0008c47c79#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.153Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "7806" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg" - }, - "text@name": { - S: "scalable-icon.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228148fa244d0008c47c79#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148fa244d0008c47c79", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.152Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c79", - id: "60228148fa244d0008c47c79#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.152Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "7806" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg" - }, - "text@name": { - S: "scalable-icon.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#L", - GSI1_SK: "658c245d87b17d00085b6ee3#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c245d87b17d00085b6ee3", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:19:26.027Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:19:25.062Z", - entity: "CmsEntries", - entryId: "658c245d87b17d00085b6ee3", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:19:26.001Z", - id: "658c245d87b17d00085b6ee3#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:19:26.001Z", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:19:26.027Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - publishedOn: "2023-12-27T13:19:26.001Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:19:25.062Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:19:26.001Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:19:26.001Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:19:26.001Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:19:26.001Z", - status: "published", - tenant: "root", - values: { - "long-text@rvoj9mru": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAQAGvkJUhUAAAA=" - } - } - }, - "text@prn21kdn": { - S: "DDB - Model A Entry 1" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#P", - GSI1_SK: "658c245d87b17d00085b6ee3#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c245d87b17d00085b6ee3", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:19:26.027Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:19:25.062Z", - entity: "CmsEntries", - entryId: "658c245d87b17d00085b6ee3", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:19:26.001Z", - id: "658c245d87b17d00085b6ee3#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:19:26.001Z", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:19:26.027Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - publishedOn: "2023-12-27T13:19:26.001Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:19:25.062Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:19:26.001Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:19:26.001Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:19:26.001Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:19:26.001Z", - status: "published", - tenant: "root", - values: { - "long-text@rvoj9mru": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAQAGvkJUhUAAAA=" - } - } - }, - "text@prn21kdn": { - S: "DDB - Model A Entry 1" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#modelA#A", - GSI1_SK: "658c245d87b17d00085b6ee3#0001", - PK: "T#root#L#en-US#CMS#CME#CME#658c245d87b17d00085b6ee3", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:19:26.027Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T13:19:25.062Z", - entity: "CmsEntries", - entryId: "658c245d87b17d00085b6ee3", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:19:26.001Z", - id: "658c245d87b17d00085b6ee3#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:19:26.001Z", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:19:26.027Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - publishedOn: "2023-12-27T13:19:26.001Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:19:25.062Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:19:26.001Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:19:26.001Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:19:26.001Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T13:19:26.001Z", - status: "published", - tenant: "root", - values: { - "long-text@rvoj9mru": { - M: { - compression: { - S: "gzip" - }, - value: { - S: "H4sIAAAAAAAAA3NxcVLQVfDNT0nNUXBUcM0rKapUMAQAGvkJUhUAAAA=" - } - } - }, - "text@prn21kdn": { - S: "DDB - Model A Entry 1" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "60228148fa244d0008c47c7a#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148fa244d0008c47c7a", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.314Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c7a", - id: "60228148fa244d0008c47c7a#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.314Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "17382" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png" - }, - "text@name": { - S: "community-icon.png" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/png" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "60228148fa244d0008c47c7a#0001", - PK: "T#root#L#en-US#CMS#CME#CME#60228148fa244d0008c47c7a", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.313Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c7a", - id: "60228148fa244d0008c47c7a#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.313Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "17382" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png" - }, - "text@name": { - S: "community-icon.png" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/png" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#L", - GSI1_SK: "602281486639200009fd35eb#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486639200009fd35eb", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:41:44.117Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35eb", - id: "602281486639200009fd35eb#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.117Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "1758" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg" - }, - "text@name": { - S: "serverless-cms-logo.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#L#en-US#CMS#CME#M#fmFile#A", - GSI1_SK: "602281486639200009fd35eb#0001", - PK: "T#root#L#en-US#CMS#CME#CME#602281486639200009fd35eb", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:41:44.117Z", - createdBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - createdOn: "2023-12-27T12:41:43.820Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35eb", - id: "602281486639200009fd35eb#0001", - locale: "en-US", - location: { - folderId: { - S: "root" - } - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:41:44.117Z", - ownedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:41:43.820Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:41:43.820Z", - savedBy: { - displayName: "ad min", - id: "658c1b5fbb4478000838470b", - type: "admin" - }, - savedOn: "2023-12-27T12:41:43.820Z", - status: "draft", - tenant: "root", - values: { - "number@size": { - N: "1758" - }, - "object@location": { - M: { - "text@folderId": { - S: "root" - } - } - }, - "object@meta": { - M: { - "boolean@private": { - BOOL: true - } - } - }, - "text@aliases": { - L: [] - }, - "text@key": { - S: "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg" - }, - "text@name": { - S: "serverless-cms-logo.svg" - }, - "text@tags": { - L: [] - }, - "text@type": { - S: "image/svg+xml" - } - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.ddbEsTableData.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.ddbEsTableData.ts deleted file mode 100644 index d1c5abe7915..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.ddbEsTableData.ts +++ /dev/null @@ -1,562 +0,0 @@ -export const ddbEsTableData = [ - { - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _md: "2023-12-27T12:43:01.141Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61U32/aMBD+VzzvlWT5ARTyxCYxbZrWVoNVWqepsuMDsjo2chxoVPG/7+wQxFrG+tC33PnuvvvuvssjLbUA+VnQjLJcz4CZfPUNcm1EsOZrtgTaoxswVaEVzeIelTpn1huPdKGlAONzjdaW7nq0YhsQV/hKkyhJgzgJkot5nGT9NIuiMEr6t7StIQFjQAXfZ+ioLLN1hQ5h2MKiowTLEAELbpisoXJoFh7sxDZrl3jNr9vWWmdhfblLbclHXSvRPeRaWVD2+Im4RKLQXDjzDZlpY5oe4bUldgXEUSaNrskWDBCp9X2hlhhrSK5rKXwmhzY5JPP3X6bk65R8uipdN5r/htxOjmfk+zgxqH2oYJ5oG1a4gOFglMdcpHk65jyOomjUT2M+yN/iZ9wRW58NPTeXPW5ugFkQH5pT4BdPKvb7XUVRVGvJmktWurpMkLJQB7R2NUw4HzJEamCLEjqsU6pIssE4HA+9Kg7x5zU0HKa3HeRBN+uay6JagWOo6pKDmRyLlmstgSm3mHuMyaypoZsksyss8A73GvilutZbPmyJpX/+Qvuvaf1vUP+a0ZPxoC5N4yWx5U2AtxecXadiXsdePoeGXnBonu+CyQoJ6616ZRJb4IVqbrpR00GYjsIEA4uXEOskjb+gYlG8cmuGbW8O/47nh/n8BE9cxm6HYRLNynaimf+4niJMXlah32AoEfvubo9+7N79AR8950ZcBQAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:43:01.141Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-12-27T12:43:00.682Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-12-27T12:43:00.663Z", - publishedOn: "2023-12-27T12:43:00.663Z", - pid: "658c1bd3c39bb10008431b5c", - locale: "en-US", - title: "Not Found", - createdOn: "2023-12-27T12:42:59.964Z", - version: 1, - tags: [], - path: "/not-found", - webinyVersion: "5.38.2", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - __type: "page", - id: "658c1bd3c39bb10008431b5c#0001", - titleLC: "not found", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - tenant: "root", - status: "published", - latest: true - }, - SK: "L", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - _et: "PbPagesEs", - _ct: "2023-12-27T12:43:00.682Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-12-27T12:43:00.682Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-12-27T12:43:00.663Z", - publishedOn: "2023-12-27T12:43:00.663Z", - pid: "658c1bd3c39bb10008431b5c", - published: true, - locale: "en-US", - title: "Not Found", - createdOn: "2023-12-27T12:42:59.964Z", - version: 1, - tags: [], - path: "/not-found", - webinyVersion: "5.38.2", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - __type: "page", - id: "658c1bd3c39bb10008431b5c#0001", - titleLC: "not found", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - tenant: "root", - status: "published" - }, - SK: "P", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - _et: "PbPagesEs", - _ct: "2023-12-27T12:43:00.682Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.522Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY/TMBD8K8g8kqSxk5JeniokkHgBJI6TDoQqO9lU5vxR2U56ocp/Z52kEkLH8cJbdnY9npl1LuQMQprxDpyX1pCabLNilzGSkACGm4CIszZgDSa48X2LwOucsR0tBXQlvynzPN+JQnBW4ZB8rv8SPykOaduCmpk6/U4qQEjZhuNHjbekXz4j0DjgAdqPURLLWZFSlrLqlrK6ZPV2l1Xb8iuOeT78e2jlejOS+rIq3O4aKqqiKW6EoFFhWVBRljjcSn9SfPzAdZTD2xdampjGeFrqWE4JsWfznxkxFdnJhdT0SiVkuC6FzgE9AF7UceUBfQceeo/HW8e7uJ2Bqx58lGPFD2jCPiYa5tMXXOVj2HdWteDm2OeNTsmCm0WXh6Z3MoyZH45kbT3AGK8AbdMTP4Lf/G2zmzOoxmpIg02XB3U4PEW4epYa2TaIv3rUCnum1wLc3suf2KVVRdHwakND4NGCsFYBN/uTkwMuk9TB9XC1EPgRrX/7vpZcSe5hRqblaV2DeCIDx893z2Q3/alkipSowIdFQ0Ju7z+9RcJG+2z+R7Jo6XBYvf4OT78AoS6E/W8DAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.522Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.706Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UMBT9K6Y+CgwUEIaniYkmvqiJ6yar2UwKXCZ1+0HawixO+O/eApMYs7u++MY99/b0nHPLhZyh5mq6BWO5VqQieZSWESUBcaCYcogYrR3WoJyZPrYIvI0pLZMs7/ZlmSVxHO/LpClogkP8pf5r/PRDUrcgFqZOfuACEBK6YfhR4S3ht68INAaYg/azl0RjmoYJDWlxk9Aqo1VeRkWefccxy8Z/D21c7yZSXTaFedkkdZE26b6uvcIyS5M6y3C45bYXbPrEpJfD2leSK5/G1K+1L+eA6LP6z4yYCu/4SqoGIQIyXpeSLAE9AF7UMWEBfTvmBovHW8M6v52RiQGsl6Prn9C4g0/ULacvuMpHd+i0aMEssS8bnYMVV6uuFkYQugcT2fFEtt4DTEtL6rBnJ7C751a7O4NotITQ6XB9Ucfjk4ybay6Rbof4m0cpsKcGWYM5WP4Lu7Qo4yy4GpHgmDdRay2AqUNv+IjrJJUzA1xNOHZC8z/ut5IJziwsyLw+rmsUT6Rg2Pn2hfTmv5XMnhIVWLdqCMjN3Zf3SNhIGy1/SeQtHY+b1z/h+TfXujKFcQMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.706Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.361Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLESZtsThUSSFwAiWUlQKiyk0kx64/KdtINVf474ySVENpdLtw8b8Zv3ryxL+QMXOjxDqwTRpOabJO8SiiJiAfNtEfEGuMxBu3t+K5FYJdSWmUFL1lZwi5N06or03YXLonn8i/xmGGRMi3ImalTb4UEhKRpGB5q7BJ//oRAY4F5aD8ESTSleZzRmJa3Ga0LWm+rpNwWX7HMseHfRSvX65HUl1XhtmoyXuZNfsN5FhQWecaLAotb4U6Sje+ZCnJY+0IJHdwYT0scwiki5qz/MyO6IjqxkOpeyogM16Vks0H3gI06Jh3g3J753uH11rIubGdgsgcX5Bj+Exq/D476+fYFV/ng952RLdjZ9nmjU7TgetH1A6yJeWgT82PihiNZ8/cwhj6gTHxiR3Cbp9a7OYNsjILYm3h5VYfDk6zr9EIh5QbxVw9KYk73ioPdO/ELs1m1K6LrPAo8C7NwYyQwvT9ZMeBWSe1tD9dZPDuiB9++ryGTgjmYkWl5Y1dHHjHDsvPdMyZOfyuZAiUqcH7REJHbLx/fIGGjXDJ/liRMdDiso/4JT78BE5zmZXgDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.361Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.486Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdJ8tQk5VUggcQEklpUAoWqSTIpZf1S2k26o8t93nKQSQlAu3Dxvxm/evLEv7Iw1V+M9Gsu1YhXbRlkZpSxgDhUoR4jR2lGMypnxbUvALk7TMsW4gKLAXRzHZVfE7S6jIn4r/5yOCRVJ3aKYmTr5hgskSOgG6FBRl/DTRwIag+Cwfe8lpXGahUkapsVdklZ5Wm3LqNjmX6jMwvDvopXr1ciqy6pwWzZJXWRN9rKuE68wz5I6z6m45fYkYHwH0suB9pnkyrsxnpbYh1PA9Fn9Z0ZyhXd8IVW9EAEbrktJZoMekBp1ICzS3A5cb+l6a6Dz2xlA9Gi9HF3/wMbtvaNuvn2hVT66fadFi2a2fd7oFCy4WnR15FFvMGzAtGF9jOxwZGvFA46+E0odnuCIdvO3BW/OKBotMXQ6XN7V4fAdjQ5vkK82cEnMG8JfPEpBOdXLGs3e8p+ULcsyuM4l0YGfqdZaIKj9yfCBtssqZ3q8zuTgSF58/baGIDhYnJFpeWtXZ/5gioHz/Q0zp9+VTJ6SFFi3aAjY3ecPr4mwkTaaP03kBzoc1kl/hacnhEueWoADAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.486Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:25.736Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA62ST3OCMBDFvwqTHitMEkCUU3X00EP/zGidqRcnQGgzDcGSoEXH795NrHV64dRb9u2P5eVtjmjPM6G6FW+0qBVKURyEo4CiATJcMWVAaeraQM2Vabr7AoRhPMppNB4PhzjJOMZ4lJSEDBOARF//Bo4EoKouuHST3GkCkqxzJjkoXPkvCxDyhjPDiydriWIa+oT6NFmSMKU4pXFAw3gNmGa7HijBZH2dNe1Qerw6JFkS5uE4y4h1GIUkiyKAC6G3knWPrLJ2WOFVQtk0uu25tuVpgOq9+ueJkIUoxXmoaqUcoN1lKcQF9MHhR6ZpOVzbMNNq+HrbZlLod+gAzmTLtXVk+Je5K+ln3rYHS81m09v5wvO9B5u3N/HmdpcedcGrN9/xB2qKCsdFH386b8o4V0dU1rLgjdukeyTQbth+dfFhaQhem4vt5evzHNi80oF7TYEEB5vNTxJ/5d+b9W/39A3SUG1TwgIAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:25.736Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:25.737Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Sy26DMBD8FeQeC8g2r4RTEyWHHPqQ0kZqL5HBmxYVDMUmKYny77UhRDn0cenNHs/Ozs76gIqSQ77gKO5PE2SjLdQyKwWKiY3yMmWquxzQpsw51B23LkuFjjaSbAv8Xr8iiqnnEOrQ6JF4McUxDdwIkxfUa+SgOSCcp6UGpGKqkRqomiTP5Btw05XlDUjTR8GnutnQj7Rp9oY1m02v50vLsW6NQ2tizYWqW4t20uLV6fh7qniBA/4bXxtOa2AK+LTtGrWVscV4kQktxjNZ5ay9Y0WPWj2cGc0wGKUkibzUGycJwRiPfI8kvm80wcgvBhb1x+MwxFEChhVtCAkjraJAMKGG6M5GfsyOesEpu3cdT6zqBmxU7sQ/e99Bkol2NWwcBa43cull5XfzXOkj0aTz/v76AjXbrYb9Hi/qhsEenx/mWiEtpNul6Va6aL0+DXkJH78AOM3x+bMCAAA=" - }, - SK: "P", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:25.737Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.543Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXYvUMBT9KxIfbTtt2jqZPg2Cgi8quC6ssgxpezvEzUdp0s7Wof/dm36AyO764lvuyc3JOecmV3KBUujxFjorjCYFyaOURZQExIHm2iHSGeOwBu268WONwNuYUpZkeXNgLEviOD6wpNrTGJvES/uvcZlgkzI1yJmpUR+EBISkqTguCrwl/PYVgaoD7qD+7CXRmKZhQkO6v0lokdEiZ9E+z75jm+XDv5tWrncjKa6rwpxVSblPq/RQll4hy9KkzDJsroVtJR8/ceXl8PqVEtqnMbZL7cspIOai/zMjpiIasZDqXsqADNtQkjmgB8CLGi4toG/HXW/xeN3xxk9n4LIH6+WY8idU7ugTdfPpK47y0R0bI2vo5tjniU7BgutNF28dLyWEojI6ssOZrA0PMPqLQJmw5Wewu+fmu7uArIyC0JlweVan0/O0q3+hkHOH+JtHJXFP96qE7mjFL9yl7JCwYLOkwHFvpzRGAtfHthMDDpYUruths+P4GWP4cb+WXApuYUam5ZltoTyRR8cvty/kOP2tZPKUqMC6RUNAbu6+vEfCStlo/i+Rt3Q6rV7/hKffjOAaTXsDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.543Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.702Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLESduQU4UEEhdAYlkJ0Kqyk0ll1h+R7aQbqvx3xkkqoRWUCzfPm/GbN2/sCzkDF3q8B+uE0aQi2yQvE0oi4kEz7RGxxniMQXs7vm8Q2KWUlllR7qApsjZN05LXtGEci8St/Es8ZlikTANyZmrVOyEBIWlqhocKu8RfPiNQW2Aemo9BEk1pHmc0pvu7jFYFrbZlst8W37DMseHfRSvXm5FUl1Xhtqwzvs/r/DXnWVBY5BkvCixuhOskGz8wFeSw5oUSOrgxdkscwiki5qz/MyO6IlqxkOpeyogM16Vks0GPgI1aJh3g3J753uH1xrI2bGdgsgcX5Bj+A2p/CI76+fYFV/nkD62RDdjZ9nmjU7TgetHVgVXChX6xqI1O3HAia8UjjKETKBN37ARu87cFb84ga6Mg9iZe3tXxeIN3dUAoJN0g/upJSczpXnGwByd+Yna3L1IaXYdS4FkYiBsjgelDZ8WAqyWVtz1cB/LshEZ8f1hDJgVzMCPT8tCutvzBEcvO9zecnJ4rmQIlKnB+0RCRu6+f3iJhrVwy/5gkjHQ8rrP+Dk+/AEx3J3R9AwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.702Z" - }, - { - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _md: "2023-12-27T12:43:01.123Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61YW3PbNhb+KxjtbPsiceVLmsT7EtVtU8/aiVu7yWx3djogeSRiBQIsAEqrdPzf9zsASVGOnPVDHzyWcDnX73znQH9MaluSvionFxNZ2DuSrqh+psK6ctbkjVzRZDrZkPPKmsnFyXSibSFD/PLHZGl1SS7eddaGycN04uWGyvfYnZzOT89mJ6ez05f3J6cX52cX83k2n3/z6yTJ0IQzZGa/3GHBBxlaj4XSyWXAQk1BQgMEbqRuybO2QP8Nb8Ku4Yu3+W0yLS2qEMV9JF3YmkSw4iPlyuz6A4U1gUw4dkQcW4n/arkmL1QQJP2Ot/NW6VLIptEqxcALaUqxpdyrgKPW4FQj7FKEioQnh7hp8pBhlk764NoitI5EvhONsxtVKrMSO9uKrQqVkMKRLHezWpYkLm/uomwpStqQtk0N8wWk1LS1bp2JO0RQ5pp6Y2GVF4U0wnNo2doK9/kTTKmtDxBUY4VVsgRtZekz8c6KovXB1rhhNW86+r1VjspeMGlVKyPZPxZlCFtDLB7dxXoBJ8KB87BMXLIBtFxSEdTm0GbXGg7c09HaVqqoRAEJXrya/1XEMwHeiQ83XvxM3uoNjBsJKCqpNZkVVjtNjmrLh7AevRidQLaiL2z/odX7LL+lwL6tjd32EpHAEgZ6sUC9IPtFyOBlSZn4jhptd1l/8G4vc7GXKX7oUym+x/YuVD0W+gB3gWQQlFHioUnPxFr2lcl983fxiydGcp+4C/FDq/UMZVesD+TetDqoGWpFAm6IbJu0LW6v/I0qnGVFqiBxDZ4wwBXyszBcIIqc2MpRmRzG0ov7inBY4g8w3I1kI5VBVKSb6D7gMB0chu+1NSpYNxa3bE0Rr06hKgAfZNg3LmLP+iU8R3p3WIlZtYamHKVOvcH3ITsK1g227E3x0RbcJ/7gHsP5iQLuwWXrBjoMwKHVGgG6vJ4KZ6HCrKZiqVCUqBoH/koecjg4ktkIFEskH+nznDgHR1e433gWAyPEV7JGTn1hG3y5o6J1KnS+FEi8klpouUNGlBHSHCBn77kpdFtyTSCgwEKnkRPXyUNjaCOByPA1isoaA5QncLKbnOYwg4a3TjbVT9cMkuwZ5hZyyX2DQ/dTq4o1ErUiQ47RnltExzWaP8fot57PXV5fiUa3K2U8BwmMo2Wdl3IPBTbK0HZsC45eRnpSnyJRDn5xLbADJS0l4C4WH+9QuivG2VQAag7ok8B4TOqZK0UjHYe3REr5fko9/Ezpfb8OcioWbajmU0GhyKCAje4MTkgCW3E76YMfc5xAY45IzkSswwZWk9koZ00d4cRszVEBfYG7xMoiniXIugiaE8rY74mJ4Ty6O6SdQ/lZYwMEezR2tFMf1b9EdGI9QMl/IuW9Nwis+oRgwhbzNVoUxHIhXDFmpGBug4lgfscNzINIQVldj0lCpQB7Vgb4RPmQrNG4UhnDLLemEBsLr8e1nBHBdTjui7x9jHC5iyZaiLH2uOKgZW9PZKY+QS1zpAH3kOGE6F1EQ7ArYvIQsIqBwPajzGxFnltZzx1PqV8I36I9xFtj/uYG3XNeF/4Y2W5SyT5n7JshGmnaSFTdDR8jPr1MEkTV5v0hDbi0rCLdvDLBSYNUNNYFqb34EYNH6pzd3TgT+jHLsy85yhT59fvh4x1jJwREJxUUTxjTpxIhU6MAVIcZpSZYgayY/ZjSt+ZHg8qilE2IOr8l3oIw0ImZeQQNtdoBcoqQAXcDrtEAlqmPSL4vYpuNwY/BtlsT+y3kX6O184zBicIyqrtSDVzQy1mFZdDevuM+3W05II/Gl1ReK7SgeKEhy2U1TFnYhh+ub/W1RBnjL0u0Tt2/klvOiKeyrr60t4OzuEgr1w9faNI9P/3jftHxU1ThMc9pCY75TgY58nXfEf3eaw4osiQTjzlR8h2MDbtUUmD//XIB5DB33ZKrlecHQ8QTeoC4tVtyaDPwdYB/v8eZb4YrnZ6W+whUgEkqvCgyHh92fGyZyE5qtTKpquP5gRbG1NIPPyMgdtR3mCKO4PRw6h+lOMb3hOe6SDjkZkunQBF6eCgwYeVETPFl1zZSOXQXuA1jhi45a914gf26P/Dk2BklQT3cPwXVAu6ig/s+V4mvywPwJLigQmQtP3GxxHbMyE3oy7oasiOJKcedXJzfprcNbdJ0XbeYwZeIGSeYGcYpzF6gR56otukFlYkz3qvr1nAz+0gxddGONPYXwx4P/OixeMfcS73uJwo8OmnGXD6NusG7MVoDtcYuwFOO3jIA00jHPYmb6O94JcawZeKDomFOh6a3KvzY5ngK2pw54s34BRtfh0eesd1RxvVwTPGBb168Kk7y8qw4e53nJ/P5/NX52Un+Iv8LPp70z83mi0ef82rt9HfZ/XZ3zIiXjySfn/eSS+UxwuzeYZrkZ33J6Bu0pge0LHkNnsJFdJWael3H3u6nFy9eZ6/PX/LbfTj/5Zf+y9OzX3uVw+u+aXOtfEUldkxb5+TejH9ayPGMBAw5QWucuUCBUh9RGSoI+FsHtVmw3Pk4Vg+9X3IFFf/6N74fRO3/BeypWD0KE/jE7SJEtvluJgs7+2J6+f3Uw2kw6Bk/i0S/l+B1OM7U/Oc6kUL2oQ/55EV29io7xUH1HMd6iMeuqv5k05zcfhh+6fm8UD8vySMV8vCAY/x28KEHz/0/b7+HmqL2WcxgpqH7t9867ePlh/8BijuEYQoTAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:43:01.123Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-12-27T12:43:00.864Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-12-27T12:43:00.723Z", - publishedOn: "2023-12-27T12:43:00.723Z", - pid: "658c1bd3c39bb10008431b5b", - locale: "en-US", - title: "Welcome to Webiny", - createdOn: "2023-12-27T12:42:59.947Z", - version: 1, - tags: [], - path: "/welcome-to-webiny", - webinyVersion: "5.38.2", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - __type: "page", - id: "658c1bd3c39bb10008431b5b#0001", - titleLC: "welcome to webiny", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - tenant: "root", - status: "published", - latest: true - }, - SK: "L", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - _et: "PbPagesEs", - _ct: "2023-12-27T12:43:00.864Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-12-27T12:43:00.864Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-12-27T12:43:00.723Z", - publishedOn: "2023-12-27T12:43:00.723Z", - pid: "658c1bd3c39bb10008431b5b", - published: true, - locale: "en-US", - title: "Welcome to Webiny", - createdOn: "2023-12-27T12:42:59.947Z", - version: 1, - tags: [], - path: "/welcome-to-webiny", - webinyVersion: "5.38.2", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - __type: "page", - id: "658c1bd3c39bb10008431b5b#0001", - titleLC: "welcome to webiny", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - tenant: "root", - status: "published" - }, - SK: "P", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - _et: "PbPagesEs", - _ct: "2023-12-27T12:43:00.864Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.525Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UQBD8K2Z8FFgY2FuOp42JJr6oieclasymB5rNePOxYQb2cMN/twfYxBjvfPGNru6pqaoeLuyMQprxHjsnrWEV2yZ5mXAWMY8GjCeks9ZTjcZ347uGgJuU8zIrBLYF3BZpmpYiF8BvaEg+139JnxkNadugmpla/VYqJEjZGuijolviz58IqDsEj82HIImnPI8zHvPdXcarglfbMtlti6805mD499DK9Xpk1WVVuC3rTOzyOr8VIgsKizwTRUHDjXQnBeN70EEONC+0NCGN8bTUoZwiZs/mPzNSKrKVC6nplYrYcF1KNgf0gHRRC8oh+fbge0fHmw7asJ0BVI8uyLHiB9Z+HxL18+kLrfLR71urGuzm2OeNTtGCm0WXq6ENI9IcEzcc2dp9wDHcgtrGJzii2zy13M0ZVW01xt7Gy5s6HJ7gXJ1LTYQbwl89akU902uB3d7Jn9TN87Iso6sZjR6CEWGtQjD7UycHWimrfNfj1YiHIwXw7ftagpLgcEam5YFd4/hLEh2c759JcPpTyRQoSYHzi4aI3X35+IYIa+2S+U9JgqXDYfX6Ozz9AgsV+EF1AwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.525Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.561Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLYSZtsThUSSFwAiWUlQKvKSSaVWX9UtpNuqPLfGSephFbLcuHm+fCb997YF3KGWujxDqwTRpOKbJOsTBiJiAfNtceMNcZjDNrb8UOLiV3KWEnzckvpTbFL07SkBcs5YJN4qf4ajxSblGlBzkidei9kuCdNw/FQ4ZT46xdMNBa4h/ZToMRSlsWUxay4pazKWbUtk2Kbf8c2x4d/N61Yb0dSXVaG27KhdZE12U1d08Awz2id59jcCneSfPzIVaDD21dK6ODGeFriEE4RMWf9nxHRFdGJBVT3UkZkuC6FzgY9AA7quHSAuj33vcPrreVd2M7AZQ8u0DH1T2j8Pjjq59sXXOWj33dGtmBn2+eNTtGS1wuvxjgfi8boxA1HstYeYAwzQJn4xI/gNn9b7eYMsjEKYm/i5UUdDs8irqqFQrgN5t88Kok13asa7N6JX1jdpTgmugpR4HkQURsjgev9yYoB10kqb3u4ivD8iOJ/3K8hl4I7mDPT8riuVjzjguXnuxfcm54ymQIkMnB+4RCR22+f3wULlUvmX5IESYfDqvXP9PQb9c+2XXEDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.561Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.487Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXavTQBD9K7I+mqTNR9uYpyIo+KKC1wtXkTKbTMra/Qi7m/bGkv/ubJKCiF5BzNPOmdkzZ85sruyCXOjhHq0TRrOKbZK8TDIWMY8atCfEGuMpRu3t8LYhYLvOsjItYN20BV/TV5a7fMM5FYmn8s/pmFKRMg3KialVb4REgqSpgQ4VdYk/fSSgtggem/dBUrbO8jjN4mx3l2ZVkVWbMtltis9U5uD896KF69XAquuicFPWKd/ldf6S8zQoLPKUFwUVN8J1EoZ3oIIcaJ4poYMbQzfHIRwjZi76PzOSK6IVM6nupYzY+baUdDLohNSoBemQ5vbge0fXGwtt2M4ZZI8uyDH8G9Z+Hxz10+0rrfLR71sjG7ST7dNGx2jG9axrfgexQ0ttJToXQ9dJMZPEraWqi7GnxJ2PbLl5wiEoQGXiDo7oVn9a/OqCsjYKY2/iuc/h8A/9FseEomYrwl88Kkk53SuOdu/Ed8rm2y25tXig0EOYnxsjEfS+s+JML4FV3vZ4m9/DkXz78nUJQQpwOCHj/C5vLv7GQAuX+yeMH39VMgZKUuD8rCFidw8fXhNhrVwy/WBJmOhwWEb9GR5/AOAByTisAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.487Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:12.855Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA62ST3OCMBDFvwqTHisMCQiUU3X00EP/zGidqRcnIaHNNAQLQYuO372bWOv0UE+9Zd/+WF7eZo+2gkndL0TTylqjHA2DKAsIGiAjNNUGlKauDdRCm6a/4yAkw6wgccaSJEyZCMMwS0uMkwQgeal/BUcMUFVzodwkdxqBpOqCKgGK0P7zDISiEdQI/mgtkZBEPiY+Sec4ykmYYxxkBC8Ba+nmT4gEaTpcnmeNe5Tvzw4xS6MiumEMW4dxhFkcA8xlu1a0f6CVtUO5V0lt0+jXx9qWhwGqt/qfJ0IWspTHobpTaoA2p6VgF9C7gB+ZphNwbUNN18LX644p2b5BB3CqOtFaR0Z8mtuSfBRdt7PUZDK+ns4837u3eXsjb2p36WEXvH71Hb8jhlfhkF/iD8dNGedqj8pacdG4TbpHAu2GbhcnH5aG4Ftzsj1/eZoCW1Rt4F5ToMDBavWdxG/552aXt3v4AqHf5GfCAgAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:12.855Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:12.874Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Sy26DMBD8FeQeCwgbApRTEyWHHPqQkkZqL5GNNy0qGIpNUhLl32tDiHLo49KbPZ6dnZ31ARUlh3zOUdKfxshGW6hlVgqUYBvlZUpVdzmgTZlzqDtuXZYKHW0k6Rb4g35FxCO+g4lDoiX2E+IlmLhRNHpBvUYOmgPCeVpoQCqqGqmBqmF5Jt+Am640b0CaPgo+1e2GfKRNszes6XRyPVtYjnVnHFpjayZU3Vq4kxavTsffE8ULb8R/42vDaQ1UAZ+0XaO2MrYoLzKhxXgmq5y297ToUauHM6MZjuIUs8hP/RvGsOd5ceBjFgRGE4z8fGCRIGZh6EUMDCvaYByGWkWBoEIN0Z2N/JAddmOCT9m963gSVTdgo3In/tn7Dlgm2tWwcTRy/dgll5XfzXOljyb+8/7++gI13a2G/R4v6obBls+PM62QFtLt0nQrXbRen4a8hI9ffhzBm7MCAAA=" - }, - SK: "P", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:12.874Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.488Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXa+UMBD9K6Y+CiwU1u3ytDHRxBc18XoTNWZTYFjr9oO0hb244b87BTYx5np98Y05Mz0950y5kgtUQo/3YJ0wmpRkm+QsoSQiHjTXHhFrjMcatLfj2waBlymlLCtYu2esyNI03bOs3tEch8RT/ef4meGQMg3ImalVb4QEhKSpOX6UeEv86SMCtQXuoXkfJNGU5nFGY7q7y2hZ0HLLkt22+IJjjg//Hlq5Xo2kvK4Kt6zOql1e5/uqCgpZkWdVUeBwI1wn+fiOqyCHN8+U0CGNsVvqUE4RMRf9nxkxFdGKhVT3UkZkuC0lmwM6A17UcukAfXvue4fHG8vbsJ2Byx5ckGOqH1D7Q0jUz6evuMoHf2iNbMDOsc8bnaIF14uuTuhz7L7zDhI3nMjaPMMYLgFl4o6fwG3+ttvNBWRtFMTexMuTOh4fp1x9C4V8G8RfPCiJPd2rCuzBiZ/YzfdpdDOiwPNgojJGAteHzooB10lKb3u4mfD8hOa/fltLLgV3MCPT8rhuUTySguWX+yfSm/5UMgVKVOD8oiEid58/vEbCWrlk/kuSYOh4XJ3+Dk+/APbPY71xAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.488Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.527Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY+bMBD9K5V7LJBgICGcokqttJdtpW5XaldVZMMQueuPyDZkacR/7xiItKra3Us5ed6M37x5Yy7kDFzo4R6sE0aTihRJViaURMSDZtojYo3xGIP2drhpENisKS3TvNxssh1d47drm6wAjkXipfxbPKZYpEwDcmJq1UchASFpaoaHCrvEX78gUFtgHppPQRJd0yxOaUy3dymtcloVZbIt8u9Y5lj/etHC9X4g1WVRWJR1yrdZne04T1FWmWcpz3MsboQ7STbcMhXksOaNEjq4MZzmOIRjRMxZ/2dGdEW0YibVnZQR6a9LSSeDHgEbtUw6wLk9853D641lbdhOz2QHLsgx/CfUfh8c9dPtC67yye9bIxuwk+3TRsdoxvWsy4HFfhKci2vlYmmOJnH9kSxVjzCEbqBMfGJHcKt/LXl1BlkbBbE38fy2DodXuBcnhELiFeLvnpTEnO4UB7t34hdm021RRtfZFHgW5uLGSGB6f7Kixw2TytsOrnN5dkQ/Hn4sIZOCOZiQcX5vV3f+Yoxl5/sXDB3/VDIGSlTg/KwhInffPn9AQhw3mX6cJEx0OCyjPofH377bNOyEAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.527Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.523Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLYSbdpThUSSFwAiWUlQKvKSSaVWX9UtpNsqPLfGSephFawcODmeTN+8+aNfSEDVEKPd2CdMJqUZJtkRcJIRDxorj0i1hiPMWhvx3cNAjcpYwXNiz2tGpqlaVrsqoblNRaJ5/Iv8UixSJkG5MzUqrdCAkLS1BwPJXaJP39CoLbAPTQfgiSWsiymLGa7W8rKnJXbItlt869Y5nj/96KV6/VIysuqcFvUtNpldbavKhoU5hmt8hyLG+HOko/vuQpyePNCCR3cGM9LHMIpImbQ/5kRXRGtWEh1J2VE+utS6GzQA2CjlksHOLfnvnN4vbG8DdvpuezABTmm+g61PwRH/Xz7gqt89IfWyAbsbPu80SlacL3oWt5BLHRrufO2q31nITaooRcwJK4/kfXCA4yhMSgTn/kJ3OZP+94MIGujIPYmXuiPx39vs/ojFPbYIP7qUUnM6U5VYA9O/MDsPqU3WXQdWYHnYdzKGAlcH85W9Lh4UmIfuI7r+Qlt+na/hlwK7mBGpuUZXk37jV+WD3fP+Dw9VTIFSlTg/KIhIrdfPr5Bwlq5ZP5PSRjpeFxn/RWefgJvK6+zmwMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.523Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.563Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTW+cMBD9K5V7LLCYj8JyWlVqpFzaSk0jJVG0MjCs3PhjZRs2dMV/7xhYqaqS9NIb82b8/N4bcyYnqLkab8FYrhWpSB6lZZSQgDhQTDlEjNYOa1DOjNctAh/jJClplnfbssxoHMfbkjYF7XCIv9V/j58Uh6RuQcxMnbziAhASumH4UeEt4Y/vCDQGmIP2q5eUxEka0iRMihuaVFlS5WVU5Nk9jlk2/Hto5fo0kuq8KszLhtZF2qTbuvYKyyyldZbhcMvtUbDxC5NeDmvfSa58GuNxqX05BUSf1H9mxFR4xxdS1QsRkOGyFDoH9AR4UceEBfTtmOstHm8N6/x2BiZ6sF6Orn9C43Y+UTefPuMqn92u06IFM8c+b3QKFlwtunTjdIhHIjscyNp6gtFfAVKHR3YAu3lts5sTiEZLCJFjeVD7/UuEq2cukW2D+IdnKbCnelmD2Vn+C7sp0hbBxYYEx7yFWmsBTO2Ohg+4TFI508PFgmMHtP7wuJZMcGZhRqblaV2CeCEDw063b2Q3/a1k8pSowLpFQ0Bu7r59RsJG2mj+RyJvab9fvf4JT78BqJuFQm8DAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.563Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.541Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY+bMBD9K5V7LJBgICGcokqt1EtbqduVuqsqMjCk3vUHsg1ZGvHfOwYiVavd9FJOnjfjN2/emDM5QcnVcAvGcq1IQbIoySNKAuJAMeUQMVo7jEE5M3yqEdisKc3jNN9skh1d47dr6iSDCov4tfxbPMZYJHUNYmJq5EcuACGhK4aHAruE378hUBlgDuovXhJd0ySMaUi3NzEtUlpkebTN0jsss6z/d9HC9X4gxXlRmOVVXG6TKtmVZYyy8jSJyzTF4prbVrDhM5NeDqvfSK68G0M7xz4cA6JP6j8zoiu84TOp6oQISH9ZSjwZ9AjYqGHCAs7tmOssXq8Na/x2eiY6sF6OLh+gcnvvqJtun3GVT27faFGDmWyfNjoGM65mXZW0YQkKGu5saH+xFiLbH8lS9AiDbwZShy07gl29tuPVCUSlJYROh/PTOhyuUy8+cIm8K8TfPUmBOdXJEsze8t+YxR7BZTAJjvmhSq0FMLVvDe9xvaRwpoPLUI4d0Yz7n0vIBGcWJmScH9vFmhdcMex0e8XN8bmS0VOiAutmDQG5+fH1w2xpNP01kR/ocFgm/Rse/wBONimLgQMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.541Z" - }, - { - index: "root-headless-cms-en-us-modelb", - _md: "2023-12-27T13:22:46.132Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA62SP2+DMBDFvwpyxwaEDQTCVKFk6NA/UtJKzRIZ7DRWjUHYhKIo371np2nUoZm6+d79OJ7f+YAGXgo1vvJOi0ahHCVBlAUETZDhiioDStc0BmquTDfeMxCmSVaRhMSUlRVOwzCchRxThgES1/o3cLRQ3TAu3SR3KkCSTUUlB4Ur/2UJQtVxajh7spZISCIfE5+kKxzlhORxHExTsgZM0/2f0DQIZ3h9mVWMKD9cHOIyjapoVpYYbGVxhMs4BpgJ3Uo6PtLa2qHMq4WyaYztqbblcYKaQf3zRMhCbMVpqOqlnKD9eSnYBfTB4Uem6zlc21DTa/i67Usp9A46gFPZc20dGf5p7mLGWzKQHVDzeXG7WHq+92Dz9gpvYXfpYRe8evcdn1aJyYaBXuOPp00Z5+qAto1kvHObdI8E2h0dXs8+LA3Ba3O2vXp7XgBb1TpwrymQ4GCz+U7it/xzs+vbPX4BgnLwJMICAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:22:46.132Z" - }, - { - index: "root-headless-cms-en-us-modelb", - _md: "2023-12-27T13:22:46.134Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Sy26DMBD8FeQeCwgbCIRThZJDDn1ISSO1l8jgbYMKNsImFEX599oQohz6uPRmj2dnZ3Z9RJVgUK4YSsZTimx0gEYWgqME26gUOVXD5YjeRMmgGbiNEAqdbCTpAdijfkXEI76DiUOiDfYTQpJg5npz/IpGjRI0B7jzvNaAVFS1UgN1m5WF3AMzXWnZgjR9FHyqu4BBTTqy16zFIr1dri3HujcOrdRactX0Fh6k+bsz8KM8VHHX0d/42nDeAFXA0n5o1NfGFmVVwbUYK2Rd0v6BViNqjXBhAs/COMdZ5Of+PMuw53lx4OMsCIwmGPnVxCIhCSjLchxp1twDTJlxqoBTrqbRXYz8MLvAnUXkPLsPPZ5ENS3YSHT8n713kBW8304bR6Hrxy65rvwuz40+mlCX/f31BRrabaf9nq7qpmCbl6elVsgr6Q7TdGtdtNudQ17Dpy+tJHA1swIAAA==" - }, - SK: "P", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:22:46.134Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.528Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UQBD8K2Z8FFgY2IPjaWOiiS9q4nmJGrNphmYz3nxsmFn2cMN/twfYxBjvfPGNru6pqaoeLuyMjTTjPfZOWsNqtk3yKuEsYh4NGE9Ib62nGo3vx3ctATcp51VWVB3womjTNK1EUYrylobkc/2X9JnRkLYtqpmp02+lQoKUFUAfNd0Sf/5EgOgRPLYfgiSe8jzOeMzLu4zXBa+3VVJui6805mD499DK9Xpk9WVVuK1E1pS5yG+bJgsKizxrioKGW+mOCsb3oIMcaF9oaUIa43GpQzlFzJ7Nf2akVGQnF1JzUipiw3Up2RzQA9JFHSiH5NuDPzk63vbQhe0MoE7oghzb/EDhdyFRP5++0Cof/a6zqsV+jn3e6BQtuFl0OVoANApjKaxJ3HBga/8Bx3APahsf4YBu89R6N2dUwmqMvY2XV7XfP8m6upeaKDeEv3rUinrmpBvsd07+pG5ZpTfR1Y9GD8FLY61CMLtjLwfaKqt9f8KrFw8HyuDb97UEJcHhjEzLG7sm8pcwejjfPxPi9KeSKVCSAucXDRG7+/LxDREK7ZL5Z0mCo/1+tfo7PP0ChLfw5XgDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.528Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.684Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBT8K8gcSdLESYmbU4UEEhdAYllpQahykpfKrD8i2003VPnvPCephFbs7oWb3/h5PDPPvpAz1EKPt2CdMJpUZJvkLKEkIh401x4Ra4zHGrS348cWgbcppSwrWLdjrMjSNN2xrClpgU3iuf3XuMywSZkW5MzUqQ9CAkLSNBwXFd4Sf/uKQGOBe2g/B0k0pXmc0ZiWNxmtClptWVJui+/Y5vjwctPK9W4k1WVVuGVNVpd5k+/qOihkRZ7VRXDQCtdLPn7iKsjh7SsldEhj7Jc6lFNEzFn/Z0ZMRXRiIdUnKSMyXIeSzQHdA17UcekAfXvuTw6Pt5Z3YToDlydwQY6pf0Hj9yFRP5++4Cgf/L4zsgU7xz5PdIoWXC+6RNsnbjiSFb2HMbCDMnHPj+A2Tw11cwbZGAWxN/Hylg6HR1yrU6GQaIP4mwclcU+fVA1278Rv3KUlK1l0Fa/A8yC8NkYC1/veigFHSCpvT3AV7vkRDf/4uZZcCu5gRqblQV3t/8O55efbZxKbHiuZAiUqcH7REJGbuy/vkbBRLpl/RhIsHQ6r17/h6Q/nB7bbZQMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.684Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:34.215Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA62Sy27CMBBFfyVylyVRbOdVVgXBoos+JChSu0FO7LRWHYcmDjQg/r1jA626gFV3njsnk+s73qGNyKXuF6JpZa3REMUBzQKCBsgIzbQBpalrA7XQpunvOAhJnBUkYjhJwjQXYRhmaYlxkgEkL/Wv4IgBqmoulJvkTiOQVF0wJUAR2n+egVA0ghnBH60lEhLqY+KTdI7pkIRDSoM0jV8Ba9n6LBQF+AAdZ417NNz9OsR5Sgt6k+fYOowozqMIYC7blWL9A6usHca9SmqbRr861LbcD1C90f88EbKQpTwM1Z1SA7Q+LQW7gD4E/Mg0nYBrG2a6Fr5edbmS7Tt0AGeqE611ZMSXuS3JZ9F1W0tNJuPr6czzvXubtzfypnaXHnXB6zff8VtieBXG/DxPrE27KeNc7VBZKy4at0n3SKDdsM3i5MPSEHxrTrbnL09TYIuqDdxrChQ4WC6PSfyVf252ebv7b3cJr33CAgAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:34.215Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:34.216Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Sy26DMBD8FeQeCwjbvMqpiZJDDn1IaSO1l8jgTYsKhmKTlET599pQohwa9dKbPZ6dnZ31AZUVh2LBUTKcJshGW2hkXgmUYBsVVcZUfzmgTVVwaHpuU1UKHW0k2Rb4g35FxCPUwcQh0ROmCfES6rs4Cl7RoFGA5oBwnpcakIqpVmqgbtMil+/ATVdWtCBNHwVf6nZDPrO23RvWbDa9ni8tx7ozDq2JNReq6SzaS4s3p+fvieKlF/DLfGIMZw0wBXza9Y262thivMyFFuO5rAvW3bNyQK0Bzo1mGMQZTiOa0Zs0xZ7nxT7Fqe8bTTDyi5FFfIbD0ItSMKxog3EYaxUFggk1RncyciE76kan7D50PIlqWrBRtRP/7H0HaS661bhxFLg0dsl55W/zXOkj1qTT/v76Ag3brcb9Hs/qxsGeXh7nWiErpdun6da6aL3+GfIcPn4DcthPZ7MCAAA=" - }, - SK: "P", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:34.216Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.705Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXa+UMBD9K6a+AguFFeRpY6KJL2ri9SZqzGaAYVNvP0hbdsUN/90psIkx3uuLb53T6ek5Z9oru2Aj9HSP1gmjWc32SV4lnEXMowbtCbHGeKpRezu97Qh4kXJeZUXVAy+KLk3Tqi3KtgRqEk/tP6dlRk3KdCgXpl69ERIJkqYFWtR0S/zpIwGtRfDYvQ+SeMrzOOMxL+8yXhe83ldJuS++UJuD87+bNq5XE6uvm8J91WZNmbf5y6bJgsIiz5qioOZOuEHC9A5UkAPdMyV0SGMa1jqUc8TMRf9nRkpF9GIl1aOUETvfhpItAT0gXdSDdEi+PfjR0fHOQh+mcwY5ogtyTPMdW38Iifrl9JVG+cMfeiM7tEvsy0TnaMX1qqs1So1a+CkWrdHJoE9sa3jAKVyEysQDnNDtHpvv7oKSaDD2Jl6f1fH4OO3mXyji3K24HlWD9uDET9rJyrzi0c2OQg/BSmOMRNCHwYozDZXV3o54s+LhRBF8/baVIAU4XJB5fWK3QP6ShYXL/RMZzn8qmQMlKXB+1RCxu88fXocglUuWv5JIsnQ8bj5/h+dfsmotBXcDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.705Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.482Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLmi4acKiSQuAASy0qAVtU4mVRm/VHZTrqhyn9nnKQSWrHLhRyizPP4+b03zoWdkQs93qJ1wmhWszLJqyRjEfOoQXtCrDGeatTejh9aAl5vs6xKC75tO3rRU1W7vOQNNYnn1l/SZ0pNyrQoZ6ZOvRcSCZKmAfqo6ZT46xcCGovgsf0UJGXbLI/TLM52N2lWF1ldVsmuLL5Tm4Ph300r19uR1ZdVYVk1Kd/lTf6G8zQoLPKUFwU1t8KdJIwfQQU50L5QQoc0xtNSh3KKmDnr/8xIqYhOLKS6lzJiw3Uo6RzQPdJBHUiH5NuD7x1tby10YToDyB5dkGP4T2z8PiTq590XGuWD33dGtmjn2OeJTtGC60XXcg9iaY4mccORrav3OIZTUJn4BEd0m6eGuzmjbIzC2Jt44TocnuBcnQtFhBvCXz0oSWu6Vxzt3olftFpuyzy6elHoIfjgxkgEvT9ZMdBEWe1tj1cfHo7k/8fdWoIU4HBGpuV+XdP4SxAWzrfPBDg9VjIFSlLg/KIhYjffPr8jwka5ZP5RkuDocFit/glPvwF6hmKrdAMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.482Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:42.214Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61SPW/CMBD9K5E7lkS2E5KQqSAYOvRDokVqF+TEThXVcajtQAPiv/dsQO3ULt18757v3r27A9qJslHDSmjTdAoVaBzFeUTRCFmhmLKA6K6zEAtl9XDLAUjHeUUTxtIUZ6XAGOdZTUg6AVLzW/4KngRIbceF9JX8awqQ7ComBSBChc9LACotmBX8wUmimMYhoSHNnkhcUFwkNCI5fgWaYdu/SedaswEVh2+FpMziKp6UJXEKk5iUSQJk3piNZMM9a50cxoO2Uc6NYXOKXXgcoW6n/rkieNHUzamo6qUcoe1lKcQb9C6gUc2kETC3ZbY38J1rVrvtbJnshXFyrPi0NzX9qPp+7xjz+ex6sQzC4M6ZHUyDhVtkkHjX1Vvo+XtqeYvHbhKnxa3D+tYHVHeSC+3X5S8B0prtVpd+jg3uGrgUq3uQ9vTyuABu1ZrIn0wkodN6fR73J3z8Ah+WbBR+AgAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:42.214Z" - }, - { - index: "root-headless-cms-en-us-modelb", - _md: "2023-12-27T13:23:15.572Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61STU/DMAz9K1U4slZN0tKuJ5i2Awc+JMYkuKC0cSEiTacmpZSJ/47TMcQBIQ7cbMd+7/k5O9K0EvS5JMU+WpAZeYHOqtaQgs6IbivhpmRH6lZL6Kberm0deZ8RK15AXuErYTHjIWUhy9aUF4wXNI1SfnJP9hgasAdMeHuDBeuE6y0WZCdq5xmF7sF6Dgev7jSRsGUDe8KO5XJxvLoJwuDCqwsWwcq4bgxYcHu9PFuvlhO8eQynuaxKXT4M4i9zKL7qQDiQi9ETK7/WSZpXtMx4xedlSeM4zhNOyyRBFqnsVovxUjR+EyGDRhksu3G7z32KmOBpzg9YLOVUyLKiGWLNY8CE+SEwwriDjV9CfvKRFWkWxfPk08dnQOhaaAsz0g7mn8UPUCozbg7nJ2nE88gLVr8tdIQhxSb8P6pW/yypAYfn3GHUiWHz9U1qpeE0FW77lpueFKbXGls0umjRV9f16M/67nqFUFVjo+kqkUb8h4dPhu/l9w8+vp3CBwMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:23:15.572Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.544Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTYvbMBD9K0G92o5lOxuvT6HQQi9toduFbilBtsZBXX0YSU7qBv/3jvwBpXR3L3vzPI3evPdGvpIL1EIP92CdMJpUZJfkZZKRiHjQTHtErDEea9DeDh84AjdplpW0KG+AF7RN07Ssm4wzjk3iufM3+EmxSRkOcmJq1XshASFpGoYfFU6Jv35BoLHAPPBPQVKWZnlMszjb39GsKrJqVyb7XfGAbY6dX25auN4OpLouCndlQ+t93uS3dU2DwiKndVFgMxeuk2z4yFSQw/hGCR3SGLq5DuUYEXPRr8yIqYhWzKS6lzIi53UpdAroEXBQy6QD9O2Z7x1e55a1YTtnJntwQY6pf0LjDyFRP92+4ip/+UNrJAc7xT5tdIxmXM+65ncQO7A4VoJzcaNc0unTZkOWzkcYwkRQJu7YCdz2qUVvLyAboyD2Jp55j8cn+Vf2JQ+hkHo747pXNdiDE7/xhKZleVtGqz8FngVvtTESmD50Vpxxy6TytofVm2cnzOT7j6VkUjAHEzLOb25N6D/hWHa5fybU8V8lY6BEBc7PGiJy9+3zOyQMPqefJ5Ho6XhcjP4Nj38A+G24n4gDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.544Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.524Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY/TMBD8K8g8kqSNk15zeaqQQOIFkDhOAoSqdbKpzPmjst30QpX/zjpJJYS444W37Ox6PDPrXNgZhTTDPTovrWE122RFlXGWsIAGTCDEWRuoRhPc8K4l4GbNeZWXArsSbsv1el2JQgCvaEg+139JnzkNaduimpg6/VYqJEjZBuijplvSz58IaBxCwPZDlMTXvEhznvLtXc7rktebKttuyq805qH/99DC9Xpg9WVRuKmaXGyLprgVIo8KyyIXZUnDrfRHBcN70FEOtC+0NDGN4TjXsRwTZs/mPzNSKrKTM6k5KZWw/rqUfAroAemiDpRH8h0gnDwdbx10cTs9qBP6KMeKH9iEXUw0TKcvtMrHsOusatFNsU8bHZMZN7MuNL101mhas898f2BL+wGHeA1qmx7hgH711HZXZ1SN1ZgGm86Par9/inTxLjUxrgh/9agV9cxJC3Q7L39SNy/49mabXP1oDBC9CGsVgtkdnexpq6wO7oRXLwEOlMG370sJSoLHCRnnN3ZN5C9hODjfPxPi+KeSMVKSAh9mDQm7+/LxDRE22mfTz5JFT/v9YvZ3ePwFS0oiTngDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.524Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.703Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UQBD8K2Z8FFgY2FvkaWOiiS9q4nnJacymgWYz3nxsZgb2cMN/twfYxJjzfPGNru6pqaoeLuyMtdDjHVonjGYV2yZ5mXAWMY8atCfEGuOpRu3t+L4l4CblvMyK8gbbIuvSNC3rhrfQ0JB4rv+SPjMaUqZFOTN16p2QSJA0DdBHRbfEXz4T0FgEj+3HIImnPI8zHvPdbcarglfbMtlti6805mD499DK9WZk1WVVuC2brN7lTf66rrOgsMizuihouBXuJGH8ACrIgfaFEjqkMZ6WOpRTxMxZ/2dGSkV0YiHVvZQRG65LyeaAHpAu6kA6JN8efO/oeGuhC9sZQPboghxT/8DG70Oifj59oVU++n1nZIt2jn3e6BQtuF50teAhFo3RiRuObO094BhaqEx8giO6zd9WuzmjbIzC2Jt4eVGHw5OMq2uhiG5D+KtHJamne1Wj3Tvxk7q7PNvm0dWIQg/BRG2MRND7kxUDrZNV3vZ4NeHhSOa/fV9LkAIczsi0PK5rFE+kYOF890x6059KpkBJCpxfNETs9v7TWyJslEvmvyQJlg6H1evv8PQL5bUc+3EDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.703Z" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.ddbPrimaryTableData.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.ddbPrimaryTableData.ts deleted file mode 100644 index 38b51e896e6..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.ddbPrimaryTableData.ts +++ /dev/null @@ -1,2966 +0,0 @@ -export const ddbPrimaryTableData = [ - { - permissions: [{ name: "*" }], - slug: "full-access", - _et: "SecurityGroup", - name: "Full Access", - _ct: "2023-12-27T12:41:05.020Z", - TYPE: "security.group", - tenant: "root", - system: true, - _md: "2023-12-27T12:41:05.020Z", - createdOn: "2023-12-27T12:41:04.963Z", - GSI1_SK: "full-access", - SK: "A", - description: "Grants full access to all apps.", - webinyVersion: "5.38.2", - id: "658c1b60c39bb10008431b42", - PK: "T#root#GROUP#658c1b60c39bb10008431b42", - GSI1_PK: "T#root#GROUPS" - }, - { - _md: "2023-12-27T12:43:14.870Z", - data: { - path: "/welcome-to-webiny", - value: "658c1bd3c39bb10008431b5b#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - SK: "658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:14.870Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:43:00.024Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "658c1b73c39bb10008431b44" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@title": "Not Found", - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "text@status": "published", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "datetime@savedOn": "2023-12-27T12:43:00.663Z" - }, - "object@location": { "text@folderId": "root" }, - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:43:01.122Z", - TYPE: "L", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - tenant: "root", - _md: "2023-12-27T12:43:01.122Z", - createdOn: "2023-12-27T12:43:00.024Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:43:00.024Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "658c1b73c39bb10008431b44" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@title": "Not Found", - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "text@status": "published", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "datetime@savedOn": "2023-12-27T12:43:00.663Z" - }, - "object@location": { "text@folderId": "root" }, - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:43:01.121Z", - TYPE: "cms.entry", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - tenant: "root", - _md: "2023-12-27T12:43:01.121Z", - createdOn: "2023-12-27T12:43:00.024Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - locale: "en-US", - slug: "static", - layout: "static", - url: "/static/", - _et: "PbCategories", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - name: "Static", - _ct: "2023-12-27T12:42:57.966Z", - TYPE: "pb.category", - tenant: "root", - _md: "2023-12-27T12:42:57.966Z", - createdOn: "2023-12-27T12:42:57.965Z", - SK: "static", - PK: "T#root#L#en-US#PB#C" - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.l", - _md: "2023-12-27T12:43:00.681Z", - SK: "L", - publishedOn: "2023-12-27T12:43:00.663Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/not-found", - savedOn: "2023-12-27T12:43:00.663Z", - locale: "en-US", - pid: "658c1bd3c39bb10008431b5c", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.681Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.964Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.p", - _md: "2023-12-27T12:43:00.682Z", - SK: "P", - publishedOn: "2023-12-27T12:43:00.663Z", - id: "658c1bd3c39bb10008431b5c#0001", - editor: "page-builder", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-12-27T12:43:00.663Z", - pid: "658c1bd3c39bb10008431b5c", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.682Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.964Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page", - _md: "2023-12-27T12:43:00.681Z", - SK: "REV#0001", - publishedOn: "2023-12-27T12:43:00.663Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/not-found", - savedOn: "2023-12-27T12:43:00.663Z", - locale: "en-US", - pid: "658c1bd3c39bb10008431b5c", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.681Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.964Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - title: "Not Found" - }, - { - locale: "en-US", - slug: "main-menu", - _et: "PbMenus", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - items: [], - _ct: "2023-12-27T12:42:59.821Z", - TYPE: "pb.menu", - tenant: "root", - _md: "2023-12-27T12:42:59.821Z", - createdOn: "2023-12-27T12:42:59.821Z", - SK: "main-menu", - description: "The main menu of the website, containing links to most important pages.", - PK: "T#root#L#en-US#PB#M", - title: "Main Menu" - }, - { - _md: "2023-12-27T12:27:56.881Z", - data: { - context: { - logGroupName: "/aws/lambda/wby-data-migration-db1144d", - logStreamName: "2023/12/27/[$LATEST]4230e2d1a850456aa079f8fd4356284d" - }, - id: "658c184c554a6d00083aa519", - finishedOn: "2023-12-27T12:27:56.881Z", - startedOn: "2023-12-27T12:27:56.797Z", - migrations: [ - { id: "5.35.0-001", status: "not-applicable" }, - { id: "5.35.0-002", status: "not-applicable" }, - { id: "5.35.0-003", status: "not-applicable" }, - { id: "5.35.0-004", status: "not-applicable" }, - { id: "5.35.0-005", status: "not-applicable" }, - { id: "5.35.0-006", status: "not-applicable" }, - { id: "5.36.0-001", status: "not-applicable" }, - { id: "5.37.0-001", status: "not-applicable" }, - { id: "5.37.0-002", status: "not-applicable" }, - { id: "5.37.0-003", status: "not-applicable" }, - { id: "5.37.0-004", status: "not-applicable" }, - { id: "5.37.0-005", status: "not-applicable" }, - { id: "5.38.0-001", status: "not-applicable" }, - { id: "5.38.0-002", status: "not-applicable" }, - { id: "5.38.0-003", status: "not-applicable" } - ], - status: "done" - }, - GSI1_SK: "658c184c554a6d00083aa519", - SK: "A", - PK: "MIGRATION_RUN#658c184c554a6d00083aa519", - _et: "MigrationRun", - _ct: "2023-12-27T12:27:56.881Z", - TYPE: "migration.run", - GSI1_PK: "MIGRATION_RUNS" - }, - { - tenant: "root", - _md: "2023-12-27T12:43:01.966Z", - locale: "en-US", - reCaptcha: { secretKey: null, enabled: null, siteKey: null }, - SK: "default", - PK: "T#root#L#en-US#FB#SETTINGS", - _et: "FormBuilderSettings", - _ct: "2023-12-27T12:43:01.966Z", - domain: "https://d3hohw12noi930.cloudfront.net" - }, - { - _md: "2023-12-27T12:43:19.484Z", - data: { path: "/", value: "main-menu", tenant: "root", key: "pb-menu" }, - GSI1_SK: "pb-menu#main-menu#/", - SK: "main-menu#/", - PK: "T#root#PS#TAG#pb-menu#main-menu#/", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:19.484Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - permissions: [], - slug: "anonymous", - _et: "SecurityGroup", - name: "Anonymous", - _ct: "2023-12-27T12:41:05.147Z", - TYPE: "security.group", - tenant: "root", - system: true, - _md: "2023-12-27T12:41:05.147Z", - createdOn: "2023-12-27T12:41:05.146Z", - GSI1_SK: "anonymous", - SK: "A", - description: "Permissions for anonymous users (public access).", - webinyVersion: "5.38.2", - id: "658c1b61c39bb10008431b43", - PK: "T#root#GROUP#658c1b61c39bb10008431b43", - GSI1_PK: "T#root#GROUPS" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@aliases": [], - "number@size": 17711, - "text@name": "security.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.007Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba27", - tenant: "root", - _md: "2023-12-27T12:42:59.007Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba27#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@aliases": [], - "number@size": 17711, - "text@name": "security.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.007Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba27", - tenant: "root", - _md: "2023-12-27T12:42:59.007Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba27#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27" - }, - { - modelId: "modelA", - pluralApiName: "ModelAs", - group: { name: "Ungrouped", id: "658c1bcbc39bb10008431b45" }, - descriptionFieldId: "description", - imageFieldId: "image", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - name: "ModelA", - TYPE: "cms.model", - titleFieldId: "title", - fields: [ - { - multipleValues: false, - listValidation: [], - settings: {}, - renderer: { name: "text-input" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Title", - type: "text", - tags: [], - placeholderText: null, - id: "f2qcuuzs", - validation: [ - { name: "required", message: "Title is a required field.", settings: {} } - ], - storageId: "text@f2qcuuzs", - fieldId: "title" - }, - { - multipleValues: false, - listValidation: [], - settings: {}, - renderer: { name: "long-text-text-area" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Description", - type: "long-text", - tags: [], - placeholderText: null, - id: "z2tdm05d", - validation: [], - storageId: "long-text@z2tdm05d", - fieldId: "description" - }, - { - multipleValues: false, - listValidation: [], - settings: { imagesOnly: true }, - renderer: { name: "file-input" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Image", - type: "file", - tags: [], - placeholderText: null, - id: "8y67xrmj", - validation: [], - storageId: "file@8y67xrmj", - fieldId: "image" - } - ], - _md: "2023-12-27T13:20:12.156Z", - SK: "modelA", - singularApiName: "ModelA", - tags: ["type:model"], - locale: "en-US", - savedOn: "2023-12-27T13:18:39.298Z", - layout: [["f2qcuuzs"], ["z2tdm05d", "8y67xrmj"]], - lockedFields: [ - { multipleValues: false, type: "text", fieldId: "text@f2qcuuzs" }, - { multipleValues: false, type: "long-text", fieldId: "long-text@z2tdm05d" }, - { multipleValues: false, type: "file", fieldId: "file@8y67xrmj" } - ], - _et: "CmsModels", - _ct: "2023-12-27T13:20:12.156Z", - tenant: "root", - createdOn: "2023-12-27T13:18:26.594Z", - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#CMS#CM" - }, - { - modelId: "modelB", - pluralApiName: "ModelBs", - group: { name: "Ungrouped", id: "658c1bcbc39bb10008431b45" }, - descriptionFieldId: "description", - imageFieldId: "image", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - name: "ModelB", - TYPE: "cms.model", - titleFieldId: "title", - fields: [ - { - multipleValues: false, - listValidation: [], - settings: {}, - renderer: { name: "text-input" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Title", - type: "text", - tags: [], - placeholderText: null, - id: "4dep2w2h", - validation: [ - { name: "required", message: "Title is a required field.", settings: {} } - ], - storageId: "text@4dep2w2h", - fieldId: "title" - }, - { - multipleValues: false, - listValidation: [], - settings: {}, - renderer: { name: "long-text-text-area" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Description", - type: "long-text", - tags: [], - placeholderText: null, - id: "7c5t8wwa", - validation: [], - storageId: "long-text@7c5t8wwa", - fieldId: "description" - }, - { - multipleValues: false, - listValidation: [], - settings: { imagesOnly: true }, - renderer: { name: "file-input" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Image", - type: "file", - tags: [], - placeholderText: null, - id: "5atpz8nu", - validation: [], - storageId: "file@5atpz8nu", - fieldId: "image" - } - ], - _md: "2023-12-27T13:22:45.032Z", - SK: "modelB", - singularApiName: "ModelB", - tags: ["type:model"], - locale: "en-US", - savedOn: "2023-12-27T13:21:46.459Z", - layout: [["4dep2w2h"], ["7c5t8wwa", "5atpz8nu"]], - lockedFields: [ - { multipleValues: false, type: "text", fieldId: "text@4dep2w2h" }, - { multipleValues: false, type: "long-text", fieldId: "long-text@7c5t8wwa" }, - { multipleValues: false, type: "file", fieldId: "file@5atpz8nu" } - ], - _et: "CmsModels", - _ct: "2023-12-27T13:22:45.032Z", - tenant: "root", - createdOn: "2023-12-27T13:21:39.663Z", - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#CMS#CM" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@aliases": [], - "number@size": 27804, - "text@name": "developer.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.262Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c721", - tenant: "root", - _md: "2023-12-27T12:42:59.262Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228145f98841000981c721#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@aliases": [], - "number@size": 27804, - "text@name": "developer.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.261Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c721", - tenant: "root", - _md: "2023-12-27T12:42:59.261Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228145f98841000981c721#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:41:24.444Z", - SK: "ADMIN_USERS", - PK: "T#root#SYSTEM", - _et: "AdminUsers.System", - _ct: "2023-12-27T12:41:24.444Z", - TYPE: "adminUsers.system" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:42:51.969Z", - SK: "CMS", - PK: "T#root#SYSTEM", - _et: "CmsSystem", - _ct: "2023-12-27T12:42:51.969Z" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:43:01.981Z", - SK: "FB", - PK: "T#root#SYSTEM", - _et: "FormBuilderSystem", - _ct: "2023-12-27T12:43:01.981Z" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:42:52.301Z", - SK: "FM", - PK: "T#root#SYSTEM", - _et: "System", - _ct: "2023-12-27T12:42:52.301Z" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:42:49.990Z", - SK: "I18N", - PK: "T#root#SYSTEM", - _et: "I18NSystem", - _ct: "2023-12-27T12:42:49.990Z" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:43:01.256Z", - SK: "PB", - PK: "T#root#SYSTEM", - _et: "PbSystem", - _ct: "2023-12-27T12:43:01.256Z" - }, - { - tenant: "root", - version: "5.38.2", - installedOn: "2023-12-27T12:41:05.169Z", - _md: "2023-12-27T12:41:05.169Z", - SK: "SECURITY", - PK: "T#root#SYSTEM", - _et: "SecuritySystem", - _ct: "2023-12-27T12:41:05.169Z" - }, - { - version: "5.38.2", - _md: "2023-12-27T12:40:58.981Z", - SK: "TENANCY", - PK: "T#root#SYSTEM", - _et: "TenancySystem", - _ct: "2023-12-27T12:40:58.981Z" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@aliases": [], - "number@size": 1864, - "text@name": "hero-block-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.903Z", - TYPE: "cms.entry.l", - entryId: "6022814b7a77e60008f70d62", - tenant: "root", - _md: "2023-12-27T12:42:58.903Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814b7a77e60008f70d62#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@aliases": [], - "number@size": 1864, - "text@name": "hero-block-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.903Z", - TYPE: "cms.entry", - entryId: "6022814b7a77e60008f70d62", - tenant: "root", - _md: "2023-12-27T12:42:58.903Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814b7a77e60008f70d62#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@aliases": [], - "number@size": 888, - "text@name": "feature-card-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.944Z", - TYPE: "cms.entry.l", - entryId: "602282e07a77e60008f70d63", - tenant: "root", - _md: "2023-12-27T12:42:58.944Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602282e07a77e60008f70d63#0001", - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@aliases": [], - "number@size": 888, - "text@name": "feature-card-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.944Z", - TYPE: "cms.entry", - entryId: "602282e07a77e60008f70d63", - tenant: "root", - _md: "2023-12-27T12:42:58.944Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602282e07a77e60008f70d63#0001", - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63" - }, - { - _md: "2023-12-27T12:43:14.870Z", - data: { path: "/welcome-to-webiny", value: "main-menu", tenant: "root", key: "pb-menu" }, - GSI1_SK: "pb-menu#main-menu#/welcome-to-webiny", - SK: "main-menu#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-menu#main-menu#/welcome-to-webiny", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:14.870Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:25.735Z", - entryId: "658c24996607be00087f1167", - tenant: "root", - _md: "2023-12-27T13:20:25.735Z", - createdOn: "2023-12-27T13:20:25.235Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - publishedOn: "2023-12-27T13:20:25.701Z", - webinyVersion: "5.38.2", - id: "658c24996607be00087f1167#0001", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:25.724Z", - TYPE: "cms.entry.p", - entryId: "658c24996607be00087f1167", - tenant: "root", - _md: "2023-12-27T13:20:25.724Z", - createdOn: "2023-12-27T13:20:25.235Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "P", - publishedOn: "2023-12-27T13:20:25.701Z", - webinyVersion: "5.38.2", - id: "658c24996607be00087f1167#0001", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:25.723Z", - TYPE: "cms.entry", - entryId: "658c24996607be00087f1167", - tenant: "root", - _md: "2023-12-27T13:20:25.723Z", - createdOn: "2023-12-27T13:20:25.235Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - publishedOn: "2023-12-27T13:20:25.701Z", - webinyVersion: "5.38.2", - id: "658c24996607be00087f1167#0001", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@aliases": [], - "number@size": 28918, - "text@name": "adaptable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.105Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c720", - tenant: "root", - _md: "2023-12-27T12:42:59.105Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228145f98841000981c720#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@aliases": [], - "number@size": 28918, - "text@name": "adaptable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.105Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c720", - tenant: "root", - _md: "2023-12-27T12:42:59.105Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228145f98841000981c720#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@aliases": [], - "number@size": 67402, - "text@name": "permission-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.202Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dab", - tenant: "root", - _md: "2023-12-27T12:42:59.202Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dab#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@aliases": [], - "number@size": 67402, - "text@name": "permission-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.202Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dab", - tenant: "root", - _md: "2023-12-27T12:42:59.202Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dab#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab" - }, - { - tenant: "root", - code: "en-US", - _md: "2023-12-27T12:42:49.523Z", - default: true, - createdOn: "2023-12-27T12:42:48.245Z", - SK: "default", - webinyVersion: "5.38.2", - PK: "T#root#I18N#L#D", - _et: "I18NLocale", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:49.523Z" - }, - { - SK: "default", - eventTargetId: "wby-apw-scheduler-event-rule-target-34a2e04", - PK: "APW#SETTINGS", - mainGraphqlFunctionArn: - "arn:aws:lambda:eu-central-1:674320871285:function:wby-graphql-670ccd3", - eventRuleName: "wby-apw-scheduler-event-rule-3889a7f" - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:43:00.006Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "658c1b73c39bb10008431b44" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@title": "Welcome to Webiny", - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "text@status": "published", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "datetime@savedOn": "2023-12-27T12:43:00.723Z" - }, - "object@location": { "text@folderId": "root" }, - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:43:01.107Z", - TYPE: "L", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - tenant: "root", - _md: "2023-12-27T12:43:01.107Z", - createdOn: "2023-12-27T12:43:00.006Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:43:00.006Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "658c1b73c39bb10008431b44" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@title": "Welcome to Webiny", - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "text@status": "published", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "datetime@savedOn": "2023-12-27T12:43:00.723Z" - }, - "object@location": { "text@folderId": "root" }, - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:43:01.107Z", - TYPE: "cms.entry", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - tenant: "root", - _md: "2023-12-27T12:43:01.107Z", - createdOn: "2023-12-27T12:43:00.006Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - _md: "2023-12-27T12:43:19.454Z", - data: { - path: "/", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { value: "658c1bd3c39bb10008431b5b#0001", key: "pb-page" }, - { value: "main-menu", key: "pb-menu" } - ] - } - }, - { name: "graphql.json", type: "application/json", meta: {} } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/", - SK: "A", - PK: "T#root#PS#RENDER#/", - _et: "PrerenderingServiceRender", - _ct: "2023-12-27T12:43:19.454Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.l", - _md: "2023-12-27T12:43:00.864Z", - SK: "L", - publishedOn: "2023-12-27T12:43:00.723Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/welcome-to-webiny", - savedOn: "2023-12-27T12:43:00.723Z", - locale: "en-US", - pid: "658c1bd3c39bb10008431b5b", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.864Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.947Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - title: "Welcome to Webiny" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.p", - _md: "2023-12-27T12:43:00.881Z", - SK: "P", - publishedOn: "2023-12-27T12:43:00.723Z", - id: "658c1bd3c39bb10008431b5b#0001", - editor: "page-builder", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-12-27T12:43:00.723Z", - pid: "658c1bd3c39bb10008431b5b", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.881Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.947Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - title: "Welcome to Webiny" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page", - _md: "2023-12-27T12:43:00.864Z", - SK: "REV#0001", - publishedOn: "2023-12-27T12:43:00.723Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/welcome-to-webiny", - savedOn: "2023-12-27T12:43:00.723Z", - locale: "en-US", - pid: "658c1bd3c39bb10008431b5b", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.864Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.947Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - title: "Welcome to Webiny" - }, - { - _et: "SecurityIdentity2Tenant", - _ct: "2023-12-27T12:41:24.428Z", - tenant: "root", - identity: "658c1b73c39bb10008431b44", - _md: "2023-12-27T12:41:24.428Z", - createdOn: "2023-12-27T12:41:24.428Z", - data: { - teams: [], - groups: [{ permissions: [{ name: "*" }], id: "658c1b60c39bb10008431b42" }] - }, - GSI1_SK: "TYPE#group#IDENTITY#658c1b73c39bb10008431b44", - SK: "LINK#T#root", - webinyVersion: "5.38.2", - PK: "IDENTITY#658c1b73c39bb10008431b44", - type: "group", - GSI1_PK: "T#root" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@aliases": [], - "number@size": 33888, - "text@name": "scaffolding.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.041Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba26", - tenant: "root", - _md: "2023-12-27T12:42:59.041Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba26#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@aliases": [], - "number@size": 33888, - "text@name": "scaffolding.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.023Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba26", - tenant: "root", - _md: "2023-12-27T12:42:59.023Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba26#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26" - }, - { - _md: "2023-12-27T12:43:23.802Z", - data: { - path: "/not-found", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { value: "658c1bd3c39bb10008431b5c#0001", key: "pb-page" }, - { value: "main-menu", key: "pb-menu" } - ] - } - }, - { name: "graphql.json", type: "application/json", meta: {} } - ], - locale: "en-US", - tenant: "root", - tags: [{ value: true, key: "notFoundPage" }] - }, - GSI1_SK: "/not-found", - SK: "A", - PK: "T#root#PS#RENDER#/not-found", - _et: "PrerenderingServiceRender", - _ct: "2023-12-27T12:43:23.802Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@aliases": [], - "number@size": 60602, - "text@name": "cost-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.122Z", - TYPE: "cms.entry.l", - entryId: "6022814851197600081724ae", - tenant: "root", - _md: "2023-12-27T12:42:59.122Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814851197600081724ae#0001", - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@aliases": [], - "number@size": 60602, - "text@name": "cost-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.121Z", - TYPE: "cms.entry", - entryId: "6022814851197600081724ae", - tenant: "root", - _md: "2023-12-27T12:42:59.121Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814851197600081724ae#0001", - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae" - }, - { - icon: "fas/star", - savedOn: "2023-12-27T12:42:51.921Z", - locale: "en-US", - slug: "ungrouped", - _et: "CmsGroups", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - name: "Ungrouped", - _ct: "2023-12-27T12:42:51.962Z", - TYPE: "cms.group", - tenant: "root", - _md: "2023-12-27T12:42:51.962Z", - createdOn: "2023-12-27T12:42:51.921Z", - SK: "658c1bcbc39bb10008431b45", - description: "A generic content model group", - webinyVersion: "5.38.2", - id: "658c1bcbc39bb10008431b45", - PK: "T#root#L#en-US#CMS#CMG" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@aliases": [], - "number@size": 3661, - "text@name": "webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.964Z", - TYPE: "cms.entry.l", - entryId: "6022814a0df4b000088735bb", - tenant: "root", - _md: "2023-12-27T12:42:58.964Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814a0df4b000088735bb#0001", - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@aliases": [], - "number@size": 3661, - "text@name": "webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.964Z", - TYPE: "cms.entry", - entryId: "6022814a0df4b000088735bb", - tenant: "root", - _md: "2023-12-27T12:42:58.964Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814a0df4b000088735bb#0001", - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb" - }, - { - _md: "2023-12-27T12:43:14.832Z", - data: { - path: "/welcome-to-webiny", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { value: "658c1bd3c39bb10008431b5b#0001", key: "pb-page" }, - { value: "main-menu", key: "pb-menu" } - ] - } - }, - { name: "graphql.json", type: "application/json", meta: {} } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/welcome-to-webiny", - SK: "A", - PK: "T#root#PS#RENDER#/welcome-to-webiny", - _et: "PrerenderingServiceRender", - _ct: "2023-12-27T12:43:14.831Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:12.835Z", - entryId: "658c248b6607be00087f1166", - tenant: "root", - _md: "2023-12-27T13:20:12.835Z", - createdOn: "2023-12-27T13:20:11.821Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - publishedOn: "2023-12-27T13:20:12.775Z", - webinyVersion: "5.38.2", - id: "658c248b6607be00087f1166#0001", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:12.803Z", - TYPE: "cms.entry.p", - entryId: "658c248b6607be00087f1166", - tenant: "root", - _md: "2023-12-27T13:20:12.803Z", - createdOn: "2023-12-27T13:20:11.821Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "P", - publishedOn: "2023-12-27T13:20:12.775Z", - webinyVersion: "5.38.2", - id: "658c248b6607be00087f1166#0001", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:12.803Z", - TYPE: "cms.entry", - entryId: "658c248b6607be00087f1166", - tenant: "root", - _md: "2023-12-27T13:20:12.803Z", - createdOn: "2023-12-27T13:20:11.821Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - publishedOn: "2023-12-27T13:20:12.775Z", - webinyVersion: "5.38.2", - id: "658c248b6607be00087f1166#0001", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@aliases": [], - "number@size": 390, - "text@name": "pink-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.004Z", - TYPE: "cms.entry.l", - entryId: "60228148f98841000981c723", - tenant: "root", - _md: "2023-12-27T12:42:59.004Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228148f98841000981c723#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@aliases": [], - "number@size": 390, - "text@name": "pink-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.004Z", - TYPE: "cms.entry", - entryId: "60228148f98841000981c723", - tenant: "root", - _md: "2023-12-27T12:42:59.004Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228148f98841000981c723#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@aliases": [], - "number@size": 1758, - "text@name": "serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.065Z", - TYPE: "cms.entry.l", - entryId: "602281486639200009fd35eb", - tenant: "root", - _md: "2023-12-27T12:42:59.065Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486639200009fd35eb#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@aliases": [], - "number@size": 1758, - "text@name": "serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.065Z", - TYPE: "cms.entry", - entryId: "602281486639200009fd35eb", - tenant: "root", - _md: "2023-12-27T12:42:59.065Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486639200009fd35eb#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@aliases": [], - "number@size": 90163, - "text@name": "webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.984Z", - TYPE: "cms.entry.l", - entryId: "6022814891bd1300087bd24c", - tenant: "root", - _md: "2023-12-27T12:42:58.984Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814891bd1300087bd24c#0001", - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@aliases": [], - "number@size": 90163, - "text@name": "webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.984Z", - TYPE: "cms.entry", - entryId: "6022814891bd1300087bd24c", - tenant: "root", - _md: "2023-12-27T12:42:58.984Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814891bd1300087bd24c#0001", - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@aliases": [], - "number@size": 30007, - "text@name": "octo-cat.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.281Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c71f", - tenant: "root", - _md: "2023-12-27T12:42:59.281Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228145f98841000981c71f#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@aliases": [], - "number@size": 30007, - "text@name": "octo-cat.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.281Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c71f", - tenant: "root", - _md: "2023-12-27T12:42:59.281Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228145f98841000981c71f#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f" - }, - { - _md: "2023-12-27T12:27:56.852Z", - data: { - description: "starting point for applicable migrations detection", - reason: "initial migration", - id: "5.38.2-000", - finishedOn: "2023-12-27T12:27:56.852Z", - startedOn: "2023-12-27T12:27:56.852Z" - }, - GSI1_SK: "5.38.2-000", - SK: "A", - PK: "MIGRATION#5.38.2-000", - _et: "Migration", - _ct: "2023-12-27T12:27:56.852Z", - TYPE: "migration", - GSI1_PK: "MIGRATIONS" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@aliases": [], - "number@size": 392, - "text@name": "cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.081Z", - TYPE: "cms.entry.l", - entryId: "602281486639200009fd35ec", - tenant: "root", - _md: "2023-12-27T12:42:59.081Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486639200009fd35ec#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@aliases": [], - "number@size": 392, - "text@name": "cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.068Z", - TYPE: "cms.entry", - entryId: "602281486639200009fd35ec", - tenant: "root", - _md: "2023-12-27T12:42:59.068Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486639200009fd35ec#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec" - }, - { - _md: "2023-12-27T12:43:23.860Z", - data: { - path: "/not-found", - value: "658c1bd3c39bb10008431b5c#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5c#0001#/not-found", - SK: "658c1bd3c39bb10008431b5c#0001#/not-found", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5c#0001#/not-found", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:23.860Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:22:46.130Z", - entryId: "658c2524adbc1700090e1ad1", - tenant: "root", - _md: "2023-12-27T13:22:46.130Z", - createdOn: "2023-12-27T13:22:44.672Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - publishedOn: "2023-12-27T13:22:46.091Z", - webinyVersion: "5.38.2", - id: "658c2524adbc1700090e1ad1#0001", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1" - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:22:46.115Z", - TYPE: "cms.entry.p", - entryId: "658c2524adbc1700090e1ad1", - tenant: "root", - _md: "2023-12-27T13:22:46.115Z", - createdOn: "2023-12-27T13:22:44.672Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "P", - publishedOn: "2023-12-27T13:22:46.091Z", - webinyVersion: "5.38.2", - id: "658c2524adbc1700090e1ad1#0001", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1" - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:22:46.114Z", - TYPE: "cms.entry", - entryId: "658c2524adbc1700090e1ad1", - tenant: "root", - _md: "2023-12-27T13:22:46.114Z", - createdOn: "2023-12-27T13:22:44.672Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - publishedOn: "2023-12-27T13:22:46.091Z", - webinyVersion: "5.38.2", - id: "658c2524adbc1700090e1ad1#0001", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@aliases": [], - "number@size": 7806, - "text@name": "scalable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.102Z", - TYPE: "cms.entry.l", - entryId: "60228148fa244d0008c47c79", - tenant: "root", - _md: "2023-12-27T12:42:59.102Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228148fa244d0008c47c79#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@aliases": [], - "number@size": 7806, - "text@name": "scalable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.101Z", - TYPE: "cms.entry", - entryId: "60228148fa244d0008c47c79", - tenant: "root", - _md: "2023-12-27T12:42:59.101Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228148fa244d0008c47c79#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@aliases": [], - "number@size": 27878, - "text@name": "idp.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.146Z", - TYPE: "cms.entry.l", - entryId: "60228148f98841000981c724", - tenant: "root", - _md: "2023-12-27T12:42:59.146Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228148f98841000981c724#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@aliases": [], - "number@size": 27878, - "text@name": "idp.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.146Z", - TYPE: "cms.entry", - entryId: "60228148f98841000981c724", - tenant: "root", - _md: "2023-12-27T12:42:59.146Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228148f98841000981c724#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724" - }, - { - _md: "2023-12-27T12:43:19.484Z", - data: { path: "/", value: "658c1bd3c39bb10008431b5b#0001", tenant: "root", key: "pb-page" }, - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5b#0001#/", - SK: "658c1bd3c39bb10008431b5b#0001#/", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5b#0001#/", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:19.484Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - tenant: "root", - code: "en-US", - _md: "2023-12-27T12:42:49.523Z", - default: true, - createdOn: "2023-12-27T12:42:48.245Z", - SK: "en-US", - webinyVersion: "5.38.2", - PK: "T#root#I18N#L", - _et: "I18NLocale", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:49.523Z" - }, - { - SK: "default", - PK: "ADMIN#SETTINGS", - data: { appUrl: "https://d3hohw12noi930.cloudfront.net" } - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.p.path", - _md: "2023-12-27T12:43:00.682Z", - SK: "/not-found", - publishedOn: "2023-12-27T12:43:00.663Z", - id: "658c1bd3c39bb10008431b5c#0001", - editor: "page-builder", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-12-27T12:43:00.663Z", - pid: "658c1bd3c39bb10008431b5c", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.682Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.964Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#PATH", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.p.path", - _md: "2023-12-27T12:43:00.881Z", - SK: "/welcome-to-webiny", - publishedOn: "2023-12-27T12:43:00.723Z", - id: "658c1bd3c39bb10008431b5b#0001", - editor: "page-builder", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-12-27T12:43:00.723Z", - pid: "658c1bd3c39bb10008431b5b", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.881Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.947Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#PATH", - title: "Welcome to Webiny" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:34.204Z", - entryId: "658c24a16607be00087f1168", - tenant: "root", - _md: "2023-12-27T13:20:34.204Z", - createdOn: "2023-12-27T13:20:33.775Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - publishedOn: "2023-12-27T13:20:34.175Z", - webinyVersion: "5.38.2", - id: "658c24a16607be00087f1168#0001", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:34.199Z", - TYPE: "cms.entry.p", - entryId: "658c24a16607be00087f1168", - tenant: "root", - _md: "2023-12-27T13:20:34.199Z", - createdOn: "2023-12-27T13:20:33.775Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "P", - publishedOn: "2023-12-27T13:20:34.175Z", - webinyVersion: "5.38.2", - id: "658c24a16607be00087f1168#0001", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:34.199Z", - TYPE: "cms.entry", - entryId: "658c24a16607be00087f1168", - tenant: "root", - _md: "2023-12-27T13:20:34.199Z", - createdOn: "2023-12-27T13:20:33.775Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - publishedOn: "2023-12-27T13:20:34.175Z", - webinyVersion: "5.38.2", - id: "658c24a16607be00087f1168#0001", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@aliases": [], - "number@size": 17382, - "text@name": "community-icon.png", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.301Z", - TYPE: "cms.entry.l", - entryId: "60228148fa244d0008c47c7a", - tenant: "root", - _md: "2023-12-27T12:42:59.301Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228148fa244d0008c47c7a#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@aliases": [], - "number@size": 17382, - "text@name": "community-icon.png", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.301Z", - TYPE: "cms.entry", - entryId: "60228148fa244d0008c47c7a", - tenant: "root", - _md: "2023-12-27T12:42:59.301Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228148fa244d0008c47c7a#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a" - }, - { - _md: "2023-12-27T12:40:58.922Z", - data: { - parent: null, - settings: { domains: [] }, - webinyVersion: "5.38.2", - savedOn: "2023-12-27T12:40:58.921Z", - name: "Root", - description: "The top-level Webiny tenant.", - id: "root", - createdOn: "2023-12-27T12:40:58.921Z", - tags: [], - status: "active" - }, - GSI1_SK: "T#null#2023-12-27T12:40:58.921Z", - SK: "A", - PK: "T#root", - _et: "TenancyTenant", - _ct: "2023-12-27T12:40:58.922Z", - TYPE: "tenancy.tenant", - GSI1_PK: "TENANTS" - }, - { - _md: "2023-12-27T12:43:01.222Z", - data: { - pages: { notFound: "658c1bd3c39bb10008431b5c", home: "658c1bd3c39bb10008431b5b" }, - websiteUrl: null, - name: "devr", - prerendering: { app: { url: null }, meta: {}, storage: { name: null } }, - locale: "en-US", - type: "default", - tenant: "root" - }, - SK: "A", - PK: "T#root#L#en-US#PB#SETTINGS", - _et: "PbSettings", - _ct: "2023-12-27T12:43:01.222Z", - TYPE: "pb.settings" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@aliases": [], - "number@size": 5053, - "text@name": "webiny-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.924Z", - TYPE: "cms.entry.l", - entryId: "6022814b0df4b000088735bc", - tenant: "root", - _md: "2023-12-27T12:42:58.924Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814b0df4b000088735bc#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@aliases": [], - "number@size": 5053, - "text@name": "webiny-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.924Z", - TYPE: "cms.entry", - entryId: "6022814b0df4b000088735bc", - tenant: "root", - _md: "2023-12-27T12:42:58.924Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814b0df4b000088735bc#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc" - }, - { - _md: "2023-12-27T12:42:52.281Z", - data: { - srcPrefix: "https://d3oted5odtbsmd.cloudfront.net/files/", - uploadMinFileSize: 0, - uploadMaxFileSize: 10737418240, - tenant: "root" - }, - SK: "A", - PK: "T#root#FM#SETTINGS", - _et: "FM.Settings", - _ct: "2023-12-27T12:42:52.281Z", - TYPE: "fm.settings" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:42.180Z", - locale: "en-US", - status: "draft", - values: { - "long-text@z2tdm05d": { compression: "gzip", value: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:42.181Z", - TYPE: "cms.entry.l", - entryId: "658c24aa6607be00087f1169", - tenant: "root", - _md: "2023-12-27T13:20:42.181Z", - createdOn: "2023-12-27T13:20:42.180Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "658c24aa6607be00087f1169#0001", - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:42.180Z", - locale: "en-US", - status: "draft", - values: { - "long-text@z2tdm05d": { compression: "gzip", value: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:42.181Z", - TYPE: "cms.entry", - entryId: "658c24aa6607be00087f1169", - tenant: "root", - _md: "2023-12-27T13:20:42.181Z", - createdOn: "2023-12-27T13:20:42.180Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "658c24aa6607be00087f1169#0001", - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169" - }, - { - SK: "default", - PK: "PS#SETTINGS", - data: { - bucket: "wby-delivery-68ac55a", - cloudfrontId: "E12G8OCR2J2BDW", - appUrl: "https://d1c9xtq19d4x6u.cloudfront.net", - deliveryUrl: "https://d1jwcc7rxvj5th.cloudfront.net", - sqsQueueUrl: - "https://sqs.eu-central-1.amazonaws.com/674320871285/wby-ps-render-queue-bcd2dfd.fifo" - } - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:23:15.536Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "file@5atpz8nu": null, - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQA3yyBkIAAAAA==" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:23:15.570Z", - TYPE: "L", - entryId: "658c2531adbc1700090e1ad2", - tenant: "root", - _md: "2023-12-27T13:23:15.570Z", - createdOn: "2023-12-27T13:22:57.094Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "658c2531adbc1700090e1ad2#0001", - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:23:15.536Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "file@5atpz8nu": null, - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQA3yyBkIAAAAA==" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:23:15.570Z", - TYPE: "cms.entry", - entryId: "658c2531adbc1700090e1ad2", - tenant: "root", - _md: "2023-12-27T13:23:15.570Z", - createdOn: "2023-12-27T13:22:57.094Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "658c2531adbc1700090e1ad2#0001", - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@aliases": [], - "number@size": 108898, - "text@name": "webiny-serverless-cms.png ", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.062Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dad", - tenant: "root", - _md: "2023-12-27T12:42:59.062Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dad#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@aliases": [], - "number@size": 108898, - "text@name": "webiny-serverless-cms.png ", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.061Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dad", - tenant: "root", - _md: "2023-12-27T12:42:59.061Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dad#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad" - }, - { - _md: "2023-12-27T12:43:23.860Z", - data: { path: "/not-found", value: "main-menu", tenant: "root", key: "pb-menu" }, - GSI1_SK: "pb-menu#main-menu#/not-found", - SK: "main-menu#/not-found", - PK: "T#root#PS#TAG#pb-menu#main-menu#/not-found", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:23.860Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@aliases": [], - "number@size": 132767, - "text@name": "environments.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.045Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba28", - tenant: "root", - _md: "2023-12-27T12:42:59.045Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba28#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@aliases": [], - "number@size": 132767, - "text@name": "environments.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.045Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba28", - tenant: "root", - _md: "2023-12-27T12:42:59.045Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba28#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@aliases": [], - "number@size": 73153, - "text@name": "data-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.161Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dac", - tenant: "root", - _md: "2023-12-27T12:42:59.161Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dac#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@aliases": [], - "number@size": 73153, - "text@name": "data-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.161Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dac", - tenant: "root", - _md: "2023-12-27T12:42:59.161Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dac#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac" - }, - { - _md: "2023-12-27T12:41:24.417Z", - data: { - firstName: "ad", - lastName: "min", - createdBy: null, - webinyVersion: "5.38.2", - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - createdOn: "2023-12-27T12:41:23.982Z", - email: "admin@webiny.com", - tenant: "root", - group: "658c1b60c39bb10008431b42" - }, - GSI1_SK: "admin@webiny.com", - SK: "A", - PK: "T#root#ADMIN_USER#658c1b73c39bb10008431b44", - _et: "AdminUsers.User", - _ct: "2023-12-27T12:41:24.417Z", - TYPE: "adminUsers.user", - GSI1_PK: "T#root#ADMIN_USERS" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts deleted file mode 100644 index 01ef5abf8d9..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts +++ /dev/null @@ -1,148 +0,0 @@ -export const headlessCmsAcoSearchRecordPbPage = [ - { - _index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b:L", - _score: 1.0, - _source: { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T12:43:00.006Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "text@type": "PbPage", - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "object@location": { - "text@folderId": "root" - }, - "object@data": { - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@title": "Welcome to Webiny", - "object@createdBy": { - "text@id": "658c1b73c39bb10008431b44", - "text@displayName": "ad min", - "text@type": "admin" - }, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "text@status": "published", - "number@version": 1, - "boolean@locked": true, - "text@path": "/welcome-to-webiny" - }, - "text@tags": [] - }, - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - tenant: "root", - createdOn: "2023-12-27T12:43:00.006Z", - locked: false, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - modifiedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@data": { - "object@createdBy": {} - } - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c:L", - _score: 1.0, - _source: { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T12:43:00.024Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "text@type": "PbPage", - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "object@location": { - "text@folderId": "root" - }, - "object@data": { - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@title": "Not Found", - "object@createdBy": { - "text@id": "658c1b73c39bb10008431b44", - "text@displayName": "ad min", - "text@type": "admin" - }, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "text@status": "published", - "number@version": 1, - "boolean@locked": true, - "text@path": "/not-found" - }, - "text@tags": [] - }, - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - tenant: "root", - createdOn: "2023-12-27T12:43:00.024Z", - locked: false, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - modifiedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@data": { - "object@createdBy": {} - } - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.es-index-root-headless-cms-en-us-fmfile.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.es-index-root-headless-cms-en-us-fmfile.ts deleted file mode 100644 index 6da9a8108bb..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.es-index-root-headless-cms-en-us-fmfile.ts +++ /dev/null @@ -1,1150 +0,0 @@ -export const headlessCmsFmFile = [ - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814b0df4b000088735bc", - id: "6022814b0df4b000088735bc#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "webiny-logo.svg", - "text@key": - "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@type": "image/svg+xml", - "number@size": 5053, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486639200009fd35ec", - id: "602281486639200009fd35ec#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "cms-benefits-shape.svg", - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "number@size": 392, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228148f98841000981c723:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228148f98841000981c723", - id: "60228148f98841000981c723#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "pink-shape.svg", - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@type": "image/svg+xml", - "number@size": 390, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602282e07a77e60008f70d63", - id: "602282e07a77e60008f70d63#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "feature-card-bg.svg", - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@type": "image/svg+xml", - "number@size": 888, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228145f98841000981c720:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228145f98841000981c720", - id: "60228145f98841000981c720#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "adaptable-icon.svg", - "text@key": - "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@type": "image/svg+xml", - "number@size": 28918, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486ed41f0008bc2dab", - id: "602281486ed41f0008bc2dab#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "permission-icon.svg", - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@type": "image/svg+xml", - "number@size": 67402, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486639200009fd35eb", - id: "602281486639200009fd35eb#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "serverless-cms-logo.svg", - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "number@size": 1758, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814bef4a940008b3ba28", - id: "6022814bef4a940008b3ba28#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "environments.svg", - "text@key": - "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@type": "image/svg+xml", - "number@size": 132767, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486ed41f0008bc2dad", - id: "602281486ed41f0008bc2dad#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "webiny-serverless-cms.png ", - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@type": "image/png", - "number@size": 108898, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228148fa244d0008c47c7a", - id: "60228148fa244d0008c47c7a#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "community-icon.png", - "text@key": - "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@type": "image/png", - "number@size": 17382, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228145f98841000981c721:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228145f98841000981c721", - id: "60228145f98841000981c721#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "developer.svg", - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@type": "image/svg+xml", - "number@size": 27804, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228145f98841000981c71f", - id: "60228145f98841000981c71f#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "octo-cat.svg", - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@type": "image/svg+xml", - "number@size": 30007, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486ed41f0008bc2dac", - id: "602281486ed41f0008bc2dac#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "data-icon.svg", - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@type": "image/svg+xml", - "number@size": 73153, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814891bd1300087bd24c", - id: "6022814891bd1300087bd24c#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "webiny-infrastructure-overview.svg", - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "number@size": 90163, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814b7a77e60008f70d62", - id: "6022814b7a77e60008f70d62#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "hero-block-bg.svg", - "text@key": - "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@type": "image/svg+xml", - "number@size": 1864, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814bef4a940008b3ba26", - id: "6022814bef4a940008b3ba26#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "scaffolding.svg", - "text@key": - "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@type": "image/svg+xml", - "number@size": 33888, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814851197600081724ae:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814851197600081724ae", - id: "6022814851197600081724ae#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "cost-icon.svg", - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@type": "image/svg+xml", - "number@size": 60602, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228148fa244d0008c47c79", - id: "60228148fa244d0008c47c79#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "scalable-icon.svg", - "text@key": - "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@type": "image/svg+xml", - "number@size": 7806, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814bef4a940008b3ba27", - id: "6022814bef4a940008b3ba27#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "security.svg", - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@type": "image/svg+xml", - "number@size": 17711, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228148f98841000981c724:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228148f98841000981c724", - id: "60228148f98841000981c724#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "idp.svg", - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@type": "image/svg+xml", - "number@size": 27878, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814a0df4b000088735bb", - id: "6022814a0df4b000088735bb#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "webiny-serverless-application-framework.svg", - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "number@size": 3661, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.es-index-root-headless-cms-en-us-modela.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.es-index-root-headless-cms-en-us-modela.ts deleted file mode 100644 index 01c1fe4eab5..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.es-index-root-headless-cms-en-us-modela.ts +++ /dev/null @@ -1,292 +0,0 @@ -export const headlessCmsModelA = [ - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167:P", - _score: 1.0, - _source: { - modelId: "modelA", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 2", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2" - }, - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - entryId: "658c24996607be00087f1167", - tenant: "root", - createdOn: "2023-12-27T13:20:25.235Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - webinyVersion: "5.38.2", - id: "658c24996607be00087f1167#0001", - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - published: true, - TYPE: "cms.entry.p", - __type: "cms.entry.p" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166:P", - _score: 1.0, - _source: { - modelId: "modelA", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 1", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1" - }, - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - entryId: "658c248b6607be00087f1166", - tenant: "root", - createdOn: "2023-12-27T13:20:11.821Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - webinyVersion: "5.38.2", - id: "658c248b6607be00087f1166#0001", - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - published: true, - TYPE: "cms.entry.p", - __type: "cms.entry.p" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c248b6607be00087f1166", - id: "658c248b6607be00087f1166#0001", - modelId: "modelA", - locale: "en-US", - createdOn: "2023-12-27T13:20:11.821Z", - savedOn: "2023-12-27T13:20:12.775Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: true, - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 1", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - publishedOn: "2023-12-27T13:20:12.775Z" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c24a16607be00087f1168", - id: "658c24a16607be00087f1168#0001", - modelId: "modelA", - locale: "en-US", - createdOn: "2023-12-27T13:20:33.775Z", - savedOn: "2023-12-27T13:20:34.175Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: true, - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 3", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - publishedOn: "2023-12-27T13:20:34.175Z" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c24aa6607be00087f1169", - id: "658c24aa6607be00087f1169#0001", - modelId: "modelA", - locale: "en-US", - createdOn: "2023-12-27T13:20:42.180Z", - savedOn: "2023-12-27T13:20:42.180Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 4", - "long-text@z2tdm05d": "" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168:P", - _score: 1.0, - _source: { - modelId: "modelA", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 3", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2" - }, - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - entryId: "658c24a16607be00087f1168", - tenant: "root", - createdOn: "2023-12-27T13:20:33.775Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - webinyVersion: "5.38.2", - id: "658c24a16607be00087f1168#0001", - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - published: true, - TYPE: "cms.entry.p", - __type: "cms.entry.p" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c24996607be00087f1167", - id: "658c24996607be00087f1167#0001", - modelId: "modelA", - locale: "en-US", - createdOn: "2023-12-27T13:20:25.235Z", - savedOn: "2023-12-27T13:20:25.701Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: true, - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 2", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - publishedOn: "2023-12-27T13:20:25.701Z" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.es-index-root-headless-cms-en-us-modelb.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.es-index-root-headless-cms-en-us-modelb.ts deleted file mode 100644 index 2242004e3dc..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.es-index-root-headless-cms-en-us-modelb.ts +++ /dev/null @@ -1,133 +0,0 @@ -export const headlessCmsModelB = [ - { - _index: "root-headless-cms-en-us-modelb", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c2524adbc1700090e1ad1", - id: "658c2524adbc1700090e1ad1#0001", - modelId: "modelB", - locale: "en-US", - createdOn: "2023-12-27T13:22:44.672Z", - savedOn: "2023-12-27T13:22:46.091Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: true, - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - publishedOn: "2023-12-27T13:22:46.091Z" - } - }, - { - _index: "root-headless-cms-en-us-modelb", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1:P", - _score: 1.0, - _source: { - modelId: "modelB", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1" - }, - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - entryId: "658c2524adbc1700090e1ad1", - tenant: "root", - createdOn: "2023-12-27T13:22:44.672Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - webinyVersion: "5.38.2", - id: "658c2524adbc1700090e1ad1#0001", - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - published: true, - TYPE: "cms.entry.p", - __type: "cms.entry.p" - } - }, - { - _index: "root-headless-cms-en-us-modelb", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2:L", - _score: 1.0, - _source: { - modelId: "modelB", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:23:15.536Z", - locale: "en-US", - status: "draft", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED", - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 2 UPDATED" - }, - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - entryId: "658c2531adbc1700090e1ad2", - tenant: "root", - createdOn: "2023-12-27T13:22:57.094Z", - locked: false, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - webinyVersion: "5.38.2", - id: "658c2531adbc1700090e1ad2#0001", - modifiedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - meta: {}, - rawValues: { - "file@5atpz8nu": null - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.test.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.test.ts deleted file mode 100644 index 3adcb037ed1..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/001.test.ts +++ /dev/null @@ -1,285 +0,0 @@ -import { Sort as ElasticsearchSort } from "elastic-ts"; -import { - assertNotError, - createDdbEsMigrationHandler, - getDynamoToEsTable, - importElasticsearchTestData, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { CmsEntriesInitNewMetaFields_5_39_2_001 } from "~/migrations/5.39.2/001/ddb-es"; - -import { transferDynamoDbToElasticsearch } from "~tests/utils/insertElasticsearchTestData"; -import { esGetIndexSettings } from "~/utils"; -import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; -import { getRecordIndexName } from "~tests/migrations/5.37.0/002/ddb-es/helpers"; -import { listElasticsearchItems } from "~tests/utils/listElasticsearchItems"; -import { getDecompressedData } from "~tests/migrations/5.37.0/003/ddb-es/getDecompressedData"; - -// Test data. -import { ddbPrimaryTableData } from "./001.ddbPrimaryTableData"; -import { ddbEsTableData } from "./001.ddbEsTableData"; -import { headlessCmsAcoSearchRecordPbPage } from "./001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage"; -import { headlessCmsFmFile } from "./001.es-index-root-headless-cms-en-us-fmfile"; -import { headlessCmsModelA } from "./001.es-index-root-headless-cms-en-us-modela"; -import { headlessCmsModelB } from "./001.es-index-root-headless-cms-en-us-modelb"; - -// Migrated test data. -import { ddbPrimaryTableDataMigrated } from "./migrated/001.ddbPrimaryTableData"; -import { ddbEsTableDataMigrated } from "./migrated/001.ddbEsTableData"; -import { headlessCmsAcoSearchRecordPbPageMigrated } from "./migrated/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage"; -import { headlessCmsFmFileMigrated } from "./migrated/001.es-index-root-headless-cms-en-us-fmfile"; -import { headlessCmsModelAMigrated } from "./migrated/001.es-index-root-headless-cms-en-us-modela"; -import { headlessCmsModelBMigrated } from "./migrated/001.es-index-root-headless-cms-en-us-modelb"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -// Ensures that either both modifiedOn and modifiedBy fields are set or none is set. -const expectModifiedFieldsAreSynced = (entry: Record) => { - const hasRevisionModifiedOn = !!entry.revisionModifiedOn; - const hasRevisionModifiedBy = !!entry.revisionModifiedBy; - expect(hasRevisionModifiedBy).toBe(hasRevisionModifiedOn); - - const hasEntryModifiedOn = !!entry.entryModifiedOn; - const hasEntryModifiedBy = !!entry.entryModifiedBy; - expect(hasEntryModifiedOn).toBe(hasEntryModifiedBy); -}; - -describe("5.39.2-001", () => { - const primaryTable = getPrimaryDynamoDbTable(); - const dynamoToEsTable = getDynamoToEsTable(); - const elasticsearchClient = createElasticsearchClient(); - - const insertAllTestData = async () => { - await insertTestData(primaryTable, ddbPrimaryTableData); - await insertTestData(dynamoToEsTable, ddbEsTableData); - - const esIndexData = { - "acosearchrecord-pbpage": headlessCmsAcoSearchRecordPbPage, - fmfile: headlessCmsFmFile, - modela: headlessCmsModelA, - modelb: headlessCmsModelB - }; - - for (const indexName in esIndexData) { - await importElasticsearchTestData( - elasticsearchClient, - esIndexData[indexName as keyof typeof esIndexData] - ); - } - - await elasticsearchClient.indices.refreshAll(); - }; - - beforeAll(async () => { - process.env.ELASTIC_SEARCH_INDEX_PREFIX = - new Date().toISOString().replace(/\.|\:/g, "-").toLowerCase() + "-"; - - await elasticsearchClient.indices.deleteAll(); - }); - afterEach(async () => { - await elasticsearchClient.indices.deleteAll(); - }); - - logTestNameBeforeEachTest(); - - it("should not run if no entries without new meta fields were found", async () => { - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [CmsEntriesInitNewMetaFields_5_39_2_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertAllTestData(); - - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [CmsEntriesInitNewMetaFields_5_39_2_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const primaryTableData = await scanTable(primaryTable, { - limit: 1_000_000 - }); - - // Primary DynamoDB table test data has migration-related items - // filtered out. We need to do the same here. - expect(primaryTableData.filter(item => !item.TYPE?.startsWith("migration"))).toEqual( - ddbPrimaryTableDataMigrated - ); - - const ddbEsTableRecordsCompressed = await scanTable(dynamoToEsTable, { - limit: 1_000_000 - }); - - const ddbEsTableRecordsDecompressed = await Promise.all( - ddbEsTableRecordsCompressed.map(async item => { - if (!item.PK.includes("#CMS#CME#")) { - return item; - } - - const decompressed = await getDecompressedData(item.data); - return { - ...item, - data: decompressed - }; - }) - ); - - expect(ddbEsTableRecordsDecompressed).toEqual(ddbEsTableDataMigrated); - - // In the following lines, we're going to check if the data in Elasticsearch is correct. - await transferDynamoDbToElasticsearch( - elasticsearchClient, - dynamoToEsTable, - getRecordIndexName - ); - - const indexes = new Set(); - for (const record of ddbEsTableData) { - const entry = await getDecompressedData(record.data); - if (entry && entry.modelId) { - indexes.add(getRecordIndexName(entry)); - } - } - - expect(indexes.size).toBe(4); - - const [ - headlessCmsAcoSearchRecordPbPageIndexName, - headlessCmsFmFileIndexName, - headlessCmsModelAIndexName, - headlessCmsModelBIndexName - ] = indexes; - - // Ensure correct data ended up in Elasticsearch. - const sort = [ - { - "id.keyword": { order: "desc", unmapped_type: "keyword" }, - "TYPE.keyword": { order: "asc", unmapped_type: "keyword" } - } - ] as ElasticsearchSort; - - // 1. Check ACO Search Record PB Page index. - const migratedHeadlessCmsAcoSearchRecordPbPageRecords = await listElasticsearchItems({ - client: elasticsearchClient, - index: headlessCmsAcoSearchRecordPbPageIndexName, - body: { sort } - }); - - expect(migratedHeadlessCmsAcoSearchRecordPbPageRecords).toBeArrayOfSize(2); - expect(migratedHeadlessCmsAcoSearchRecordPbPageRecords).toEqual( - headlessCmsAcoSearchRecordPbPageMigrated - ); - - headlessCmsAcoSearchRecordPbPageMigrated.forEach(expectModifiedFieldsAreSynced); - - // 2. Check FM File index. - const migratedHeadlessCmsFmFileRecords = await listElasticsearchItems({ - client: elasticsearchClient, - index: headlessCmsFmFileIndexName, - body: { sort } - }); - - expect(migratedHeadlessCmsFmFileRecords).toBeArrayOfSize(21); - expect(migratedHeadlessCmsFmFileRecords).toEqual(headlessCmsFmFileMigrated); - - headlessCmsFmFileMigrated.forEach(expectModifiedFieldsAreSynced); - - // 3. Check Model A index. - const migratedHeadlessCmsModelARecords = await listElasticsearchItems({ - client: elasticsearchClient, - index: headlessCmsModelAIndexName, - body: { sort } - }); - - expect(migratedHeadlessCmsModelARecords).toBeArrayOfSize(7); - expect(migratedHeadlessCmsModelARecords).toEqual(headlessCmsModelAMigrated); - - headlessCmsModelAMigrated.forEach(expectModifiedFieldsAreSynced); - - // 4. Check Model B index. - const migratedHeadlessCmsModelBRecords = await listElasticsearchItems({ - client: elasticsearchClient, - index: headlessCmsModelBIndexName, - body: { sort } - }); - - expect(migratedHeadlessCmsModelBRecords).toBeArrayOfSize(3); - expect(migratedHeadlessCmsModelBRecords).toEqual(headlessCmsModelBMigrated); - - headlessCmsModelBMigrated.forEach(expectModifiedFieldsAreSynced); - - /** - * Test that all indexes have the expected settings after the migration. - */ - for (const index of indexes) { - const settings = await esGetIndexSettings({ - elasticsearchClient, - index, - fields: ["number_of_replicas", "refresh_interval"] - }); - expect(Number(settings?.number_of_replicas)).toBeGreaterThanOrEqual(1); - expect(settings?.refresh_interval).not.toBe(-1); - const interval = parseInt((settings?.refresh_interval as string).replace("s", "")); - expect(interval).toBeGreaterThanOrEqual(1); - } - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertAllTestData(); - - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [CmsEntriesInitNewMetaFields_5_39_2_001] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.ddbEsTableData.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.ddbEsTableData.ts deleted file mode 100644 index ef3ea1c02ff..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.ddbEsTableData.ts +++ /dev/null @@ -1,3016 +0,0 @@ -// Note that the data is decompressed. -export const ddbEsTableDataMigrated = [ - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - SK: "L", - created: "2023-12-27T12:43:01.141Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.024Z", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - firstPublishedBy: null, - firstPublishedOn: null, - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.024Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@data": { - "object@createdBy": {} - }, - "object@location": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.024Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.024Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.024Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.024Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@status": "published", - "text@title": "Not Found" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@tags": [], - "text@title": "Not Found", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - modified: "2023-12-27T12:43:01.141Z" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "L", - _ct: "2023-12-27T12:43:00.682Z", - _et: "PbPagesEs", - _md: "2023-12-27T12:43:00.682Z", - data: { - __type: "page", - category: "static", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - images: {}, - latest: true, - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - snippet: null, - status: "published", - tags: [], - tenant: "root", - title: "Not Found", - titleLC: "not found", - version: 1, - webinyVersion: "5.38.2" - }, - index: "root-en-us-page-builder" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "P", - _ct: "2023-12-27T12:43:00.682Z", - _et: "PbPagesEs", - _md: "2023-12-27T12:43:00.682Z", - data: { - __type: "page", - category: "static", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - images: {}, - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - published: true, - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - snippet: null, - status: "published", - tags: [], - tenant: "root", - title: "Not Found", - titleLC: "not found", - version: 1, - webinyVersion: "5.38.2" - }, - index: "root-en-us-page-builder" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - SK: "L", - created: "2023-12-27T12:42:59.522Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba27", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba27#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17711, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@name": "security.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.522Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - SK: "L", - created: "2023-12-27T12:42:59.706Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c721", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c721#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27804, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@name": "developer.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.706Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - SK: "L", - created: "2023-12-27T12:42:59.361Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814b7a77e60008f70d62", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814b7a77e60008f70d62#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1864, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@name": "hero-block-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.361Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - SK: "L", - created: "2023-12-27T12:42:59.486Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602282e07a77e60008f70d63", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602282e07a77e60008f70d63#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@name": "feature-card-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.486Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "L", - created: "2023-12-27T13:20:25.736Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:25.736Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "P", - created: "2023-12-27T13:20:25.737Z", - data: { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:25.737Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - SK: "L", - created: "2023-12-27T12:42:59.543Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c720", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c720#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 28918, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@name": "adaptable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.543Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - SK: "L", - created: "2023-12-27T12:42:59.702Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dab", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dab#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 67402, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@name": "permission-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.702Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - SK: "L", - created: "2023-12-27T12:43:01.123Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.006Z", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - firstPublishedBy: null, - firstPublishedOn: null, - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.006Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@data": { - "object@createdBy": {} - }, - "object@location": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.006Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.006Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.006Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.006Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@status": "published", - "text@title": "Welcome to Webiny" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@tags": [], - "text@title": "Welcome to Webiny", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - modified: "2023-12-27T12:43:01.123Z" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "L", - _ct: "2023-12-27T12:43:00.864Z", - _et: "PbPagesEs", - _md: "2023-12-27T12:43:00.864Z", - data: { - __type: "page", - category: "static", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - images: {}, - latest: true, - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - snippet: null, - status: "published", - tags: [], - tenant: "root", - title: "Welcome to Webiny", - titleLC: "welcome to webiny", - version: 1, - webinyVersion: "5.38.2" - }, - index: "root-en-us-page-builder" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "P", - _ct: "2023-12-27T12:43:00.864Z", - _et: "PbPagesEs", - _md: "2023-12-27T12:43:00.864Z", - data: { - __type: "page", - category: "static", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - images: {}, - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - published: true, - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - snippet: null, - status: "published", - tags: [], - tenant: "root", - title: "Welcome to Webiny", - titleLC: "welcome to webiny", - version: 1, - webinyVersion: "5.38.2" - }, - index: "root-en-us-page-builder" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - SK: "L", - created: "2023-12-27T12:42:59.525Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba26", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba26#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 33888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@name": "scaffolding.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.525Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - SK: "L", - created: "2023-12-27T12:42:59.561Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814851197600081724ae", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814851197600081724ae#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 60602, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@name": "cost-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.561Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - SK: "L", - created: "2023-12-27T12:42:59.487Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814a0df4b000088735bb", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814a0df4b000088735bb#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 3661, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@name": "webiny-serverless-application-framework.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.487Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "L", - created: "2023-12-27T13:20:12.855Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1", - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:12.855Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "P", - created: "2023-12-27T13:20:12.874Z", - data: { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1", - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:12.874Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - SK: "L", - created: "2023-12-27T12:42:59.488Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148f98841000981c723", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148f98841000981c723#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 390, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@name": "pink-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.488Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - SK: "L", - created: "2023-12-27T12:42:59.527Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486639200009fd35eb", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486639200009fd35eb#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1758, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@name": "serverless-cms-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.527Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - SK: "L", - created: "2023-12-27T12:42:59.523Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814891bd1300087bd24c", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814891bd1300087bd24c#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 90163, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@name": "webiny-infrastructure-overview.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.523Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - SK: "L", - created: "2023-12-27T12:42:59.563Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c71f", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c71f#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 30007, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@name": "octo-cat.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.563Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - SK: "L", - created: "2023-12-27T12:42:59.541Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486639200009fd35ec", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486639200009fd35ec#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 392, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@name": "cms-benefits-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.541Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "L", - created: "2023-12-27T13:22:46.132Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1", - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modelb", - modified: "2023-12-27T13:22:46.132Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "P", - created: "2023-12-27T13:22:46.134Z", - data: { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1", - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modelb", - modified: "2023-12-27T13:22:46.134Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - SK: "L", - created: "2023-12-27T12:42:59.528Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148fa244d0008c47c79", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148fa244d0008c47c79#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 7806, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@name": "scalable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.528Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - SK: "L", - created: "2023-12-27T12:42:59.684Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148f98841000981c724", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148f98841000981c724#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27878, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@name": "idp.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.684Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "L", - created: "2023-12-27T13:20:34.215Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:34.215Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "P", - created: "2023-12-27T13:20:34.216Z", - data: { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:34.216Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - SK: "L", - created: "2023-12-27T12:42:59.705Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148fa244d0008c47c7a", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148fa244d0008c47c7a#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17382, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@name": "community-icon.png", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.705Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - SK: "L", - created: "2023-12-27T12:42:59.482Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814b0df4b000088735bc", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814b0df4b000088735bc#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 5053, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@name": "webiny-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.482Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169", - SK: "L", - created: "2023-12-27T13:20:42.214Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:42.180Z", - entryId: "658c24aa6607be00087f1169", - firstPublishedBy: null, - firstPublishedOn: null, - id: "658c24aa6607be00087f1169#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:42.180Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:42.180Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:42.180Z", - status: "draft", - tenant: "root", - values: { - "long-text@z2tdm05d": "", - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:42.214Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - SK: "L", - created: "2023-12-27T13:23:15.572Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:57.094Z", - entryId: "658c2531adbc1700090e1ad2", - firstPublishedBy: null, - firstPublishedOn: null, - id: "658c2531adbc1700090e1ad2#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "modelB", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:15.536Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "file@5atpz8nu": null - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:57.094Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:15.536Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:15.536Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:23:15.536Z", - status: "draft", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 2 UPDATED", - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modelb", - modified: "2023-12-27T13:23:15.572Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - SK: "L", - created: "2023-12-27T12:42:59.544Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dad", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dad#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 108898, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@name": "webiny-serverless-cms.png ", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.544Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - SK: "L", - created: "2023-12-27T12:42:59.524Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba28", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba28#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 132767, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@name": "environments.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.524Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - SK: "L", - created: "2023-12-27T12:42:59.703Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dac", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dac#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 73153, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@name": "data-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.703Z" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.ddbPrimaryTableData.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.ddbPrimaryTableData.ts deleted file mode 100644 index 5df7307d1b1..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.ddbPrimaryTableData.ts +++ /dev/null @@ -1,5458 +0,0 @@ -// We commented migrations-related records because of constant changes in these. -export const ddbPrimaryTableDataMigrated = [ - { - GSI1_PK: "T#root#GROUPS", - GSI1_SK: "full-access", - PK: "T#root#GROUP#658c1b60c39bb10008431b42", - SK: "A", - TYPE: "security.group", - _ct: "2023-12-27T12:41:05.020Z", - _et: "SecurityGroup", - _md: "2023-12-27T12:41:05.020Z", - createdOn: "2023-12-27T12:41:04.963Z", - description: "Grants full access to all apps.", - id: "658c1b60c39bb10008431b42", - name: "Full Access", - permissions: [ - { - name: "*" - } - ], - slug: "full-access", - system: true, - tenant: "root", - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - SK: "658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:14.870Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:14.870Z", - data: { - key: "pb-page", - path: "/welcome-to-webiny", - tenant: "root", - value: "658c1bd3c39bb10008431b5b#0001" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:43:01.122Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.024Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:43:01.122Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.024Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.024Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.024Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.024Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.024Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@status": "published", - "text@title": "Not Found" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@tags": [], - "text@title": "Not Found", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:43:01.121Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.024Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:43:01.121Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.024Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.024Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.024Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.024Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.024Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@status": "published", - "text@title": "Not Found" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@tags": [], - "text@title": "Not Found", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#C", - SK: "static", - TYPE: "pb.category", - _ct: "2023-12-27T12:42:57.966Z", - _et: "PbCategories", - _md: "2023-12-27T12:42:57.966Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:57.965Z", - layout: "static", - locale: "en-US", - name: "Static", - slug: "static", - tenant: "root", - url: "/static/" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "L", - TYPE: "pb.page.l", - _ct: "2023-12-27T12:43:00.681Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.681Z", - category: "static", - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Not Found", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "P", - TYPE: "pb.page.p", - _ct: "2023-12-27T12:43:00.682Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.682Z", - category: "static", - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Not Found", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "REV#0001", - TYPE: "pb.page", - _ct: "2023-12-27T12:43:00.681Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.681Z", - category: "static", - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Not Found", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#M", - SK: "main-menu", - TYPE: "pb.menu", - _ct: "2023-12-27T12:42:59.821Z", - _et: "PbMenus", - _md: "2023-12-27T12:42:59.821Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.821Z", - description: "The main menu of the website, containing links to most important pages.", - items: [], - locale: "en-US", - slug: "main-menu", - tenant: "root", - title: "Main Menu" - }, - { - PK: "T#root#L#en-US#FB#SETTINGS", - SK: "default", - _ct: "2023-12-27T12:43:01.966Z", - _et: "FormBuilderSettings", - _md: "2023-12-27T12:43:01.966Z", - domain: "https://d3hohw12noi930.cloudfront.net", - locale: "en-US", - reCaptcha: { - enabled: null, - secretKey: null, - siteKey: null - }, - tenant: "root" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-menu#main-menu#/", - PK: "T#root#PS#TAG#pb-menu#main-menu#/", - SK: "main-menu#/", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:19.484Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:19.484Z", - data: { - key: "pb-menu", - path: "/", - tenant: "root", - value: "main-menu" - } - }, - { - GSI1_PK: "T#root#GROUPS", - GSI1_SK: "anonymous", - PK: "T#root#GROUP#658c1b61c39bb10008431b43", - SK: "A", - TYPE: "security.group", - _ct: "2023-12-27T12:41:05.147Z", - _et: "SecurityGroup", - _md: "2023-12-27T12:41:05.147Z", - createdOn: "2023-12-27T12:41:05.146Z", - description: "Permissions for anonymous users (public access).", - id: "658c1b61c39bb10008431b43", - name: "Anonymous", - permissions: [], - slug: "anonymous", - system: true, - tenant: "root", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.007Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba27", - id: "6022814bef4a940008b3ba27#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.007Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17711, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@name": "security.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.007Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba27", - id: "6022814bef4a940008b3ba27#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.007Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17711, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@name": "security.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CM", - SK: "modelA", - TYPE: "cms.model", - _ct: "2023-12-27T13:20:12.156Z", - _et: "CmsModels", - _md: "2023-12-27T13:20:12.156Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:18:26.594Z", - descriptionFieldId: "description", - fields: [ - { - fieldId: "title", - helpText: null, - id: "f2qcuuzs", - label: "Title", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "text-input" - }, - settings: {}, - storageId: "text@f2qcuuzs", - tags: [], - type: "text", - validation: [ - { - message: "Title is a required field.", - name: "required", - settings: {} - } - ] - }, - { - fieldId: "description", - helpText: null, - id: "z2tdm05d", - label: "Description", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "long-text-text-area" - }, - settings: {}, - storageId: "long-text@z2tdm05d", - tags: [], - type: "long-text", - validation: [] - }, - { - fieldId: "image", - helpText: null, - id: "8y67xrmj", - label: "Image", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "file-input" - }, - settings: { - imagesOnly: true - }, - storageId: "file@8y67xrmj", - tags: [], - type: "file", - validation: [] - } - ], - group: { - id: "658c1bcbc39bb10008431b45", - name: "Ungrouped" - }, - imageFieldId: "image", - layout: [["f2qcuuzs"], ["z2tdm05d", "8y67xrmj"]], - locale: "en-US", - lockedFields: [ - { - fieldId: "text@f2qcuuzs", - multipleValues: false, - type: "text" - }, - { - fieldId: "long-text@z2tdm05d", - multipleValues: false, - type: "long-text" - }, - { - fieldId: "file@8y67xrmj", - multipleValues: false, - type: "file" - } - ], - modelId: "modelA", - name: "ModelA", - pluralApiName: "ModelAs", - savedOn: "2023-12-27T13:18:39.298Z", - singularApiName: "ModelA", - tags: ["type:model"], - tenant: "root", - titleFieldId: "title", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CM", - SK: "modelB", - TYPE: "cms.model", - _ct: "2023-12-27T13:22:45.032Z", - _et: "CmsModels", - _md: "2023-12-27T13:22:45.032Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:21:39.663Z", - descriptionFieldId: "description", - fields: [ - { - fieldId: "title", - helpText: null, - id: "4dep2w2h", - label: "Title", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "text-input" - }, - settings: {}, - storageId: "text@4dep2w2h", - tags: [], - type: "text", - validation: [ - { - message: "Title is a required field.", - name: "required", - settings: {} - } - ] - }, - { - fieldId: "description", - helpText: null, - id: "7c5t8wwa", - label: "Description", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "long-text-text-area" - }, - settings: {}, - storageId: "long-text@7c5t8wwa", - tags: [], - type: "long-text", - validation: [] - }, - { - fieldId: "image", - helpText: null, - id: "5atpz8nu", - label: "Image", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "file-input" - }, - settings: { - imagesOnly: true - }, - storageId: "file@5atpz8nu", - tags: [], - type: "file", - validation: [] - } - ], - group: { - id: "658c1bcbc39bb10008431b45", - name: "Ungrouped" - }, - imageFieldId: "image", - layout: [["4dep2w2h"], ["7c5t8wwa", "5atpz8nu"]], - locale: "en-US", - lockedFields: [ - { - fieldId: "text@4dep2w2h", - multipleValues: false, - type: "text" - }, - { - fieldId: "long-text@7c5t8wwa", - multipleValues: false, - type: "long-text" - }, - { - fieldId: "file@5atpz8nu", - multipleValues: false, - type: "file" - } - ], - modelId: "modelB", - name: "ModelB", - pluralApiName: "ModelBs", - savedOn: "2023-12-27T13:21:46.459Z", - singularApiName: "ModelB", - tags: ["type:model"], - tenant: "root", - titleFieldId: "title", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.262Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c721", - id: "60228145f98841000981c721#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.262Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27804, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@name": "developer.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.261Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c721", - id: "60228145f98841000981c721#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.261Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27804, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@name": "developer.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "ADMIN_USERS", - TYPE: "adminUsers.system", - _ct: "2023-12-27T12:41:24.444Z", - _et: "AdminUsers.System", - _md: "2023-12-27T12:41:24.444Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "CMS", - _ct: "2023-12-27T12:42:51.969Z", - _et: "CmsSystem", - _md: "2023-12-27T12:42:51.969Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "FB", - _ct: "2023-12-27T12:43:01.981Z", - _et: "FormBuilderSystem", - _md: "2023-12-27T12:43:01.981Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "FM", - _ct: "2023-12-27T12:42:52.301Z", - _et: "System", - _md: "2023-12-27T12:42:52.301Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "I18N", - _ct: "2023-12-27T12:42:49.990Z", - _et: "I18NSystem", - _md: "2023-12-27T12:42:49.990Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "PB", - _ct: "2023-12-27T12:43:01.256Z", - _et: "PbSystem", - _md: "2023-12-27T12:43:01.256Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "SECURITY", - _ct: "2023-12-27T12:41:05.169Z", - _et: "SecuritySystem", - _md: "2023-12-27T12:41:05.169Z", - installedOn: "2023-12-27T12:41:05.169Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "TENANCY", - _ct: "2023-12-27T12:40:58.981Z", - _et: "TenancySystem", - _md: "2023-12-27T12:40:58.981Z", - version: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.903Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814b7a77e60008f70d62", - id: "6022814b7a77e60008f70d62#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.903Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1864, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@name": "hero-block-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.903Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814b7a77e60008f70d62", - id: "6022814b7a77e60008f70d62#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.903Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1864, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@name": "hero-block-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.944Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602282e07a77e60008f70d63", - id: "602282e07a77e60008f70d63#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.944Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@name": "feature-card-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.944Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602282e07a77e60008f70d63", - id: "602282e07a77e60008f70d63#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.944Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@name": "feature-card-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-menu#main-menu#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-menu#main-menu#/welcome-to-webiny", - SK: "main-menu#/welcome-to-webiny", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:14.870Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:14.870Z", - data: { - key: "pb-menu", - path: "/welcome-to-webiny", - tenant: "root", - value: "main-menu" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:25.735Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entity: "CmsEntries", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:25.735Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:20:25.724Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entity: "CmsEntries", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:25.724Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:25.723Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entity: "CmsEntries", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:25.723Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.105Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c720", - id: "60228145f98841000981c720#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.105Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 28918, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@name": "adaptable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.105Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c720", - id: "60228145f98841000981c720#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.105Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 28918, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@name": "adaptable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.202Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dab", - id: "602281486ed41f0008bc2dab#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.202Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 67402, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@name": "permission-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.202Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dab", - id: "602281486ed41f0008bc2dab#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.202Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 67402, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@name": "permission-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#I18N#L#D", - SK: "default", - _ct: "2023-12-27T12:42:49.523Z", - _et: "I18NLocale", - _md: "2023-12-27T12:42:49.523Z", - code: "en-US", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:48.245Z", - default: true, - tenant: "root", - webinyVersion: "5.38.2" - }, - { - PK: "APW#SETTINGS", - SK: "default", - eventRuleName: "wby-apw-scheduler-event-rule-3889a7f", - eventTargetId: "wby-apw-scheduler-event-rule-target-34a2e04", - mainGraphqlFunctionArn: - "arn:aws:lambda:eu-central-1:674320871285:function:wby-graphql-670ccd3" - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:43:01.107Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.006Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:43:01.107Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.006Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.006Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.006Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.006Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.006Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@status": "published", - "text@title": "Welcome to Webiny" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@tags": [], - "text@title": "Welcome to Webiny", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:43:01.107Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.006Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:43:01.107Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.006Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.006Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.006Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.006Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.006Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@status": "published", - "text@title": "Welcome to Webiny" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@tags": [], - "text@title": "Welcome to Webiny", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#RENDER", - GSI1_SK: "/", - PK: "T#root#PS#RENDER#/", - SK: "A", - TYPE: "ps.render", - _ct: "2023-12-27T12:43:19.454Z", - _et: "PrerenderingServiceRender", - _md: "2023-12-27T12:43:19.454Z", - data: { - files: [ - { - meta: { - tags: [ - { - key: "pb-page", - value: "658c1bd3c39bb10008431b5b#0001" - }, - { - key: "pb-menu", - value: "main-menu" - } - ] - }, - name: "index.html", - type: "text/html" - }, - { - meta: {}, - name: "graphql.json", - type: "application/json" - } - ], - locale: "en-US", - path: "/", - tenant: "root" - } - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "L", - TYPE: "pb.page.l", - _ct: "2023-12-27T12:43:00.864Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.864Z", - category: "static", - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Welcome to Webiny", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "P", - TYPE: "pb.page.p", - _ct: "2023-12-27T12:43:00.881Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.881Z", - category: "static", - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Welcome to Webiny", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "REV#0001", - TYPE: "pb.page", - _ct: "2023-12-27T12:43:00.864Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.864Z", - category: "static", - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Welcome to Webiny", - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root", - GSI1_SK: "TYPE#group#IDENTITY#658c1b73c39bb10008431b44", - PK: "IDENTITY#658c1b73c39bb10008431b44", - SK: "LINK#T#root", - _ct: "2023-12-27T12:41:24.428Z", - _et: "SecurityIdentity2Tenant", - _md: "2023-12-27T12:41:24.428Z", - createdOn: "2023-12-27T12:41:24.428Z", - data: { - groups: [ - { - id: "658c1b60c39bb10008431b42", - permissions: [ - { - name: "*" - } - ] - } - ], - teams: [] - }, - identity: "658c1b73c39bb10008431b44", - tenant: "root", - type: "group", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.041Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba26", - id: "6022814bef4a940008b3ba26#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.041Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 33888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@name": "scaffolding.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.023Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba26", - id: "6022814bef4a940008b3ba26#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.023Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 33888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@name": "scaffolding.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#RENDER", - GSI1_SK: "/not-found", - PK: "T#root#PS#RENDER#/not-found", - SK: "A", - TYPE: "ps.render", - _ct: "2023-12-27T12:43:23.802Z", - _et: "PrerenderingServiceRender", - _md: "2023-12-27T12:43:23.802Z", - data: { - files: [ - { - meta: { - tags: [ - { - key: "pb-page", - value: "658c1bd3c39bb10008431b5c#0001" - }, - { - key: "pb-menu", - value: "main-menu" - } - ] - }, - name: "index.html", - type: "text/html" - }, - { - meta: {}, - name: "graphql.json", - type: "application/json" - } - ], - locale: "en-US", - path: "/not-found", - tags: [ - { - key: "notFoundPage", - value: true - } - ], - tenant: "root" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.122Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814851197600081724ae", - id: "6022814851197600081724ae#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.122Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 60602, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@name": "cost-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.121Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814851197600081724ae", - id: "6022814851197600081724ae#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.121Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 60602, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@name": "cost-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CMG", - SK: "658c1bcbc39bb10008431b45", - TYPE: "cms.group", - _ct: "2023-12-27T12:42:51.962Z", - _et: "CmsGroups", - _md: "2023-12-27T12:42:51.962Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:51.921Z", - description: "A generic content model group", - icon: "fas/star", - id: "658c1bcbc39bb10008431b45", - locale: "en-US", - name: "Ungrouped", - savedOn: "2023-12-27T12:42:51.921Z", - slug: "ungrouped", - tenant: "root", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.964Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814a0df4b000088735bb", - id: "6022814a0df4b000088735bb#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.964Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 3661, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@name": "webiny-serverless-application-framework.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.964Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814a0df4b000088735bb", - id: "6022814a0df4b000088735bb#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.964Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 3661, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@name": "webiny-serverless-application-framework.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#RENDER", - GSI1_SK: "/welcome-to-webiny", - PK: "T#root#PS#RENDER#/welcome-to-webiny", - SK: "A", - TYPE: "ps.render", - _ct: "2023-12-27T12:43:14.831Z", - _et: "PrerenderingServiceRender", - _md: "2023-12-27T12:43:14.832Z", - data: { - files: [ - { - meta: { - tags: [ - { - key: "pb-page", - value: "658c1bd3c39bb10008431b5b#0001" - }, - { - key: "pb-menu", - value: "main-menu" - } - ] - }, - name: "index.html", - type: "text/html" - }, - { - meta: {}, - name: "graphql.json", - type: "application/json" - } - ], - locale: "en-US", - path: "/welcome-to-webiny", - tenant: "root" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:12.835Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entity: "CmsEntries", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:12.835Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:12.775Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:20:12.803Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entity: "CmsEntries", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:12.803Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:12.775Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:12.803Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entity: "CmsEntries", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:12.803Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:12.775Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.004Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c723", - id: "60228148f98841000981c723#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.004Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 390, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@name": "pink-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.004Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c723", - id: "60228148f98841000981c723#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.004Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 390, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@name": "pink-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.065Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35eb", - id: "602281486639200009fd35eb#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.065Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1758, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@name": "serverless-cms-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.065Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35eb", - id: "602281486639200009fd35eb#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.065Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1758, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@name": "serverless-cms-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.984Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814891bd1300087bd24c", - id: "6022814891bd1300087bd24c#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.984Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 90163, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@name": "webiny-infrastructure-overview.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.984Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814891bd1300087bd24c", - id: "6022814891bd1300087bd24c#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.984Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 90163, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@name": "webiny-infrastructure-overview.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.281Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c71f", - id: "60228145f98841000981c71f#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.281Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 30007, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@name": "octo-cat.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.281Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c71f", - id: "60228145f98841000981c71f#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.281Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 30007, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@name": "octo-cat.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.081Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35ec", - id: "602281486639200009fd35ec#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.081Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 392, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@name": "cms-benefits-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.068Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35ec", - id: "602281486639200009fd35ec#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.068Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 392, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@name": "cms-benefits-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5c#0001#/not-found", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5c#0001#/not-found", - SK: "658c1bd3c39bb10008431b5c#0001#/not-found", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:23.860Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:23.860Z", - data: { - key: "pb-page", - path: "/not-found", - tenant: "root", - value: "658c1bd3c39bb10008431b5c#0001" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:22:46.130Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entity: "CmsEntries", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modified: "2023-12-27T13:22:46.130Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:22:46.115Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entity: "CmsEntries", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modified: "2023-12-27T13:22:46.115Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:22:46.114Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entity: "CmsEntries", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modified: "2023-12-27T13:22:46.114Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.102Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c79", - id: "60228148fa244d0008c47c79#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.102Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 7806, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@name": "scalable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.101Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c79", - id: "60228148fa244d0008c47c79#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.101Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 7806, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@name": "scalable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.146Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c724", - id: "60228148f98841000981c724#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.146Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27878, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@name": "idp.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.146Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c724", - id: "60228148f98841000981c724#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.146Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27878, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@name": "idp.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5b#0001#/", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5b#0001#/", - SK: "658c1bd3c39bb10008431b5b#0001#/", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:19.484Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:19.484Z", - data: { - key: "pb-page", - path: "/", - tenant: "root", - value: "658c1bd3c39bb10008431b5b#0001" - } - }, - { - PK: "T#root#I18N#L", - SK: "en-US", - _ct: "2023-12-27T12:42:49.523Z", - _et: "I18NLocale", - _md: "2023-12-27T12:42:49.523Z", - code: "en-US", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:48.245Z", - default: true, - tenant: "root", - webinyVersion: "5.38.2" - }, - { - PK: "ADMIN#SETTINGS", - SK: "default", - data: { - appUrl: "https://d3hohw12noi930.cloudfront.net" - } - }, - { - PK: "T#root#L#en-US#PB#PATH", - SK: "/not-found", - TYPE: "pb.page.p.path", - _ct: "2023-12-27T12:43:00.682Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.682Z", - category: "static", - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Not Found", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#PATH", - SK: "/welcome-to-webiny", - TYPE: "pb.page.p.path", - _ct: "2023-12-27T12:43:00.881Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.881Z", - category: "static", - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Welcome to Webiny", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:34.204Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entity: "CmsEntries", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:34.204Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:20:34.199Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entity: "CmsEntries", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:34.199Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:34.199Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entity: "CmsEntries", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:34.199Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.301Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c7a", - id: "60228148fa244d0008c47c7a#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.301Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17382, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@name": "community-icon.png", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.301Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c7a", - id: "60228148fa244d0008c47c7a#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.301Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17382, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@name": "community-icon.png", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-12-27T12:40:58.921Z", - PK: "T#root", - SK: "A", - TYPE: "tenancy.tenant", - _ct: "2023-12-27T12:40:58.922Z", - _et: "TenancyTenant", - _md: "2023-12-27T12:40:58.922Z", - data: { - createdOn: "2023-12-27T12:40:58.921Z", - description: "The top-level Webiny tenant.", - id: "root", - name: "Root", - parent: null, - savedOn: "2023-12-27T12:40:58.921Z", - settings: { - domains: [] - }, - status: "active", - tags: [], - webinyVersion: "5.38.2" - } - }, - { - PK: "T#root#L#en-US#PB#SETTINGS", - SK: "A", - TYPE: "pb.settings", - _ct: "2023-12-27T12:43:01.222Z", - _et: "PbSettings", - _md: "2023-12-27T12:43:01.222Z", - data: { - locale: "en-US", - name: "devr", - pages: { - home: "658c1bd3c39bb10008431b5b", - notFound: "658c1bd3c39bb10008431b5c" - }, - prerendering: { - app: { - url: null - }, - meta: {}, - storage: { - name: null - } - }, - tenant: "root", - type: "default", - websiteUrl: null - } - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.924Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814b0df4b000088735bc", - id: "6022814b0df4b000088735bc#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.924Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 5053, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@name": "webiny-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.924Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814b0df4b000088735bc", - id: "6022814b0df4b000088735bc#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.924Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 5053, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@name": "webiny-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#FM#SETTINGS", - SK: "A", - TYPE: "fm.settings", - _ct: "2023-12-27T12:42:52.281Z", - _et: "FM.Settings", - _md: "2023-12-27T12:42:52.281Z", - data: { - srcPrefix: "https://d3oted5odtbsmd.cloudfront.net/files/", - tenant: "root", - uploadMaxFileSize: 10737418240, - uploadMinFileSize: 0 - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:42.181Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:42.180Z", - entity: "CmsEntries", - entryId: "658c24aa6607be00087f1169", - id: "658c24aa6607be00087f1169#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "modelA", - modified: "2023-12-27T13:20:42.181Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:42.180Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:42.180Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:42.180Z", - status: "draft", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:42.181Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:42.180Z", - entity: "CmsEntries", - entryId: "658c24aa6607be00087f1169", - id: "658c24aa6607be00087f1169#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "modelA", - modified: "2023-12-27T13:20:42.181Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:42.180Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:42.180Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:42.180Z", - status: "draft", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "PS#SETTINGS", - SK: "default", - data: { - appUrl: "https://d1c9xtq19d4x6u.cloudfront.net", - bucket: "wby-delivery-68ac55a", - cloudfrontId: "E12G8OCR2J2BDW", - deliveryUrl: "https://d1jwcc7rxvj5th.cloudfront.net", - sqsQueueUrl: - "https://sqs.eu-central-1.amazonaws.com/674320871285/wby-ps-render-queue-bcd2dfd.fifo" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:23:15.570Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:57.094Z", - entity: "CmsEntries", - entryId: "658c2531adbc1700090e1ad2", - id: "658c2531adbc1700090e1ad2#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "modelB", - modified: "2023-12-27T13:23:15.570Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:15.536Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:57.094Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:15.536Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:15.536Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:23:15.536Z", - status: "draft", - tenant: "root", - values: { - "file@5atpz8nu": null, - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQA3yyBkIAAAAA==" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:23:15.570Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:57.094Z", - entity: "CmsEntries", - entryId: "658c2531adbc1700090e1ad2", - id: "658c2531adbc1700090e1ad2#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "modelB", - modified: "2023-12-27T13:23:15.570Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:15.536Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:57.094Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:15.536Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:15.536Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:23:15.536Z", - status: "draft", - tenant: "root", - values: { - "file@5atpz8nu": null, - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQA3yyBkIAAAAA==" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.062Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dad", - id: "602281486ed41f0008bc2dad#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.062Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 108898, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@name": "webiny-serverless-cms.png ", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.061Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dad", - id: "602281486ed41f0008bc2dad#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.061Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 108898, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@name": "webiny-serverless-cms.png ", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-menu#main-menu#/not-found", - PK: "T#root#PS#TAG#pb-menu#main-menu#/not-found", - SK: "main-menu#/not-found", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:23.860Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:23.860Z", - data: { - key: "pb-menu", - path: "/not-found", - tenant: "root", - value: "main-menu" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.045Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba28", - id: "6022814bef4a940008b3ba28#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.045Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 132767, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@name": "environments.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.045Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba28", - id: "6022814bef4a940008b3ba28#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.045Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 132767, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@name": "environments.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.161Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dac", - id: "602281486ed41f0008bc2dac#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.161Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 73153, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@name": "data-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.161Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dac", - id: "602281486ed41f0008bc2dac#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.161Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 73153, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@name": "data-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#ADMIN_USERS", - GSI1_SK: "admin@webiny.com", - PK: "T#root#ADMIN_USER#658c1b73c39bb10008431b44", - SK: "A", - TYPE: "adminUsers.user", - _ct: "2023-12-27T12:41:24.417Z", - _et: "AdminUsers.User", - _md: "2023-12-27T12:41:24.417Z", - data: { - createdBy: null, - createdOn: "2023-12-27T12:41:23.982Z", - displayName: "ad min", - email: "admin@webiny.com", - firstName: "ad", - group: "658c1b60c39bb10008431b42", - id: "658c1b73c39bb10008431b44", - lastName: "min", - tenant: "root", - webinyVersion: "5.38.2" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts deleted file mode 100644 index 6f2af35f719..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts +++ /dev/null @@ -1,200 +0,0 @@ -export const headlessCmsAcoSearchRecordPbPageMigrated = [ - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.024Z", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - firstPublishedBy: null, - firstPublishedOn: null, - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.024Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@data": { - "object@createdBy": {} - }, - "object@location": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.024Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.024Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.024Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.024Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@status": "published", - "text@title": "Not Found" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@tags": [], - "text@title": "Not Found", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.006Z", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - firstPublishedBy: null, - firstPublishedOn: null, - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.006Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@data": { - "object@createdBy": {} - }, - "object@location": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.006Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.006Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.006Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.006Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@status": "published", - "text@title": "Welcome to Webiny" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@tags": [], - "text@title": "Welcome to Webiny", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-fmfile.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-fmfile.ts deleted file mode 100644 index f10ae2611b2..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-fmfile.ts +++ /dev/null @@ -1,1605 +0,0 @@ -export const headlessCmsFmFileMigrated = [ - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602282e07a77e60008f70d63", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602282e07a77e60008f70d63#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@name": "feature-card-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba28", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba28#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 132767, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@name": "environments.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba27", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba27#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17711, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@name": "security.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba26", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba26#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 33888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@name": "scaffolding.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814b7a77e60008f70d62", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814b7a77e60008f70d62#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1864, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@name": "hero-block-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814b0df4b000088735bc", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814b0df4b000088735bc#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 5053, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@name": "webiny-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814a0df4b000088735bb", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814a0df4b000088735bb#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 3661, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@name": "webiny-serverless-application-framework.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148fa244d0008c47c7a", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148fa244d0008c47c7a#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17382, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@name": "community-icon.png", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148fa244d0008c47c79", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148fa244d0008c47c79#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 7806, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@name": "scalable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148f98841000981c724", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148f98841000981c724#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27878, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@name": "idp.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148f98841000981c723", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148f98841000981c723#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 390, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@name": "pink-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814891bd1300087bd24c", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814891bd1300087bd24c#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 90163, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@name": "webiny-infrastructure-overview.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dad", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dad#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 108898, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@name": "webiny-serverless-cms.png ", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dac", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dac#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 73153, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@name": "data-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dab", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dab#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 67402, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@name": "permission-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486639200009fd35ec", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486639200009fd35ec#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 392, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@name": "cms-benefits-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486639200009fd35eb", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486639200009fd35eb#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1758, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@name": "serverless-cms-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814851197600081724ae", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814851197600081724ae#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 60602, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@name": "cost-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c721", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c721#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27804, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@name": "developer.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c720", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c720#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 28918, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@name": "adaptable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c71f", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c71f#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 30007, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@name": "octo-cat.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modela.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modela.ts deleted file mode 100644 index d5a5ae100dc..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modela.ts +++ /dev/null @@ -1,545 +0,0 @@ -export const headlessCmsModelAMigrated = [ - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:42.180Z", - entryId: "658c24aa6607be00087f1169", - firstPublishedBy: null, - firstPublishedOn: null, - id: "658c24aa6607be00087f1169#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:42.180Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:42.180Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:42.180Z", - status: "draft", - tenant: "root", - values: { - "long-text@z2tdm05d": "", - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1", - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1", - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modelb.ts b/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modelb.ts deleted file mode 100644 index eeedafac38e..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.2/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modelb.ts +++ /dev/null @@ -1,236 +0,0 @@ -export const headlessCmsModelBMigrated = [ - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:57.094Z", - entryId: "658c2531adbc1700090e1ad2", - firstPublishedBy: null, - firstPublishedOn: null, - id: "658c2531adbc1700090e1ad2#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "modelB", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:15.536Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "file@5atpz8nu": null - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:57.094Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:15.536Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:15.536Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:23:15.536Z", - status: "draft", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 2 UPDATED", - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1", - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1", - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.ddbEsTableData.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.ddbEsTableData.ts deleted file mode 100644 index d1c5abe7915..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.ddbEsTableData.ts +++ /dev/null @@ -1,562 +0,0 @@ -export const ddbEsTableData = [ - { - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _md: "2023-12-27T12:43:01.141Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61U32/aMBD+VzzvlWT5ARTyxCYxbZrWVoNVWqepsuMDsjo2chxoVPG/7+wQxFrG+tC33PnuvvvuvssjLbUA+VnQjLJcz4CZfPUNcm1EsOZrtgTaoxswVaEVzeIelTpn1huPdKGlAONzjdaW7nq0YhsQV/hKkyhJgzgJkot5nGT9NIuiMEr6t7StIQFjQAXfZ+ioLLN1hQ5h2MKiowTLEAELbpisoXJoFh7sxDZrl3jNr9vWWmdhfblLbclHXSvRPeRaWVD2+Im4RKLQXDjzDZlpY5oe4bUldgXEUSaNrskWDBCp9X2hlhhrSK5rKXwmhzY5JPP3X6bk65R8uipdN5r/htxOjmfk+zgxqH2oYJ5oG1a4gOFglMdcpHk65jyOomjUT2M+yN/iZ9wRW58NPTeXPW5ugFkQH5pT4BdPKvb7XUVRVGvJmktWurpMkLJQB7R2NUw4HzJEamCLEjqsU6pIssE4HA+9Kg7x5zU0HKa3HeRBN+uay6JagWOo6pKDmRyLlmstgSm3mHuMyaypoZsksyss8A73GvilutZbPmyJpX/+Qvuvaf1vUP+a0ZPxoC5N4yWx5U2AtxecXadiXsdePoeGXnBonu+CyQoJ6616ZRJb4IVqbrpR00GYjsIEA4uXEOskjb+gYlG8cmuGbW8O/47nh/n8BE9cxm6HYRLNynaimf+4niJMXlah32AoEfvubo9+7N79AR8950ZcBQAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:43:01.141Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-12-27T12:43:00.682Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-12-27T12:43:00.663Z", - publishedOn: "2023-12-27T12:43:00.663Z", - pid: "658c1bd3c39bb10008431b5c", - locale: "en-US", - title: "Not Found", - createdOn: "2023-12-27T12:42:59.964Z", - version: 1, - tags: [], - path: "/not-found", - webinyVersion: "5.38.2", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - __type: "page", - id: "658c1bd3c39bb10008431b5c#0001", - titleLC: "not found", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - tenant: "root", - status: "published", - latest: true - }, - SK: "L", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - _et: "PbPagesEs", - _ct: "2023-12-27T12:43:00.682Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-12-27T12:43:00.682Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-12-27T12:43:00.663Z", - publishedOn: "2023-12-27T12:43:00.663Z", - pid: "658c1bd3c39bb10008431b5c", - published: true, - locale: "en-US", - title: "Not Found", - createdOn: "2023-12-27T12:42:59.964Z", - version: 1, - tags: [], - path: "/not-found", - webinyVersion: "5.38.2", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - __type: "page", - id: "658c1bd3c39bb10008431b5c#0001", - titleLC: "not found", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - tenant: "root", - status: "published" - }, - SK: "P", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - _et: "PbPagesEs", - _ct: "2023-12-27T12:43:00.682Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.522Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY/TMBD8K8g8kqSxk5JeniokkHgBJI6TDoQqO9lU5vxR2U56ocp/Z52kEkLH8cJbdnY9npl1LuQMQprxDpyX1pCabLNilzGSkACGm4CIszZgDSa48X2LwOucsR0tBXQlvynzPN+JQnBW4ZB8rv8SPykOaduCmpk6/U4qQEjZhuNHjbekXz4j0DjgAdqPURLLWZFSlrLqlrK6ZPV2l1Xb8iuOeT78e2jlejOS+rIq3O4aKqqiKW6EoFFhWVBRljjcSn9SfPzAdZTD2xdampjGeFrqWE4JsWfznxkxFdnJhdT0SiVkuC6FzgE9AF7UceUBfQceeo/HW8e7uJ2Bqx58lGPFD2jCPiYa5tMXXOVj2HdWteDm2OeNTsmCm0WXh6Z3MoyZH45kbT3AGK8AbdMTP4Lf/G2zmzOoxmpIg02XB3U4PEW4epYa2TaIv3rUCnum1wLc3suf2KVVRdHwakND4NGCsFYBN/uTkwMuk9TB9XC1EPgRrX/7vpZcSe5hRqblaV2DeCIDx893z2Q3/alkipSowIdFQ0Ju7z+9RcJG+2z+R7Jo6XBYvf4OT78AoS6E/W8DAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.522Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.706Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UMBT9K6Y+CgwUEIaniYkmvqiJ6yar2UwKXCZ1+0HawixO+O/eApMYs7u++MY99/b0nHPLhZyh5mq6BWO5VqQieZSWESUBcaCYcogYrR3WoJyZPrYIvI0pLZMs7/ZlmSVxHO/LpClogkP8pf5r/PRDUrcgFqZOfuACEBK6YfhR4S3ht68INAaYg/azl0RjmoYJDWlxk9Aqo1VeRkWefccxy8Z/D21c7yZSXTaFedkkdZE26b6uvcIyS5M6y3C45bYXbPrEpJfD2leSK5/G1K+1L+eA6LP6z4yYCu/4SqoGIQIyXpeSLAE9AF7UMWEBfTvmBovHW8M6v52RiQGsl6Prn9C4g0/ULacvuMpHd+i0aMEssS8bnYMVV6uuFkYQugcT2fFEtt4DTEtL6rBnJ7C751a7O4NotITQ6XB9Ucfjk4ybay6Rbof4m0cpsKcGWYM5WP4Lu7Qo4yy4GpHgmDdRay2AqUNv+IjrJJUzA1xNOHZC8z/ut5IJziwsyLw+rmsUT6Rg2Pn2hfTmv5XMnhIVWLdqCMjN3Zf3SNhIGy1/SeQtHY+b1z/h+TfXujKFcQMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.706Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.361Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLESZtsThUSSFwAiWUlQKiyk0kx64/KdtINVf474ySVENpdLtw8b8Zv3ryxL+QMXOjxDqwTRpOabJO8SiiJiAfNtEfEGuMxBu3t+K5FYJdSWmUFL1lZwi5N06or03YXLonn8i/xmGGRMi3ImalTb4UEhKRpGB5q7BJ//oRAY4F5aD8ESTSleZzRmJa3Ga0LWm+rpNwWX7HMseHfRSvX65HUl1XhtmoyXuZNfsN5FhQWecaLAotb4U6Sje+ZCnJY+0IJHdwYT0scwiki5qz/MyO6IjqxkOpeyogM16Vks0H3gI06Jh3g3J753uH11rIubGdgsgcX5Bj+Exq/D476+fYFV/ng952RLdjZ9nmjU7TgetH1A6yJeWgT82PihiNZ8/cwhj6gTHxiR3Cbp9a7OYNsjILYm3h5VYfDk6zr9EIh5QbxVw9KYk73ioPdO/ELs1m1K6LrPAo8C7NwYyQwvT9ZMeBWSe1tD9dZPDuiB9++ryGTgjmYkWl5Y1dHHjHDsvPdMyZOfyuZAiUqcH7REJHbLx/fIGGjXDJ/liRMdDiso/4JT78BE5zmZXgDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.361Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.486Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdJ8tQk5VUggcQEklpUAoWqSTIpZf1S2k26o8t93nKQSQlAu3Dxvxm/evLEv7Iw1V+M9Gsu1YhXbRlkZpSxgDhUoR4jR2lGMypnxbUvALk7TMsW4gKLAXRzHZVfE7S6jIn4r/5yOCRVJ3aKYmTr5hgskSOgG6FBRl/DTRwIag+Cwfe8lpXGahUkapsVdklZ5Wm3LqNjmX6jMwvDvopXr1ciqy6pwWzZJXWRN9rKuE68wz5I6z6m45fYkYHwH0suB9pnkyrsxnpbYh1PA9Fn9Z0ZyhXd8IVW9EAEbrktJZoMekBp1ICzS3A5cb+l6a6Dz2xlA9Gi9HF3/wMbtvaNuvn2hVT66fadFi2a2fd7oFCy4WnR15FFvMGzAtGF9jOxwZGvFA46+E0odnuCIdvO3BW/OKBotMXQ6XN7V4fAdjQ5vkK82cEnMG8JfPEpBOdXLGs3e8p+ULcsyuM4l0YGfqdZaIKj9yfCBtssqZ3q8zuTgSF58/baGIDhYnJFpeWtXZ/5gioHz/Q0zp9+VTJ6SFFi3aAjY3ecPr4mwkTaaP03kBzoc1kl/hacnhEueWoADAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.486Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:25.736Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA62ST3OCMBDFvwqTHitMEkCUU3X00EP/zGidqRcnQGgzDcGSoEXH795NrHV64dRb9u2P5eVtjmjPM6G6FW+0qBVKURyEo4CiATJcMWVAaeraQM2Vabr7AoRhPMppNB4PhzjJOMZ4lJSEDBOARF//Bo4EoKouuHST3GkCkqxzJjkoXPkvCxDyhjPDiydriWIa+oT6NFmSMKU4pXFAw3gNmGa7HijBZH2dNe1Qerw6JFkS5uE4y4h1GIUkiyKAC6G3knWPrLJ2WOFVQtk0uu25tuVpgOq9+ueJkIUoxXmoaqUcoN1lKcQF9MHhR6ZpOVzbMNNq+HrbZlLod+gAzmTLtXVk+Je5K+ln3rYHS81m09v5wvO9B5u3N/HmdpcedcGrN9/xB2qKCsdFH386b8o4V0dU1rLgjdukeyTQbth+dfFhaQhem4vt5evzHNi80oF7TYEEB5vNTxJ/5d+b9W/39A3SUG1TwgIAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:25.736Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:25.737Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Sy26DMBD8FeQeC8g2r4RTEyWHHPqQ0kZqL5HBmxYVDMUmKYny77UhRDn0cenNHs/Ozs76gIqSQ77gKO5PE2SjLdQyKwWKiY3yMmWquxzQpsw51B23LkuFjjaSbAv8Xr8iiqnnEOrQ6JF4McUxDdwIkxfUa+SgOSCcp6UGpGKqkRqomiTP5Btw05XlDUjTR8GnutnQj7Rp9oY1m02v50vLsW6NQ2tizYWqW4t20uLV6fh7qniBA/4bXxtOa2AK+LTtGrWVscV4kQktxjNZ5ay9Y0WPWj2cGc0wGKUkibzUGycJwRiPfI8kvm80wcgvBhb1x+MwxFEChhVtCAkjraJAMKGG6M5GfsyOesEpu3cdT6zqBmxU7sQ/e99Bkol2NWwcBa43cull5XfzXOkj0aTz/v76AjXbrYb9Hi/qhsEenx/mWiEtpNul6Va6aL0+DXkJH78AOM3x+bMCAAA=" - }, - SK: "P", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:25.737Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.543Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXYvUMBT9KxIfbTtt2jqZPg2Cgi8quC6ssgxpezvEzUdp0s7Wof/dm36AyO764lvuyc3JOecmV3KBUujxFjorjCYFyaOURZQExIHm2iHSGeOwBu268WONwNuYUpZkeXNgLEviOD6wpNrTGJvES/uvcZlgkzI1yJmpUR+EBISkqTguCrwl/PYVgaoD7qD+7CXRmKZhQkO6v0lokdEiZ9E+z75jm+XDv5tWrncjKa6rwpxVSblPq/RQll4hy9KkzDJsroVtJR8/ceXl8PqVEtqnMbZL7cspIOai/zMjpiIasZDqXsqADNtQkjmgB8CLGi4toG/HXW/xeN3xxk9n4LIH6+WY8idU7ugTdfPpK47y0R0bI2vo5tjniU7BgutNF28dLyWEojI6ssOZrA0PMPqLQJmw5Wewu+fmu7uArIyC0JlweVan0/O0q3+hkHOH+JtHJXFP96qE7mjFL9yl7JCwYLOkwHFvpzRGAtfHthMDDpYUruths+P4GWP4cb+WXApuYUam5ZltoTyRR8cvty/kOP2tZPKUqMC6RUNAbu6+vEfCStlo/i+Rt3Q6rV7/hKffjOAaTXsDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.543Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.702Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLESduQU4UEEhdAYlkJ0Kqyk0ll1h+R7aQbqvx3xkkqoRWUCzfPm/GbN2/sCzkDF3q8B+uE0aQi2yQvE0oi4kEz7RGxxniMQXs7vm8Q2KWUlllR7qApsjZN05LXtGEci8St/Es8ZlikTANyZmrVOyEBIWlqhocKu8RfPiNQW2Aemo9BEk1pHmc0pvu7jFYFrbZlst8W37DMseHfRSvXm5FUl1Xhtqwzvs/r/DXnWVBY5BkvCixuhOskGz8wFeSw5oUSOrgxdkscwiki5qz/MyO6IlqxkOpeyogM16Vks0GPgI1aJh3g3J753uH1xrI2bGdgsgcX5Bj+A2p/CI76+fYFV/nkD62RDdjZ9nmjU7TgetHVgVXChX6xqI1O3HAia8UjjKETKBN37ARu87cFb84ga6Mg9iZe3tXxeIN3dUAoJN0g/upJSczpXnGwByd+Yna3L1IaXYdS4FkYiBsjgelDZ8WAqyWVtz1cB/LshEZ8f1hDJgVzMCPT8tCutvzBEcvO9zecnJ4rmQIlKnB+0RCRu6+f3iJhrVwy/5gkjHQ8rrP+Dk+/AEx3J3R9AwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.702Z" - }, - { - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _md: "2023-12-27T12:43:01.123Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61YW3PbNhb+KxjtbPsiceVLmsT7EtVtU8/aiVu7yWx3djogeSRiBQIsAEqrdPzf9zsASVGOnPVDHzyWcDnX73znQH9MaluSvionFxNZ2DuSrqh+psK6ctbkjVzRZDrZkPPKmsnFyXSibSFD/PLHZGl1SS7eddaGycN04uWGyvfYnZzOT89mJ6ez05f3J6cX52cX83k2n3/z6yTJ0IQzZGa/3GHBBxlaj4XSyWXAQk1BQgMEbqRuybO2QP8Nb8Ku4Yu3+W0yLS2qEMV9JF3YmkSw4iPlyuz6A4U1gUw4dkQcW4n/arkmL1QQJP2Ot/NW6VLIptEqxcALaUqxpdyrgKPW4FQj7FKEioQnh7hp8pBhlk764NoitI5EvhONsxtVKrMSO9uKrQqVkMKRLHezWpYkLm/uomwpStqQtk0N8wWk1LS1bp2JO0RQ5pp6Y2GVF4U0wnNo2doK9/kTTKmtDxBUY4VVsgRtZekz8c6KovXB1rhhNW86+r1VjspeMGlVKyPZPxZlCFtDLB7dxXoBJ8KB87BMXLIBtFxSEdTm0GbXGg7c09HaVqqoRAEJXrya/1XEMwHeiQ83XvxM3uoNjBsJKCqpNZkVVjtNjmrLh7AevRidQLaiL2z/odX7LL+lwL6tjd32EpHAEgZ6sUC9IPtFyOBlSZn4jhptd1l/8G4vc7GXKX7oUym+x/YuVD0W+gB3gWQQlFHioUnPxFr2lcl983fxiydGcp+4C/FDq/UMZVesD+TetDqoGWpFAm6IbJu0LW6v/I0qnGVFqiBxDZ4wwBXyszBcIIqc2MpRmRzG0ov7inBY4g8w3I1kI5VBVKSb6D7gMB0chu+1NSpYNxa3bE0Rr06hKgAfZNg3LmLP+iU8R3p3WIlZtYamHKVOvcH3ITsK1g227E3x0RbcJ/7gHsP5iQLuwWXrBjoMwKHVGgG6vJ4KZ6HCrKZiqVCUqBoH/koecjg4ktkIFEskH+nznDgHR1e433gWAyPEV7JGTn1hG3y5o6J1KnS+FEi8klpouUNGlBHSHCBn77kpdFtyTSCgwEKnkRPXyUNjaCOByPA1isoaA5QncLKbnOYwg4a3TjbVT9cMkuwZ5hZyyX2DQ/dTq4o1ErUiQ47RnltExzWaP8fot57PXV5fiUa3K2U8BwmMo2Wdl3IPBTbK0HZsC45eRnpSnyJRDn5xLbADJS0l4C4WH+9QuivG2VQAag7ok8B4TOqZK0UjHYe3REr5fko9/Ezpfb8OcioWbajmU0GhyKCAje4MTkgCW3E76YMfc5xAY45IzkSswwZWk9koZ00d4cRszVEBfYG7xMoiniXIugiaE8rY74mJ4Ty6O6SdQ/lZYwMEezR2tFMf1b9EdGI9QMl/IuW9Nwis+oRgwhbzNVoUxHIhXDFmpGBug4lgfscNzINIQVldj0lCpQB7Vgb4RPmQrNG4UhnDLLemEBsLr8e1nBHBdTjui7x9jHC5iyZaiLH2uOKgZW9PZKY+QS1zpAH3kOGE6F1EQ7ArYvIQsIqBwPajzGxFnltZzx1PqV8I36I9xFtj/uYG3XNeF/4Y2W5SyT5n7JshGmnaSFTdDR8jPr1MEkTV5v0hDbi0rCLdvDLBSYNUNNYFqb34EYNH6pzd3TgT+jHLsy85yhT59fvh4x1jJwREJxUUTxjTpxIhU6MAVIcZpSZYgayY/ZjSt+ZHg8qilE2IOr8l3oIw0ImZeQQNtdoBcoqQAXcDrtEAlqmPSL4vYpuNwY/BtlsT+y3kX6O184zBicIyqrtSDVzQy1mFZdDevuM+3W05II/Gl1ReK7SgeKEhy2U1TFnYhh+ub/W1RBnjL0u0Tt2/klvOiKeyrr60t4OzuEgr1w9faNI9P/3jftHxU1ThMc9pCY75TgY58nXfEf3eaw4osiQTjzlR8h2MDbtUUmD//XIB5DB33ZKrlecHQ8QTeoC4tVtyaDPwdYB/v8eZb4YrnZ6W+whUgEkqvCgyHh92fGyZyE5qtTKpquP5gRbG1NIPPyMgdtR3mCKO4PRw6h+lOMb3hOe6SDjkZkunQBF6eCgwYeVETPFl1zZSOXQXuA1jhi45a914gf26P/Dk2BklQT3cPwXVAu6ig/s+V4mvywPwJLigQmQtP3GxxHbMyE3oy7oasiOJKcedXJzfprcNbdJ0XbeYwZeIGSeYGcYpzF6gR56otukFlYkz3qvr1nAz+0gxddGONPYXwx4P/OixeMfcS73uJwo8OmnGXD6NusG7MVoDtcYuwFOO3jIA00jHPYmb6O94JcawZeKDomFOh6a3KvzY5ngK2pw54s34BRtfh0eesd1RxvVwTPGBb168Kk7y8qw4e53nJ/P5/NX52Un+Iv8LPp70z83mi0ef82rt9HfZ/XZ3zIiXjySfn/eSS+UxwuzeYZrkZ33J6Bu0pge0LHkNnsJFdJWael3H3u6nFy9eZ6/PX/LbfTj/5Zf+y9OzX3uVw+u+aXOtfEUldkxb5+TejH9ayPGMBAw5QWucuUCBUh9RGSoI+FsHtVmw3Pk4Vg+9X3IFFf/6N74fRO3/BeypWD0KE/jE7SJEtvluJgs7+2J6+f3Uw2kw6Bk/i0S/l+B1OM7U/Oc6kUL2oQ/55EV29io7xUH1HMd6iMeuqv5k05zcfhh+6fm8UD8vySMV8vCAY/x28KEHz/0/b7+HmqL2WcxgpqH7t9867ePlh/8BijuEYQoTAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:43:01.123Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-12-27T12:43:00.864Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-12-27T12:43:00.723Z", - publishedOn: "2023-12-27T12:43:00.723Z", - pid: "658c1bd3c39bb10008431b5b", - locale: "en-US", - title: "Welcome to Webiny", - createdOn: "2023-12-27T12:42:59.947Z", - version: 1, - tags: [], - path: "/welcome-to-webiny", - webinyVersion: "5.38.2", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - __type: "page", - id: "658c1bd3c39bb10008431b5b#0001", - titleLC: "welcome to webiny", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - tenant: "root", - status: "published", - latest: true - }, - SK: "L", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - _et: "PbPagesEs", - _ct: "2023-12-27T12:43:00.864Z" - }, - { - index: "root-en-us-page-builder", - _md: "2023-12-27T12:43:00.864Z", - data: { - snippet: null, - editor: "page-builder", - images: {}, - savedOn: "2023-12-27T12:43:00.723Z", - publishedOn: "2023-12-27T12:43:00.723Z", - pid: "658c1bd3c39bb10008431b5b", - published: true, - locale: "en-US", - title: "Welcome to Webiny", - createdOn: "2023-12-27T12:42:59.947Z", - version: 1, - tags: [], - path: "/welcome-to-webiny", - webinyVersion: "5.38.2", - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - __type: "page", - id: "658c1bd3c39bb10008431b5b#0001", - titleLC: "welcome to webiny", - category: "static", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - tenant: "root", - status: "published" - }, - SK: "P", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - _et: "PbPagesEs", - _ct: "2023-12-27T12:43:00.864Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.525Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UQBD8K2Z8FFgY2FuOp42JJr6oieclasymB5rNePOxYQb2cMN/twfYxBjvfPGNru6pqaoeLuyMQprxHjsnrWEV2yZ5mXAWMY8GjCeks9ZTjcZ347uGgJuU8zIrBLYF3BZpmpYiF8BvaEg+139JnxkNadugmpla/VYqJEjZGuijolviz58IqDsEj82HIImnPI8zHvPdXcarglfbMtlti6805mD499DK9Xpk1WVVuC3rTOzyOr8VIgsKizwTRUHDjXQnBeN70EEONC+0NCGN8bTUoZwiZs/mPzNSKrKVC6nplYrYcF1KNgf0gHRRC8oh+fbge0fHmw7asJ0BVI8uyLHiB9Z+HxL18+kLrfLR71urGuzm2OeNTtGCm0WXq6ENI9IcEzcc2dp9wDHcgtrGJzii2zy13M0ZVW01xt7Gy5s6HJ7gXJ1LTYQbwl89akU902uB3d7Jn9TN87Iso6sZjR6CEWGtQjD7UycHWimrfNfj1YiHIwXw7ftagpLgcEam5YFd4/hLEh2c759JcPpTyRQoSYHzi4aI3X35+IYIa+2S+U9JgqXDYfX6Ozz9AgsV+EF1AwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.525Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.561Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLYSZtsThUSSFwAiWUlQKvKSSaVWX9UtpNuqPLfGSephFbLcuHm+fCb997YF3KGWujxDqwTRpOKbJOsTBiJiAfNtceMNcZjDNrb8UOLiV3KWEnzckvpTbFL07SkBcs5YJN4qf4ajxSblGlBzkidei9kuCdNw/FQ4ZT46xdMNBa4h/ZToMRSlsWUxay4pazKWbUtk2Kbf8c2x4d/N61Yb0dSXVaG27KhdZE12U1d08Awz2id59jcCneSfPzIVaDD21dK6ODGeFriEE4RMWf9nxHRFdGJBVT3UkZkuC6FzgY9AA7quHSAuj33vcPrreVd2M7AZQ8u0DH1T2j8Pjjq59sXXOWj33dGtmBn2+eNTtGS1wuvxjgfi8boxA1HstYeYAwzQJn4xI/gNn9b7eYMsjEKYm/i5UUdDs8irqqFQrgN5t88Kok13asa7N6JX1jdpTgmugpR4HkQURsjgev9yYoB10kqb3u4ivD8iOJ/3K8hl4I7mDPT8riuVjzjguXnuxfcm54ymQIkMnB+4RCR22+f3wULlUvmX5IESYfDqvXP9PQb9c+2XXEDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.561Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.487Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXavTQBD9K7I+mqTNR9uYpyIo+KKC1wtXkTKbTMra/Qi7m/bGkv/ubJKCiF5BzNPOmdkzZ85sruyCXOjhHq0TRrOKbZK8TDIWMY8atCfEGuMpRu3t8LYhYLvOsjItYN20BV/TV5a7fMM5FYmn8s/pmFKRMg3KialVb4REgqSpgQ4VdYk/fSSgtggem/dBUrbO8jjN4mx3l2ZVkVWbMtltis9U5uD896KF69XAquuicFPWKd/ldf6S8zQoLPKUFwUVN8J1EoZ3oIIcaJ4poYMbQzfHIRwjZi76PzOSK6IVM6nupYzY+baUdDLohNSoBemQ5vbge0fXGwtt2M4ZZI8uyDH8G9Z+Hxz10+0rrfLR71sjG7ST7dNGx2jG9axrfgexQ0ttJToXQ9dJMZPEraWqi7GnxJ2PbLl5wiEoQGXiDo7oVn9a/OqCsjYKY2/iuc/h8A/9FseEomYrwl88Kkk53SuOdu/Ed8rm2y25tXig0EOYnxsjEfS+s+JML4FV3vZ4m9/DkXz78nUJQQpwOCHj/C5vLv7GQAuX+yeMH39VMgZKUuD8rCFidw8fXhNhrVwy/WBJmOhwWEb9GR5/AOAByTisAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.487Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:12.855Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA62ST3OCMBDFvwqTHisMCQiUU3X00EP/zGidqRcnIaHNNAQLQYuO372bWOv0UE+9Zd/+WF7eZo+2gkndL0TTylqjHA2DKAsIGiAjNNUGlKauDdRCm6a/4yAkw6wgccaSJEyZCMMwS0uMkwQgeal/BUcMUFVzodwkdxqBpOqCKgGK0P7zDISiEdQI/mgtkZBEPiY+Sec4ykmYYxxkBC8Ba+nmT4gEaTpcnmeNe5Tvzw4xS6MiumEMW4dxhFkcA8xlu1a0f6CVtUO5V0lt0+jXx9qWhwGqt/qfJ0IWspTHobpTaoA2p6VgF9C7gB+ZphNwbUNN18LX644p2b5BB3CqOtFaR0Z8mtuSfBRdt7PUZDK+ns4837u3eXsjb2p36WEXvH71Hb8jhlfhkF/iD8dNGedqj8pacdG4TbpHAu2GbhcnH5aG4Ftzsj1/eZoCW1Rt4F5ToMDBavWdxG/552aXt3v4AqHf5GfCAgAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:12.855Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:12.874Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Sy26DMBD8FeQeCwgbApRTEyWHHPqQkkZqL5GNNy0qGIpNUhLl32tDiHLo49KbPZ6dnZ31ARUlh3zOUdKfxshGW6hlVgqUYBvlZUpVdzmgTZlzqDtuXZYKHW0k6Rb4g35FxCO+g4lDoiX2E+IlmLhRNHpBvUYOmgPCeVpoQCqqGqmBqmF5Jt+Am640b0CaPgo+1e2GfKRNszes6XRyPVtYjnVnHFpjayZU3Vq4kxavTsffE8ULb8R/42vDaQ1UAZ+0XaO2MrYoLzKhxXgmq5y297ToUauHM6MZjuIUs8hP/RvGsOd5ceBjFgRGE4z8fGCRIGZh6EUMDCvaYByGWkWBoEIN0Z2N/JAddmOCT9m963gSVTdgo3In/tn7Dlgm2tWwcTRy/dgll5XfzXOljyb+8/7++gI13a2G/R4v6obBls+PM62QFtLt0nQrXbRen4a8hI9ffhzBm7MCAAA=" - }, - SK: "P", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:12.874Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.488Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXa+UMBD9K6Y+CiwU1u3ytDHRxBc18XoTNWZTYFjr9oO0hb244b87BTYx5np98Y05Mz0950y5kgtUQo/3YJ0wmpRkm+QsoSQiHjTXHhFrjMcatLfj2waBlymlLCtYu2esyNI03bOs3tEch8RT/ef4meGQMg3ImalVb4QEhKSpOX6UeEv86SMCtQXuoXkfJNGU5nFGY7q7y2hZ0HLLkt22+IJjjg//Hlq5Xo2kvK4Kt6zOql1e5/uqCgpZkWdVUeBwI1wn+fiOqyCHN8+U0CGNsVvqUE4RMRf9nxkxFdGKhVT3UkZkuC0lmwM6A17UcukAfXvue4fHG8vbsJ2Byx5ckGOqH1D7Q0jUz6evuMoHf2iNbMDOsc8bnaIF14uuTuhz7L7zDhI3nMjaPMMYLgFl4o6fwG3+ttvNBWRtFMTexMuTOh4fp1x9C4V8G8RfPCiJPd2rCuzBiZ/YzfdpdDOiwPNgojJGAteHzooB10lKb3u4mfD8hOa/fltLLgV3MCPT8rhuUTySguWX+yfSm/5UMgVKVOD8oiEid58/vEbCWrlk/kuSYOh4XJ3+Dk+/APbPY71xAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.488Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.527Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY+bMBD9K5V7LJBgICGcokqttJdtpW5XaldVZMMQueuPyDZkacR/7xiItKra3Us5ed6M37x5Yy7kDFzo4R6sE0aTihRJViaURMSDZtojYo3xGIP2drhpENisKS3TvNxssh1d47drm6wAjkXipfxbPKZYpEwDcmJq1UchASFpaoaHCrvEX78gUFtgHppPQRJd0yxOaUy3dymtcloVZbIt8u9Y5lj/etHC9X4g1WVRWJR1yrdZne04T1FWmWcpz3MsboQ7STbcMhXksOaNEjq4MZzmOIRjRMxZ/2dGdEW0YibVnZQR6a9LSSeDHgEbtUw6wLk9853D641lbdhOz2QHLsgx/CfUfh8c9dPtC67yye9bIxuwk+3TRsdoxvWsy4HFfhKci2vlYmmOJnH9kSxVjzCEbqBMfGJHcKt/LXl1BlkbBbE38fy2DodXuBcnhELiFeLvnpTEnO4UB7t34hdm021RRtfZFHgW5uLGSGB6f7Kixw2TytsOrnN5dkQ/Hn4sIZOCOZiQcX5vV3f+Yoxl5/sXDB3/VDIGSlTg/KwhInffPn9AQhw3mX6cJEx0OCyjPofH377bNOyEAwAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.527Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.523Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLYSbdpThUSSFwAiWUlQKvKSSaVWX9UtpNsqPLfGSephFawcODmeTN+8+aNfSEDVEKPd2CdMJqUZJtkRcJIRDxorj0i1hiPMWhvx3cNAjcpYwXNiz2tGpqlaVrsqoblNRaJ5/Iv8UixSJkG5MzUqrdCAkLS1BwPJXaJP39CoLbAPTQfgiSWsiymLGa7W8rKnJXbItlt869Y5nj/96KV6/VIysuqcFvUtNpldbavKhoU5hmt8hyLG+HOko/vuQpyePNCCR3cGM9LHMIpImbQ/5kRXRGtWEh1J2VE+utS6GzQA2CjlksHOLfnvnN4vbG8DdvpuezABTmm+g61PwRH/Xz7gqt89IfWyAbsbPu80SlacL3oWt5BLHRrufO2q31nITaooRcwJK4/kfXCA4yhMSgTn/kJ3OZP+94MIGujIPYmXuiPx39vs/ojFPbYIP7qUUnM6U5VYA9O/MDsPqU3WXQdWYHnYdzKGAlcH85W9Lh4UmIfuI7r+Qlt+na/hlwK7mBGpuUZXk37jV+WD3fP+Dw9VTIFSlTg/KIhIrdfPr5Bwlq5ZP5PSRjpeFxn/RWefgJvK6+zmwMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.523Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.563Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTW+cMBD9K5V7LLCYj8JyWlVqpFzaSk0jJVG0MjCs3PhjZRs2dMV/7xhYqaqS9NIb82b8/N4bcyYnqLkab8FYrhWpSB6lZZSQgDhQTDlEjNYOa1DOjNctAh/jJClplnfbssxoHMfbkjYF7XCIv9V/j58Uh6RuQcxMnbziAhASumH4UeEt4Y/vCDQGmIP2q5eUxEka0iRMihuaVFlS5WVU5Nk9jlk2/Hto5fo0kuq8KszLhtZF2qTbuvYKyyyldZbhcMvtUbDxC5NeDmvfSa58GuNxqX05BUSf1H9mxFR4xxdS1QsRkOGyFDoH9AR4UceEBfTtmOstHm8N6/x2BiZ6sF6Orn9C43Y+UTefPuMqn92u06IFM8c+b3QKFlwtunTjdIhHIjscyNp6gtFfAVKHR3YAu3lts5sTiEZLCJFjeVD7/UuEq2cukW2D+IdnKbCnelmD2Vn+C7sp0hbBxYYEx7yFWmsBTO2Ohg+4TFI508PFgmMHtP7wuJZMcGZhRqblaV2CeCEDw063b2Q3/a1k8pSowLpFQ0Bu7r59RsJG2mj+RyJvab9fvf4JT78BqJuFQm8DAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.563Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.541Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY+bMBD9K5V7LJBgICGcokqt1EtbqduVuqsqMjCk3vUHsg1ZGvHfOwYiVavd9FJOnjfjN2/emDM5QcnVcAvGcq1IQbIoySNKAuJAMeUQMVo7jEE5M3yqEdisKc3jNN9skh1d47dr6iSDCov4tfxbPMZYJHUNYmJq5EcuACGhK4aHAruE378hUBlgDuovXhJd0ySMaUi3NzEtUlpkebTN0jsss6z/d9HC9X4gxXlRmOVVXG6TKtmVZYyy8jSJyzTF4prbVrDhM5NeDqvfSK68G0M7xz4cA6JP6j8zoiu84TOp6oQISH9ZSjwZ9AjYqGHCAs7tmOssXq8Na/x2eiY6sF6OLh+gcnvvqJtun3GVT27faFGDmWyfNjoGM65mXZW0YQkKGu5saH+xFiLbH8lS9AiDbwZShy07gl29tuPVCUSlJYROh/PTOhyuUy8+cIm8K8TfPUmBOdXJEsze8t+YxR7BZTAJjvmhSq0FMLVvDe9xvaRwpoPLUI4d0Yz7n0vIBGcWJmScH9vFmhdcMex0e8XN8bmS0VOiAutmDQG5+fH1w2xpNP01kR/ocFgm/Rse/wBONimLgQMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.541Z" - }, - { - index: "root-headless-cms-en-us-modelb", - _md: "2023-12-27T13:22:46.132Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA62SP2+DMBDFvwpyxwaEDQTCVKFk6NA/UtJKzRIZ7DRWjUHYhKIo371np2nUoZm6+d79OJ7f+YAGXgo1vvJOi0ahHCVBlAUETZDhiioDStc0BmquTDfeMxCmSVaRhMSUlRVOwzCchRxThgES1/o3cLRQ3TAu3SR3KkCSTUUlB4Ur/2UJQtVxajh7spZISCIfE5+kKxzlhORxHExTsgZM0/2f0DQIZ3h9mVWMKD9cHOIyjapoVpYYbGVxhMs4BpgJ3Uo6PtLa2qHMq4WyaYztqbblcYKaQf3zRMhCbMVpqOqlnKD9eSnYBfTB4Uem6zlc21DTa/i67Usp9A46gFPZc20dGf5p7mLGWzKQHVDzeXG7WHq+92Dz9gpvYXfpYRe8evcdn1aJyYaBXuOPp00Z5+qAto1kvHObdI8E2h0dXs8+LA3Ba3O2vXp7XgBb1TpwrymQ4GCz+U7it/xzs+vbPX4BgnLwJMICAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:22:46.132Z" - }, - { - index: "root-headless-cms-en-us-modelb", - _md: "2023-12-27T13:22:46.134Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Sy26DMBD8FeQeCwgbCIRThZJDDn1ISSO1l8jgbYMKNsImFEX599oQohz6uPRmj2dnZ3Z9RJVgUK4YSsZTimx0gEYWgqME26gUOVXD5YjeRMmgGbiNEAqdbCTpAdijfkXEI76DiUOiDfYTQpJg5npz/IpGjRI0B7jzvNaAVFS1UgN1m5WF3AMzXWnZgjR9FHyqu4BBTTqy16zFIr1dri3HujcOrdRactX0Fh6k+bsz8KM8VHHX0d/42nDeAFXA0n5o1NfGFmVVwbUYK2Rd0v6BViNqjXBhAs/COMdZ5Of+PMuw53lx4OMsCIwmGPnVxCIhCSjLchxp1twDTJlxqoBTrqbRXYz8MLvAnUXkPLsPPZ5ENS3YSHT8n713kBW8304bR6Hrxy65rvwuz40+mlCX/f31BRrabaf9nq7qpmCbl6elVsgr6Q7TdGtdtNudQ17Dpy+tJHA1swIAAA==" - }, - SK: "P", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:22:46.134Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.528Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UQBD8K2Z8FFgY2IPjaWOiiS9q4nmJGrNphmYz3nxsmFn2cMN/twfYxBjvfPGNru6pqaoeLuyMjTTjPfZOWsNqtk3yKuEsYh4NGE9Ib62nGo3vx3ctATcp51VWVB3womjTNK1EUYrylobkc/2X9JnRkLYtqpmp02+lQoKUFUAfNd0Sf/5EgOgRPLYfgiSe8jzOeMzLu4zXBa+3VVJui6805mD499DK9Xpk9WVVuK1E1pS5yG+bJgsKizxrioKGW+mOCsb3oIMcaF9oaUIa43GpQzlFzJ7Nf2akVGQnF1JzUipiw3Up2RzQA9JFHSiH5NuDPzk63vbQhe0MoE7oghzb/EDhdyFRP5++0Cof/a6zqsV+jn3e6BQtuFl0OVoANApjKaxJ3HBga/8Bx3APahsf4YBu89R6N2dUwmqMvY2XV7XfP8m6upeaKDeEv3rUinrmpBvsd07+pG5ZpTfR1Y9GD8FLY61CMLtjLwfaKqt9f8KrFw8HyuDb97UEJcHhjEzLG7sm8pcwejjfPxPi9KeSKVCSAucXDRG7+/LxDREK7ZL5Z0mCo/1+tfo7PP0ChLfw5XgDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.528Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.684Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBT8K8gcSdLESYmbU4UEEhdAYllpQahykpfKrD8i2003VPnvPCephFbs7oWb3/h5PDPPvpAz1EKPt2CdMJpUZJvkLKEkIh401x4Ra4zHGrS348cWgbcppSwrWLdjrMjSNN2xrClpgU3iuf3XuMywSZkW5MzUqQ9CAkLSNBwXFd4Sf/uKQGOBe2g/B0k0pXmc0ZiWNxmtClptWVJui+/Y5vjwctPK9W4k1WVVuGVNVpd5k+/qOihkRZ7VRXDQCtdLPn7iKsjh7SsldEhj7Jc6lFNEzFn/Z0ZMRXRiIdUnKSMyXIeSzQHdA17UcekAfXvuTw6Pt5Z3YToDlydwQY6pf0Hj9yFRP5++4Cgf/L4zsgU7xz5PdIoWXC+6RNsnbjiSFb2HMbCDMnHPj+A2Tw11cwbZGAWxN/Hylg6HR1yrU6GQaIP4mwclcU+fVA1278Rv3KUlK1l0Fa/A8yC8NkYC1/veigFHSCpvT3AV7vkRDf/4uZZcCu5gRqblQV3t/8O55efbZxKbHiuZAiUqcH7REJGbuy/vkbBRLpl/RhIsHQ6r17/h6Q/nB7bbZQMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.684Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:34.215Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA62Sy27CMBBFfyVylyVRbOdVVgXBoos+JChSu0FO7LRWHYcmDjQg/r1jA626gFV3njsnk+s73qGNyKXuF6JpZa3REMUBzQKCBsgIzbQBpalrA7XQpunvOAhJnBUkYjhJwjQXYRhmaYlxkgEkL/Wv4IgBqmoulJvkTiOQVF0wJUAR2n+egVA0ghnBH60lEhLqY+KTdI7pkIRDSoM0jV8Ba9n6LBQF+AAdZ417NNz9OsR5Sgt6k+fYOowozqMIYC7blWL9A6usHca9SmqbRr861LbcD1C90f88EbKQpTwM1Z1SA7Q+LQW7gD4E/Mg0nYBrG2a6Fr5edbmS7Tt0AGeqE611ZMSXuS3JZ9F1W0tNJuPr6czzvXubtzfypnaXHnXB6zff8VtieBXG/DxPrE27KeNc7VBZKy4at0n3SKDdsM3i5MPSEHxrTrbnL09TYIuqDdxrChQ4WC6PSfyVf252ebv7b3cJr33CAgAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:34.215Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:34.216Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61Sy26DMBD8FeQeCwjbvMqpiZJDDn1IaSO1l8jgTYsKhmKTlET599pQohwa9dKbPZ6dnZ31AZUVh2LBUTKcJshGW2hkXgmUYBsVVcZUfzmgTVVwaHpuU1UKHW0k2Rb4g35FxCPUwcQh0ROmCfES6rs4Cl7RoFGA5oBwnpcakIqpVmqgbtMil+/ATVdWtCBNHwVf6nZDPrO23RvWbDa9ni8tx7ozDq2JNReq6SzaS4s3p+fvieKlF/DLfGIMZw0wBXza9Y262thivMyFFuO5rAvW3bNyQK0Bzo1mGMQZTiOa0Zs0xZ7nxT7Fqe8bTTDyi5FFfIbD0ItSMKxog3EYaxUFggk1RncyciE76kan7D50PIlqWrBRtRP/7H0HaS661bhxFLg0dsl55W/zXOkj1qTT/v76Ag3brcb9Hs/qxsGeXh7nWiErpdun6da6aL3+GfIcPn4DcthPZ7MCAAA=" - }, - SK: "P", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:34.216Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.705Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXa+UMBD9K6a+AguFFeRpY6KJL2ri9SZqzGaAYVNvP0hbdsUN/90psIkx3uuLb53T6ek5Z9oru2Aj9HSP1gmjWc32SV4lnEXMowbtCbHGeKpRezu97Qh4kXJeZUXVAy+KLk3Tqi3KtgRqEk/tP6dlRk3KdCgXpl69ERIJkqYFWtR0S/zpIwGtRfDYvQ+SeMrzOOMxL+8yXhe83ldJuS++UJuD87+bNq5XE6uvm8J91WZNmbf5y6bJgsIiz5qioOZOuEHC9A5UkAPdMyV0SGMa1jqUc8TMRf9nRkpF9GIl1aOUETvfhpItAT0gXdSDdEi+PfjR0fHOQh+mcwY5ogtyTPMdW38Iifrl9JVG+cMfeiM7tEvsy0TnaMX1qqs1So1a+CkWrdHJoE9sa3jAKVyEysQDnNDtHpvv7oKSaDD2Jl6f1fH4OO3mXyji3K24HlWD9uDET9rJyrzi0c2OQg/BSmOMRNCHwYozDZXV3o54s+LhRBF8/baVIAU4XJB5fWK3QP6ShYXL/RMZzn8qmQMlKXB+1RCxu88fXocglUuWv5JIsnQ8bj5/h+dfsmotBXcDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.705Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.482Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTY/TMBD9K8gcSdLmi4acKiSQuAASy0qAVtU4mVRm/VHZTrqhyn9nnKQSWrHLhRyizPP4+b03zoWdkQs93qJ1wmhWszLJqyRjEfOoQXtCrDGeatTejh9aAl5vs6xKC75tO3rRU1W7vOQNNYnn1l/SZ0pNyrQoZ6ZOvRcSCZKmAfqo6ZT46xcCGovgsf0UJGXbLI/TLM52N2lWF1ldVsmuLL5Tm4Ph300r19uR1ZdVYVk1Kd/lTf6G8zQoLPKUFwU1t8KdJIwfQQU50L5QQoc0xtNSh3KKmDnr/8xIqYhOLKS6lzJiw3Uo6RzQPdJBHUiH5NuD7x1tby10YToDyB5dkGP4T2z8PiTq590XGuWD33dGtmjn2OeJTtGC60XXcg9iaY4mccORrav3OIZTUJn4BEd0m6eGuzmjbIzC2Jt44TocnuBcnQtFhBvCXz0oSWu6Vxzt3olftFpuyzy6elHoIfjgxkgEvT9ZMdBEWe1tj1cfHo7k/8fdWoIU4HBGpuV+XdP4SxAWzrfPBDg9VjIFSlLg/KIhYjffPr8jwka5ZP5RkuDocFit/glPvwF6hmKrdAMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.482Z" - }, - { - index: "root-headless-cms-en-us-modela", - _md: "2023-12-27T13:20:42.214Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61SPW/CMBD9K5E7lkS2E5KQqSAYOvRDokVqF+TEThXVcajtQAPiv/dsQO3ULt18757v3r27A9qJslHDSmjTdAoVaBzFeUTRCFmhmLKA6K6zEAtl9XDLAUjHeUUTxtIUZ6XAGOdZTUg6AVLzW/4KngRIbceF9JX8awqQ7ComBSBChc9LACotmBX8wUmimMYhoSHNnkhcUFwkNCI5fgWaYdu/SedaswEVh2+FpMziKp6UJXEKk5iUSQJk3piNZMM9a50cxoO2Uc6NYXOKXXgcoW6n/rkieNHUzamo6qUcoe1lKcQb9C6gUc2kETC3ZbY38J1rVrvtbJnshXFyrPi0NzX9qPp+7xjz+ex6sQzC4M6ZHUyDhVtkkHjX1Vvo+XtqeYvHbhKnxa3D+tYHVHeSC+3X5S8B0prtVpd+jg3uGrgUq3uQ9vTyuABu1ZrIn0wkodN6fR73J3z8Ah+WbBR+AgAA" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:20:42.214Z" - }, - { - index: "root-headless-cms-en-us-modelb", - _md: "2023-12-27T13:23:15.572Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61STU/DMAz9K1U4slZN0tKuJ5i2Awc+JMYkuKC0cSEiTacmpZSJ/47TMcQBIQ7cbMd+7/k5O9K0EvS5JMU+WpAZeYHOqtaQgs6IbivhpmRH6lZL6Kberm0deZ8RK15AXuErYTHjIWUhy9aUF4wXNI1SfnJP9hgasAdMeHuDBeuE6y0WZCdq5xmF7sF6Dgev7jSRsGUDe8KO5XJxvLoJwuDCqwsWwcq4bgxYcHu9PFuvlhO8eQynuaxKXT4M4i9zKL7qQDiQi9ETK7/WSZpXtMx4xedlSeM4zhNOyyRBFqnsVovxUjR+EyGDRhksu3G7z32KmOBpzg9YLOVUyLKiGWLNY8CE+SEwwriDjV9CfvKRFWkWxfPk08dnQOhaaAsz0g7mn8UPUCozbg7nJ2nE88gLVr8tdIQhxSb8P6pW/yypAYfn3GHUiWHz9U1qpeE0FW77lpueFKbXGls0umjRV9f16M/67nqFUFVjo+kqkUb8h4dPhu/l9w8+vp3CBwMAAA==" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T13:23:15.572Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.544Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TTYvbMBD9K0G92o5lOxuvT6HQQi9toduFbilBtsZBXX0YSU7qBv/3jvwBpXR3L3vzPI3evPdGvpIL1EIP92CdMJpUZJfkZZKRiHjQTHtErDEea9DeDh84AjdplpW0KG+AF7RN07Ssm4wzjk3iufM3+EmxSRkOcmJq1XshASFpGoYfFU6Jv35BoLHAPPBPQVKWZnlMszjb39GsKrJqVyb7XfGAbY6dX25auN4OpLouCndlQ+t93uS3dU2DwiKndVFgMxeuk2z4yFSQw/hGCR3SGLq5DuUYEXPRr8yIqYhWzKS6lzIi53UpdAroEXBQy6QD9O2Z7x1e55a1YTtnJntwQY6pf0LjDyFRP92+4ip/+UNrJAc7xT5tdIxmXM+65ncQO7A4VoJzcaNc0unTZkOWzkcYwkRQJu7YCdz2qUVvLyAboyD2Jp55j8cn+Vf2JQ+hkHo747pXNdiDE7/xhKZleVtGqz8FngVvtTESmD50Vpxxy6TytofVm2cnzOT7j6VkUjAHEzLOb25N6D/hWHa5fybU8V8lY6BEBc7PGiJy9+3zOyQMPqefJ5Ho6XhcjP4Nj38A+G24n4gDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.544Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.524Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY/TMBD8K8g8kqSNk15zeaqQQOIFkDhOAoSqdbKpzPmjst30QpX/zjpJJYS444W37Ox6PDPrXNgZhTTDPTovrWE122RFlXGWsIAGTCDEWRuoRhPc8K4l4GbNeZWXArsSbsv1el2JQgCvaEg+139JnzkNaduimpg6/VYqJEjZBuijplvSz58IaBxCwPZDlMTXvEhznvLtXc7rktebKttuyq805qH/99DC9Xpg9WVRuKmaXGyLprgVIo8KyyIXZUnDrfRHBcN70FEOtC+0NDGN4TjXsRwTZs/mPzNSKrKTM6k5KZWw/rqUfAroAemiDpRH8h0gnDwdbx10cTs9qBP6KMeKH9iEXUw0TKcvtMrHsOusatFNsU8bHZMZN7MuNL101mhas898f2BL+wGHeA1qmx7hgH711HZXZ1SN1ZgGm86Par9/inTxLjUxrgh/9agV9cxJC3Q7L39SNy/49mabXP1oDBC9CGsVgtkdnexpq6wO7oRXLwEOlMG370sJSoLHCRnnN3ZN5C9hODjfPxPi+KeSMVKSAh9mDQm7+/LxDRE22mfTz5JFT/v9YvZ3ePwFS0oiTngDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.524Z" - }, - { - index: "root-headless-cms-en-us-fmfile", - _md: "2023-12-27T12:42:59.703Z", - data: { - compression: "gzip", - value: "H4sIAAAAAAAAA61TXY+UQBD8K2Z8FFgY2FvkaWOiiS9q4nnJacymgWYz3nxsZgb2cMN/twfYxJjzfPGNru6pqaoeLuyMtdDjHVonjGYV2yZ5mXAWMY8atCfEGuOpRu3t+L4l4CblvMyK8gbbIuvSNC3rhrfQ0JB4rv+SPjMaUqZFOTN16p2QSJA0DdBHRbfEXz4T0FgEj+3HIImnPI8zHvPdbcarglfbMtlti6805mD499DK9WZk1WVVuC2brN7lTf66rrOgsMizuihouBXuJGH8ACrIgfaFEjqkMZ6WOpRTxMxZ/2dGSkV0YiHVvZQRG65LyeaAHpAu6kA6JN8efO/oeGuhC9sZQPboghxT/8DG70Oifj59oVU++n1nZIt2jn3e6BQtuF50teAhFo3RiRuObO094BhaqEx8giO6zd9WuzmjbIzC2Jt4eVGHw5OMq2uhiG5D+KtHJamne1Wj3Tvxk7q7PNvm0dWIQg/BRG2MRND7kxUDrZNV3vZ4NeHhSOa/fV9LkAIczsi0PK5rFE+kYOF890x6059KpkBJCpxfNETs9v7TWyJslEvmvyQJlg6H1evv8PQL5bUc+3EDAAA=" - }, - SK: "L", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - _et: "CmsEntriesElasticsearch", - _ct: "2023-12-27T12:42:59.703Z" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.ddbPrimaryTableData.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.ddbPrimaryTableData.ts deleted file mode 100644 index 2b550c15fca..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.ddbPrimaryTableData.ts +++ /dev/null @@ -1,2978 +0,0 @@ -export const ddbPrimaryTableData = [ - { - permissions: [{ name: "*" }], - slug: "full-access", - _et: "SecurityGroup", - name: "Full Access", - _ct: "2023-12-27T12:41:05.020Z", - TYPE: "security.group", - tenant: "root", - system: true, - _md: "2023-12-27T12:41:05.020Z", - createdOn: "2023-12-27T12:41:04.963Z", - GSI1_SK: "full-access", - SK: "A", - description: "Grants full access to all apps.", - webinyVersion: "5.38.2", - id: "658c1b60c39bb10008431b42", - PK: "T#root#GROUP#658c1b60c39bb10008431b42", - GSI1_PK: "T#root#GROUPS" - }, - { - _md: "2023-12-27T12:43:14.870Z", - data: { - path: "/welcome-to-webiny", - value: "658c1bd3c39bb10008431b5b#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - SK: "658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:14.870Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:43:00.024Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "658c1b73c39bb10008431b44" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@title": "Not Found", - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "text@status": "published", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "datetime@savedOn": "2023-12-27T12:43:00.663Z" - }, - "object@location": { "text@folderId": "root" }, - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:43:01.122Z", - TYPE: "L", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - tenant: "root", - _md: "2023-12-27T12:43:01.122Z", - createdOn: "2023-12-27T12:43:00.024Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:43:00.024Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "658c1b73c39bb10008431b44" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@title": "Not Found", - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "text@status": "published", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "datetime@savedOn": "2023-12-27T12:43:00.663Z" - }, - "object@location": { "text@folderId": "root" }, - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:43:01.121Z", - TYPE: "cms.entry", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - tenant: "root", - _md: "2023-12-27T12:43:01.121Z", - createdOn: "2023-12-27T12:43:00.024Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - locale: "en-US", - slug: "static", - layout: "static", - url: "/static/", - _et: "PbCategories", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - name: "Static", - _ct: "2023-12-27T12:42:57.966Z", - TYPE: "pb.category", - tenant: "root", - _md: "2023-12-27T12:42:57.966Z", - createdOn: "2023-12-27T12:42:57.965Z", - SK: "static", - PK: "T#root#L#en-US#PB#C" - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.l", - _md: "2023-12-27T12:43:00.681Z", - SK: "L", - publishedOn: "2023-12-27T12:43:00.663Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/not-found", - savedOn: "2023-12-27T12:43:00.663Z", - locale: "en-US", - pid: "658c1bd3c39bb10008431b5c", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.681Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.964Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.p", - _md: "2023-12-27T12:43:00.682Z", - SK: "P", - publishedOn: "2023-12-27T12:43:00.663Z", - id: "658c1bd3c39bb10008431b5c#0001", - editor: "page-builder", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-12-27T12:43:00.663Z", - pid: "658c1bd3c39bb10008431b5c", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.682Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.964Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page", - _md: "2023-12-27T12:43:00.681Z", - SK: "REV#0001", - publishedOn: "2023-12-27T12:43:00.663Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/not-found", - savedOn: "2023-12-27T12:43:00.663Z", - locale: "en-US", - pid: "658c1bd3c39bb10008431b5c", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.681Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.964Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - title: "Not Found" - }, - { - locale: "en-US", - slug: "main-menu", - _et: "PbMenus", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - items: [], - _ct: "2023-12-27T12:42:59.821Z", - TYPE: "pb.menu", - tenant: "root", - _md: "2023-12-27T12:42:59.821Z", - createdOn: "2023-12-27T12:42:59.821Z", - SK: "main-menu", - description: "The main menu of the website, containing links to most important pages.", - PK: "T#root#L#en-US#PB#M", - title: "Main Menu" - }, - { - _md: "2023-12-27T12:27:56.881Z", - data: { - context: { - logGroupName: "/aws/lambda/wby-data-migration-db1144d", - logStreamName: "2023/12/27/[$LATEST]4230e2d1a850456aa079f8fd4356284d" - }, - id: "658c184c554a6d00083aa519", - finishedOn: "2023-12-27T12:27:56.881Z", - startedOn: "2023-12-27T12:27:56.797Z", - migrations: [ - { id: "5.35.0-001", status: "not-applicable" }, - { id: "5.35.0-002", status: "not-applicable" }, - { id: "5.35.0-003", status: "not-applicable" }, - { id: "5.35.0-004", status: "not-applicable" }, - { id: "5.35.0-005", status: "not-applicable" }, - { id: "5.35.0-006", status: "not-applicable" }, - { id: "5.36.0-001", status: "not-applicable" }, - { id: "5.37.0-001", status: "not-applicable" }, - { id: "5.37.0-002", status: "not-applicable" }, - { id: "5.37.0-003", status: "not-applicable" }, - { id: "5.37.0-004", status: "not-applicable" }, - { id: "5.37.0-005", status: "not-applicable" }, - { id: "5.38.0-001", status: "not-applicable" }, - { id: "5.38.0-002", status: "not-applicable" }, - { id: "5.38.0-003", status: "not-applicable" } - ], - status: "done" - }, - GSI1_SK: "658c184c554a6d00083aa519", - SK: "A", - PK: "MIGRATION_RUN#658c184c554a6d00083aa519", - _et: "MigrationRun", - _ct: "2023-12-27T12:27:56.881Z", - TYPE: "migration.run", - GSI1_PK: "MIGRATION_RUNS" - }, - { - tenant: "root", - _md: "2023-12-27T12:43:01.966Z", - locale: "en-US", - reCaptcha: { secretKey: null, enabled: null, siteKey: null }, - SK: "default", - PK: "T#root#L#en-US#FB#SETTINGS", - _et: "FormBuilderSettings", - _ct: "2023-12-27T12:43:01.966Z", - domain: "https://d3hohw12noi930.cloudfront.net" - }, - { - _md: "2023-12-27T12:43:19.484Z", - data: { path: "/", value: "main-menu", tenant: "root", key: "pb-menu" }, - GSI1_SK: "pb-menu#main-menu#/", - SK: "main-menu#/", - PK: "T#root#PS#TAG#pb-menu#main-menu#/", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:19.484Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - permissions: [], - slug: "anonymous", - _et: "SecurityGroup", - name: "Anonymous", - _ct: "2023-12-27T12:41:05.147Z", - TYPE: "security.group", - tenant: "root", - system: true, - _md: "2023-12-27T12:41:05.147Z", - createdOn: "2023-12-27T12:41:05.146Z", - GSI1_SK: "anonymous", - SK: "A", - description: "Permissions for anonymous users (public access).", - webinyVersion: "5.38.2", - id: "658c1b61c39bb10008431b43", - PK: "T#root#GROUP#658c1b61c39bb10008431b43", - GSI1_PK: "T#root#GROUPS" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@aliases": [], - "number@size": 17711, - "text@name": "security.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.007Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba27", - tenant: "root", - _md: "2023-12-27T12:42:59.007Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba27#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@aliases": [], - "number@size": 17711, - "text@name": "security.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.007Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba27", - tenant: "root", - _md: "2023-12-27T12:42:59.007Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba27#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27" - }, - { - modelId: "modelA", - pluralApiName: "ModelAs", - group: { name: "Ungrouped", id: "658c1bcbc39bb10008431b45" }, - descriptionFieldId: "description", - imageFieldId: "image", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - name: "ModelA", - TYPE: "cms.model", - titleFieldId: "title", - fields: [ - { - multipleValues: false, - listValidation: [], - settings: {}, - renderer: { name: "text-input" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Title", - type: "text", - tags: [], - placeholderText: null, - id: "f2qcuuzs", - validation: [ - { name: "required", message: "Title is a required field.", settings: {} } - ], - storageId: "text@f2qcuuzs", - fieldId: "title" - }, - { - multipleValues: false, - listValidation: [], - settings: {}, - renderer: { name: "long-text-text-area" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Description", - type: "long-text", - tags: [], - placeholderText: null, - id: "z2tdm05d", - validation: [], - storageId: "long-text@z2tdm05d", - fieldId: "description" - }, - { - multipleValues: false, - listValidation: [], - settings: { imagesOnly: true }, - renderer: { name: "file-input" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Image", - type: "file", - tags: [], - placeholderText: null, - id: "8y67xrmj", - validation: [], - storageId: "file@8y67xrmj", - fieldId: "image" - } - ], - _md: "2023-12-27T13:20:12.156Z", - SK: "modelA", - singularApiName: "ModelA", - tags: ["type:model"], - locale: "en-US", - savedOn: "2023-12-27T13:18:39.298Z", - layout: [["f2qcuuzs"], ["z2tdm05d", "8y67xrmj"]], - lockedFields: [ - { multipleValues: false, type: "text", fieldId: "text@f2qcuuzs" }, - { multipleValues: false, type: "long-text", fieldId: "long-text@z2tdm05d" }, - { multipleValues: false, type: "file", fieldId: "file@8y67xrmj" } - ], - _et: "CmsModels", - _ct: "2023-12-27T13:20:12.156Z", - tenant: "root", - createdOn: "2023-12-27T13:18:26.594Z", - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#CMS#CM" - }, - { - modelId: "modelB", - pluralApiName: "ModelBs", - group: { name: "Ungrouped", id: "658c1bcbc39bb10008431b45" }, - descriptionFieldId: "description", - imageFieldId: "image", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - name: "ModelB", - TYPE: "cms.model", - titleFieldId: "title", - fields: [ - { - multipleValues: false, - listValidation: [], - settings: {}, - renderer: { name: "text-input" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Title", - type: "text", - tags: [], - placeholderText: null, - id: "4dep2w2h", - validation: [ - { name: "required", message: "Title is a required field.", settings: {} } - ], - storageId: "text@4dep2w2h", - fieldId: "title" - }, - { - multipleValues: false, - listValidation: [], - settings: {}, - renderer: { name: "long-text-text-area" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Description", - type: "long-text", - tags: [], - placeholderText: null, - id: "7c5t8wwa", - validation: [], - storageId: "long-text@7c5t8wwa", - fieldId: "description" - }, - { - multipleValues: false, - listValidation: [], - settings: { imagesOnly: true }, - renderer: { name: "file-input" }, - helpText: null, - predefinedValues: { enabled: false, values: [] }, - label: "Image", - type: "file", - tags: [], - placeholderText: null, - id: "5atpz8nu", - validation: [], - storageId: "file@5atpz8nu", - fieldId: "image" - } - ], - _md: "2023-12-27T13:22:45.032Z", - SK: "modelB", - singularApiName: "ModelB", - tags: ["type:model"], - locale: "en-US", - savedOn: "2023-12-27T13:21:46.459Z", - layout: [["4dep2w2h"], ["7c5t8wwa", "5atpz8nu"]], - lockedFields: [ - { multipleValues: false, type: "text", fieldId: "text@4dep2w2h" }, - { multipleValues: false, type: "long-text", fieldId: "long-text@7c5t8wwa" }, - { multipleValues: false, type: "file", fieldId: "file@5atpz8nu" } - ], - _et: "CmsModels", - _ct: "2023-12-27T13:22:45.032Z", - tenant: "root", - createdOn: "2023-12-27T13:21:39.663Z", - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#CMS#CM" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@aliases": [], - "number@size": 27804, - "text@name": "developer.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.262Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c721", - tenant: "root", - _md: "2023-12-27T12:42:59.262Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228145f98841000981c721#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@aliases": [], - "number@size": 27804, - "text@name": "developer.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.261Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c721", - tenant: "root", - _md: "2023-12-27T12:42:59.261Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228145f98841000981c721#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:41:24.444Z", - SK: "ADMIN_USERS", - PK: "T#root#SYSTEM", - _et: "AdminUsers.System", - _ct: "2023-12-27T12:41:24.444Z", - TYPE: "adminUsers.system" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:42:51.969Z", - SK: "CMS", - PK: "T#root#SYSTEM", - _et: "CmsSystem", - _ct: "2023-12-27T12:42:51.969Z" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:43:01.981Z", - SK: "FB", - PK: "T#root#SYSTEM", - _et: "FormBuilderSystem", - _ct: "2023-12-27T12:43:01.981Z" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:42:52.301Z", - SK: "FM", - PK: "T#root#SYSTEM", - _et: "System", - _ct: "2023-12-27T12:42:52.301Z" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:42:49.990Z", - SK: "I18N", - PK: "T#root#SYSTEM", - _et: "I18NSystem", - _ct: "2023-12-27T12:42:49.990Z" - }, - { - tenant: "root", - version: "5.38.2", - _md: "2023-12-27T12:43:01.256Z", - SK: "PB", - PK: "T#root#SYSTEM", - _et: "PbSystem", - _ct: "2023-12-27T12:43:01.256Z" - }, - { - tenant: "root", - version: "5.38.2", - installedOn: "2023-12-27T12:41:05.169Z", - _md: "2023-12-27T12:41:05.169Z", - SK: "SECURITY", - PK: "T#root#SYSTEM", - _et: "SecuritySystem", - _ct: "2023-12-27T12:41:05.169Z" - }, - { - version: "5.38.2", - _md: "2023-12-27T12:40:58.981Z", - SK: "TENANCY", - PK: "T#root#SYSTEM", - _et: "TenancySystem", - _ct: "2023-12-27T12:40:58.981Z" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@aliases": [], - "number@size": 1864, - "text@name": "hero-block-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.903Z", - TYPE: "cms.entry.l", - entryId: "6022814b7a77e60008f70d62", - tenant: "root", - _md: "2023-12-27T12:42:58.903Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814b7a77e60008f70d62#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@aliases": [], - "number@size": 1864, - "text@name": "hero-block-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.903Z", - TYPE: "cms.entry", - entryId: "6022814b7a77e60008f70d62", - tenant: "root", - _md: "2023-12-27T12:42:58.903Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814b7a77e60008f70d62#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@aliases": [], - "number@size": 888, - "text@name": "feature-card-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.944Z", - TYPE: "cms.entry.l", - entryId: "602282e07a77e60008f70d63", - tenant: "root", - _md: "2023-12-27T12:42:58.944Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602282e07a77e60008f70d63#0001", - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@aliases": [], - "number@size": 888, - "text@name": "feature-card-bg.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.944Z", - TYPE: "cms.entry", - entryId: "602282e07a77e60008f70d63", - tenant: "root", - _md: "2023-12-27T12:42:58.944Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602282e07a77e60008f70d63#0001", - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63" - }, - { - _md: "2023-12-27T12:43:14.870Z", - data: { path: "/welcome-to-webiny", value: "main-menu", tenant: "root", key: "pb-menu" }, - GSI1_SK: "pb-menu#main-menu#/welcome-to-webiny", - SK: "main-menu#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-menu#main-menu#/welcome-to-webiny", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:14.870Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:25.735Z", - entryId: "658c24996607be00087f1167", - tenant: "root", - _md: "2023-12-27T13:20:25.735Z", - createdOn: "2023-12-27T13:20:25.235Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - publishedOn: "2023-12-27T13:20:25.701Z", - webinyVersion: "5.38.2", - id: "658c24996607be00087f1167#0001", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:25.724Z", - TYPE: "cms.entry.p", - entryId: "658c24996607be00087f1167", - tenant: "root", - _md: "2023-12-27T13:20:25.724Z", - createdOn: "2023-12-27T13:20:25.235Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "P", - publishedOn: "2023-12-27T13:20:25.701Z", - webinyVersion: "5.38.2", - id: "658c24996607be00087f1167#0001", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:25.723Z", - TYPE: "cms.entry", - entryId: "658c24996607be00087f1167", - tenant: "root", - _md: "2023-12-27T13:20:25.723Z", - createdOn: "2023-12-27T13:20:25.235Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - publishedOn: "2023-12-27T13:20:25.701Z", - webinyVersion: "5.38.2", - id: "658c24996607be00087f1167#0001", - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@aliases": [], - "number@size": 28918, - "text@name": "adaptable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.105Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c720", - tenant: "root", - _md: "2023-12-27T12:42:59.105Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228145f98841000981c720#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@aliases": [], - "number@size": 28918, - "text@name": "adaptable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.105Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c720", - tenant: "root", - _md: "2023-12-27T12:42:59.105Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228145f98841000981c720#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@aliases": [], - "number@size": 67402, - "text@name": "permission-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.202Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dab", - tenant: "root", - _md: "2023-12-27T12:42:59.202Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dab#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@aliases": [], - "number@size": 67402, - "text@name": "permission-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.202Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dab", - tenant: "root", - _md: "2023-12-27T12:42:59.202Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dab#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab" - }, - { - tenant: "root", - code: "en-US", - _md: "2023-12-27T12:42:49.523Z", - default: true, - createdOn: "2023-12-27T12:42:48.245Z", - SK: "default", - webinyVersion: "5.38.2", - PK: "T#root#I18N#L#D", - _et: "I18NLocale", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:49.523Z" - }, - { - SK: "default", - eventTargetId: "wby-apw-scheduler-event-rule-target-34a2e04", - PK: "APW#SETTINGS", - mainGraphqlFunctionArn: - "arn:aws:lambda:eu-central-1:674320871285:function:wby-graphql-670ccd3", - eventRuleName: "wby-apw-scheduler-event-rule-3889a7f" - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:43:00.006Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "658c1b73c39bb10008431b44" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@title": "Welcome to Webiny", - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "text@status": "published", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "datetime@savedOn": "2023-12-27T12:43:00.723Z" - }, - "object@location": { "text@folderId": "root" }, - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:43:01.107Z", - TYPE: "L", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - tenant: "root", - _md: "2023-12-27T12:43:01.107Z", - createdOn: "2023-12-27T12:43:00.006Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:43:00.006Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "object@data": { - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@type": "admin", - "text@id": "658c1b73c39bb10008431b44" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@title": "Welcome to Webiny", - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "text@status": "published", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "datetime@savedOn": "2023-12-27T12:43:00.723Z" - }, - "object@location": { "text@folderId": "root" }, - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@type": "PbPage", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:43:01.107Z", - TYPE: "cms.entry", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - tenant: "root", - _md: "2023-12-27T12:43:01.107Z", - createdOn: "2023-12-27T12:43:00.006Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - _md: "2023-12-27T12:43:19.454Z", - data: { - path: "/", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { value: "658c1bd3c39bb10008431b5b#0001", key: "pb-page" }, - { value: "main-menu", key: "pb-menu" } - ] - } - }, - { name: "graphql.json", type: "application/json", meta: {} } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/", - SK: "A", - PK: "T#root#PS#RENDER#/", - _et: "PrerenderingServiceRender", - _ct: "2023-12-27T12:43:19.454Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.l", - _md: "2023-12-27T12:43:00.864Z", - SK: "L", - publishedOn: "2023-12-27T12:43:00.723Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/welcome-to-webiny", - savedOn: "2023-12-27T12:43:00.723Z", - locale: "en-US", - pid: "658c1bd3c39bb10008431b5b", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.864Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.947Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - title: "Welcome to Webiny" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.p", - _md: "2023-12-27T12:43:00.881Z", - SK: "P", - publishedOn: "2023-12-27T12:43:00.723Z", - id: "658c1bd3c39bb10008431b5b#0001", - editor: "page-builder", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-12-27T12:43:00.723Z", - pid: "658c1bd3c39bb10008431b5b", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.881Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.947Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - title: "Welcome to Webiny" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page", - _md: "2023-12-27T12:43:00.864Z", - SK: "REV#0001", - publishedOn: "2023-12-27T12:43:00.723Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/welcome-to-webiny", - savedOn: "2023-12-27T12:43:00.723Z", - locale: "en-US", - pid: "658c1bd3c39bb10008431b5b", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.864Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.947Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - title: "Welcome to Webiny" - }, - { - _et: "SecurityIdentity2Tenant", - _ct: "2023-12-27T12:41:24.428Z", - tenant: "root", - identity: "658c1b73c39bb10008431b44", - _md: "2023-12-27T12:41:24.428Z", - createdOn: "2023-12-27T12:41:24.428Z", - data: { - teams: [], - groups: [{ permissions: [{ name: "*" }], id: "658c1b60c39bb10008431b42" }] - }, - GSI1_SK: "TYPE#group#IDENTITY#658c1b73c39bb10008431b44", - SK: "LINK#T#root", - webinyVersion: "5.38.2", - PK: "IDENTITY#658c1b73c39bb10008431b44", - type: "group", - GSI1_PK: "T#root" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@aliases": [], - "number@size": 33888, - "text@name": "scaffolding.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.041Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba26", - tenant: "root", - _md: "2023-12-27T12:42:59.041Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba26#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@aliases": [], - "number@size": 33888, - "text@name": "scaffolding.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.023Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba26", - tenant: "root", - _md: "2023-12-27T12:42:59.023Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba26#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26" - }, - { - _md: "2023-12-27T12:43:23.802Z", - data: { - path: "/not-found", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { value: "658c1bd3c39bb10008431b5c#0001", key: "pb-page" }, - { value: "main-menu", key: "pb-menu" } - ] - } - }, - { name: "graphql.json", type: "application/json", meta: {} } - ], - locale: "en-US", - tenant: "root", - tags: [{ value: true, key: "notFoundPage" }] - }, - GSI1_SK: "/not-found", - SK: "A", - PK: "T#root#PS#RENDER#/not-found", - _et: "PrerenderingServiceRender", - _ct: "2023-12-27T12:43:23.802Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@aliases": [], - "number@size": 60602, - "text@name": "cost-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.122Z", - TYPE: "cms.entry.l", - entryId: "6022814851197600081724ae", - tenant: "root", - _md: "2023-12-27T12:42:59.122Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814851197600081724ae#0001", - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@aliases": [], - "number@size": 60602, - "text@name": "cost-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.121Z", - TYPE: "cms.entry", - entryId: "6022814851197600081724ae", - tenant: "root", - _md: "2023-12-27T12:42:59.121Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814851197600081724ae#0001", - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae" - }, - { - icon: "fas/star", - savedOn: "2023-12-27T12:42:51.921Z", - locale: "en-US", - slug: "ungrouped", - _et: "CmsGroups", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - name: "Ungrouped", - _ct: "2023-12-27T12:42:51.962Z", - TYPE: "cms.group", - tenant: "root", - _md: "2023-12-27T12:42:51.962Z", - createdOn: "2023-12-27T12:42:51.921Z", - SK: "658c1bcbc39bb10008431b45", - description: "A generic content model group", - webinyVersion: "5.38.2", - id: "658c1bcbc39bb10008431b45", - PK: "T#root#L#en-US#CMS#CMG" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@aliases": [], - "number@size": 3661, - "text@name": "webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.964Z", - TYPE: "cms.entry.l", - entryId: "6022814a0df4b000088735bb", - tenant: "root", - _md: "2023-12-27T12:42:58.964Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814a0df4b000088735bb#0001", - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@aliases": [], - "number@size": 3661, - "text@name": "webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.964Z", - TYPE: "cms.entry", - entryId: "6022814a0df4b000088735bb", - tenant: "root", - _md: "2023-12-27T12:42:58.964Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814a0df4b000088735bb#0001", - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb" - }, - { - _md: "2023-12-27T12:43:14.832Z", - data: { - path: "/welcome-to-webiny", - files: [ - { - name: "index.html", - type: "text/html", - meta: { - tags: [ - { value: "658c1bd3c39bb10008431b5b#0001", key: "pb-page" }, - { value: "main-menu", key: "pb-menu" } - ] - } - }, - { name: "graphql.json", type: "application/json", meta: {} } - ], - locale: "en-US", - tenant: "root" - }, - GSI1_SK: "/welcome-to-webiny", - SK: "A", - PK: "T#root#PS#RENDER#/welcome-to-webiny", - _et: "PrerenderingServiceRender", - _ct: "2023-12-27T12:43:14.831Z", - TYPE: "ps.render", - GSI1_PK: "T#root#PS#RENDER" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:12.835Z", - entryId: "658c248b6607be00087f1166", - tenant: "root", - _md: "2023-12-27T13:20:12.835Z", - createdOn: "2023-12-27T13:20:11.821Z", - locked: true, - - // We've deliberately removed the `ownedBy` field here, just so we can see how - // the data migration code will behave / what operations will be performed on the record. - // ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - - SK: "L", - publishedOn: "2023-12-27T13:20:12.775Z", - webinyVersion: "5.38.2", - id: "658c248b6607be00087f1166#0001", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:12.803Z", - TYPE: "cms.entry.p", - entryId: "658c248b6607be00087f1166", - tenant: "root", - _md: "2023-12-27T13:20:12.803Z", - createdOn: "2023-12-27T13:20:11.821Z", - locked: true, - - // We've deliberately removed the `ownedBy` field here, just so we can see how - // the data migration code will behave / what operations will be performed on the record. - // ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - - SK: "P", - publishedOn: "2023-12-27T13:20:12.775Z", - webinyVersion: "5.38.2", - id: "658c248b6607be00087f1166#0001", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:12.803Z", - TYPE: "cms.entry", - entryId: "658c248b6607be00087f1166", - tenant: "root", - _md: "2023-12-27T13:20:12.803Z", - createdOn: "2023-12-27T13:20:11.821Z", - locked: true, - - // We've deliberately removed the `ownedBy` field here, just so we can see how - // the data migration code will behave / what operations will be performed on the record. - // ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - - SK: "REV#0001", - publishedOn: "2023-12-27T13:20:12.775Z", - webinyVersion: "5.38.2", - id: "658c248b6607be00087f1166#0001", - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@aliases": [], - "number@size": 390, - "text@name": "pink-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.004Z", - TYPE: "cms.entry.l", - entryId: "60228148f98841000981c723", - tenant: "root", - _md: "2023-12-27T12:42:59.004Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228148f98841000981c723#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@aliases": [], - "number@size": 390, - "text@name": "pink-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.004Z", - TYPE: "cms.entry", - entryId: "60228148f98841000981c723", - tenant: "root", - _md: "2023-12-27T12:42:59.004Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228148f98841000981c723#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@aliases": [], - "number@size": 1758, - "text@name": "serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.065Z", - TYPE: "cms.entry.l", - entryId: "602281486639200009fd35eb", - tenant: "root", - _md: "2023-12-27T12:42:59.065Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486639200009fd35eb#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@aliases": [], - "number@size": 1758, - "text@name": "serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.065Z", - TYPE: "cms.entry", - entryId: "602281486639200009fd35eb", - tenant: "root", - _md: "2023-12-27T12:42:59.065Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486639200009fd35eb#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@aliases": [], - "number@size": 90163, - "text@name": "webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.984Z", - TYPE: "cms.entry.l", - entryId: "6022814891bd1300087bd24c", - tenant: "root", - _md: "2023-12-27T12:42:58.984Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814891bd1300087bd24c#0001", - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@aliases": [], - "number@size": 90163, - "text@name": "webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.984Z", - TYPE: "cms.entry", - entryId: "6022814891bd1300087bd24c", - tenant: "root", - _md: "2023-12-27T12:42:58.984Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814891bd1300087bd24c#0001", - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@aliases": [], - "number@size": 30007, - "text@name": "octo-cat.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.281Z", - TYPE: "cms.entry.l", - entryId: "60228145f98841000981c71f", - tenant: "root", - _md: "2023-12-27T12:42:59.281Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228145f98841000981c71f#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@aliases": [], - "number@size": 30007, - "text@name": "octo-cat.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.281Z", - TYPE: "cms.entry", - entryId: "60228145f98841000981c71f", - tenant: "root", - _md: "2023-12-27T12:42:59.281Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228145f98841000981c71f#0001", - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f" - }, - { - _md: "2023-12-27T12:27:56.852Z", - data: { - description: "starting point for applicable migrations detection", - reason: "initial migration", - id: "5.38.2-000", - finishedOn: "2023-12-27T12:27:56.852Z", - startedOn: "2023-12-27T12:27:56.852Z" - }, - GSI1_SK: "5.38.2-000", - SK: "A", - PK: "MIGRATION#5.38.2-000", - _et: "Migration", - _ct: "2023-12-27T12:27:56.852Z", - TYPE: "migration", - GSI1_PK: "MIGRATIONS" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@aliases": [], - "number@size": 392, - "text@name": "cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.081Z", - TYPE: "cms.entry.l", - entryId: "602281486639200009fd35ec", - tenant: "root", - _md: "2023-12-27T12:42:59.081Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486639200009fd35ec#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@aliases": [], - "number@size": 392, - "text@name": "cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.068Z", - TYPE: "cms.entry", - entryId: "602281486639200009fd35ec", - tenant: "root", - _md: "2023-12-27T12:42:59.068Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486639200009fd35ec#0001", - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec" - }, - { - _md: "2023-12-27T12:43:23.860Z", - data: { - path: "/not-found", - value: "658c1bd3c39bb10008431b5c#0001", - tenant: "root", - key: "pb-page" - }, - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5c#0001#/not-found", - SK: "658c1bd3c39bb10008431b5c#0001#/not-found", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5c#0001#/not-found", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:23.860Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:22:46.130Z", - entryId: "658c2524adbc1700090e1ad1", - tenant: "root", - _md: "2023-12-27T13:22:46.130Z", - createdOn: "2023-12-27T13:22:44.672Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - publishedOn: "2023-12-27T13:22:46.091Z", - webinyVersion: "5.38.2", - id: "658c2524adbc1700090e1ad1#0001", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1" - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:22:46.115Z", - TYPE: "cms.entry.p", - entryId: "658c2524adbc1700090e1ad1", - tenant: "root", - _md: "2023-12-27T13:22:46.115Z", - createdOn: "2023-12-27T13:22:44.672Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "P", - publishedOn: "2023-12-27T13:22:46.091Z", - webinyVersion: "5.38.2", - id: "658c2524adbc1700090e1ad1#0001", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1" - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:22:46.114Z", - TYPE: "cms.entry", - entryId: "658c2524adbc1700090e1ad1", - tenant: "root", - _md: "2023-12-27T13:22:46.114Z", - createdOn: "2023-12-27T13:22:44.672Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - publishedOn: "2023-12-27T13:22:46.091Z", - webinyVersion: "5.38.2", - id: "658c2524adbc1700090e1ad1#0001", - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@aliases": [], - "number@size": 7806, - "text@name": "scalable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.102Z", - TYPE: "cms.entry.l", - entryId: "60228148fa244d0008c47c79", - tenant: "root", - _md: "2023-12-27T12:42:59.102Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228148fa244d0008c47c79#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@aliases": [], - "number@size": 7806, - "text@name": "scalable-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.101Z", - TYPE: "cms.entry", - entryId: "60228148fa244d0008c47c79", - tenant: "root", - _md: "2023-12-27T12:42:59.101Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228148fa244d0008c47c79#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@aliases": [], - "number@size": 27878, - "text@name": "idp.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.146Z", - TYPE: "cms.entry.l", - entryId: "60228148f98841000981c724", - tenant: "root", - _md: "2023-12-27T12:42:59.146Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228148f98841000981c724#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@aliases": [], - "number@size": 27878, - "text@name": "idp.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.146Z", - TYPE: "cms.entry", - entryId: "60228148f98841000981c724", - tenant: "root", - _md: "2023-12-27T12:42:59.146Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228148f98841000981c724#0001", - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724" - }, - { - _md: "2023-12-27T12:43:19.484Z", - data: { path: "/", value: "658c1bd3c39bb10008431b5b#0001", tenant: "root", key: "pb-page" }, - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5b#0001#/", - SK: "658c1bd3c39bb10008431b5b#0001#/", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5b#0001#/", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:19.484Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - tenant: "root", - code: "en-US", - _md: "2023-12-27T12:42:49.523Z", - default: true, - createdOn: "2023-12-27T12:42:48.245Z", - SK: "en-US", - webinyVersion: "5.38.2", - PK: "T#root#I18N#L", - _et: "I18NLocale", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:49.523Z" - }, - { - SK: "default", - PK: "ADMIN#SETTINGS", - data: { appUrl: "https://d3hohw12noi930.cloudfront.net" } - }, - { - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.p.path", - _md: "2023-12-27T12:43:00.682Z", - SK: "/not-found", - publishedOn: "2023-12-27T12:43:00.663Z", - id: "658c1bd3c39bb10008431b5c#0001", - editor: "page-builder", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/not-found", - locale: "en-US", - savedOn: "2023-12-27T12:43:00.663Z", - pid: "658c1bd3c39bb10008431b5c", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.682Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.964Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#PATH", - title: "Not Found" - }, - { - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - status: "published", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - TYPE: "pb.page.p.path", - _md: "2023-12-27T12:43:00.881Z", - SK: "/welcome-to-webiny", - publishedOn: "2023-12-27T12:43:00.723Z", - id: "658c1bd3c39bb10008431b5b#0001", - editor: "page-builder", - version: 1, - settings: { seo: { meta: [] }, general: { layout: "static" }, social: { meta: [] } }, - path: "/welcome-to-webiny", - locale: "en-US", - savedOn: "2023-12-27T12:43:00.723Z", - pid: "658c1bd3c39bb10008431b5b", - _et: "PbPages", - _ct: "2023-12-27T12:43:00.881Z", - tenant: "root", - createdOn: "2023-12-27T12:42:59.947Z", - locked: true, - category: "static", - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - webinyVersion: "5.38.2", - PK: "T#root#L#en-US#PB#PATH", - title: "Welcome to Webiny" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:34.204Z", - entryId: "658c24a16607be00087f1168", - tenant: "root", - _md: "2023-12-27T13:20:34.204Z", - createdOn: "2023-12-27T13:20:33.775Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - publishedOn: "2023-12-27T13:20:34.175Z", - webinyVersion: "5.38.2", - id: "658c24a16607be00087f1168#0001", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:34.199Z", - TYPE: "cms.entry.p", - entryId: "658c24a16607be00087f1168", - tenant: "root", - _md: "2023-12-27T13:20:34.199Z", - createdOn: "2023-12-27T13:20:33.775Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "P", - publishedOn: "2023-12-27T13:20:34.175Z", - webinyVersion: "5.38.2", - id: "658c24a16607be00087f1168#0001", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - status: "published", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:34.199Z", - TYPE: "cms.entry", - entryId: "658c24a16607be00087f1168", - tenant: "root", - _md: "2023-12-27T13:20:34.199Z", - createdOn: "2023-12-27T13:20:33.775Z", - locked: true, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - publishedOn: "2023-12-27T13:20:34.175Z", - webinyVersion: "5.38.2", - id: "658c24a16607be00087f1168#0001", - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@aliases": [], - "number@size": 17382, - "text@name": "community-icon.png", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.301Z", - TYPE: "cms.entry.l", - entryId: "60228148fa244d0008c47c7a", - tenant: "root", - _md: "2023-12-27T12:42:59.301Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "60228148fa244d0008c47c7a#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@aliases": [], - "number@size": 17382, - "text@name": "community-icon.png", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.301Z", - TYPE: "cms.entry", - entryId: "60228148fa244d0008c47c7a", - tenant: "root", - _md: "2023-12-27T12:42:59.301Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "60228148fa244d0008c47c7a#0001", - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a" - }, - { - _md: "2023-12-27T12:40:58.922Z", - data: { - parent: null, - settings: { domains: [] }, - webinyVersion: "5.38.2", - savedOn: "2023-12-27T12:40:58.921Z", - name: "Root", - description: "The top-level Webiny tenant.", - id: "root", - createdOn: "2023-12-27T12:40:58.921Z", - tags: [], - status: "active" - }, - GSI1_SK: "T#null#2023-12-27T12:40:58.921Z", - SK: "A", - PK: "T#root", - _et: "TenancyTenant", - _ct: "2023-12-27T12:40:58.922Z", - TYPE: "tenancy.tenant", - GSI1_PK: "TENANTS" - }, - { - _md: "2023-12-27T12:43:01.222Z", - data: { - pages: { notFound: "658c1bd3c39bb10008431b5c", home: "658c1bd3c39bb10008431b5b" }, - websiteUrl: null, - name: "devr", - prerendering: { app: { url: null }, meta: {}, storage: { name: null } }, - locale: "en-US", - type: "default", - tenant: "root" - }, - SK: "A", - PK: "T#root#L#en-US#PB#SETTINGS", - _et: "PbSettings", - _ct: "2023-12-27T12:43:01.222Z", - TYPE: "pb.settings" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@aliases": [], - "number@size": 5053, - "text@name": "webiny-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.924Z", - TYPE: "cms.entry.l", - entryId: "6022814b0df4b000088735bc", - tenant: "root", - _md: "2023-12-27T12:42:58.924Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814b0df4b000088735bc#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@aliases": [], - "number@size": 5053, - "text@name": "webiny-logo.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:58.924Z", - TYPE: "cms.entry", - entryId: "6022814b0df4b000088735bc", - tenant: "root", - _md: "2023-12-27T12:42:58.924Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814b0df4b000088735bc#0001", - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc" - }, - { - _md: "2023-12-27T12:42:52.281Z", - data: { - srcPrefix: "https://d3oted5odtbsmd.cloudfront.net/files/", - uploadMinFileSize: 0, - uploadMaxFileSize: 10737418240, - tenant: "root" - }, - SK: "A", - PK: "T#root#FM#SETTINGS", - _et: "FM.Settings", - _ct: "2023-12-27T12:42:52.281Z", - TYPE: "fm.settings" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:42.180Z", - locale: "en-US", - status: "draft", - values: { - "long-text@z2tdm05d": { compression: "gzip", value: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:42.181Z", - TYPE: "cms.entry.l", - entryId: "658c24aa6607be00087f1169", - tenant: "root", - _md: "2023-12-27T13:20:42.181Z", - createdOn: "2023-12-27T13:20:42.180Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "658c24aa6607be00087f1169#0001", - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169" - }, - { - modelId: "modelA", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:20:42.180Z", - locale: "en-US", - status: "draft", - values: { - "long-text@z2tdm05d": { compression: "gzip", value: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:20:42.181Z", - TYPE: "cms.entry", - entryId: "658c24aa6607be00087f1169", - tenant: "root", - _md: "2023-12-27T13:20:42.181Z", - createdOn: "2023-12-27T13:20:42.180Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "658c24aa6607be00087f1169#0001", - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169" - }, - { - SK: "default", - PK: "PS#SETTINGS", - data: { - bucket: "wby-delivery-68ac55a", - cloudfrontId: "E12G8OCR2J2BDW", - appUrl: "https://d1c9xtq19d4x6u.cloudfront.net", - deliveryUrl: "https://d1jwcc7rxvj5th.cloudfront.net", - sqsQueueUrl: - "https://sqs.eu-central-1.amazonaws.com/674320871285/wby-ps-render-queue-bcd2dfd.fifo" - } - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:23:15.536Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "file@5atpz8nu": null, - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQA3yyBkIAAAAA==" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:23:15.570Z", - TYPE: "L", - entryId: "658c2531adbc1700090e1ad2", - tenant: "root", - _md: "2023-12-27T13:23:15.570Z", - createdOn: "2023-12-27T13:22:57.094Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "658c2531adbc1700090e1ad2#0001", - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - modelId: "modelB", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T13:23:15.536Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "file@5atpz8nu": null, - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED", - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQA3yyBkIAAAAA==" - } - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T13:23:15.570Z", - TYPE: "cms.entry", - entryId: "658c2531adbc1700090e1ad2", - tenant: "root", - _md: "2023-12-27T13:23:15.570Z", - createdOn: "2023-12-27T13:22:57.094Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "658c2531adbc1700090e1ad2#0001", - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - modifiedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" } - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@aliases": [], - "number@size": 108898, - "text@name": "webiny-serverless-cms.png ", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.062Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dad", - tenant: "root", - _md: "2023-12-27T12:42:59.062Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dad#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@aliases": [], - "number@size": 108898, - "text@name": "webiny-serverless-cms.png ", - "text@type": "image/png", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.061Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dad", - tenant: "root", - _md: "2023-12-27T12:42:59.061Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dad#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad" - }, - { - _md: "2023-12-27T12:43:23.860Z", - data: { path: "/not-found", value: "main-menu", tenant: "root", key: "pb-menu" }, - GSI1_SK: "pb-menu#main-menu#/not-found", - SK: "main-menu#/not-found", - PK: "T#root#PS#TAG#pb-menu#main-menu#/not-found", - _et: "PrerenderingServiceTagPathLink", - _ct: "2023-12-27T12:43:23.860Z", - TYPE: "ps.tagPathLink", - GSI1_PK: "T#root#PS#TAG" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@aliases": [], - "number@size": 132767, - "text@name": "environments.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.045Z", - TYPE: "cms.entry.l", - entryId: "6022814bef4a940008b3ba28", - tenant: "root", - _md: "2023-12-27T12:42:59.045Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba28#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@aliases": [], - "number@size": 132767, - "text@name": "environments.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.045Z", - TYPE: "cms.entry", - entryId: "6022814bef4a940008b3ba28", - tenant: "root", - _md: "2023-12-27T12:42:59.045Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "6022814bef4a940008b3ba28#0001", - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@aliases": [], - "number@size": 73153, - "text@name": "data-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.161Z", - TYPE: "cms.entry.l", - entryId: "602281486ed41f0008bc2dac", - tenant: "root", - _md: "2023-12-27T12:42:59.161Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "L", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dac#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac" - }, - { - modelId: "fmFile", - version: 1, - location: { folderId: "root" }, - savedOn: "2023-12-27T12:42:58.754Z", - locale: "en-US", - status: "draft", - values: { - "object@meta": { "boolean@private": true }, - "object@location": { "text@folderId": "root" }, - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@aliases": [], - "number@size": 73153, - "text@name": "data-icon.svg", - "text@type": "image/svg+xml", - "text@tags": [] - }, - _et: "CmsEntries", - createdBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - _ct: "2023-12-27T12:42:59.161Z", - TYPE: "cms.entry", - entryId: "602281486ed41f0008bc2dac", - tenant: "root", - _md: "2023-12-27T12:42:59.161Z", - createdOn: "2023-12-27T12:42:58.754Z", - locked: false, - ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - SK: "REV#0001", - webinyVersion: "5.38.2", - id: "602281486ed41f0008bc2dac#0001", - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac" - }, - { - _md: "2023-12-27T12:41:24.417Z", - data: { - firstName: "ad", - lastName: "min", - createdBy: null, - webinyVersion: "5.38.2", - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - createdOn: "2023-12-27T12:41:23.982Z", - email: "admin@webiny.com", - tenant: "root", - group: "658c1b60c39bb10008431b42" - }, - GSI1_SK: "admin@webiny.com", - SK: "A", - PK: "T#root#ADMIN_USER#658c1b73c39bb10008431b44", - _et: "AdminUsers.User", - _ct: "2023-12-27T12:41:24.417Z", - TYPE: "adminUsers.user", - GSI1_PK: "T#root#ADMIN_USERS" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts deleted file mode 100644 index 01ef5abf8d9..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts +++ /dev/null @@ -1,148 +0,0 @@ -export const headlessCmsAcoSearchRecordPbPage = [ - { - _index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b:L", - _score: 1.0, - _source: { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T12:43:00.006Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "text@type": "PbPage", - "text@title": "Welcome to Webiny", - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "object@location": { - "text@folderId": "root" - }, - "object@data": { - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@title": "Welcome to Webiny", - "object@createdBy": { - "text@id": "658c1b73c39bb10008431b44", - "text@displayName": "ad min", - "text@type": "admin" - }, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "text@status": "published", - "number@version": 1, - "boolean@locked": true, - "text@path": "/welcome-to-webiny" - }, - "text@tags": [] - }, - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - tenant: "root", - createdOn: "2023-12-27T12:43:00.006Z", - locked: false, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - modifiedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@data": { - "object@createdBy": {} - } - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-acosearchrecord-pbpage", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c:L", - _score: 1.0, - _source: { - modelId: "acoSearchRecord-pbpage", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T12:43:00.024Z", - locale: "en-US", - status: "draft", - meta: {}, - values: { - "text@type": "PbPage", - "text@title": "Not Found", - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "object@location": { - "text@folderId": "root" - }, - "object@data": { - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@title": "Not Found", - "object@createdBy": { - "text@id": "658c1b73c39bb10008431b44", - "text@displayName": "ad min", - "text@type": "admin" - }, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "text@status": "published", - "number@version": 1, - "boolean@locked": true, - "text@path": "/not-found" - }, - "text@tags": [] - }, - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - tenant: "root", - createdOn: "2023-12-27T12:43:00.024Z", - locked: false, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - webinyVersion: "5.38.2", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - modifiedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@data": { - "object@createdBy": {} - } - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.es-index-root-headless-cms-en-us-fmfile.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.es-index-root-headless-cms-en-us-fmfile.ts deleted file mode 100644 index 6da9a8108bb..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.es-index-root-headless-cms-en-us-fmfile.ts +++ /dev/null @@ -1,1150 +0,0 @@ -export const headlessCmsFmFile = [ - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814b0df4b000088735bc", - id: "6022814b0df4b000088735bc#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "webiny-logo.svg", - "text@key": - "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@type": "image/svg+xml", - "number@size": 5053, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486639200009fd35ec", - id: "602281486639200009fd35ec#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "cms-benefits-shape.svg", - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@type": "image/svg+xml", - "number@size": 392, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228148f98841000981c723:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228148f98841000981c723", - id: "60228148f98841000981c723#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "pink-shape.svg", - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@type": "image/svg+xml", - "number@size": 390, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602282e07a77e60008f70d63", - id: "602282e07a77e60008f70d63#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "feature-card-bg.svg", - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@type": "image/svg+xml", - "number@size": 888, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228145f98841000981c720:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228145f98841000981c720", - id: "60228145f98841000981c720#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "adaptable-icon.svg", - "text@key": - "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@type": "image/svg+xml", - "number@size": 28918, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486ed41f0008bc2dab", - id: "602281486ed41f0008bc2dab#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "permission-icon.svg", - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@type": "image/svg+xml", - "number@size": 67402, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486639200009fd35eb", - id: "602281486639200009fd35eb#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "serverless-cms-logo.svg", - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@type": "image/svg+xml", - "number@size": 1758, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814bef4a940008b3ba28", - id: "6022814bef4a940008b3ba28#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "environments.svg", - "text@key": - "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@type": "image/svg+xml", - "number@size": 132767, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486ed41f0008bc2dad", - id: "602281486ed41f0008bc2dad#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "webiny-serverless-cms.png ", - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@type": "image/png", - "number@size": 108898, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228148fa244d0008c47c7a", - id: "60228148fa244d0008c47c7a#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "community-icon.png", - "text@key": - "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@type": "image/png", - "number@size": 17382, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228145f98841000981c721:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228145f98841000981c721", - id: "60228145f98841000981c721#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "developer.svg", - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@type": "image/svg+xml", - "number@size": 27804, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228145f98841000981c71f", - id: "60228145f98841000981c71f#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "octo-cat.svg", - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@type": "image/svg+xml", - "number@size": 30007, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "602281486ed41f0008bc2dac", - id: "602281486ed41f0008bc2dac#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "data-icon.svg", - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@type": "image/svg+xml", - "number@size": 73153, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814891bd1300087bd24c", - id: "6022814891bd1300087bd24c#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "webiny-infrastructure-overview.svg", - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@type": "image/svg+xml", - "number@size": 90163, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814b7a77e60008f70d62", - id: "6022814b7a77e60008f70d62#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "hero-block-bg.svg", - "text@key": - "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@type": "image/svg+xml", - "number@size": 1864, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814bef4a940008b3ba26", - id: "6022814bef4a940008b3ba26#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "scaffolding.svg", - "text@key": - "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@type": "image/svg+xml", - "number@size": 33888, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814851197600081724ae:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814851197600081724ae", - id: "6022814851197600081724ae#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "cost-icon.svg", - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@type": "image/svg+xml", - "number@size": 60602, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228148fa244d0008c47c79", - id: "60228148fa244d0008c47c79#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "scalable-icon.svg", - "text@key": - "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@type": "image/svg+xml", - "number@size": 7806, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814bef4a940008b3ba27", - id: "6022814bef4a940008b3ba27#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "security.svg", - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@type": "image/svg+xml", - "number@size": 17711, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#60228148f98841000981c724:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "60228148f98841000981c724", - id: "60228148f98841000981c724#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "idp.svg", - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@type": "image/svg+xml", - "number@size": 27878, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-fmfile", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "6022814a0df4b000088735bb", - id: "6022814a0df4b000088735bb#0001", - modelId: "fmFile", - locale: "en-US", - createdOn: "2023-12-27T12:42:58.754Z", - savedOn: "2023-12-27T12:42:58.754Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "object@location": { - "text@folderId": "root" - }, - "text@name": "webiny-serverless-application-framework.svg", - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@type": "image/svg+xml", - "number@size": 3661, - "object@meta": { - "boolean@private": true - }, - "text@tags": [], - "text@aliases": [] - }, - location: { - folderId: "root" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.es-index-root-headless-cms-en-us-modela.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.es-index-root-headless-cms-en-us-modela.ts deleted file mode 100644 index 01c1fe4eab5..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.es-index-root-headless-cms-en-us-modela.ts +++ /dev/null @@ -1,292 +0,0 @@ -export const headlessCmsModelA = [ - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167:P", - _score: 1.0, - _source: { - modelId: "modelA", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 2", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2" - }, - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - entryId: "658c24996607be00087f1167", - tenant: "root", - createdOn: "2023-12-27T13:20:25.235Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - webinyVersion: "5.38.2", - id: "658c24996607be00087f1167#0001", - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - published: true, - TYPE: "cms.entry.p", - __type: "cms.entry.p" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166:P", - _score: 1.0, - _source: { - modelId: "modelA", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 1", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1" - }, - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - entryId: "658c248b6607be00087f1166", - tenant: "root", - createdOn: "2023-12-27T13:20:11.821Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - webinyVersion: "5.38.2", - id: "658c248b6607be00087f1166#0001", - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - published: true, - TYPE: "cms.entry.p", - __type: "cms.entry.p" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c248b6607be00087f1166", - id: "658c248b6607be00087f1166#0001", - modelId: "modelA", - locale: "en-US", - createdOn: "2023-12-27T13:20:11.821Z", - savedOn: "2023-12-27T13:20:12.775Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: true, - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 1", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - publishedOn: "2023-12-27T13:20:12.775Z" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c24a16607be00087f1168", - id: "658c24a16607be00087f1168#0001", - modelId: "modelA", - locale: "en-US", - createdOn: "2023-12-27T13:20:33.775Z", - savedOn: "2023-12-27T13:20:34.175Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: true, - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 3", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - publishedOn: "2023-12-27T13:20:34.175Z" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c24aa6607be00087f1169", - id: "658c24aa6607be00087f1169#0001", - modelId: "modelA", - locale: "en-US", - createdOn: "2023-12-27T13:20:42.180Z", - savedOn: "2023-12-27T13:20:42.180Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: false, - status: "draft", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 4", - "long-text@z2tdm05d": "" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168:P", - _score: 1.0, - _source: { - modelId: "modelA", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 3", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2" - }, - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - entryId: "658c24a16607be00087f1168", - tenant: "root", - createdOn: "2023-12-27T13:20:33.775Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - webinyVersion: "5.38.2", - id: "658c24a16607be00087f1168#0001", - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - published: true, - TYPE: "cms.entry.p", - __type: "cms.entry.p" - } - }, - { - _index: "root-headless-cms-en-us-modela", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c24996607be00087f1167", - id: "658c24996607be00087f1167#0001", - modelId: "modelA", - locale: "en-US", - createdOn: "2023-12-27T13:20:25.235Z", - savedOn: "2023-12-27T13:20:25.701Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: true, - status: "published", - values: { - "text@f2qcuuzs": "DDB+ES - Model A Entry 2", - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - publishedOn: "2023-12-27T13:20:25.701Z" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.es-index-root-headless-cms-en-us-modelb.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.es-index-root-headless-cms-en-us-modelb.ts deleted file mode 100644 index 2242004e3dc..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.es-index-root-headless-cms-en-us-modelb.ts +++ /dev/null @@ -1,133 +0,0 @@ -export const headlessCmsModelB = [ - { - _index: "root-headless-cms-en-us-modelb", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1:L", - _score: 1.0, - _source: { - webinyVersion: "5.38.2", - tenant: "root", - entryId: "658c2524adbc1700090e1ad1", - id: "658c2524adbc1700090e1ad1#0001", - modelId: "modelB", - locale: "en-US", - createdOn: "2023-12-27T13:22:44.672Z", - savedOn: "2023-12-27T13:22:46.091Z", - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - modifiedBy: null, - version: 1, - locked: true, - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1" - }, - location: { - folderId: "root" - }, - rawValues: {}, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - publishedOn: "2023-12-27T13:22:46.091Z" - } - }, - { - _index: "root-headless-cms-en-us-modelb", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1:P", - _score: 1.0, - _source: { - modelId: "modelB", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - status: "published", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 1", - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1" - }, - createdBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - entryId: "658c2524adbc1700090e1ad1", - tenant: "root", - createdOn: "2023-12-27T13:22:44.672Z", - locked: true, - ownedBy: { - type: "admin", - displayName: "ad min", - id: "658c1b73c39bb10008431b44" - }, - webinyVersion: "5.38.2", - id: "658c2524adbc1700090e1ad1#0001", - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - published: true, - TYPE: "cms.entry.p", - __type: "cms.entry.p" - } - }, - { - _index: "root-headless-cms-en-us-modelb", - _type: "_doc", - _id: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2:L", - _score: 1.0, - _source: { - modelId: "modelB", - version: 1, - location: { - folderId: "root" - }, - savedOn: "2023-12-27T13:23:15.536Z", - locale: "en-US", - status: "draft", - values: { - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED", - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 2 UPDATED" - }, - createdBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - entryId: "658c2531adbc1700090e1ad2", - tenant: "root", - createdOn: "2023-12-27T13:22:57.094Z", - locked: false, - ownedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - webinyVersion: "5.38.2", - id: "658c2531adbc1700090e1ad2#0001", - modifiedBy: { - id: "658c1b73c39bb10008431b44", - displayName: "ad min", - type: "admin" - }, - meta: {}, - rawValues: { - "file@5atpz8nu": null - }, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.test.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.test.ts deleted file mode 100644 index 6b11f0fca06..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/001.test.ts +++ /dev/null @@ -1,285 +0,0 @@ -import { Sort as ElasticsearchSort } from "elastic-ts"; -import { - assertNotError, - createDdbEsMigrationHandler, - getDynamoToEsTable, - importElasticsearchTestData, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { CmsEntriesInitNewMetaFields_5_39_6_001 } from "~/migrations/5.39.6/001/ddb-es"; - -import { transferDynamoDbToElasticsearch } from "~tests/utils/insertElasticsearchTestData"; -import { esGetIndexSettings } from "~/utils"; -import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; -import { getRecordIndexName } from "~tests/migrations/5.37.0/002/ddb-es/helpers"; -import { listElasticsearchItems } from "~tests/utils/listElasticsearchItems"; -import { getDecompressedData } from "~tests/migrations/5.37.0/003/ddb-es/getDecompressedData"; - -// Test data. -import { ddbPrimaryTableData } from "./001.ddbPrimaryTableData"; -import { ddbEsTableData } from "./001.ddbEsTableData"; -import { headlessCmsAcoSearchRecordPbPage } from "./001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage"; -import { headlessCmsFmFile } from "./001.es-index-root-headless-cms-en-us-fmfile"; -import { headlessCmsModelA } from "./001.es-index-root-headless-cms-en-us-modela"; -import { headlessCmsModelB } from "./001.es-index-root-headless-cms-en-us-modelb"; - -// Migrated test data. -import { ddbPrimaryTableDataMigrated } from "./migrated/001.ddbPrimaryTableData"; -import { ddbEsTableDataMigrated } from "./migrated/001.ddbEsTableData"; -import { headlessCmsAcoSearchRecordPbPageMigrated } from "./migrated/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage"; -import { headlessCmsFmFileMigrated } from "./migrated/001.es-index-root-headless-cms-en-us-fmfile"; -import { headlessCmsModelAMigrated } from "./migrated/001.es-index-root-headless-cms-en-us-modela"; -import { headlessCmsModelBMigrated } from "./migrated/001.es-index-root-headless-cms-en-us-modelb"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -// Ensures that either both modifiedOn and modifiedBy fields are set or none is set. -const expectModifiedFieldsAreSynced = (entry: Record) => { - const hasRevisionModifiedOn = !!entry.revisionModifiedOn; - const hasRevisionModifiedBy = !!entry.revisionModifiedBy; - expect(hasRevisionModifiedBy).toBe(hasRevisionModifiedOn); - - const hasEntryModifiedOn = !!entry.entryModifiedOn; - const hasEntryModifiedBy = !!entry.entryModifiedBy; - expect(hasEntryModifiedOn).toBe(hasEntryModifiedBy); -}; - -describe("5.39.6-001", () => { - const primaryTable = getPrimaryDynamoDbTable(); - const dynamoToEsTable = getDynamoToEsTable(); - const elasticsearchClient = createElasticsearchClient(); - - const insertAllTestData = async () => { - await insertTestData(primaryTable, ddbPrimaryTableData); - await insertTestData(dynamoToEsTable, ddbEsTableData); - - const esIndexData = { - "acosearchrecord-pbpage": headlessCmsAcoSearchRecordPbPage, - fmfile: headlessCmsFmFile, - modela: headlessCmsModelA, - modelb: headlessCmsModelB - }; - - for (const indexName in esIndexData) { - await importElasticsearchTestData( - elasticsearchClient, - esIndexData[indexName as keyof typeof esIndexData] - ); - } - - await elasticsearchClient.indices.refreshAll(); - }; - - beforeAll(async () => { - process.env.ELASTIC_SEARCH_INDEX_PREFIX = - new Date().toISOString().replace(/\.|\:/g, "-").toLowerCase() + "-"; - - await elasticsearchClient.indices.deleteAll(); - }); - afterEach(async () => { - await elasticsearchClient.indices.deleteAll(); - }); - - logTestNameBeforeEachTest(); - - it("should not run if no entries without new meta fields were found", async () => { - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [CmsEntriesInitNewMetaFields_5_39_6_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertAllTestData(); - - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [CmsEntriesInitNewMetaFields_5_39_6_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const primaryTableData = await scanTable(primaryTable, { - limit: 1_000_000 - }); - - // Primary DynamoDB table test data has migration-related items - // filtered out. We need to do the same here. - expect(primaryTableData.filter(item => !item.TYPE?.startsWith("migration"))).toEqual( - ddbPrimaryTableDataMigrated - ); - - const ddbEsTableRecordsCompressed = await scanTable(dynamoToEsTable, { - limit: 1_000_000 - }); - - const ddbEsTableRecordsDecompressed = await Promise.all( - ddbEsTableRecordsCompressed.map(async item => { - if (!item.PK.includes("#CMS#CME#")) { - return item; - } - - const decompressed = await getDecompressedData(item.data); - return { - ...item, - data: decompressed - }; - }) - ); - - expect(ddbEsTableRecordsDecompressed).toEqual(ddbEsTableDataMigrated); - - // In the following lines, we're going to check if the data in Elasticsearch is correct. - await transferDynamoDbToElasticsearch( - elasticsearchClient, - dynamoToEsTable, - getRecordIndexName - ); - - const indexes = new Set(); - for (const record of ddbEsTableData) { - const entry = await getDecompressedData(record.data); - if (entry && entry.modelId) { - indexes.add(getRecordIndexName(entry)); - } - } - - expect(indexes.size).toBe(4); - - const [ - headlessCmsAcoSearchRecordPbPageIndexName, - headlessCmsFmFileIndexName, - headlessCmsModelAIndexName, - headlessCmsModelBIndexName - ] = indexes; - - // Ensure correct data ended up in Elasticsearch. - const sort = [ - { - "id.keyword": { order: "desc", unmapped_type: "keyword" }, - "TYPE.keyword": { order: "asc", unmapped_type: "keyword" } - } - ] as ElasticsearchSort; - - // 1. Check ACO Search Record PB Page index. - const migratedHeadlessCmsAcoSearchRecordPbPageRecords = await listElasticsearchItems({ - client: elasticsearchClient, - index: headlessCmsAcoSearchRecordPbPageIndexName, - body: { sort } - }); - - expect(migratedHeadlessCmsAcoSearchRecordPbPageRecords).toBeArrayOfSize(2); - expect(migratedHeadlessCmsAcoSearchRecordPbPageRecords).toEqual( - headlessCmsAcoSearchRecordPbPageMigrated - ); - - headlessCmsAcoSearchRecordPbPageMigrated.forEach(expectModifiedFieldsAreSynced); - - // 2. Check FM File index. - const migratedHeadlessCmsFmFileRecords = await listElasticsearchItems({ - client: elasticsearchClient, - index: headlessCmsFmFileIndexName, - body: { sort } - }); - - expect(migratedHeadlessCmsFmFileRecords).toBeArrayOfSize(21); - expect(migratedHeadlessCmsFmFileRecords).toEqual(headlessCmsFmFileMigrated); - - headlessCmsFmFileMigrated.forEach(expectModifiedFieldsAreSynced); - - // 3. Check Model A index. - const migratedHeadlessCmsModelARecords = await listElasticsearchItems({ - client: elasticsearchClient, - index: headlessCmsModelAIndexName, - body: { sort } - }); - - expect(migratedHeadlessCmsModelARecords).toBeArrayOfSize(7); - expect(migratedHeadlessCmsModelARecords).toEqual(headlessCmsModelAMigrated); - - headlessCmsModelAMigrated.forEach(expectModifiedFieldsAreSynced); - - // 4. Check Model B index. - const migratedHeadlessCmsModelBRecords = await listElasticsearchItems({ - client: elasticsearchClient, - index: headlessCmsModelBIndexName, - body: { sort } - }); - - expect(migratedHeadlessCmsModelBRecords).toBeArrayOfSize(3); - expect(migratedHeadlessCmsModelBRecords).toEqual(headlessCmsModelBMigrated); - - headlessCmsModelBMigrated.forEach(expectModifiedFieldsAreSynced); - - /** - * Test that all indexes have the expected settings after the migration. - */ - for (const index of indexes) { - const settings = await esGetIndexSettings({ - elasticsearchClient, - index, - fields: ["number_of_replicas", "refresh_interval"] - }); - expect(Number(settings?.number_of_replicas)).toBeGreaterThanOrEqual(1); - expect(settings?.refresh_interval).not.toBe(-1); - const interval = parseInt((settings?.refresh_interval as string).replace("s", "")); - expect(interval).toBeGreaterThanOrEqual(1); - } - }); - - it("should not run migration if data is already in the expected shape", async () => { - await insertAllTestData(); - - const handler = createDdbEsMigrationHandler({ - primaryTable, - dynamoToEsTable, - elasticsearchClient, - migrations: [CmsEntriesInitNewMetaFields_5_39_6_001] - }); - - // Should run the migration - { - process.stdout.write("[First run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(1); - } - - // Should skip the migration - { - process.stdout.write("[Second run]\n"); - const { data, error } = await handler(); - assertNotError(error); - const grouped = groupMigrations(data.migrations); - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - } - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.ddbEsTableData.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.ddbEsTableData.ts deleted file mode 100644 index ef3ea1c02ff..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.ddbEsTableData.ts +++ /dev/null @@ -1,3016 +0,0 @@ -// Note that the data is decompressed. -export const ddbEsTableDataMigrated = [ - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - SK: "L", - created: "2023-12-27T12:43:01.141Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.024Z", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - firstPublishedBy: null, - firstPublishedOn: null, - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.024Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@data": { - "object@createdBy": {} - }, - "object@location": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.024Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.024Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.024Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.024Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@status": "published", - "text@title": "Not Found" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@tags": [], - "text@title": "Not Found", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - modified: "2023-12-27T12:43:01.141Z" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "L", - _ct: "2023-12-27T12:43:00.682Z", - _et: "PbPagesEs", - _md: "2023-12-27T12:43:00.682Z", - data: { - __type: "page", - category: "static", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - images: {}, - latest: true, - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - snippet: null, - status: "published", - tags: [], - tenant: "root", - title: "Not Found", - titleLC: "not found", - version: 1, - webinyVersion: "5.38.2" - }, - index: "root-en-us-page-builder" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "P", - _ct: "2023-12-27T12:43:00.682Z", - _et: "PbPagesEs", - _md: "2023-12-27T12:43:00.682Z", - data: { - __type: "page", - category: "static", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - images: {}, - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - published: true, - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - snippet: null, - status: "published", - tags: [], - tenant: "root", - title: "Not Found", - titleLC: "not found", - version: 1, - webinyVersion: "5.38.2" - }, - index: "root-en-us-page-builder" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - SK: "L", - created: "2023-12-27T12:42:59.522Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba27", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba27#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17711, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@name": "security.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.522Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - SK: "L", - created: "2023-12-27T12:42:59.706Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c721", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c721#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27804, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@name": "developer.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.706Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - SK: "L", - created: "2023-12-27T12:42:59.361Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814b7a77e60008f70d62", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814b7a77e60008f70d62#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1864, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@name": "hero-block-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.361Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - SK: "L", - created: "2023-12-27T12:42:59.486Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602282e07a77e60008f70d63", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602282e07a77e60008f70d63#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@name": "feature-card-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.486Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "L", - created: "2023-12-27T13:20:25.736Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:25.736Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "P", - created: "2023-12-27T13:20:25.737Z", - data: { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:25.737Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - SK: "L", - created: "2023-12-27T12:42:59.543Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c720", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c720#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 28918, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@name": "adaptable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.543Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - SK: "L", - created: "2023-12-27T12:42:59.702Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dab", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dab#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 67402, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@name": "permission-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.702Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - SK: "L", - created: "2023-12-27T12:43:01.123Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.006Z", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - firstPublishedBy: null, - firstPublishedOn: null, - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.006Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@data": { - "object@createdBy": {} - }, - "object@location": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.006Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.006Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.006Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.006Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@status": "published", - "text@title": "Welcome to Webiny" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@tags": [], - "text@title": "Welcome to Webiny", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-acosearchrecord-pbpage", - modified: "2023-12-27T12:43:01.123Z" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "L", - _ct: "2023-12-27T12:43:00.864Z", - _et: "PbPagesEs", - _md: "2023-12-27T12:43:00.864Z", - data: { - __type: "page", - category: "static", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - images: {}, - latest: true, - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - snippet: null, - status: "published", - tags: [], - tenant: "root", - title: "Welcome to Webiny", - titleLC: "welcome to webiny", - version: 1, - webinyVersion: "5.38.2" - }, - index: "root-en-us-page-builder" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "P", - _ct: "2023-12-27T12:43:00.864Z", - _et: "PbPagesEs", - _md: "2023-12-27T12:43:00.864Z", - data: { - __type: "page", - category: "static", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - images: {}, - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - published: true, - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - snippet: null, - status: "published", - tags: [], - tenant: "root", - title: "Welcome to Webiny", - titleLC: "welcome to webiny", - version: 1, - webinyVersion: "5.38.2" - }, - index: "root-en-us-page-builder" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - SK: "L", - created: "2023-12-27T12:42:59.525Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba26", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba26#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 33888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@name": "scaffolding.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.525Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - SK: "L", - created: "2023-12-27T12:42:59.561Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814851197600081724ae", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814851197600081724ae#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 60602, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@name": "cost-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.561Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - SK: "L", - created: "2023-12-27T12:42:59.487Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814a0df4b000088735bb", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814a0df4b000088735bb#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 3661, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@name": "webiny-serverless-application-framework.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.487Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "L", - created: "2023-12-27T13:20:12.855Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1", - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:12.855Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "P", - created: "2023-12-27T13:20:12.874Z", - data: { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1", - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:12.874Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - SK: "L", - created: "2023-12-27T12:42:59.488Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148f98841000981c723", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148f98841000981c723#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 390, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@name": "pink-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.488Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - SK: "L", - created: "2023-12-27T12:42:59.527Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486639200009fd35eb", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486639200009fd35eb#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1758, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@name": "serverless-cms-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.527Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - SK: "L", - created: "2023-12-27T12:42:59.523Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814891bd1300087bd24c", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814891bd1300087bd24c#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 90163, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@name": "webiny-infrastructure-overview.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.523Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - SK: "L", - created: "2023-12-27T12:42:59.563Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c71f", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c71f#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 30007, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@name": "octo-cat.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.563Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - SK: "L", - created: "2023-12-27T12:42:59.541Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486639200009fd35ec", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486639200009fd35ec#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 392, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@name": "cms-benefits-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.541Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "L", - created: "2023-12-27T13:22:46.132Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1", - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modelb", - modified: "2023-12-27T13:22:46.132Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "P", - created: "2023-12-27T13:22:46.134Z", - data: { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1", - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modelb", - modified: "2023-12-27T13:22:46.134Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - SK: "L", - created: "2023-12-27T12:42:59.528Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148fa244d0008c47c79", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148fa244d0008c47c79#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 7806, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@name": "scalable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.528Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - SK: "L", - created: "2023-12-27T12:42:59.684Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148f98841000981c724", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148f98841000981c724#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27878, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@name": "idp.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.684Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "L", - created: "2023-12-27T13:20:34.215Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:34.215Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "P", - created: "2023-12-27T13:20:34.216Z", - data: { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:34.216Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - SK: "L", - created: "2023-12-27T12:42:59.705Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148fa244d0008c47c7a", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148fa244d0008c47c7a#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17382, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@name": "community-icon.png", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.705Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - SK: "L", - created: "2023-12-27T12:42:59.482Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814b0df4b000088735bc", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814b0df4b000088735bc#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 5053, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@name": "webiny-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.482Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169", - SK: "L", - created: "2023-12-27T13:20:42.214Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:42.180Z", - entryId: "658c24aa6607be00087f1169", - firstPublishedBy: null, - firstPublishedOn: null, - id: "658c24aa6607be00087f1169#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:42.180Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:42.180Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:42.180Z", - status: "draft", - tenant: "root", - values: { - "long-text@z2tdm05d": "", - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modela", - modified: "2023-12-27T13:20:42.214Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - SK: "L", - created: "2023-12-27T13:23:15.572Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:57.094Z", - entryId: "658c2531adbc1700090e1ad2", - firstPublishedBy: null, - firstPublishedOn: null, - id: "658c2531adbc1700090e1ad2#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "modelB", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:15.536Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "file@5atpz8nu": null - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:57.094Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:15.536Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:15.536Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:23:15.536Z", - status: "draft", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 2 UPDATED", - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-modelb", - modified: "2023-12-27T13:23:15.572Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - SK: "L", - created: "2023-12-27T12:42:59.544Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dad", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dad#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 108898, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@name": "webiny-serverless-cms.png ", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.544Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - SK: "L", - created: "2023-12-27T12:42:59.524Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba28", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba28#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 132767, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@name": "environments.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.524Z" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - SK: "L", - created: "2023-12-27T12:42:59.703Z", - data: { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dac", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dac#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 73153, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@name": "data-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - entity: "CmsEntriesElasticsearch", - index: "root-headless-cms-en-us-fmfile", - modified: "2023-12-27T12:42:59.703Z" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.ddbPrimaryTableData.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.ddbPrimaryTableData.ts deleted file mode 100644 index c3f1971842e..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.ddbPrimaryTableData.ts +++ /dev/null @@ -1,5458 +0,0 @@ -// We commented migrations-related records because of constant changes in these. -export const ddbPrimaryTableDataMigrated = [ - { - GSI1_PK: "T#root#GROUPS", - GSI1_SK: "full-access", - PK: "T#root#GROUP#658c1b60c39bb10008431b42", - SK: "A", - TYPE: "security.group", - _ct: "2023-12-27T12:41:05.020Z", - _et: "SecurityGroup", - _md: "2023-12-27T12:41:05.020Z", - createdOn: "2023-12-27T12:41:04.963Z", - description: "Grants full access to all apps.", - id: "658c1b60c39bb10008431b42", - name: "Full Access", - permissions: [ - { - name: "*" - } - ], - slug: "full-access", - system: true, - tenant: "root", - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - SK: "658c1bd3c39bb10008431b5b#0001#/welcome-to-webiny", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:14.870Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:14.870Z", - data: { - key: "pb-page", - path: "/welcome-to-webiny", - tenant: "root", - value: "658c1bd3c39bb10008431b5b#0001" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:43:01.122Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.024Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:43:01.122Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.024Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.024Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.024Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.024Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.024Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@status": "published", - "text@title": "Not Found" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@tags": [], - "text@title": "Not Found", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:43:01.121Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.024Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:43:01.121Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.024Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.024Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.024Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.024Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.024Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@status": "published", - "text@title": "Not Found" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@tags": [], - "text@title": "Not Found", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#C", - SK: "static", - TYPE: "pb.category", - _ct: "2023-12-27T12:42:57.966Z", - _et: "PbCategories", - _md: "2023-12-27T12:42:57.966Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:57.965Z", - layout: "static", - locale: "en-US", - name: "Static", - slug: "static", - tenant: "root", - url: "/static/" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "L", - TYPE: "pb.page.l", - _ct: "2023-12-27T12:43:00.681Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.681Z", - category: "static", - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Not Found", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "P", - TYPE: "pb.page.p", - _ct: "2023-12-27T12:43:00.682Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.682Z", - category: "static", - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Not Found", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5c", - SK: "REV#0001", - TYPE: "pb.page", - _ct: "2023-12-27T12:43:00.681Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.681Z", - category: "static", - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Not Found", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#M", - SK: "main-menu", - TYPE: "pb.menu", - _ct: "2023-12-27T12:42:59.821Z", - _et: "PbMenus", - _md: "2023-12-27T12:42:59.821Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.821Z", - description: "The main menu of the website, containing links to most important pages.", - items: [], - locale: "en-US", - slug: "main-menu", - tenant: "root", - title: "Main Menu" - }, - { - PK: "T#root#L#en-US#FB#SETTINGS", - SK: "default", - _ct: "2023-12-27T12:43:01.966Z", - _et: "FormBuilderSettings", - _md: "2023-12-27T12:43:01.966Z", - domain: "https://d3hohw12noi930.cloudfront.net", - locale: "en-US", - reCaptcha: { - enabled: null, - secretKey: null, - siteKey: null - }, - tenant: "root" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-menu#main-menu#/", - PK: "T#root#PS#TAG#pb-menu#main-menu#/", - SK: "main-menu#/", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:19.484Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:19.484Z", - data: { - key: "pb-menu", - path: "/", - tenant: "root", - value: "main-menu" - } - }, - { - GSI1_PK: "T#root#GROUPS", - GSI1_SK: "anonymous", - PK: "T#root#GROUP#658c1b61c39bb10008431b43", - SK: "A", - TYPE: "security.group", - _ct: "2023-12-27T12:41:05.147Z", - _et: "SecurityGroup", - _md: "2023-12-27T12:41:05.147Z", - createdOn: "2023-12-27T12:41:05.146Z", - description: "Permissions for anonymous users (public access).", - id: "658c1b61c39bb10008431b43", - name: "Anonymous", - permissions: [], - slug: "anonymous", - system: true, - tenant: "root", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.007Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba27", - id: "6022814bef4a940008b3ba27#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.007Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17711, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@name": "security.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba27", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.007Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba27", - id: "6022814bef4a940008b3ba27#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.007Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17711, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@name": "security.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CM", - SK: "modelA", - TYPE: "cms.model", - _ct: "2023-12-27T13:20:12.156Z", - _et: "CmsModels", - _md: "2023-12-27T13:20:12.156Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:18:26.594Z", - descriptionFieldId: "description", - fields: [ - { - fieldId: "title", - helpText: null, - id: "f2qcuuzs", - label: "Title", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "text-input" - }, - settings: {}, - storageId: "text@f2qcuuzs", - tags: [], - type: "text", - validation: [ - { - message: "Title is a required field.", - name: "required", - settings: {} - } - ] - }, - { - fieldId: "description", - helpText: null, - id: "z2tdm05d", - label: "Description", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "long-text-text-area" - }, - settings: {}, - storageId: "long-text@z2tdm05d", - tags: [], - type: "long-text", - validation: [] - }, - { - fieldId: "image", - helpText: null, - id: "8y67xrmj", - label: "Image", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "file-input" - }, - settings: { - imagesOnly: true - }, - storageId: "file@8y67xrmj", - tags: [], - type: "file", - validation: [] - } - ], - group: { - id: "658c1bcbc39bb10008431b45", - name: "Ungrouped" - }, - imageFieldId: "image", - layout: [["f2qcuuzs"], ["z2tdm05d", "8y67xrmj"]], - locale: "en-US", - lockedFields: [ - { - fieldId: "text@f2qcuuzs", - multipleValues: false, - type: "text" - }, - { - fieldId: "long-text@z2tdm05d", - multipleValues: false, - type: "long-text" - }, - { - fieldId: "file@8y67xrmj", - multipleValues: false, - type: "file" - } - ], - modelId: "modelA", - name: "ModelA", - pluralApiName: "ModelAs", - savedOn: "2023-12-27T13:18:39.298Z", - singularApiName: "ModelA", - tags: ["type:model"], - tenant: "root", - titleFieldId: "title", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CM", - SK: "modelB", - TYPE: "cms.model", - _ct: "2023-12-27T13:22:45.032Z", - _et: "CmsModels", - _md: "2023-12-27T13:22:45.032Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:21:39.663Z", - descriptionFieldId: "description", - fields: [ - { - fieldId: "title", - helpText: null, - id: "4dep2w2h", - label: "Title", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "text-input" - }, - settings: {}, - storageId: "text@4dep2w2h", - tags: [], - type: "text", - validation: [ - { - message: "Title is a required field.", - name: "required", - settings: {} - } - ] - }, - { - fieldId: "description", - helpText: null, - id: "7c5t8wwa", - label: "Description", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "long-text-text-area" - }, - settings: {}, - storageId: "long-text@7c5t8wwa", - tags: [], - type: "long-text", - validation: [] - }, - { - fieldId: "image", - helpText: null, - id: "5atpz8nu", - label: "Image", - listValidation: [], - multipleValues: false, - placeholderText: null, - predefinedValues: { - enabled: false, - values: [] - }, - renderer: { - name: "file-input" - }, - settings: { - imagesOnly: true - }, - storageId: "file@5atpz8nu", - tags: [], - type: "file", - validation: [] - } - ], - group: { - id: "658c1bcbc39bb10008431b45", - name: "Ungrouped" - }, - imageFieldId: "image", - layout: [["4dep2w2h"], ["7c5t8wwa", "5atpz8nu"]], - locale: "en-US", - lockedFields: [ - { - fieldId: "text@4dep2w2h", - multipleValues: false, - type: "text" - }, - { - fieldId: "long-text@7c5t8wwa", - multipleValues: false, - type: "long-text" - }, - { - fieldId: "file@5atpz8nu", - multipleValues: false, - type: "file" - } - ], - modelId: "modelB", - name: "ModelB", - pluralApiName: "ModelBs", - savedOn: "2023-12-27T13:21:46.459Z", - singularApiName: "ModelB", - tags: ["type:model"], - tenant: "root", - titleFieldId: "title", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.262Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c721", - id: "60228145f98841000981c721#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.262Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27804, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@name": "developer.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c721", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.261Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c721", - id: "60228145f98841000981c721#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.261Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27804, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@name": "developer.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "ADMIN_USERS", - TYPE: "adminUsers.system", - _ct: "2023-12-27T12:41:24.444Z", - _et: "AdminUsers.System", - _md: "2023-12-27T12:41:24.444Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "CMS", - _ct: "2023-12-27T12:42:51.969Z", - _et: "CmsSystem", - _md: "2023-12-27T12:42:51.969Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "FB", - _ct: "2023-12-27T12:43:01.981Z", - _et: "FormBuilderSystem", - _md: "2023-12-27T12:43:01.981Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "FM", - _ct: "2023-12-27T12:42:52.301Z", - _et: "System", - _md: "2023-12-27T12:42:52.301Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "I18N", - _ct: "2023-12-27T12:42:49.990Z", - _et: "I18NSystem", - _md: "2023-12-27T12:42:49.990Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "PB", - _ct: "2023-12-27T12:43:01.256Z", - _et: "PbSystem", - _md: "2023-12-27T12:43:01.256Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "SECURITY", - _ct: "2023-12-27T12:41:05.169Z", - _et: "SecuritySystem", - _md: "2023-12-27T12:41:05.169Z", - installedOn: "2023-12-27T12:41:05.169Z", - tenant: "root", - version: "5.38.2" - }, - { - PK: "T#root#SYSTEM", - SK: "TENANCY", - _ct: "2023-12-27T12:40:58.981Z", - _et: "TenancySystem", - _md: "2023-12-27T12:40:58.981Z", - version: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.903Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814b7a77e60008f70d62", - id: "6022814b7a77e60008f70d62#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.903Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1864, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@name": "hero-block-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b7a77e60008f70d62", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.903Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814b7a77e60008f70d62", - id: "6022814b7a77e60008f70d62#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.903Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1864, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@name": "hero-block-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.944Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602282e07a77e60008f70d63", - id: "602282e07a77e60008f70d63#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.944Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@name": "feature-card-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602282e07a77e60008f70d63", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.944Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602282e07a77e60008f70d63", - id: "602282e07a77e60008f70d63#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.944Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@name": "feature-card-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-menu#main-menu#/welcome-to-webiny", - PK: "T#root#PS#TAG#pb-menu#main-menu#/welcome-to-webiny", - SK: "main-menu#/welcome-to-webiny", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:14.870Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:14.870Z", - data: { - key: "pb-menu", - path: "/welcome-to-webiny", - tenant: "root", - value: "main-menu" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:25.735Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entity: "CmsEntries", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:25.735Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:20:25.724Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entity: "CmsEntries", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:25.724Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24996607be00087f1167", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:25.723Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entity: "CmsEntries", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:25.723Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.105Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c720", - id: "60228145f98841000981c720#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.105Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 28918, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@name": "adaptable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c720", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.105Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c720", - id: "60228145f98841000981c720#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.105Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 28918, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@name": "adaptable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.202Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dab", - id: "602281486ed41f0008bc2dab#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.202Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 67402, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@name": "permission-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dab", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.202Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dab", - id: "602281486ed41f0008bc2dab#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.202Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 67402, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@name": "permission-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#I18N#L#D", - SK: "default", - _ct: "2023-12-27T12:42:49.523Z", - _et: "I18NLocale", - _md: "2023-12-27T12:42:49.523Z", - code: "en-US", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:48.245Z", - default: true, - tenant: "root", - webinyVersion: "5.38.2" - }, - { - PK: "APW#SETTINGS", - SK: "default", - eventRuleName: "wby-apw-scheduler-event-rule-3889a7f", - eventTargetId: "wby-apw-scheduler-event-rule-target-34a2e04", - mainGraphqlFunctionArn: - "arn:aws:lambda:eu-central-1:674320871285:function:wby-graphql-670ccd3" - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:43:01.107Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.006Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:43:01.107Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.006Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.006Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.006Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.006Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.006Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@status": "published", - "text@title": "Welcome to Webiny" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@tags": [], - "text@title": "Welcome to Webiny", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:43:01.107Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.006Z", - entity: "CmsEntries", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modified: "2023-12-27T12:43:01.107Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.006Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.006Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.006Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.006Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.006Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@status": "published", - "text@title": "Welcome to Webiny" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@tags": [], - "text@title": "Welcome to Webiny", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#RENDER", - GSI1_SK: "/", - PK: "T#root#PS#RENDER#/", - SK: "A", - TYPE: "ps.render", - _ct: "2023-12-27T12:43:19.454Z", - _et: "PrerenderingServiceRender", - _md: "2023-12-27T12:43:19.454Z", - data: { - files: [ - { - meta: { - tags: [ - { - key: "pb-page", - value: "658c1bd3c39bb10008431b5b#0001" - }, - { - key: "pb-menu", - value: "main-menu" - } - ] - }, - name: "index.html", - type: "text/html" - }, - { - meta: {}, - name: "graphql.json", - type: "application/json" - } - ], - locale: "en-US", - path: "/", - tenant: "root" - } - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "L", - TYPE: "pb.page.l", - _ct: "2023-12-27T12:43:00.864Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.864Z", - category: "static", - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Welcome to Webiny", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "P", - TYPE: "pb.page.p", - _ct: "2023-12-27T12:43:00.881Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.881Z", - category: "static", - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Welcome to Webiny", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#P#658c1bd3c39bb10008431b5b", - SK: "REV#0001", - TYPE: "pb.page", - _ct: "2023-12-27T12:43:00.864Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.864Z", - category: "static", - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Welcome to Webiny", - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root", - GSI1_SK: "TYPE#group#IDENTITY#658c1b73c39bb10008431b44", - PK: "IDENTITY#658c1b73c39bb10008431b44", - SK: "LINK#T#root", - _ct: "2023-12-27T12:41:24.428Z", - _et: "SecurityIdentity2Tenant", - _md: "2023-12-27T12:41:24.428Z", - createdOn: "2023-12-27T12:41:24.428Z", - data: { - groups: [ - { - id: "658c1b60c39bb10008431b42", - permissions: [ - { - name: "*" - } - ] - } - ], - teams: [] - }, - identity: "658c1b73c39bb10008431b44", - tenant: "root", - type: "group", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.041Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba26", - id: "6022814bef4a940008b3ba26#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.041Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 33888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@name": "scaffolding.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba26", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.023Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba26", - id: "6022814bef4a940008b3ba26#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.023Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 33888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@name": "scaffolding.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#RENDER", - GSI1_SK: "/not-found", - PK: "T#root#PS#RENDER#/not-found", - SK: "A", - TYPE: "ps.render", - _ct: "2023-12-27T12:43:23.802Z", - _et: "PrerenderingServiceRender", - _md: "2023-12-27T12:43:23.802Z", - data: { - files: [ - { - meta: { - tags: [ - { - key: "pb-page", - value: "658c1bd3c39bb10008431b5c#0001" - }, - { - key: "pb-menu", - value: "main-menu" - } - ] - }, - name: "index.html", - type: "text/html" - }, - { - meta: {}, - name: "graphql.json", - type: "application/json" - } - ], - locale: "en-US", - path: "/not-found", - tags: [ - { - key: "notFoundPage", - value: true - } - ], - tenant: "root" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.122Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814851197600081724ae", - id: "6022814851197600081724ae#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.122Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 60602, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@name": "cost-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814851197600081724ae", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.121Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814851197600081724ae", - id: "6022814851197600081724ae#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.121Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 60602, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@name": "cost-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CMG", - SK: "658c1bcbc39bb10008431b45", - TYPE: "cms.group", - _ct: "2023-12-27T12:42:51.962Z", - _et: "CmsGroups", - _md: "2023-12-27T12:42:51.962Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:51.921Z", - description: "A generic content model group", - icon: "fas/star", - id: "658c1bcbc39bb10008431b45", - locale: "en-US", - name: "Ungrouped", - savedOn: "2023-12-27T12:42:51.921Z", - slug: "ungrouped", - tenant: "root", - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.964Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814a0df4b000088735bb", - id: "6022814a0df4b000088735bb#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.964Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 3661, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@name": "webiny-serverless-application-framework.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814a0df4b000088735bb", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.964Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814a0df4b000088735bb", - id: "6022814a0df4b000088735bb#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.964Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 3661, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@name": "webiny-serverless-application-framework.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#RENDER", - GSI1_SK: "/welcome-to-webiny", - PK: "T#root#PS#RENDER#/welcome-to-webiny", - SK: "A", - TYPE: "ps.render", - _ct: "2023-12-27T12:43:14.831Z", - _et: "PrerenderingServiceRender", - _md: "2023-12-27T12:43:14.832Z", - data: { - files: [ - { - meta: { - tags: [ - { - key: "pb-page", - value: "658c1bd3c39bb10008431b5b#0001" - }, - { - key: "pb-menu", - value: "main-menu" - } - ] - }, - name: "index.html", - type: "text/html" - }, - { - meta: {}, - name: "graphql.json", - type: "application/json" - } - ], - locale: "en-US", - path: "/welcome-to-webiny", - tenant: "root" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:12.835Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entity: "CmsEntries", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:12.835Z", - - // We've deliberately removed the `ownedBy` field here, just so we can see how - // the data migration code will behave / what operations will be performed on the record. - // ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - - publishedOn: "2023-12-27T13:20:12.775Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:20:12.803Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entity: "CmsEntries", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:12.803Z", - - // We've deliberately removed the `ownedBy` field here, just so we can see how - // the data migration code will behave / what operations will be performed on the record. - // ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - - publishedOn: "2023-12-27T13:20:12.775Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c248b6607be00087f1166", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:12.803Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entity: "CmsEntries", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:12.803Z", - - // We've deliberately removed the `ownedBy` field here, just so we can see how - // the data migration code will behave / what operations will be performed on the record. - // ownedBy: { type: "admin", displayName: "ad min", id: "658c1b73c39bb10008431b44" }, - - publishedOn: "2023-12-27T13:20:12.775Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAQArKdlkBgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.004Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c723", - id: "60228148f98841000981c723#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.004Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 390, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@name": "pink-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c723", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.004Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c723", - id: "60228148f98841000981c723#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.004Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 390, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@name": "pink-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.065Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35eb", - id: "602281486639200009fd35eb#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.065Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1758, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@name": "serverless-cms-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35eb", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.065Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35eb", - id: "602281486639200009fd35eb#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.065Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1758, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@name": "serverless-cms-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.984Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814891bd1300087bd24c", - id: "6022814891bd1300087bd24c#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.984Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 90163, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@name": "webiny-infrastructure-overview.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814891bd1300087bd24c", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.984Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814891bd1300087bd24c", - id: "6022814891bd1300087bd24c#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.984Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 90163, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@name": "webiny-infrastructure-overview.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.281Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c71f", - id: "60228145f98841000981c71f#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.281Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 30007, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@name": "octo-cat.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228145f98841000981c71f", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.281Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228145f98841000981c71f", - id: "60228145f98841000981c71f#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.281Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 30007, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@name": "octo-cat.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.081Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35ec", - id: "602281486639200009fd35ec#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.081Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 392, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@name": "cms-benefits-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486639200009fd35ec", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.068Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486639200009fd35ec", - id: "602281486639200009fd35ec#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.068Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 392, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@name": "cms-benefits-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5c#0001#/not-found", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5c#0001#/not-found", - SK: "658c1bd3c39bb10008431b5c#0001#/not-found", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:23.860Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:23.860Z", - data: { - key: "pb-page", - path: "/not-found", - tenant: "root", - value: "658c1bd3c39bb10008431b5c#0001" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:22:46.130Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entity: "CmsEntries", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modified: "2023-12-27T13:22:46.130Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:22:46.115Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entity: "CmsEntries", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modified: "2023-12-27T13:22:46.115Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2524adbc1700090e1ad1", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:22:46.114Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entity: "CmsEntries", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modified: "2023-12-27T13:22:46.114Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMAQAaZvoqRgAAAA=" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.102Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c79", - id: "60228148fa244d0008c47c79#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.102Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 7806, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@name": "scalable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c79", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.101Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c79", - id: "60228148fa244d0008c47c79#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.101Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 7806, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@name": "scalable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.146Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c724", - id: "60228148f98841000981c724#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.146Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27878, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@name": "idp.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148f98841000981c724", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.146Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148f98841000981c724", - id: "60228148f98841000981c724#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.146Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27878, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@name": "idp.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-page#658c1bd3c39bb10008431b5b#0001#/", - PK: "T#root#PS#TAG#pb-page#658c1bd3c39bb10008431b5b#0001#/", - SK: "658c1bd3c39bb10008431b5b#0001#/", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:19.484Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:19.484Z", - data: { - key: "pb-page", - path: "/", - tenant: "root", - value: "658c1bd3c39bb10008431b5b#0001" - } - }, - { - PK: "T#root#I18N#L", - SK: "en-US", - _ct: "2023-12-27T12:42:49.523Z", - _et: "I18NLocale", - _md: "2023-12-27T12:42:49.523Z", - code: "en-US", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:48.245Z", - default: true, - tenant: "root", - webinyVersion: "5.38.2" - }, - { - PK: "ADMIN#SETTINGS", - SK: "default", - data: { - appUrl: "https://d3hohw12noi930.cloudfront.net" - } - }, - { - PK: "T#root#L#en-US#PB#PATH", - SK: "/not-found", - TYPE: "pb.page.p.path", - _ct: "2023-12-27T12:43:00.682Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.682Z", - category: "static", - content: { - compression: "jsonpack", - content: - "id|h0HqpItbGT|type|document|data|settings|elements|ZlkwCyXhhc|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|horizontalAlignFlex|center|verticalAlign|flex-start|pwR8zBN28v|grid|1100px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|6838kMd5Vh|cell|80px|size|iG8DLRffpF|heading|text|typography|heading1|alignment|tag|h1|color|color3|Page+not+found!|9UHkb1nlN1|paragraph|paragraph1|div|Sorry,+but+the+page+you+were+looking+for+could+not+be+found.|PkNZ6zIVWv|button|buttonText|TAKE+ME+HOme|30px|link|href|/|primary^C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|N|$A|O]|P|$A|Q]]]|6|@$0|R|2|S|4|$5|$9|$A|$B|T]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M]]|S|$U|V]|W|$A|$X|Y]|Z|$X|10]]|N|$A|Q]|P|$A|Q]]]|6|@$0|11|2|12|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|E|13]]|S|$14|1U]]]|6|@$0|15|2|16|4|$17|$A|$2|16|18|19|1A|O|1B|1C|1D|1E]|4|$17|1F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|1G|2|1H|4|$17|$A|$2|1H|18|1I|1A|O|1B|1J|1D|1E]|4|$17|1K]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|1L|2|1M|4|$1N|1O|5|$D|$A|$L|F|J|-1|E|1P]]|N|$A|O]]|1Q|$1R|1S]|2|1T]|6|@]]]]]]]]]]" - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.964Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5c#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/not-found", - pid: "658c1bd3c39bb10008431b5c", - publishedOn: "2023-12-27T12:43:00.663Z", - savedOn: "2023-12-27T12:43:00.663Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Not Found", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#PB#PATH", - SK: "/welcome-to-webiny", - TYPE: "pb.page.p.path", - _ct: "2023-12-27T12:43:00.881Z", - _et: "PbPages", - _md: "2023-12-27T12:43:00.881Z", - category: "static", - content: { - compression: "jsonpack", - content: - 'id|Fv1PpPWu-|type|document|data|settings|elements|xqt7BI4iN9|block|width|desktop|value|100%25|margin|top|0px|right|bottom|left|advanced|padding|all|10px|100px|275px|16px|tablet|horizontalAlignFlex|center|verticalAlign|flex-start|background|image|file|6022814b7a77e60008f70d62|src|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg|gdE7Q7rcA|grid|1100px|20px|cellsType|12|gridSettings|flexDirection|row|mobile-landscape|column|_fbQO4Nlpp|cell|size|cdk_pclqE|6022814b0df4b000088735bc|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg|height|44px|ovLRNqyVu3|wmMU13uZ10|1eUZzAvoB|heading|text|typography|heading1|alignment|tag|h1|color|color6|Welcome+to+Webiny|F6ZREnQcc|64px|oEgjDLVXUu|0xYOozhJw|paragraph|paragraph1|div|Webiny+makes+it+easy+to+build+applications+and+websites+on+top+of+the+serverless+infrastructure+by+providing+you+with+a+ready-made+CMS+and+a+development+framework.
|20%25|20%25|gwhTOrZvc|30px|6-6|EaIMtHtOIw|-8px|px|602282e07a77e60008f70d63|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg|8k7zxQUTm|heading6|h6|Scalable|qNngQ1C-5|paragraph2|Webiny+apps+can+scale+to+handle+the+most+demanding+workloads.
|uBv_VRv0i|8px|iQaW4vjKg|No+custom+tooling+required|Wy3Tw-Lb8|Webiny+eliminates+the+need+to+build+custom+tooling+to+create+serverless+app
|uwrjoSZkB|Q39eQZm_8z|zSVZIwnSQ0|Cost+effective|S-Ydr4kX6k|Webiny+apps+run+on+serverless+infrastructure+which+costs+80%25+less+than+VMs
|nUX2JXYjhD|8z0hL8l7ay|Resolves+serverless+challenges|04ZNIcAGE_|Webiny+removes+all+the+challenges+of+building+serverless+applications
|vm0cFfH8KG|100%25|65px|75px|txeqybzKr3|80px|wMjC2uv8cj|Pm7ws20iA|color3|Get+to+know+Webiny+products|6CPpd558B|heading2|h2|Architect.+Code.+Deploy.|1e0_OJgMx|gpYd80MXeg|40px|15px|kAYc-QClR|4-8|border|style|solid|rgba(229,+229,+229,+1)|1|8i803wClVt|p55J-BkDn|6022814a0df4b000088735bb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg|90px|link|8nddxG64r|PR-yiR65n|heading3|h3|Webiny+Serverless+

Application+Framework|pVH9_fFLM|x0SSJvgrdD|b0iE8vr2S|Everything+you+need+to+create+and+deploy+applications+on+top+of+the+serverless+infrastructure. 
|JMSKwWsT_|OU70Y990tA|T_M_Ww4Wb|heading4|h4|Use+it+to+build:|806nmKOyc|g59JmcyM-7|Cyziie_SK|list|

    \n++++++++++++++++++++
  • Full-stack+applications
  • Multi-tenant+solutions
  • \n++++++++++++++++
|ST0O1ZeCk|ILrAABWXiX|
    \n++++++++++++++++++++
  • APIs
  • Microservice
  • \n++++++++++++++++
|XxXGeIywO|9H5t3COdbo|mc0_RS9rg|button|buttonText|Learn+more|50px|href|https://www.webiny.com/serverless-application-framework/|newTab|primary|icon|fas|long-arrow-alt-right|svg||position|16|Kg3rMc1Re|LAcQHMs8K|8oaRz-Gko_|9fQ9W-xiB|6022814891bd1300087bd24c|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg|YCG34DB89|xvBXD_QTkN|GqW2LBMzV|An+easier+way+to+build+serverless+apps|9cWYQwXUd|There+are+many+solutions+that+help+you+run,+deploy+and+monitor+serverless+functions,+but+when+it+comes+to+actually+coding+one,+there+are+none.+Webiny+is+a+solution+that+helps+you+code+your+serverless+app+by+providing+you+with+all+the+components+like+ACL,+routing,+file+storage+and+many+more.
|LxqyquKlYy|100%25|60px|177px|60228148f98841000981c723|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg|yqrzxoDllE|70px|bD-TQmZyW8|4ESAx7NxM|Framework+features|Xr7NLMpzm|3-3-3-3|_RtRioPOsj|12px|mOr47ImJK|AlTNw-76F8|r0e8MiCuK|6022814bef4a940008b3ba27|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg|170px|QFwbqHtSh|DH-C0-mBsO|XSN-oY3V3|Users,+groups,+roles+&+scopes|Unyhp8o-a|Security+is+a+crucial+layer+in+any+application.+Webiny+includes+a+full-featured+security+module+that\'s+connected+to+the+built-in+GraphQL+API.Users,+groups,+roles+&+scopes
|Ntcduee0-|0b66dbGkG|PoRqI9i2xE|0ZpnBSqjoz|6022814bef4a940008b3ba26|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg|FFGobMHHI|IWxl_nrRkr|I5btsZceI|Scaffolding|5qvaQSnP6|Quickly+generate+boilerplate+code+using+CLI+plugins.+From+lambda+functions+to+new+GraphQL+APIs.
|YHUznp7ZM5|PlxqV_uS7B|zKQYI-EIFl|frRuzWpRI|60228148f98841000981c724|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg|M1tvv840H|fwreagGdac|6H1tgEViY|Customizable+security|h0Ctka4TED|Use+the+default+AWS+Cognito,+or+replace+with+3rd+party+identity+providers+like+Okta,+Auth0,+etc.+Using+plugins+you+can+make+Webiny+work+with+any+identity+provider.
|SyyrOA60AF|GvU31fd4U|1vAxZAkD9O|dlI-qhVLKy|6022814bef4a940008b3ba28|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg|ftA7NOOxG|WU58SBDPP8|QtYfpt1yoE|Multiple+environments|mmpGUzg6o1|No+code+change+goes+directly+into+a+production+environment.+Webiny+CLI+makes+it+easy+to+manage+and+create+multiple+environments+for+your+project.
|wYK9BhaanZ|100%25|125px|ur1DQFl5BR|TzBvXtU2PH|-PU3iBlQ4|A6sNR3MR-5|Xtqk_itss|602281486ed41f0008bc2dad|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png|495px|bsKTDygik|ev9nhHISRw|1BBr9ACuM|One+size+doesn\'t+fit+all|0olguTqDN|It\'s+a+very+different+set+of+requirements+a+technical+team+has+to+a+marketing+team+to+a+business+development+team.+Webiny+Serverless+CMS+comes+with+several+different+apps+you+can+use+independently,+or+together+as+part+of+a+cohesive+solution.
|BhnYb3VW7D|QYZ290WhC|rgba(238,+238,+238,+1)|ER2SFYwbeK|gZp3Hxm5Js|602281486639200009fd35eb|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg|FsOaMudE8|ElruSYJxWM|Webiny+Serverless+

CMS|9HJcM89Am|8Cp2ZC30_H|qrS5wswdQ|heading5|h5|A+suite+of+applications+to+help+you+manage+your+content.+|pLUutc-E2|MGlDcu91q_|A6rStUekq|Use+it+to+build:|jIdakfVZU|5JHsGc_Rq-|SNOFqUK6lI|

    \n++++++++++++++++++++
  • Marketing+sites
  • \n++++++++++++++++++++
  • Multi-website+solutions
  • \n++++++++++++++++++++
  • Content+hubs
  • \n++++++++++++++++
|96dJBnIlc|5cPfb7AwXH|
    \n++++++++++++++++++++
  • Multi-language+sites
  • \n++++++++++++++++++++
  • Intranet+portals
  • \n++++++++++++++++++++
  • Headless+content+models
  • \n++++++++++++++++
|L4dFyzBKMM|Learn+more|https://www.webiny.com/serverless-cms/||mjmNmloeUS|100%25|220px|602281486639200009fd35ec|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg|xUkOEAm5X3|Kgr1ambSuG|AP_uTrgLZ|CMS+benefits|juBaAPJ76|4-4-4|s95PSAToXK|35px|ZECp8jcZD|60228148fa244d0008c47c79|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg|146px|EyKog1RmH|Scalable|_8lCcwhUN|No+matter+the+demand,+Webiny+Serverless+CMS+can+easily+scale+to+meet+even+the+most+challenging+workloads.
|SmrEQ9OZ8|QWM8cmlQEM|60228145f98841000981c720|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg|TYx-A5YCI|Adaptable|SsbWKZz_Z|Being+an+open-source+project,+it\'s+easy+to+modify+and+adapt+things+to+your+own+needs.
|gqdtbKfv7l|jBWaxzt-4|6022814851197600081724ae|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg|NLSOIstf9|Low+cost+of+ownership|kI-neIjkXx|Self-hosted+on+top+of+serverless+infrastructure.+No+infrastructure+to+mange,+less+people+required+to+operate+and+maintain.
|V14HHGmXN|-djsQadY-8|pTVeVoKkTi|bM5b8O7IMY|Secure|l9PuI-TdVA|Secured+by+AWS+Cognito.+It\'s+also+easy+to+integrate+services+like+OKTA,+Auth0+and+similar.
|N1lW0cAasg|W-ub9guhLt|602281486ed41f0008bc2dac|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg|DVhLZfrM53|Data+ownership|shmIumNfIu|Webiny+is+self-hosted,+it+means+your+data+stays+within+your+data+center.+
|8F7J_16a46|2gtT4Mfw6c|602281486ed41f0008bc2dab|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg|5EMJkVWgKW|Permission+control|cdSOjFAWkf|Powerful+options+to+control+the+permissions+your+users+will+have.+They+perfectly+align+with+your+business+requirements. 
|5ggqk561Ka|100%25|C6B8QfkUXs|ChF1iOAbtb|7tRfsJ_SEz|Serverless+makes+infrastructure+easy,+

Webiny+makes+serverless+easy|oYf9t6Uwz|RdazJP-4W1|7jBNW1iTi|60228145f98841000981c721|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg|200px|npNMgLft0|1.+Developer-friendly|DpubDRaGQ|Webiny+has+been+made+with+the+developer+in+mind.+It+helps+them+develop+serverless+applications+with+ease.
|KbQocaayR|KDO-Ja7wS|60228145f98841000981c71f|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg|ETll3nkV4|2.+Open+source|UWPjvO7EC|Webiny+is+created+and+maintained+by+an+amazing+group+of+people.+Being+open+source+means+Webiny+grows+and+evolves+much+faster.+Contributor+are+welcome.
|En4soRn06o|fqxeYbEV4|60228148fa244d0008c47c7a|https://d3oted5odtbsmd.cloudfront.net/files/demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png|276px|e5v0LBbfz|3.+Community|p9FWp5yqUy|We+have+an+active+community+on+slack.+Talk+to+the+core-team,+and+get+help.+Webiny+team+is+always+there+for+any+questions.
|OYp5Z-6Xo|woaE-6v5bN|Y8ndbn88hy|View+Webiny+on+GitHub|https://github.com/webiny/webiny-js|secondary|fab|github|^C|C|C|6|6|6|6|C|6|3|9|C|C|6|6|C|6|C|C|C|3|C|C|3|C|C|3|C|C|3|C|C|6|C|C|6|3|9|C|C|6|6|C|4|4|4|4|4|4|C|4|4|4|C^^$0|1|2|3|4|$5|$]]|6|@$0|7|2|8|4|$5|$9|$A|$B|C]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|O|I|P|G|P]|Q|$J|-1|I|M|G|M]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|Y|Z|10]]]]]]|6|@$0|11|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BC]]]|6|@$0|1F|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|1G|Z|1H]|1I|1J]]|6|@]]]]]]|$0|1K|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1L|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BD]]]|6|@$0|1M|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|1V]|4|$1O|1W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|1X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|1Y|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|1Z|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BE]]]|6|@$0|20|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|1V]|4|$1O|24]]|5|$D|$A|$L|F]]|K|$A|$L|F|J|-1|I|25|G|26]|Q|$I|F|G|F|J|-1]]]]|6|@]]]]]]|$0|27|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]|Q|$I|2C]]|K|$A|$L|F]]|12|$1E|BF]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2F|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2I]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2J|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2L]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BG]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2O|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2Q|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|2S|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]|1A|$J|-2]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|2T|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2B|J|-1]|1A|$J|-1|I|F|H|P]]|K|$A|$L|F]]|12|$1E|BH]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2U|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|2V]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|2W|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|2X]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|2Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|2N|J|-1]|Q|$J|-1|I|2N|E|F]|1A|$J|-1|I|F]]|K|$A|$L|F]]|12|$1E|BI]|V|$A|$W|$X|$0|2D|Z|2E]]]]]]|6|@$0|2Z|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|1V]|4|$1O|30]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|31|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|1V]|4|$1O|32]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|33|2|8|4|$5|$9|$A|$B|34]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|35|H|36|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|37|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|38|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|39|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BJ]]]|6|@$0|3A|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|3C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]|$0|3D|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|S|1S|3F|1U|3B]|4|$1O|3G]]|5|$D|$A|$L|F|J|-1|E|P]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|3H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|3I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|BK]]]|6|@$0|3L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|S]|3N|$A|$3O|3P|1U|3Q|9|$L|3R|J|-1|H|3R]]]]]|6|@$0|3S|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BL]]]|6|@$0|3T|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|3U|Z|3V]|1I|3W]|3X|$]]|6|@]]]]|$0|3Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BM]]]|6|@$0|3Z|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41|1U|3B]|4|$1O|42]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|43|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|44|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BN]]]|6|@$0|45|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|46]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|47|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|P|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|48|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BO]]]|6|@$0|49|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|4C]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4D|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4E|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BP]]]|6|@$0|4F|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4H]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|4I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BQ]]]|6|@$0|4J|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|4K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|4L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|4M|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BR]]]|6|@$0|4N|2|4O|4|$4P|4Q|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|4T|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|50|51|G|9|52]]|6|@]]]]]]]]|$0|53|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$E|F|G|F|H|F|I|F|L|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|BS]]]|6|@$0|54|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|55|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BT]]]|6|@$0|56|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|57|Z|58]]|3X|$]]|6|@]]]]]]|$0|59|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5A|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BU]]]|6|@$0|5B|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|5C]]|5|$D|$A|$L|F|J|-1]]|K|$A|$L|F]]]]|6|@]]|$0|5D|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|5E]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]]]]]|$0|5F|2|8|4|$5|$9|$A|$B|5G]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|5H|G|P|H|5I|I|P|J|-1]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|5J|Z|5K]]]]]]|6|@$0|5L|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|5M|I|F|J|-1]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BV]]]|6|@$0|5O|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|5P]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|5Q|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|5R]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5S|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|5T]|1A|$I|5T|J|-1]]|12|$1E|BW]]]|6|@$0|5U|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|5V|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BX]]]|6|@$0|5W|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|5X|Z|5Y]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|60|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|61|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|BY]]]|6|@$0|62|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|63]]|5|$D|$A|$L|F|J|-1|H|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|64|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|65]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|66|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|BZ]]]|6|@$0|67|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|68|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C0]]]|6|@$0|69|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6A|Z|6B]|1I|5Z]]|6|@]]]]]]|$0|6C|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6D|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C1]]]|6|@$0|6E|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6F]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6G|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6H]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|5T|G|5T]]|12|$1E|C2]]]|6|@$0|6J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6K|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C3]]]|6|@$0|6L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|5Z]|3X|$]]|6|@]]]]]]|$0|6O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6P|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C4]]]|6|@$0|6Q|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|6R]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|6S|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|6T]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|6U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|5T]|1A|$G|5T|J|-1]]|12|$1E|C5]]]|6|@$0|6V|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|28|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|6W|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C6]]]|6|@$0|6X|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6Y|Z|6Z]|1I|5Z]]|6|@]]]]]]|$0|70|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|71|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C7]]]|6|@$0|72|2|1N|4|$1O|$A|$2|1N|1P|2G|1R|S|1S|2H|1U|3B]|4|$1O|73]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|74|2|21|4|$1O|$A|$2|21|1P|2K|1R|S|1S|23|1U|3B]|4|$1O|75]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|76|2|8|4|$5|$9|$A|$B|77]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|78|G|P|H|36|I|P|J|-1]]|R|$A|S]|T|$A|U]]]|6|@$0|79|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7A|2|1D|4|$5|$D|$A|$E|F|G|F|H|38|I|F|J|-1]|1A|$J|-1]]|K|$A|$L|F|J|-1|G|3K]|1A|$J|-1|G|F]]|12|$1E|C8]]]|6|@$0|7B|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7C|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|C9]]]|6|@$0|7D|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7E|Z|7F]|9|7G]]|6|@]]]]]]|$0|7H|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7I|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CA]]]|6|@$0|7J|2|1N|4|$1O|$A|$2|1N|1P|3E|1R|I|1S|3F|1U|3B]|4|$1O|7K]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7L|2|21|4|$1O|$A|$2|21|1P|22|1R|I|1S|23|1U|3B]|4|$1O|7M]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]]]|$0|7N|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|J|-1|I|3K]|1A|$J|-1|I|F]]|12|$1E|CB]]]|6|@$0|7O|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|28|I|F|J|-1]]|12|$15|3M]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]|3N|$A|$3O|3P|1U|7P|9|$J|-1|H|3R]]]]]|6|@$0|7Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CC]]]|6|@$0|7R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|7S|Z|7T]|1I|3W]|3X|$]]|6|@]]]]|$0|7U|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CD]]]|6|@$0|7V|2|1N|4|$1O|$A|$2|1N|1P|40|1R|I|1S|41]|4|$1O|7W]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|7X|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|28|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|7Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CE]]]|6|@$0|7Z|2|1N|4|$1O|$A|$2|1N|1P|80|1R|I|1S|81|1U|3B]|4|$1O|82]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|83|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|4R|G|F|H|14|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|84|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CF]]]|6|@$0|85|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|I|1S|4B|1U|3B]|4|$1O|86]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|87|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|29]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|88|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CG]]]|6|@$0|89|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8A]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]|$0|8B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CH]]]|6|@$0|8C|2|4G|4|$1O|$A|$2|4G|1P|4G|1R|I|1S|23|1U|3B]|4|$1O|8D]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8E|2|4O|4|$4P|8F|5|$D|$A|$L|F|J|-1|E|4R]]|R|$A|U]]|3X|$4S|8G|4U|-1]|2|4V|4W|$0|@4X|4Y]|4Z|8H|51|G|9|52]]|6|@]]]]]]]]|$0|8I|2|8|4|$5|$9|$A|$B|8J]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|38|H|8K|I|P|G|P]]|R|$A|S]|T|$A|U]|V|$A|$W|$X|$0|8L|Z|8M]]]]]]|6|@$0|8N|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|5H|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8O|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CI]]]|6|@$0|8P|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|8Q]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|8R|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|8T|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|G|8U|I|8U]]|12|$1E|CJ]]]|6|@$0|8V|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|8W|Z|8X]|1I|8Y]|3X|$]]|6|@]]|$0|8Z|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|90]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|91|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|92]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|93|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CK]]]|6|@$0|94|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|95|Z|96]|1I|8Y]|3X|$]]|6|@]]|$0|97|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|98]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|99|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9A]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9B|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CL]]]|6|@$0|9C|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9D|Z|9E]|1I|8Y]|3X|$]]|6|@]]|$0|9F|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9G]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9H|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9I]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|9J|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|5H|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|9K|2|1D|4|$5|$D|$A|$E|F|G|F|H|3J|I|F|J|-1]]|K|$A|$L|F|J|-1|G|8U]|1A|$J|-1|I|8U]]|12|$1E|CM]]]|6|@$0|9L|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|6M|Z|6N]|1I|8Y]|3X|$]]|6|@]]|$0|9M|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9N]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9O|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|9P]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Q|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$H|3J|J|-1]]|K|$A|$L|F|J|-1|I|8U|G|8U]]|12|$1E|CN]]]|6|@$0|9R|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|9S|Z|9T]|1I|8Y]|3X|$]]|6|@]]|$0|9U|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|9V]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|9W|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23]|4|$1O|9X]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|9Y|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|8U]|1A|$J|-1|G|8U]]|12|$1E|CO]]]|6|@$0|9Z|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|A0|Z|A1]|1I|8Y]|3X|$]]|6|@]]|$0|A2|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|A3]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|A4|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|A5]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]]]|$0|A6|2|8|4|$5|$9|$A|$B|A7]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|M|J|-1|E|N|H|N|I|P|G|P]]|R|$A|S]|T|$A|U]]]|6|@$0|A8|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|A9|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CP]]]|6|@$0|AA|2|1N|4|$1O|$A|$2|1N|1P|1Q|1R|S|1S|1T|1U|3B]|4|$1O|AB]]|5|$D|$A|$L|F]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|AC|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|38|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|8S]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|AD|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|G|4R]|1A|$G|4R|J|-1|I|4R]]|12|$1E|CQ]]]|6|@$0|AE|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AF|Z|AG]|1I|AH]|3X|$]]|6|@]]|$0|AI|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AJ]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AK|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AL]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AM|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|3J]]|K|$A|$L|F|J|-1|I|4R|G|4R]]|12|$1E|CR]]]|6|@$0|AN|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AO|Z|AP]|1I|AH]|3X|$]]|6|@]]|$0|AQ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|AR]]|5|$D|$A|$L|F|J|-1|E|14]]|K|$A|$L|F]]]]|6|@]]|$0|AS|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|AT]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]|$0|AU|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]|1A|$J|-1|H|4R]]|K|$A|$L|F|J|-1|I|4R]|1A|$J|-1|I|4R|G|4R]]|12|$1E|CS]]]|6|@$0|AV|2|W|4|$5|$R|$A|S]|D|$A|$L|F]]|K|$A|$L|F]]]|W|$X|$0|AW|Z|AX]|1I|AH|9|AY]|3X|$]]|6|@]]|$0|AZ|2|1N|4|$1O|$A|$2|1N|1P|4A|1R|S|1S|4B|1U|3B]|4|$1O|B0]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]|$0|B1|2|21|4|$1O|$A|$2|21|1P|22|1R|S|1S|23|1U|3B]|4|$1O|B2]]|5|$D|$A|$L|F|J|-1|E|M]]|K|$A|$L|F]]]]|6|@]]]]]]|$0|B3|2|12|4|$5|$9|$A|$B|13]]|D|$A|$E|3J|G|F|H|F|I|F|J|-1]]|K|$A|$L|F|E|F|G|F|H|F|I|F]]|12|$15|16]|17|$A|$18|19]|1A|$18|1B]]|R|$A|U]|T|$A|U]]]|6|@$0|B4|2|1D|4|$5|$D|$A|$E|F|G|F|H|F|I|F|J|-1]]|K|$A|$L|F]]|12|$1E|CT]]]|6|@$0|B5|2|4O|4|$4P|B6|5|$D|$A|$L|F]]|R|$A|S]]|3X|$4S|B7|4U|-1]|2|B8|4W|$0|@B9|BA]|4Z|BB|9|52]]|6|@]]]]]]]]]]' - }, - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:59.947Z", - editor: "page-builder", - id: "658c1bd3c39bb10008431b5b#0001", - locale: "en-US", - locked: true, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - path: "/welcome-to-webiny", - pid: "658c1bd3c39bb10008431b5b", - publishedOn: "2023-12-27T12:43:00.723Z", - savedOn: "2023-12-27T12:43:00.723Z", - settings: { - general: { - layout: "static" - }, - seo: { - meta: [] - }, - social: { - meta: [] - } - }, - status: "published", - tenant: "root", - title: "Welcome to Webiny", - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:34.204Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entity: "CmsEntries", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:34.204Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "P", - TYPE: "cms.entry.p", - created: "2023-12-27T13:20:34.199Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entity: "CmsEntries", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:34.199Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24a16607be00087f1168", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:34.199Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entity: "CmsEntries", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modified: "2023-12-27T13:20:34.199Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBUcM0rKapUMAIAFvZsCRgAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.301Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c7a", - id: "60228148fa244d0008c47c7a#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.301Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17382, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@name": "community-icon.png", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#60228148fa244d0008c47c7a", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.301Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "60228148fa244d0008c47c7a", - id: "60228148fa244d0008c47c7a#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.301Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17382, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@name": "community-icon.png", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-12-27T12:40:58.921Z", - PK: "T#root", - SK: "A", - TYPE: "tenancy.tenant", - _ct: "2023-12-27T12:40:58.922Z", - _et: "TenancyTenant", - _md: "2023-12-27T12:40:58.922Z", - data: { - createdOn: "2023-12-27T12:40:58.921Z", - description: "The top-level Webiny tenant.", - id: "root", - name: "Root", - parent: null, - savedOn: "2023-12-27T12:40:58.921Z", - settings: { - domains: [] - }, - status: "active", - tags: [], - webinyVersion: "5.38.2" - } - }, - { - PK: "T#root#L#en-US#PB#SETTINGS", - SK: "A", - TYPE: "pb.settings", - _ct: "2023-12-27T12:43:01.222Z", - _et: "PbSettings", - _md: "2023-12-27T12:43:01.222Z", - data: { - locale: "en-US", - name: "devr", - pages: { - home: "658c1bd3c39bb10008431b5b", - notFound: "658c1bd3c39bb10008431b5c" - }, - prerendering: { - app: { - url: null - }, - meta: {}, - storage: { - name: null - } - }, - tenant: "root", - type: "default", - websiteUrl: null - } - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:58.924Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814b0df4b000088735bc", - id: "6022814b0df4b000088735bc#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.924Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 5053, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@name": "webiny-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814b0df4b000088735bc", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:58.924Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814b0df4b000088735bc", - id: "6022814b0df4b000088735bc#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:58.924Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 5053, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@name": "webiny-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#FM#SETTINGS", - SK: "A", - TYPE: "fm.settings", - _ct: "2023-12-27T12:42:52.281Z", - _et: "FM.Settings", - _md: "2023-12-27T12:42:52.281Z", - data: { - srcPrefix: "https://d3oted5odtbsmd.cloudfront.net/files/", - tenant: "root", - uploadMaxFileSize: 10737418240, - uploadMinFileSize: 0 - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:20:42.181Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:42.180Z", - entity: "CmsEntries", - entryId: "658c24aa6607be00087f1169", - id: "658c24aa6607be00087f1169#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "modelA", - modified: "2023-12-27T13:20:42.181Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:42.180Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:42.180Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:42.180Z", - status: "draft", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c24aa6607be00087f1169", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:20:42.181Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:42.180Z", - entity: "CmsEntries", - entryId: "658c24aa6607be00087f1169", - id: "658c24aa6607be00087f1169#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "modelA", - modified: "2023-12-27T13:20:42.181Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:42.180Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:42.180Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:42.180Z", - status: "draft", - tenant: "root", - values: { - "long-text@z2tdm05d": { - compression: "gzip", - value: "H4sIAAAAAAAAAwMAAAAAAAAAAAA=" - }, - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "PS#SETTINGS", - SK: "default", - data: { - appUrl: "https://d1c9xtq19d4x6u.cloudfront.net", - bucket: "wby-delivery-68ac55a", - cloudfrontId: "E12G8OCR2J2BDW", - deliveryUrl: "https://d1jwcc7rxvj5th.cloudfront.net", - sqsQueueUrl: - "https://sqs.eu-central-1.amazonaws.com/674320871285/wby-ps-render-queue-bcd2dfd.fifo" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T13:23:15.570Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:57.094Z", - entity: "CmsEntries", - entryId: "658c2531adbc1700090e1ad2", - id: "658c2531adbc1700090e1ad2#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "modelB", - modified: "2023-12-27T13:23:15.570Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:15.536Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:57.094Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:15.536Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:15.536Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:23:15.536Z", - status: "draft", - tenant: "root", - values: { - "file@5atpz8nu": null, - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQA3yyBkIAAAAA==" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#658c2531adbc1700090e1ad2", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T13:23:15.570Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:57.094Z", - entity: "CmsEntries", - entryId: "658c2531adbc1700090e1ad2", - id: "658c2531adbc1700090e1ad2#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "modelB", - modified: "2023-12-27T13:23:15.570Z", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:15.536Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:57.094Z", - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:15.536Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:15.536Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:23:15.536Z", - status: "draft", - tenant: "root", - values: { - "file@5atpz8nu": null, - "long-text@7c5t8wwa": { - compression: "gzip", - value: "H4sIAAAAAAAAA3NxcdJ2DVbQVfDNT0nNUXBScM0rKapUMFIIDXBxDHF1AQA3yyBkIAAAAA==" - }, - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.062Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dad", - id: "602281486ed41f0008bc2dad#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.062Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 108898, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@name": "webiny-serverless-cms.png ", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dad", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.061Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dad", - id: "602281486ed41f0008bc2dad#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.061Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 108898, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@name": "webiny-serverless-cms.png ", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#PS#TAG", - GSI1_SK: "pb-menu#main-menu#/not-found", - PK: "T#root#PS#TAG#pb-menu#main-menu#/not-found", - SK: "main-menu#/not-found", - TYPE: "ps.tagPathLink", - _ct: "2023-12-27T12:43:23.860Z", - _et: "PrerenderingServiceTagPathLink", - _md: "2023-12-27T12:43:23.860Z", - data: { - key: "pb-menu", - path: "/not-found", - tenant: "root", - value: "main-menu" - } - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.045Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba28", - id: "6022814bef4a940008b3ba28#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.045Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 132767, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@name": "environments.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#6022814bef4a940008b3ba28", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.045Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "6022814bef4a940008b3ba28", - id: "6022814bef4a940008b3ba28#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.045Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 132767, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@name": "environments.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - SK: "L", - TYPE: "cms.entry.l", - created: "2023-12-27T12:42:59.161Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dac", - id: "602281486ed41f0008bc2dac#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.161Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 73153, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@name": "data-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - PK: "T#root#L#en-US#CMS#CME#602281486ed41f0008bc2dac", - SK: "REV#0001", - TYPE: "cms.entry", - created: "2023-12-27T12:42:59.161Z", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entity: "CmsEntries", - entryId: "602281486ed41f0008bc2dac", - id: "602281486ed41f0008bc2dac#0001", - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modified: "2023-12-27T12:42:59.161Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 73153, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@name": "data-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - GSI1_PK: "T#root#ADMIN_USERS", - GSI1_SK: "admin@webiny.com", - PK: "T#root#ADMIN_USER#658c1b73c39bb10008431b44", - SK: "A", - TYPE: "adminUsers.user", - _ct: "2023-12-27T12:41:24.417Z", - _et: "AdminUsers.User", - _md: "2023-12-27T12:41:24.417Z", - data: { - createdBy: null, - createdOn: "2023-12-27T12:41:23.982Z", - displayName: "ad min", - email: "admin@webiny.com", - firstName: "ad", - group: "658c1b60c39bb10008431b42", - id: "658c1b73c39bb10008431b44", - lastName: "min", - tenant: "root", - webinyVersion: "5.38.2" - } - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts deleted file mode 100644 index 6f2af35f719..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-acosearchrecord-pbpage.ts +++ /dev/null @@ -1,200 +0,0 @@ -export const headlessCmsAcoSearchRecordPbPageMigrated = [ - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.024Z", - entryId: "wby-aco-658c1bd3c39bb10008431b5c", - firstPublishedBy: null, - firstPublishedOn: null, - id: "wby-aco-658c1bd3c39bb10008431b5c#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.024Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@data": { - "object@createdBy": {} - }, - "object@location": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.024Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.024Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.024Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.024Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.964Z", - "datetime@savedOn": "2023-12-27T12:43:00.663Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5c#0001", - "text@path": "/not-found", - "text@pid": "658c1bd3c39bb10008431b5c", - "text@status": "published", - "text@title": "Not Found" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme", - "text@tags": [], - "text@title": "Not Found", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:43:00.006Z", - entryId: "wby-aco-658c1bd3c39bb10008431b5b", - firstPublishedBy: null, - firstPublishedOn: null, - id: "wby-aco-658c1bd3c39bb10008431b5b#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "acoSearchRecord-pbpage", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T12:43:00.006Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@data": { - "object@createdBy": {} - }, - "object@location": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:43:00.006Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T12:43:00.006Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:43:00.006Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:43:00.006Z", - status: "draft", - tenant: "root", - values: { - "object@data": { - "boolean@locked": true, - "datetime@createdOn": "2023-12-27T12:42:59.947Z", - "datetime@savedOn": "2023-12-27T12:43:00.723Z", - "number@version": 1, - "object@createdBy": { - "text@displayName": "ad min", - "text@id": "658c1b73c39bb10008431b44", - "text@type": "admin" - }, - "text@id": "658c1bd3c39bb10008431b5b#0001", - "text@path": "/welcome-to-webiny", - "text@pid": "658c1bd3c39bb10008431b5b", - "text@status": "published", - "text@title": "Welcome to Webiny" - }, - "object@location": { - "text@folderId": "root" - }, - "text@content": - "Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub", - "text@tags": [], - "text@title": "Welcome to Webiny", - "text@type": "PbPage" - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-fmfile.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-fmfile.ts deleted file mode 100644 index f10ae2611b2..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-fmfile.ts +++ /dev/null @@ -1,1605 +0,0 @@ -export const headlessCmsFmFileMigrated = [ - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602282e07a77e60008f70d63", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602282e07a77e60008f70d63#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602282e07a77e60008f70d63/welcome-to-webiny__hero-feature-card-bg.svg", - "text@name": "feature-card-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba28", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba28#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 132767, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba28/welcome-to-webiny__environments.svg", - "text@name": "environments.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba27", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba27#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17711, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba27/welcome-to-webiny__security.svg", - "text@name": "security.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814bef4a940008b3ba26", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814bef4a940008b3ba26#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 33888, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814bef4a940008b3ba26/welcome-to-webiny__scaffolding.svg", - "text@name": "scaffolding.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814b7a77e60008f70d62", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814b7a77e60008f70d62#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1864, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b7a77e60008f70d62/welcome-to-webiny__hero-block-bg.svg", - "text@name": "hero-block-bg.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814b0df4b000088735bc", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814b0df4b000088735bc#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 5053, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814b0df4b000088735bc/welcome-to-webiny__webiny-logo.svg", - "text@name": "webiny-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814a0df4b000088735bb", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814a0df4b000088735bb#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 3661, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814a0df4b000088735bb/welcome-to-webiny__webiny-serverless-application-framework.svg", - "text@name": "webiny-serverless-application-framework.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148fa244d0008c47c7a", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148fa244d0008c47c7a#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 17382, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c7a/welcome-to-webiny__community-icon.png", - "text@name": "community-icon.png", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148fa244d0008c47c79", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148fa244d0008c47c79#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 7806, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148fa244d0008c47c79/welcome-to-webiny__scalable-icon.svg", - "text@name": "scalable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148f98841000981c724", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148f98841000981c724#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27878, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c724/welcome-to-webiny__idp.svg", - "text@name": "idp.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228148f98841000981c723", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228148f98841000981c723#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 390, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228148f98841000981c723/welcome-to-webiny__pink-shape.svg", - "text@name": "pink-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814891bd1300087bd24c", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814891bd1300087bd24c#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 90163, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/6022814891bd1300087bd24c/welcome-to-webiny__webiny-infrastructure-overview.svg", - "text@name": "webiny-infrastructure-overview.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dad", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dad#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 108898, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dad/welcome-to-webiny__webiny-serverless-cms.png", - "text@name": "webiny-serverless-cms.png ", - "text@tags": [], - "text@type": "image/png" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dac", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dac#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 73153, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/602281486ed41f0008bc2dac/welcome-to-webiny__data-icon.svg", - "text@name": "data-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486ed41f0008bc2dab", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486ed41f0008bc2dab#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 67402, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486ed41f0008bc2dab/welcome-to-webiny__permission-icon.svg", - "text@name": "permission-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486639200009fd35ec", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486639200009fd35ec#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 392, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35ec/welcome-to-webiny__cms-benefits-shape.svg", - "text@name": "cms-benefits-shape.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "602281486639200009fd35eb", - firstPublishedBy: null, - firstPublishedOn: null, - id: "602281486639200009fd35eb#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 1758, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": - "demo-pages/602281486639200009fd35eb/welcome-to-webiny__serverless-cms-logo.svg", - "text@name": "serverless-cms-logo.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "6022814851197600081724ae", - firstPublishedBy: null, - firstPublishedOn: null, - id: "6022814851197600081724ae#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 60602, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/6022814851197600081724ae/welcome-to-webiny__cost-icon.svg", - "text@name": "cost-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c721", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c721#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 27804, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c721/welcome-to-webiny__developer.svg", - "text@name": "developer.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c720", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c720#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 28918, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c720/welcome-to-webiny__adaptable-icon.svg", - "text@name": "adaptable-icon.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T12:42:58.754Z", - entryId: "60228145f98841000981c71f", - firstPublishedBy: null, - firstPublishedOn: null, - id: "60228145f98841000981c71f#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "fmFile", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "object@location": {}, - "object@meta": {} - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T12:42:58.754Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T12:42:58.754Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T12:42:58.754Z", - status: "draft", - tenant: "root", - values: { - "number@size": 30007, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": true - }, - "text@aliases": [], - "text@key": "demo-pages/60228145f98841000981c71f/welcome-to-webiny__octo-cat.svg", - "text@name": "octo-cat.svg", - "text@tags": [], - "text@type": "image/svg+xml" - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modela.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modela.ts deleted file mode 100644 index d5a5ae100dc..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modela.ts +++ /dev/null @@ -1,545 +0,0 @@ -export const headlessCmsModelAMigrated = [ - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:42.180Z", - entryId: "658c24aa6607be00087f1169", - firstPublishedBy: null, - firstPublishedOn: null, - id: "658c24aa6607be00087f1169#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:42.180Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:42.180Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:42.180Z", - status: "draft", - tenant: "root", - values: { - "long-text@z2tdm05d": "", - "text@f2qcuuzs": "DDB+ES - Model A Entry 4" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:33.775Z", - entryId: "658c24a16607be00087f1168", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:34.175Z", - id: "658c24a16607be00087f1168#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:34.175Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:34.175Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:33.775Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:34.175Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:34.175Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:34.175Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:34.175Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 3" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:25.235Z", - entryId: "658c24996607be00087f1167", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:25.701Z", - id: "658c24996607be00087f1167#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:25.701Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:25.701Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:25.235Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:25.701Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:25.701Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:25.701Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:25.701Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 2", - "text@f2qcuuzs": "DDB+ES - Model A Entry 2" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1", - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:20:11.821Z", - entryId: "658c248b6607be00087f1166", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:20:12.775Z", - id: "658c248b6607be00087f1166#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:20:12.775Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelA", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:20:12.775Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:20:11.821Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:20:12.775Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:20:12.775Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:20:12.775Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:20:12.775Z", - status: "published", - tenant: "root", - values: { - "long-text@z2tdm05d": "DDB+ES - Model A Entry 1", - "text@f2qcuuzs": "DDB+ES - Model A Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modelb.ts b/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modelb.ts deleted file mode 100644 index eeedafac38e..00000000000 --- a/packages/migrations/__tests__/migrations/5.39.6/001/ddb-es/migrated/001.es-index-root-headless-cms-en-us-modelb.ts +++ /dev/null @@ -1,236 +0,0 @@ -export const headlessCmsModelBMigrated = [ - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:57.094Z", - entryId: "658c2531adbc1700090e1ad2", - firstPublishedBy: null, - firstPublishedOn: null, - id: "658c2531adbc1700090e1ad2#0001", - lastPublishedBy: null, - lastPublishedOn: null, - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: false, - meta: {}, - modelId: "modelB", - modifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - modifiedOn: "2023-12-27T13:23:15.536Z", - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - rawValues: { - "file@5atpz8nu": null - }, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:57.094Z", - revisionFirstPublishedBy: null, - revisionFirstPublishedOn: null, - revisionLastPublishedBy: null, - revisionLastPublishedOn: null, - revisionModifiedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionModifiedOn: "2023-12-27T13:23:15.536Z", - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:23:15.536Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:23:15.536Z", - status: "draft", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 2 UPDATED", - "text@4dep2w2h": "DDB+ES - Model B Entry 2 UPDATED" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.l", - __type: "cms.entry.l", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - latest: true, - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1", - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - }, - { - TYPE: "cms.entry.p", - __type: "cms.entry.p", - createdBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - createdOn: "2023-12-27T13:22:44.672Z", - entryId: "658c2524adbc1700090e1ad1", - firstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - firstPublishedOn: "2023-12-27T13:22:46.091Z", - id: "658c2524adbc1700090e1ad1#0001", - lastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - lastPublishedOn: "2023-12-27T13:22:46.091Z", - locale: "en-US", - location: { - folderId: "root" - }, - locked: true, - modelId: "modelB", - modifiedBy: null, - modifiedOn: null, - ownedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - published: true, - publishedOn: "2023-12-27T13:22:46.091Z", - rawValues: {}, - revisionCreatedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionCreatedOn: "2023-12-27T13:22:44.672Z", - revisionFirstPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionFirstPublishedOn: "2023-12-27T13:22:46.091Z", - revisionLastPublishedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionLastPublishedOn: "2023-12-27T13:22:46.091Z", - revisionModifiedBy: null, - revisionModifiedOn: null, - revisionSavedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - revisionSavedOn: "2023-12-27T13:22:46.091Z", - savedBy: { - displayName: "ad min", - id: "658c1b73c39bb10008431b44", - type: "admin" - }, - savedOn: "2023-12-27T13:22:46.091Z", - status: "published", - tenant: "root", - values: { - "long-text@7c5t8wwa": "DDB+ES - Model B Entry 1", - "text@4dep2w2h": "DDB+ES - Model B Entry 1" - }, - version: 1, - webinyVersion: "5.38.2" - } -]; diff --git a/packages/migrations/__tests__/migrations/5.40.0/001/ddb/001.data.ts b/packages/migrations/__tests__/migrations/5.40.0/001/ddb/001.data.ts deleted file mode 100644 index 1b158f29ae5..00000000000 --- a/packages/migrations/__tests__/migrations/5.40.0/001/ddb/001.data.ts +++ /dev/null @@ -1,399 +0,0 @@ -import { compress } from "~/migrations/5.40.0/001/ddb/compression"; - -export const rawContent = { - path: ["vYyuUH3RPN"], - type: "block", - data: { - settings: { - width: { - desktop: { - value: "100%" - } - }, - padding: { - "mobile-portrait": { - top: "20px", - advanced: true, - bottom: "20px" - }, - desktop: { - all: "10px", - right: "10px", - top: "40px", - advanced: true, - left: "10px", - bottom: "20px" - } - }, - horizontalAlignFlex: { - desktop: "center" - }, - verticalAlign: { - desktop: "flex-start" - }, - margin: { - desktop: { - right: "0px", - top: "0px", - left: "0px", - advanced: true, - bottom: "0px" - } - }, - background: { - desktop: { - color: null - } - } - }, - variables: [ - { - id: "e0LV1SGW8E", - label: "Title", - type: "heading", - value: '{"root":{"children":[{"children":[{"detail":0,"format":1,"mode":"normal","style":"font-size: 18px;","text":"LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT","type":"font-color-node","version":1,"themeColor":"color4","color":"#616161"}],"direction":"ltr","format":"","indent":0,"type":"heading-element","version":1,"tag":"h3","styles":[{"styleId":"heading3","type":"typography"}]}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}' - }, - { - id: "RN9CtkSL0b", - label: "Logo Image", - type: "image", - value: { - src: "https://d2b8of00q5koup.cloudfront.net/files/648c2584fc82b0000881f865/LogoCloudV1.svg", - id: "648c2584fc82b0000881f865" - } - } - ] - }, - elements: [ - { - path: ["vYyuUH3RPN", "6JBEyzzdUY"], - type: "grid", - data: { - settings: { - gridSettings: { - tablet: { - flexDirection: "column" - }, - "mobile-landscape": { - flexDirection: "column" - }, - desktop: { - flexDirection: "column" - } - }, - padding: { - desktop: { - all: "10px" - } - }, - horizontalAlignFlex: { - desktop: "flex-start" - }, - verticalAlign: { - tablet: "stretch", - desktop: "stretch", - "mobile-landscape": "flex-start", - "mobile-portrait": "flex-start" - }, - margin: { - desktop: { - right: "0px", - top: "0px", - left: "0px", - advanced: true, - bottom: "0px" - } - }, - grid: { - cellsType: "12", - rowCount: 2 - }, - width: { - desktop: { - value: "1100px" - } - } - } - }, - elements: [ - { - path: ["vYyuUH3RPN", "6JBEyzzdUY", "j3XI0MiQ3M"], - type: "cell", - data: { - settings: { - padding: { - desktop: { - all: "0px" - } - }, - horizontalAlignFlex: { - desktop: "flex-start" - }, - verticalAlign: { - desktop: "center" - }, - margin: { - desktop: { - right: "0px", - top: "0px", - left: "0px", - advanced: true, - bottom: "0px" - } - }, - grid: { - size: 12 - } - } - }, - elements: [ - { - path: ["vYyuUH3RPN", "6JBEyzzdUY", "j3XI0MiQ3M", "h8QcsWnLnp"], - type: "heading", - data: { - settings: { - padding: { - desktop: { - all: "0px" - } - }, - margin: { - desktop: { - all: "0px" - } - } - }, - variableId: "e0LV1SGW8E", - text: { - data: { - text: '{"root":{"children":[{"children":[{"detail":0,"format":1,"mode":"normal","style":"font-size: 18px;","text":"LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT","type":"font-color-node","version":1,"themeColor":"color4","color":"#616161"}],"direction":"ltr","format":"","indent":0,"type":"heading-element","version":1,"tag":"h3","styles":[{"styleId":"heading3","type":"typography"}]}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}' - }, - desktop: { - type: "heading", - alignment: "center", - tag: "h1" - } - } - }, - elements: [] - } - ] - }, - { - path: ["vYyuUH3RPN", "6JBEyzzdUY", "j3XI0MiQ3M"], - type: "cell", - data: { - settings: { - padding: { - desktop: { - all: "0px" - } - }, - horizontalAlignFlex: { - desktop: "flex-start" - }, - margin: { - desktop: { - right: "0px", - top: "0px", - left: "0px", - advanced: true, - bottom: "0px" - } - }, - grid: { - size: 12 - } - } - }, - elements: [ - { - path: ["vYyuUH3RPN", "6JBEyzzdUY", "j3XI0MiQ3M", "XUrIerQSDG"], - type: "image", - data: { - link: { - href: null - }, - settings: { - horizontalAlignFlex: { - desktop: "center" - }, - padding: { - desktop: { - all: "0px" - } - }, - margin: { - desktop: { - all: "0px" - } - } - }, - image: { - file: { - name: "Logo Cloud V1.svg", - id: "65415260b431680008ad4596", - src: "https://d26watk6chcr2b.cloudfront.net/files/65415260b431680008ad4596/LogoCloudV1.svg", - key: "65415260b431680008ad4596/LogoCloudV1.svg" - } - }, - variableId: "RN9CtkSL0b" - }, - elements: [] - } - ] - } - ] - } - ] -}; - -export const createBlocksData = async (amount = 100) => { - return Promise.all([ - ...Array.from({ length: amount }).map(async (_, index) => { - const id = `65415260b431680008ad4598${index.toString().padStart(4, "0")}`; - - return { - content: await compress(rawContent), - locale: "en-US", - entity: "PbPageBlocks", - createdBy: { - type: "admin", - displayName: "Pavel Denisjuk", - id: "6496fbd7d6062300081e4727" - }, - name: `Logo Cloud ${index}`, - created: "2023-10-31T19:15:44.897Z", - TYPE: "pb.pageBlock", - tenant: "root", - modified: "2023-10-31T19:15:44.897Z", - blockCategory: "logo-cloud", - createdOn: "2023-10-31T19:15:44.896Z", - id, - SK: `A`, - PK: `T#root#L#en-US#PB#BLOCK#${id}`, - GSI1_PK: `T#root#L#en-US#PB#BLOCKS`, - GSI1_SK: `logo-cloud#${id}` - }; - }), - { - PK: "T#root", - SK: "A", - createdOn: "2023-01-25T09:37:58.183Z", - description: "The top-level Webiny tenant.", - GSI1_PK: "TENANTS", - GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", - data: { - id: "root", - name: "Root", - savedOn: "2023-01-25T09:37:58.183Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - } - } - }, - { - PK: "T#otherTenant", - SK: "A", - createdOn: "2023-03-11T09:59:17.327Z", - description: "Tenant #1", - GSI1_PK: "TENANTS", - GSI1_SK: "T#root#2023-03-11T09:59:17.327Z", - data: { - id: "otherTenant", - name: "Other Tenant", - parent: "root", - savedOn: "2023-03-11T09:59:17.327Z", - settings: { - domains: [] - }, - status: "active", - TYPE: "tenancy.tenant", - webinyVersion: "0.0.0", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - } - } - }, - { - PK: `T#root#I18N#L`, - SK: "en-US", - code: "en-US", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#root#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "root", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "fr-FR", - code: "fr-FR", - default: false, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "otherTenant", - webinyVersion: "0.0.0" - }, - { - PK: `T#otherTenant#I18N#L`, - SK: "de-DE", - code: "de-DE", - default: true, - createdOn: "2023-01-25T09:37:58.220Z", - createdBy: { - type: "admin", - displayName: "ad min", - id: "6540185ca0f1c30008594e34" - }, - tenant: "otherTenant", - webinyVersion: "0.0.0" - } - ]); -}; diff --git a/packages/migrations/__tests__/migrations/5.40.0/001/ddb/001.test.ts b/packages/migrations/__tests__/migrations/5.40.0/001/ddb/001.test.ts deleted file mode 100644 index 8e497e90c74..00000000000 --- a/packages/migrations/__tests__/migrations/5.40.0/001/ddb/001.test.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { - assertNotError, - createDdbMigrationHandler, - getPrimaryDynamoDbTable, - groupMigrations, - insertDynamoDbTestData as insertTestData, - logTestNameBeforeEachTest, - scanTable -} from "~tests/utils"; -import { createBlocksData } from "./001.data"; -import { decompress } from "~/migrations/5.40.0/001/ddb/compression"; -import { PbUniqueBlockElementIds_5_40_0_001 } from "~/migrations/5.40.0/001/ddb"; - -jest.retryTimes(0); -jest.setTimeout(900000); - -const NUMBER_OF_RECORDS = 1000; - -describe("5.40.0-001", () => { - const table = getPrimaryDynamoDbTable(); - - logTestNameBeforeEachTest(); - - it("should not run if no blocks exist in the system", async () => { - const handler = createDdbMigrationHandler({ - table, - migrations: [PbUniqueBlockElementIds_5_40_0_001] - }); - - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(0); - expect(grouped.skipped.length).toBe(1); - expect(grouped.notApplicable.length).toBe(0); - }); - - it("should execute migration", async () => { - await insertTestData(table, await createBlocksData(NUMBER_OF_RECORDS)); - - const handler = createDdbMigrationHandler({ - table, - migrations: [PbUniqueBlockElementIds_5_40_0_001] - }); - const { data, error } = await handler(); - - assertNotError(error); - const grouped = groupMigrations(data.migrations); - - expect(grouped.executed.length).toBe(1); - expect(grouped.skipped.length).toBe(0); - expect(grouped.notApplicable.length).toBe(0); - - const newData = await scanTable(table, { - execute: true, - parse: true, - filters: [ - { - attr: "TYPE", - eq: "pb.pageBlock" - } - ] - }); - - const firstBlock = await decompress(newData[0]); - const lastBlock = await decompress(newData[newData.length - 1]); - - expect(firstBlock.content.id).toBeString(); - expect(firstBlock.content.id).toHaveLength(10); - - expect(lastBlock.content.id).toBeString(); - expect(lastBlock.content.id).toHaveLength(10); - }); -}); diff --git a/packages/migrations/__tests__/migrations/5.37.0/003/ddb-es/getDecompressedData.ts b/packages/migrations/__tests__/utils/getDecompressedData.ts similarity index 100% rename from packages/migrations/__tests__/migrations/5.37.0/003/ddb-es/getDecompressedData.ts rename to packages/migrations/__tests__/utils/getDecompressedData.ts diff --git a/packages/migrations/__tests__/utils/insertElasticsearchTestData.ts b/packages/migrations/__tests__/utils/insertElasticsearchTestData.ts index 1a6d6a48651..3e9b8bcecc9 100644 --- a/packages/migrations/__tests__/utils/insertElasticsearchTestData.ts +++ b/packages/migrations/__tests__/utils/insertElasticsearchTestData.ts @@ -2,7 +2,7 @@ import chunk from "lodash/chunk"; import { ElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient"; import { Table } from "@webiny/db-dynamodb/toolbox"; import { scanTable } from "~tests/utils/scanTable"; -import { getDecompressedData } from "~tests/migrations/5.37.0/003/ddb-es/getDecompressedData"; +import { getDecompressedData } from "./getDecompressedData"; import { esPutIndexSettings } from "~/utils"; export const transferDynamoDbToElasticsearch = async < diff --git a/packages/migrations/package.json b/packages/migrations/package.json index f26225ae42b..35551593488 100644 --- a/packages/migrations/package.json +++ b/packages/migrations/package.json @@ -9,20 +9,13 @@ "@elastic/elasticsearch": "7.12.0", "@webiny/api-elasticsearch": "0.0.0", "@webiny/aws-sdk": "0.0.0", - "@webiny/cli-plugin-deploy-pulumi": "0.0.0", "@webiny/data-migration": "0.0.0", "@webiny/db-dynamodb": "0.0.0", "@webiny/error": "0.0.0", "@webiny/ioc": "0.0.0", "@webiny/logger": "0.0.0", "@webiny/utils": "0.0.0", - "execa": "^5.1.1", - "fast-glob": "^3.2.7", - "jsonpack": "^1.1.5", - "lodash": "^4.17.21", - "pino-pretty": "^9.4.0", - "pluralize": "^8.0.0", - "yargs": "^17.7.2" + "lodash": "^4.17.21" }, "publishConfig": { "access": "public", diff --git a/packages/migrations/src/migrations/5.35.0/001/FileSettingsMigration.ts b/packages/migrations/src/migrations/5.35.0/001/FileSettingsMigration.ts deleted file mode 100644 index 6de8bf3ac8b..00000000000 --- a/packages/migrations/src/migrations/5.35.0/001/FileSettingsMigration.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { DataMigrationContext } from "@webiny/data-migration"; -import { createStandardEntity, queryAll, queryOne } from "~/utils"; -import { createTenantEntity } from "./entities/createTenantEntity"; -import { - createLegacySettingsEntity, - createSettingsEntity, - getSettingsData -} from "./entities/createSettingsEntity"; -import { put } from "@webiny/db-dynamodb"; - -export class FileManager_5_35_0_001_FileManagerSettings { - private readonly newSettingsEntity: ReturnType; - private readonly legacySettingsEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor(table: Table) { - this.newSettingsEntity = createStandardEntity(table, "FM.Settings"); - this.legacySettingsEntity = createLegacySettingsEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "FM Settings"; - } - - getDescription() { - return ""; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const settings = await queryOne({ - entity: this.legacySettingsEntity, - partitionKey: `T#root#FM#SETTINGS`, - options: { - eq: "default" - } - }); - - if (!settings) { - logger.info(`Settings not found; system is not yet installed.`); - // The system is not yet installed, skip migration. - return false; - } - - const newSettings = await queryOne({ - entity: this.newSettingsEntity, - partitionKey: `T#root#FM#SETTINGS`, - options: { - eq: "A" - } - }); - - if (newSettings) { - logger.info(`Settings record seems to be in order.`); - return false; - } - - return true; - } - - async execute({ logger }: DataMigrationContext): Promise { - const tenants = await queryAll<{ id: string; name: string }>({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gt: " " - } - }); - - for (const tenant of tenants) { - const settings = await queryOne({ - entity: this.legacySettingsEntity, - partitionKey: `T#${tenant.id}#FM#SETTINGS`, - options: { - eq: "default" - } - }); - - if (!settings) { - // It's possible that a tenant exists, but it was not yet installed. - logger.info( - `Tenant ${tenant.name} (${tenant.id}) is not installed. Skipping migration of settings.` - ); - continue; - } - - logger.info(`Updating FM settings for tenant ${tenant.name} (${tenant.id}).`); - await put({ - entity: this.newSettingsEntity, - item: { - PK: `T#${tenant.id}#FM#SETTINGS`, - SK: "A", - TYPE: "fm.settings", - data: { - ...getSettingsData(settings), - tenant: tenant.id - } - } - }); - } - } -} diff --git a/packages/migrations/src/migrations/5.35.0/001/ddb-es/FileDataMigration.ts b/packages/migrations/src/migrations/5.35.0/001/ddb-es/FileDataMigration.ts deleted file mode 100644 index b4848b89c70..00000000000 --- a/packages/migrations/src/migrations/5.35.0/001/ddb-es/FileDataMigration.ts +++ /dev/null @@ -1,201 +0,0 @@ -import chunk from "lodash/chunk"; -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { Client } from "@elastic/elasticsearch"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { executeWithRetry } from "@webiny/utils"; -import { DataMigration, DataMigrationContext } from "@webiny/data-migration"; -import { - batchWriteAll, - createStandardEntity, - esGetIndexName, - esQueryAllWithCallback, - queryAll, - queryOne -} from "~/utils"; -import { createFileEntity, getFileData, legacyAttributes } from "../entities/createFileEntity"; -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; -import { File } from "../types"; - -type FileMigrationCheckpoint = Record; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -export class FileManager_5_35_0_001_FileData implements DataMigration { - private readonly elasticsearchClient: Client; - private readonly newFileEntity: ReturnType; - private readonly tenantEntity: ReturnType; - private readonly localeEntity: ReturnType; - - constructor(table: Table, elasticsearchClient: Client) { - this.elasticsearchClient = elasticsearchClient; - this.newFileEntity = createStandardEntity(table, "File", legacyAttributes); - this.tenantEntity = createTenantEntity(table); - this.localeEntity = createLocaleEntity(table); - } - - getId() { - return "FileData"; - } - - getDescription() { - return ""; - } - - async shouldExecute({ logger, checkpoint }: DataMigrationContext): Promise { - if (checkpoint) { - return true; - } - - const defaultLocale = await queryOne<{ code: string }>({ - entity: this.localeEntity, - partitionKey: `T#root#I18N#L#D`, - options: { - eq: "default" - } - }); - - if (!defaultLocale) { - logger.info(`Default locale not found; system is not yet installed.`); - // The system is not yet installed, skip migration. - return false; - } - - // Check if there are files stored in the GSI1 index, which means files are already migrated. - const PK = `T#root#L#${defaultLocale.code}#FM#FILES`; - const newFile = await queryOne<{ id: string }>({ - entity: this.newFileEntity, - partitionKey: PK, - options: { gt: " ", index: "GSI1" } - }); - - if (newFile) { - logger.info(`Looks like files have already been migrated. Skipping migration.`); - return false; - } - - return true; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const tenants = await queryAll<{ id: string }>({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gt: " " - } - }); - - const migrationStatus: FileMigrationCheckpoint = context.checkpoint || {}; - - for (const tenant of tenants) { - const locales = await queryAll<{ code: string }>({ - entity: this.localeEntity, - partitionKey: `T#${tenant.id}#I18N#L`, - options: { - gt: " " - } - }); - - for (const locale of locales) { - const groupId = `${tenant.id}:${locale.code}`; - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - continue; - } - - let batch = 0; - await esQueryAllWithCallback({ - elasticsearchClient: this.elasticsearchClient, - index: esGetIndexName({ - tenant: tenant.id, - locale: locale.code, - type: "file-manager" - }), - body: { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenant.id } }, - { term: { "locale.keyword": locale.code } } - ] - } - }, - size: 10000, - sort: [ - { - "id.keyword": "asc" - } - ], - search_after: status - }, - callback: async (files, cursor) => { - batch++; - logger.info( - `Processing batch #${batch} in group ${groupId} (${files.length} files).` - ); - const items = files.map(file => { - return this.newFileEntity.putBatch({ - PK: `T#${tenant.id}#L#${locale.code}#FM#F${file.id}`, - SK: "A", - GSI1_PK: `T#${tenant.id}#L#${locale.code}#FM#FILES`, - GSI1_SK: file.id, - TYPE: "fm.file", - ...getFileData(file), - data: { - ...getFileData(file), - webinyVersion: process.env.WEBINY_VERSION - } - }); - }); - - const execute = () => { - return Promise.all( - chunk(items, 200).map(async fileChunk => { - /** - * Leave batch write for now. - */ - return await batchWriteAll({ - table: this.newFileEntity.table, - items: fileChunk - }); - }) - ); - }; - - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - // Update checkpoint after every batch - migrationStatus[groupId] = cursor; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - }); - - migrationStatus[groupId] = true; - await context.createCheckpoint(migrationStatus); - } - } - } -} diff --git a/packages/migrations/src/migrations/5.35.0/001/ddb-es/index.ts b/packages/migrations/src/migrations/5.35.0/001/ddb-es/index.ts deleted file mode 100644 index 43dd6f656a7..00000000000 --- a/packages/migrations/src/migrations/5.35.0/001/ddb-es/index.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { Client } from "@elastic/elasticsearch"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - getChildLogger, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { makeInjectable, inject } from "@webiny/ioc"; -import { FileManager_5_35_0_001_FileData } from "./FileDataMigration"; -import { FileManager_5_35_0_001_FileManagerSettings } from "../FileSettingsMigration"; -export * from "../types"; - -export class FileManager_5_35_0_001 implements DataMigration { - private migrations: DataMigration[]; - - constructor(table: Table, elasticsearchClient: Client) { - this.migrations = [ - new FileManager_5_35_0_001_FileData(table, elasticsearchClient), - new FileManager_5_35_0_001_FileManagerSettings(table) - ]; - } - - getId(): string { - return "5.35.0-001"; - } - - getDescription(): string { - return "Upgrade File Manager to use better PKs and `data` envelope."; - } - - async shouldExecute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - return true; - } - } - return false; - } - - async execute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - await migration.execute(childContext); - } - } - } -} - -makeInjectable(FileManager_5_35_0_001, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.35.0/001/ddb/FileDataMigration.ts b/packages/migrations/src/migrations/5.35.0/001/ddb/FileDataMigration.ts deleted file mode 100644 index 75690699bf7..00000000000 --- a/packages/migrations/src/migrations/5.35.0/001/ddb/FileDataMigration.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { DataMigration, DataMigrationContext } from "@webiny/data-migration"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { executeWithRetry } from "@webiny/utils"; -import { - createStandardEntity, - queryOne, - queryAll, - ddbQueryAllWithCallback, - batchWriteAll -} from "~/utils"; -import { - createFileEntity, - getFileData, - createLegacyFileEntity -} from "../entities/createFileEntity"; -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; - -export type FileMigrationCheckpoint = Record; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -export class FileManager_5_35_0_001_FileData implements DataMigration { - private readonly newFileEntity: ReturnType; - private readonly legacyFileEntity: ReturnType; - private readonly tenantEntity: ReturnType; - private readonly localeEntity: ReturnType; - - constructor(table: Table) { - this.newFileEntity = createStandardEntity(table, "File"); - this.legacyFileEntity = createLegacyFileEntity(table); - this.tenantEntity = createTenantEntity(table); - this.localeEntity = createLocaleEntity(table); - } - - getId() { - return "FileData"; - } - - getDescription() { - return ""; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const defaultLocale = await queryOne<{ code: string }>({ - entity: this.localeEntity, - partitionKey: `T#root#I18N#L#D`, - options: { - eq: "default" - } - }); - - if (!defaultLocale) { - logger.info(`Default locale not found; system is not yet installed.`); - // The system is not yet installed, skip migration. - return false; - } - - // Check if there are file records using the old record structure - const PK = `T#root#L#${defaultLocale.code}#FM#F`; - const lastLegacyFile = await queryOne<{ id: string }>({ - entity: this.legacyFileEntity, - partitionKey: PK, - options: { gt: " ", reverse: true } - }); - - if (!lastLegacyFile) { - logger.info(`No applicable files were found to migrate.`); - return false; - } - - if (lastLegacyFile) { - // Check if there's a corresponding new file for the same file ID - const lastNewFile = await queryOne({ - entity: this.newFileEntity, - partitionKey: `T#root#L#${defaultLocale.code}#FM#FILE#${lastLegacyFile.id}`, - options: { - eq: "A" - } - }); - - if (lastNewFile) { - logger.info(`All files seem to be in order.`); - return false; - } - } - - return true; - } - - async execute({ logger, ...context }: DataMigrationContext): Promise { - const tenants = await queryAll<{ id: string }>({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gt: " " - } - }); - - const migrationStatus = context.checkpoint || {}; - - for (const tenant of tenants) { - const locales = await queryAll<{ code: string }>({ - entity: this.localeEntity, - partitionKey: `T#${tenant.id}#I18N#L`, - options: { - gt: " " - } - }); - - for (const locale of locales) { - const groupId = `${tenant.id}:${locale.code}`; - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - continue; - } - - let batch = 0; - await ddbQueryAllWithCallback<{ id: string }>( - { - entity: this.legacyFileEntity, - partitionKey: `T#${tenant.id}#L#${locale.code}#FM#F`, - options: { - gt: status || " " - } - }, - async files => { - batch++; - logger.info( - `Processing batch #${batch} in group ${groupId} (${files.length} files).` - ); - const items = files.map(file => { - return this.newFileEntity.putBatch({ - PK: `T#${tenant.id}#L#${locale.code}#FM#FILE#${file.id}`, - SK: "A", - GSI1_PK: `T#${tenant.id}#L#${locale.code}#FM#FILES`, - GSI1_SK: file.id, - TYPE: "fm.file", - data: { - ...getFileData(file), - webinyVersion: process.env.WEBINY_VERSION - } - }); - }); - - const execute = () => { - return batchWriteAll({ table: this.newFileEntity.table, items }); - }; - - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - const cursor = files[files.length - 1].id; - - // Update checkpoint after every batch - migrationStatus[groupId] = cursor; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - migrationStatus[groupId] = true; - await context.createCheckpoint(migrationStatus); - } - } - } -} diff --git a/packages/migrations/src/migrations/5.35.0/001/ddb/index.ts b/packages/migrations/src/migrations/5.35.0/001/ddb/index.ts deleted file mode 100644 index 99dafdd62bf..00000000000 --- a/packages/migrations/src/migrations/5.35.0/001/ddb/index.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - getChildLogger, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { makeInjectable, inject } from "@webiny/ioc"; -import { FileManager_5_35_0_001_FileData } from "./FileDataMigration"; -import { FileManager_5_35_0_001_FileManagerSettings } from "../FileSettingsMigration"; - -export class FileManager_5_35_0_001 implements DataMigration { - private migrations: DataMigration[]; - - constructor(table: Table) { - this.migrations = [ - new FileManager_5_35_0_001_FileData(table), - new FileManager_5_35_0_001_FileManagerSettings(table) - ]; - } - - getId(): string { - return "5.35.0-001"; - } - - getDescription(): string { - return "Upgrade File Manager to use better PKs and `data` envelope."; - } - - async shouldExecute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - return true; - } - } - return false; - } - - async execute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - await migration.execute(childContext); - } - } - } -} - -makeInjectable(FileManager_5_35_0_001, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.35.0/001/entities/createFileEntity.ts b/packages/migrations/src/migrations/5.35.0/001/entities/createFileEntity.ts deleted file mode 100644 index c6722c70693..00000000000 --- a/packages/migrations/src/migrations/5.35.0/001/entities/createFileEntity.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import pick from "lodash/pick"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -export const legacyAttributes: Parameters[2] = { - id: { - type: "string" - }, - key: { - type: "string" - }, - size: { - type: "number" - }, - type: { - type: "string" - }, - name: { - type: "string" - }, - meta: { - type: "map" - }, - tags: { - type: "list" - }, - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - tenant: { - type: "string" - }, - locale: { - type: "string" - }, - webinyVersion: { - type: "string" - } -}; - -export const getFileData = (file: any) => { - return pick(file, Object.keys(legacyAttributes)); -}; - -export const createLegacyFileEntity = (table: Table) => { - return createLegacyEntity(table, "Files", legacyAttributes); -}; - -export const createFileEntity = (table: Table) => { - return createStandardEntity(table, "FM.File"); -}; diff --git a/packages/migrations/src/migrations/5.35.0/001/entities/createLocaleEntity.ts b/packages/migrations/src/migrations/5.35.0/001/entities/createLocaleEntity.ts deleted file mode 100644 index 0ff04476087..00000000000 --- a/packages/migrations/src/migrations/5.35.0/001/entities/createLocaleEntity.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createLocaleEntity = (table: Table) => { - return createLegacyEntity(table, "I18NLocale", { - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - code: { - type: "string" - }, - default: { - type: "boolean" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - } - }); -}; - -// [ -// { -// PK: "T#root#I18N#L", -// SK: "en-US", -// code: "en-US", -// createdBy: { -// displayName: "Pavel Denisjuk", -// id: "e6ea2871-ba36-4494-87ac-afb73d4e7eb2", -// type: "admin" -// }, -// createdOn: "2023-01-25T09:38:22.029Z", -// default: true, -// tenant: "root", -// webinyVersion: "0.0.0", -// _ct: "2023-01-25T09:38:22.041Z", -// _et: "I18NLocale", -// _md: "2023-01-25T09:38:22.041Z" -// } -// ]; diff --git a/packages/migrations/src/migrations/5.35.0/001/entities/createSettingsEntity.ts b/packages/migrations/src/migrations/5.35.0/001/entities/createSettingsEntity.ts deleted file mode 100644 index c88cdb7bf44..00000000000 --- a/packages/migrations/src/migrations/5.35.0/001/entities/createSettingsEntity.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import pick from "lodash/pick"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const attributes: Parameters[2] = { - tenant: { - type: "string" - }, - srcPrefix: { - type: "string" - }, - uploadMaxFileSize: { - type: "number" - }, - uploadMinFileSize: { - type: "number" - } -}; - -export const getSettingsData = (settings: any) => { - return pick(settings, Object.keys(attributes)); -}; - -export const createLegacySettingsEntity = (table: Table) => { - return createLegacyEntity(table, "Settings", attributes); -}; - -export const createSettingsEntity = (table: Table) => { - return createStandardEntity(table, "FM.Settings"); -}; diff --git a/packages/migrations/src/migrations/5.35.0/001/entities/createTenantEntity.ts b/packages/migrations/src/migrations/5.35.0/001/entities/createTenantEntity.ts deleted file mode 100644 index 77a540c5916..00000000000 --- a/packages/migrations/src/migrations/5.35.0/001/entities/createTenantEntity.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createTenantEntity = (table: Table) => { - return createLegacyEntity(table, "TenancyTenant", { - id: { - type: "string" - }, - name: { - type: "string" - }, - description: { - type: "string" - }, - status: { - type: "string", - default: "active" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - parent: { - type: "string" - }, - webinyVersion: { - type: "string" - }, - settings: { - type: "map", - default: {} - } - }); -}; - -// [ -// { -// PK: "T#root", -// SK: "A", -// createdOn: "2023-01-25T09:37:58.183Z", -// description: "The top-level Webiny tenant.", -// GSI1_PK: "TENANTS", -// GSI1_SK: "T#null#2023-01-25T09:37:58.183Z", -// id: "root", -// name: "Root", -// savedOn: "2023-01-25T09:37:58.183Z", -// settings: { -// domains: [] -// }, -// status: "active", -// TYPE: "tenancy.tenant", -// webinyVersion: "0.0.0", -// _ct: "2023-01-25T09:37:58.220Z", -// _et: "TenancyTenant", -// _md: "2023-01-25T09:37:58.220Z" -// } -// ]; diff --git a/packages/migrations/src/migrations/5.35.0/001/types.ts b/packages/migrations/src/migrations/5.35.0/001/types.ts deleted file mode 100644 index 9187c149b7c..00000000000 --- a/packages/migrations/src/migrations/5.35.0/001/types.ts +++ /dev/null @@ -1,20 +0,0 @@ -export interface File { - id: string; - key: string; - size: number; - type: string; - name: string; - meta: Record; - tags: string[]; - createdOn: string; - createdBy: CreatedBy; - tenant: string; - locale: string; - webinyVersion: string; -} - -export interface CreatedBy { - id: string; - displayName: string | null; - type: string; -} diff --git a/packages/migrations/src/migrations/5.35.0/002/createLocaleEntity.ts b/packages/migrations/src/migrations/5.35.0/002/createLocaleEntity.ts deleted file mode 100644 index 80fa7c4b29a..00000000000 --- a/packages/migrations/src/migrations/5.35.0/002/createLocaleEntity.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createLocaleEntity = (table: Table) => { - return createLegacyEntity(table, "I18NLocale", { - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - code: { - type: "string" - }, - default: { - type: "boolean" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.35.0/002/createSettingsEntity.ts b/packages/migrations/src/migrations/5.35.0/002/createSettingsEntity.ts deleted file mode 100644 index 86c44d1e2c1..00000000000 --- a/packages/migrations/src/migrations/5.35.0/002/createSettingsEntity.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import pick from "lodash/pick"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const attributes: Parameters[2] = { - name: { - type: "string" - }, - websiteUrl: { - type: "string" - }, - websitePreviewUrl: { - type: "string" - }, - favicon: { - type: "map" - }, - logo: { - type: "map" - }, - prerendering: { - type: "map" - }, - social: { - type: "map" - }, - htmlTags: { - type: "map" - }, - pages: { - type: "map" - }, - tenant: { - type: "string" - }, - locale: { - type: "string" - }, - theme: { - type: "string" - } -}; - -export const getSettingsData = (settings: any) => { - return pick(settings, Object.keys(attributes)); -}; - -export const createLegacySettingsEntity = (table: Table) => { - return createLegacyEntity(table, "PbSettings", attributes); -}; - -export const createSettingsEntity = (table: Table) => { - return createStandardEntity(table, "PB.Settings"); -}; diff --git a/packages/migrations/src/migrations/5.35.0/002/createTenantEntity.ts b/packages/migrations/src/migrations/5.35.0/002/createTenantEntity.ts deleted file mode 100644 index 92d093f5100..00000000000 --- a/packages/migrations/src/migrations/5.35.0/002/createTenantEntity.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createTenantEntity = (table: Table) => { - return createLegacyEntity(table, "TenancyTenant", { - id: { - type: "string" - }, - name: { - type: "string" - }, - description: { - type: "string" - }, - status: { - type: "string", - default: "active" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - parent: { - type: "string" - }, - webinyVersion: { - type: "string" - }, - settings: { - type: "map", - default: {} - } - }); -}; diff --git a/packages/migrations/src/migrations/5.35.0/002/index.ts b/packages/migrations/src/migrations/5.35.0/002/index.ts deleted file mode 100644 index 5ef37321acc..00000000000 --- a/packages/migrations/src/migrations/5.35.0/002/index.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { DataMigrationContext, PrimaryDynamoTableSymbol } from "@webiny/data-migration"; -import { queryAll, queryOne } from "~/utils"; -import { createTenantEntity } from "./createTenantEntity"; -import { - createLegacySettingsEntity, - createSettingsEntity, - getSettingsData -} from "./createSettingsEntity"; -import { createLocaleEntity } from "./createLocaleEntity"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { put } from "@webiny/db-dynamodb"; - -export class PageBuilder_5_35_0_002 { - private readonly newSettingsEntity: ReturnType; - private readonly legacySettingsEntity: ReturnType; - private readonly tenantEntity: ReturnType; - private readonly localeEntity: ReturnType; - - constructor(table: Table) { - this.newSettingsEntity = createSettingsEntity(table); - this.legacySettingsEntity = createLegacySettingsEntity(table); - this.tenantEntity = createTenantEntity(table); - this.localeEntity = createLocaleEntity(table); - } - - getId() { - return "5.35.0-002"; - } - - getDescription() { - return "Move PB Settings attributes to a `data` envelope."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const defaultLocale = await queryOne<{ code: string }>({ - entity: this.localeEntity, - partitionKey: `T#root#I18N#L#D`, - options: { - eq: "default" - } - }); - - if (!defaultLocale) { - logger.info(`Default locale not found; system is not yet installed.`); - return false; - } - - const settings = await queryOne({ - entity: this.legacySettingsEntity, - partitionKey: `T#root#L#${defaultLocale.code}#PB#SETTINGS`, - options: { - eq: "default" - } - }); - - if (!settings) { - logger.info(`Settings not found; system is not yet installed.`); - return false; - } - - const newSettings = await queryOne({ - entity: this.newSettingsEntity, - partitionKey: `T#root#L#${defaultLocale.code}#PB#SETTINGS`, - options: { - eq: "A" - } - }); - - if (newSettings) { - logger.info(`Settings record seems to be in order.`); - return false; - } - - return true; - } - - async execute({ logger }: DataMigrationContext): Promise { - const tenants = await queryAll<{ id: string; name: string }>({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gt: " " - } - }); - - for (const tenant of tenants) { - const locales = await queryAll<{ code: string }>({ - entity: this.localeEntity, - partitionKey: `T#${tenant.id}#I18N#L`, - options: { - gt: " " - } - }); - - for (const locale of locales) { - const settings = await queryOne({ - entity: this.legacySettingsEntity, - partitionKey: `T#${tenant.id}#L#${locale.code}#PB#SETTINGS`, - options: { - eq: "default" - } - }); - - if (!settings) { - // It's possible that a tenant exists, but it was not yet installed. - logger.info( - `Tenant ${tenant.name} (${tenant.id}) is not installed. Skipping migration of settings.` - ); - continue; - } - - logger.info(`Updating PB settings for tenant ${tenant.name} (${tenant.id}).`); - await put({ - entity: this.newSettingsEntity, - item: { - PK: `T#${tenant.id}#L#${locale.code}#PB#SETTINGS`, - SK: "A", - TYPE: "pb.settings", - data: { - ...getSettingsData(settings), - tenant: tenant.id - } - } - }); - } - } - } -} - -makeInjectable(PageBuilder_5_35_0_002, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.35.0/003/createTenantEntity.ts b/packages/migrations/src/migrations/5.35.0/003/createTenantEntity.ts deleted file mode 100644 index 92d093f5100..00000000000 --- a/packages/migrations/src/migrations/5.35.0/003/createTenantEntity.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createTenantEntity = (table: Table) => { - return createLegacyEntity(table, "TenancyTenant", { - id: { - type: "string" - }, - name: { - type: "string" - }, - description: { - type: "string" - }, - status: { - type: "string", - default: "active" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - parent: { - type: "string" - }, - webinyVersion: { - type: "string" - }, - settings: { - type: "map", - default: {} - } - }); -}; diff --git a/packages/migrations/src/migrations/5.35.0/003/createUserEntity.ts b/packages/migrations/src/migrations/5.35.0/003/createUserEntity.ts deleted file mode 100644 index 7666e6bf229..00000000000 --- a/packages/migrations/src/migrations/5.35.0/003/createUserEntity.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import pick from "lodash/pick"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const attributes: Parameters[2] = { - id: { - type: "string" - }, - tenant: { - type: "string" - }, - email: { - type: "string" - }, - firstName: { - type: "string" - }, - lastName: { - type: "string" - }, - avatar: { - type: "map" - }, - createdBy: { - type: "map" - }, - createdOn: { - type: "string" - }, - group: { - type: "string" - }, - webinyVersion: { - type: "string" - } -}; - -export const getUserData = (user: any) => { - return pick(user, Object.keys(attributes)); -}; - -export const createLegacyUserEntity = (table: Table) => { - return createLegacyEntity(table, "AdminUsers.User", attributes); -}; - -export const createUserEntity = (table: Table) => { - return createStandardEntity(table, "AdminUsers.User", attributes); -}; diff --git a/packages/migrations/src/migrations/5.35.0/003/index.ts b/packages/migrations/src/migrations/5.35.0/003/index.ts deleted file mode 100644 index 92d7685ea33..00000000000 --- a/packages/migrations/src/migrations/5.35.0/003/index.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { DataMigrationContext, PrimaryDynamoTableSymbol } from "@webiny/data-migration"; -import { queryAll, queryOne } from "~/utils"; -import { createTenantEntity } from "./createTenantEntity"; -import { createLegacyUserEntity, createUserEntity, getUserData } from "./createUserEntity"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { executeWithRetry } from "@webiny/utils"; -import { createEntityWriteBatch } from "@webiny/db-dynamodb"; - -export class AdminUsers_5_35_0_003 { - private readonly newUserEntity: ReturnType; - private readonly legacyUserEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor(table: Table) { - this.newUserEntity = createUserEntity(table); - this.legacyUserEntity = createLegacyUserEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "5.35.0-003"; - } - - getDescription() { - return "Move admin users attributes to a `data` envelope."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const user = await queryOne<{ data: any }>({ - entity: this.newUserEntity, - partitionKey: `T#root#ADMIN_USERS`, - options: { - index: "GSI1", - gt: " " - } - }); - - if (!user) { - logger.info(`No users were found; skipping migration.`); - return false; - } - - if (user.data) { - logger.info(`User records seems to be in order; skipping migration.`); - return false; - } - - return true; - } - - async execute({ logger }: DataMigrationContext): Promise { - const tenants = await queryAll<{ id: string; name: string }>({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gt: " " - } - }); - - for (const tenant of tenants) { - const users = await queryAll<{ id: string; email: string; data?: any }>({ - entity: this.legacyUserEntity, - partitionKey: `T#${tenant.id}#ADMIN_USERS`, - options: { - index: "GSI1", - gt: " " - } - }); - - if (users.length === 0) { - logger.info(`No users found on tenant "${tenant.id}".`); - continue; - } - - const newUsersEntityBatch = createEntityWriteBatch({ - entity: this.newUserEntity, - put: users - .filter(user => !user.data) - .map(user => { - return { - PK: `T#${tenant.id}#ADMIN_USER#${user.id}`, - SK: "A", - GSI1_PK: `T#${tenant.id}#ADMIN_USERS`, - GSI1_SK: user.email, - TYPE: "adminUsers.user", - ...getUserData(user), - // Move all data to a `data` envelope - data: getUserData(user) - }; - }) - }); - - await executeWithRetry(async () => { - return await newUsersEntityBatch.execute(); - }); - } - } -} - -makeInjectable(AdminUsers_5_35_0_003, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.35.0/004/createTenantEntity.ts b/packages/migrations/src/migrations/5.35.0/004/createTenantEntity.ts deleted file mode 100644 index 9e47c87e0d4..00000000000 --- a/packages/migrations/src/migrations/5.35.0/004/createTenantEntity.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import pick from "lodash/pick"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const attributes: Parameters[2] = { - id: { - type: "string" - }, - name: { - type: "string" - }, - description: { - type: "string" - }, - status: { - type: "string", - default: "active" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - parent: { - type: "string" - }, - webinyVersion: { - type: "string" - }, - settings: { - type: "map", - default: {} - } -}; - -export const getTenantData = (tenant: any) => { - return pick(tenant, Object.keys(attributes)); -}; - -export const createLegacyTenantEntity = (table: Table) => { - return createLegacyEntity(table, "TenancyTenant", attributes); -}; - -export const createNewTenantEntity = (table: Table) => { - return createStandardEntity(table, "TenancyTenant", attributes); -}; diff --git a/packages/migrations/src/migrations/5.35.0/004/index.ts b/packages/migrations/src/migrations/5.35.0/004/index.ts deleted file mode 100644 index e4db43654b7..00000000000 --- a/packages/migrations/src/migrations/5.35.0/004/index.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { DataMigrationContext, PrimaryDynamoTableSymbol } from "@webiny/data-migration"; -import { queryAll, queryOne } from "~/utils"; -import { - createLegacyTenantEntity, - createNewTenantEntity, - getTenantData -} from "./createTenantEntity"; -import { put } from "@webiny/db-dynamodb"; - -export class Tenancy_5_35_0_004 { - private readonly legacyTenantEntity: ReturnType; - private readonly newTenantEntity: ReturnType; - - constructor(table: Table) { - this.legacyTenantEntity = createLegacyTenantEntity(table); - this.newTenantEntity = createNewTenantEntity(table); - } - - getId() { - return "5.35.0-004"; - } - - getDescription() { - return "Move tenant attributes to a `data` envelope."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const tenant = await queryOne<{ data: any }>({ - entity: this.legacyTenantEntity, - partitionKey: `TENANTS`, - options: { - index: "GSI1", - gt: " " - } - }); - - if (!tenant) { - logger.info(`No tenants were found; skipping migration.`); - return false; - } - - if (tenant.data) { - logger.info(`Tenant records seems to be in order; skipping migration.`); - return false; - } - - return true; - } - - async execute({ logger }: DataMigrationContext): Promise { - const tenants = await queryAll<{ id: string; name: string }>({ - entity: this.legacyTenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gt: " " - } - }); - - for (const tenant of tenants) { - logger.info(`Updating tenant ${tenant.name} (${tenant.id}).`); - await put({ - entity: this.newTenantEntity, - item: { - PK: `T#${tenant.id}`, - SK: "A", - GSI1_PK: tenant.GSI1_PK, - GSI1_SK: tenant.GSI1_SK, - TYPE: tenant.TYPE, - ...getTenantData(tenant), - // Move all data to a `data` envelope - data: { - ...getTenantData(tenant), - // While we're here, add a `tags` attribute to tenants - tags: [] - } - } - }); - } - } -} - -makeInjectable(Tenancy_5_35_0_004, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.35.0/005/createLocaleEntity.ts b/packages/migrations/src/migrations/5.35.0/005/createLocaleEntity.ts deleted file mode 100644 index 80fa7c4b29a..00000000000 --- a/packages/migrations/src/migrations/5.35.0/005/createLocaleEntity.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createLocaleEntity = (table: Table) => { - return createLegacyEntity(table, "I18NLocale", { - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - code: { - type: "string" - }, - default: { - type: "boolean" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.35.0/005/createModelEntity.ts b/packages/migrations/src/migrations/5.35.0/005/createModelEntity.ts deleted file mode 100644 index 70aa82af92f..00000000000 --- a/packages/migrations/src/migrations/5.35.0/005/createModelEntity.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -const attributes: Parameters[2] = { - PK: { - partitionKey: true - }, - SK: { - sortKey: true - }, - TYPE: { - type: "string", - required: true - }, - webinyVersion: { - type: "string", - required: true - }, - name: { - type: "string", - required: true - }, - modelId: { - type: "string", - required: true - }, - singularApiName: { - type: "string", - required: true - }, - pluralApiName: { - type: "string", - required: true - }, - locale: { - type: "string", - required: true - }, - group: { - type: "map", - required: true - }, - icon: { - type: "string" - }, - description: { - type: "string" - }, - createdOn: { - type: "string", - required: true - }, - savedOn: { - type: "string", - required: true - }, - createdBy: { - type: "map", - required: true - }, - fields: { - type: "list", - required: true - }, - layout: { - type: "list", - required: true - }, - tags: { - type: "list", - required: false, - default: [] - }, - lockedFields: { - type: "list", - required: true - }, - titleFieldId: { - type: "string" - }, - descriptionFieldId: { - type: "string" - }, - imageFieldId: { - type: "string" - }, - tenant: { - type: "string", - required: true - } -}; - -export const createModelEntity = (table: Table) => { - return createLegacyEntity(table, "CmsModels", attributes); -}; diff --git a/packages/migrations/src/migrations/5.35.0/005/createTenantEntity.ts b/packages/migrations/src/migrations/5.35.0/005/createTenantEntity.ts deleted file mode 100644 index 5b7f8a7e7ef..00000000000 --- a/packages/migrations/src/migrations/5.35.0/005/createTenantEntity.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -export const createTenantEntity = (table: Table) => { - return createStandardEntity(table, "TenancyTenant"); -}; diff --git a/packages/migrations/src/migrations/5.35.0/005/index.ts b/packages/migrations/src/migrations/5.35.0/005/index.ts deleted file mode 100644 index 6b32acd2168..00000000000 --- a/packages/migrations/src/migrations/5.35.0/005/index.ts +++ /dev/null @@ -1,147 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { DataMigrationContext, PrimaryDynamoTableSymbol } from "@webiny/data-migration"; -import { queryAll } from "~/utils"; -import { createModelEntity } from "./createModelEntity"; -import { createTenantEntity } from "./createTenantEntity"; -import { createLocaleEntity } from "./createLocaleEntity"; -import { CmsModel, I18NLocale, Tenant } from "./types"; -import pluralize from "pluralize"; -import upperFirst from "lodash/upperFirst"; -import camelCase from "lodash/camelCase"; -import { createEntityWriteBatch } from "@webiny/db-dynamodb"; - -const createSingularApiName = (model: CmsModel) => { - return upperFirst(camelCase(model.modelId)); -}; - -const createPluralApiName = (model: CmsModel) => { - return pluralize(createSingularApiName(model)); -}; - -interface ListLocalesParams { - tenant: Tenant; -} - -interface ListModelsParams { - tenant: Tenant; - locale: I18NLocale; -} - -export class CmsModels_5_35_0_005 { - private readonly modelEntity: ReturnType; - private readonly tenantEntity: ReturnType; - private readonly localeEntity: ReturnType; - - public constructor(table: Table) { - this.modelEntity = createModelEntity(table); - this.tenantEntity = createTenantEntity(table); - this.localeEntity = createLocaleEntity(table); - } - - public getId() { - return "5.35.0-005"; - } - - public getDescription() { - return "Add singular and plural API names to the CMS Model entity"; - } - - public async shouldExecute({ logger }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - if (tenants.length === 0) { - logger.info(`No tenants found in the system; skipping migration.`); - return false; - } - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - if (locales.length === 0) { - logger.info(`No locales found in tenant "${tenant.data.id}".`); - continue; - } - for (const locale of locales) { - const models = (await this.listModels({ tenant, locale })).filter(model => { - return !model.singularApiName || !model.pluralApiName; - }); - if (models.length === 0) { - logger.info( - `No models, to be updated, found in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - return true; - } - } - return false; - } - - public async execute({ logger }: DataMigrationContext): Promise { - const models: CmsModel[] = []; - const tenants = await this.listTenants(); - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - for (const locale of locales) { - const items = (await this.listModels({ tenant, locale })).filter(model => { - return !model.singularApiName || !model.pluralApiName; - }); - models.push(...items); - } - } - if (models.length === 0) { - logger.info(`No models to be updated; skipping migration.`); - return; - } - - const entityBatch = createEntityWriteBatch({ - entity: this.modelEntity, - put: models.map(model => { - return { - ...model, - /** - * Add singular and plural API names. - */ - singularApiName: createSingularApiName(model), - pluralApiName: createPluralApiName(model) - }; - }) - }); - - logger.info(`Updating total of ${entityBatch.total} models.`); - - await entityBatch.execute(); - logger.info("Updated all the models."); - } - - private async listTenants(): Promise { - return await queryAll({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gte: " " - } - }); - } - - private async listLocales({ tenant }: ListLocalesParams): Promise { - return await queryAll({ - entity: this.localeEntity, - partitionKey: `T#${tenant.data.id}#I18N#L`, - options: { - gte: " " - } - }); - } - - private async listModels({ tenant, locale }: ListModelsParams): Promise { - return await queryAll({ - entity: this.modelEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#CMS#CM`, - options: { - gte: " " - } - }); - } -} - -makeInjectable(CmsModels_5_35_0_005, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.35.0/005/types.ts b/packages/migrations/src/migrations/5.35.0/005/types.ts deleted file mode 100644 index 4a93f92820c..00000000000 --- a/packages/migrations/src/migrations/5.35.0/005/types.ts +++ /dev/null @@ -1,44 +0,0 @@ -export interface Tenant { - data: { - id: string; - name: string; - }; -} - -export interface CmsModel { - PK: string; - SK: string; - TYPE: string; - _ct: string; - _et: string; - _md: string; - name: string; - modelId: string; - singularApiName?: string; - pluralApiName?: string; - tenant: string; - locale: string; - group: { - id: string; - name: string; - }; - icon?: string | null; - description: string; - createdOn?: string; - savedOn?: string; - createdBy: { - id: string; - type: string; - displayName: string; - }; - fields: any[]; - layout: string[][]; - tags?: string[]; - lockedFields: any[]; - titleFieldId: string; - webinyVersion: string; -} - -export interface I18NLocale { - code: string; -} diff --git a/packages/migrations/src/migrations/5.35.0/006/constants.ts b/packages/migrations/src/migrations/5.35.0/006/constants.ts deleted file mode 100644 index a0449fcb8a6..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/constants.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const ROOT_FOLDER = "ROOT"; -export const PB_PAGE_TYPE = "PbPage"; -export const ACO_SEARCH_MODEL_ID = "acoSearchRecord"; diff --git a/packages/migrations/src/migrations/5.35.0/006/ddb-es/PageDataMigration.ts b/packages/migrations/src/migrations/5.35.0/006/ddb-es/PageDataMigration.ts deleted file mode 100644 index 85f006245f8..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/ddb-es/PageDataMigration.ts +++ /dev/null @@ -1,471 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { Client } from "@elastic/elasticsearch"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { DataMigration, DataMigrationContext } from "@webiny/data-migration"; -import { executeWithRetry } from "@webiny/utils"; - -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; -import { - createDdbEntryEntity, - createDdbEsEntryEntity -} from "~/migrations/5.35.0/006/entities/createEntryEntity"; -import { - createDdbEsPageEntity, - createDdbPageEntity -} from "~/migrations/5.35.0/006/entities/createPageEntity"; -import { getSearchablePageContent } from "~/migrations/5.35.0/006/utils/getSearchableContent"; -import { getCompressedData } from "~/migrations/5.35.0/006/utils/getCompressedData"; - -import { - batchWriteAll, - BatchWriteItem, - esCreateIndex, - esFindOne, - esGetIndexExist, - esGetIndexName, - esQueryAllWithCallback, - queryAll, - queryOne -} from "~/utils"; - -import { I18NLocale, ListLocalesParams, Page, Tenant } from "../types"; - -import { ACO_SEARCH_MODEL_ID, PB_PAGE_TYPE, ROOT_FOLDER } from "../constants"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -export type PageDataMigrationCheckpoint = Record; - -export class AcoRecords_5_35_0_006_PageData implements DataMigration { - private readonly elasticsearchClient: Client; - private readonly ddbEntryEntity: ReturnType; - private readonly ddbEsEntryEntity: ReturnType; - private readonly ddbPageEntity: ReturnType; - private readonly ddbEsPageEntity: ReturnType; - private readonly localeEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.elasticsearchClient = elasticsearchClient; - this.ddbEntryEntity = createDdbEntryEntity(table); - this.ddbEsEntryEntity = createDdbEsEntryEntity(esTable); - this.ddbPageEntity = createDdbPageEntity(table); - this.ddbEsPageEntity = createDdbEsPageEntity(esTable); - this.localeEntity = createLocaleEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "PageData"; - } - - getDescription() { - return "Migrate PbPage Data -> Create ACO Search Records"; - } - - async shouldExecute({ logger, forceExecute }: DataMigrationContext): Promise { - if (forceExecute) { - return true; - } - - const tenants = await this.listTenants(); - if (tenants.length === 0) { - logger.info(`No tenants found in the system; skipping migration.`); - return false; - } - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - if (locales.length === 0) { - logger.info(`No locales found in tenant "${tenant.data.id}".`); - continue; - } - - for (const locale of locales) { - // there is an index? NO -> skip - const indexExists = await esGetIndexExist({ - elasticsearchClient: this.elasticsearchClient, - tenant: tenant.data.id, - locale: locale.code, - type: "page-builder", - isHeadlessCmsModel: false - }); - - if (!indexExists) { - logger.info( - `No elastic search index found for pages in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - - // Fetch latest page record from ES - const latestPage = await esFindOne({ - elasticsearchClient: this.elasticsearchClient, - index: esGetIndexName({ - tenant: tenant.data.id, - locale: locale.code, - type: "page-builder" - }), - body: { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenant.data.id } }, - { term: { "locale.keyword": locale.code } }, - { term: { "__type.keyword": "page" } }, - { term: { latest: true } } - ] - } - }, - sort: [ - { - "id.keyword": "asc" - } - ] - } - }); - - if (!latestPage) { - logger.info( - `No pages found in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - - // Fetch latest aco search record from DDB using latest page "pid" - const latestSearchRecord = await queryOne<{ id: string }>({ - entity: this.ddbEntryEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#CMS#CME#wby-aco-${latestPage.pid}`, - options: { - eq: "L" - } - }); - - if (latestSearchRecord) { - logger.info( - `Pages already migrated to Search Records in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - return true; - } - } - return false; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - - const migrationStatus: PageDataMigrationCheckpoint = context.checkpoint || {}; - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - - for (const locale of locales) { - const groupId = `${tenant.data.id}:${locale.code}`; - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - continue; - } - - let batch = 0; - - // Since it's the first time we add an ACO record, we also need to create the index - await esCreateIndex({ - elasticsearchClient: this.elasticsearchClient, - tenant: tenant.data.id, - locale: locale.code, - type: "acosearchrecord", - isHeadlessCmsModel: true - }); - - await esQueryAllWithCallback({ - elasticsearchClient: this.elasticsearchClient, - index: esGetIndexName({ - tenant: tenant.data.id, - locale: locale.code, - type: "page-builder" - }), - body: { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenant.data.id } }, - { term: { "locale.keyword": locale.code } }, - { term: { "__type.keyword": "page" } }, - { term: { latest: true } } - ] - } - }, - size: 500, - sort: [ - { - "id.keyword": "asc" - } - ], - search_after: status - }, - callback: async (pages, cursor) => { - batch++; - logger.info( - `Processing batch #${batch} in group ${groupId} (${pages.length} pages).` - ); - - const ddbItems: BatchWriteItem[] = []; - const ddbEsItems: BatchWriteItem[] = []; - - for (const page of pages) { - const ddbPage = await queryOne({ - entity: this.ddbPageEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#PB#P#${page.pid}`, - options: { - eq: "L" - } - }); - - /** - * If the content is `gzip`, it means this page is created with the latest version - * of Webiny, and we don't need to migrate it. - */ - if (ddbPage.content?.compression === "gzip") { - continue; - } - - const { - createdBy, - createdOn, - locale: pageLocale, - locked, - path, - pid, - savedOn, - status, - tenant: pageTenant, - title, - version, - settings - } = ddbPage; - - const entry = await this.createSearchRecordCommonFields(ddbPage); - const content = await getSearchablePageContent(ddbPage); - - const rawData = { - modelId: ACO_SEARCH_MODEL_ID, - version: 1, - savedOn, - locale: pageLocale, - status: "draft", - values: { - "text@type": PB_PAGE_TYPE, - "text@title": title, - "text@content": content, - "text@tags": settings.general?.tags || [], - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "wby-aco-json@data": { - id: `${pid}#0001`, - pid, - title, - createdBy, - createdOn, - savedOn, - status, - version, - locked, - path - } - }, - createdBy, - entryId: `wby-aco-${pid}`, - tenant: pageTenant, - createdOn, - locked: false, - ownedBy: createdBy, - webinyVersion: process.env.WEBINY_VERSION, - id: `wby-aco-${pid}#0001`, - modifiedBy: createdBy, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - rawValues: { - "object@location": {} - } - }; - - const latestDdb = { - PK: `T#${pageTenant}#L#${pageLocale}#CMS#CME#wby-aco-${pid}`, - SK: "L", - TYPE: "L", - ...entry - }; - - const revisionDdb = { - PK: `T#${pageTenant}#L#${pageLocale}#CMS#CME#wby-aco-${pid}`, - SK: "REV#0001", - TYPE: "cms.entry", - ...entry - }; - - const latestDdbEs = { - PK: `T#${pageTenant}#L#${pageLocale}#CMS#CME#wby-aco-${pid}`, - SK: "L", - data: await getCompressedData(rawData), - index: esGetIndexName({ - tenant: pageTenant, - locale: pageLocale, - type: "acosearchrecord", - isHeadlessCmsModel: true - }) - }; - - ddbItems.push( - this.ddbEntryEntity.putBatch(latestDdb), - this.ddbEntryEntity.putBatch(revisionDdb) - ); - - ddbEsItems.push(this.ddbEsEntryEntity.putBatch(latestDdbEs)); - } - - const executeDdb = () => { - return batchWriteAll({ - table: this.ddbEntryEntity.table, - items: ddbItems - }); - }; - - const executeDdbEs = () => { - return batchWriteAll({ - table: this.ddbEsEntryEntity.table, - items: ddbEsItems - }); - }; - - await executeWithRetry(executeDdb, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - await executeWithRetry(executeDdbEs, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb + es" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - // Update checkpoint after every batch - migrationStatus[groupId] = cursor; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - }); - - migrationStatus[groupId] = true; - await context.createCheckpoint(migrationStatus); - } - } - } - - private async listTenants(): Promise { - return await queryAll({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gte: " " - } - }); - } - - private async listLocales({ tenant }: ListLocalesParams): Promise { - return await queryAll({ - entity: this.localeEntity, - partitionKey: `T#${tenant.data.id}#I18N#L`, - options: { - gte: " " - } - }); - } - - private async createSearchRecordCommonFields(page: Page) { - const { - createdBy, - createdOn, - id, - locale, - locked, - path, - pid, - savedOn, - status, - tenant, - title, - version, - settings - } = page; - - const content = await getSearchablePageContent(page); - - return { - createdBy, - createdOn, - entryId: `wby-aco-${pid}`, - id: `wby-aco-${pid}#0001`, - locale, - locked: false, - modelId: ACO_SEARCH_MODEL_ID, - modifiedBy: createdBy, - ownedBy: createdBy, - savedOn, - status: "draft", - tenant, - version: 1, - webinyVersion: process.env.WEBINY_VERSION, - values: { - "text@title": title, - "text@content": content, - "wby-aco-json@data": { - createdBy, - createdOn, - id, - locked, - path, - pid, - savedOn, - status, - title, - version - }, - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "text@tags": settings.general?.tags || [], - "text@type": PB_PAGE_TYPE - } - }; - } -} diff --git a/packages/migrations/src/migrations/5.35.0/006/ddb-es/index.ts b/packages/migrations/src/migrations/5.35.0/006/ddb-es/index.ts deleted file mode 100644 index fea4d5e5bf1..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/ddb-es/index.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { Client } from "@elastic/elasticsearch"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - ElasticsearchDynamoTableSymbol, - getChildLogger, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { makeInjectable, inject } from "@webiny/ioc"; -import { AcoRecords_5_35_0_006_PageData } from "./PageDataMigration"; -export * from "../types"; - -export class AcoRecords_5_35_0_006 implements DataMigration { - private migrations: DataMigration[]; - - constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.migrations = [new AcoRecords_5_35_0_006_PageData(table, esTable, elasticsearchClient)]; - } - - getId(): string { - return "5.35.0-006"; - } - - getDescription(): string { - return "ACO search record migration"; - } - - async shouldExecute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - return true; - } - } - return false; - } - - async execute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - await migration.execute(childContext); - } - } - } -} - -makeInjectable(AcoRecords_5_35_0_006, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.35.0/006/ddb/PageDataMigration.ts b/packages/migrations/src/migrations/5.35.0/006/ddb/PageDataMigration.ts deleted file mode 100644 index bd666f99bb9..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/ddb/PageDataMigration.ts +++ /dev/null @@ -1,283 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { DataMigration, DataMigrationContext } from "@webiny/data-migration"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { executeWithRetry } from "@webiny/utils"; - -import { createDdbEntryEntity } from "../entities/createEntryEntity"; -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createDdbPageEntity } from "../entities/createPageEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; -import { getSearchablePageContent } from "../utils/getSearchableContent"; - -import { I18NLocale, ListLocalesParams, Page, Tenant } from "../types"; -import { batchWriteAll, ddbQueryAllWithCallback, queryAll, queryOne } from "~/utils"; -import { ACO_SEARCH_MODEL_ID, PB_PAGE_TYPE, ROOT_FOLDER } from "../constants"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -export type PageDataMigrationCheckpoint = Record; - -export class AcoRecords_5_35_0_006_PageData implements DataMigration { - private readonly entryEntity: ReturnType; - private readonly localeEntity: ReturnType; - private readonly pageEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor(table: Table) { - this.entryEntity = createDdbEntryEntity(table); - this.localeEntity = createLocaleEntity(table); - this.pageEntity = createDdbPageEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "PageData"; - } - - getDescription() { - return "Migrate PbPage Data -> Create ACO Search Records"; - } - - async shouldExecute({ logger, forceExecute }: DataMigrationContext): Promise { - if (forceExecute) { - return true; - } - - const tenants = await this.listTenants(); - if (tenants.length === 0) { - logger.info(`No tenants found in the system; skipping migration.`); - return false; - } - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - if (locales.length === 0) { - logger.info(`No locales found in tenant "${tenant.data.id}".`); - continue; - } - - for (const locale of locales) { - //TODO: check this query - const lastPage = await queryOne<{ pid: string }>({ - entity: this.pageEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#PB#L`, - options: { gt: " ", reverse: true } - }); - - if (!lastPage) { - logger.info( - `No pages found in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - - const lastSearchRecord = await queryOne<{ id: string }>({ - entity: this.entryEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#CMS#CME#CME#wby-aco-${lastPage.pid}`, - options: { - eq: "L" - } - }); - - if (lastSearchRecord) { - logger.info( - `Pages already migrated to Search Records in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - return true; - } - } - return false; - } - - async execute({ logger, ...context }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - - const migrationStatus = context.checkpoint || {}; - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - - for (const locale of locales) { - const groupId = `${tenant.data.id}:${locale.code}`; - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - continue; - } - - let batch = 0; - await ddbQueryAllWithCallback( - { - entity: this.pageEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#PB#L`, - options: { - gt: status || " " - } - }, - async pages => { - batch++; - logger.info( - `Processing batch #${batch} in group ${groupId} (${pages.length} pages).` - ); - - const items = await pages.reduce( - async (accumulator: Promise, current) => { - const { pid, tenant, locale } = current; - - /** - * If the content is `gzip`, it means this page is created with the latest version - * of Webiny, and we don't need to migrate it. - */ - if (current.content?.compression === "gzip") { - return await accumulator; - } - - const entry = await this.createSearchRecordCommonFields(current); - - const latestEntry = { - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#wby-aco-${pid}`, - SK: "L", - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#acoSearchRecord#L`, - GSI1_SK: `wby-aco-${pid}#0001`, - TYPE: "cms.entry.l", - ...entry - }; - - const revisionEntry = { - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#wby-aco-${pid}`, - SK: "REV#0001", - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#acoSearchRecord#A`, - GSI1_SK: `wby-aco-${pid}#0001`, - TYPE: "cms.entry", - ...entry - }; - - const acc = await accumulator; - - return [ - ...acc, - this.entryEntity.putBatch(latestEntry), - this.entryEntity.putBatch(revisionEntry) - ]; - }, - Promise.resolve([]) - ); - - const execute = () => { - return batchWriteAll({ table: this.entryEntity.table, items }); - }; - - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - const cursor = pages[pages.length - 1]?.id ?? true; - - // Update checkpoint after every batch - migrationStatus[groupId] = cursor; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - migrationStatus[groupId] = true; - context.createCheckpoint(migrationStatus); - } - } - } - - private async listTenants(): Promise { - return await queryAll({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gte: " " - } - }); - } - - private async listLocales({ tenant }: ListLocalesParams): Promise { - return await queryAll({ - entity: this.localeEntity, - partitionKey: `T#${tenant.data.id}#I18N#L`, - options: { - gte: " " - } - }); - } - - private async createSearchRecordCommonFields(page: Page) { - const { - createdBy, - createdOn, - id, - locale, - locked, - path, - pid, - savedOn, - status, - tenant, - title, - version, - settings - } = page; - - const content = await getSearchablePageContent(page); - - return { - createdBy, - createdOn, - entryId: `wby-aco-${pid}`, - id: `wby-aco-${pid}#0001`, - locale, - locked: false, - modelId: ACO_SEARCH_MODEL_ID, - modifiedBy: createdBy, - ownedBy: createdBy, - savedOn, - status: "draft", - tenant, - version: 1, - webinyVersion: process.env.WEBINY_VERSION, - values: { - "text@title": title, - "text@content": content, - "wby-aco-json@data": { - createdBy, - createdOn, - id, - locked, - path, - pid, - savedOn, - status, - title, - version - }, - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "text@tags": settings.general?.tags || [], - "text@type": PB_PAGE_TYPE - } - }; - } -} diff --git a/packages/migrations/src/migrations/5.35.0/006/ddb/index.ts b/packages/migrations/src/migrations/5.35.0/006/ddb/index.ts deleted file mode 100644 index 17646210749..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/ddb/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { makeInjectable, inject } from "@webiny/ioc"; -import { - DataMigration, - DataMigrationContext, - getChildLogger, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { AcoRecords_5_35_0_006_PageData } from "./PageDataMigration"; - -export class AcoRecords_5_35_0_006 implements DataMigration { - private migrations: DataMigration[]; - - public constructor(table: Table) { - this.migrations = [new AcoRecords_5_35_0_006_PageData(table)]; - } - - public getId() { - return "5.35.0-006"; - } - - public getDescription() { - return "ACO search record migration"; - } - - async shouldExecute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - return true; - } - } - return false; - } - - async execute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - await migration.execute(childContext); - } - } - } -} - -makeInjectable(AcoRecords_5_35_0_006, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.35.0/006/entities/createEntryEntity.ts b/packages/migrations/src/migrations/5.35.0/006/entities/createEntryEntity.ts deleted file mode 100644 index cc0df8f7812..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/entities/createEntryEntity.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const ddbAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - }, - TYPE: { - type: "string" - }, - __type: { - type: "string" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - }, - entryId: { - type: "string" - }, - id: { - type: "string" - }, - createdBy: { - type: "map" - }, - ownedBy: { - type: "map" - }, - modifiedBy: { - type: "map" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - modelId: { - type: "string" - }, - locale: { - type: "string" - }, - publishedOn: { - type: "string" - }, - version: { - type: "number" - }, - locked: { - type: "boolean" - }, - status: { - type: "string" - }, - values: { - type: "map" - }, - meta: { - type: "map" - } -}; - -const ddbEsAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - index: { - type: "string" - }, - data: { - type: "map" - } -}; - -export const createDdbEntryEntity = (table: Table) => { - return createLegacyEntity(table, "CmsEntries", ddbAttributes); -}; - -export const createDdbEsEntryEntity = (table: Table) => { - return createStandardEntity(table, "CmsEntriesElasticsearch", ddbEsAttributes); -}; diff --git a/packages/migrations/src/migrations/5.35.0/006/entities/createLocaleEntity.ts b/packages/migrations/src/migrations/5.35.0/006/entities/createLocaleEntity.ts deleted file mode 100644 index 80fa7c4b29a..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/entities/createLocaleEntity.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createLocaleEntity = (table: Table) => { - return createLegacyEntity(table, "I18NLocale", { - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - code: { - type: "string" - }, - default: { - type: "boolean" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.35.0/006/entities/createPageEntity.ts b/packages/migrations/src/migrations/5.35.0/006/entities/createPageEntity.ts deleted file mode 100644 index 3cbcffe2a40..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/entities/createPageEntity.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const ddbAttributes: Parameters[2] = { - PK: { - partitionKey: true - }, - SK: { - sortKey: true - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - }, - TYPE: { - type: "string" - }, - id: { - type: "string" - }, - pid: { - type: "string" - }, - tenant: { - type: "string" - }, - locale: { - type: "string" - }, - title: { - type: "string" - }, - titleLC: { - type: "string" - }, - editor: { - type: "string" - }, - createdFrom: { - type: "string" - }, - path: { - type: "string" - }, - category: { - type: "string" - }, - content: { - type: "map" - }, - publishedOn: { - type: "string" - }, - version: { - type: "number" - }, - settings: { - type: "map" - }, - locked: { - type: "boolean" - }, - status: { - type: "string" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - ownedBy: { - type: "map" - }, - webinyVersion: { - type: "string" - } -}; - -const ddbEsAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - index: { - type: "string" - }, - data: { - type: "map" - } -}; - -export const createDdbPageEntity = (table: Table) => { - return createLegacyEntity(table, "PbPages", ddbAttributes); -}; - -export const createDdbEsPageEntity = (table: Table) => { - return createStandardEntity(table, "PbPagesEs", ddbEsAttributes); -}; diff --git a/packages/migrations/src/migrations/5.35.0/006/entities/createTenantEntity.ts b/packages/migrations/src/migrations/5.35.0/006/entities/createTenantEntity.ts deleted file mode 100644 index 5b7f8a7e7ef..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/entities/createTenantEntity.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -export const createTenantEntity = (table: Table) => { - return createStandardEntity(table, "TenancyTenant"); -}; diff --git a/packages/migrations/src/migrations/5.35.0/006/types.ts b/packages/migrations/src/migrations/5.35.0/006/types.ts deleted file mode 100644 index 83ffdc09252..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/types.ts +++ /dev/null @@ -1,94 +0,0 @@ -export interface Tenant { - data: { - id: string; - name: string; - }; -} - -export interface I18NLocale { - code: string; -} - -export interface Identity { - id: string; - displayName: string | null; - type: string; -} - -export interface CmsEntryValues { - [key: string]: any; -} - -export type CmsEntryStatus = "published" | "unpublished" | "draft"; - -export interface CmsEntry { - webinyVersion: string; - tenant: string; - entryId: string; - id: string; - createdBy: Identity; - ownedBy: Identity; - modifiedBy?: Identity | null; - createdOn: string; - savedOn: string; - modelId: string; - locale: string; - publishedOn?: string; - version: number; - locked: boolean; - status: CmsEntryStatus; - values: T; - meta?: { - [key: string]: any; - }; -} - -export interface PageSettings { - social?: { - title: string; - description: string; - image: File; - meta: Array<{ property: string; content: string }>; - }; - seo?: { - title: string; - description: string; - meta: Array<{ name: string; content: string }>; - }; - general?: { - tags?: string[]; - snippet?: string; - layout?: string; - image?: File; - }; - [key: string]: any; -} - -export type PageStatus = "published" | "unpublished" | "draft"; - -export interface Page { - id: string; - pid: string; - locale: string; - tenant: string; - title: string; - editor: string; - createdFrom: string | null; - path: string; - category: string; - content: Record | null; - publishedOn: string | null; - version: number; - settings: PageSettings; - locked: boolean; - status: string; - createdOn: string; - savedOn: string; - createdBy: Identity; - ownedBy: Identity; - webinyVersion: string; -} - -export interface ListLocalesParams { - tenant: Tenant; -} diff --git a/packages/migrations/src/migrations/5.35.0/006/utils/getCompressedData.ts b/packages/migrations/src/migrations/5.35.0/006/utils/getCompressedData.ts deleted file mode 100644 index 31f77e45314..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/utils/getCompressedData.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { compress as gzip } from "@webiny/utils/compression/gzip"; - -const GZIP = "gzip"; -const TO_STORAGE_ENCODING = "base64"; - -export const getCompressedData = async (data: any) => { - const value = await gzip(JSON.stringify(data)); - - return { - compression: GZIP, - value: value.toString(TO_STORAGE_ENCODING) - }; -}; diff --git a/packages/migrations/src/migrations/5.35.0/006/utils/getLexicalContentText.ts b/packages/migrations/src/migrations/5.35.0/006/utils/getLexicalContentText.ts deleted file mode 100644 index 0b0743d4fab..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/utils/getLexicalContentText.ts +++ /dev/null @@ -1,24 +0,0 @@ -export const getLexicalContentText = (value: string): string => { - try { - const content = JSON.parse(value); - return traverse(content, "text"); - } catch { - return value; - } -}; - -const traverse = (content: Record, key: string): string => { - if (content.hasOwnProperty(key)) { - return content[key]; - } - - if (Array.isArray(content)) { - return content.map(c => traverse(c, key)).join(" "); - } - - for (const property in content) { - return traverse(content[property], key); - } - - return ""; -}; diff --git a/packages/migrations/src/migrations/5.35.0/006/utils/getSearchableContent.ts b/packages/migrations/src/migrations/5.35.0/006/utils/getSearchableContent.ts deleted file mode 100644 index fc71ad502b8..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/utils/getSearchableContent.ts +++ /dev/null @@ -1,53 +0,0 @@ -import jsonpack from "jsonpack"; - -import { processors } from "~/migrations/5.35.0/006/utils/processors"; - -import { Page } from "../types"; - -export interface CompressedValue { - compression: string; - content: string | null; -} - -const decompress = (page: Pick): Promise | null => { - if (!page || !page.content) { - return null; - } - try { - return jsonpack.unpack(page.content.content); - } catch (ex) { - console.log(`Error while decompressing page content: ${ex.message}`); - return null; - } -}; - -export async function getSearchablePageContent( - page: Pick -): Promise { - const result = [page.title]; - - const content = await decompress(page); - - if (content) { - for (const block of content.elements) { - await traverse(block, async (element: Record) => { - for (const processor of processors) { - const processed = processor(element); - result.push(processed); - } - }); - } - } - - return result.filter(Boolean).join(" ").trim(); -} - -async function traverse(element: Record, callback: any) { - if (element.type !== "block") { - await callback(element); - } - - for (const child of element.elements || []) { - await traverse(child, callback); - } -} diff --git a/packages/migrations/src/migrations/5.35.0/006/utils/processors/button.ts b/packages/migrations/src/migrations/5.35.0/006/utils/processors/button.ts deleted file mode 100644 index 789747aaeb8..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/utils/processors/button.ts +++ /dev/null @@ -1,9 +0,0 @@ -import get from "lodash/get"; - -export const buttonProcessor = (element: Record) => { - if (element.type !== "button") { - return ""; - } - - return get(element, "data.buttonText"); -}; diff --git a/packages/migrations/src/migrations/5.35.0/006/utils/processors/image.ts b/packages/migrations/src/migrations/5.35.0/006/utils/processors/image.ts deleted file mode 100644 index f66600e391e..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/utils/processors/image.ts +++ /dev/null @@ -1,9 +0,0 @@ -import get from "lodash/get"; - -export const imageProcessor = (element: Record) => { - if (element.type !== "image") { - return ""; - } - - return get(element, "data.image.title"); -}; diff --git a/packages/migrations/src/migrations/5.35.0/006/utils/processors/images.ts b/packages/migrations/src/migrations/5.35.0/006/utils/processors/images.ts deleted file mode 100644 index fd81dbe7b4a..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/utils/processors/images.ts +++ /dev/null @@ -1,20 +0,0 @@ -import get from "lodash/get"; - -interface Image { - id: string; - src: string; - name: string; -} - -export const imagesProcessor = (element: Record) => { - if (element.type !== "images-list") { - return ""; - } - - const images: Image[] = get(element, "data.images", []); - - return images - .filter(Boolean) - .map(image => image.name) - .join(" "); -}; diff --git a/packages/migrations/src/migrations/5.35.0/006/utils/processors/index.ts b/packages/migrations/src/migrations/5.35.0/006/utils/processors/index.ts deleted file mode 100644 index f9301077c08..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/utils/processors/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { buttonProcessor } from "./button"; -import { imageProcessor } from "./image"; -import { imagesProcessor } from "./images"; -import { paragraphProcessor } from "./paragraph"; - -export const processors = [buttonProcessor, imageProcessor, imagesProcessor, paragraphProcessor]; diff --git a/packages/migrations/src/migrations/5.35.0/006/utils/processors/paragraph.ts b/packages/migrations/src/migrations/5.35.0/006/utils/processors/paragraph.ts deleted file mode 100644 index 533d48e6ae6..00000000000 --- a/packages/migrations/src/migrations/5.35.0/006/utils/processors/paragraph.ts +++ /dev/null @@ -1,21 +0,0 @@ -import get from "lodash/get"; - -import { getLexicalContentText } from "../getLexicalContentText"; - -const supportedTypes = ["paragraph", "heading", "quote", "list"]; - -export const paragraphProcessor = (element: Record) => { - if (!supportedTypes.includes(element.type)) { - return ""; - } - - const value = get(element, "data.text.data.text"); - // Get text from Lexical Editor JSON string. - const text = getLexicalContentText(value); - - return text - .replace(/(<([^>]+)>)/gi, "") // Remove any HTML tag - .replace(/(\n)|(\r)|(\r\n)/gi, "") // Remove any new line char - .replace(/([ ]{2,})/gi, " ") // Replace multiple spaces with one space only - .trim(); -}; diff --git a/packages/migrations/src/migrations/5.36.0/001/constants.ts b/packages/migrations/src/migrations/5.36.0/001/constants.ts deleted file mode 100644 index 4551547b628..00000000000 --- a/packages/migrations/src/migrations/5.36.0/001/constants.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const ROOT_FOLDER = "ROOT"; -export const FM_FILE_TYPE = "FmFile"; -export const ACO_SEARCH_MODEL_ID = "acoSearchRecord"; diff --git a/packages/migrations/src/migrations/5.36.0/001/ddb-es/FileDataMigration.ts b/packages/migrations/src/migrations/5.36.0/001/ddb-es/FileDataMigration.ts deleted file mode 100644 index 04c8480e14c..00000000000 --- a/packages/migrations/src/migrations/5.36.0/001/ddb-es/FileDataMigration.ts +++ /dev/null @@ -1,473 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { Client } from "@elastic/elasticsearch"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { DataMigration, DataMigrationContext } from "@webiny/data-migration"; -import { executeWithRetry } from "@webiny/utils"; -import chunk from "lodash/chunk"; - -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; -import { - createDdbEntryEntity, - createDdbEsEntryEntity -} from "~/migrations/5.36.0/001/entities/createEntryEntity"; -import { addMimeTag } from "~/migrations/5.36.0/001/utils/createMimeTag"; -import { getCompressedData } from "~/migrations/5.36.0/001/utils/getCompressedData"; - -import { - batchWriteAll, - esFindOne, - esGetIndexExist, - esGetIndexName, - esGetIndexSettings, - esPutIndexSettings, - esQueryAllWithCallback, - queryAll, - queryOne -} from "~/utils"; - -import { I18NLocale, ListLocalesParams, File, Tenant } from "../types"; - -import { ACO_SEARCH_MODEL_ID, FM_FILE_TYPE, ROOT_FOLDER } from "../constants"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -export type FileDataMigrationCheckpoint = Record; - -export class AcoRecords_5_36_0_001_FileData implements DataMigration { - private readonly elasticsearchClient: Client; - private readonly ddbEntryEntity: ReturnType; - private readonly ddbEsEntryEntity: ReturnType; - private readonly localeEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.elasticsearchClient = elasticsearchClient; - this.ddbEntryEntity = createDdbEntryEntity(table); - this.ddbEsEntryEntity = createDdbEsEntryEntity(esTable); - this.localeEntity = createLocaleEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "FileData"; - } - - getDescription() { - return "Migrate FmFile Data -> Create ACO Search Records"; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - if (tenants.length === 0) { - logger.info(`No tenants found in the system; skipping migration.`); - return false; - } - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - if (locales.length === 0) { - logger.info(`No locales found in tenant "${tenant.data.id}".`); - continue; - } - - for (const locale of locales) { - // there is an index? NO -> skip - const indexExists = await esGetIndexExist({ - elasticsearchClient: this.elasticsearchClient, - tenant: tenant.data.id, - locale: locale.code, - type: "file-manager", - isHeadlessCmsModel: false - }); - - if (!indexExists) { - logger.info( - `No elastic search index found for files in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - - // Fetch latest file record from ES - const latestFile = await esFindOne({ - elasticsearchClient: this.elasticsearchClient, - index: esGetIndexName({ - tenant: tenant.data.id, - locale: locale.code, - type: "file-manager" - }), - body: { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenant.data.id } }, - { term: { "locale.keyword": locale.code } } - ] - } - }, - sort: [ - { - "id.keyword": { order: "asc", unmapped_type: "keyword" } - } - ] - } - }); - - if (!latestFile) { - logger.info( - `No files found in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - - // Fetch latest aco search record from DDB using latest file "id" - const latestSearchRecord = await queryOne<{ id: string }>({ - entity: this.ddbEntryEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#CMS#CME#wby-aco-${latestFile.id}`, - options: { - eq: "L" - } - }); - - if (latestSearchRecord) { - logger.info( - `Files already migrated to Search Records in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - return true; - } - } - return false; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - - const migrationStatus: FileDataMigrationCheckpoint = context.checkpoint || {}; - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - - for (const locale of locales) { - const groupId = `${tenant.data.id}:${locale.code}`; - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - continue; - } - - let batch = 0; - - const acoIndex = esGetIndexName({ - tenant: tenant.data.id, - locale: locale.code, - type: "acosearchrecord", - isHeadlessCmsModel: true - }); - - // Saving ACO index settings, we are going to reset them and save the original ones later - const settings = await esGetIndexSettings({ - elasticsearchClient: this.elasticsearchClient, - index: acoIndex, - fields: ["number_of_replicas", "refresh_interval"] - }); - - await esPutIndexSettings({ - elasticsearchClient: this.elasticsearchClient, - index: acoIndex, - settings: { - number_of_replicas: 0, - refresh_interval: -1 - } - }); - - try { - await esQueryAllWithCallback({ - elasticsearchClient: this.elasticsearchClient, - index: esGetIndexName({ - tenant: tenant.data.id, - locale: locale.code, - type: "file-manager" - }), - body: { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenant.data.id } }, - { term: { "locale.keyword": locale.code } } - ] - } - }, - size: 10000, - sort: [ - { - "id.keyword": "asc" - } - ], - search_after: status - }, - callback: async (files, cursor) => { - batch++; - logger.info( - `Processing batch #${batch} in group ${groupId} (${files.length} files).` - ); - - const ddbItems: Array | null | undefined = []; - const ddbEsItems: Array | null | undefined = []; - - for (const file of files) { - const { - tenant: fileTenant, - id, - key, - size, - type, - name, - meta, - createdOn, - createdBy, - tags, - aliases, - locale: fileLocale - } = file; - - if (meta?.private) { - logger.info( - `File "${name}" is marked as private, skipping migration.` - ); - continue; - } - - const entry = await this.createSearchRecordCommonFields(file); - - const rawDatas = { - modelId: ACO_SEARCH_MODEL_ID, - version: 1, - locale: fileLocale, - status: "draft", - values: { - "text@type": FM_FILE_TYPE, - "text@title": name, - "text@tags": addMimeTag(tags, type), - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "wby-aco-json@data": { - id, - key, - size, - type, - name, - createdOn, - createdBy, - aliases, - meta - } - }, - createdBy, - entryId: `wby-aco-${id}`, - tenant: fileTenant, - createdOn, - savedOn: createdOn, - locked: false, - ownedBy: createdBy, - webinyVersion: process.env.WEBINY_VERSION, - id: `wby-aco-${id}#0001`, - modifiedBy: createdBy, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - rawValues: { - "object@location": {} - } - }; - - const latestDdb = { - PK: `T#${fileTenant}#L#${fileLocale}#CMS#CME#wby-aco-${id}`, - SK: "L", - TYPE: "L", - ...entry - }; - - const revisionDdb = { - PK: `T#${fileTenant}#L#${fileLocale}#CMS#CME#wby-aco-${id}`, - SK: "REV#0001", - TYPE: "cms.entry", - ...entry - }; - - const latestDdbEs = { - PK: `T#${fileTenant}#L#${fileLocale}#CMS#CME#wby-aco-${id}`, - SK: "L", - data: await getCompressedData(rawDatas), - index: esGetIndexName({ - tenant: fileTenant, - locale: fileLocale, - type: "acosearchrecord", - isHeadlessCmsModel: true - }) - }; - - ddbItems.push( - this.ddbEntryEntity.putBatch(latestDdb), - this.ddbEntryEntity.putBatch(revisionDdb) - ); - - ddbEsItems.push(this.ddbEsEntryEntity.putBatch(latestDdbEs)); - } - - const executeDdb = () => { - return Promise.all( - chunk(ddbItems, 200).map(ddbItemsChunk => { - return batchWriteAll({ - table: this.ddbEntryEntity.table, - items: ddbItemsChunk - }); - }) - ); - }; - - const executeDdbEs = () => { - return Promise.all( - chunk(ddbEsItems, 200).map(ddbEsItemsChunk => { - return batchWriteAll({ - table: this.ddbEsEntryEntity.table, - items: ddbEsItemsChunk - }); - }) - ); - }; - - await executeWithRetry(executeDdb, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - await executeWithRetry(executeDdbEs, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb + es" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - // Update checkpoint after every batch - migrationStatus[groupId] = cursor; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - }); - - migrationStatus[groupId] = true; - await context.createCheckpoint(migrationStatus); - } finally { - // Saving back ACO original settings - await esPutIndexSettings({ - elasticsearchClient: this.elasticsearchClient, - index: acoIndex, - settings: { - number_of_replicas: settings.number_of_replicas || null, - refresh_interval: settings.refresh_interval || null - } - }); - } - } - } - } - - private async listTenants(): Promise { - return await queryAll({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gte: " " - } - }); - } - - private async listLocales({ tenant }: ListLocalesParams): Promise { - return await queryAll({ - entity: this.localeEntity, - partitionKey: `T#${tenant.data.id}#I18N#L`, - options: { - gte: " " - } - }); - } - - private async createSearchRecordCommonFields(file: File) { - const { - tenant, - id, - key, - size, - type, - name, - meta, - createdOn, - createdBy, - tags, - aliases, - locale - } = file; - - return { - createdBy, - createdOn, - entryId: `wby-aco-${id}`, - id: `wby-aco-${id}#0001`, - locked: false, - locale, - modelId: ACO_SEARCH_MODEL_ID, - modifiedBy: createdBy, - ownedBy: createdBy, - savedOn: createdOn, - status: "draft", - tenant, - version: 1, - webinyVersion: process.env.WEBINY_VERSION, - values: { - "text@title": name, - "wby-aco-json@data": { - id, - key, - size, - type, - name, - createdOn, - createdBy, - aliases, - meta - }, - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "text@tags": addMimeTag(tags, type), - "text@type": FM_FILE_TYPE - } - }; - } -} diff --git a/packages/migrations/src/migrations/5.36.0/001/ddb-es/index.ts b/packages/migrations/src/migrations/5.36.0/001/ddb-es/index.ts deleted file mode 100644 index 6174adec2cd..00000000000 --- a/packages/migrations/src/migrations/5.36.0/001/ddb-es/index.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { Client } from "@elastic/elasticsearch"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - ElasticsearchDynamoTableSymbol, - getChildLogger, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { makeInjectable, inject } from "@webiny/ioc"; -import { AcoRecords_5_36_0_001_FileData } from "./FileDataMigration"; -export * from "../types"; - -export class AcoRecords_5_36_0_001 implements DataMigration { - private migrations: DataMigration[]; - - constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.migrations = [new AcoRecords_5_36_0_001_FileData(table, esTable, elasticsearchClient)]; - } - - getId(): string { - return "5.36.0-001"; - } - - getDescription(): string { - return "Migrate FmFile Data -> Create ACO Search Records"; - } - - async shouldExecute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - return true; - } - } - return false; - } - - async execute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - await migration.execute(childContext); - } - } - } -} - -makeInjectable(AcoRecords_5_36_0_001, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.36.0/001/ddb/FileDataMigration.ts b/packages/migrations/src/migrations/5.36.0/001/ddb/FileDataMigration.ts deleted file mode 100644 index 7dcdb915d16..00000000000 --- a/packages/migrations/src/migrations/5.36.0/001/ddb/FileDataMigration.ts +++ /dev/null @@ -1,280 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { DataMigration, DataMigrationContext } from "@webiny/data-migration"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { executeWithRetry } from "@webiny/utils"; - -import { createDdbEntryEntity } from "../entities/createEntryEntity"; -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createDdbFileEntity } from "../entities/createFileEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; - -import { batchWriteAll, ddbQueryAllWithCallback, queryAll, queryOne } from "~/utils"; -import { addMimeTag } from "~/migrations/5.36.0/001/utils/createMimeTag"; - -import { I18NLocale, ListLocalesParams, Tenant, File, FileItem } from "../types"; - -import { ACO_SEARCH_MODEL_ID, FM_FILE_TYPE, ROOT_FOLDER } from "../constants"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -export type FileDataMigrationCheckpoint = Record; - -export class AcoRecords_5_36_0_001_FileData implements DataMigration { - private readonly entryEntity: ReturnType; - private readonly localeEntity: ReturnType; - private readonly fileEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor(table: Table) { - this.entryEntity = createDdbEntryEntity(table); - this.localeEntity = createLocaleEntity(table); - this.fileEntity = createDdbFileEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "FileData"; - } - - getDescription() { - return "Migrate FmFile Data -> Create ACO Search Records"; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - if (tenants.length === 0) { - logger.info(`No tenants found in the system; skipping migration.`); - return false; - } - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - if (locales.length === 0) { - logger.info(`No locales found in tenant "${tenant.data.id}".`); - continue; - } - - for (const locale of locales) { - const latestFile = await queryOne({ - entity: this.fileEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#FM#FILES`, - options: { - index: "GSI1", - gte: " ", - reverse: true - } - }); - - if (!latestFile) { - logger.info( - `No file found in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - - const lastSearchRecord = await queryOne<{ id: string }>({ - entity: this.entryEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#CMS#CME#CME#wby-aco-${latestFile.data.id}`, - options: { - eq: "L" - } - }); - - if (lastSearchRecord) { - logger.info( - `Files already migrated to Search Records in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - return true; - } - } - return false; - } - - async execute({ logger, ...context }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - - const migrationStatus = context.checkpoint || {}; - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - - for (const locale of locales) { - const groupId = `${tenant.data.id}:${locale.code}`; - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - continue; - } - - let batch = 0; - await ddbQueryAllWithCallback( - { - entity: this.fileEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#FM#FILES`, - options: { - index: "GSI1", - gt: status || " " - } - }, - async files => { - batch++; - logger.info( - `Processing batch #${batch} in group ${groupId} (${files.length} files).` - ); - - const items = await files.reduce( - async (accumulator: Promise, current) => { - const data = current.data; - const { id, tenant, locale, meta, name } = data; - - const acc = await accumulator; - - if (meta?.private) { - logger.info( - `File "${name}" is marked as private, skipping migration.` - ); - return acc; - } - - const entry = await this.createSearchRecordCommonFields(data); - - const latestEntry = { - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#wby-aco-${id}`, - SK: "L", - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#acoSearchRecord#L`, - GSI1_SK: `wby-aco-${id}#0001`, - TYPE: "cms.entry.l", - ...entry - }; - - const revisionEntry = { - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#wby-aco-${id}`, - SK: "REV#0001", - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#acoSearchRecord#A`, - GSI1_SK: `wby-aco-${id}#0001`, - TYPE: "cms.entry", - ...entry - }; - - return [ - ...acc, - this.entryEntity.putBatch(latestEntry), - this.entryEntity.putBatch(revisionEntry) - ]; - }, - Promise.resolve([]) - ); - - const execute = () => { - return batchWriteAll({ table: this.entryEntity.table, items }); - }; - - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - const cursor = files[files.length - 1]?.data.id; - - // Update checkpoint after every batch - migrationStatus[groupId] = cursor; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - migrationStatus[groupId] = true; - context.createCheckpoint(migrationStatus); - } - } - } - - private async listTenants(): Promise { - return await queryAll({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gte: " " - } - }); - } - - private async listLocales({ tenant }: ListLocalesParams): Promise { - return await queryAll({ - entity: this.localeEntity, - partitionKey: `T#${tenant.data.id}#I18N#L`, - options: { - gte: " " - } - }); - } - - private async createSearchRecordCommonFields(file: File) { - const { - tenant, - id, - key, - size, - type, - name, - meta, - createdOn, - createdBy, - tags, - aliases, - locale - } = file; - - return { - createdBy, - createdOn, - entryId: `wby-aco-${id}`, - id: `wby-aco-${id}#0001`, - locked: false, - locale, - modelId: ACO_SEARCH_MODEL_ID, - modifiedBy: createdBy, - ownedBy: createdBy, - savedOn: createdOn, - status: "draft", - tenant, - version: 1, - webinyVersion: process.env.WEBINY_VERSION, - values: { - "text@title": name, - "wby-aco-json@data": { - id, - key, - size, - type, - name, - createdOn, - createdBy, - aliases, - meta - }, - "object@location": { - "text@folderId": ROOT_FOLDER - }, - "text@tags": addMimeTag(tags, type), - "text@type": FM_FILE_TYPE - } - }; - } -} diff --git a/packages/migrations/src/migrations/5.36.0/001/ddb/index.ts b/packages/migrations/src/migrations/5.36.0/001/ddb/index.ts deleted file mode 100644 index 543a0cb5dc5..00000000000 --- a/packages/migrations/src/migrations/5.36.0/001/ddb/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { makeInjectable, inject } from "@webiny/ioc"; -import { - DataMigration, - DataMigrationContext, - getChildLogger, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { AcoRecords_5_36_0_001_FileData } from "./FileDataMigration"; - -export class AcoRecords_5_36_0_001 implements DataMigration { - private migrations: DataMigration[]; - - public constructor(table: Table) { - this.migrations = [new AcoRecords_5_36_0_001_FileData(table)]; - } - - public getId() { - return "5.36.0-001"; - } - - public getDescription() { - return "Migrate FmFile Data -> Create ACO Search Records"; - } - - async shouldExecute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - return true; - } - } - return false; - } - - async execute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - await migration.execute(childContext); - } - } - } -} - -makeInjectable(AcoRecords_5_36_0_001, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.36.0/001/entities/createEntryEntity.ts b/packages/migrations/src/migrations/5.36.0/001/entities/createEntryEntity.ts deleted file mode 100644 index cc0df8f7812..00000000000 --- a/packages/migrations/src/migrations/5.36.0/001/entities/createEntryEntity.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const ddbAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - }, - TYPE: { - type: "string" - }, - __type: { - type: "string" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - }, - entryId: { - type: "string" - }, - id: { - type: "string" - }, - createdBy: { - type: "map" - }, - ownedBy: { - type: "map" - }, - modifiedBy: { - type: "map" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - modelId: { - type: "string" - }, - locale: { - type: "string" - }, - publishedOn: { - type: "string" - }, - version: { - type: "number" - }, - locked: { - type: "boolean" - }, - status: { - type: "string" - }, - values: { - type: "map" - }, - meta: { - type: "map" - } -}; - -const ddbEsAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - index: { - type: "string" - }, - data: { - type: "map" - } -}; - -export const createDdbEntryEntity = (table: Table) => { - return createLegacyEntity(table, "CmsEntries", ddbAttributes); -}; - -export const createDdbEsEntryEntity = (table: Table) => { - return createStandardEntity(table, "CmsEntriesElasticsearch", ddbEsAttributes); -}; diff --git a/packages/migrations/src/migrations/5.36.0/001/entities/createFileEntity.ts b/packages/migrations/src/migrations/5.36.0/001/entities/createFileEntity.ts deleted file mode 100644 index d4c5afcd2d8..00000000000 --- a/packages/migrations/src/migrations/5.36.0/001/entities/createFileEntity.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -const ddbEsAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - index: { - type: "string" - }, - data: { - type: "map" - } -}; - -export const createDdbFileEntity = (table: Table) => { - return createStandardEntity(table, "FM.File"); -}; - -export const createDdbEsFileEntity = (table: Table) => { - return createStandardEntity(table, "FilesElasticsearch", ddbEsAttributes); -}; diff --git a/packages/migrations/src/migrations/5.36.0/001/entities/createLocaleEntity.ts b/packages/migrations/src/migrations/5.36.0/001/entities/createLocaleEntity.ts deleted file mode 100644 index 80fa7c4b29a..00000000000 --- a/packages/migrations/src/migrations/5.36.0/001/entities/createLocaleEntity.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createLocaleEntity = (table: Table) => { - return createLegacyEntity(table, "I18NLocale", { - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - code: { - type: "string" - }, - default: { - type: "boolean" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.36.0/001/entities/createTenantEntity.ts b/packages/migrations/src/migrations/5.36.0/001/entities/createTenantEntity.ts deleted file mode 100644 index 5b7f8a7e7ef..00000000000 --- a/packages/migrations/src/migrations/5.36.0/001/entities/createTenantEntity.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -export const createTenantEntity = (table: Table) => { - return createStandardEntity(table, "TenancyTenant"); -}; diff --git a/packages/migrations/src/migrations/5.36.0/001/types.ts b/packages/migrations/src/migrations/5.36.0/001/types.ts deleted file mode 100644 index ef84d986a90..00000000000 --- a/packages/migrations/src/migrations/5.36.0/001/types.ts +++ /dev/null @@ -1,75 +0,0 @@ -export interface Tenant { - data: { - id: string; - name: string; - }; -} - -export interface I18NLocale { - code: string; -} - -export interface Identity { - id: string; - displayName: string | null; - type: string; -} - -export interface CmsEntryValues { - [key: string]: any; -} - -export type CmsEntryStatus = "published" | "unpublished" | "draft"; - -export interface CmsEntry { - webinyVersion: string; - tenant: string; - entryId: string; - id: string; - createdBy: Identity; - ownedBy: Identity; - modifiedBy?: Identity | null; - createdOn: string; - savedOn: string; - modelId: string; - locale: string; - publishedOn?: string; - version: number; - locked: boolean; - status: CmsEntryStatus; - values: T; - meta?: { - [key: string]: any; - }; -} - -export interface File { - id: string; - key: string; - size: number; - type: string; - name: string; - meta: Record; - tags: string[]; - aliases: string[]; - createdOn: string; - createdBy: Identity; - /** - * Added with new storage operations refactoring. - */ - tenant: string; - locale: string; - webinyVersion: string; - /** - * User can add new fields to the File object so we must allow it in the types. - */ - [key: string]: any; -} - -export interface FileItem { - data: File; -} - -export interface ListLocalesParams { - tenant: Tenant; -} diff --git a/packages/migrations/src/migrations/5.36.0/001/utils/createMimeTag.ts b/packages/migrations/src/migrations/5.36.0/001/utils/createMimeTag.ts deleted file mode 100644 index 4a16b83dee4..00000000000 --- a/packages/migrations/src/migrations/5.36.0/001/utils/createMimeTag.ts +++ /dev/null @@ -1 +0,0 @@ -export const addMimeTag = (tags: string[], mime: string): string[] => [...tags, `mime:${mime}`]; diff --git a/packages/migrations/src/migrations/5.36.0/001/utils/getCompressedData.ts b/packages/migrations/src/migrations/5.36.0/001/utils/getCompressedData.ts deleted file mode 100644 index 31f77e45314..00000000000 --- a/packages/migrations/src/migrations/5.36.0/001/utils/getCompressedData.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { compress as gzip } from "@webiny/utils/compression/gzip"; - -const GZIP = "gzip"; -const TO_STORAGE_ENCODING = "base64"; - -export const getCompressedData = async (data: any) => { - const value = await gzip(JSON.stringify(data)); - - return { - compression: GZIP, - value: value.toString(TO_STORAGE_ENCODING) - }; -}; diff --git a/packages/migrations/src/migrations/5.37.0/001/TenantLinkDataMigration.ts b/packages/migrations/src/migrations/5.37.0/001/TenantLinkDataMigration.ts deleted file mode 100644 index de3e949dc48..00000000000 --- a/packages/migrations/src/migrations/5.37.0/001/TenantLinkDataMigration.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { DataMigration, DataMigrationContext } from "@webiny/data-migration"; -import { createTenantLinkEntity } from "./entities/createTenantLinkEntity"; -import { createTenantEntity } from "./entities/createTenantEntity"; -import { queryAll } from "~/utils"; -import { Tenant, TenantLink } from "./types"; -import { isMigratedTenantLink } from "~/migrations/5.37.0/001/utils/isMigratedTenantLink"; -import { update } from "@webiny/db-dynamodb"; - -export type FileDataMigrationCheckpoint = Record; - -export class TenantLinkRecords_5_37_0_001_FileData - implements DataMigration -{ - private readonly tenantEntity: ReturnType; - private readonly tenantLinkEntity: ReturnType; - - constructor(table: Table) { - this.tenantEntity = createTenantEntity(table); - this.tenantLinkEntity = createTenantLinkEntity(table); - } - - getId() { - return "TenantLinkData"; - } - - getDescription() { - return "Migrate Tenant Links Data"; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - if (tenants.length === 0) { - logger.info(`No tenants found in the system; skipping migration.`); - return false; - } - - for (const tenant of tenants) { - const tenantLinks = await queryAll({ - entity: this.tenantLinkEntity, - partitionKey: `T#${tenant.data.id}`, - options: { - index: "GSI1", - beginsWith: "TYPE#group#" - } - }); - - for (let i = 0; i < tenantLinks.length; i++) { - const tenantLink = tenantLinks[i]; - if (!Array.isArray(tenantLink.data.teams)) { - return true; - } - } - - logger.info(`No tenant links found in tenant "${tenant.data.id}".`); - } - return false; - } - - async execute({ logger }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - - for (const tenant of tenants) { - const tenantLinks = await this.listLegacyTenantLinks({ tenant }); - - for (const tenantLink of tenantLinks) { - if (isMigratedTenantLink(tenantLink)) { - continue; - } - - logger.info(`Updating tenant link ${tenantLink.PK}.`); - - await update({ - entity: this.tenantLinkEntity, - item: { - PK: tenantLink.PK, - SK: tenantLink.SK, - data: { - ...tenantLink.data, - teams: [], - groups: [ - { - id: tenantLink.data.group, - permissions: tenantLink.data.permissions - } - ] - } - } - }); - } - } - } - - private async listTenants(): Promise { - return await queryAll({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gte: " " - } - }); - } - - private async listLegacyTenantLinks({ tenant }: { tenant: Tenant }): Promise { - return await queryAll({ - entity: this.tenantLinkEntity, - partitionKey: `T#${tenant.data.id}`, - options: { - index: "GSI1", - beginsWith: "TYPE#group#" - } - }); - } -} diff --git a/packages/migrations/src/migrations/5.37.0/001/entities/createTenantEntity.ts b/packages/migrations/src/migrations/5.37.0/001/entities/createTenantEntity.ts deleted file mode 100644 index 5b7f8a7e7ef..00000000000 --- a/packages/migrations/src/migrations/5.37.0/001/entities/createTenantEntity.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -export const createTenantEntity = (table: Table) => { - return createStandardEntity(table, "TenancyTenant"); -}; diff --git a/packages/migrations/src/migrations/5.37.0/001/entities/createTenantLinkEntity.ts b/packages/migrations/src/migrations/5.37.0/001/entities/createTenantLinkEntity.ts deleted file mode 100644 index 0340f2c9514..00000000000 --- a/packages/migrations/src/migrations/5.37.0/001/entities/createTenantLinkEntity.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -export const createTenantLinkEntity = (table: Table) => { - return createStandardEntity(table, "SecurityIdentity2Tenant", { type: { type: "string" } }); -}; diff --git a/packages/migrations/src/migrations/5.37.0/001/index.ts b/packages/migrations/src/migrations/5.37.0/001/index.ts deleted file mode 100644 index cd19f7ab6f2..00000000000 --- a/packages/migrations/src/migrations/5.37.0/001/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { makeInjectable, inject } from "@webiny/ioc"; -import { - DataMigration, - DataMigrationContext, - getChildLogger, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { TenantLinkRecords_5_37_0_001_FileData } from "./TenantLinkDataMigration"; - -export class TenantLinkRecords_5_37_0_001 implements DataMigration { - private migrations: DataMigration[]; - - public constructor(table: Table) { - this.migrations = [new TenantLinkRecords_5_37_0_001_FileData(table)]; - } - - public getId() { - return "5.37.0-001"; - } - - public getDescription() { - return "Migrate Tenant Links Data"; - } - - async shouldExecute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - return true; - } - } - return false; - } - - async execute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - await migration.execute(childContext); - } - } - } -} - -makeInjectable(TenantLinkRecords_5_37_0_001, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.37.0/001/types.ts b/packages/migrations/src/migrations/5.37.0/001/types.ts deleted file mode 100644 index 114afce6dfa..00000000000 --- a/packages/migrations/src/migrations/5.37.0/001/types.ts +++ /dev/null @@ -1,33 +0,0 @@ -export interface Tenant { - data: { - id: string; - name: string; - }; -} - -export type Permissions = Array>; - -export interface TenantLink { - PK: string; - SK: string; - GSI1_PK: string; - GSI1_SK: string; - identity: string; - tenant: string; - type: string; - data: { - // Old properties. - group: string; - permissions: Permissions; - - // New properties. - - // Groups is an array of objects with `id` and `permissions` properties. - // Note that, despite the property accepting an array, we only allow a single group to be - // assigned to a tenant link. - groups: Array<{ id: string; permissions: Permissions }>; - - // In the migration process, we set `teams` property to an empty array. - teams: []; - }; -} diff --git a/packages/migrations/src/migrations/5.37.0/001/utils/isMigratedTenantLink.ts b/packages/migrations/src/migrations/5.37.0/001/utils/isMigratedTenantLink.ts deleted file mode 100644 index b7a7f821151..00000000000 --- a/packages/migrations/src/migrations/5.37.0/001/utils/isMigratedTenantLink.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { TenantLink } from "../types"; - -export const isMigratedTenantLink = (tenantLink: TenantLink): boolean => { - return tenantLink.type === "permissions"; -}; diff --git a/packages/migrations/src/migrations/5.37.0/002/constants.ts b/packages/migrations/src/migrations/5.37.0/002/constants.ts deleted file mode 100644 index 4347c18a4df..00000000000 --- a/packages/migrations/src/migrations/5.37.0/002/constants.ts +++ /dev/null @@ -1 +0,0 @@ -export const ROOT_FOLDER = "root"; diff --git a/packages/migrations/src/migrations/5.37.0/002/ddb-es/index.ts b/packages/migrations/src/migrations/5.37.0/002/ddb-es/index.ts deleted file mode 100644 index 429fc900dee..00000000000 --- a/packages/migrations/src/migrations/5.37.0/002/ddb-es/index.ts +++ /dev/null @@ -1,426 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - ElasticsearchDynamoTableSymbol, - Logger, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { createDdbEntryEntity, createDdbEsEntryEntity } from "../entities/createEntryEntity"; -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; -import { - batchReadAll, - BatchReadItem, - batchWriteAll, - BatchWriteItem, - scan -} from "@webiny/db-dynamodb"; -import { CmsEntry } from "../types"; -import { Client } from "@elastic/elasticsearch"; -import { - ddbScanWithCallback, - esGetIndexName, - esGetIndexSettings, - esPutIndexSettings -} from "~/utils"; -import { executeWithRetry } from "@webiny/utils"; -import { getDecompressedData } from "~/migrations/5.37.0/002/utils/getDecompressedData"; -import { getCompressedData } from "~/migrations/5.37.0/002/utils/getCompressedData"; -import { inject, makeInjectable } from "@webiny/ioc"; - -interface LastEvaluatedKey { - PK: string; - SK: string; - GSI1_PK: string; - GSI1_SK: string; -} - -interface IndexSettings { - number_of_replicas: number; - refresh_interval: `${number}s`; -} - -interface CmsEntriesRootFolderDataMigrationCheckpoint { - lastEvaluatedKey?: LastEvaluatedKey | boolean; - indexes: { - [index: string]: IndexSettings | null; - }; -} - -interface FetchOriginalElasticsearchSettingsParams { - index: string; - logger: Logger; -} - -interface RestoreOriginalElasticsearchSettingsParams { - migrationStatus: CmsEntriesRootFolderDataMigrationCheckpoint; - logger: Logger; -} - -interface DisableElasticsearchIndexingParams { - index: string; - logger: Logger; -} - -interface DynamoDbElasticsearchRecord { - PK: string; - SK: string; - data: string; -} - -export class CmsEntriesRootFolder_5_37_0_002 - implements DataMigration -{ - private readonly elasticsearchClient: Client; - private readonly ddbEntryEntity: ReturnType; - private readonly ddbEsEntryEntity: ReturnType; - private readonly localeEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - public constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.elasticsearchClient = elasticsearchClient; - this.ddbEntryEntity = createDdbEntryEntity(table); - this.ddbEsEntryEntity = createDdbEsEntryEntity(esTable); - this.localeEntity = createLocaleEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "5.37.0-002"; - } - - getDescription() { - return "Add default folderId to all CMS records."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - /** - * We will load a few CMS entryes - */ - const result = await scan({ - entity: this.ddbEsEntryEntity, - options: { - filters: [ - { - attr: "PK", - contains: "#CMS#CME#" - } - ], - limit: 100 - } - }); - - if (result.items.length === 0) { - logger.info(`No CMS entries found in the system; skipping migration.`); - return false; - } else if (result.error) { - logger.error(result.error); - throw new Error(result.error); - } - - for (const item of result.items) { - const data = await getDecompressedData(item.data); - if (!data) { - continue; - } - /** - * If no location.folderId was set, we need to push the upgrade. - */ - if (!data.location?.folderId) { - return true; - } - } - logger.info(`CMS entries already upgraded. skipping...`); - return false; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const migrationStatus = - context.checkpoint || ({} as CmsEntriesRootFolderDataMigrationCheckpoint); - - if (migrationStatus.lastEvaluatedKey === true) { - await this.restoreOriginalElasticsearchSettings({ - migrationStatus, - logger - }); - logger.info(`Migration completed, no need to start again.`); - return; - } - let usingKey = ""; - if (migrationStatus?.lastEvaluatedKey) { - usingKey = JSON.stringify(migrationStatus.lastEvaluatedKey); - } - logger.debug(`Scanning DynamoDB Elasticsearch table... ${usingKey}`); - await ddbScanWithCallback( - { - entity: this.ddbEntryEntity, - options: { - filters: [ - { - attr: "TYPE", - beginsWith: "cms.entry" - } - ], - startKey: migrationStatus.lastEvaluatedKey || undefined, - limit: 500 - } - }, - async result => { - logger.debug(`Processing ${result.items.length} items...`); - const ddbItems: BatchWriteItem[] = []; - const ddbEsItems: BatchWriteItem[] = []; - - const ddbEsGetItems: Record = {}; - /** - * Update the DynamoDB part of the records. - */ - for (const item of result.items) { - const index = esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - type: item.modelId, - isHeadlessCmsModel: true - }); - // Check for the elasticsearch index settings - if (!migrationStatus.indexes || migrationStatus.indexes[index] === undefined) { - // We need to fetch the index settings first - const settings = await this.fetchOriginalElasticsearchSettings({ - index, - logger - }); - // ... add it to the checkpoint... - migrationStatus.indexes = { - ...migrationStatus.indexes, - [index]: settings - }; - // and then set not to index - await this.disableElasticsearchIndexing({ - index, - logger - }); - } - // - ddbItems.push( - this.ddbEntryEntity.putBatch({ - ...item, - location: { - ...item.location, - folderId: item.location?.folderId || "root" - } - }) - ); - /** - * Prepare the loading of DynamoDB Elasticsearch part of the records. - */ - if (ddbEsGetItems[`${item.entryId}:L`]) { - continue; - } - ddbEsGetItems[`${item.entryId}:L`] = this.ddbEsEntryEntity.getBatch({ - PK: item.PK, - SK: "L" - }); - if (item.status === "published" || !!item.locked) { - ddbEsGetItems[`${item.entryId}:P`] = this.ddbEsEntryEntity.getBatch({ - PK: item.PK, - SK: "P" - }); - } - } - /** - * Get all the records from DynamoDB Elasticsearch. - */ - const esRecords = await batchReadAll({ - table: this.ddbEsEntryEntity.table, - items: Object.values(ddbEsGetItems) - }); - for (const esRecord of esRecords) { - const decompressedData = await getDecompressedData(esRecord.data); - if (!decompressedData) { - logger.trace( - `Skipping record "${esRecord.PK}" as it is not a valid CMS entry...` - ); - continue; - } else if (!context.forceExecute && decompressedData.location?.folderId) { - logger.trace( - `Skipping record "${decompressedData.entryId}" as it already has folderId defined...` - ); - continue; - } - const compressedData = await getCompressedData({ - ...decompressedData, - location: { - ...decompressedData.location, - folderId: "root" - } - }); - const modified = new Date().toISOString(); - ddbEsItems.push( - this.ddbEsEntryEntity.putBatch({ - ...esRecord, - data: compressedData, - modified - }) - ); - } - - const execute = async () => { - return await batchWriteAll({ - table: this.ddbEntryEntity.table, - items: ddbItems - }); - }; - - const executeDdbEs = async () => { - return await batchWriteAll({ - table: this.ddbEsEntryEntity.table, - items: ddbEsItems - }); - }; - - logger.trace("Storing the DynamoDB records..."); - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - }); - logger.trace("...stored."); - - logger.trace("Storing the DynamoDB Elasticsearch records..."); - await executeWithRetry(executeDdbEs, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb + es" attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - }); - logger.trace("...stored."); - - // Update checkpoint after every batch - migrationStatus.lastEvaluatedKey = result.lastEvaluatedKey?.PK - ? (result.lastEvaluatedKey as unknown as LastEvaluatedKey) - : true; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - /** - * This is the end of the migration. - */ - await this.restoreOriginalElasticsearchSettings({ - migrationStatus, - logger - }); - migrationStatus.lastEvaluatedKey = true; - migrationStatus.indexes = {}; - context.createCheckpoint(migrationStatus); - } - - private async fetchOriginalElasticsearchSettings( - params: FetchOriginalElasticsearchSettingsParams - ): Promise { - const { index, logger } = params; - try { - const settings = await esGetIndexSettings({ - elasticsearchClient: this.elasticsearchClient, - index, - fields: ["number_of_replicas", "refresh_interval"] - }); - return { - number_of_replicas: settings.number_of_replicas || 1, - refresh_interval: settings.refresh_interval || "1s" - }; - } catch (ex) { - logger.error(`Failed to fetch original Elasticsearch settings for index "${index}".`); - logger.error({ - ...ex, - message: ex.message, - code: ex.code, - data: ex.data - }); - } - return null; - } - - private async restoreOriginalElasticsearchSettings( - params: RestoreOriginalElasticsearchSettingsParams - ): Promise { - const { migrationStatus, logger } = params; - const indexes = migrationStatus.indexes; - if (!indexes || typeof indexes !== "object") { - return; - } - for (const index in indexes) { - const settings = indexes[index]; - if (!settings || typeof settings !== "object") { - continue; - } - try { - await esPutIndexSettings({ - elasticsearchClient: this.elasticsearchClient, - index, - settings: { - number_of_replicas: settings.number_of_replicas || 1, - refresh_interval: settings.refresh_interval || `1s` - } - }); - } catch (ex) { - logger.error( - `Failed to restore original settings for index "${index}". Please do it manually.` - ); - logger.error({ - ...ex, - message: ex.message, - code: ex.code, - data: ex.data - }); - } - } - } - - private async disableElasticsearchIndexing( - params: DisableElasticsearchIndexingParams - ): Promise { - const { index, logger } = params; - - try { - await esPutIndexSettings({ - elasticsearchClient: this.elasticsearchClient, - index, - settings: { - number_of_replicas: 0, - refresh_interval: -1 - } - }); - } catch (ex) { - logger.error(`Failed to disable indexing for index "${index}".`); - logger.error({ - ...ex, - message: ex.message, - code: ex.code, - data: ex.data - }); - } - } -} - -makeInjectable(CmsEntriesRootFolder_5_37_0_002, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.37.0/002/ddb/index.ts b/packages/migrations/src/migrations/5.37.0/002/ddb/index.ts deleted file mode 100644 index 44ed4132ab1..00000000000 --- a/packages/migrations/src/migrations/5.37.0/002/ddb/index.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { createDdbEntryEntity } from "../entities/createEntryEntity"; -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; -import { batchWriteAll, BatchWriteItem, ddbScanWithCallback, scan } from "~/utils"; -import { CmsEntry } from "../types"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { executeWithRetry } from "@webiny/utils"; - -interface LastEvaluatedKey { - PK: string; - SK: string; - GSI1_PK: string; - GSI1_SK: string; -} - -interface CmsEntriesRootFolderDataMigrationCheckpoint { - lastEvaluatedKey?: LastEvaluatedKey | boolean; -} - -export class CmsEntriesRootFolder_5_37_0_002 - implements DataMigration -{ - private readonly entryEntity: ReturnType; - private readonly localeEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor(table: Table) { - this.entryEntity = createDdbEntryEntity(table); - this.localeEntity = createLocaleEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "5.37.0-002"; - } - - getDescription() { - return "Add default folderId to all CMS records."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - /** - * We will go through a larger amount of the entries, to determine if they need to be updated. - */ - const result = await scan({ - entity: this.entryEntity, - options: { - index: "GSI1", - filters: [ - { - attr: "TYPE", - beginsWith: "cms.entry" - } - ], - limit: 100 - } - }); - - if (result.items.length === 0) { - logger.info(`No CMS entries found in the system; skipping migration.`); - return false; - } else if (result.error) { - logger.error(result.error); - throw new Error(result.error); - } - - for (const item of result.items) { - /** - * If no location.folderId was set, we need to push the upgrade. - */ - if (!item.location?.folderId) { - return true; - } - } - logger.info(`CMS entries already upgraded. skipping...`); - return false; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const migrationStatus = context.checkpoint || {}; - - if (migrationStatus.lastEvaluatedKey === true) { - logger.info(`Migration completed, no need to start again.`); - return; - } - - let usingKey = ""; - if (migrationStatus?.lastEvaluatedKey) { - usingKey = JSON.stringify(migrationStatus.lastEvaluatedKey); - } - logger.debug(`Scanning DynamoDB table... ${usingKey}`); - await ddbScanWithCallback( - { - entity: this.entryEntity, - options: { - index: "GSI1", - filters: [ - { - attr: "TYPE", - beginsWith: "cms.entry" - } - ], - startKey: migrationStatus.lastEvaluatedKey || undefined, - limit: 1000 - } - }, - async result => { - logger.debug(`Processing ${result.items.length} items...`); - const items: BatchWriteItem[] = []; - for (const item of result.items) { - if (!!item.location?.folderId) { - continue; - } - items.push( - this.entryEntity.putBatch({ - ...item, - location: { - ...item.location, - folderId: "root" - } - }) - ); - } - - const execute = () => { - return batchWriteAll({ table: this.entryEntity.table, items }); - }; - - logger.trace("Storing the DynamoDB records..."); - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error(`"batchWriteAll" attempt #${error.attemptNumber} failed.`); - logger.error(error.message); - } - }); - logger.trace("...stored."); - - // Update checkpoint after every batch - migrationStatus.lastEvaluatedKey = result.lastEvaluatedKey?.PK - ? (result.lastEvaluatedKey as unknown as LastEvaluatedKey) - : true; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - migrationStatus.lastEvaluatedKey = true; - context.createCheckpoint(migrationStatus); - } -} - -makeInjectable(CmsEntriesRootFolder_5_37_0_002, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.37.0/002/entities/createEntryEntity.ts b/packages/migrations/src/migrations/5.37.0/002/entities/createEntryEntity.ts deleted file mode 100644 index 40a105f1907..00000000000 --- a/packages/migrations/src/migrations/5.37.0/002/entities/createEntryEntity.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const ddbAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - }, - TYPE: { - type: "string" - }, - __type: { - type: "string" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - }, - entryId: { - type: "string" - }, - id: { - type: "string" - }, - createdBy: { - type: "map" - }, - ownedBy: { - type: "map" - }, - modifiedBy: { - type: "map" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - modelId: { - type: "string" - }, - locale: { - type: "string" - }, - publishedOn: { - type: "string" - }, - version: { - type: "number" - }, - locked: { - type: "boolean" - }, - status: { - type: "string" - }, - values: { - type: "map" - }, - meta: { - type: "map" - }, - location: { - type: "map" - } -}; - -const ddbEsAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - index: { - type: "string" - }, - data: { - type: "map" - } -}; - -export const createDdbEntryEntity = (table: Table) => { - return createLegacyEntity(table, "CmsEntries", ddbAttributes); -}; - -export const createDdbEsEntryEntity = (table: Table) => { - return createStandardEntity(table, "CmsEntriesElasticsearch", ddbEsAttributes); -}; diff --git a/packages/migrations/src/migrations/5.37.0/002/entities/createLocaleEntity.ts b/packages/migrations/src/migrations/5.37.0/002/entities/createLocaleEntity.ts deleted file mode 100644 index 80fa7c4b29a..00000000000 --- a/packages/migrations/src/migrations/5.37.0/002/entities/createLocaleEntity.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createLocaleEntity = (table: Table) => { - return createLegacyEntity(table, "I18NLocale", { - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - code: { - type: "string" - }, - default: { - type: "boolean" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.37.0/002/entities/createTenantEntity.ts b/packages/migrations/src/migrations/5.37.0/002/entities/createTenantEntity.ts deleted file mode 100644 index 5b7f8a7e7ef..00000000000 --- a/packages/migrations/src/migrations/5.37.0/002/entities/createTenantEntity.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -export const createTenantEntity = (table: Table) => { - return createStandardEntity(table, "TenancyTenant"); -}; diff --git a/packages/migrations/src/migrations/5.37.0/002/types.ts b/packages/migrations/src/migrations/5.37.0/002/types.ts deleted file mode 100644 index a34d813f9a5..00000000000 --- a/packages/migrations/src/migrations/5.37.0/002/types.ts +++ /dev/null @@ -1,61 +0,0 @@ -export interface Tenant { - data: { - id: string; - name: string; - }; -} - -export interface I18NLocale { - code: string; -} - -export interface Identity { - id: string; - displayName: string | null; - type: string; -} - -export interface CmsEntryValues { - [key: string]: any; -} - -export type CmsEntryStatus = "published" | "unpublished" | "draft"; - -export interface CmsEntry { - webinyVersion: string; - tenant: string; - entryId: string; - id: string; - createdBy: Identity; - ownedBy: Identity; - modifiedBy?: Identity | null; - createdOn: string; - savedOn: string; - modelId: string; - locale: string; - publishedOn?: string; - version: number; - locked: boolean; - status: CmsEntryStatus; - values: T; - meta?: { - [key: string]: any; - }; - location?: { - folderId?: string | null; - }; -} - -export interface ListLocalesParams { - tenant: Tenant; -} - -export interface ListModelsParams { - tenant: Tenant; - locale: I18NLocale; -} - -export interface CmsModel { - modelId: string; - name: string; -} diff --git a/packages/migrations/src/migrations/5.37.0/002/utils/getCompressedData.ts b/packages/migrations/src/migrations/5.37.0/002/utils/getCompressedData.ts deleted file mode 100644 index 31f77e45314..00000000000 --- a/packages/migrations/src/migrations/5.37.0/002/utils/getCompressedData.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { compress as gzip } from "@webiny/utils/compression/gzip"; - -const GZIP = "gzip"; -const TO_STORAGE_ENCODING = "base64"; - -export const getCompressedData = async (data: any) => { - const value = await gzip(JSON.stringify(data)); - - return { - compression: GZIP, - value: value.toString(TO_STORAGE_ENCODING) - }; -}; diff --git a/packages/migrations/src/migrations/5.37.0/002/utils/getDecompressedData.ts b/packages/migrations/src/migrations/5.37.0/002/utils/getDecompressedData.ts deleted file mode 100644 index 593bd0e39a1..00000000000 --- a/packages/migrations/src/migrations/5.37.0/002/utils/getDecompressedData.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { decompress as ungzip } from "@webiny/utils/compression/gzip"; - -const GZIP = "gzip"; -const TO_STORAGE_ENCODING = "base64"; -const FROM_STORAGE_ENCODING = "utf8"; - -const convertToBuffer = (value: string | Buffer) => { - if (typeof value === "string") { - return Buffer.from(value, TO_STORAGE_ENCODING); - } - return value; -}; - -export const getDecompressedData = async (data: any): Promise => { - if (data?.compression !== GZIP) { - return null; - } - try { - const buf = await ungzip(convertToBuffer(data.value)); - const value = buf.toString(FROM_STORAGE_ENCODING); - return JSON.parse(value); - } catch (ex) { - return null; - } -}; diff --git a/packages/migrations/src/migrations/5.37.0/003/constants.ts b/packages/migrations/src/migrations/5.37.0/003/constants.ts deleted file mode 100644 index f066ffd161a..00000000000 --- a/packages/migrations/src/migrations/5.37.0/003/constants.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const ROOT_FOLDER = "root"; -export const UPPERCASE_ROOT_FOLDER = "ROOT"; -export const ACO_FOLDER_MODEL_ID = "acoFolder"; diff --git a/packages/migrations/src/migrations/5.37.0/003/ddb-es/AcoFolderMigration.ts b/packages/migrations/src/migrations/5.37.0/003/ddb-es/AcoFolderMigration.ts deleted file mode 100644 index 1cdc644b628..00000000000 --- a/packages/migrations/src/migrations/5.37.0/003/ddb-es/AcoFolderMigration.ts +++ /dev/null @@ -1,387 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { Client } from "@elastic/elasticsearch"; -import { PrimitiveValue, SearchBody } from "@webiny/api-elasticsearch/types"; -import { DataMigration, DataMigrationContext } from "@webiny/data-migration"; -import { executeWithRetry } from "@webiny/utils"; -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; -import { createDdbEntryEntity, createDdbEsEntryEntity } from "../entities/createEntryEntity"; -import { - esFindOne, - esGetIndexExist, - esGetIndexName, - esQueryAllWithCallback, - get, - queryAll -} from "~/utils"; -import { CmsEntryAcoFolder, I18NLocale, ListLocalesParams, Tenant } from "../types"; -import { ACO_FOLDER_MODEL_ID, ROOT_FOLDER, UPPERCASE_ROOT_FOLDER } from "../constants"; -import { getElasticsearchLatestEntryData } from "./latestElasticsearchData"; -import { getDecompressedData } from "~/migrations/5.37.0/003/utils/getDecompressedData"; -import { createEntityWriteBatch } from "@webiny/db-dynamodb"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -const hasBuggedParent = (folder: CmsEntryAcoFolder): boolean => { - const parentId = (folder.values.parentId || "").toLowerCase(); - return parentId === ROOT_FOLDER; -}; - -export type AcoFolderDataMigrationCheckpoint = Record< - string, - PrimitiveValue[] | boolean | undefined ->; - -interface CmsEntryAcoFolderElasticsearchRecord { - PK: string; - SK: string; - index: string; - data: any; -} - -export class AcoRecords_5_37_0_003_AcoFolder - implements DataMigration -{ - private readonly elasticsearchClient: Client; - private readonly ddbEntryEntity: ReturnType; - private readonly ddbEsEntryEntity: ReturnType; - private readonly localeEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.elasticsearchClient = elasticsearchClient; - this.ddbEntryEntity = createDdbEntryEntity(table); - this.ddbEsEntryEntity = createDdbEsEntryEntity(esTable); - this.localeEntity = createLocaleEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "AcoFolderParentId"; - } - - getDescription() { - return "Fix the ACO Folders having set ROOT as parentId"; - } - - private createElasticsearchFolderBody(tenant: string, locale: string): Partial { - return { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenant } }, - { term: { "locale.keyword": locale } }, - { - bool: { - should: [ - { - term: { - "values.parentId.keyword": ROOT_FOLDER - } - }, - { - term: { - "values.parentId.keyword": UPPERCASE_ROOT_FOLDER - } - } - ], - minimum_should_match: 1 - } - }, - { term: { latest: true } } - ] - } - }, - sort: [ - { - "id.keyword": "asc" - } - ] - }; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - if (tenants.length === 0) { - logger.info(`No tenants found in the system; skipping migration.`); - return false; - } - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - if (locales.length === 0) { - logger.info(`No locales found in tenant "${tenant.data.id}".`); - continue; - } - - for (const locale of locales) { - // there is an index? NO -> skip - const indexExists = await esGetIndexExist({ - elasticsearchClient: this.elasticsearchClient, - tenant: tenant.data.id, - locale: locale.code, - type: ACO_FOLDER_MODEL_ID, - isHeadlessCmsModel: true - }); - - if (!indexExists) { - logger.info( - `No Elasticsearch index found for folders in tenant "${tenant.data.id}" and locale "${locale.code}"; skipping.` - ); - continue; - } - - const body = this.createElasticsearchFolderBody(tenant.data.id, locale.code); - const folder = await esFindOne({ - elasticsearchClient: this.elasticsearchClient, - index: esGetIndexName({ - tenant: tenant.data.id, - locale: locale.code, - type: ACO_FOLDER_MODEL_ID, - isHeadlessCmsModel: true - }), - body: { - ...body, - sort: undefined - } - }); - if (!folder) { - logger.info( - `No folder with wrong parentId found in tenant "${tenant.data.id}" and locale "${locale.code}"; skipping.` - ); - continue; - } - - return true; - } - } - return false; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - - const migrationStatus: AcoFolderDataMigrationCheckpoint = context.checkpoint || {}; - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - - const tenantId = tenant.data.id; - - for (const locale of locales) { - const localeCode = locale.code; - const groupId = `${tenantId}:${localeCode}`; - - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - continue; - } - - // there is an index? NO -> skip - const indexExists = await esGetIndexExist({ - elasticsearchClient: this.elasticsearchClient, - tenant: tenant.data.id, - locale: locale.code, - type: ACO_FOLDER_MODEL_ID, - isHeadlessCmsModel: true - }); - - if (!indexExists) { - /** - * No need to do anything with this index as it doesn't exist - querying will produce error. - */ - continue; - } - - let batch = 0; - - const foldersIndexName = esGetIndexName({ - tenant: tenant.data.id, - locale: locale.code, - type: ACO_FOLDER_MODEL_ID, - isHeadlessCmsModel: true - }); - - await esQueryAllWithCallback({ - elasticsearchClient: this.elasticsearchClient, - index: foldersIndexName, - body: { - ...this.createElasticsearchFolderBody(tenantId, localeCode), - size: 500, - search_after: status - }, - onError: error => { - const x = JSON.stringify(error); - if (x.includes("No mapping found")) { - return; - } - throw error; - }, - callback: async (folders, cursor) => { - batch++; - logger.info( - `Processing batch #${batch} in group ${groupId} (${folders.length} folders).` - ); - - const entityBatch = createEntityWriteBatch({ - entity: this.ddbEntryEntity - }); - const elasticsearchEntityBatch = createEntityWriteBatch({ - entity: this.ddbEsEntryEntity - }); - - for (const folder of folders) { - const folderPk = `T#${tenantId}#L#${localeCode}#CMS#CME#${folder.entryId}`; - const ddbFolder = await get({ - entity: this.ddbEntryEntity, - keys: { - PK: folderPk, - SK: "REV#0001" - } - }); - if (!ddbFolder) { - logger.warn( - `Missing DDB item with PK "${folderPk}", SK "REV#0001"; skipping.` - ); - continue; - } else if (!hasBuggedParent(ddbFolder)) { - continue; - } - - const values = { - ...ddbFolder.values, - parentId: null - }; - - const latestDdb = { - ...ddbFolder, - values, - PK: folderPk, - SK: "L", - TYPE: "cms.entry.l" - }; - - const revisionDdb = { - ...ddbFolder, - values, - PK: folderPk, - SK: "REV#0001", - TYPE: "cms.entry" - }; - - entityBatch.put(latestDdb); - entityBatch.put(revisionDdb); - - const esLatestRecord = await get({ - entity: this.ddbEsEntryEntity, - keys: { - PK: folderPk, - SK: "L" - } - }); - if (!esLatestRecord) { - continue; - } - - const esRecord = await getDecompressedData( - esLatestRecord.data - ); - if (!esRecord) { - continue; - } - - const esLatestData = await getElasticsearchLatestEntryData({ - ...esRecord, - values: { - ...esRecord.values, - parentId: null - } - }); - - const latestDdbEs = { - PK: folderPk, - SK: "L", - data: esLatestData, - index: foldersIndexName - }; - - elasticsearchEntityBatch.put(latestDdbEs); - } - - const executeDdb = async () => { - return entityBatch.execute(); - }; - - const executeDdbEs = async () => { - return elasticsearchEntityBatch.execute(); - }; - - await executeWithRetry(executeDdb, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - await executeWithRetry(executeDdbEs, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb + es" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - // Update checkpoint after every batch - migrationStatus[groupId] = cursor; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - }); - - migrationStatus[groupId] = true; - await context.createCheckpoint(migrationStatus); - } - } - } - - private async listTenants(): Promise { - return await queryAll({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gte: " " - } - }); - } - - private async listLocales({ tenant }: ListLocalesParams): Promise { - return await queryAll({ - entity: this.localeEntity, - partitionKey: `T#${tenant.data.id}#I18N#L`, - options: { - gte: " " - } - }); - } -} diff --git a/packages/migrations/src/migrations/5.37.0/003/ddb-es/index.ts b/packages/migrations/src/migrations/5.37.0/003/ddb-es/index.ts deleted file mode 100644 index 8b6909d0503..00000000000 --- a/packages/migrations/src/migrations/5.37.0/003/ddb-es/index.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { Client } from "@elastic/elasticsearch"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - ElasticsearchDynamoTableSymbol, - getChildLogger, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { AcoRecords_5_37_0_003_AcoFolder } from "./AcoFolderMigration"; - -export * from "../types"; - -export class AcoFolders_5_37_0_003 implements DataMigration { - private readonly migrations: DataMigration[]; - - constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.migrations = [ - new AcoRecords_5_37_0_003_AcoFolder(table, esTable, elasticsearchClient) - ]; - } - - getId(): string { - return "5.37.0-003"; - } - - getDescription(): string { - return "ACO Folder parentId migration"; - } - - async shouldExecute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - return true; - } - } - return false; - } - - async execute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - await migration.execute(childContext); - } - } - } -} - -makeInjectable(AcoFolders_5_37_0_003, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.37.0/003/ddb-es/latestElasticsearchData.ts b/packages/migrations/src/migrations/5.37.0/003/ddb-es/latestElasticsearchData.ts deleted file mode 100644 index 8c2d238575c..00000000000 --- a/packages/migrations/src/migrations/5.37.0/003/ddb-es/latestElasticsearchData.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { CmsEntryAcoFolder } from "../types"; -import { getCompressedData } from "../utils/getCompressedData"; - -const getEntryData = (input: CmsEntryAcoFolder): CmsEntryAcoFolder => { - const output: any = { - ...input - }; - delete output["PK"]; - delete output["SK"]; - delete output["GSI1_PK"]; - delete output["GSI1_SK"]; - delete output["published"]; - delete output["latest"]; - - return output; -}; - -export const getElasticsearchLatestEntryData = async (entry: any) => { - return getCompressedData({ - ...getEntryData(entry), - latest: true, - TYPE: "L", - __type: "cms.entry.l" - }); -}; diff --git a/packages/migrations/src/migrations/5.37.0/003/ddb/AcoFolderMigration.ts b/packages/migrations/src/migrations/5.37.0/003/ddb/AcoFolderMigration.ts deleted file mode 100644 index 0fb678d3be9..00000000000 --- a/packages/migrations/src/migrations/5.37.0/003/ddb/AcoFolderMigration.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { DataMigration, DataMigrationContext } from "@webiny/data-migration"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { executeWithRetry } from "@webiny/utils"; -import { createDdbEntryEntity } from "../entities/createEntryEntity"; -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; -import { CmsEntryAcoFolder, I18NLocale, ListLocalesParams, Tenant } from "../types"; -import { batchWriteAll, BatchWriteItem, ddbQueryAllWithCallback, queryAll } from "~/utils"; -import { ACO_FOLDER_MODEL_ID, ROOT_FOLDER } from "../constants"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -const hasAcoFolderBug = (entry: CmsEntryAcoFolder): boolean => { - const parentId = String(entry.values.parentId || "").toLowerCase(); - return parentId === ROOT_FOLDER; -}; - -export type AcoFolderMigrationCheckpoint = Record; - -export class AcoRecords_5_37_0_003_AcoFolders - implements DataMigration -{ - private readonly entryEntity: ReturnType; - private readonly localeEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor(table: Table) { - this.entryEntity = createDdbEntryEntity(table); - this.localeEntity = createLocaleEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "AcoFolderParentId"; - } - - getDescription() { - return "Fix the ACO Folders having set ROOT as parentId"; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - if (tenants.length === 0) { - logger.info(`No tenants found in the system; skipping migration.`); - return false; - } - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - if (locales.length === 0) { - logger.info(`No locales found in tenant "${tenant.data.id}".`); - continue; - } - - for (const locale of locales) { - const folders = await queryAll({ - entity: this.entryEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#CMS#CME#M#${ACO_FOLDER_MODEL_ID}#A`, - options: { - index: "GSI1", - gt: " " - } - }); - - if (!folders.some(hasAcoFolderBug)) { - continue; - } - - return true; - } - } - return false; - } - - async execute({ logger, ...context }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - - const migrationStatus = context.checkpoint || {}; - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - - const tenantId = tenant.data.id; - - for (const locale of locales) { - const groupId = `${tenantId}:${locale.code}`; - const status = migrationStatus[groupId]; - - const localeCode = locale.code; - - if (isGroupMigrationCompleted(status)) { - continue; - } - - let batch = 0; - - await ddbQueryAllWithCallback( - { - entity: this.entryEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#CMS#CME#M#${ACO_FOLDER_MODEL_ID}#A`, - options: { - index: "GSI1", - gt: status || " " - } - }, - async folders => { - batch++; - logger.info( - `Processing batch #${batch} in group ${groupId} (${folders.length} folder entries).` - ); - - const items = await folders.reduce>( - async (accumulator: Promise, current) => { - const { entryId, values: initialValues } = current; - - if (!hasAcoFolderBug(current)) { - return await accumulator; - } - - const values = { - ...initialValues, - parentId: null - }; - - const latestEntry = { - ...current, - PK: `T#${tenantId}#L#${localeCode}#CMS#CME#CME#${entryId}`, - SK: "L", - GSI1_PK: `T#${tenantId}#L#${localeCode}#CMS#CME#M#${ACO_FOLDER_MODEL_ID}#L`, - GSI1_SK: current.id, - TYPE: "cms.entry.l", - values - }; - - const revisionEntry = { - ...current, - PK: `T#${tenantId}#L#${localeCode}#CMS#CME#CME#${entryId}`, - SK: `REV#0001`, - GSI1_PK: `T#${tenantId}#L#${localeCode}#CMS#CME#M#${ACO_FOLDER_MODEL_ID}#A`, - GSI1_SK: current.id, - TYPE: "cms.entry", - values - }; - - const acc = await accumulator; - - return [ - ...acc, - this.entryEntity.putBatch(latestEntry), - this.entryEntity.putBatch(revisionEntry) - ]; - }, - Promise.resolve([]) - ); - - const execute = () => { - return batchWriteAll({ table: this.entryEntity.table, items }); - }; - - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - // Update checkpoint after every batch - migrationStatus[groupId] = folders[folders.length - 1].id; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - migrationStatus[groupId] = true; - context.createCheckpoint(migrationStatus); - } - } - } - - private async listTenants(): Promise { - return await queryAll({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gte: " " - } - }); - } - - private async listLocales({ tenant }: ListLocalesParams): Promise { - return await queryAll({ - entity: this.localeEntity, - partitionKey: `T#${tenant.data.id}#I18N#L`, - options: { - gte: " " - } - }); - } -} diff --git a/packages/migrations/src/migrations/5.37.0/003/ddb/index.ts b/packages/migrations/src/migrations/5.37.0/003/ddb/index.ts deleted file mode 100644 index e73dddc7cc9..00000000000 --- a/packages/migrations/src/migrations/5.37.0/003/ddb/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { - DataMigration, - DataMigrationContext, - getChildLogger, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { AcoRecords_5_37_0_003_AcoFolders } from "./AcoFolderMigration"; - -export class AcoFolders_5_37_0_003 implements DataMigration { - private readonly migrations: DataMigration[]; - - public constructor(table: Table) { - this.migrations = [new AcoRecords_5_37_0_003_AcoFolders(table)]; - } - - public getId() { - return "5.37.0-003"; - } - - public getDescription() { - return "ACO Folder parentId migration"; - } - - async shouldExecute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - return true; - } - } - return false; - } - - async execute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - await migration.execute(childContext); - } - } - } -} - -makeInjectable(AcoFolders_5_37_0_003, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.37.0/003/entities/createEntryEntity.ts b/packages/migrations/src/migrations/5.37.0/003/entities/createEntryEntity.ts deleted file mode 100644 index 40a105f1907..00000000000 --- a/packages/migrations/src/migrations/5.37.0/003/entities/createEntryEntity.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const ddbAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - }, - TYPE: { - type: "string" - }, - __type: { - type: "string" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - }, - entryId: { - type: "string" - }, - id: { - type: "string" - }, - createdBy: { - type: "map" - }, - ownedBy: { - type: "map" - }, - modifiedBy: { - type: "map" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - modelId: { - type: "string" - }, - locale: { - type: "string" - }, - publishedOn: { - type: "string" - }, - version: { - type: "number" - }, - locked: { - type: "boolean" - }, - status: { - type: "string" - }, - values: { - type: "map" - }, - meta: { - type: "map" - }, - location: { - type: "map" - } -}; - -const ddbEsAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - index: { - type: "string" - }, - data: { - type: "map" - } -}; - -export const createDdbEntryEntity = (table: Table) => { - return createLegacyEntity(table, "CmsEntries", ddbAttributes); -}; - -export const createDdbEsEntryEntity = (table: Table) => { - return createStandardEntity(table, "CmsEntriesElasticsearch", ddbEsAttributes); -}; diff --git a/packages/migrations/src/migrations/5.37.0/003/entities/createLocaleEntity.ts b/packages/migrations/src/migrations/5.37.0/003/entities/createLocaleEntity.ts deleted file mode 100644 index 80fa7c4b29a..00000000000 --- a/packages/migrations/src/migrations/5.37.0/003/entities/createLocaleEntity.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createLocaleEntity = (table: Table) => { - return createLegacyEntity(table, "I18NLocale", { - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - code: { - type: "string" - }, - default: { - type: "boolean" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.37.0/003/entities/createTenantEntity.ts b/packages/migrations/src/migrations/5.37.0/003/entities/createTenantEntity.ts deleted file mode 100644 index 5b7f8a7e7ef..00000000000 --- a/packages/migrations/src/migrations/5.37.0/003/entities/createTenantEntity.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -export const createTenantEntity = (table: Table) => { - return createStandardEntity(table, "TenancyTenant"); -}; diff --git a/packages/migrations/src/migrations/5.37.0/003/types.ts b/packages/migrations/src/migrations/5.37.0/003/types.ts deleted file mode 100644 index ea7bbedff54..00000000000 --- a/packages/migrations/src/migrations/5.37.0/003/types.ts +++ /dev/null @@ -1,53 +0,0 @@ -export interface Tenant { - data: { - id: string; - name: string; - }; -} - -export interface I18NLocale { - code: string; -} - -export interface Identity { - id: string; - displayName: string | null; - type: string; -} - -export interface CmsEntryValues { - [key: string]: any; -} - -export type CmsEntryStatus = "published" | "unpublished" | "draft"; - -export interface CmsEntry { - webinyVersion: string; - tenant: string; - entryId: string; - id: string; - createdBy: Identity; - ownedBy: Identity; - modifiedBy?: Identity | null; - createdOn: string; - savedOn: string; - modelId: string; - locale: string; - publishedOn?: string; - version: number; - locked: boolean; - status: CmsEntryStatus; - values: T; - meta?: { - [key: string]: any; - }; -} - -export interface CmsEntryAcoFolderValues { - parentId?: string | null; -} -export type CmsEntryAcoFolder = CmsEntry; - -export interface ListLocalesParams { - tenant: Tenant; -} diff --git a/packages/migrations/src/migrations/5.37.0/003/utils/getCompressedData.ts b/packages/migrations/src/migrations/5.37.0/003/utils/getCompressedData.ts deleted file mode 100644 index 31f77e45314..00000000000 --- a/packages/migrations/src/migrations/5.37.0/003/utils/getCompressedData.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { compress as gzip } from "@webiny/utils/compression/gzip"; - -const GZIP = "gzip"; -const TO_STORAGE_ENCODING = "base64"; - -export const getCompressedData = async (data: any) => { - const value = await gzip(JSON.stringify(data)); - - return { - compression: GZIP, - value: value.toString(TO_STORAGE_ENCODING) - }; -}; diff --git a/packages/migrations/src/migrations/5.37.0/003/utils/getDecompressedData.ts b/packages/migrations/src/migrations/5.37.0/003/utils/getDecompressedData.ts deleted file mode 100644 index 593bd0e39a1..00000000000 --- a/packages/migrations/src/migrations/5.37.0/003/utils/getDecompressedData.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { decompress as ungzip } from "@webiny/utils/compression/gzip"; - -const GZIP = "gzip"; -const TO_STORAGE_ENCODING = "base64"; -const FROM_STORAGE_ENCODING = "utf8"; - -const convertToBuffer = (value: string | Buffer) => { - if (typeof value === "string") { - return Buffer.from(value, TO_STORAGE_ENCODING); - } - return value; -}; - -export const getDecompressedData = async (data: any): Promise => { - if (data?.compression !== GZIP) { - return null; - } - try { - const buf = await ungzip(convertToBuffer(data.value)); - const value = buf.toString(FROM_STORAGE_ENCODING); - return JSON.parse(value); - } catch (ex) { - return null; - } -}; diff --git a/packages/migrations/src/migrations/5.37.0/004/constants.ts b/packages/migrations/src/migrations/5.37.0/004/constants.ts deleted file mode 100644 index a550a08de76..00000000000 --- a/packages/migrations/src/migrations/5.37.0/004/constants.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const ROOT_FOLDER = "root"; -export const UPPERCASE_ROOT_FOLDER = "ROOT"; -export const FM_FILE_TYPE = "FmFile"; -export const PB_PAGE_TYPE = "PbPage"; -export const ACO_SEARCH_MODEL_ID = "acoSearchRecord"; -export const PB_ACO_SEARCH_MODEL_ID = `acoSearchRecord-${PB_PAGE_TYPE.toLowerCase()}`; -export const FM_ACO_SEARCH_MODEL_ID = `acoSearchRecord-${FM_FILE_TYPE.toLowerCase()}`; diff --git a/packages/migrations/src/migrations/5.37.0/004/ddb-es/PageDataMigration.ts b/packages/migrations/src/migrations/5.37.0/004/ddb-es/PageDataMigration.ts deleted file mode 100644 index 53fe402ac6c..00000000000 --- a/packages/migrations/src/migrations/5.37.0/004/ddb-es/PageDataMigration.ts +++ /dev/null @@ -1,418 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { Client } from "@elastic/elasticsearch"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { DataMigration, DataMigrationContext } from "@webiny/data-migration"; -import { executeWithRetry } from "@webiny/utils"; -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; -import { createDdbEntryEntity, createDdbEsEntryEntity } from "../entities/createEntryEntity"; -import { createDdbEsPageEntity, createDdbPageEntity } from "../entities/createPageEntity"; - -import { - batchWriteAll, - BatchWriteItem, - esCreateIndex, - esFindOne, - esGetIndexExist, - esGetIndexName, - esQueryAllWithCallback, - get, - queryAll -} from "~/utils"; - -import { - AcoSearchRecord, - ExistingAcoSearchRecord, - I18NLocale, - ListLocalesParams, - Page, - Tenant -} from "../types"; - -import { - PB_ACO_SEARCH_MODEL_ID, - PB_PAGE_TYPE, - ROOT_FOLDER, - UPPERCASE_ROOT_FOLDER -} from "../constants"; -import { getCompressedData } from "../utils/getCompressedData"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -export type PageDataMigrationCheckpoint = Record; - -export class AcoRecords_5_37_0_004_PageData implements DataMigration { - private readonly elasticsearchClient: Client; - private readonly ddbEntryEntity: ReturnType; - private readonly ddbEsEntryEntity: ReturnType; - private readonly ddbPageEntity: ReturnType; - private readonly ddbEsPageEntity: ReturnType; - private readonly localeEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.elasticsearchClient = elasticsearchClient; - this.ddbEntryEntity = createDdbEntryEntity(table); - this.ddbEsEntryEntity = createDdbEsEntryEntity(esTable); - this.ddbPageEntity = createDdbPageEntity(table); - this.ddbEsPageEntity = createDdbEsPageEntity(esTable); - this.localeEntity = createLocaleEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "PageData"; - } - - getDescription() { - return "Migrate PbPage Data -> Move ACO Search Records to new model"; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - if (tenants.length === 0) { - logger.info(`No tenants found in the system; skipping migration.`); - return false; - } - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - if (locales.length === 0) { - logger.info(`No locales found in tenant "${tenant.data.id}".`); - continue; - } - - for (const locale of locales) { - // there is an index? NO -> skip - const indexExists = await esGetIndexExist({ - elasticsearchClient: this.elasticsearchClient, - tenant: tenant.data.id, - locale: locale.code, - type: "page-builder", - isHeadlessCmsModel: false - }); - - if (!indexExists) { - logger.info( - `No Elasticsearch index found for pages in tenant "${tenant.data.id}" and locale "${locale.code}"; skipping.` - ); - continue; - } - - // Fetch latest page record from ES - const latestPage = await esFindOne({ - elasticsearchClient: this.elasticsearchClient, - index: esGetIndexName({ - tenant: tenant.data.id, - locale: locale.code, - type: "page-builder" - }), - body: { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenant.data.id } }, - { term: { "locale.keyword": locale.code } }, - { term: { "__type.keyword": "page" } }, - { term: { latest: true } } - ] - } - }, - sort: [ - { - "id.keyword": "asc" - } - ] - } - }); - - if (!latestPage) { - logger.info( - `No pages found in tenant "${tenant.data.id}" and locale "${locale.code}"; skipping.` - ); - continue; - } - - /** - * We need to check if the search records were already migrated to the new ACO Models. - */ - const newAcoIndexExists = await esGetIndexExist({ - elasticsearchClient: this.elasticsearchClient, - tenant: tenant.data.id, - locale: locale.code, - type: PB_ACO_SEARCH_MODEL_ID, - isHeadlessCmsModel: true - }); - - if (newAcoIndexExists) { - logger.info(`New Elasticsearch Pages ACO Records index found; skipping.`); - continue; - } - return true; - } - } - return false; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - - const migrationStatus: PageDataMigrationCheckpoint = context.checkpoint || {}; - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - - const tenantId = tenant.data.id; - - for (const locale of locales) { - const localeCode = locale.code; - const groupId = `${tenantId}:${localeCode}`; - - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - continue; - } - - let batch = 0; - - // Since it's the first time we add an ACO record, we also need to create the index - const pageAcoIndexName = await esCreateIndex({ - elasticsearchClient: this.elasticsearchClient, - tenant: tenantId, - locale: localeCode, - type: PB_ACO_SEARCH_MODEL_ID, - isHeadlessCmsModel: true - }); - - const pageBuilderIndexName = esGetIndexName({ - tenant: tenant.data.id, - locale: locale.code, - type: "page-builder" - }); - - await esQueryAllWithCallback({ - elasticsearchClient: this.elasticsearchClient, - index: pageBuilderIndexName, - body: { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenantId } }, - { term: { "locale.keyword": localeCode } }, - { term: { "__type.keyword": "page" } }, - { term: { latest: true } } - ] - } - }, - size: 500, - sort: [ - { - "id.keyword": "asc" - } - ], - search_after: status - }, - callback: async (pages, cursor) => { - batch++; - logger.info( - `Processing batch #${batch} in group ${groupId} (${pages.length} pages).` - ); - - const ddbItems: BatchWriteItem[] = []; - const ddbEsItems: BatchWriteItem[] = []; - - for (const page of pages) { - /** - * We need to get the search record for the page as it contains necessary data and adjustments. - */ - const searchRecordPartitionKey = `T#${tenantId}#L#${localeCode}#CMS#CME#wby-aco-${page.pid}`; - const existingAcoRecord = await get({ - entity: this.ddbEntryEntity, - keys: { - PK: searchRecordPartitionKey, - SK: "L" - } - }); - if (!existingAcoRecord) { - logger.warn( - `Page ACO Record (PK: ${searchRecordPartitionKey}) not found for page "${page.pid}". Possibly 5.35.0 migration failed; skipping this page.` - ); - continue; - } else if (!existingAcoRecord.values["wby-aco-json@data"]) { - logger.warn( - `Page ACO Record (PK: ${searchRecordPartitionKey}) does not have the wby-aco-json@data field. Possibly 5.35.0 migration failed; skipping this page.` - ); - continue; - } - - const entry = await this.createSearchRecord(existingAcoRecord); - - const latestDdb = { - ...entry, - PK: searchRecordPartitionKey, - SK: "L", - TYPE: "cms.entry.l" - }; - - const revisionDdb = { - ...entry, - PK: searchRecordPartitionKey, - SK: "REV#0001", - TYPE: "cms.entry" - }; - - const rawData = { - ...entry, - latest: true, - TYPE: "cms.entry.l", - __type: "cms.entry.l", - rawValues: { - "object@location": {} - } - }; - - const latestDdbEs = { - PK: searchRecordPartitionKey, - SK: "L", - data: await getCompressedData(rawData), - index: pageAcoIndexName - }; - - ddbItems.push( - this.ddbEntryEntity.putBatch(latestDdb), - this.ddbEntryEntity.putBatch(revisionDdb) - ); - - ddbEsItems.push(this.ddbEsEntryEntity.putBatch(latestDdbEs)); - } - - const executeDdb = () => { - return batchWriteAll({ - table: this.ddbEntryEntity.table, - items: ddbItems - }); - }; - - const executeDdbEs = () => { - return batchWriteAll({ - table: this.ddbEsEntryEntity.table, - items: ddbEsItems - }); - }; - - await executeWithRetry(executeDdb, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - await executeWithRetry(executeDdbEs, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb + es" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - // Update checkpoint after every batch - migrationStatus[groupId] = cursor; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - }); - - migrationStatus[groupId] = true; - await context.createCheckpoint(migrationStatus); - } - } - } - - private async listTenants(): Promise { - return await queryAll({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gte: " " - } - }); - } - - private async listLocales({ tenant }: ListLocalesParams): Promise { - return await queryAll({ - entity: this.localeEntity, - partitionKey: `T#${tenant.data.id}#I18N#L`, - options: { - gte: " " - } - }); - } - - private createSearchRecord(entry: ExistingAcoSearchRecord): AcoSearchRecord { - const { values } = entry; - - const { - ["text@title"]: title, - ["text@content"]: content, - ["wby-aco-json@data"]: data, - ["text@tags"]: tags, - ["object@location"]: location - } = values; - const { id, createdBy, createdOn, locked, path, pid, version, status, savedOn } = data; - let folderId = location?.["text@folderId"] || ROOT_FOLDER; - if (folderId === UPPERCASE_ROOT_FOLDER) { - folderId = ROOT_FOLDER; - } - return { - ...entry, - modelId: PB_ACO_SEARCH_MODEL_ID, - webinyVersion: process.env.WEBINY_VERSION as string, - values: { - "text@title": title, - "text@content": content, - "object@data": { - "text@id": id, - "text@pid": pid, - "text@path": path, - "text@status": status, - "text@title": title, - "object@createdBy": { - "text@id": createdBy.id, - "text@type": createdBy.type, - "text@displayName": createdBy.displayName - }, - "datetime@createdOn": createdOn, - "datetime@savedOn": savedOn, - "boolean@locked": locked, - "number@version": version - }, - "object@location": { - "text@folderId": folderId - }, - "text@tags": tags || [], - "text@type": PB_PAGE_TYPE - } - }; - } -} diff --git a/packages/migrations/src/migrations/5.37.0/004/ddb-es/index.ts b/packages/migrations/src/migrations/5.37.0/004/ddb-es/index.ts deleted file mode 100644 index b2f2068274f..00000000000 --- a/packages/migrations/src/migrations/5.37.0/004/ddb-es/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { Client } from "@elastic/elasticsearch"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - ElasticsearchDynamoTableSymbol, - getChildLogger, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { AcoRecords_5_37_0_004_PageData } from "./PageDataMigration"; - -export * from "../types"; - -export class AcoRecords_5_37_0_004 implements DataMigration { - private readonly migrations: DataMigration[]; - - constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.migrations = [new AcoRecords_5_37_0_004_PageData(table, esTable, elasticsearchClient)]; - } - - getId(): string { - return "5.37.0-004"; - } - - getDescription(): string { - return "Page Builder Pages search record migration"; - } - - async shouldExecute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - return true; - } - } - return false; - } - - async execute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - await migration.execute(childContext); - } - } - } -} - -makeInjectable(AcoRecords_5_37_0_004, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.37.0/004/ddb/PageDataMigration.ts b/packages/migrations/src/migrations/5.37.0/004/ddb/PageDataMigration.ts deleted file mode 100644 index 54c6f189571..00000000000 --- a/packages/migrations/src/migrations/5.37.0/004/ddb/PageDataMigration.ts +++ /dev/null @@ -1,301 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { DataMigration, DataMigrationContext } from "@webiny/data-migration"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { executeWithRetry } from "@webiny/utils"; -import { createDdbEntryEntity } from "../entities/createEntryEntity"; -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createDdbPageEntity } from "../entities/createPageEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; -import { - AcoSearchRecord, - ExistingAcoSearchRecord, - I18NLocale, - ListLocalesParams, - Tenant -} from "../types"; -import { - batchWriteAll, - BatchWriteItem, - ddbQueryAllWithCallback, - queryAll, - queryOne -} from "~/utils"; -import { PB_ACO_SEARCH_MODEL_ID, ROOT_FOLDER, UPPERCASE_ROOT_FOLDER } from "../constants"; -import { PB_PAGE_TYPE } from "~/migrations/5.35.0/006/constants"; -import { Page } from "~/migrations/5.35.0/006/types"; -import { get } from "@webiny/db-dynamodb"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -export type PageDataMigrationCheckpoint = Record; - -export class AcoRecords_5_37_0_004_PageData implements DataMigration { - private readonly entryEntity: ReturnType; - private readonly localeEntity: ReturnType; - private readonly pageEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor(table: Table) { - this.entryEntity = createDdbEntryEntity(table); - this.localeEntity = createLocaleEntity(table); - this.pageEntity = createDdbPageEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "PageData"; - } - - getDescription() { - return "Migrate PbPage Data -> Move ACO Search Records to new model"; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - if (tenants.length === 0) { - logger.info(`No tenants found in the system; skipping migration.`); - return false; - } - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - if (locales.length === 0) { - logger.info(`No locales found in tenant "${tenant.data.id}".`); - continue; - } - - for (const locale of locales) { - /** - * First we check if there are any pages. - */ - const lastPage = await queryOne<{ pid: string }>({ - entity: this.pageEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#PB#L`, - options: { - gt: " ", - reverse: true - } - }); - - if (!lastPage) { - logger.info( - `No pages found in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - /** - * And we need to check if the search records were already migrated to the new ACO Models. - */ - const lastSearchRecord = await queryOne({ - entity: this.entryEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#CMS#CME#M#${PB_ACO_SEARCH_MODEL_ID}#A`, - options: { - index: "GSI1", - eq: `wby-aco-${lastPage.pid}#0001` - } - }); - - if (lastSearchRecord) { - logger.info( - `Pages already migrated to New Search Records in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - return true; - } - } - return false; - } - - async execute({ logger, ...context }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - - const migrationStatus = context.checkpoint || {}; - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - - const tenantId = tenant.data.id; - - for (const locale of locales) { - const groupId = `${tenant.data.id}:${locale.code}`; - const status = migrationStatus[groupId]; - - const localeCode = locale.code; - - if (isGroupMigrationCompleted(status)) { - continue; - } - - let batch = 0; - /** - * We need to load all the pages because search records are mixed. - */ - await ddbQueryAllWithCallback( - { - entity: this.pageEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#PB#L`, - options: { - gt: status || " " - } - }, - async pages => { - batch++; - logger.info( - `Processing batch #${batch} in group ${groupId} (${pages.length} pages).` - ); - - const items = await pages.reduce>( - async (accumulator: Promise, current) => { - /** - * We need to get the search record for the page as it contains necessary data and adjustments. - */ - const existingAcoRecord = await get({ - entity: this.entryEntity, - keys: { - PK: `T#${tenantId}#L#${localeCode}#CMS#CME#CME#wby-aco-${current.pid}`, - SK: "L" - } - }); - if (!existingAcoRecord) { - return await accumulator; - } - - const { tenant, locale, values } = existingAcoRecord; - const { ["wby-aco-json@data"]: data } = values; - const { pid } = data; - - const entry = this.createSearchRecord(existingAcoRecord); - - const latestEntry = { - ...entry, - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#wby-aco-${pid}`, - SK: "L", - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#${PB_ACO_SEARCH_MODEL_ID}#L`, - GSI1_SK: `wby-aco-${pid}#0001`, - TYPE: "cms.entry.l" - }; - - const revisionEntry = { - ...entry, - PK: `T#${tenant}#L#${locale}#CMS#CME#CME#wby-aco-${pid}`, - SK: "REV#0001", - GSI1_PK: `T#${tenant}#L#${locale}#CMS#CME#M#${PB_ACO_SEARCH_MODEL_ID}#A`, - GSI1_SK: `wby-aco-${pid}#0001`, - TYPE: "cms.entry" - }; - - const acc = await accumulator; - - return [ - ...acc, - this.entryEntity.putBatch(latestEntry), - this.entryEntity.putBatch(revisionEntry) - ]; - }, - Promise.resolve([]) - ); - - const execute = () => { - return batchWriteAll({ table: this.entryEntity.table, items }); - }; - - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - // Update checkpoint after every batch. - migrationStatus[groupId] = pages[pages.length - 1]?.id ?? true; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - migrationStatus[groupId] = true; - context.createCheckpoint(migrationStatus); - } - } - } - - private async listTenants(): Promise { - return await queryAll({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gte: " " - } - }); - } - - private async listLocales({ tenant }: ListLocalesParams): Promise { - return await queryAll({ - entity: this.localeEntity, - partitionKey: `T#${tenant.data.id}#I18N#L`, - options: { - gte: " " - } - }); - } - - private createSearchRecord(entry: ExistingAcoSearchRecord): AcoSearchRecord { - const { values } = entry; - - const { - ["text@title"]: title, - ["text@content"]: content, - ["wby-aco-json@data"]: data, - ["text@tags"]: tags, - ["object@location"]: location - } = values; - const { id, createdBy, createdOn, locked, path, pid, version, status, savedOn } = data; - let folderId = location?.["text@folderId"] || ROOT_FOLDER; - if (folderId === UPPERCASE_ROOT_FOLDER) { - folderId = ROOT_FOLDER; - } - return { - ...entry, - modelId: PB_ACO_SEARCH_MODEL_ID, - webinyVersion: process.env.WEBINY_VERSION as string, - values: { - "text@title": title, - "text@content": content, - "object@data": { - "text@id": id, - "text@pid": pid, - "text@path": path, - "text@status": status, - "text@title": title, - "object@createdBy": { - "text@id": createdBy.id, - "text@type": createdBy.type, - "text@displayName": createdBy.displayName - }, - "datetime@createdOn": createdOn, - "datetime@savedOn": savedOn, - "boolean@locked": locked, - "number@version": version - }, - "object@location": { - "text@folderId": folderId - }, - "text@tags": tags || [], - "text@type": PB_PAGE_TYPE - } - }; - } -} diff --git a/packages/migrations/src/migrations/5.37.0/004/ddb/index.ts b/packages/migrations/src/migrations/5.37.0/004/ddb/index.ts deleted file mode 100644 index cf3881a2abe..00000000000 --- a/packages/migrations/src/migrations/5.37.0/004/ddb/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { - DataMigration, - DataMigrationContext, - getChildLogger, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { AcoRecords_5_37_0_004_PageData } from "./PageDataMigration"; - -export class AcoRecords_5_37_0_004 implements DataMigration { - private readonly migrations: DataMigration[]; - - public constructor(table: Table) { - this.migrations = [new AcoRecords_5_37_0_004_PageData(table)]; - } - - public getId() { - return "5.37.0-004"; - } - - public getDescription() { - return "Page Builder Pages search record migration"; - } - - async shouldExecute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - return true; - } - } - return false; - } - - async execute(context: DataMigrationContext): Promise { - for (const migration of this.migrations) { - const childLogger = getChildLogger(context.logger, migration); - const childContext = { ...context, logger: childLogger }; - if (await migration.shouldExecute(childContext)) { - await migration.execute(childContext); - } - } - } -} - -makeInjectable(AcoRecords_5_37_0_004, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.37.0/004/entities/createEntryEntity.ts b/packages/migrations/src/migrations/5.37.0/004/entities/createEntryEntity.ts deleted file mode 100644 index 40a105f1907..00000000000 --- a/packages/migrations/src/migrations/5.37.0/004/entities/createEntryEntity.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const ddbAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - }, - TYPE: { - type: "string" - }, - __type: { - type: "string" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - }, - entryId: { - type: "string" - }, - id: { - type: "string" - }, - createdBy: { - type: "map" - }, - ownedBy: { - type: "map" - }, - modifiedBy: { - type: "map" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - modelId: { - type: "string" - }, - locale: { - type: "string" - }, - publishedOn: { - type: "string" - }, - version: { - type: "number" - }, - locked: { - type: "boolean" - }, - status: { - type: "string" - }, - values: { - type: "map" - }, - meta: { - type: "map" - }, - location: { - type: "map" - } -}; - -const ddbEsAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - index: { - type: "string" - }, - data: { - type: "map" - } -}; - -export const createDdbEntryEntity = (table: Table) => { - return createLegacyEntity(table, "CmsEntries", ddbAttributes); -}; - -export const createDdbEsEntryEntity = (table: Table) => { - return createStandardEntity(table, "CmsEntriesElasticsearch", ddbEsAttributes); -}; diff --git a/packages/migrations/src/migrations/5.37.0/004/entities/createLocaleEntity.ts b/packages/migrations/src/migrations/5.37.0/004/entities/createLocaleEntity.ts deleted file mode 100644 index 80fa7c4b29a..00000000000 --- a/packages/migrations/src/migrations/5.37.0/004/entities/createLocaleEntity.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createLocaleEntity = (table: Table) => { - return createLegacyEntity(table, "I18NLocale", { - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - code: { - type: "string" - }, - default: { - type: "boolean" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.37.0/004/entities/createPageEntity.ts b/packages/migrations/src/migrations/5.37.0/004/entities/createPageEntity.ts deleted file mode 100644 index 3cbcffe2a40..00000000000 --- a/packages/migrations/src/migrations/5.37.0/004/entities/createPageEntity.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const ddbAttributes: Parameters[2] = { - PK: { - partitionKey: true - }, - SK: { - sortKey: true - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - }, - TYPE: { - type: "string" - }, - id: { - type: "string" - }, - pid: { - type: "string" - }, - tenant: { - type: "string" - }, - locale: { - type: "string" - }, - title: { - type: "string" - }, - titleLC: { - type: "string" - }, - editor: { - type: "string" - }, - createdFrom: { - type: "string" - }, - path: { - type: "string" - }, - category: { - type: "string" - }, - content: { - type: "map" - }, - publishedOn: { - type: "string" - }, - version: { - type: "number" - }, - settings: { - type: "map" - }, - locked: { - type: "boolean" - }, - status: { - type: "string" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - ownedBy: { - type: "map" - }, - webinyVersion: { - type: "string" - } -}; - -const ddbEsAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - index: { - type: "string" - }, - data: { - type: "map" - } -}; - -export const createDdbPageEntity = (table: Table) => { - return createLegacyEntity(table, "PbPages", ddbAttributes); -}; - -export const createDdbEsPageEntity = (table: Table) => { - return createStandardEntity(table, "PbPagesEs", ddbEsAttributes); -}; diff --git a/packages/migrations/src/migrations/5.37.0/004/entities/createTenantEntity.ts b/packages/migrations/src/migrations/5.37.0/004/entities/createTenantEntity.ts deleted file mode 100644 index 5b7f8a7e7ef..00000000000 --- a/packages/migrations/src/migrations/5.37.0/004/entities/createTenantEntity.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -export const createTenantEntity = (table: Table) => { - return createStandardEntity(table, "TenancyTenant"); -}; diff --git a/packages/migrations/src/migrations/5.37.0/004/types.ts b/packages/migrations/src/migrations/5.37.0/004/types.ts deleted file mode 100644 index 319daa9ee70..00000000000 --- a/packages/migrations/src/migrations/5.37.0/004/types.ts +++ /dev/null @@ -1,155 +0,0 @@ -export interface Tenant { - data: { - id: string; - name: string; - }; -} - -export interface I18NLocale { - code: string; -} - -export interface Identity { - id: string; - displayName: string | null; - type: string; -} - -export interface CmsEntryValues { - [key: string]: any; -} - -export type CmsEntryStatus = "published" | "unpublished" | "draft"; - -export interface CmsEntry { - webinyVersion: string; - tenant: string; - entryId: string; - id: string; - createdBy: Identity; - ownedBy: Identity; - modifiedBy?: Identity | null; - createdOn: string; - savedOn: string; - modelId: string; - locale: string; - publishedOn?: string; - version: number; - locked: boolean; - status: CmsEntryStatus; - values: T; - meta?: { - [key: string]: any; - }; -} - -export interface PageSettings { - social?: { - title: string; - description: string; - image: File; - meta: Array<{ property: string; content: string }>; - }; - seo?: { - title: string; - description: string; - meta: Array<{ name: string; content: string }>; - }; - general?: { - tags?: string[]; - snippet?: string; - layout?: string; - image?: File; - }; - [key: string]: any; -} - -export type PageStatus = "published" | "unpublished" | "draft"; - -export interface Page { - id: string; - pid: string; - locale: string; - tenant: string; - title: string; - editor: string; - createdFrom: string | null; - path: string; - category: string; - content: Record | null; - publishedOn: string | null; - version: number; - settings: PageSettings; - locked: boolean; - status: string; - createdOn: string; - savedOn: string; - createdBy: Identity; - ownedBy: Identity; - webinyVersion: string; -} - -interface BaseAcoSearchRecord { - id: string; - locale: string; - tenant: string; - entryId: string; - modelId: string; - webinyVersion: string; -} - -export interface AcoSearchRecord extends BaseAcoSearchRecord { - values: AcoSearchRecordValues; -} - -interface AcoSearchRecordValues { - ["text@title"]: string; - ["text@content"]: string; - ["text@type"]: string; - ["text@tags"]?: string[]; - ["object@data"]: { - ["text@id"]: string; - ["text@pid"]: string; - ["text@title"]: string; - ["text@status"]: string; - ["object@createdBy"]: { - ["text@id"]: string; - ["text@displayName"]: string | null; - ["text@type"]: string; - }; - ["datetime@createdOn"]: string; - ["datetime@savedOn"]: string; - ["boolean@locked"]: boolean; - ["text@path"]: string; - ["number@version"]: number; - }; - ["object@location"]?: { - ["text@folderId"]?: string; - }; -} - -interface ExistingAcoSearchRecordValues extends Omit { - ["wby-aco-json@data"]: { - id: string; - pid: string; - title: string; - status: string; - createdBy: Identity; - createdOn: string; - savedOn: string; - locked: boolean; - path: string; - version: number; - }; -} -/** - * Existing ACO Search Record has values data in a custom json field. - * We removed that field in 5.37.0, so we need to remap the data. - */ -export interface ExistingAcoSearchRecord extends BaseAcoSearchRecord { - values: ExistingAcoSearchRecordValues; -} - -export interface ListLocalesParams { - tenant: Tenant; -} diff --git a/packages/migrations/src/migrations/5.37.0/004/utils/getCompressedData.ts b/packages/migrations/src/migrations/5.37.0/004/utils/getCompressedData.ts deleted file mode 100644 index 31f77e45314..00000000000 --- a/packages/migrations/src/migrations/5.37.0/004/utils/getCompressedData.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { compress as gzip } from "@webiny/utils/compression/gzip"; - -const GZIP = "gzip"; -const TO_STORAGE_ENCODING = "base64"; - -export const getCompressedData = async (data: any) => { - const value = await gzip(JSON.stringify(data)); - - return { - compression: GZIP, - value: value.toString(TO_STORAGE_ENCODING) - }; -}; diff --git a/packages/migrations/src/migrations/5.37.0/005/constants.ts b/packages/migrations/src/migrations/5.37.0/005/constants.ts deleted file mode 100644 index a5e496fff15..00000000000 --- a/packages/migrations/src/migrations/5.37.0/005/constants.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const ROOT_FOLDER = "root"; -export const FM_FILE_TYPE = "FmFile"; -export const ACO_SEARCH_MODEL_ID = "acoSearchRecord"; diff --git a/packages/migrations/src/migrations/5.37.0/005/ddb-es/index.ts b/packages/migrations/src/migrations/5.37.0/005/ddb-es/index.ts deleted file mode 100644 index e9de956898e..00000000000 --- a/packages/migrations/src/migrations/5.37.0/005/ddb-es/index.ts +++ /dev/null @@ -1,461 +0,0 @@ -import chunk from "lodash/chunk"; -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { Client } from "@elastic/elasticsearch"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - ElasticsearchDynamoTableSymbol, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { executeWithRetry } from "@webiny/utils"; -import { createDdbEntryEntity } from "../entities/createEntryEntity"; -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; -import { - batchWriteAll, - esFindOne, - esGetIndexExist, - esGetIndexName, - esQueryAllWithCallback, - queryAll, - queryOne -} from "~/utils"; -import { - I18NLocale, - ListLocalesParams, - Tenant, - CmsEntry, - FileSearchRecordValues, - FileEntryValues -} from "../types"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { createDdbEsEntryEntity } from "~/migrations/5.36.0/001/entities/createEntryEntity"; -import { File } from "~/migrations/5.36.0/001/types"; -import { getCompressedData } from "~/migrations/5.36.0/001/utils/getCompressedData"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -type FileDataMigrationCheckpoint = Record; - -export class FileManager_5_37_0_005 implements DataMigration { - private readonly elasticsearchClient: Client; - private readonly ddbEntryEntity: ReturnType; - private readonly ddbEsEntryEntity: ReturnType; - private readonly localeEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.elasticsearchClient = elasticsearchClient; - this.ddbEntryEntity = createDdbEntryEntity(table); - this.ddbEsEntryEntity = createDdbEsEntryEntity(esTable); - this.localeEntity = createLocaleEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "5.37.0-005"; - } - - getDescription() { - return "Migrate File Manager data to Headless CMS records."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - if (tenants.length === 0) { - logger.info(`No tenants found in the system; skipping migration.`); - return false; - } - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - if (locales.length === 0) { - logger.info(`No locales found in tenant "${tenant.data.id}".`); - continue; - } - - for (const locale of locales) { - const indexExists = await esGetIndexExist({ - elasticsearchClient: this.elasticsearchClient, - tenant: tenant.data.id, - locale: locale.code, - type: "file-manager", - isHeadlessCmsModel: false - }); - - if (!indexExists) { - logger.info( - `No elasticsearch index found for File Manager in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - - // Fetch the latest file record from ES - const fmIndexName = esGetIndexName({ - tenant: tenant.data.id, - locale: locale.code, - type: "file-manager" - }); - - const latestFile = await esFindOne({ - elasticsearchClient: this.elasticsearchClient, - index: fmIndexName, - body: { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenant.data.id } }, - { term: { "locale.keyword": locale.code } } - ] - } - }, - sort: [ - { - "id.keyword": { order: "desc", unmapped_type: "keyword" } - } - ] - } - }); - - if (!latestFile) { - logger.info( - `No files found in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - - const fileCmsRecord = await queryOne<{ id: string }>({ - entity: this.ddbEntryEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#CMS#CME#${latestFile.id}`, - options: { - eq: "L" - } - }); - - if (fileCmsRecord) { - logger.info( - `Files already migrated to CMS content entries in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - - return true; - } - } - return false; - } - - async execute({ logger, ...context }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - - const migrationStatus = context.checkpoint || {}; - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - - for (const locale of locales) { - const groupId = `${tenant.data.id}:${locale.code}`; - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - continue; - } - - const tenantId = tenant.data.id; - const localeCode = locale.code; - - const searchRecords = await this.listSearchRecords(tenantId, localeCode); - - if (searchRecords.length === 0) { - migrationStatus[groupId] = true; - continue; - } - - let batch = 0; - await esQueryAllWithCallback({ - elasticsearchClient: this.elasticsearchClient, - index: esGetIndexName({ - tenant: tenant.data.id, - locale: locale.code, - type: "file-manager" - }), - body: { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenant.data.id } }, - { term: { "locale.keyword": locale.code } } - ] - } - }, - size: 10000, - sort: [ - { - "id.keyword": { order: "asc", unmapped_type: "keyword" } - } - ], - search_after: status - }, - callback: async (files, cursor) => { - batch++; - - logger.info( - `Processing batch #${batch} in group ${groupId} (${files.length} files).` - ); - - const ddbItems: ReturnType< - ReturnType["putBatch"] - >[] = []; - - const ddbEsItems: ReturnType< - ReturnType["putBatch"] - >[] = []; - - for (const file of files) { - const entry = this.createContentEntryCommonFields(file); - this.assignLocationFromSearchRecord(entry, searchRecords); - - const fileId = file.id; - - const latestEntry = { - PK: `T#${tenantId}#L#${localeCode}#CMS#CME#${fileId}`, - SK: "L", - TYPE: "cms.entry.l", - ...entry - }; - - const revisionEntry = { - PK: `T#${tenantId}#L#${localeCode}#CMS#CME#CME#${fileId}`, - SK: "REV#0001", - TYPE: "cms.entry", - ...entry - }; - - const latestDdbEs = { - PK: `T#${tenantId}#L#${localeCode}#CMS#CME#${fileId}`, - SK: "L", - data: await getCompressedData({ - latest: true, - __type: "cms.entry.l", - ...latestEntry, - rawValues: { - "object@location": {}, - "object@meta": {} - } - }), - index: esGetIndexName({ - tenant: tenantId, - locale: localeCode, - type: "fmfile", - isHeadlessCmsModel: true - }) - }; - - ddbItems.push(this.ddbEntryEntity.putBatch(latestEntry)); - ddbItems.push(this.ddbEntryEntity.putBatch(revisionEntry)); - ddbEsItems.push(this.ddbEsEntryEntity.putBatch(latestDdbEs)); - } - - const executeDdb = () => { - return Promise.all( - chunk(ddbItems, 200).map(ddbItemsChunk => { - return batchWriteAll({ - table: this.ddbEntryEntity.table, - items: ddbItemsChunk - }); - }) - ); - }; - - const executeDdbEs = () => { - return Promise.all( - chunk(ddbEsItems, 200).map(ddbEsItemsChunk => { - return batchWriteAll({ - table: this.ddbEsEntryEntity.table, - items: ddbEsItemsChunk - }); - }) - ); - }; - - await executeWithRetry(executeDdb, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - await executeWithRetry(executeDdbEs, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb + es" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - // Update checkpoint after every batch - migrationStatus[groupId] = cursor; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - }); - - migrationStatus[groupId] = true; - context.createCheckpoint(migrationStatus); - } - } - } - - private async listTenants(): Promise { - return await queryAll({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gte: " " - } - }); - } - - private async listSearchRecords(tenant: string, locale: string) { - const esParams = { - tenant, - locale, - type: "acosearchrecord", - isHeadlessCmsModel: true - }; - - const acoIndex = esGetIndexName(esParams); - - const indexExists = await esGetIndexExist({ - elasticsearchClient: this.elasticsearchClient, - ...esParams - }); - - if (!indexExists) { - return []; - } - - const searchRecords: CmsEntry[] = []; - - await esQueryAllWithCallback>({ - elasticsearchClient: this.elasticsearchClient, - index: acoIndex, - body: { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenant } }, - { term: { "locale.keyword": locale } } - ] - } - }, - size: 10000, - sort: [ - { - "id.keyword": { order: "asc", unmapped_type: "keyword" } - } - ] - }, - callback: async records => { - for (const record of records) { - searchRecords.push(record); - } - } - }); - - return searchRecords; - } - - private async listLocales({ tenant }: ListLocalesParams): Promise { - return await queryAll({ - entity: this.localeEntity, - partitionKey: `T#${tenant.data.id}#I18N#L`, - options: { - gte: " " - } - }); - } - - private assignLocationFromSearchRecord( - fileEntry: CmsEntry, - search: CmsEntry[] - ) { - const searchRecord = search.find( - rec => rec.values["wby-aco-json@data"].id === fileEntry.entryId - ); - if (!searchRecord) { - return; - } - - const folderId = searchRecord.values["object@location"]["text@folderId"].toLowerCase(); - fileEntry.location = { - folderId - }; - fileEntry.values["object@location"] = { - "text@folderId": folderId - }; - } - - private createContentEntryCommonFields(file: File): CmsEntry { - return { - createdBy: file.createdBy, - createdOn: file.createdOn, - entryId: file.id, - id: `${file.id}#0001`, - locked: false, - locale: file.locale, - location: { - folderId: "root" - }, - modelId: "fmFile", - modifiedBy: file.createdBy, - ownedBy: file.createdBy, - savedOn: file.createdOn, - status: "draft", - tenant: file.tenant, - version: 1, - webinyVersion: String(process.env.WEBINY_VERSION), - values: { - "number@size": file.size, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": file.meta?.private || false, - "number@width": file.meta?.width, - "number@height": file.meta?.height - }, - "text@aliases": file.aliases, - "text@key": file.key, - "text@name": file.name, - "text@tags": file.tags.filter(tag => !tag.startsWith("mime:")), - "text@type": file.type - } - }; - } -} - -makeInjectable(FileManager_5_37_0_005, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.37.0/005/ddb/index.ts b/packages/migrations/src/migrations/5.37.0/005/ddb/index.ts deleted file mode 100644 index 41c6f5d6ccf..00000000000 --- a/packages/migrations/src/migrations/5.37.0/005/ddb/index.ts +++ /dev/null @@ -1,300 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { executeWithRetry } from "@webiny/utils"; -import { createDdbEntryEntity } from "../entities/createEntryEntity"; -import { createLocaleEntity } from "../entities/createLocaleEntity"; -import { createDdbFileEntity } from "../entities/createFileEntity"; -import { createTenantEntity } from "../entities/createTenantEntity"; -import { batchWriteAll, ddbQueryAllWithCallback, queryAll, queryOne } from "~/utils"; -import { - I18NLocale, - ListLocalesParams, - Tenant, - CmsEntry, - FileSearchRecordValues, - FileEntryValues, - FileItem -} from "../types"; -import { inject, makeInjectable } from "@webiny/ioc"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -type FileDataMigrationCheckpoint = Record; - -export class FileManager_5_37_0_005 implements DataMigration { - private readonly entryEntity: ReturnType; - private readonly localeEntity: ReturnType; - private readonly fileEntity: ReturnType; - private readonly tenantEntity: ReturnType; - - constructor(table: Table) { - this.entryEntity = createDdbEntryEntity(table); - this.localeEntity = createLocaleEntity(table); - this.fileEntity = createDdbFileEntity(table); - this.tenantEntity = createTenantEntity(table); - } - - getId() { - return "5.37.0-005"; - } - - getDescription() { - return "Migrate File Manager data to Headless CMS records."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - if (tenants.length === 0) { - logger.info(`No tenants found in the system; skipping migration.`); - return false; - } - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - if (locales.length === 0) { - logger.info(`No locales found in tenant "${tenant.data.id}".`); - continue; - } - - for (const locale of locales) { - const lastLegacyFile = await queryOne({ - entity: this.fileEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#FM#FILES`, - options: { - index: "GSI1", - gte: " ", - reverse: true - } - }); - - if (!lastLegacyFile) { - logger.info( - `No file found in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - - const fileCmsRecord = await queryOne<{ id: string }>({ - entity: this.entryEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#CMS#CME#CME#${lastLegacyFile.data.id}`, - options: { - eq: "L" - } - }); - - if (fileCmsRecord) { - logger.info( - `Files already migrated to CMS content entries in tenant "${tenant.data.id}" and locale "${locale.code}".` - ); - continue; - } - return true; - } - } - return false; - } - - async execute({ logger, ...context }: DataMigrationContext): Promise { - const tenants = await this.listTenants(); - - const migrationStatus = context.checkpoint || {}; - - for (const tenant of tenants) { - const locales = await this.listLocales({ tenant }); - - for (const locale of locales) { - const groupId = `${tenant.data.id}:${locale.code}`; - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - continue; - } - - const tenantId = tenant.data.id; - const localeCode = locale.code; - - const searchRecords = await this.listSearchRecords(tenantId, localeCode); - - let batch = 0; - await ddbQueryAllWithCallback( - { - entity: this.fileEntity, - partitionKey: `T#${tenant.data.id}#L#${locale.code}#FM#FILES`, - options: { - index: "GSI1", - gt: status || " " - } - }, - async files => { - batch++; - - logger.info( - `Processing batch #${batch} in group ${groupId} (${files.length} files).` - ); - - const items: ReturnType< - ReturnType["putBatch"] - >[] = []; - - for (const file of files) { - const entry = this.createContentEntryCommonFields(file); - this.assignLocationFromSearchRecord(entry, searchRecords); - - const fileId = file.data.id; - - const latestEntry = { - PK: `T#${tenantId}#L#${localeCode}#CMS#CME#CME#${fileId}`, - SK: "L", - GSI1_PK: `T#${tenantId}#L#${localeCode}#CMS#CME#M#fmFile#L`, - GSI1_SK: `${fileId}#0001`, - TYPE: "cms.entry.l", - ...entry - }; - - const revisionEntry = { - PK: `T#${tenantId}#L#${localeCode}#CMS#CME#CME#${fileId}`, - SK: "REV#0001", - GSI1_PK: `T#${tenantId}#L#${localeCode}#CMS#CME#M#fmFile#A`, - GSI1_SK: `${fileId}#0001`, - TYPE: "cms.entry", - ...entry - }; - - items.push(this.entryEntity.putBatch(latestEntry)); - items.push(this.entryEntity.putBatch(revisionEntry)); - } - - const execute = () => { - return batchWriteAll({ table: this.entryEntity.table, items }); - }; - - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - // Update checkpoint after every batch - migrationStatus[groupId] = files[files.length - 1]?.data.id; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - migrationStatus[groupId] = true; - context.createCheckpoint(migrationStatus); - } - } - } - - private async listTenants(): Promise { - return await queryAll({ - entity: this.tenantEntity, - partitionKey: "TENANTS", - options: { - index: "GSI1", - gte: " " - } - }); - } - - private async listSearchRecords(tenant: string, locale: string) { - const records = await queryAll>({ - entity: this.entryEntity, - partitionKey: `T#${tenant}#L#${locale}#CMS#CME#M#acoSearchRecord#L`, - options: { - index: "GSI1", - gt: " " - } - }); - - return records.filter(record => record.values["text@type"] === "FmFile"); - } - - private async listLocales({ tenant }: ListLocalesParams): Promise { - return await queryAll({ - entity: this.localeEntity, - partitionKey: `T#${tenant.data.id}#I18N#L`, - options: { - gte: " " - } - }); - } - - private assignLocationFromSearchRecord( - fileEntry: CmsEntry, - search: CmsEntry[] - ) { - const searchRecord = search.find( - rec => rec.values["wby-aco-json@data"].id === fileEntry.entryId - ); - if (!searchRecord) { - return; - } - - const folderId = searchRecord.values["object@location"]["text@folderId"].toLowerCase(); - fileEntry.location = { - folderId - }; - fileEntry.values["object@location"] = { - "text@folderId": folderId - }; - } - - private createContentEntryCommonFields(file: FileItem): CmsEntry { - return { - createdBy: file.data.createdBy, - createdOn: file.data.createdOn, - entryId: file.data.id, - id: `${file.data.id}#0001`, - locked: false, - locale: file.data.locale, - location: { - folderId: "root" - }, - modelId: "fmFile", - modifiedBy: file.data.createdBy, - ownedBy: file.data.createdBy, - savedOn: file.data.createdOn, - status: "draft", - tenant: file.data.tenant, - version: 1, - webinyVersion: String(process.env.WEBINY_VERSION), - values: { - "number@size": file.data.size, - "object@location": { - "text@folderId": "root" - }, - "object@meta": { - "boolean@private": file.data.meta?.private || false, - "number@width": file.data.meta?.width, - "number@height": file.data.meta?.height - }, - "text@aliases": file.data.aliases, - "text@key": file.data.key, - "text@name": file.data.name, - "text@tags": file.data.tags.filter(tag => !tag.startsWith("mime:")), - "text@type": file.data.type - } - }; - } -} - -makeInjectable(FileManager_5_37_0_005, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.37.0/005/entities/createEntryEntity.ts b/packages/migrations/src/migrations/5.37.0/005/entities/createEntryEntity.ts deleted file mode 100644 index 965c96d29e9..00000000000 --- a/packages/migrations/src/migrations/5.37.0/005/entities/createEntryEntity.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const ddbAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - }, - TYPE: { - type: "string" - }, - __type: { - type: "string" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - }, - entryId: { - type: "string" - }, - id: { - type: "string" - }, - createdBy: { - type: "map" - }, - ownedBy: { - type: "map" - }, - location: { - type: "map" - }, - modifiedBy: { - type: "map" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - modelId: { - type: "string" - }, - locale: { - type: "string" - }, - publishedOn: { - type: "string" - }, - version: { - type: "number" - }, - locked: { - type: "boolean" - }, - status: { - type: "string" - }, - values: { - type: "map" - }, - meta: { - type: "map" - } -}; - -const ddbEsAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - index: { - type: "string" - }, - data: { - type: "map" - } -}; - -export const createDdbEntryEntity = (table: Table) => { - return createLegacyEntity(table, "CmsEntries", ddbAttributes); -}; - -export const createDdbEsEntryEntity = (table: Table) => { - return createStandardEntity(table, "CmsEntriesElasticsearch", ddbEsAttributes); -}; diff --git a/packages/migrations/src/migrations/5.37.0/005/entities/createFileEntity.ts b/packages/migrations/src/migrations/5.37.0/005/entities/createFileEntity.ts deleted file mode 100644 index d4c5afcd2d8..00000000000 --- a/packages/migrations/src/migrations/5.37.0/005/entities/createFileEntity.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -const ddbEsAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - index: { - type: "string" - }, - data: { - type: "map" - } -}; - -export const createDdbFileEntity = (table: Table) => { - return createStandardEntity(table, "FM.File"); -}; - -export const createDdbEsFileEntity = (table: Table) => { - return createStandardEntity(table, "FilesElasticsearch", ddbEsAttributes); -}; diff --git a/packages/migrations/src/migrations/5.37.0/005/entities/createLocaleEntity.ts b/packages/migrations/src/migrations/5.37.0/005/entities/createLocaleEntity.ts deleted file mode 100644 index 80fa7c4b29a..00000000000 --- a/packages/migrations/src/migrations/5.37.0/005/entities/createLocaleEntity.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createLocaleEntity = (table: Table) => { - return createLegacyEntity(table, "I18NLocale", { - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - code: { - type: "string" - }, - default: { - type: "boolean" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.37.0/005/entities/createTenantEntity.ts b/packages/migrations/src/migrations/5.37.0/005/entities/createTenantEntity.ts deleted file mode 100644 index 5b7f8a7e7ef..00000000000 --- a/packages/migrations/src/migrations/5.37.0/005/entities/createTenantEntity.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -export const createTenantEntity = (table: Table) => { - return createStandardEntity(table, "TenancyTenant"); -}; diff --git a/packages/migrations/src/migrations/5.37.0/005/entities/createTenantLinkEntity.ts b/packages/migrations/src/migrations/5.37.0/005/entities/createTenantLinkEntity.ts deleted file mode 100644 index 0340f2c9514..00000000000 --- a/packages/migrations/src/migrations/5.37.0/005/entities/createTenantLinkEntity.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -export const createTenantLinkEntity = (table: Table) => { - return createStandardEntity(table, "SecurityIdentity2Tenant", { type: { type: "string" } }); -}; diff --git a/packages/migrations/src/migrations/5.37.0/005/types.ts b/packages/migrations/src/migrations/5.37.0/005/types.ts deleted file mode 100644 index df01bbcd929..00000000000 --- a/packages/migrations/src/migrations/5.37.0/005/types.ts +++ /dev/null @@ -1,119 +0,0 @@ -export interface Tenant { - data: { - id: string; - name: string; - }; -} - -export interface I18NLocale { - code: string; -} - -export interface Identity { - id: string; - displayName: string | null; - type: string; -} - -export interface CmsEntryValues { - [key: string]: any; -} - -export type CmsEntryStatus = "published" | "unpublished" | "draft"; - -export interface CmsEntry { - webinyVersion: string; - tenant: string; - entryId: string; - id: string; - createdBy: Identity; - ownedBy: Identity; - modifiedBy?: Identity | null; - createdOn: string; - savedOn: string; - modelId: string; - locale: string; - location: { - folderId: string; - }; - publishedOn?: string; - version: number; - locked: boolean; - status: CmsEntryStatus; - values: T; - meta?: { - [key: string]: any; - }; -} - -export interface FileSearchRecordValues { - "object@location": { - "text@folderId": string; - }; - "text@type": "FmFile"; - "wby-aco-json@data": { - aliases: string[]; - size: number; - createdBy: { - type: string; - displayName: string; - id: string; - }; - meta: { - private: boolean; - width?: number; - height?: number; - }; - name: string; - id: string; - type: string; - createdOn: string; - key: string; - }; - "text@tags": string[]; -} - -export interface FileEntryValues { - "object@meta": { - "boolean@private": boolean; - "number@width"?: number; - "number@height"?: number; - }; - "object@location": { - "text@folderId": string; - }; - "text@key": string; - "text@aliases": string[]; - "number@size": number; - "text@name": string; - "text@type": string; - "text@tags": string[]; -} - -export interface ListLocalesParams { - tenant: Tenant; -} - -export interface File { - id: string; - key: string; - size: number; - type: string; - name: string; - meta: Record; - tags: string[]; - aliases: string[]; - createdOn: string; - createdBy: Identity; - tenant: string; - locale: string; - webinyVersion: string; - /** - * User can add new fields to the File object so we must allow it in the types. - */ - [key: string]: any; -} - -export interface FileItem { - data: File; -} diff --git a/packages/migrations/src/migrations/5.38.0/001/ddb-es/index.ts b/packages/migrations/src/migrations/5.38.0/001/ddb-es/index.ts deleted file mode 100644 index 4c3c5fe7283..00000000000 --- a/packages/migrations/src/migrations/5.38.0/001/ddb-es/index.ts +++ /dev/null @@ -1,239 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { createFormEntity } from "../entities/createFormEntity"; -import { - batchReadAll, - BatchReadItem, - batchWriteAll, - BatchWriteItem, - esGetIndexExist, - esGetIndexName, - esQueryAll, - forEachTenantLocale, - queryAll -} from "~/utils"; -import { FbForm } from "../types"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { Client } from "@elastic/elasticsearch"; -import { executeWithRetry } from "@webiny/utils"; - -export class MultiStepForms_5_38_0_001 implements DataMigration { - private readonly table: Table; - private readonly formEntity: ReturnType; - private readonly elasticsearchClient: Client; - - constructor(table: Table, elasticsearchClient: Client) { - this.table = table; - this.formEntity = createFormEntity(table); - this.elasticsearchClient = elasticsearchClient; - } - - getId() { - return "5.38.0-001"; - } - - getDescription() { - return "Convert forms to multi-step forms."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - let shouldExecute = false; - - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - const indexNameParams = { - tenant: tenantId, - locale: localeCode, - type: "form-builder", - isHeadlessCmsModel: false - }; - - const indexExists = await esGetIndexExist({ - elasticsearchClient: this.elasticsearchClient, - ...indexNameParams - }); - - if (!indexExists) { - logger.info( - `No Elasticsearch index found for folders in tenant "${tenantId}" and locale "${localeCode}"; skipping.` - ); - - // Continue with next locale. - return true; - } - - const esRecords = await esQueryAll({ - elasticsearchClient: this.elasticsearchClient, - index: esGetIndexName(indexNameParams), - body: { - query: { - bool: { - filter: [{ term: { "__type.keyword": "fb.form" } }] - } - }, - size: 10000 - } - }); - - if (!esRecords.length) { - // Continue with next locale. - return true; - } - - const formIds = esRecords.map(item => item.formId).filter(Boolean); - const uniqueFormIds = [...new Set(formIds)]; - - const batchGetItems: BatchReadItem[] = []; - for (const formId of uniqueFormIds) { - batchGetItems.push( - this.formEntity.getBatch({ - PK: `T#${tenantId}#L#${localeCode}#FB#F#${formId}`, - SK: "L" - }) - ); - } - - // Get DynamoDB records for all the forms retrieved from Elasticsearch. - const ddbRecords = await batchReadAll({ - table: this.formEntity.table, - items: batchGetItems - }); - - for (const ddbRecord of ddbRecords) { - if (!ddbRecord.steps) { - shouldExecute = true; - return false; - } - } - - return true; - } - }); - - return shouldExecute; - } - - async execute({ logger }: DataMigrationContext): Promise { - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - const indexNameParams = { - tenant: tenantId, - locale: localeCode, - type: "form-builder", - isHeadlessCmsModel: false - }; - - const indexExists = await esGetIndexExist({ - elasticsearchClient: this.elasticsearchClient, - ...indexNameParams - }); - - if (!indexExists) { - // Continue with next locale. - return true; - } - - const esRecords = await esQueryAll({ - elasticsearchClient: this.elasticsearchClient, - index: esGetIndexName(indexNameParams), - body: { - query: { - bool: { - filter: [{ term: { "__type.keyword": "fb.form" } }] - } - }, - size: 10000 - } - }); - - if (!esRecords.length) { - // Continue with next locale. - return true; - } - - const formIds = esRecords.map(item => item.formId).filter(Boolean); - const uniqueFormIds = [...new Set(formIds)]; - - // For each form record, let's ensure the "steps" property is defined. - for (const formId of uniqueFormIds) { - const ddbRecords = await Promise.all([ - queryAll({ - entity: this.formEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#FB#F#${formId}`, - options: { - eq: "L" - } - }), - queryAll({ - entity: this.formEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#FB#F#${formId}`, - options: { - eq: "LP" - } - }), - queryAll({ - entity: this.formEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#FB#F#${formId}`, - options: { - beginsWith: "REV#" - } - }) - ]).then(response => response.flat()); - - const items: BatchWriteItem[] = []; - for (const ddbRecord of ddbRecords) { - if (ddbRecord.steps) { - continue; - } - - // If no steps are defined, we need to create a single step. - ddbRecord.steps = []; - - if (Array.isArray(ddbRecord.layout)) { - // If layout is an array, we need to create a single step with all the fields. - ddbRecord.steps.push({ title: "Step 1", layout: ddbRecord.layout }); - delete ddbRecord.layout; - } - - items.push(this.formEntity.putBatch(ddbRecord)); - } - - if (!items.length) { - continue; - } - - const execute = () => { - return batchWriteAll({ table: this.formEntity.table, items }); - }; - - logger.trace("Storing the DynamoDB records..."); - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error(`"batchWriteAll" attempt #${error.attemptNumber} failed.`); - logger.error(error.message); - } - }); - } - - // Continue with next locale. - return true; - } - }); - - logger.info("Updated all the forms."); - } -} - -makeInjectable(MultiStepForms_5_38_0_001, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.38.0/001/ddb/index.ts b/packages/migrations/src/migrations/5.38.0/001/ddb/index.ts deleted file mode 100644 index c4bce145404..00000000000 --- a/packages/migrations/src/migrations/5.38.0/001/ddb/index.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { createFormEntity } from "../entities/createFormEntity"; -import { batchWriteAll, BatchWriteItem, forEachTenantLocale, queryAll } from "~/utils"; -import { FbForm } from "../types"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { executeWithRetry } from "@webiny/utils"; - -export class MultiStepForms_5_38_0_001 implements DataMigration { - private readonly formEntity: ReturnType; - private readonly table: Table; - - constructor(table: Table) { - this.table = table; - this.formEntity = createFormEntity(table); - } - - getId() { - return "5.38.0-001"; - } - - getDescription() { - return "Convert forms to multi-step forms."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - let shouldExecute = false; - - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - const ddbRecords = await queryAll({ - entity: this.formEntity, - // Pulling all forms via the `T#root#L#en-US#FB#F` PK will suffice. - partitionKey: `T#${tenantId}#L#${localeCode}#FB#F` - }); - - for (const ddbRecord of ddbRecords) { - if (!ddbRecord.steps) { - shouldExecute = true; - return false; - } - } - - // Continue to the next locale. - return true; - } - }); - - return shouldExecute; - } - - async execute({ logger }: DataMigrationContext): Promise { - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - const ddbRecords = await Promise.all([ - queryAll({ - entity: this.formEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#FB#F` - }), - queryAll({ - entity: this.formEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#FB#F#L` - }), - queryAll({ - entity: this.formEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#FB#F#LP` - }) - ]).then(response => response.flat()); - - if (!ddbRecords.length) { - // Continue to the next locale. - return true; - } - - const items: BatchWriteItem[] = []; - for (const ddbRecord of ddbRecords) { - if (ddbRecord.steps) { - continue; - } - - // If no steps are defined, we need to create a single step. - ddbRecord.steps = []; - - if (Array.isArray(ddbRecord.layout)) { - // If layout is an array, we need to create a single step with all the fields. - ddbRecord.steps = [{ title: "Step 1", layout: ddbRecord.layout }]; - delete ddbRecord.layout; - } - - items.push(this.formEntity.putBatch(ddbRecord)); - } - - const execute = () => { - return batchWriteAll({ table: this.formEntity.table, items }); - }; - - logger.trace("Storing the DynamoDB records..."); - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error(`"batchWriteAll" attempt #${error.attemptNumber} failed.`); - logger.error(error.message); - } - }); - - return true; - } - }); - - logger.info("Updated all the forms."); - } -} - -makeInjectable(MultiStepForms_5_38_0_001, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.38.0/001/entities/createFormEntity.ts b/packages/migrations/src/migrations/5.38.0/001/entities/createFormEntity.ts deleted file mode 100644 index 2999aedf4d2..00000000000 --- a/packages/migrations/src/migrations/5.38.0/001/entities/createFormEntity.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createFormEntity = (table: Table) => { - return createLegacyEntity(table, "FormBuilderForm", { - PK: { - partitionKey: true - }, - SK: { - sortKey: true - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - }, - TYPE: { - type: "string" - }, - id: { - type: "string" - }, - formId: { - type: "string" - }, - tenant: { - type: "string" - }, - locale: { - type: "string" - }, - createdBy: { - type: "map" - }, - ownedBy: { - type: "map" - }, - savedOn: { - type: "string" - }, - createdOn: { - type: "string" - }, - name: { - type: "string" - }, - slug: { - type: "string" - }, - version: { - type: "number" - }, - locked: { - type: "boolean" - }, - published: { - type: "boolean" - }, - publishedOn: { - type: "string" - }, - status: { - type: "string" - }, - fields: { - type: "list" - }, - steps: { - type: "list" - }, - stats: { - type: "map" - }, - settings: { - type: "map" - }, - triggers: { - type: "map" - }, - webinyVersion: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.38.0/001/types.ts b/packages/migrations/src/migrations/5.38.0/001/types.ts deleted file mode 100644 index ec935e1b54a..00000000000 --- a/packages/migrations/src/migrations/5.38.0/001/types.ts +++ /dev/null @@ -1,9 +0,0 @@ -export type FbFormLayout = Array>; - -export interface FbForm { - id: string; - formId: string; - steps?: Array<{ title: string; layout: FbFormLayout }>; - layout?: FbFormLayout; - TYPE?: string; -} diff --git a/packages/migrations/src/migrations/5.38.0/002/ddb-es/index.ts b/packages/migrations/src/migrations/5.38.0/002/ddb-es/index.ts deleted file mode 100644 index 09c05f68d3d..00000000000 --- a/packages/migrations/src/migrations/5.38.0/002/ddb-es/index.ts +++ /dev/null @@ -1,329 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - ElasticsearchDynamoTableSymbol, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { - batchReadAll, - BatchReadItem, - batchWriteAll, - BatchWriteItem, - ddbScanWithCallback, - disableElasticsearchIndexing, - esGetIndexExist, - esGetIndexName, - esQueryAll, - fetchOriginalElasticsearchSettings, - forEachTenantLocale, - restoreOriginalElasticsearchSettings -} from "~/utils"; -import { FbForm, FbFormSubmission } from "../types"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { Client } from "@elastic/elasticsearch"; -import { executeWithRetry } from "@webiny/utils"; -import { createFormSubmissionEntity } from "~/migrations/5.38.0/002/entities/createFormSubmissionEntity"; -import { createFormSubmissionDdbEsEntity } from "~/migrations/5.38.0/002/entities/createFormSubmissionDdbEsEntity"; - -interface LastEvaluatedKey { - PK: string; - SK: string; - GSI1_PK: string; - GSI1_SK: string; -} - -interface IndexSettings { - refresh_interval: `${number}s`; -} - -interface FormSubmissionsDataMigrationCheckpoint { - lastEvaluatedKey?: LastEvaluatedKey | boolean; - indexes: { - [index: string]: IndexSettings | null; - }; -} - -export class MultiStepForms_5_38_0_002 implements DataMigration { - private readonly table: Table; - private readonly esTable: Table; - private readonly formSubmissionEntity: ReturnType; - private readonly formSubmissionDdbEsEntity: ReturnType; - private readonly elasticsearchClient: Client; - - constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.table = table; - this.esTable = esTable; - this.formSubmissionEntity = createFormSubmissionEntity(table); - this.formSubmissionDdbEsEntity = createFormSubmissionDdbEsEntity(esTable); - this.elasticsearchClient = elasticsearchClient; - } - - getId() { - return "5.38.0-002"; - } - - getDescription() { - return "Convert forms to multi-step forms (form submissions)."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - let shouldExecute = false; - - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - const indexNameParams = { - tenant: tenantId, - locale: localeCode, - type: "form-builder", - isHeadlessCmsModel: false - }; - - const indexExists = await esGetIndexExist({ - elasticsearchClient: this.elasticsearchClient, - ...indexNameParams - }); - - if (!indexExists) { - logger.info( - `No Elasticsearch index found for folders in tenant "${tenantId}" and locale "${localeCode}"; skipping.` - ); - - // Continue with next locale. - return true; - } - - const esRecords = await esQueryAll({ - elasticsearchClient: this.elasticsearchClient, - index: esGetIndexName(indexNameParams), - body: { - query: { - bool: { - filter: [{ term: { "__type.keyword": "fb.submission" } }], - must_not: { - exists: { - field: "form.steps" - } - } - } - }, - size: 1 - } - }); - - if (esRecords.length) { - shouldExecute = true; - return false; - } - - return true; - } - }); - - return shouldExecute; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const migrationStatus = - context.checkpoint || ({} as FormSubmissionsDataMigrationCheckpoint); - - if (migrationStatus.lastEvaluatedKey === true) { - logger.info(`Migration completed, no need to start again.`); - return; - } - - let usingKey = ""; - if (migrationStatus?.lastEvaluatedKey) { - usingKey = JSON.stringify(migrationStatus.lastEvaluatedKey); - } - - logger.debug(`Scanning DynamoDB table... ${usingKey}`); - - await ddbScanWithCallback( - { - entity: this.formSubmissionEntity, - options: { - filters: [ - { - attr: "TYPE", - eq: "fb.formSubmission" - } - ], - startKey: migrationStatus.lastEvaluatedKey || undefined, - limit: 500 - } - }, - async scanResults => { - logger.debug(`Processing ${scanResults.items.length} items...`); - const primaryTableRecordsToWrite: BatchWriteItem[] = []; - const ddbEsTableRecordsToRead: BatchReadItem[] = []; - const ddbEsTableRecordsToWrite: BatchWriteItem[] = []; - - // First, let's prepare a list of records to write to the primary table. - for (const scanResult of scanResults.items) { - if (scanResult.form.steps) { - continue; - } - - // If no steps are defined, we need to create a single step. - scanResult.form.steps = []; - - if (Array.isArray(scanResult.form.layout)) { - // If layout is an array, we need to create a single step with all the fields. - scanResult.form.steps = [ - { title: "Step 1", layout: scanResult.form.layout } - ]; - delete scanResult.form.layout; - } - - primaryTableRecordsToWrite.push(this.formSubmissionEntity.putBatch(scanResult)); - ddbEsTableRecordsToRead.push( - this.formSubmissionDdbEsEntity.getBatch(scanResult) - ); - - const index = esGetIndexName({ - tenant: scanResult.tenant, - locale: scanResult.locale, - type: "form-builder", - isHeadlessCmsModel: false - }); - - // Check for the elasticsearch index settings - if (!migrationStatus.indexes || migrationStatus.indexes[index] === undefined) { - // We need to fetch the index settings first - const settings = await fetchOriginalElasticsearchSettings({ - index, - logger, - elasticsearchClient: this.elasticsearchClient - }); - - // ... add it to the checkpoint... - migrationStatus.indexes = { - ...migrationStatus.indexes, - [index]: settings - }; - - // and then set not to index - await disableElasticsearchIndexing({ - elasticsearchClient: this.elasticsearchClient, - index, - logger - }); - } - } - - // Second, let's prepare a list of records to write to the DDB-ES table. - const ddbEsTableRecords = await batchReadAll({ - table: this.esTable, - items: ddbEsTableRecordsToRead - }); - - for (const ddbEsTableRecord of ddbEsTableRecords) { - if (!ddbEsTableRecord.data || !ddbEsTableRecord.data.form) { - continue; - } - - if (ddbEsTableRecord.data.form.steps) { - continue; - } - - // If no steps are defined, we need to create a single step. - ddbEsTableRecord.data.form.steps = []; - - if (Array.isArray(ddbEsTableRecord.data.form.layout)) { - // If layout is an array, we need to create a single step with all the fields. - ddbEsTableRecord.data.form.steps = [ - { title: "Step 1", layout: ddbEsTableRecord.data.form.layout } - ]; - delete ddbEsTableRecord.data.form.layout; - } - - ddbEsTableRecordsToWrite.push( - this.formSubmissionDdbEsEntity.putBatch(ddbEsTableRecord) - ); - } - - { - // 1. Update DynamoDB records (primary table). - const execute = () => { - return batchWriteAll({ - table: this.formSubmissionEntity.table, - items: primaryTableRecordsToWrite - }); - }; - - logger.trace("Storing the DynamoDB records (primary table)..."); - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error(`"batchWriteAll" attempt #${error.attemptNumber} failed.`); - logger.error(error.message); - } - }); - - logger.trace("...stored."); - } - - { - // 2. Update DynamoDB records (DDB-ES table). - const execute = () => { - return batchWriteAll({ - table: this.formSubmissionDdbEsEntity.table, - items: ddbEsTableRecordsToWrite - }); - }; - - logger.trace("Storing the DynamoDB records (DynamoDB-ES table)..."); - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error(`"batchWriteAll" attempt #${error.attemptNumber} failed.`); - logger.error(error.message); - } - }); - - logger.trace("...stored."); - } - - // Update checkpoint after every batch - migrationStatus.lastEvaluatedKey = scanResults.lastEvaluatedKey?.PK - ? (scanResults.lastEvaluatedKey as unknown as LastEvaluatedKey) - : true; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - /** - * This is the end of the migration. - */ - await restoreOriginalElasticsearchSettings({ - indexSettings: migrationStatus.indexes, - logger, - elasticsearchClient: this.elasticsearchClient - }); - - migrationStatus.lastEvaluatedKey = true; - migrationStatus.indexes = {}; - context.createCheckpoint(migrationStatus); - } -} - -makeInjectable(MultiStepForms_5_38_0_002, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.38.0/002/ddb/index.ts b/packages/migrations/src/migrations/5.38.0/002/ddb/index.ts deleted file mode 100644 index 1c84e41419d..00000000000 --- a/packages/migrations/src/migrations/5.38.0/002/ddb/index.ts +++ /dev/null @@ -1,175 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { createFormEntity } from "../entities/createFormEntity"; -import { createFormSubmissionEntity } from "../entities/createFormSubmissionEntity"; -import { - batchWriteAll, - BatchWriteItem, - ddbScanWithCallback, - forEachTenantLocale, - queryAll, - queryOne -} from "~/utils"; -import { FbForm, FbFormSubmission } from "../types"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { executeWithRetry } from "@webiny/utils"; - -interface LastEvaluatedKey { - PK: string; - SK: string; - GSI1_PK: string; - GSI1_SK: string; -} - -interface FolderSubmissionsDataMigrationCheckpoint { - lastEvaluatedKey?: LastEvaluatedKey | boolean; -} - -export class MultiStepForms_5_38_0_002 implements DataMigration { - private readonly formEntity: ReturnType; - private readonly formSubmissionEntity: ReturnType; - private readonly table: Table; - - constructor(table: Table) { - this.table = table; - this.formEntity = createFormEntity(table); - this.formSubmissionEntity = createFormSubmissionEntity(table); - } - - getId() { - return "5.38.0-002"; - } - - getDescription() { - return "Convert forms to multi-step forms (form submissions)."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - let shouldExecute = false; - - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - const latestFormRecords = await queryAll({ - entity: this.formEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#FB#F#L` - }); - - const formIds = latestFormRecords.map(item => item.formId).filter(Boolean); - const uniqueFormIds = [...new Set(formIds)]; - - for (const formId of uniqueFormIds) { - // Get a form submission. If the "steps" property - // is not defined, we need to execute the migration. - const formSubmission = await queryOne({ - entity: this.formSubmissionEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#FB#FS#${formId}` - }); - - if (!formSubmission) { - continue; - } - - if (!formSubmission.form.steps) { - shouldExecute = true; - return false; - } - } - - // Continue to the next locale. - return true; - } - }); - - return shouldExecute; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const migrationStatus = context.checkpoint || {}; - - if (migrationStatus.lastEvaluatedKey === true) { - logger.info(`Migration completed, no need to start again.`); - return; - } - - let usingKey = ""; - if (migrationStatus?.lastEvaluatedKey) { - usingKey = JSON.stringify(migrationStatus.lastEvaluatedKey); - } - - logger.debug(`Scanning DynamoDB table... ${usingKey}`); - await ddbScanWithCallback( - { - entity: this.formSubmissionEntity, - options: { - filters: [ - { - attr: "TYPE", - eq: "fb.formSubmission" - } - ], - startKey: migrationStatus.lastEvaluatedKey || undefined, - limit: 1000 - } - }, - async result => { - logger.debug(`Processing ${result.items.length} items...`); - const items: BatchWriteItem[] = []; - for (const item of result.items) { - if (item.form.steps) { - continue; - } - - // If no steps are defined, we need to create a single step. - item.form.steps = []; - - if (Array.isArray(item.form.layout)) { - // If layout is an array, we need to create a single step with all the fields. - item.form.steps = [{ title: "Step 1", layout: item.form.layout }]; - delete item.form.layout; - } - - items.push(this.formSubmissionEntity.putBatch(item)); - } - - const execute = () => { - return batchWriteAll({ table: this.formSubmissionEntity.table, items }); - }; - - logger.trace("Storing the DynamoDB records..."); - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error(`"batchWriteAll" attempt #${error.attemptNumber} failed.`); - logger.error(error.message); - } - }); - logger.trace("...stored."); - - // Update checkpoint after every batch - migrationStatus.lastEvaluatedKey = result.lastEvaluatedKey?.PK - ? (result.lastEvaluatedKey as unknown as LastEvaluatedKey) - : true; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - migrationStatus.lastEvaluatedKey = true; - context.createCheckpoint(migrationStatus); - } -} - -makeInjectable(MultiStepForms_5_38_0_002, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.38.0/002/entities/createFormEntity.ts b/packages/migrations/src/migrations/5.38.0/002/entities/createFormEntity.ts deleted file mode 100644 index 2999aedf4d2..00000000000 --- a/packages/migrations/src/migrations/5.38.0/002/entities/createFormEntity.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createFormEntity = (table: Table) => { - return createLegacyEntity(table, "FormBuilderForm", { - PK: { - partitionKey: true - }, - SK: { - sortKey: true - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - }, - TYPE: { - type: "string" - }, - id: { - type: "string" - }, - formId: { - type: "string" - }, - tenant: { - type: "string" - }, - locale: { - type: "string" - }, - createdBy: { - type: "map" - }, - ownedBy: { - type: "map" - }, - savedOn: { - type: "string" - }, - createdOn: { - type: "string" - }, - name: { - type: "string" - }, - slug: { - type: "string" - }, - version: { - type: "number" - }, - locked: { - type: "boolean" - }, - published: { - type: "boolean" - }, - publishedOn: { - type: "string" - }, - status: { - type: "string" - }, - fields: { - type: "list" - }, - steps: { - type: "list" - }, - stats: { - type: "map" - }, - settings: { - type: "map" - }, - triggers: { - type: "map" - }, - webinyVersion: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.38.0/002/entities/createFormSubmissionDdbEsEntity.ts b/packages/migrations/src/migrations/5.38.0/002/entities/createFormSubmissionDdbEsEntity.ts deleted file mode 100644 index d8a99e35ce6..00000000000 --- a/packages/migrations/src/migrations/5.38.0/002/entities/createFormSubmissionDdbEsEntity.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -const ddbEsAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - index: { - type: "string" - }, - data: { - type: "map" - } -}; - -export const createFormSubmissionDdbEsEntity = (table: Table) => { - return createStandardEntity(table, "FormBuilderSubmissionEs", ddbEsAttributes); -}; diff --git a/packages/migrations/src/migrations/5.38.0/002/entities/createFormSubmissionEntity.ts b/packages/migrations/src/migrations/5.38.0/002/entities/createFormSubmissionEntity.ts deleted file mode 100644 index 5a34152c174..00000000000 --- a/packages/migrations/src/migrations/5.38.0/002/entities/createFormSubmissionEntity.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createFormSubmissionEntity = (table: Table) => { - return createLegacyEntity(table, "FormBuilderForm", { - PK: { - partitionKey: true - }, - SK: { - sortKey: true - }, - id: { - type: "string" - }, - TYPE: { - type: "string" - }, - data: { - type: "map" - }, - meta: { - type: "map" - }, - form: { - type: "map" - }, - logs: { - type: "list" - }, - createdOn: { - type: "string" - }, - savedOn: { - type: "string" - }, - ownedBy: { - type: "map" - }, - tenant: { - type: "string" - }, - locale: { - type: "string" - }, - webinyVersion: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.38.0/002/types.ts b/packages/migrations/src/migrations/5.38.0/002/types.ts deleted file mode 100644 index 70217d26994..00000000000 --- a/packages/migrations/src/migrations/5.38.0/002/types.ts +++ /dev/null @@ -1,19 +0,0 @@ -export type FbFormLayout = Array>; - -export interface FbForm { - id: string; - formId: string; - steps?: Array<{ title: string; layout: FbFormLayout }>; - layout?: FbFormLayout; - TYPE?: string; -} - -export interface FbFormSubmission { - tenant: string; - locale: string; - id: string; - form: { - steps?: Array<{ title: string; layout: FbFormLayout }>; - layout?: FbFormLayout; - }; -} diff --git a/packages/migrations/src/migrations/5.38.0/003/ddb/compressContent.ts b/packages/migrations/src/migrations/5.38.0/003/ddb/compressContent.ts deleted file mode 100644 index 186908b8312..00000000000 --- a/packages/migrations/src/migrations/5.38.0/003/ddb/compressContent.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { compress } from "@webiny/utils/compression/gzip"; - -export const compressContent = async (data: Record) => { - const compressedValue = await compress(JSON.stringify(data)); - - return { - compression: "gzip", - value: compressedValue.toString("base64") - }; -}; diff --git a/packages/migrations/src/migrations/5.38.0/003/ddb/index.ts b/packages/migrations/src/migrations/5.38.0/003/ddb/index.ts deleted file mode 100644 index 0ded1c1af95..00000000000 --- a/packages/migrations/src/migrations/5.38.0/003/ddb/index.ts +++ /dev/null @@ -1,165 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { executeWithRetry } from "@webiny/utils"; -import { - DataMigration, - DataMigrationContext, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { - createOldPageBlockEntity, - createNewPageBlockEntity -} from "../entities/createPageBlockEntity"; -import { batchWriteAll, ddbQueryAllWithCallback, forEachTenantLocale, count } from "~/utils"; -import { PbPageBlock } from "../types"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { compressContent } from "./compressContent"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -export class PageBlocks_5_38_0_003 implements DataMigration { - private readonly oldPageBlockEntity: ReturnType; - private readonly newPageBlockEntity: ReturnType; - private readonly table: Table; - - constructor(table: Table) { - this.table = table; - this.oldPageBlockEntity = createOldPageBlockEntity(table); - this.newPageBlockEntity = createNewPageBlockEntity(table); - } - - getId() { - return "5.38.0-003"; - } - - getDescription() { - return "Compress block content, and add GSI1."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - let shouldExecute = false; - - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - // We're doing `queryAll` because, at this point in time, this feature is - // quite new, and we know there won't be a large number of records, so no need to paginate. - const oldBlocksCount = await count({ - entity: this.oldPageBlockEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#PB#B` - }); - - const newBlocksCount = await count({ - entity: this.newPageBlockEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#PB#BLOCKS`, - options: { - index: "GSI1" - } - }); - - if (newBlocksCount < oldBlocksCount) { - shouldExecute = true; - return false; - } - // Continue to the next locale. - return true; - } - }); - - return shouldExecute; - } - - async execute({ logger, ...context }: DataMigrationContext): Promise { - const migrationStatus = context.checkpoint || {}; - - let batch = 0; - - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - const groupId = `${tenantId}:${localeCode}`; - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - return true; - } - - await ddbQueryAllWithCallback( - { - entity: this.oldPageBlockEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#PB#B`, - options: { - gt: status || " " - } - }, - async oldBlocks => { - batch++; - - logger.info( - `Processing batch #${batch} in group ${groupId} (${oldBlocks.length} blocks).` - ); - - const items = await Promise.all( - oldBlocks.map(async oldBlock => { - const newPageBlock = { - ...oldBlock, - PK: `T#${tenantId}#L#${localeCode}#PB#BLOCK#${oldBlock.id}`, - SK: "A", - GSI1_PK: `T#${tenantId}#L#${localeCode}#PB#BLOCKS`, - // We need the ability to filter by category slug, and `id` is for uniqueness. - GSI1_SK: `${oldBlock.blockCategory}#${oldBlock.id}`, - content: await compressContent(oldBlock.content) - }; - - // We no longer have a `preview`. - delete newPageBlock["preview"]; - - return this.newPageBlockEntity.putBatch(newPageBlock); - }) - ); - - const execute = () => { - return batchWriteAll({ table: this.newPageBlockEntity.table, items }); - }; - - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - - // Update checkpoint after every batch - migrationStatus[groupId] = oldBlocks[oldBlocks.length - 1]?.id; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - // Mark group as completed. - migrationStatus[groupId] = true; - - // Store checkpoint. - await context.createCheckpoint(migrationStatus); - - // Continue processing. - return true; - } - }); - } -} - -makeInjectable(PageBlocks_5_38_0_003, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.38.0/003/entities/createPageBlockEntity.ts b/packages/migrations/src/migrations/5.38.0/003/entities/createPageBlockEntity.ts deleted file mode 100644 index b3f15d94066..00000000000 --- a/packages/migrations/src/migrations/5.38.0/003/entities/createPageBlockEntity.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { Table, AttributeDefinitions } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -const oldAttributes: AttributeDefinitions = { - PK: { - partitionKey: true - }, - SK: { - sortKey: true - }, - TYPE: { - type: "string" - }, - id: { - type: "string" - }, - name: { - type: "string" - }, - blockCategory: { - type: "string" - }, - content: { - type: "map" - }, - preview: { - type: "map" - }, - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - tenant: { - type: "string" - }, - locale: { - type: "string" - } -}; - -export const createOldPageBlockEntity = (table: Table) => { - return createLegacyEntity(table, "PbPageBlocks", oldAttributes); -}; - -export const createNewPageBlockEntity = (table: Table) => { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { preview, ...attrs } = oldAttributes; - - return createLegacyEntity(table, "PbPageBlocks", { - ...attrs, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.38.0/003/types.ts b/packages/migrations/src/migrations/5.38.0/003/types.ts deleted file mode 100644 index bff2549e566..00000000000 --- a/packages/migrations/src/migrations/5.38.0/003/types.ts +++ /dev/null @@ -1,8 +0,0 @@ -export interface PbPageBlock { - id: string; - tenant: string; - locale: string; - blockCategory: string; - content: Record; - preview?: any; -} diff --git a/packages/migrations/src/migrations/5.39.0/001/ddb-es/index.ts b/packages/migrations/src/migrations/5.39.0/001/ddb-es/index.ts deleted file mode 100644 index eae8ee791f4..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/ddb-es/index.ts +++ /dev/null @@ -1,354 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - ElasticsearchDynamoTableSymbol, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { - batchReadAll, - BatchReadItem, - batchWriteAll, - BatchWriteItem, - ddbScanWithCallback, - disableElasticsearchIndexing, - esGetIndexName, - fetchOriginalElasticsearchSettings, - restoreOriginalElasticsearchSettings, - scan -} from "~/utils"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { Client } from "@elastic/elasticsearch"; -import { executeWithRetry } from "@webiny/utils"; -import { createDdbEntryEntity, createDdbEsEntryEntity } from "../entities/createEntryEntity"; -import { CmsEntry } from "../types"; -import { getDecompressedData } from "../utils/getDecompressedData"; -import { getCompressedData } from "../utils/getCompressedData"; -import { assignNewMetaFields } from "../utils/assignNewMetaFields"; -import { fixTypeFieldValue } from "../utils/fixTypeFieldValue"; -import { isMigratedEntry } from "../utils/isMigratedEntry"; -import { getOldestRevisionCreatedOn } from "../utils/getOldestRevisionCreatedOn"; -import { getFirstLastPublishedOnBy } from "~/migrations/5.39.0/001/utils/getFirstLastPublishedOn"; - -interface LastEvaluatedKey { - PK: string; - SK: string; - GSI1_PK: string; - GSI1_SK: string; -} - -interface IndexSettings { - refresh_interval: `${number}s`; -} - -interface CmsEntriesRootFolderDataMigrationCheckpoint { - lastEvaluatedKey?: LastEvaluatedKey | boolean; - indexes: { - [index: string]: IndexSettings | null; - }; -} - -interface DynamoDbElasticsearchRecord { - PK: string; - SK: string; - data: string; -} - -export class CmsEntriesInitNewMetaFields_5_39_0_001 implements DataMigration { - private readonly elasticsearchClient: Client; - private readonly ddbEntryEntity: ReturnType; - private readonly ddbEsEntryEntity: ReturnType; - - public constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.elasticsearchClient = elasticsearchClient; - this.ddbEntryEntity = createDdbEntryEntity(table); - this.ddbEsEntryEntity = createDdbEsEntryEntity(esTable); - } - - getId() { - return "5.39.0-001"; - } - - getDescription() { - return "Write new revision and entry-level on/by meta fields."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - const result = await scan({ - entity: this.ddbEsEntryEntity, - options: { - filters: [ - { - attr: "_et", - eq: "CmsEntriesElasticsearch" - } - ], - limit: 100 - } - }); - - if (result.items.length === 0) { - logger.info(`No CMS entries found in the system; skipping migration.`); - return false; - } else if (result.error) { - logger.error(result.error); - throw new Error(result.error); - } - - for (const item of result.items) { - const data = await getDecompressedData(item.data); - if (!data) { - continue; - } - - if (!isMigratedEntry(data)) { - return true; - } - } - logger.info(`CMS entries already upgraded. skipping...`); - return false; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const migrationStatus = - context.checkpoint || ({} as CmsEntriesRootFolderDataMigrationCheckpoint); - - if (migrationStatus.lastEvaluatedKey === true) { - await restoreOriginalElasticsearchSettings({ - indexSettings: migrationStatus.indexes, - logger, - elasticsearchClient: this.elasticsearchClient - }); - logger.info(`Migration completed, no need to start again.`); - return; - } - - let usingKey = ""; - if (migrationStatus?.lastEvaluatedKey) { - usingKey = JSON.stringify(migrationStatus.lastEvaluatedKey); - } - - logger.debug(`Scanning DynamoDB Elasticsearch table... ${usingKey}`); - await ddbScanWithCallback( - { - entity: this.ddbEntryEntity, - options: { - filters: [ - { - attr: "_et", - eq: "CmsEntries" - } - ], - startKey: migrationStatus.lastEvaluatedKey || undefined, - limit: 100 - } - }, - async result => { - logger.debug(`Processing ${result.items.length} items...`); - const ddbItems: BatchWriteItem[] = []; - const ddbEsItems: BatchWriteItem[] = []; - - const ddbEsGetItems: Record = {}; - /** - * Update the DynamoDB part of the records. - */ - for (const item of result.items) { - const index = esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - type: item.modelId, - isHeadlessCmsModel: true - }); - - // Check for the elasticsearch index settings - if (!migrationStatus.indexes || migrationStatus.indexes[index] === undefined) { - // We need to fetch the index settings first - const settings = await fetchOriginalElasticsearchSettings({ - index, - logger, - elasticsearchClient: this.elasticsearchClient - }); - - // ... add it to the checkpoint... - migrationStatus.indexes = { - ...migrationStatus.indexes, - [index]: settings - }; - // and then set not to index - await disableElasticsearchIndexing({ - elasticsearchClient: this.elasticsearchClient, - index, - logger - }); - } - - // Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value. - const createdOn = await getOldestRevisionCreatedOn({ - entry: item, - entryEntity: this.ddbEntryEntity - }); - - const firstLastPublishedOnByFields = await getFirstLastPublishedOnBy({ - entry: item, - entryEntity: this.ddbEntryEntity - }); - - assignNewMetaFields(item, { - createdOn, - ...firstLastPublishedOnByFields - }); - - // Fixes the value of the `TYPE` field, if it's not valid. - fixTypeFieldValue(item); - - ddbItems.push(this.ddbEntryEntity.putBatch(item)); - - /** - * Prepare the loading of DynamoDB Elasticsearch part of the records. - */ - if (ddbEsGetItems[`${item.entryId}:L`]) { - continue; - } - - ddbEsGetItems[`${item.entryId}:L`] = this.ddbEsEntryEntity.getBatch({ - PK: item.PK, - SK: "L" - }); - - if (item.status === "published" || !!item.locked) { - ddbEsGetItems[`${item.entryId}:P`] = this.ddbEsEntryEntity.getBatch({ - PK: item.PK, - SK: "P" - }); - } - } - - /** - * Get all the records from DynamoDB Elasticsearch. - */ - const esRecords = await batchReadAll({ - table: this.ddbEsEntryEntity.table, - items: Object.values(ddbEsGetItems) - }); - - for (const esRecord of esRecords) { - const decompressedData = await getDecompressedData(esRecord.data); - if (!decompressedData) { - logger.trace( - `Skipping record "${esRecord.PK}" as it is not a valid CMS entry...` - ); - continue; - } - - if (isMigratedEntry(decompressedData)) { - const forceExecute = context.forceExecute; - if (!forceExecute) { - logger.trace( - `Skipping record "${decompressedData.entryId}" as it already has meta fields defined...` - ); - continue; - } - } - - // Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value. - const createdOn = await getOldestRevisionCreatedOn({ - entry: { ...decompressedData, PK: esRecord.PK }, - entryEntity: this.ddbEntryEntity - }); - - const firstLastPublishedOnByFields = await getFirstLastPublishedOnBy({ - entry: { ...decompressedData, PK: esRecord.PK }, - entryEntity: this.ddbEntryEntity - }); - - assignNewMetaFields(decompressedData, { - createdOn, - ...firstLastPublishedOnByFields - }); - - const compressedData = await getCompressedData(decompressedData); - - ddbEsItems.push( - this.ddbEsEntryEntity.putBatch({ - ...esRecord, - data: compressedData - }) - ); - } - - const execute = () => { - return batchWriteAll({ - table: this.ddbEntryEntity.table, - items: ddbItems - }); - }; - - const executeDdbEs = () => { - return batchWriteAll({ - table: this.ddbEsEntryEntity.table, - items: ddbEsItems - }); - }; - - logger.trace("Storing the DynamoDB records..."); - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - }); - logger.trace("...stored."); - - logger.trace("Storing the DynamoDB Elasticsearch records..."); - await executeWithRetry(executeDdbEs, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb + es" attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - }); - logger.trace("...stored."); - - // Update checkpoint after every batch - migrationStatus.lastEvaluatedKey = result.lastEvaluatedKey?.PK - ? (result.lastEvaluatedKey as unknown as LastEvaluatedKey) - : true; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - /** - * This is the end of the migration. - */ - await restoreOriginalElasticsearchSettings({ - indexSettings: migrationStatus.indexes, - logger, - elasticsearchClient: this.elasticsearchClient - }); - - migrationStatus.lastEvaluatedKey = true; - migrationStatus.indexes = {}; - context.createCheckpoint(migrationStatus); - } -} - -makeInjectable(CmsEntriesInitNewMetaFields_5_39_0_001, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.39.0/001/ddb/index.ts b/packages/migrations/src/migrations/5.39.0/001/ddb/index.ts deleted file mode 100644 index 4e90da7c1f2..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/ddb/index.ts +++ /dev/null @@ -1,168 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { batchWriteAll, BatchWriteItem, ddbScanWithCallback, scan } from "~/utils"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { executeWithRetry } from "@webiny/utils"; -import { CmsEntry } from "../types"; -import { createDdbEntryEntity } from "../entities/createEntryEntity"; -import { assignNewMetaFields } from "../utils/assignNewMetaFields"; -import { isMigratedEntry } from "../utils/isMigratedEntry"; -import { getOldestRevisionCreatedOn } from "../utils/getOldestRevisionCreatedOn"; -import { getFirstLastPublishedOnBy } from "~/migrations/5.39.0/001/utils/getFirstLastPublishedOn"; - -interface LastEvaluatedKey { - PK: string; - SK: string; - GSI1_PK: string; - GSI1_SK: string; -} - -interface FolderSubmissionsDataMigrationCheckpoint { - lastEvaluatedKey?: LastEvaluatedKey | boolean; -} - -export class CmsEntriesInitNewMetaFields_5_39_0_001 implements DataMigration { - private readonly entryEntity: ReturnType; - - constructor(table: Table) { - this.entryEntity = createDdbEntryEntity(table); - } - - getId() { - return "5.39.0-001"; - } - - getDescription() { - return "Write new revision and entry-level on/by meta fields."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - /** - * We will go through a larger amount of the entries, to determine if they need to be updated. - */ - const result = await scan({ - entity: this.entryEntity, - options: { - filters: [ - { - attr: "_et", - eq: "CmsEntries" - } - ], - limit: 100 - } - }); - - if (result.items.length === 0) { - logger.info(`No CMS entries found in the system; skipping migration.`); - return false; - } else if (result.error) { - logger.error(result.error); - throw new Error(result.error); - } - - for (const item of result.items) { - if (!isMigratedEntry(item)) { - return true; - } - } - - logger.info(`CMS entries already upgraded. skipping...`); - return false; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const migrationStatus = context.checkpoint || {}; - - if (migrationStatus.lastEvaluatedKey === true) { - logger.info(`Migration completed, no need to start again.`); - return; - } - - let usingKey = ""; - if (migrationStatus?.lastEvaluatedKey) { - usingKey = JSON.stringify(migrationStatus.lastEvaluatedKey); - } - - logger.debug(`Scanning DynamoDB table... ${usingKey}`); - await ddbScanWithCallback( - { - entity: this.entryEntity, - options: { - filters: [ - { - attr: "_et", - eq: "CmsEntries" - } - ], - startKey: migrationStatus.lastEvaluatedKey || undefined, - limit: 100 - } - }, - async result => { - logger.debug(`Processing ${result.items.length} items...`); - const items: BatchWriteItem[] = []; - for (const item of result.items) { - if (isMigratedEntry(item)) { - continue; - } - - // Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value. - const createdOn = await getOldestRevisionCreatedOn({ - entry: item, - entryEntity: this.entryEntity - }); - - const firstLastPublishedOnByFields = await getFirstLastPublishedOnBy({ - entry: item, - entryEntity: this.entryEntity - }); - - assignNewMetaFields(item, { - createdOn, - ...firstLastPublishedOnByFields - }); - - items.push(this.entryEntity.putBatch(item)); - } - - const execute = () => { - return batchWriteAll({ table: this.entryEntity.table, items }); - }; - - logger.trace("Storing the DynamoDB records..."); - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error(`"batchWriteAll" attempt #${error.attemptNumber} failed.`); - logger.error(error.message); - } - }); - logger.trace("...stored."); - - // Update checkpoint after every batch - migrationStatus.lastEvaluatedKey = result.lastEvaluatedKey?.PK - ? (result.lastEvaluatedKey as unknown as LastEvaluatedKey) - : true; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - migrationStatus.lastEvaluatedKey = true; - context.createCheckpoint(migrationStatus); - } -} - -makeInjectable(CmsEntriesInitNewMetaFields_5_39_0_001, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.39.0/001/entities/createEntryEntity.ts b/packages/migrations/src/migrations/5.39.0/001/entities/createEntryEntity.ts deleted file mode 100644 index 3a81dfbd5f1..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/entities/createEntryEntity.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity, createStandardEntity } from "~/utils"; - -const ddbAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - }, - TYPE: { - type: "string" - }, - __type: { - type: "string" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - }, - entryId: { - type: "string" - }, - id: { - type: "string" - }, - modelId: { - type: "string" - }, - locale: { - type: "string" - }, - - /** - * Revision-level meta fields. 👇 - */ - revisionCreatedOn: { type: "string" }, - revisionSavedOn: { type: "string" }, - revisionModifiedOn: { type: "string" }, - revisionDeletedOn: { type: "string" }, - revisionRestoredOn: { type: "string" }, - revisionFirstPublishedOn: { type: "string" }, - revisionLastPublishedOn: { type: "string" }, - revisionCreatedBy: { type: "map" }, - revisionSavedBy: { type: "map" }, - revisionModifiedBy: { type: "map" }, - revisionDeletedBy: { type: "map" }, - revisionRestoredBy: { type: "map" }, - revisionFirstPublishedBy: { type: "map" }, - revisionLastPublishedBy: { type: "map" }, - - /** - * Entry-level meta fields. 👇 - */ - createdOn: { type: "string" }, - savedOn: { type: "string" }, - modifiedOn: { type: "string" }, - deletedOn: { type: "string" }, - restoredOn: { type: "string" }, - firstPublishedOn: { type: "string" }, - lastPublishedOn: { type: "string" }, - createdBy: { type: "map" }, - savedBy: { type: "map" }, - modifiedBy: { type: "map" }, - deletedBy: { type: "map" }, - restoredBy: { type: "map" }, - firstPublishedBy: { type: "map" }, - lastPublishedBy: { type: "map" }, - - // Deprecated fields. - ownedBy: { type: "map" }, - publishedOn: { type: "string" }, - - version: { - type: "number" - }, - locked: { - type: "boolean" - }, - status: { - type: "string" - }, - values: { - type: "map" - }, - meta: { - type: "map" - }, - location: { - type: "map" - } -}; - -const ddbEsAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - index: { - type: "string" - }, - data: { - type: "map" - } -}; - -export const createDdbEntryEntity = (table: Table) => { - return createLegacyEntity(table, "CmsEntries", ddbAttributes); -}; - -export const createDdbEsEntryEntity = (table: Table) => { - return createStandardEntity(table, "CmsEntriesElasticsearch", ddbEsAttributes); -}; diff --git a/packages/migrations/src/migrations/5.39.0/001/types.ts b/packages/migrations/src/migrations/5.39.0/001/types.ts deleted file mode 100644 index 0dc96c3a4da..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/types.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { CmsIdentity } from "@webiny/api-headless-cms/types"; - -export interface Tenant { - data: { - id: string; - name: string; - }; -} - -export interface I18NLocale { - code: string; -} - -export interface Identity { - id: string; - displayName: string | null; - type: string; -} - -export interface CmsEntryValues { - [key: string]: any; -} - -export type CmsEntryStatus = "published" | "unpublished" | "draft"; - -export interface CmsEntry { - webinyVersion: string; - tenant: string; - entryId: string; - id: string; - modelId: string; - locale: string; - version: number; - locked: boolean; - status: CmsEntryStatus; - values: T; - meta?: { - [key: string]: any; - }; - location?: { - folderId?: string | null; - }; - - /** - * Revision-level meta fields. 👇 - */ - - /** - * An ISO 8601 date/time string. - */ - revisionCreatedOn: string; - /** - * An ISO 8601 date/time string. - */ - revisionSavedOn: string; - /** - * An ISO 8601 date/time string. - */ - revisionModifiedOn: string | null; - /** - * An ISO 8601 date/time string. - */ - revisionFirstPublishedOn: string | null; - /** - * An ISO 8601 date/time string. - */ - revisionLastPublishedOn: string | null; - - /** - * Identity that last ionCreated the entry. - */ - revisionCreatedBy: CmsIdentity; - /** - * Identity that last ionSaved the entry. - */ - revisionSavedBy: CmsIdentity; - /** - * Identity that last ionModified the entry. - */ - revisionModifiedBy: CmsIdentity | null; - /** - * Identity that first published the entry. - */ - revisionFirstPublishedBy: CmsIdentity | null; - /** - * Identity that last published the entry. - */ - revisionLastPublishedBy: CmsIdentity | null; - - /** - * Entry-level meta fields. 👇 - */ - - /** - * An ISO 8601 date/time string. - */ - createdOn: string; - /** - * An ISO 8601 date/time string. - */ - savedOn: string; - /** - * An ISO 8601 date/time string. - */ - modifiedOn: string | null; - /** - * An ISO 8601 date/time string. - */ - firstPublishedOn: string | null; - /** - * An ISO 8601 date/time string. - */ - lastPublishedOn: string | null; - - /** - * Identity that last created the entry. - */ - createdBy: CmsIdentity; - /** - * Identity that last saved the entry. - */ - savedBy: CmsIdentity; - /** - * Identity that last modified the entry. - */ - modifiedBy: CmsIdentity | null; - /** - * Identity that first published the entry. - */ - firstPublishedBy: CmsIdentity | null; - /** - * Identity that last published the entry. - */ - lastPublishedBy: CmsIdentity | null; - - // Deprecated fields. - ownedBy: CmsIdentity; - publishedOn?: string | null; -} - -export interface ListLocalesParams { - tenant: Tenant; -} - -export interface ListModelsParams { - tenant: Tenant; - locale: I18NLocale; -} - -export interface CmsModel { - modelId: string; - name: string; -} diff --git a/packages/migrations/src/migrations/5.39.0/001/utils/assignNewMetaFields.ts b/packages/migrations/src/migrations/5.39.0/001/utils/assignNewMetaFields.ts deleted file mode 100644 index 85ca5b2ef43..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/utils/assignNewMetaFields.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { CmsEntry } from "../types"; -import { CmsIdentity } from "@webiny/api-headless-cms/types"; - -interface SpecialFields { - createdOn: string; - firstPublishedOn: string | null; - lastPublishedOn: string | null; - firstPublishedBy: CmsIdentity | null; - lastPublishedBy: CmsIdentity | null; -} - -export const assignNewMetaFields = (entry: CmsEntry, specialFields: SpecialFields) => { - const isDraft = entry.status === "draft"; - - // We don't have `publishedBy`, that's why we're relying on `modifiedBy` or `createdBy`. - const revisionFirstLastPublishedOn = isDraft ? null : entry.publishedOn || null; - const revisionFirstLastPublishedBy = isDraft ? null : entry.modifiedBy || entry.createdBy; - - Object.assign(entry, { - // Revision-level meta fields. - revisionCreatedOn: entry.createdOn, - - // `modifiedOn` does not exist, that's why we're using `savedOn`. - // We only use it if there's a `modifiedBy` set. - revisionModifiedOn: entry.modifiedBy ? entry.savedOn : null, - - revisionSavedOn: entry.savedOn, - revisionCreatedBy: entry.createdBy, - revisionModifiedBy: entry.modifiedBy || null, - revisionSavedBy: entry.modifiedBy || entry.createdBy, - - revisionFirstPublishedOn: revisionFirstLastPublishedOn, - revisionFirstPublishedBy: revisionFirstLastPublishedBy, - - revisionLastPublishedOn: revisionFirstLastPublishedOn, - revisionLastPublishedBy: revisionFirstLastPublishedBy, - - // Entry-level meta fields. - createdOn: specialFields.createdOn, - - // `modifiedOn` does not exist, that's why we're using `savedOn`. - // We only use it if there's a `modifiedBy` set. - modifiedOn: entry.modifiedBy ? entry.savedOn : null, - - savedOn: entry.savedOn, - createdBy: entry.ownedBy, - modifiedBy: entry.modifiedBy || null, - savedBy: entry.modifiedBy || entry.createdBy, - - firstPublishedOn: specialFields.firstPublishedOn, - firstPublishedBy: specialFields.firstPublishedBy, - - lastPublishedOn: specialFields.lastPublishedOn, - lastPublishedBy: specialFields.lastPublishedBy - }); -}; diff --git a/packages/migrations/src/migrations/5.39.0/001/utils/ensureAllNonNullableValues.ts b/packages/migrations/src/migrations/5.39.0/001/utils/ensureAllNonNullableValues.ts deleted file mode 100644 index ddcf42ed155..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/utils/ensureAllNonNullableValues.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { CmsEntry } from "~/migrations/5.39.0/001/types"; -import { CmsIdentity } from "@webiny/api-headless-cms/types"; - -interface Fallbacks { - dateTime: string; - identity: CmsIdentity; -} - -// All non-nullable meta fields must have values assigned. -export const ensureAllNonNullableValues = (entry: CmsEntry, fallbacks: Fallbacks) => { - const entryFallbackDateTime = - entry.savedOn || - entry.modifiedOn || - entry.createdOn || - entry.revisionCreatedOn || - entry.revisionModifiedOn || - entry.revisionSavedOn || - fallbacks.dateTime; - - const entryFallbackIdentity = - entry.savedBy || - entry.modifiedBy || - entry.createdBy || - entry.revisionCreatedBy || - entry.revisionModifiedBy || - entry.revisionSavedBy || - fallbacks.identity; - - if (!entry.revisionCreatedOn) { - entry.revisionCreatedOn = entryFallbackDateTime; - } - - if (!entry.revisionSavedOn) { - entry.revisionSavedOn = entryFallbackDateTime; - } - - if (!entry.revisionCreatedBy) { - entry.revisionCreatedBy = entryFallbackIdentity; - } - - if (!entry.revisionSavedBy) { - entry.revisionSavedBy = entryFallbackIdentity; - } - - if (!entry.createdOn) { - entry.createdOn = entryFallbackDateTime; - } - - if (!entry.savedOn) { - entry.savedOn = entryFallbackDateTime; - } - - if (!entry.createdBy) { - entry.createdBy = entryFallbackIdentity; - } - - if (!entry.savedBy) { - entry.savedBy = entryFallbackIdentity; - } -}; diff --git a/packages/migrations/src/migrations/5.39.0/001/utils/fixTypeFieldValue.ts b/packages/migrations/src/migrations/5.39.0/001/utils/fixTypeFieldValue.ts deleted file mode 100644 index b991a77293a..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/utils/fixTypeFieldValue.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { CmsEntry } from "../types"; -import { ScanDbItem } from "@webiny/db-dynamodb"; -import { - createRecordType, - createLatestRecordType, - createPublishedRecordType -} from "@webiny/api-headless-cms-ddb-es/operations/entry/recordType"; - -export const fixTypeFieldValue = (entry: ScanDbItem) => { - if (entry.SK.startsWith("REV#")) { - const TYPE = createRecordType(); - if (entry.TYPE !== TYPE) { - entry.TYPE = TYPE; - } - return; - } - - if (entry.SK === "L") { - const TYPE = createLatestRecordType(); - if (entry.TYPE !== TYPE) { - entry.TYPE = TYPE; - } - return; - } - - if (entry.SK === "P") { - const TYPE = createPublishedRecordType(); - if (entry.TYPE !== TYPE) { - entry.TYPE = TYPE; - } - return; - } -}; diff --git a/packages/migrations/src/migrations/5.39.0/001/utils/getCompressedData.ts b/packages/migrations/src/migrations/5.39.0/001/utils/getCompressedData.ts deleted file mode 100644 index 31f77e45314..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/utils/getCompressedData.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { compress as gzip } from "@webiny/utils/compression/gzip"; - -const GZIP = "gzip"; -const TO_STORAGE_ENCODING = "base64"; - -export const getCompressedData = async (data: any) => { - const value = await gzip(JSON.stringify(data)); - - return { - compression: GZIP, - value: value.toString(TO_STORAGE_ENCODING) - }; -}; diff --git a/packages/migrations/src/migrations/5.39.0/001/utils/getDecompressedData.ts b/packages/migrations/src/migrations/5.39.0/001/utils/getDecompressedData.ts deleted file mode 100644 index 593bd0e39a1..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/utils/getDecompressedData.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { decompress as ungzip } from "@webiny/utils/compression/gzip"; - -const GZIP = "gzip"; -const TO_STORAGE_ENCODING = "base64"; -const FROM_STORAGE_ENCODING = "utf8"; - -const convertToBuffer = (value: string | Buffer) => { - if (typeof value === "string") { - return Buffer.from(value, TO_STORAGE_ENCODING); - } - return value; -}; - -export const getDecompressedData = async (data: any): Promise => { - if (data?.compression !== GZIP) { - return null; - } - try { - const buf = await ungzip(convertToBuffer(data.value)); - const value = buf.toString(FROM_STORAGE_ENCODING); - return JSON.parse(value); - } catch (ex) { - return null; - } -}; diff --git a/packages/migrations/src/migrations/5.39.0/001/utils/getFallbackIdentity.ts b/packages/migrations/src/migrations/5.39.0/001/utils/getFallbackIdentity.ts deleted file mode 100644 index f7ef6318ebe..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/utils/getFallbackIdentity.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { CmsIdentity } from "@webiny/api-headless-cms/types"; -import { queryAll } from "@webiny/db-dynamodb"; -import { Entity } from "@webiny/db-dynamodb/toolbox"; -import { executeWithRetry, ExecuteWithRetryOptions } from "@webiny/utils"; - -const NON_EXISTING_DATA_MIGRATION_IDENTITY: CmsIdentity = { - id: "data-migration", - type: "data-migration", - displayName: "Data Migration" -}; - -interface GetFallbackIdentityParams { - entity: Entity; - tenant: string; - retryOptions?: ExecuteWithRetryOptions; -} - -interface AdminUserRecord { - data: { - createdOn: string; - id: string; - displayName: string; - }; -} - -const identitiesPerTenantCache: Record = {}; - -export const getFallbackIdentity = async ({ - entity, - tenant, - retryOptions -}: GetFallbackIdentityParams): Promise => { - if (identitiesPerTenantCache[tenant]) { - return identitiesPerTenantCache[tenant]; - } - - const executeQueryAll = () => { - return queryAll({ - entity, - partitionKey: `T#${tenant}#ADMIN_USERS`, - options: { - index: "GSI1" - } - }); - }; - - const allAdminUsersRecords = await executeWithRetry(executeQueryAll, retryOptions); - - if (allAdminUsersRecords.length === 0) { - // Hopefully it doesn't come to this, but we still need to consider it. - return NON_EXISTING_DATA_MIGRATION_IDENTITY; - } - - const [oldestAdminUser] = allAdminUsersRecords.sort((prev, next) => { - return prev.data.createdOn < next.data.createdOn ? -1 : 1; - }); - - identitiesPerTenantCache[tenant] = { - id: oldestAdminUser.data.id, - type: "admin", - displayName: oldestAdminUser.data.displayName - }; - - return identitiesPerTenantCache[tenant]; -}; diff --git a/packages/migrations/src/migrations/5.39.0/001/utils/getFirstLastPublishedOn.ts b/packages/migrations/src/migrations/5.39.0/001/utils/getFirstLastPublishedOn.ts deleted file mode 100644 index bc7129cf3bf..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/utils/getFirstLastPublishedOn.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { createDdbEntryEntity } from "./../entities/createEntryEntity"; -import { CmsEntry } from "../types"; -import { executeWithRetry, ExecuteWithRetryOptions } from "@webiny/utils"; - -const cachedEntryFirstLastPublishedOnBy: Record< - string, - Pick -> = {}; - -interface CmsEntryWithPK extends CmsEntry { - PK: string; -} - -export interface getFirstLastPublishedOnParams { - entry: CmsEntryWithPK; - entryEntity: ReturnType; - retryOptions?: ExecuteWithRetryOptions; -} - -export const getFirstLastPublishedOnBy = async (params: getFirstLastPublishedOnParams) => { - const { entry, entryEntity } = params; - - if (cachedEntryFirstLastPublishedOnBy[entry.PK]) { - return cachedEntryFirstLastPublishedOnBy[entry.PK]; - } - - cachedEntryFirstLastPublishedOnBy[entry.PK] = { - firstPublishedOn: null, - lastPublishedOn: null, - firstPublishedBy: null, - lastPublishedBy: null - }; - - const executeQuery = () => { - return entryEntity.query(entry.PK, { - limit: 1, - eq: "P", - attributes: ["modifiedBy", "createdBy", "publishedOn"] - }); - }; - - const result = await executeWithRetry(executeQuery, params.retryOptions); - - const publishedRecord = result.Items?.[0]; - if (publishedRecord) { - cachedEntryFirstLastPublishedOnBy[entry.PK] = { - firstPublishedOn: publishedRecord.publishedOn || null, - lastPublishedOn: publishedRecord.publishedOn || null, - firstPublishedBy: entry.modifiedBy || entry.createdBy || null, - lastPublishedBy: entry.modifiedBy || entry.createdBy || null - }; - } - - return cachedEntryFirstLastPublishedOnBy[entry.PK]; -}; diff --git a/packages/migrations/src/migrations/5.39.0/001/utils/getNonNullableFieldsWithMissingValues.ts b/packages/migrations/src/migrations/5.39.0/001/utils/getNonNullableFieldsWithMissingValues.ts deleted file mode 100644 index 9265ef492a5..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/utils/getNonNullableFieldsWithMissingValues.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { CmsEntry } from "~/migrations/5.39.0/001/types"; -import { - EntryMetaFieldName, - isNonNullableEntryMetaField, - pickEntryMetaFields -} from "@webiny/api-headless-cms/constants"; - -export const getNonNullableFieldsWithMissingValues = (entry: CmsEntry) => { - // Only `modifiedX` and `publishedX` fields are nullable. - const nonNullableMetaFields = pickEntryMetaFields(entry, isNonNullableEntryMetaField); - - const missingFields: EntryMetaFieldName[] = []; - for (const fieldName in nonNullableMetaFields) { - const value = nonNullableMetaFields[fieldName as EntryMetaFieldName]; - if (!value) { - missingFields.push(fieldName as EntryMetaFieldName); - } - } - - return missingFields; -}; diff --git a/packages/migrations/src/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn.ts b/packages/migrations/src/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn.ts deleted file mode 100644 index 8a930406063..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { createDdbEntryEntity } from "./../entities/createEntryEntity"; -import { CmsEntry } from "../types"; -import { executeWithRetry, ExecuteWithRetryOptions } from "@webiny/utils"; - -const cachedEntryCreatedOn: Record = {}; - -interface CmsEntryWithPK extends CmsEntry { - PK: string; -} - -export interface GetOldestRevisionCreatedOnParams { - entry: CmsEntryWithPK; - entryEntity: ReturnType; - retryOptions?: ExecuteWithRetryOptions; -} - -export const getOldestRevisionCreatedOn = async (params: GetOldestRevisionCreatedOnParams) => { - const { entry, entryEntity } = params; - - if (cachedEntryCreatedOn[entry.PK]) { - return cachedEntryCreatedOn[entry.PK]; - } - - if (entry.version === 1) { - cachedEntryCreatedOn[entry.PK] = entry.createdOn; - } else { - const executeQuery = () => { - return entryEntity.query(entry.PK, { - limit: 1, - beginsWith: "REV#", - attributes: ["createdOn"] - }); - }; - - const result = await executeWithRetry(executeQuery, params.retryOptions); - - const oldestRevision = result.Items?.[0]; - if (oldestRevision) { - cachedEntryCreatedOn[entry.PK] = oldestRevision.createdOn; - } - } - - return cachedEntryCreatedOn[entry.PK]; -}; diff --git a/packages/migrations/src/migrations/5.39.0/001/utils/hasAllNonNullableValues.ts b/packages/migrations/src/migrations/5.39.0/001/utils/hasAllNonNullableValues.ts deleted file mode 100644 index a3d97e5920a..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/utils/hasAllNonNullableValues.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { CmsEntry } from "~/migrations/5.39.0/001/types"; -import { - EntryMetaFieldName, - isNonNullableEntryMetaField, - pickEntryMetaFields -} from "@webiny/api-headless-cms/constants"; - -export const hasAllNonNullableValues = (entry: CmsEntry) => { - // Only `modifiedX` and `publishedX` fields are nullable. - const nonNullableMetaFields = pickEntryMetaFields(entry, isNonNullableEntryMetaField); - - for (const fieldName in nonNullableMetaFields) { - const value = nonNullableMetaFields[fieldName as EntryMetaFieldName]; - if (!value) { - return false; - } - } - - return true; -}; diff --git a/packages/migrations/src/migrations/5.39.0/001/utils/hasValidTypeFieldValue.ts b/packages/migrations/src/migrations/5.39.0/001/utils/hasValidTypeFieldValue.ts deleted file mode 100644 index 6757ec17567..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/utils/hasValidTypeFieldValue.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { - createRecordType, - createLatestRecordType, - createPublishedRecordType -} from "@webiny/api-headless-cms-ddb-es/operations/entry/recordType"; - -export const hasValidTypeFieldValue = (entry: { SK: string; TYPE?: string }) => { - if (entry.SK.startsWith("REV#")) { - return entry.TYPE === createRecordType(); - } - - if (entry.SK === "L") { - return entry.TYPE === createLatestRecordType(); - } - - // SK === "P" - return entry.TYPE === createPublishedRecordType(); -}; diff --git a/packages/migrations/src/migrations/5.39.0/001/utils/isMigratedEntry.ts b/packages/migrations/src/migrations/5.39.0/001/utils/isMigratedEntry.ts deleted file mode 100644 index 961b8011c53..00000000000 --- a/packages/migrations/src/migrations/5.39.0/001/utils/isMigratedEntry.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { CmsEntry } from "../types"; - -export const isMigratedEntry = (entry: CmsEntry) => { - return "revisionCreatedOn" in entry && entry.revisionCreatedOn; -}; diff --git a/packages/migrations/src/migrations/5.39.0/002/ddb-es/FileManager_5_39_0_002.ts b/packages/migrations/src/migrations/5.39.0/002/ddb-es/FileManager_5_39_0_002.ts deleted file mode 100644 index 897640e202c..00000000000 --- a/packages/migrations/src/migrations/5.39.0/002/ddb-es/FileManager_5_39_0_002.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { Client } from "@elastic/elasticsearch"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { executeWithRetry } from "@webiny/utils"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { S3 } from "@webiny/aws-sdk/client-s3"; -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - esQueryAllWithCallback, - forEachTenantLocale, - esFindOne, - esGetIndexExist, - esGetIndexName -} from "~/utils"; -import { FileEntry } from "../utils/createFileEntity"; -import { FileMetadata } from "../utils/FileMetadata"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -export class FileManager_5_39_0_002 implements DataMigration { - private readonly elasticsearchClient: Client; - private readonly bucket: string; - private readonly s3: S3; - private readonly table: Table; - - constructor(table: Table, elasticsearchClient: Client) { - this.table = table; - this.elasticsearchClient = elasticsearchClient; - this.s3 = new S3({ region: process.env.AWS_REGION }); - this.bucket = String(process.env.S3_BUCKET); - } - - getId() { - return "5.39.0-002"; - } - - getDescription() { - return "Generate a metadata file for every File Manager file."; - } - - private getIndexParams(tenantId: string, localeCode: string) { - return { - tenant: tenantId, - locale: localeCode, - type: "fmFile", - isHeadlessCmsModel: true - }; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - let shouldExecute = false; - - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - const indexExists = await esGetIndexExist({ - elasticsearchClient: this.elasticsearchClient, - ...this.getIndexParams(tenantId, localeCode) - }); - - if (!indexExists) { - logger.info( - `No elasticsearch index found for File Manager in tenant "${tenantId}" and locale "${localeCode}".` - ); - return true; - } - - // Fetch the latest file record from ES - const fmIndexName = esGetIndexName(this.getIndexParams(tenantId, localeCode)); - - const latestFile = await esFindOne({ - elasticsearchClient: this.elasticsearchClient, - index: fmIndexName, - body: { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenantId } }, - { term: { "locale.keyword": localeCode } } - ] - } - }, - sort: [ - { - "id.keyword": { order: "desc", unmapped_type: "keyword" } - } - ] - } - }); - - if (!latestFile) { - logger.info( - `No files found in tenant "${tenantId}" and locale "${localeCode}".` - ); - return true; - } - - const fileMetadata = new FileMetadata(this.s3, this.bucket, latestFile); - const hasMetadata = await fileMetadata.exists(); - - if (!hasMetadata) { - shouldExecute = true; - return false; - } - - // Continue to the next tenant/locale. - return true; - } - }); - - return shouldExecute; - } - - async execute({ logger, ...context }: DataMigrationContext): Promise { - const migrationStatus = context.checkpoint || {}; - - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - const groupId = `${tenantId}:${localeCode}`; - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - return true; - } - - const esIndexName = esGetIndexName(this.getIndexParams(tenantId, localeCode)); - - let batch = 0; - await esQueryAllWithCallback({ - elasticsearchClient: this.elasticsearchClient, - index: esIndexName, - body: { - query: { - bool: { - filter: [ - { term: { "tenant.keyword": tenantId } }, - { term: { "locale.keyword": localeCode } } - ] - } - }, - size: 10000, - sort: [ - { - "id.keyword": { order: "asc", unmapped_type: "keyword" } - } - ], - search_after: status - }, - callback: async (files, cursor) => { - batch++; - - logger.info( - `Processing batch #${batch} in group ${groupId} (${files.length} files).` - ); - - const writers = files.map(file => { - const fileMetadata = new FileMetadata(this.s3, this.bucket, file); - const writeMetadata = () => fileMetadata.create(); - - return executeWithRetry(writeMetadata, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - }); - - await Promise.all(writers); - - // Update checkpoint after every batch - migrationStatus[groupId] = cursor; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - }); - - // Mark group as completed. - migrationStatus[groupId] = true; - - // Store checkpoint. - await context.createCheckpoint(migrationStatus); - - // Continue processing. - return true; - } - }); - } -} - -makeInjectable(FileManager_5_39_0_002, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.39.0/002/ddb-es/index.ts b/packages/migrations/src/migrations/5.39.0/002/ddb-es/index.ts deleted file mode 100644 index 9dba853fd0d..00000000000 --- a/packages/migrations/src/migrations/5.39.0/002/ddb-es/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./FileManager_5_39_0_002"; diff --git a/packages/migrations/src/migrations/5.39.0/002/ddb/FileManager_5_39_0_002.ts b/packages/migrations/src/migrations/5.39.0/002/ddb/FileManager_5_39_0_002.ts deleted file mode 100644 index be28032d93b..00000000000 --- a/packages/migrations/src/migrations/5.39.0/002/ddb/FileManager_5_39_0_002.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { executeWithRetry } from "@webiny/utils"; -import { PrimitiveValue } from "@webiny/api-elasticsearch/types"; -import { - DataMigration, - DataMigrationContext, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { S3 } from "@webiny/aws-sdk/client-s3"; -import { QueryAllParams } from "@webiny/db-dynamodb"; -import { ddbQueryAllWithCallback, forEachTenantLocale, queryOne } from "~/utils"; -import { createFileEntity, FileEntry } from "../utils/createFileEntity"; -import { FileMetadata } from "../utils/FileMetadata"; - -const isGroupMigrationCompleted = ( - status: PrimitiveValue[] | boolean | undefined -): status is boolean => { - return typeof status === "boolean"; -}; - -export class FileManager_5_39_0_002 implements DataMigration { - private readonly fileEntity: ReturnType; - private readonly table: Table; - private readonly bucket: string; - private readonly s3: S3; - - constructor(table: Table) { - this.table = table; - this.fileEntity = createFileEntity(table); - this.s3 = new S3({ region: process.env.AWS_REGION }); - this.bucket = String(process.env.S3_BUCKET); - } - - getId() { - return "5.39.0-002"; - } - - getDescription() { - return "Generate a metadata file for every File Manager file."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - let shouldExecute = false; - - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - const latestFile = await queryOne( - this.getFileQuery(tenantId, localeCode) - ); - - if (!latestFile) { - return false; - } - - const fileMetadata = new FileMetadata(this.s3, this.bucket, latestFile); - - const hasMetadata = await fileMetadata.exists(); - - if (!hasMetadata) { - shouldExecute = true; - return false; - } - - // Continue to the next tenant/locale. - return true; - } - }); - - return shouldExecute; - } - - async execute({ logger, ...context }: DataMigrationContext): Promise { - const migrationStatus = context.checkpoint || {}; - - let batch = 0; - - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - const groupId = `${tenantId}:${localeCode}`; - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - return true; - } - - await ddbQueryAllWithCallback( - this.getFileQuery(tenantId, localeCode, { gt: status || " ", limit: 1000 }), - async files => { - batch++; - - logger.info( - `Processing batch #${batch} in group ${groupId} (${files.length} files).` - ); - - const writers = files.map(file => { - const fileMetadata = new FileMetadata(this.s3, this.bucket, file); - const writeMetadata = () => fileMetadata.create(); - - return executeWithRetry(writeMetadata, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed.` - ); - logger.error(error.message); - } - }); - }); - - await Promise.all(writers); - - // Update checkpoint after every batch - migrationStatus[groupId] = files[files.length - 1]?.id; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - // Mark group as completed. - migrationStatus[groupId] = true; - - // Store checkpoint. - await context.createCheckpoint(migrationStatus); - - // Continue processing. - return true; - } - }); - } - - private getFileQuery( - tenantId: string, - localeCode: string, - options: QueryAllParams["options"] = {} - ) { - return { - entity: this.fileEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#CMS#CME#M#fmFile#L`, - options: { - index: "GSI1", - gt: " ", - ...options - } - }; - } -} - -makeInjectable(FileManager_5_39_0_002, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.39.0/002/ddb/index.ts b/packages/migrations/src/migrations/5.39.0/002/ddb/index.ts deleted file mode 100644 index 9dba853fd0d..00000000000 --- a/packages/migrations/src/migrations/5.39.0/002/ddb/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./FileManager_5_39_0_002"; diff --git a/packages/migrations/src/migrations/5.39.0/002/utils/FileMetadata.ts b/packages/migrations/src/migrations/5.39.0/002/utils/FileMetadata.ts deleted file mode 100644 index 7ac7b077fbc..00000000000 --- a/packages/migrations/src/migrations/5.39.0/002/utils/FileMetadata.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { S3 } from "@webiny/aws-sdk/client-s3"; -import { FileEntry } from "./createFileEntity"; - -export class FileMetadata { - private s3: S3; - private fileEntry: FileEntry; - private readonly bucket: string; - private readonly metadataKey: string; - private attempt = 0; - - constructor(s3: S3, bucket: string, fileEntry: FileEntry) { - this.bucket = bucket; - this.s3 = s3; - this.fileEntry = fileEntry; - - const fileKey = fileEntry.values["text@key"]; - this.metadataKey = `${fileKey}.metadata`; - } - - async create() { - const metadata = { - id: this.fileEntry.entryId, - tenant: this.fileEntry.tenant, - locale: this.fileEntry.locale, - size: this.fileEntry.values["number@size"], - contentType: this.fileEntry.values["text@type"] - }; - - try { - this.attempt++; - console.log(`Attempt #${this.attempt}: create metadata file at ${this.metadataKey}`); - await this.s3.putObject({ - Bucket: this.bucket, - Key: this.metadataKey, - Body: JSON.stringify(metadata, null, 2) - }); - console.log(`Attempt #${this.attempt} succeeded! Created ${this.metadataKey}`); - } catch (error) { - console.log( - `ERROR #${this.attempt} for ${this.metadataKey}`, - JSON.stringify(error, null, 2) - ); - } - } - - async exists() { - try { - await this.s3.headObject({ Bucket: this.bucket, Key: this.metadataKey }); - return true; - } catch (error) { - if (error.name === "NotFound") { - return false; - } - - console.log("ERROR: couldn't check for metadata", JSON.stringify(error, null, 2)); - - return false; - } - } -} diff --git a/packages/migrations/src/migrations/5.39.0/002/utils/createFileEntity.ts b/packages/migrations/src/migrations/5.39.0/002/utils/createFileEntity.ts deleted file mode 100644 index 1be94a29c30..00000000000 --- a/packages/migrations/src/migrations/5.39.0/002/utils/createFileEntity.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -const ddbAttributes: Parameters[2] = { - PK: { - type: "string", - partitionKey: true - }, - SK: { - type: "string", - sortKey: true - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - }, - TYPE: { - type: "string" - }, - __type: { - type: "string" - }, - tenant: { - type: "string" - }, - locale: { - type: "string" - }, - entryId: { - type: "string" - }, - id: { - type: "string" - }, - values: { - type: "map" - } -}; - -export interface FileEntry { - id: string; - entryId: string; - tenant: string; - locale: string; - values: { - "text@key": string; - "number@size": number; - "text@type": string; - }; -} - -export const createFileEntity = (table: Table) => { - return createLegacyEntity(table, "CmsEntries", ddbAttributes); -}; diff --git a/packages/migrations/src/migrations/5.39.0/002/utils/createLocaleEntity.ts b/packages/migrations/src/migrations/5.39.0/002/utils/createLocaleEntity.ts deleted file mode 100644 index 80fa7c4b29a..00000000000 --- a/packages/migrations/src/migrations/5.39.0/002/utils/createLocaleEntity.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -export const createLocaleEntity = (table: Table) => { - return createLegacyEntity(table, "I18NLocale", { - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - code: { - type: "string" - }, - default: { - type: "boolean" - }, - webinyVersion: { - type: "string" - }, - tenant: { - type: "string" - } - }); -}; diff --git a/packages/migrations/src/migrations/5.39.0/002/utils/createTenantEntity.ts b/packages/migrations/src/migrations/5.39.0/002/utils/createTenantEntity.ts deleted file mode 100644 index 5b7f8a7e7ef..00000000000 --- a/packages/migrations/src/migrations/5.39.0/002/utils/createTenantEntity.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { createStandardEntity } from "~/utils"; - -export const createTenantEntity = (table: Table) => { - return createStandardEntity(table, "TenancyTenant"); -}; diff --git a/packages/migrations/src/migrations/5.39.2/001/ddb-es/index.ts b/packages/migrations/src/migrations/5.39.2/001/ddb-es/index.ts deleted file mode 100644 index 3cb23aeebea..00000000000 --- a/packages/migrations/src/migrations/5.39.2/001/ddb-es/index.ts +++ /dev/null @@ -1,373 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - ElasticsearchDynamoTableSymbol, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { - batchReadAll, - BatchReadItem, - batchWriteAll, - BatchWriteItem, - ddbScanWithCallback, - disableElasticsearchIndexing, - esGetIndexName, - fetchOriginalElasticsearchSettings, - restoreOriginalElasticsearchSettings -} from "~/utils"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { Client } from "@elastic/elasticsearch"; -import { executeWithRetry } from "@webiny/utils"; -import { - createDdbEntryEntity, - createDdbEsEntryEntity -} from "~/migrations/5.39.0/001/entities/createEntryEntity"; -import { CmsEntry } from "~/migrations/5.39.0/001/types"; -import { getDecompressedData } from "~/migrations/5.39.0/001/utils/getDecompressedData"; -import { getCompressedData } from "~/migrations/5.39.0/001/utils/getCompressedData"; -import { assignNewMetaFields } from "~/migrations/5.39.0/001/utils/assignNewMetaFields"; -import { fixTypeFieldValue } from "~/migrations/5.39.0/001/utils/fixTypeFieldValue"; -import { isMigratedEntry } from "~/migrations/5.39.0/001/utils/isMigratedEntry"; -import { getOldestRevisionCreatedOn } from "~/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn"; -import { getFirstLastPublishedOnBy } from "~/migrations/5.39.0/001/utils/getFirstLastPublishedOn"; -import { hasValidTypeFieldValue } from "~/migrations/5.39.0/001/utils/hasValidTypeFieldValue"; -import { ScanDbItem } from "@webiny/db-dynamodb"; - -interface LastEvaluatedKey { - PK: string; - SK: string; - GSI1_PK: string; - GSI1_SK: string; -} - -interface IndexSettings { - refresh_interval: `${number}s`; -} - -interface CmsEntriesRootFolderDataMigrationCheckpoint { - lastEvaluatedKey?: LastEvaluatedKey | boolean; - indexes: { - [index: string]: IndexSettings | null; - }; -} - -interface DynamoDbElasticsearchRecord { - PK: string; - SK: string; - data: string; -} - -export class CmsEntriesInitNewMetaFields_5_39_2_001 implements DataMigration { - private readonly elasticsearchClient: Client; - private readonly ddbEntryEntity: ReturnType; - private readonly ddbEsEntryEntity: ReturnType; - - public constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.elasticsearchClient = elasticsearchClient; - this.ddbEntryEntity = createDdbEntryEntity(table); - this.ddbEsEntryEntity = createDdbEsEntryEntity(esTable); - } - - getId() { - return "5.39.2-001"; - } - - getDescription() { - return "Write new revision and entry-level on/by meta fields (second pass)."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - let shouldExecute = false; - - await ddbScanWithCallback>( - { - entity: this.ddbEntryEntity, - options: { - attributes: ["TYPE", "SK"], - filters: [ - { - attr: "_et", - eq: "CmsEntries" - } - ], - limit: 100 - } - }, - async result => { - if (result.error) { - logger.error(result.error); - throw new Error(result.error); - } - - for (const item of result.items) { - if (!hasValidTypeFieldValue(item)) { - shouldExecute = true; - - // Stop further scanning. - return false; - } - } - - // Continue further scanning. - return true; - } - ); - - if (shouldExecute) { - return true; - } - - logger.info(`CMS entries already upgraded. Skipping...`); - return false; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const migrationStatus = - context.checkpoint || ({} as CmsEntriesRootFolderDataMigrationCheckpoint); - - if (migrationStatus.lastEvaluatedKey === true) { - await restoreOriginalElasticsearchSettings({ - indexSettings: migrationStatus.indexes, - logger, - elasticsearchClient: this.elasticsearchClient - }); - logger.info(`Migration completed, no need to start again.`); - return; - } - - let usingKey = ""; - if (migrationStatus?.lastEvaluatedKey) { - usingKey = JSON.stringify(migrationStatus.lastEvaluatedKey); - } - - logger.debug(`Scanning DynamoDB Elasticsearch table... ${usingKey}`); - await ddbScanWithCallback( - { - entity: this.ddbEntryEntity, - options: { - filters: [ - { - attr: "_et", - eq: "CmsEntries" - } - ], - startKey: migrationStatus.lastEvaluatedKey || undefined, - limit: 100 - } - }, - async result => { - logger.debug(`Processing ${result.items.length} items...`); - const ddbItems: BatchWriteItem[] = []; - const ddbEsItems: BatchWriteItem[] = []; - - const ddbEsGetItems: Record = {}; - /** - * Update the DynamoDB part of the records. - */ - for (const item of result.items) { - if (hasValidTypeFieldValue(item) && isMigratedEntry(item)) { - continue; - } - - const index = esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - type: item.modelId, - isHeadlessCmsModel: true - }); - - // Check for the elasticsearch index settings - if (!migrationStatus.indexes || migrationStatus.indexes[index] === undefined) { - // We need to fetch the index settings first - const settings = await fetchOriginalElasticsearchSettings({ - index, - logger, - elasticsearchClient: this.elasticsearchClient - }); - - // ... add it to the checkpoint... - migrationStatus.indexes = { - ...migrationStatus.indexes, - [index]: settings - }; - // and then set not to index - await disableElasticsearchIndexing({ - elasticsearchClient: this.elasticsearchClient, - index, - logger - }); - } - - if (!isMigratedEntry(item)) { - // Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value. - const createdOn = await getOldestRevisionCreatedOn({ - entry: item, - entryEntity: this.ddbEntryEntity - }); - - const firstLastPublishedOnByFields = await getFirstLastPublishedOnBy({ - entry: item, - entryEntity: this.ddbEntryEntity - }); - - assignNewMetaFields(item, { - createdOn, - ...firstLastPublishedOnByFields - }); - } - - // Fixes the value of the `TYPE` field, if it's not valid. - fixTypeFieldValue(item); - - ddbItems.push(this.ddbEntryEntity.putBatch(item)); - - /** - * Prepare the loading of DynamoDB Elasticsearch part of the records. - */ - if (ddbEsGetItems[`${item.entryId}:L`]) { - continue; - } - - ddbEsGetItems[`${item.entryId}:L`] = this.ddbEsEntryEntity.getBatch({ - PK: item.PK, - SK: "L" - }); - - if (item.status === "published" || !!item.locked) { - ddbEsGetItems[`${item.entryId}:P`] = this.ddbEsEntryEntity.getBatch({ - PK: item.PK, - SK: "P" - }); - } - } - - /** - * Get all the records from DynamoDB Elasticsearch. - */ - const esRecords = await batchReadAll({ - table: this.ddbEsEntryEntity.table, - items: Object.values(ddbEsGetItems) - }); - - for (const esRecord of esRecords) { - const decompressedData = await getDecompressedData(esRecord.data); - if (!decompressedData) { - logger.trace( - `Skipping record "${esRecord.PK}" as it is not a valid CMS entry...` - ); - continue; - } - - if (isMigratedEntry(decompressedData)) { - const forceExecute = context.forceExecute; - if (!forceExecute) { - logger.trace( - `Skipping record "${decompressedData.entryId}" as it already has meta fields defined...` - ); - continue; - } - } - - // Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value. - const createdOn = await getOldestRevisionCreatedOn({ - entry: { ...decompressedData, PK: esRecord.PK }, - entryEntity: this.ddbEntryEntity - }); - - const firstLastPublishedOnByFields = await getFirstLastPublishedOnBy({ - entry: { ...decompressedData, PK: esRecord.PK }, - entryEntity: this.ddbEntryEntity - }); - - assignNewMetaFields(decompressedData, { - createdOn, - ...firstLastPublishedOnByFields - }); - - const compressedData = await getCompressedData(decompressedData); - - ddbEsItems.push( - this.ddbEsEntryEntity.putBatch({ - ...esRecord, - data: compressedData - }) - ); - } - - const execute = () => { - return batchWriteAll({ - table: this.ddbEntryEntity.table, - items: ddbItems - }); - }; - - const executeDdbEs = () => { - return batchWriteAll({ - table: this.ddbEsEntryEntity.table, - items: ddbEsItems - }); - }; - - logger.trace("Storing the DynamoDB records..."); - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - }); - logger.trace("...stored."); - - logger.trace("Storing the DynamoDB Elasticsearch records..."); - await executeWithRetry(executeDdbEs, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb + es" attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - }); - logger.trace("...stored."); - - // Update checkpoint after every batch - migrationStatus.lastEvaluatedKey = result.lastEvaluatedKey?.PK - ? (result.lastEvaluatedKey as unknown as LastEvaluatedKey) - : true; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - /** - * This is the end of the migration. - */ - await restoreOriginalElasticsearchSettings({ - indexSettings: migrationStatus.indexes, - logger, - elasticsearchClient: this.elasticsearchClient - }); - - migrationStatus.lastEvaluatedKey = true; - migrationStatus.indexes = {}; - context.createCheckpoint(migrationStatus); - } -} - -makeInjectable(CmsEntriesInitNewMetaFields_5_39_2_001, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.39.6/001/ddb-es/MetaFieldsMigration.ts b/packages/migrations/src/migrations/5.39.6/001/ddb-es/MetaFieldsMigration.ts deleted file mode 100644 index bb6fcf8366b..00000000000 --- a/packages/migrations/src/migrations/5.39.6/001/ddb-es/MetaFieldsMigration.ts +++ /dev/null @@ -1,244 +0,0 @@ -import { Logger } from "@webiny/logger"; -import { SegmentProcessor } from "./SegmentProcessor"; -import { - disableElasticsearchIndexing, - esListIndexes, - fetchOriginalElasticsearchSettings, - restoreOriginalElasticsearchSettings -} from "~/utils"; -import { createElasticsearchClient } from "@webiny/api-elasticsearch"; -import { createWaitUntilHealthy } from "@webiny/api-elasticsearch/utils/waitUntilHealthy"; -import { - DEFAULT_ES_HEALTH_CHECKS_PARAMS, - EsHealthChecksParams, - migrationSkippedDdbRecordExists, - createMigrationSkippedDdbRecord -} from "~/migrations/5.39.6/001/ddb-es/utils"; -import path from "path"; -import os from "os"; -import fs from "fs"; -import glob from "fast-glob"; -import { getDocumentClient } from "@webiny/aws-sdk/client-dynamodb"; - -export interface MetaFieldsMigrationParams { - ddbTable: string; - ddbEsTable: string; - esEndpoint: string; - totalSegments: number; - logger: Logger; - - // Elasticsearch health check options. - esHealthChecks?: Partial; -} - -export class MetaFieldsMigration { - private readonly runId: string; - private readonly ddbTable: string; - private readonly ddbEsTable: string; - private readonly esEndpoint: string; - private readonly totalSegments: number; - private readonly logger: Logger; - - private readonly esHealthChecks: EsHealthChecksParams; - - constructor(params: MetaFieldsMigrationParams) { - this.runId = String(new Date().getTime()); - this.ddbTable = params.ddbTable; - this.ddbEsTable = params.ddbEsTable; - this.esEndpoint = params.esEndpoint; - this.totalSegments = params.totalSegments; - this.logger = params.logger; - this.esHealthChecks = { - ...DEFAULT_ES_HEALTH_CHECKS_PARAMS, - ...params.esHealthChecks - }; - } - - async execute() { - const scanProcessesPromises = []; - - const start = Date.now(); - const getDuration = () => { - return (Date.now() - start) / 1000; - }; - - const documentClient = getDocumentClient(); - - // Was the migration already executed? - const dataMigrationRecordExists = await migrationSkippedDdbRecordExists({ - documentClient, - ddbTable: this.ddbTable - }); - - if (dataMigrationRecordExists) { - const forceExecuteEnvVar = process.env["WEBINY_MIGRATION_FORCE_EXECUTE_5_39_6_001"]; - const forceExecute = forceExecuteEnvVar === "true"; - if (!forceExecute) { - this.logger.info("5.39.6-001 migration has already been executed. Exiting..."); - return; - } - - this.logger.info( - "5.39.6-001 migration has already been executed, but force execution was requested." - ); - } - - this.logger.info("Starting 5.39.6-001 meta fields data migration..."); - this.logger.info( - { - ddbTable: this.ddbTable, - ddbEsTable: this.ddbEsTable, - esEndpoint: this.esEndpoint, - totalSegments: this.totalSegments, - esHealthChecks: this.esHealthChecks - }, - "Received the following parameters:" - ); - - const elasticsearchClient = createElasticsearchClient({ - endpoint: `https://${this.esEndpoint}` - }); - - this.logger.info("Checking Elasticsearch health status..."); - const waitUntilHealthy = createWaitUntilHealthy(elasticsearchClient, this.esHealthChecks); - this.logger.info("Elasticsearch is healthy."); - - await waitUntilHealthy.wait(); - - const indexes = await esListIndexes({ elasticsearchClient, match: "-headless-cms-" }); - const indexSettings: Record = {}; - for (const indexName of indexes) { - this.logger.info(`Disabling indexing for Elasticsearch index "${indexName}"...`); - indexSettings[indexName] = await fetchOriginalElasticsearchSettings({ - elasticsearchClient, - index: indexName, - logger: this.logger - }); - - await disableElasticsearchIndexing({ - elasticsearchClient, - index: indexName, - logger: this.logger - }); - } - - this.logger.info("Proceeding with the migration..."); - - for (let segmentIndex = 0; segmentIndex < this.totalSegments; segmentIndex++) { - const segmentProcessor = new SegmentProcessor({ - segmentIndex, - runId: this.runId, - totalSegments: this.totalSegments, - ddbTable: this.ddbTable, - ddbEsTable: this.ddbEsTable, - esEndpoint: this.esEndpoint, - esHealthChecks: this.esHealthChecks - }); - - scanProcessesPromises.push(segmentProcessor.execute()); - } - - await Promise.all(scanProcessesPromises); - - this.logger.info("Restoring original Elasticsearch settings..."); - await restoreOriginalElasticsearchSettings({ - elasticsearchClient, - indexSettings, - logger: this.logger - }); - - // Insert a record that the migration was executed. - await createMigrationSkippedDdbRecord({ - documentClient, - ddbTable: this.ddbTable - }); - - const duration = getDuration(); - this.logger.info(`5.39.6-001 migration completed in ${duration}s, here are the results...`); - - // Wait for 1 second. - await new Promise(resolve => setTimeout(resolve, 1000)); - - this.logger.info( - { - totalSegments: this.totalSegments, - esHealthChecks: this.esHealthChecks - }, - "The migration was performed with the following following parameters:" - ); - - // Pickup all log files and print a summary of the migration. - const logFilePaths = await glob( - path.join( - os.tmpdir(), - `webiny-5-39-6-meta-fields-data-migration-log-${this.runId}-*.log` - ) - ); - - const migrationStats = { - iterationsCount: 0, - avgIterationDuration: 0, - recordsScanned: 0, - avgRecordsScannedPerIteration: 0, - recordsScannedPerSecond: 0, - recordsUpdated: 0, - recordsSkipped: 0, - esHealthChecks: { - timeSpentWaiting: 0, - checksCount: 0, - unhealthyReasons: {} as Record - } - }; - - for (const logFilePath of logFilePaths) { - const logFileContent = fs.readFileSync(logFilePath, "utf-8"); - const logFile = JSON.parse(logFileContent); - - migrationStats.iterationsCount += logFile.iterationsCount; - migrationStats.recordsScanned += logFile.recordsScanned; - migrationStats.recordsUpdated += logFile.recordsUpdated; - migrationStats.recordsSkipped += logFile.recordsSkipped; - - migrationStats.esHealthChecks.timeSpentWaiting += - logFile.esHealthChecks.timeSpentWaiting; - migrationStats.esHealthChecks.checksCount += logFile.esHealthChecks.checksCount; - - for (const unhealthyReasonType in logFile.esHealthChecks.unhealthyReasons) { - if (!logFile.esHealthChecks.unhealthyReasons.hasOwnProperty(unhealthyReasonType)) { - continue; - } - - const hasCount = - unhealthyReasonType in migrationStats.esHealthChecks.unhealthyReasons; - if (hasCount) { - migrationStats.esHealthChecks.unhealthyReasons[unhealthyReasonType] += - logFile.esHealthChecks.unhealthyReasons[unhealthyReasonType]; - } else { - migrationStats.esHealthChecks.unhealthyReasons[unhealthyReasonType] = - logFile.esHealthChecks.unhealthyReasons[unhealthyReasonType]; - } - } - } - - migrationStats.avgIterationDuration = duration / migrationStats.iterationsCount; - - migrationStats.avgRecordsScannedPerIteration = - migrationStats.recordsScanned / migrationStats.iterationsCount; - - migrationStats.recordsScannedPerSecond = migrationStats.recordsScanned / duration; - - this.logger.info( - migrationStats, - `Migration summary (based on ${logFilePaths.length} generated logs):` - ); - - const logFilePath = path.join( - os.tmpdir(), - `webiny-5-39-6-meta-fields-data-migration-log-${this.runId}.log` - ); - - // Save segment processing stats to a file. - fs.writeFileSync(logFilePath, JSON.stringify(migrationStats, null, 2)); - this.logger.trace(`Migration summary saved to "${logFilePath}".`); - } -} diff --git a/packages/migrations/src/migrations/5.39.6/001/ddb-es/SegmentProcessor.ts b/packages/migrations/src/migrations/5.39.6/001/ddb-es/SegmentProcessor.ts deleted file mode 100644 index 7199d35cf3b..00000000000 --- a/packages/migrations/src/migrations/5.39.6/001/ddb-es/SegmentProcessor.ts +++ /dev/null @@ -1,70 +0,0 @@ -import execa from "execa"; -import path from "path"; -import { EsHealthChecksParams } from "~/migrations/5.39.6/001/ddb-es/utils"; - -interface SegmentProcessorParams { - runId: string; - ddbTable: string; - ddbEsTable: string; - esEndpoint: string; - segmentIndex: number; - totalSegments: number; - esHealthChecks: EsHealthChecksParams; -} - -export class SegmentProcessor { - private readonly runId: string; - private readonly ddbTable: string; - private readonly ddbEsTable: string; - private readonly esEndpoint: string; - private readonly segmentIndex: number; - private readonly totalSegments: number; - private readonly esHealthChecks: EsHealthChecksParams; - - constructor(params: SegmentProcessorParams) { - this.runId = params.runId; - this.ddbTable = params.ddbTable; - this.ddbEsTable = params.ddbEsTable; - this.esEndpoint = params.esEndpoint; - this.segmentIndex = params.segmentIndex; - this.totalSegments = params.totalSegments; - this.esHealthChecks = params.esHealthChecks; - } - - execute() { - return execa( - "node", - [ - path.join(__dirname, "worker"), - "--runId", - this.runId, - "--ddbTable", - this.ddbTable, - "--ddbEsTable", - this.ddbEsTable, - "--esEndpoint", - this.esEndpoint, - "--segmentIndex", - String(this.segmentIndex), - "--totalSegments", - String(this.totalSegments), - - // Elasticsearch health check options. - "--esHealthMinClusterHealthStatus", - this.esHealthChecks.minClusterHealthStatus, - "--esHealthMaxProcessorPercent", - String(this.esHealthChecks.maxProcessorPercent), - "--esHealthMaxRamPercent", - String(this.esHealthChecks.maxRamPercent), - "--esHealthMaxWaitingTime", - String(this.esHealthChecks.maxWaitingTime), - "--esHealthWaitingTimeStep", - String(this.esHealthChecks.waitingTimeStep) - ], - { - stdio: "inherit", - env: process.env - } - ); - } -} diff --git a/packages/migrations/src/migrations/5.39.6/001/ddb-es/bin.ts b/packages/migrations/src/migrations/5.39.6/001/ddb-es/bin.ts deleted file mode 100644 index f70fc2efe4d..00000000000 --- a/packages/migrations/src/migrations/5.39.6/001/ddb-es/bin.ts +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env node -import yargs from "yargs/yargs"; -import { hideBin } from "yargs/helpers"; -import { MetaFieldsMigration } from "./MetaFieldsMigration"; -import { createPinoLogger, getLogLevel } from "@webiny/logger"; -import pinoPretty from "pino-pretty"; -import { - DEFAULT_ES_HEALTH_CHECKS_PARAMS, - EsHealthChecksParams -} from "~/migrations/5.39.6/001/ddb-es/utils"; - -const argv = yargs(hideBin(process.argv)) - .options({ - ddbTable: { type: "string", demandOption: true }, - ddbEsTable: { type: "string", demandOption: true }, - esEndpoint: { type: "string", demandOption: true }, - segments: { type: "number", demandOption: true }, - - // Elasticsearch health check options. - esHealthMinClusterHealthStatus: { - type: "string", - demandOption: false, - default: DEFAULT_ES_HEALTH_CHECKS_PARAMS.minClusterHealthStatus, - description: `Minimum cluster health status to wait for before proceeding with the migration.` - }, - esHealthMaxProcessorPercent: { - type: "number", - demandOption: false, - default: DEFAULT_ES_HEALTH_CHECKS_PARAMS.maxProcessorPercent, - description: `Maximum CPU usage percentage to wait for before proceeding with the migration.` - }, - esHealthMaxRamPercent: { - type: "number", - demandOption: false, - default: DEFAULT_ES_HEALTH_CHECKS_PARAMS.maxRamPercent, - description: `Maximum RAM usage percentage to wait for before proceeding with the migration.` - }, - esHealthMaxWaitingTime: { - type: "number", - demandOption: false, - default: DEFAULT_ES_HEALTH_CHECKS_PARAMS.maxWaitingTime, - description: `Maximum time to wait (seconds) for before proceeding with the migration.` - }, - esHealthWaitingTimeStep: { - type: "number", - demandOption: false, - default: DEFAULT_ES_HEALTH_CHECKS_PARAMS.waitingTimeStep, - description: `Time step (seconds) to wait before checking Elasticsearch health status again.` - } - }) - .parseSync(); - -(async () => { - const logger = createPinoLogger( - { - level: getLogLevel(process.env.MIGRATIONS_LOG_LEVEL, "trace") - }, - pinoPretty({ ignore: "pid,hostname" }) - ); - - const migration = new MetaFieldsMigration({ - totalSegments: argv.segments, - ddbTable: argv.ddbTable, - ddbEsTable: argv.ddbEsTable, - esEndpoint: argv.esEndpoint, - esHealthChecks: { - minClusterHealthStatus: - argv.esHealthMinClusterHealthStatus as EsHealthChecksParams["minClusterHealthStatus"], - maxProcessorPercent: argv.esHealthMaxProcessorPercent, - maxRamPercent: argv.esHealthMaxRamPercent, - maxWaitingTime: argv.esHealthMaxWaitingTime, - waitingTimeStep: argv.esHealthWaitingTimeStep - }, - logger - }); - - await migration.execute(); -})(); diff --git a/packages/migrations/src/migrations/5.39.6/001/ddb-es/createMetaFieldsDataMigrationDeploymentHook.ts b/packages/migrations/src/migrations/5.39.6/001/ddb-es/createMetaFieldsDataMigrationDeploymentHook.ts deleted file mode 100644 index 9d6e22fb61d..00000000000 --- a/packages/migrations/src/migrations/5.39.6/001/ddb-es/createMetaFieldsDataMigrationDeploymentHook.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { CliContext } from "@webiny/cli/types"; -import { getStackOutput } from "@webiny/cli-plugin-deploy-pulumi/utils"; -import { createPinoLogger, getLogLevel } from "@webiny/logger"; -import pinoPretty from "pino-pretty"; -import { - MetaFieldsMigrationParams, - MetaFieldsMigration -} from "~/migrations/5.39.6/001/ddb-es/MetaFieldsMigration"; - -interface CoreOutput { - primaryDynamodbTableName: string; - elasticsearchDynamodbTableName: string; - elasticsearchDomainEndpoint: string; -} - -const REQUIRED_AWS_ENV_VARS = [ - "AWS_REGION", - "AWS_ACCESS_KEY_ID", - "AWS_SECRET_ACCESS_KEY", - "AWS_SESSION_TOKEN" -]; - -const ensureAwsEnvVars = () => { - const missingAwsEnvVars = []; - for (const variable of REQUIRED_AWS_ENV_VARS) { - if (!process.env[variable]) { - missingAwsEnvVars.push(variable); - } - } - - if (missingAwsEnvVars.length > 0) { - throw new Error( - `Cannot run 5.39.6 meta fields data migration. Missing required environment variables: ${missingAwsEnvVars.join( - ", " - )}.` - ); - } -}; - -/** - * Creates an after-deployment hook that triggers the meta fields data migration. - * @param params - */ -export const createMetaFieldsDataMigrationDeploymentHook = ( - params: Pick -) => { - return [ - { - type: "hook-before-deploy", - name: "hook-before-deploy-skip-5-39-6-001-migration", - async hook({ projectApplication }: Record) { - // Only run migrations for `api` app - if (projectApplication.id !== "api") { - return; - } - - process.env.WEBINY_MIGRATION_SKIP_5_39_6_001 = "true"; - } - }, - { - type: "hook-after-deploy", - name: "hook-after-deploy-api-run-5-39-6-meta-fields-data-migrations", - async hook( - { inputs, env, projectApplication }: Record, - context: CliContext - ) { - // Only run migrations for `api` app - if (projectApplication.id !== "api") { - return; - } - - // No need to run migrations if we're doing a preview. - if (inputs.preview) { - return; - } - - ensureAwsEnvVars(); - - const coreOutput = getStackOutput({ folder: "apps/core", env }); - - context.info("Executing 5.39.6-001 meta fields data migration..."); - - const logger = createPinoLogger( - { - level: getLogLevel(process.env.MIGRATIONS_LOG_LEVEL, "trace") - }, - pinoPretty({ ignore: "pid,hostname" }) - ); - - const migration = new MetaFieldsMigration({ - ddbTable: coreOutput.primaryDynamodbTableName, - ddbEsTable: coreOutput.elasticsearchDynamodbTableName, - esEndpoint: coreOutput.elasticsearchDomainEndpoint, - ...params, - logger - }); - - await migration.execute(); - } - } - ]; -}; diff --git a/packages/migrations/src/migrations/5.39.6/001/ddb-es/index.ts b/packages/migrations/src/migrations/5.39.6/001/ddb-es/index.ts deleted file mode 100644 index 392c76a254e..00000000000 --- a/packages/migrations/src/migrations/5.39.6/001/ddb-es/index.ts +++ /dev/null @@ -1,460 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - ElasticsearchClientSymbol, - ElasticsearchDynamoTableSymbol, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { - batchReadAll, - BatchReadItem, - batchWriteAll, - BatchWriteItem, - ddbScanWithCallback, - disableElasticsearchIndexing, - esGetIndexName, - fetchOriginalElasticsearchSettings, - restoreOriginalElasticsearchSettings -} from "~/utils"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { Client } from "@elastic/elasticsearch"; -import { executeWithRetry } from "@webiny/utils"; -import { - createDdbEntryEntity, - createDdbEsEntryEntity -} from "~/migrations/5.39.0/001/entities/createEntryEntity"; -import { CmsEntry } from "~/migrations/5.39.0/001/types"; -import { getDecompressedData } from "~/migrations/5.39.0/001/utils/getDecompressedData"; -import { getCompressedData } from "~/migrations/5.39.0/001/utils/getCompressedData"; -import { assignNewMetaFields } from "~/migrations/5.39.0/001/utils/assignNewMetaFields"; -import { fixTypeFieldValue } from "~/migrations/5.39.0/001/utils/fixTypeFieldValue"; -import { getOldestRevisionCreatedOn } from "~/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn"; -import { getFirstLastPublishedOnBy } from "~/migrations/5.39.0/001/utils/getFirstLastPublishedOn"; -import { hasValidTypeFieldValue } from "~/migrations/5.39.0/001/utils/hasValidTypeFieldValue"; -import { hasAllNonNullableValues } from "~/migrations/5.39.0/001/utils/hasAllNonNullableValues"; -import { isMigratedEntry } from "~/migrations/5.39.0/001/utils/isMigratedEntry"; -import { getFallbackIdentity } from "~/migrations/5.39.0/001/utils/getFallbackIdentity"; -import { ensureAllNonNullableValues } from "~/migrations/5.39.0/001/utils/ensureAllNonNullableValues"; -import { ScanDbItem } from "@webiny/db-dynamodb"; - -interface LastEvaluatedKey { - PK: string; - SK: string; - GSI1_PK: string; - GSI1_SK: string; -} - -interface IndexSettings { - refresh_interval: `${number}s`; -} - -interface CmsEntriesRootFolderDataMigrationCheckpoint { - lastEvaluatedKey?: LastEvaluatedKey | boolean; - indexes: { - [index: string]: IndexSettings | null; - }; -} - -interface DynamoDbElasticsearchRecord { - PK: string; - SK: string; - data: string; -} - -export class CmsEntriesInitNewMetaFields_5_39_6_001 implements DataMigration { - private readonly elasticsearchClient: Client; - private readonly ddbEntryEntity: ReturnType; - private readonly ddbEsEntryEntity: ReturnType; - - public constructor( - table: Table, - esTable: Table, - elasticsearchClient: Client - ) { - this.elasticsearchClient = elasticsearchClient; - this.ddbEntryEntity = createDdbEntryEntity(table); - this.ddbEsEntryEntity = createDdbEsEntryEntity(esTable); - } - - getId() { - return "5.39.6-001"; - } - - getDescription() { - return "Write new revision and entry-level on/by meta fields."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - let shouldExecute = false; - - await ddbScanWithCallback>( - { - entity: this.ddbEntryEntity, - options: { - filters: [ - { - attr: "_et", - eq: "CmsEntries" - } - ], - limit: 100 - } - }, - async result => { - if (result.error) { - logger.error(result.error); - throw new Error(result.error); - } - - for (const item of result.items) { - const isFullyMigrated = - isMigratedEntry(item) && - hasValidTypeFieldValue(item) && - hasAllNonNullableValues(item); - - if (!isFullyMigrated) { - shouldExecute = true; - - // Stop further scanning. - return false; - } - } - - // Continue further scanning. - return true; - } - ); - - if (shouldExecute) { - return true; - } - - logger.info(`CMS entries already upgraded. Skipping...`); - return false; - } - - async execute({ - logger, - ...context - }: DataMigrationContext): Promise { - const migrationStatus = - context.checkpoint || ({} as CmsEntriesRootFolderDataMigrationCheckpoint); - - if (migrationStatus.lastEvaluatedKey === true) { - await restoreOriginalElasticsearchSettings({ - indexSettings: migrationStatus.indexes, - logger, - elasticsearchClient: this.elasticsearchClient - }); - logger.info(`Migration completed, no need to start again.`); - return; - } - - let usingKey = ""; - if (migrationStatus?.lastEvaluatedKey) { - usingKey = JSON.stringify(migrationStatus.lastEvaluatedKey); - } - - logger.trace(`Scanning primary DynamoDB table.`, { - usingKey - }); - - let currentDdbScanIteration = 0; - - await ddbScanWithCallback( - { - entity: this.ddbEntryEntity, - options: { - filters: [ - { - attr: "_et", - eq: "CmsEntries" - } - ], - startKey: migrationStatus.lastEvaluatedKey || undefined, - limit: 100 - } - }, - async result => { - currentDdbScanIteration++; - - logger.trace(`Primary DynamoDB table scan iteration: ${currentDdbScanIteration}.`); - logger.trace(`Analyzing ${result.items.length} record(s)...`); - - const ddbItems: BatchWriteItem[] = []; - const ddbEsItems: BatchWriteItem[] = []; - const ddbEsGetItems: Record = {}; - - const fallbackDateTime = new Date().toISOString(); - - // Update records in primary DynamoDB table. Also do preparations for - // subsequent updates on DDB-ES DynamoDB table, and in Elasticsearch. - for (const item of result.items) { - const isFullyMigrated = - isMigratedEntry(item) && - hasValidTypeFieldValue(item) && - hasAllNonNullableValues(item); - - if (isFullyMigrated) { - continue; - } - - const index = esGetIndexName({ - tenant: item.tenant, - locale: item.locale, - type: item.modelId, - isHeadlessCmsModel: true - }); - - // Check ES index settings. - if (!migrationStatus.indexes || migrationStatus.indexes[index] === undefined) { - // We need to fetch the index settings first - const settings = await fetchOriginalElasticsearchSettings({ - index, - logger, - elasticsearchClient: this.elasticsearchClient - }); - - // ... add it to the checkpoint... - migrationStatus.indexes = { - ...migrationStatus.indexes, - [index]: settings - }; - // and then set not to index - await disableElasticsearchIndexing({ - elasticsearchClient: this.elasticsearchClient, - index, - logger - }); - } - - // 1. Check if the data migration was ever performed. If not, let's perform it. - if (!isMigratedEntry(item)) { - // Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value. - const createdOn = await getOldestRevisionCreatedOn({ - entry: item, - entryEntity: this.ddbEntryEntity - }); - - const firstLastPublishedOnByFields = await getFirstLastPublishedOnBy({ - entry: item, - entryEntity: this.ddbEntryEntity - }); - - assignNewMetaFields(item, { - createdOn, - ...firstLastPublishedOnByFields - }); - } - - // 2. We've noticed some of the records had an invalid `TYPE` field value - // in the database. This step addresses this issue. - if (!hasValidTypeFieldValue(item)) { - // Fixes the value of the `TYPE` field, if it's not valid. - fixTypeFieldValue(item); - } - - // 3. Finally, once both of the steps were performed, ensure that all - // new non-nullable meta fields have a value and nothing is missing. - if (!hasAllNonNullableValues(item)) { - logger.trace( - `Detected an entry with missing values for non-nullable meta fields (${item.modelId}/${item.id}).` - ); - - try { - const fallbackIdentity = await getFallbackIdentity({ - entity: this.ddbEntryEntity, - tenant: item.tenant - }); - - ensureAllNonNullableValues(item, { - dateTime: fallbackDateTime, - identity: fallbackIdentity - }); - - logger.trace( - `Successfully ensured all non-nullable meta fields have values (${item.modelId}/${item.id}). Will be saving into the database soon.` - ); - } catch (e) { - logger.debug( - `Failed to ensure all non-nullable meta fields have values (${item.modelId}/${item.id}): ${e.message}` - ); - } - } - - ddbItems.push(this.ddbEntryEntity.putBatch(item)); - - /** - * Prepare the loading of DynamoDB Elasticsearch part of the records. - */ - if (ddbEsGetItems[`${item.entryId}:L`]) { - continue; - } - - ddbEsGetItems[`${item.entryId}:L`] = this.ddbEsEntryEntity.getBatch({ - PK: item.PK, - SK: "L" - }); - - if (item.status === "published" || !!item.locked) { - ddbEsGetItems[`${item.entryId}:P`] = this.ddbEsEntryEntity.getBatch({ - PK: item.PK, - SK: "P" - }); - } - } - - /** - * Get all the records from DynamoDB Elasticsearch. - */ - const ddbEsRecords = await batchReadAll({ - table: this.ddbEsEntryEntity.table, - items: Object.values(ddbEsGetItems) - }); - - for (const ddbEsRecord of ddbEsRecords) { - const decompressedData = await getDecompressedData(ddbEsRecord.data); - if (!decompressedData) { - logger.trace( - `[DDB-ES Table] Skipping record "${ddbEsRecord.PK}" as it is not a valid CMS entry...` - ); - continue; - } - - // 1. Check if the data migration was ever performed. If not, let's perform it. - if (!isMigratedEntry(decompressedData)) { - // Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value. - const createdOn = await getOldestRevisionCreatedOn({ - entry: { ...decompressedData, PK: ddbEsRecord.PK }, - entryEntity: this.ddbEntryEntity - }); - - const firstLastPublishedOnByFields = await getFirstLastPublishedOnBy({ - entry: { ...decompressedData, PK: ddbEsRecord.PK }, - entryEntity: this.ddbEntryEntity - }); - - assignNewMetaFields(decompressedData, { - createdOn, - ...firstLastPublishedOnByFields - }); - } - - // 2. Ensure new non-nullable meta fields have a value and nothing is missing. - if (!hasAllNonNullableValues(decompressedData)) { - logger.trace( - [ - "[DDB-ES Table] Detected an entry with missing values for non-nullable meta fields", - `(${decompressedData.modelId}/${decompressedData.id}).` - ].join(" ") - ); - - try { - const fallbackIdentity = await getFallbackIdentity({ - entity: this.ddbEntryEntity, - tenant: decompressedData.tenant - }); - - ensureAllNonNullableValues(decompressedData, { - dateTime: fallbackDateTime, - identity: fallbackIdentity - }); - - logger.trace( - [ - "[DDB-ES Table] Successfully ensured all non-nullable meta fields", - `have values (${decompressedData.modelId}/${decompressedData.id}).`, - "Will be saving the changes soon." - ].join(" ") - ); - } catch (e) { - logger.debug( - [ - "[DDB-ES Table] Failed to ensure all non-nullable meta fields have values", - `(${decompressedData.modelId}/${decompressedData.id}): ${e.message}` - ].join(" ") - ); - } - } - - const compressedData = await getCompressedData(decompressedData); - - ddbEsItems.push( - this.ddbEsEntryEntity.putBatch({ - ...ddbEsRecord, - data: compressedData - }) - ); - } - - // Store data in primary DynamoDB table. - const execute = () => { - return batchWriteAll({ - table: this.ddbEntryEntity.table, - items: ddbItems - }); - }; - - logger.trace("Storing records in primary DynamoDB table..."); - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - }); - logger.trace("...stored."); - - // Store data in DDB-ES DynamoDB table. - const executeDdbEs = () => { - return batchWriteAll({ - table: this.ddbEsEntryEntity.table, - items: ddbEsItems - }); - }; - - logger.trace("Storing records in DDB-ES DynamoDB table..."); - await executeWithRetry(executeDdbEs, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll ddb-es" attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - }); - logger.trace("...stored."); - - // Update checkpoint after every batch. - migrationStatus.lastEvaluatedKey = result.lastEvaluatedKey?.PK - ? (result.lastEvaluatedKey as unknown as LastEvaluatedKey) - : true; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - /** - * This is the end of the migration. - */ - await restoreOriginalElasticsearchSettings({ - indexSettings: migrationStatus.indexes, - logger, - elasticsearchClient: this.elasticsearchClient - }); - - migrationStatus.lastEvaluatedKey = true; - migrationStatus.indexes = {}; - context.createCheckpoint(migrationStatus); - } -} - -makeInjectable(CmsEntriesInitNewMetaFields_5_39_6_001, [ - inject(PrimaryDynamoTableSymbol), - inject(ElasticsearchDynamoTableSymbol), - inject(ElasticsearchClientSymbol) -]); diff --git a/packages/migrations/src/migrations/5.39.6/001/ddb-es/utils.ts b/packages/migrations/src/migrations/5.39.6/001/ddb-es/utils.ts deleted file mode 100644 index 87bb8d59a8a..00000000000 --- a/packages/migrations/src/migrations/5.39.6/001/ddb-es/utils.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb"; -import { - ElasticsearchCatClusterHealthStatus, - IWaitUntilHealthyParams -} from "@webiny/api-elasticsearch"; - -export type EsHealthChecksParams = Required; - -export const DEFAULT_ES_HEALTH_CHECKS_PARAMS: EsHealthChecksParams = { - minClusterHealthStatus: ElasticsearchCatClusterHealthStatus.Yellow, - maxProcessorPercent: 90, - maxRamPercent: 100, - maxWaitingTime: 90, - waitingTimeStep: 2 -}; - -export const migrationSkippedDdbRecord = { - PK: "MIGRATION#5.39.6-001", - SK: "A", - data: { - description: "Meta fields data migration (skipped via improved meta fields migration)", - finishedOn: "2024-06-01T12:00:00.000Z", - id: "5.39.6-001", - reason: "skipped", - startedOn: "2024-06-01T12:00:00.000Z" - }, - GSI1_PK: "MIGRATIONS", - GSI1_SK: "5.39.6-001", - TYPE: "migration", - _ct: "2024-06-01T12:00:00.000Z", - _et: "Migration", - _md: "2024-06-01T12:00:00.000Z" -}; - -interface MigrationSkippedDdbRecordParams { - documentClient: DynamoDBDocument; - ddbTable: string; -} - -export const migrationSkippedDdbRecordExists = async ({ - documentClient, - ddbTable -}: MigrationSkippedDdbRecordParams) => { - // Was the migration already executed? - const { Item } = await documentClient.get({ - TableName: ddbTable, - Key: { - PK: "MIGRATION#5.39.6-001", - SK: "A" - } - }); - - return !!Item; -}; - -export const createMigrationSkippedDdbRecord = async ({ - documentClient, - ddbTable -}: MigrationSkippedDdbRecordParams) => { - await documentClient.put({ - TableName: ddbTable, - Item: migrationSkippedDdbRecord - }); -}; diff --git a/packages/migrations/src/migrations/5.39.6/001/ddb-es/worker.ts b/packages/migrations/src/migrations/5.39.6/001/ddb-es/worker.ts deleted file mode 100644 index 408ef414b62..00000000000 --- a/packages/migrations/src/migrations/5.39.6/001/ddb-es/worker.ts +++ /dev/null @@ -1,596 +0,0 @@ -import { executeWithRetry } from "@webiny/utils"; -import { createPinoLogger, getLogLevel } from "@webiny/logger"; -import { createTable } from "@webiny/data-migration"; -import { getDocumentClient } from "@webiny/aws-sdk/client-dynamodb"; -import { createElasticsearchClient } from "@webiny/api-elasticsearch"; -import yargs from "yargs/yargs"; -import { hideBin } from "yargs/helpers"; -import { isMigratedEntry } from "~/migrations/5.39.0/001/utils/isMigratedEntry"; -import { hasValidTypeFieldValue } from "~/migrations/5.39.0/001/utils/hasValidTypeFieldValue"; -import { hasAllNonNullableValues } from "~/migrations/5.39.0/001/utils/hasAllNonNullableValues"; -import { getOldestRevisionCreatedOn } from "~/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn"; -import { getFirstLastPublishedOnBy } from "~/migrations/5.39.0/001/utils/getFirstLastPublishedOn"; -import { assignNewMetaFields } from "~/migrations/5.39.0/001/utils/assignNewMetaFields"; -import { fixTypeFieldValue } from "~/migrations/5.39.0/001/utils/fixTypeFieldValue"; -import { getFallbackIdentity } from "~/migrations/5.39.0/001/utils/getFallbackIdentity"; -import { ensureAllNonNullableValues } from "~/migrations/5.39.0/001/utils/ensureAllNonNullableValues"; -import { getDecompressedData } from "~/migrations/5.39.0/001/utils/getDecompressedData"; -import { getCompressedData } from "~/migrations/5.39.0/001/utils/getCompressedData"; -import { CmsEntry } from "~/migrations/5.39.0/001/types"; -import { - createDdbEntryEntity, - createDdbEsEntryEntity -} from "~/migrations/5.39.0/001/entities/createEntryEntity"; -import { - batchReadAll, - BatchReadItem, - batchWriteAll, - BatchWriteItem, - ddbScanWithCallback -} from "~/utils"; -import { createWaitUntilHealthy } from "@webiny/api-elasticsearch/utils/waitUntilHealthy"; -import pinoPretty from "pino-pretty"; -import { EsHealthChecksParams } from "~/migrations/5.39.6/001/ddb-es/utils"; -import path from "path"; -import os from "os"; -import fs from "fs"; -import { getNonNullableFieldsWithMissingValues } from "~/migrations/5.39.0/001/utils/getNonNullableFieldsWithMissingValues"; - -const argv = yargs(hideBin(process.argv)) - .options({ - runId: { type: "string", demandOption: true }, - ddbTable: { type: "string", demandOption: true }, - ddbEsTable: { type: "string", demandOption: true }, - esEndpoint: { type: "string", demandOption: true }, - segmentIndex: { type: "number", demandOption: true }, - totalSegments: { type: "number", demandOption: true }, - - // Elasticsearch health check options. - esHealthMinClusterHealthStatus: { type: "string", demandOption: true }, - esHealthMaxProcessorPercent: { type: "number", demandOption: true }, - esHealthMaxRamPercent: { type: "number", demandOption: true }, - esHealthMaxWaitingTime: { type: "number", demandOption: true }, - esHealthWaitingTimeStep: { type: "number", demandOption: true } - }) - .parseSync(); - -interface LastEvaluatedKeyObject { - PK: string; - SK: string; - GSI1_PK: string; - GSI1_SK: string; -} - -type LastEvaluatedKey = LastEvaluatedKeyObject | true | null; - -interface MigrationStatus { - lastEvaluatedKey: LastEvaluatedKey; - stats: { - iterationsCount: number; - recordsScanned: number; - recordsUpdated: number; - recordsSkipped: number; - esHealthChecks: { - timeSpentWaiting: number; - checksCount: number; - unhealthyReasons: { - [key: string]: number; - }; - }; - }; -} - -interface DynamoDbElasticsearchRecord { - PK: string; - SK: string; - data: string; -} - -const createInitialStatus = (): MigrationStatus => { - return { - lastEvaluatedKey: null, - stats: { - iterationsCount: 0, - recordsScanned: 0, - recordsUpdated: 0, - recordsSkipped: 0, - esHealthChecks: { - timeSpentWaiting: 0, - checksCount: 0, - unhealthyReasons: {} - } - } - }; -}; - -let BATCH_WRITE_MAX_CHUNK = 20; -if (process.env.WEBINY_MIGRATION_5_39_6_001_BATCH_WRITE_MAX_CHUNK) { - BATCH_WRITE_MAX_CHUNK = parseInt(process.env.WEBINY_MIGRATION_5_39_6_001_BATCH_WRITE_MAX_CHUNK); -} - -(async () => { - const logger = createPinoLogger( - { - level: getLogLevel(process.env.MIGRATIONS_LOG_LEVEL, "trace"), - msgPrefix: `[segment #${argv.segmentIndex}] ` - }, - pinoPretty({ ignore: "pid,hostname" }) - ); - - const documentClient = getDocumentClient(); - const elasticsearchClient = createElasticsearchClient({ - endpoint: `https://${argv.esEndpoint}` - }); - - const primaryTable = createTable({ - name: argv.ddbTable, - documentClient - }); - const dynamoToEsTable = createTable({ - name: argv.ddbEsTable, - documentClient - }); - - const ddbEntryEntity = createDdbEntryEntity(primaryTable); - const ddbEsEntryEntity = createDdbEsEntryEntity(dynamoToEsTable); - - const status = createInitialStatus(); - - const waitUntilHealthy = createWaitUntilHealthy(elasticsearchClient, { - minClusterHealthStatus: - argv.esHealthMinClusterHealthStatus as EsHealthChecksParams["minClusterHealthStatus"], - maxProcessorPercent: argv.esHealthMaxProcessorPercent, - maxRamPercent: argv.esHealthMaxRamPercent, - maxWaitingTime: argv.esHealthMaxWaitingTime, - waitingTimeStep: argv.esHealthWaitingTimeStep - }); - - try { - await ddbScanWithCallback( - { - entity: ddbEntryEntity, - options: { - segment: argv.segmentIndex, - segments: argv.totalSegments, - filters: [ - { - attr: "_et", - eq: "CmsEntries" - } - ], - startKey: status.lastEvaluatedKey || undefined, - limit: 100 - } - }, - async result => { - status.stats.iterationsCount++; - status.stats.recordsScanned += result.items.length; - - if (status.stats.iterationsCount % 5 === 0) { - // We log every 5th iteration. - logger.trace( - `[iteration #${status.stats.iterationsCount}] Reading ${result.items.length} record(s)...` - ); - } - - const ddbItemsToBatchWrite: BatchWriteItem[] = []; - const ddbEsItemsToBatchWrite: BatchWriteItem[] = []; - const ddbEsItemsToBatchRead: Record = {}; - - const fallbackDateTime = new Date().toISOString(); - - // Update records in primary DynamoDB table. Also do preparations for - // subsequent updates on DDB-ES DynamoDB table, and in Elasticsearch. - for (const item of result.items) { - const isFullyMigrated = - isMigratedEntry(item) && - hasValidTypeFieldValue(item) && - hasAllNonNullableValues(item); - - if (isFullyMigrated) { - status.stats.recordsSkipped++; - continue; - } - - // 1. Check if the data migration was ever performed. If not, let's perform it. - if (!isMigratedEntry(item)) { - // Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value. - const createdOn = await getOldestRevisionCreatedOn({ - entry: item, - entryEntity: ddbEntryEntity, - retryOptions: { - onFailedAttempt: error => { - logger.warn( - { error, item }, - `getOldestRevisionCreatedOn attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - } - }); - - const firstLastPublishedOnByFields = await getFirstLastPublishedOnBy({ - entry: item, - entryEntity: ddbEntryEntity, - retryOptions: { - onFailedAttempt: error => { - logger.warn( - { error, item }, - `getFirstLastPublishedOnBy attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - } - }); - - assignNewMetaFields(item, { - createdOn, - ...firstLastPublishedOnByFields - }); - } - - // 2. We've noticed some of the records had an invalid `TYPE` field value - // in the database. This step addresses this issue. - if (!hasValidTypeFieldValue(item)) { - // Fixes the value of the `TYPE` field, if it's not valid. - fixTypeFieldValue(item); - } - - // 3. Finally, once both of the steps were performed, ensure that all - // new non-nullable meta fields have a value and nothing is missing. - if (!hasAllNonNullableValues(item)) { - logger.trace( - getNonNullableFieldsWithMissingValues(item), - `Detected an entry with missing values for non-nullable meta fields (${item.modelId}/${item.id}).` - ); - - try { - const fallbackIdentity = await getFallbackIdentity({ - entity: ddbEntryEntity, - tenant: item.tenant, - retryOptions: { - onFailedAttempt: error => { - logger.warn( - { error, item }, - `getFallbackIdentity attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - } - }); - - ensureAllNonNullableValues(item, { - dateTime: fallbackDateTime, - identity: fallbackIdentity - }); - - logger.trace( - `Successfully ensured all non-nullable meta fields have values (${item.modelId}/${item.id}). Will be saving into the database soon.` - ); - } catch (e) { - logger.debug( - `Failed to ensure all non-nullable meta fields have values (${item.modelId}/${item.id}): ${e.message}` - ); - } - } - - ddbItemsToBatchWrite.push(ddbEntryEntity.putBatch(item)); - - /** - * Prepare the loading of DynamoDB Elasticsearch part of the records. - */ - - const ddbEsLatestRecordKey = `${item.entryId}:L`; - if (ddbEsItemsToBatchRead[ddbEsLatestRecordKey]) { - continue; - } - - ddbEsItemsToBatchRead[ddbEsLatestRecordKey] = ddbEsEntryEntity.getBatch({ - PK: item.PK, - SK: "L" - }); - - const ddbEsPublishedRecordKey = `${item.entryId}:P`; - if (item.status === "published" || !!item.locked) { - ddbEsItemsToBatchRead[ddbEsPublishedRecordKey] = ddbEsEntryEntity.getBatch({ - PK: item.PK, - SK: "P" - }); - } - } - - if (Object.keys(ddbEsItemsToBatchRead).length > 0) { - /** - * Get all the records from DynamoDB Elasticsearch. - */ - const executeBatchReadAll = () => { - return batchReadAll({ - table: ddbEsEntryEntity.table, - items: Object.values(ddbEsItemsToBatchRead) - }); - }; - - const ddbEsRecords = await executeWithRetry(executeBatchReadAll, { - onFailedAttempt: error => { - logger.warn( - { error, items: Object.values(ddbEsItemsToBatchRead) }, - `[DDB-ES Table] Batch (ddbEsItemsToBatchRead) read attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - }); - - for (const ddbEsRecord of ddbEsRecords) { - const decompressedData = await getDecompressedData( - ddbEsRecord.data - ); - if (!decompressedData) { - logger.trace( - `[DDB-ES Table] Skipping record "${ddbEsRecord.PK}" as it is not a valid CMS entry...` - ); - continue; - } - - // 1. Check if the data migration was ever performed. If not, let's perform it. - if (!isMigratedEntry(decompressedData)) { - // Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value. - const createdOn = await getOldestRevisionCreatedOn({ - entry: { ...decompressedData, PK: ddbEsRecord.PK }, - entryEntity: ddbEntryEntity, - retryOptions: { - onFailedAttempt: error => { - logger.warn( - { - error, - item: { ...decompressedData, PK: ddbEsRecord.PK } - }, - `[DDB-ES Table] getOldestRevisionCreatedOn attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - } - }); - - const firstLastPublishedOnByFields = await getFirstLastPublishedOnBy({ - entry: { ...decompressedData, PK: ddbEsRecord.PK }, - entryEntity: ddbEntryEntity, - retryOptions: { - onFailedAttempt: error => { - logger.warn( - { - error, - item: { ...decompressedData, PK: ddbEsRecord.PK } - }, - `[DDB-ES Table] getFirstLastPublishedOnBy attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - } - }); - - assignNewMetaFields(decompressedData, { - createdOn, - ...firstLastPublishedOnByFields - }); - } - - // 2. Ensure new non-nullable meta fields have a value and nothing is missing. - if (!hasAllNonNullableValues(decompressedData)) { - logger.trace( - getNonNullableFieldsWithMissingValues(decompressedData), - [ - `[DDB-ES Table] Detected an entry with missing values for non-nullable meta fields`, - `(${decompressedData.modelId}/${decompressedData.id}).` - ].join(" ") - ); - - try { - const fallbackIdentity = await getFallbackIdentity({ - entity: ddbEntryEntity, - tenant: decompressedData.tenant, - retryOptions: { - onFailedAttempt: error => { - logger.warn( - { error, item: ddbEntryEntity }, - `[DDB-ES Table] getFallbackIdentity attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - } - }); - - ensureAllNonNullableValues(decompressedData, { - dateTime: fallbackDateTime, - identity: fallbackIdentity - }); - - logger.trace( - [ - `[DDB-ES Table] Successfully ensured all non-nullable meta fields`, - `have values (${decompressedData.modelId}/${decompressedData.id}).`, - "Will be saving the changes soon." - ].join(" ") - ); - } catch (e) { - logger.error( - [ - "[DDB-ES Table] Failed to ensure all non-nullable meta fields have values", - `(${decompressedData.modelId}/${decompressedData.id}): ${e.message}` - ].join(" ") - ); - } - } - - const compressedData = await getCompressedData(decompressedData); - - ddbEsItemsToBatchWrite.push( - ddbEsEntryEntity.putBatch({ - ...ddbEsRecord, - data: compressedData - }) - ); - } - } - - if (ddbItemsToBatchWrite.length) { - let ddbWriteError = false; - let ddbEsWriteError = false; - - // Store data in primary DynamoDB table. - const execute = () => { - return batchWriteAll( - { - table: ddbEntryEntity.table, - items: ddbItemsToBatchWrite - }, - BATCH_WRITE_MAX_CHUNK - ); - }; - - logger.trace( - `Storing ${ddbItemsToBatchWrite.length} record(s) in primary DynamoDB table...` - ); - - try { - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.warn( - `Batch write attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - }); - } catch (e) { - ddbWriteError = true; - logger.error( - { - error: e, - ddbItemsToBatchWrite - }, - "After multiple retries, failed to batch-store records in primary DynamoDB table." - ); - } - - if (ddbEsItemsToBatchWrite.length) { - logger.trace( - `Storing ${ddbEsItemsToBatchWrite.length} record(s) in DDB-ES DynamoDB table...` - ); - - try { - const results = await waitUntilHealthy.wait({ - async onUnhealthy(params) { - const shouldWaitReason = params.waitingReason.name; - - logger.warn( - `Cluster is unhealthy (${shouldWaitReason}). Waiting for the cluster to become healthy...`, - params - ); - - if ( - status.stats.esHealthChecks.unhealthyReasons[ - shouldWaitReason - ] - ) { - status.stats.esHealthChecks.unhealthyReasons[ - shouldWaitReason - ]++; - } else { - status.stats.esHealthChecks.unhealthyReasons[ - shouldWaitReason - ] = 1; - } - } - }); - - status.stats.esHealthChecks.checksCount++; - status.stats.esHealthChecks.timeSpentWaiting += results.runningTime; - - // Store data in DDB-ES DynamoDB table. - const executeDdbEs = () => { - return batchWriteAll( - { - table: ddbEsEntryEntity.table, - items: ddbEsItemsToBatchWrite - }, - BATCH_WRITE_MAX_CHUNK - ); - }; - - await executeWithRetry(executeDdbEs, { - onFailedAttempt: error => { - logger.warn( - `[DDB-ES Table] Batch write attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - }); - } catch (e) { - ddbEsWriteError = true; - logger.error( - { - error: e, - ddbEsItemsToBatchWrite - }, - "After multiple retries, failed to batch-store records in DDB-ES DynamoDB table." - ); - } - } - - if (ddbEsWriteError || ddbWriteError) { - logger.warn( - 'Not increasing the "recordsUpdated" count due to write errors.' - ); - } else { - status.stats.recordsUpdated += ddbItemsToBatchWrite.length; - } - } - - // Update checkpoint after every batch. - let lastEvaluatedKey: LastEvaluatedKey = true; - if (result.lastEvaluatedKey) { - lastEvaluatedKey = result.lastEvaluatedKey as unknown as LastEvaluatedKeyObject; - } - - status.lastEvaluatedKey = lastEvaluatedKey; - - if (lastEvaluatedKey === true) { - return false; - } - - // Continue further scanning. - return true; - }, - { - retry: { - onFailedAttempt: error => { - logger.warn( - { - lastEvaluatedKey: status.lastEvaluatedKey, - error - }, - `ddbScanWithCallback attempt #${error.attemptNumber} failed: ${error.message}` - ); - } - } - } - ); - - // Store status in tmp file. - logger.trace({ status }, "Segment processing completed. Saving status to tmp file..."); - const logFilePath = path.join( - os.tmpdir(), - `webiny-5-39-6-meta-fields-data-migration-log-${argv.runId}-${argv.segmentIndex}.log` - ); - - // Save segment processing stats to a file. - fs.writeFileSync(logFilePath, JSON.stringify(status.stats, null, 2)); - - logger.trace(`Segment processing stats saved in ${logFilePath}.`); - } catch (error) { - // Store status in tmp file. - logger.error( - { status, error }, - "Segment processing failed to complete. Saving status to tmp file..." - ); - const logFilePath = path.join( - os.tmpdir(), - `webiny-5-39-6-meta-fields-data-migration-log-${argv.runId}-${argv.segmentIndex}.log` - ); - - // Save segment processing stats to a file. - fs.writeFileSync(logFilePath, JSON.stringify(status.stats, null, 2)); - - logger.trace(`Segment processing stats saved in ${logFilePath}.`); - } -})(); diff --git a/packages/migrations/src/migrations/5.40.0/001/ddb/compression.ts b/packages/migrations/src/migrations/5.40.0/001/ddb/compression.ts deleted file mode 100644 index aa7bd7460f6..00000000000 --- a/packages/migrations/src/migrations/5.40.0/001/ddb/compression.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { compress as gzip, decompress as ungzip } from "@webiny/utils/compression/gzip"; -import { PageBlock } from "./types"; - -const GZIP = "gzip"; -const TO_STORAGE_ENCODING = "base64"; -const FROM_STORAGE_ENCODING = "utf8"; - -const convertToBuffer = (value: string | Buffer) => { - if (typeof value === "string") { - return Buffer.from(value, TO_STORAGE_ENCODING); - } - return value; -}; - -export const compress = async (data: any) => { - const value = await gzip(JSON.stringify(data)); - - return { - compression: GZIP, - value: value.toString(TO_STORAGE_ENCODING) - }; -}; - -export const decompress = async (pageBlock: PageBlock) => { - try { - const buf = await ungzip(convertToBuffer(pageBlock.content.value)); - const value = buf.toString(FROM_STORAGE_ENCODING); - return { - ...pageBlock, - content: JSON.parse(value) - }; - } catch (ex) { - return { ...pageBlock, content: null }; - } -}; diff --git a/packages/migrations/src/migrations/5.40.0/001/ddb/createBlockEntity.ts b/packages/migrations/src/migrations/5.40.0/001/ddb/createBlockEntity.ts deleted file mode 100644 index 7100e1280e3..00000000000 --- a/packages/migrations/src/migrations/5.40.0/001/ddb/createBlockEntity.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Table, AttributeDefinitions } from "@webiny/db-dynamodb/toolbox"; -import { createLegacyEntity } from "~/utils"; - -const attributes: AttributeDefinitions = { - PK: { - partitionKey: true - }, - SK: { - sortKey: true - }, - TYPE: { - type: "string" - }, - id: { - type: "string" - }, - name: { - type: "string" - }, - blockCategory: { - type: "string" - }, - content: { - type: "map" - }, - createdOn: { - type: "string" - }, - createdBy: { - type: "map" - }, - tenant: { - type: "string" - }, - locale: { - type: "string" - }, - GSI1_PK: { - type: "string" - }, - GSI1_SK: { - type: "string" - } -}; - -export const createBlockEntity = (table: Table) => { - return createLegacyEntity(table, "PbPageBlocks", attributes); -}; diff --git a/packages/migrations/src/migrations/5.40.0/001/ddb/index.ts b/packages/migrations/src/migrations/5.40.0/001/ddb/index.ts deleted file mode 100644 index ee0fa247684..00000000000 --- a/packages/migrations/src/migrations/5.40.0/001/ddb/index.ts +++ /dev/null @@ -1,178 +0,0 @@ -import { Table } from "@webiny/db-dynamodb/toolbox"; -import { - DataMigration, - DataMigrationContext, - PrimaryDynamoTableSymbol -} from "@webiny/data-migration"; -import { count, ddbQueryAllWithCallback, forEachTenantLocale } from "~/utils"; -import { inject, makeInjectable } from "@webiny/ioc"; -import { executeWithRetry, generateAlphaNumericId } from "@webiny/utils"; -import { createBlockEntity } from "~/migrations/5.40.0/001/ddb/createBlockEntity"; -import { ContentElement, PageBlock } from "./types"; -import { compress, decompress } from "./compression"; -import { createEntityWriteBatch } from "@webiny/db-dynamodb"; - -const isGroupMigrationCompleted = (status: boolean | undefined): status is boolean => { - return typeof status === "boolean"; -}; - -export class PbUniqueBlockElementIds_5_40_0_001 implements DataMigration { - private readonly table: Table; - private readonly blockEntity: ReturnType; - - constructor(table: Table) { - this.table = table; - this.blockEntity = createBlockEntity(table); - } - - getId() { - return "5.40.0-001"; - } - - getDescription() { - return "Generate unique element IDs in existing PB blocks."; - } - - async shouldExecute({ logger }: DataMigrationContext): Promise { - let shouldExecute = false; - - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - // We simply need to find out if there are any blocks stored in the system. - const blocksCount = await count({ - entity: this.blockEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#PB#BLOCKS`, - options: { - index: "GSI1" - } - }); - - if (blocksCount > 0) { - shouldExecute = true; - return false; - } - - // Continue to the next locale. - return true; - } - }); - - return shouldExecute; - } - - async execute({ logger, ...context }: DataMigrationContext): Promise { - const migrationStatus = context.checkpoint || {}; - - let batch = 0; - - await forEachTenantLocale({ - table: this.table, - logger, - callback: async ({ tenantId, localeCode }) => { - const groupId = `${tenantId}:${localeCode}`; - const status = migrationStatus[groupId]; - - if (isGroupMigrationCompleted(status)) { - return true; - } - - await ddbQueryAllWithCallback( - { - entity: this.blockEntity, - partitionKey: `T#${tenantId}#L#${localeCode}#PB#BLOCKS`, - options: { - index: "GSI1", - gt: status || " " - } - }, - async blocks => { - batch++; - - logger.info( - `Processing batch #${batch} in group ${groupId} (${blocks.length} blocks).` - ); - - const entityBatch = createEntityWriteBatch({ - entity: this.blockEntity - }); - - const items = await Promise.all( - blocks.map(async block => { - const newContent = await this.generateElementIds(block); - if (!newContent) { - return null; - } - - const item = { - ...block, - content: newContent - }; - entityBatch.put(item); - return item; - }) - ); - - const execute = async () => { - return await entityBatch.execute(); - }; - - await executeWithRetry(execute, { - onFailedAttempt: error => { - logger.error( - `"batchWriteAll" attempt #${error.attemptNumber} failed.` - ); - console.log(items); - console.log(error); - } - }); - - // Update checkpoint after every batch - migrationStatus[groupId] = blocks[blocks.length - 1]?.id; - - // Check if we should store checkpoint and exit. - if (context.runningOutOfTime()) { - await context.createCheckpointAndExit(migrationStatus); - } else { - await context.createCheckpoint(migrationStatus); - } - } - ); - - // Mark group as completed. - migrationStatus[groupId] = true; - - // Store checkpoint. - await context.createCheckpoint(migrationStatus); - - // Continue processing. - return true; - } - }); - } - - private async generateElementIds(block: PageBlock) { - const { content } = await decompress(block); - - // If block content already has an `id`, it means the block was already migrated. - if (content.id) { - return null; - } - - const contentWithIds = this.ensureElementId(content); - return compress(contentWithIds); - } - - private ensureElementId(element: ContentElement): ContentElement { - const id = element.id || element.data.variableId || generateAlphaNumericId(10); - - return { - ...element, - id, - elements: element.elements.map(element => this.ensureElementId(element)) - }; - } -} - -makeInjectable(PbUniqueBlockElementIds_5_40_0_001, [inject(PrimaryDynamoTableSymbol)]); diff --git a/packages/migrations/src/migrations/5.40.0/001/ddb/types.ts b/packages/migrations/src/migrations/5.40.0/001/ddb/types.ts deleted file mode 100644 index e93d73483f4..00000000000 --- a/packages/migrations/src/migrations/5.40.0/001/ddb/types.ts +++ /dev/null @@ -1,22 +0,0 @@ -export interface CreatedBy { - id: string; - displayName: string | null; - type: string; -} - -export interface PageBlock { - id: string; - name: string; - blockCategory: string; - content: any; - createdOn: string; - createdBy: CreatedBy; - tenant: string; - locale: string; -} - -export interface ContentElement { - id: string; - data: Record; - elements: ContentElement[]; -} diff --git a/yarn.lock b/yarn.lock index 8c17275b5c0..8d475f07fb3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15537,7 +15537,6 @@ __metadata: "@webiny/api-headless-cms-ddb-es": "npm:0.0.0" "@webiny/aws-sdk": "npm:0.0.0" "@webiny/cli": "npm:0.0.0" - "@webiny/cli-plugin-deploy-pulumi": "npm:0.0.0" "@webiny/data-migration": "npm:0.0.0" "@webiny/db-dynamodb": "npm:0.0.0" "@webiny/error": "npm:0.0.0" @@ -15548,16 +15547,10 @@ __metadata: "@webiny/project-utils": "npm:0.0.0" "@webiny/utils": "npm:0.0.0" elastic-ts: "npm:^0.12.0" - execa: "npm:^5.1.1" - fast-glob: "npm:^3.2.7" jest-dynalite: "npm:^3.6.1" - jsonpack: "npm:^1.1.5" lodash: "npm:^4.17.21" - pino-pretty: "npm:^9.4.0" - pluralize: "npm:^8.0.0" ttypescript: "npm:^1.5.15" typescript: "npm:4.9.5" - yargs: "npm:^17.7.2" languageName: unknown linkType: soft