@webiny/migrations 5.39.7-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +26 -0
- package/README.md +1 -0
- package/ddb-es.d.ts +18 -0
- package/ddb-es.js +67 -0
- package/ddb-es.js.map +1 -0
- package/ddb.d.ts +18 -0
- package/ddb.js +49 -0
- package/ddb.js.map +1 -0
- package/migrations/5.35.0/001/FileSettingsMigration.d.ts +12 -0
- package/migrations/5.35.0/001/FileSettingsMigration.js +93 -0
- package/migrations/5.35.0/001/FileSettingsMigration.js.map +1 -0
- package/migrations/5.35.0/001/ddb/FileDataMigration.d.ts +14 -0
- package/migrations/5.35.0/001/ddb/FileDataMigration.js +156 -0
- package/migrations/5.35.0/001/ddb/FileDataMigration.js.map +1 -0
- package/migrations/5.35.0/001/ddb/index.d.ts +10 -0
- package/migrations/5.35.0/001/ddb/index.js +50 -0
- package/migrations/5.35.0/001/ddb/index.js.map +1 -0
- package/migrations/5.35.0/001/ddb-es/FileDataMigration.d.ts +17 -0
- package/migrations/5.35.0/001/ddb-es/FileDataMigration.js +172 -0
- package/migrations/5.35.0/001/ddb-es/FileDataMigration.js.map +1 -0
- package/migrations/5.35.0/001/ddb-es/index.d.ts +12 -0
- package/migrations/5.35.0/001/ddb-es/index.js +65 -0
- package/migrations/5.35.0/001/ddb-es/index.js.map +1 -0
- package/migrations/5.35.0/001/entities/createFileEntity.d.ts +92 -0
- package/migrations/5.35.0/001/entities/createFileEntity.js +62 -0
- package/migrations/5.35.0/001/entities/createFileEntity.js.map +1 -0
- package/migrations/5.35.0/001/entities/createLocaleEntity.d.ts +42 -0
- package/migrations/5.35.0/001/entities/createLocaleEntity.js +52 -0
- package/migrations/5.35.0/001/entities/createLocaleEntity.js.map +1 -0
- package/migrations/5.35.0/001/entities/createSettingsEntity.d.ts +90 -0
- package/migrations/5.35.0/001/entities/createSettingsEntity.js +37 -0
- package/migrations/5.35.0/001/entities/createSettingsEntity.js.map +1 -0
- package/migrations/5.35.0/001/entities/createTenantEntity.d.ts +42 -0
- package/migrations/5.35.0/001/entities/createTenantEntity.js +69 -0
- package/migrations/5.35.0/001/entities/createTenantEntity.js.map +1 -0
- package/migrations/5.35.0/001/types.d.ts +19 -0
- package/migrations/5.35.0/001/types.js +7 -0
- package/migrations/5.35.0/001/types.js.map +1 -0
- package/migrations/5.35.0/002/createLocaleEntity.d.ts +42 -0
- package/migrations/5.35.0/002/createLocaleEntity.js +32 -0
- package/migrations/5.35.0/002/createLocaleEntity.js.map +1 -0
- package/migrations/5.35.0/002/createSettingsEntity.d.ts +90 -0
- package/migrations/5.35.0/002/createSettingsEntity.js +61 -0
- package/migrations/5.35.0/002/createSettingsEntity.js.map +1 -0
- package/migrations/5.35.0/002/createTenantEntity.d.ts +42 -0
- package/migrations/5.35.0/002/createTenantEntity.js +46 -0
- package/migrations/5.35.0/002/createTenantEntity.js.map +1 -0
- package/migrations/5.35.0/002/index.d.ts +13 -0
- package/migrations/5.35.0/002/index.js +117 -0
- package/migrations/5.35.0/002/index.js.map +1 -0
- package/migrations/5.35.0/003/createTenantEntity.d.ts +42 -0
- package/migrations/5.35.0/003/createTenantEntity.js +46 -0
- package/migrations/5.35.0/003/createTenantEntity.js.map +1 -0
- package/migrations/5.35.0/003/createUserEntity.d.ts +90 -0
- package/migrations/5.35.0/003/createUserEntity.js +55 -0
- package/migrations/5.35.0/003/createUserEntity.js.map +1 -0
- package/migrations/5.35.0/003/index.d.ts +12 -0
- package/migrations/5.35.0/003/index.js +92 -0
- package/migrations/5.35.0/003/index.js.map +1 -0
- package/migrations/5.35.0/004/createTenantEntity.d.ts +90 -0
- package/migrations/5.35.0/004/createTenantEntity.js +57 -0
- package/migrations/5.35.0/004/createTenantEntity.js.map +1 -0
- package/migrations/5.35.0/004/index.d.ts +11 -0
- package/migrations/5.35.0/004/index.js +80 -0
- package/migrations/5.35.0/004/index.js.map +1 -0
- package/migrations/5.35.0/005/createLocaleEntity.d.ts +42 -0
- package/migrations/5.35.0/005/createLocaleEntity.js +32 -0
- package/migrations/5.35.0/005/createLocaleEntity.js.map +1 -0
- package/migrations/5.35.0/005/createModelEntity.d.ts +42 -0
- package/migrations/5.35.0/005/createModelEntity.js +101 -0
- package/migrations/5.35.0/005/createModelEntity.js.map +1 -0
- package/migrations/5.35.0/005/createTenantEntity.d.ts +48 -0
- package/migrations/5.35.0/005/createTenantEntity.js +13 -0
- package/migrations/5.35.0/005/createTenantEntity.js.map +1 -0
- package/migrations/5.35.0/005/index.d.ts +15 -0
- package/migrations/5.35.0/005/index.js +144 -0
- package/migrations/5.35.0/005/index.js.map +1 -0
- package/migrations/5.35.0/005/types.d.ts +42 -0
- package/migrations/5.35.0/005/types.js +7 -0
- package/migrations/5.35.0/005/types.js.map +1 -0
- package/migrations/5.35.0/006/constants.d.ts +3 -0
- package/migrations/5.35.0/006/constants.js +14 -0
- package/migrations/5.35.0/006/constants.js.map +1 -0
- package/migrations/5.35.0/006/ddb/PageDataMigration.d.ts +17 -0
- package/migrations/5.35.0/006/ddb/PageDataMigration.js +249 -0
- package/migrations/5.35.0/006/ddb/PageDataMigration.js.map +1 -0
- package/migrations/5.35.0/006/ddb/index.d.ts +10 -0
- package/migrations/5.35.0/006/ddb/index.js +49 -0
- package/migrations/5.35.0/006/ddb/index.js.map +1 -0
- package/migrations/5.35.0/006/ddb-es/PageDataMigration.d.ts +22 -0
- package/migrations/5.35.0/006/ddb-es/PageDataMigration.js +413 -0
- package/migrations/5.35.0/006/ddb-es/PageDataMigration.js.map +1 -0
- package/migrations/5.35.0/006/ddb-es/index.d.ts +12 -0
- package/migrations/5.35.0/006/ddb-es/index.js +64 -0
- package/migrations/5.35.0/006/ddb-es/index.js.map +1 -0
- package/migrations/5.35.0/006/entities/createEntryEntity.d.ts +89 -0
- package/migrations/5.35.0/006/entities/createEntryEntity.js +106 -0
- package/migrations/5.35.0/006/entities/createEntryEntity.js.map +1 -0
- package/migrations/5.35.0/006/entities/createLocaleEntity.d.ts +42 -0
- package/migrations/5.35.0/006/entities/createLocaleEntity.js +32 -0
- package/migrations/5.35.0/006/entities/createLocaleEntity.js.map +1 -0
- package/migrations/5.35.0/006/entities/createPageEntity.d.ts +89 -0
- package/migrations/5.35.0/006/entities/createPageEntity.js +113 -0
- package/migrations/5.35.0/006/entities/createPageEntity.js.map +1 -0
- package/migrations/5.35.0/006/entities/createTenantEntity.d.ts +48 -0
- package/migrations/5.35.0/006/entities/createTenantEntity.js +13 -0
- package/migrations/5.35.0/006/entities/createTenantEntity.js.map +1 -0
- package/migrations/5.35.0/006/types.d.ts +91 -0
- package/migrations/5.35.0/006/types.js +7 -0
- package/migrations/5.35.0/006/types.js.map +1 -0
- package/migrations/5.35.0/006/utils/getCompressedData.d.ts +4 -0
- package/migrations/5.35.0/006/utils/getCompressedData.js +19 -0
- package/migrations/5.35.0/006/utils/getCompressedData.js.map +1 -0
- package/migrations/5.35.0/006/utils/getLexicalContentText.d.ts +1 -0
- package/migrations/5.35.0/006/utils/getLexicalContentText.js +29 -0
- package/migrations/5.35.0/006/utils/getLexicalContentText.js.map +1 -0
- package/migrations/5.35.0/006/utils/getSearchableContent.d.ts +6 -0
- package/migrations/5.35.0/006/utils/getSearchableContent.js +45 -0
- package/migrations/5.35.0/006/utils/getSearchableContent.js.map +1 -0
- package/migrations/5.35.0/006/utils/processors/button.d.ts +1 -0
- package/migrations/5.35.0/006/utils/processors/button.js +17 -0
- package/migrations/5.35.0/006/utils/processors/button.js.map +1 -0
- package/migrations/5.35.0/006/utils/processors/image.d.ts +1 -0
- package/migrations/5.35.0/006/utils/processors/image.js +17 -0
- package/migrations/5.35.0/006/utils/processors/image.js.map +1 -0
- package/migrations/5.35.0/006/utils/processors/images.d.ts +1 -0
- package/migrations/5.35.0/006/utils/processors/images.js +18 -0
- package/migrations/5.35.0/006/utils/processors/images.js.map +1 -0
- package/migrations/5.35.0/006/utils/processors/index.d.ts +1 -0
- package/migrations/5.35.0/006/utils/processors/index.js +14 -0
- package/migrations/5.35.0/006/utils/processors/index.js.map +1 -0
- package/migrations/5.35.0/006/utils/processors/paragraph.d.ts +1 -0
- package/migrations/5.35.0/006/utils/processors/paragraph.js +25 -0
- package/migrations/5.35.0/006/utils/processors/paragraph.js.map +1 -0
- package/migrations/5.36.0/001/constants.d.ts +3 -0
- package/migrations/5.36.0/001/constants.js +14 -0
- package/migrations/5.36.0/001/constants.js.map +1 -0
- package/migrations/5.36.0/001/ddb/FileDataMigration.d.ts +17 -0
- package/migrations/5.36.0/001/ddb/FileDataMigration.js +241 -0
- package/migrations/5.36.0/001/ddb/FileDataMigration.js.map +1 -0
- package/migrations/5.36.0/001/ddb/index.d.ts +10 -0
- package/migrations/5.36.0/001/ddb/index.js +49 -0
- package/migrations/5.36.0/001/ddb/index.js.map +1 -0
- package/migrations/5.36.0/001/ddb-es/FileDataMigration.d.ts +20 -0
- package/migrations/5.36.0/001/ddb-es/FileDataMigration.js +405 -0
- package/migrations/5.36.0/001/ddb-es/FileDataMigration.js.map +1 -0
- package/migrations/5.36.0/001/ddb-es/index.d.ts +12 -0
- package/migrations/5.36.0/001/ddb-es/index.js +64 -0
- package/migrations/5.36.0/001/ddb-es/index.js.map +1 -0
- package/migrations/5.36.0/001/entities/createEntryEntity.d.ts +89 -0
- package/migrations/5.36.0/001/entities/createEntryEntity.js +106 -0
- package/migrations/5.36.0/001/entities/createEntryEntity.js.map +1 -0
- package/migrations/5.36.0/001/entities/createFileEntity.d.ts +95 -0
- package/migrations/5.36.0/001/entities/createFileEntity.js +33 -0
- package/migrations/5.36.0/001/entities/createFileEntity.js.map +1 -0
- package/migrations/5.36.0/001/entities/createLocaleEntity.d.ts +42 -0
- package/migrations/5.36.0/001/entities/createLocaleEntity.js +32 -0
- package/migrations/5.36.0/001/entities/createLocaleEntity.js.map +1 -0
- package/migrations/5.36.0/001/entities/createTenantEntity.d.ts +48 -0
- package/migrations/5.36.0/001/entities/createTenantEntity.js +13 -0
- package/migrations/5.36.0/001/entities/createTenantEntity.js.map +1 -0
- package/migrations/5.36.0/001/types.d.ts +67 -0
- package/migrations/5.36.0/001/types.js +7 -0
- package/migrations/5.36.0/001/types.js.map +1 -0
- package/migrations/5.36.0/001/utils/createMimeTag.d.ts +1 -0
- package/migrations/5.36.0/001/utils/createMimeTag.js +10 -0
- package/migrations/5.36.0/001/utils/createMimeTag.js.map +1 -0
- package/migrations/5.36.0/001/utils/getCompressedData.d.ts +4 -0
- package/migrations/5.36.0/001/utils/getCompressedData.js +19 -0
- package/migrations/5.36.0/001/utils/getCompressedData.js.map +1 -0
- package/migrations/5.37.0/001/TenantLinkDataMigration.d.ts +14 -0
- package/migrations/5.37.0/001/TenantLinkDataMigration.js +106 -0
- package/migrations/5.37.0/001/TenantLinkDataMigration.js.map +1 -0
- package/migrations/5.37.0/001/entities/createTenantEntity.d.ts +48 -0
- package/migrations/5.37.0/001/entities/createTenantEntity.js +13 -0
- package/migrations/5.37.0/001/entities/createTenantEntity.js.map +1 -0
- package/migrations/5.37.0/001/entities/createTenantLinkEntity.d.ts +48 -0
- package/migrations/5.37.0/001/entities/createTenantLinkEntity.js +17 -0
- package/migrations/5.37.0/001/entities/createTenantLinkEntity.js.map +1 -0
- package/migrations/5.37.0/001/index.d.ts +10 -0
- package/migrations/5.37.0/001/index.js +49 -0
- package/migrations/5.37.0/001/index.js.map +1 -0
- package/migrations/5.37.0/001/types.d.ts +25 -0
- package/migrations/5.37.0/001/types.js +7 -0
- package/migrations/5.37.0/001/types.js.map +1 -0
- package/migrations/5.37.0/001/utils/isMigratedTenantLink.d.ts +2 -0
- package/migrations/5.37.0/001/utils/isMigratedTenantLink.js +12 -0
- package/migrations/5.37.0/001/utils/isMigratedTenantLink.js.map +1 -0
- package/migrations/5.37.0/002/constants.d.ts +1 -0
- package/migrations/5.37.0/002/constants.js +10 -0
- package/migrations/5.37.0/002/constants.js.map +1 -0
- package/migrations/5.37.0/002/ddb/index.d.ts +22 -0
- package/migrations/5.37.0/002/ddb/index.js +133 -0
- package/migrations/5.37.0/002/ddb/index.js.map +1 -0
- package/migrations/5.37.0/002/ddb-es/index.d.ts +35 -0
- package/migrations/5.37.0/002/ddb-es/index.js +321 -0
- package/migrations/5.37.0/002/ddb-es/index.js.map +1 -0
- package/migrations/5.37.0/002/entities/createEntryEntity.d.ts +89 -0
- package/migrations/5.37.0/002/entities/createEntryEntity.js +109 -0
- package/migrations/5.37.0/002/entities/createEntryEntity.js.map +1 -0
- package/migrations/5.37.0/002/entities/createLocaleEntity.d.ts +42 -0
- package/migrations/5.37.0/002/entities/createLocaleEntity.js +32 -0
- package/migrations/5.37.0/002/entities/createLocaleEntity.js.map +1 -0
- package/migrations/5.37.0/002/entities/createTenantEntity.d.ts +48 -0
- package/migrations/5.37.0/002/entities/createTenantEntity.js +13 -0
- package/migrations/5.37.0/002/entities/createTenantEntity.js.map +1 -0
- package/migrations/5.37.0/002/types.d.ts +53 -0
- package/migrations/5.37.0/002/types.js +7 -0
- package/migrations/5.37.0/002/types.js.map +1 -0
- package/migrations/5.37.0/002/utils/getCompressedData.d.ts +4 -0
- package/migrations/5.37.0/002/utils/getCompressedData.js +19 -0
- package/migrations/5.37.0/002/utils/getCompressedData.js.map +1 -0
- package/migrations/5.37.0/002/utils/getDecompressedData.d.ts +1 -0
- package/migrations/5.37.0/002/utils/getDecompressedData.js +31 -0
- package/migrations/5.37.0/002/utils/getDecompressedData.js.map +1 -0
- package/migrations/5.37.0/003/constants.d.ts +3 -0
- package/migrations/5.37.0/003/constants.js +14 -0
- package/migrations/5.37.0/003/constants.js.map +1 -0
- package/migrations/5.37.0/003/ddb/AcoFolderMigration.d.ts +15 -0
- package/migrations/5.37.0/003/ddb/AcoFolderMigration.js +179 -0
- package/migrations/5.37.0/003/ddb/AcoFolderMigration.js.map +1 -0
- package/migrations/5.37.0/003/ddb/index.d.ts +10 -0
- package/migrations/5.37.0/003/ddb/index.js +49 -0
- package/migrations/5.37.0/003/ddb/index.js.map +1 -0
- package/migrations/5.37.0/003/ddb-es/AcoFolderMigration.d.ts +20 -0
- package/migrations/5.37.0/003/ddb-es/AcoFolderMigration.js +313 -0
- package/migrations/5.37.0/003/ddb-es/AcoFolderMigration.js.map +1 -0
- package/migrations/5.37.0/003/ddb-es/index.d.ts +12 -0
- package/migrations/5.37.0/003/ddb-es/index.js +64 -0
- package/migrations/5.37.0/003/ddb-es/index.js.map +1 -0
- package/migrations/5.37.0/003/ddb-es/latestElasticsearchData.d.ts +4 -0
- package/migrations/5.37.0/003/ddb-es/latestElasticsearchData.js +30 -0
- package/migrations/5.37.0/003/ddb-es/latestElasticsearchData.js.map +1 -0
- package/migrations/5.37.0/003/entities/createEntryEntity.d.ts +89 -0
- package/migrations/5.37.0/003/entities/createEntryEntity.js +109 -0
- package/migrations/5.37.0/003/entities/createEntryEntity.js.map +1 -0
- package/migrations/5.37.0/003/entities/createLocaleEntity.d.ts +42 -0
- package/migrations/5.37.0/003/entities/createLocaleEntity.js +32 -0
- package/migrations/5.37.0/003/entities/createLocaleEntity.js.map +1 -0
- package/migrations/5.37.0/003/entities/createTenantEntity.d.ts +48 -0
- package/migrations/5.37.0/003/entities/createTenantEntity.js +13 -0
- package/migrations/5.37.0/003/entities/createTenantEntity.js.map +1 -0
- package/migrations/5.37.0/003/types.d.ts +46 -0
- package/migrations/5.37.0/003/types.js +7 -0
- package/migrations/5.37.0/003/types.js.map +1 -0
- package/migrations/5.37.0/003/utils/getCompressedData.d.ts +4 -0
- package/migrations/5.37.0/003/utils/getCompressedData.js +19 -0
- package/migrations/5.37.0/003/utils/getCompressedData.js.map +1 -0
- package/migrations/5.37.0/003/utils/getDecompressedData.d.ts +1 -0
- package/migrations/5.37.0/003/utils/getDecompressedData.js +31 -0
- package/migrations/5.37.0/003/utils/getDecompressedData.js.map +1 -0
- package/migrations/5.37.0/004/constants.d.ts +7 -0
- package/migrations/5.37.0/004/constants.js +22 -0
- package/migrations/5.37.0/004/constants.js.map +1 -0
- package/migrations/5.37.0/004/ddb/PageDataMigration.d.ts +17 -0
- package/migrations/5.37.0/004/ddb/PageDataMigration.js +269 -0
- package/migrations/5.37.0/004/ddb/PageDataMigration.js.map +1 -0
- package/migrations/5.37.0/004/ddb/index.d.ts +10 -0
- package/migrations/5.37.0/004/ddb/index.js +49 -0
- package/migrations/5.37.0/004/ddb/index.js.map +1 -0
- package/migrations/5.37.0/004/ddb-es/PageDataMigration.d.ts +22 -0
- package/migrations/5.37.0/004/ddb-es/PageDataMigration.js +364 -0
- package/migrations/5.37.0/004/ddb-es/PageDataMigration.js.map +1 -0
- package/migrations/5.37.0/004/ddb-es/index.d.ts +12 -0
- package/migrations/5.37.0/004/ddb-es/index.js +64 -0
- package/migrations/5.37.0/004/ddb-es/index.js.map +1 -0
- package/migrations/5.37.0/004/entities/createEntryEntity.d.ts +89 -0
- package/migrations/5.37.0/004/entities/createEntryEntity.js +109 -0
- package/migrations/5.37.0/004/entities/createEntryEntity.js.map +1 -0
- package/migrations/5.37.0/004/entities/createLocaleEntity.d.ts +42 -0
- package/migrations/5.37.0/004/entities/createLocaleEntity.js +32 -0
- package/migrations/5.37.0/004/entities/createLocaleEntity.js.map +1 -0
- package/migrations/5.37.0/004/entities/createPageEntity.d.ts +89 -0
- package/migrations/5.37.0/004/entities/createPageEntity.js +113 -0
- package/migrations/5.37.0/004/entities/createPageEntity.js.map +1 -0
- package/migrations/5.37.0/004/entities/createTenantEntity.d.ts +48 -0
- package/migrations/5.37.0/004/entities/createTenantEntity.js +13 -0
- package/migrations/5.37.0/004/entities/createTenantEntity.js.map +1 -0
- package/migrations/5.37.0/004/types.d.ts +149 -0
- package/migrations/5.37.0/004/types.js +7 -0
- package/migrations/5.37.0/004/types.js.map +1 -0
- package/migrations/5.37.0/004/utils/getCompressedData.d.ts +4 -0
- package/migrations/5.37.0/004/utils/getCompressedData.js +19 -0
- package/migrations/5.37.0/004/utils/getCompressedData.js.map +1 -0
- package/migrations/5.37.0/005/constants.d.ts +3 -0
- package/migrations/5.37.0/005/constants.js +14 -0
- package/migrations/5.37.0/005/constants.js.map +1 -0
- package/migrations/5.37.0/005/ddb/index.d.ts +20 -0
- package/migrations/5.37.0/005/ddb/index.js +245 -0
- package/migrations/5.37.0/005/ddb/index.js.map +1 -0
- package/migrations/5.37.0/005/ddb-es/index.d.ts +22 -0
- package/migrations/5.37.0/005/ddb-es/index.js +382 -0
- package/migrations/5.37.0/005/ddb-es/index.js.map +1 -0
- package/migrations/5.37.0/005/entities/createEntryEntity.d.ts +89 -0
- package/migrations/5.37.0/005/entities/createEntryEntity.js +109 -0
- package/migrations/5.37.0/005/entities/createEntryEntity.js.map +1 -0
- package/migrations/5.37.0/005/entities/createFileEntity.d.ts +95 -0
- package/migrations/5.37.0/005/entities/createFileEntity.js +33 -0
- package/migrations/5.37.0/005/entities/createFileEntity.js.map +1 -0
- package/migrations/5.37.0/005/entities/createLocaleEntity.d.ts +42 -0
- package/migrations/5.37.0/005/entities/createLocaleEntity.js +32 -0
- package/migrations/5.37.0/005/entities/createLocaleEntity.js.map +1 -0
- package/migrations/5.37.0/005/entities/createTenantEntity.d.ts +48 -0
- package/migrations/5.37.0/005/entities/createTenantEntity.js +13 -0
- package/migrations/5.37.0/005/entities/createTenantEntity.js.map +1 -0
- package/migrations/5.37.0/005/entities/createTenantLinkEntity.d.ts +48 -0
- package/migrations/5.37.0/005/entities/createTenantLinkEntity.js +17 -0
- package/migrations/5.37.0/005/entities/createTenantLinkEntity.js.map +1 -0
- package/migrations/5.37.0/005/types.d.ts +109 -0
- package/migrations/5.37.0/005/types.js +7 -0
- package/migrations/5.37.0/005/types.js.map +1 -0
- package/migrations/5.38.0/001/ddb/index.d.ts +11 -0
- package/migrations/5.38.0/001/ddb/index.js +116 -0
- package/migrations/5.38.0/001/ddb/index.js.map +1 -0
- package/migrations/5.38.0/001/ddb-es/index.d.ts +13 -0
- package/migrations/5.38.0/001/ddb-es/index.js +211 -0
- package/migrations/5.38.0/001/ddb-es/index.js.map +1 -0
- package/migrations/5.38.0/001/entities/createFormEntity.d.ts +42 -0
- package/migrations/5.38.0/001/entities/createFormEntity.js +92 -0
- package/migrations/5.38.0/001/entities/createFormEntity.js.map +1 -0
- package/migrations/5.38.0/001/types.d.ts +11 -0
- package/migrations/5.38.0/001/types.js +7 -0
- package/migrations/5.38.0/001/types.js.map +1 -0
- package/migrations/5.38.0/002/ddb/index.d.ts +22 -0
- package/migrations/5.38.0/002/ddb/index.js +140 -0
- package/migrations/5.38.0/002/ddb/index.js.map +1 -0
- package/migrations/5.38.0/002/ddb-es/index.d.ts +32 -0
- package/migrations/5.38.0/002/ddb-es/index.js +250 -0
- package/migrations/5.38.0/002/ddb-es/index.js.map +1 -0
- package/migrations/5.38.0/002/entities/createFormEntity.d.ts +42 -0
- package/migrations/5.38.0/002/entities/createFormEntity.js +92 -0
- package/migrations/5.38.0/002/entities/createFormEntity.js.map +1 -0
- package/migrations/5.38.0/002/entities/createFormSubmissionDdbEsEntity.d.ts +48 -0
- package/migrations/5.38.0/002/entities/createFormSubmissionDdbEsEntity.js +29 -0
- package/migrations/5.38.0/002/entities/createFormSubmissionDdbEsEntity.js.map +1 -0
- package/migrations/5.38.0/002/entities/createFormSubmissionEntity.d.ts +42 -0
- package/migrations/5.38.0/002/entities/createFormSubmissionEntity.js +56 -0
- package/migrations/5.38.0/002/entities/createFormSubmissionEntity.js.map +1 -0
- package/migrations/5.38.0/002/types.d.ts +23 -0
- package/migrations/5.38.0/002/types.js +7 -0
- package/migrations/5.38.0/002/types.js.map +1 -0
- package/migrations/5.38.0/003/ddb/compressContent.d.ts +4 -0
- package/migrations/5.38.0/003/ddb/compressContent.js +17 -0
- package/migrations/5.38.0/003/ddb/compressContent.js.map +1 -0
- package/migrations/5.38.0/003/ddb/index.d.ts +12 -0
- package/migrations/5.38.0/003/ddb/index.js +143 -0
- package/migrations/5.38.0/003/ddb/index.js.map +1 -0
- package/migrations/5.38.0/003/entities/createPageBlockEntity.d.ts +83 -0
- package/migrations/5.38.0/003/entities/createPageBlockEntity.js +68 -0
- package/migrations/5.38.0/003/entities/createPageBlockEntity.js.map +1 -0
- package/migrations/5.38.0/003/types.d.ts +8 -0
- package/migrations/5.38.0/003/types.js +7 -0
- package/migrations/5.38.0/003/types.js.map +1 -0
- package/migrations/5.39.0/001/ddb/index.d.ts +20 -0
- package/migrations/5.39.0/001/ddb/index.js +136 -0
- package/migrations/5.39.0/001/ddb/index.js.map +1 -0
- package/migrations/5.39.0/001/ddb-es/index.d.ts +30 -0
- package/migrations/5.39.0/001/ddb-es/index.js +266 -0
- package/migrations/5.39.0/001/ddb-es/index.js.map +1 -0
- package/migrations/5.39.0/001/entities/createEntryEntity.d.ts +89 -0
- package/migrations/5.39.0/001/entities/createEntryEntity.js +164 -0
- package/migrations/5.39.0/001/entities/createEntryEntity.js.map +1 -0
- package/migrations/5.39.0/001/types.d.ts +136 -0
- package/migrations/5.39.0/001/types.js +7 -0
- package/migrations/5.39.0/001/types.js.map +1 -0
- package/migrations/5.39.0/001/utils/assignNewMetaFields.d.ts +11 -0
- package/migrations/5.39.0/001/utils/assignNewMetaFields.js +44 -0
- package/migrations/5.39.0/001/utils/assignNewMetaFields.js.map +1 -0
- package/migrations/5.39.0/001/utils/ensureAllNonNullableValues.d.ts +8 -0
- package/migrations/5.39.0/001/utils/ensureAllNonNullableValues.js +38 -0
- package/migrations/5.39.0/001/utils/ensureAllNonNullableValues.js.map +1 -0
- package/migrations/5.39.0/001/utils/fixTypeFieldValue.d.ts +3 -0
- package/migrations/5.39.0/001/utils/fixTypeFieldValue.js +33 -0
- package/migrations/5.39.0/001/utils/fixTypeFieldValue.js.map +1 -0
- package/migrations/5.39.0/001/utils/getCompressedData.d.ts +4 -0
- package/migrations/5.39.0/001/utils/getCompressedData.js +19 -0
- package/migrations/5.39.0/001/utils/getCompressedData.js.map +1 -0
- package/migrations/5.39.0/001/utils/getDecompressedData.d.ts +1 -0
- package/migrations/5.39.0/001/utils/getDecompressedData.js +31 -0
- package/migrations/5.39.0/001/utils/getDecompressedData.js.map +1 -0
- package/migrations/5.39.0/001/utils/getFallbackIdentity.d.ts +8 -0
- package/migrations/5.39.0/001/utils/getFallbackIdentity.js +44 -0
- package/migrations/5.39.0/001/utils/getFallbackIdentity.js.map +1 -0
- package/migrations/5.39.0/001/utils/getFirstLastPublishedOn.d.ts +11 -0
- package/migrations/5.39.0/001/utils/getFirstLastPublishedOn.js +40 -0
- package/migrations/5.39.0/001/utils/getFirstLastPublishedOn.js.map +1 -0
- package/migrations/5.39.0/001/utils/getNonNullableFieldsWithMissingValues.d.ts +2 -0
- package/migrations/5.39.0/001/utils/getNonNullableFieldsWithMissingValues.js +22 -0
- package/migrations/5.39.0/001/utils/getNonNullableFieldsWithMissingValues.js.map +1 -0
- package/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn.d.ts +11 -0
- package/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn.js +33 -0
- package/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn.js.map +1 -0
- package/migrations/5.39.0/001/utils/hasAllNonNullableValues.d.ts +2 -0
- package/migrations/5.39.0/001/utils/hasAllNonNullableValues.js +21 -0
- package/migrations/5.39.0/001/utils/hasAllNonNullableValues.js.map +1 -0
- package/migrations/5.39.0/001/utils/hasValidTypeFieldValue.d.ts +4 -0
- package/migrations/5.39.0/001/utils/hasValidTypeFieldValue.js +21 -0
- package/migrations/5.39.0/001/utils/hasValidTypeFieldValue.js.map +1 -0
- package/migrations/5.39.0/001/utils/isMigratedEntry.d.ts +2 -0
- package/migrations/5.39.0/001/utils/isMigratedEntry.js +12 -0
- package/migrations/5.39.0/001/utils/isMigratedEntry.js.map +1 -0
- package/migrations/5.39.0/002/ddb/FileManager_5_39_0_002.d.ts +14 -0
- package/migrations/5.39.0/002/ddb/FileManager_5_39_0_002.js +133 -0
- package/migrations/5.39.0/002/ddb/FileManager_5_39_0_002.js.map +1 -0
- package/migrations/5.39.0/002/ddb/index.d.ts +1 -0
- package/migrations/5.39.0/002/ddb/index.js +18 -0
- package/migrations/5.39.0/002/ddb/index.js.map +1 -0
- package/migrations/5.39.0/002/ddb-es/FileManager_5_39_0_002.d.ts +15 -0
- package/migrations/5.39.0/002/ddb-es/FileManager_5_39_0_002.js +190 -0
- package/migrations/5.39.0/002/ddb-es/FileManager_5_39_0_002.js.map +1 -0
- package/migrations/5.39.0/002/ddb-es/index.d.ts +1 -0
- package/migrations/5.39.0/002/ddb-es/index.js +18 -0
- package/migrations/5.39.0/002/ddb-es/index.js.map +1 -0
- package/migrations/5.39.0/002/utils/FileMetadata.d.ts +12 -0
- package/migrations/5.39.0/002/utils/FileMetadata.js +55 -0
- package/migrations/5.39.0/002/utils/FileMetadata.js.map +1 -0
- package/migrations/5.39.0/002/utils/createFileEntity.d.ts +53 -0
- package/migrations/5.39.0/002/utils/createFileEntity.js +50 -0
- package/migrations/5.39.0/002/utils/createFileEntity.js.map +1 -0
- package/migrations/5.39.0/002/utils/createLocaleEntity.d.ts +42 -0
- package/migrations/5.39.0/002/utils/createLocaleEntity.js +32 -0
- package/migrations/5.39.0/002/utils/createLocaleEntity.js.map +1 -0
- package/migrations/5.39.0/002/utils/createTenantEntity.d.ts +48 -0
- package/migrations/5.39.0/002/utils/createTenantEntity.js +13 -0
- package/migrations/5.39.0/002/utils/createTenantEntity.js.map +1 -0
- package/migrations/5.39.2/001/ddb-es/index.d.ts +30 -0
- package/migrations/5.39.2/001/ddb-es/index.js +276 -0
- package/migrations/5.39.2/001/ddb-es/index.js.map +1 -0
- package/migrations/5.39.6/001/ddb-es/MetaFieldsMigration.d.ts +21 -0
- package/migrations/5.39.6/001/ddb-es/MetaFieldsMigration.js +167 -0
- package/migrations/5.39.6/001/ddb-es/MetaFieldsMigration.js.map +1 -0
- package/migrations/5.39.6/001/ddb-es/SegmentProcessor.d.ts +23 -0
- package/migrations/5.39.6/001/ddb-es/SegmentProcessor.js +31 -0
- package/migrations/5.39.6/001/ddb-es/SegmentProcessor.js.map +1 -0
- package/migrations/5.39.6/001/ddb-es/bin.d.ts +2 -0
- package/migrations/5.39.6/001/ddb-es/bin.js +83 -0
- package/migrations/5.39.6/001/ddb-es/bin.js.map +1 -0
- package/migrations/5.39.6/001/ddb-es/createMetaFieldsDataMigrationDeploymentHook.d.ts +11 -0
- package/migrations/5.39.6/001/ddb-es/createMetaFieldsDataMigrationDeploymentHook.js +83 -0
- package/migrations/5.39.6/001/ddb-es/createMetaFieldsDataMigrationDeploymentHook.js.map +1 -0
- package/migrations/5.39.6/001/ddb-es/index.d.ts +30 -0
- package/migrations/5.39.6/001/ddb-es/index.js +329 -0
- package/migrations/5.39.6/001/ddb-es/index.js.map +1 -0
- package/migrations/5.39.6/001/ddb-es/utils.d.ts +28 -0
- package/migrations/5.39.6/001/ddb-es/utils.js +62 -0
- package/migrations/5.39.6/001/ddb-es/utils.js.map +1 -0
- package/migrations/5.39.6/001/ddb-es/worker.d.ts +1 -0
- package/migrations/5.39.6/001/ddb-es/worker.js +352 -0
- package/migrations/5.39.6/001/ddb-es/worker.js.map +1 -0
- package/package.json +45 -0
- package/utils/createEntity.d.ts +89 -0
- package/utils/createEntity.js +67 -0
- package/utils/createEntity.js.map +1 -0
- package/utils/createLocaleEntity.d.ts +42 -0
- package/utils/createLocaleEntity.js +32 -0
- package/utils/createLocaleEntity.js.map +1 -0
- package/utils/createTenantEntity.d.ts +48 -0
- package/utils/createTenantEntity.js +13 -0
- package/utils/createTenantEntity.js.map +1 -0
- package/utils/dynamoDb.d.ts +3 -0
- package/utils/dynamoDb.js +62 -0
- package/utils/dynamoDb.js.map +1 -0
- package/utils/elasticsearch/disableEsIndexing.d.ts +9 -0
- package/utils/elasticsearch/disableEsIndexing.js +34 -0
- package/utils/elasticsearch/disableEsIndexing.js.map +1 -0
- package/utils/elasticsearch/esCreateIndex.d.ts +9 -0
- package/utils/elasticsearch/esCreateIndex.js +62 -0
- package/utils/elasticsearch/esCreateIndex.js.map +1 -0
- package/utils/elasticsearch/esFindOne.d.ts +8 -0
- package/utils/elasticsearch/esFindOne.js +27 -0
- package/utils/elasticsearch/esFindOne.js.map +1 -0
- package/utils/elasticsearch/esGetIndexExist.d.ts +9 -0
- package/utils/elasticsearch/esGetIndexExist.js +37 -0
- package/utils/elasticsearch/esGetIndexExist.js.map +1 -0
- package/utils/elasticsearch/esGetIndexName.d.ts +7 -0
- package/utils/elasticsearch/esGetIndexName.js +40 -0
- package/utils/elasticsearch/esGetIndexName.js.map +1 -0
- package/utils/elasticsearch/esGetIndexSettings.d.ts +7 -0
- package/utils/elasticsearch/esGetIndexSettings.js +32 -0
- package/utils/elasticsearch/esGetIndexSettings.js.map +1 -0
- package/utils/elasticsearch/esListIndexes.d.ts +6 -0
- package/utils/elasticsearch/esListIndexes.js +23 -0
- package/utils/elasticsearch/esListIndexes.js.map +1 -0
- package/utils/elasticsearch/esPutIndexSettings.d.ts +7 -0
- package/utils/elasticsearch/esPutIndexSettings.js +30 -0
- package/utils/elasticsearch/esPutIndexSettings.js.map +1 -0
- package/utils/elasticsearch/esQueryAll.d.ts +8 -0
- package/utils/elasticsearch/esQueryAll.js +26 -0
- package/utils/elasticsearch/esQueryAll.js.map +1 -0
- package/utils/elasticsearch/esQueryAllWithCallback.d.ts +10 -0
- package/utils/elasticsearch/esQueryAllWithCallback.js +45 -0
- package/utils/elasticsearch/esQueryAllWithCallback.js.map +1 -0
- package/utils/elasticsearch/fetchOriginalEsSettings.d.ts +13 -0
- package/utils/elasticsearch/fetchOriginalEsSettings.js +36 -0
- package/utils/elasticsearch/fetchOriginalEsSettings.js.map +1 -0
- package/utils/elasticsearch/index.d.ts +12 -0
- package/utils/elasticsearch/index.js +139 -0
- package/utils/elasticsearch/index.js.map +1 -0
- package/utils/elasticsearch/plugins/base.d.ts +3 -0
- package/utils/elasticsearch/plugins/base.js +13 -0
- package/utils/elasticsearch/plugins/base.js.map +1 -0
- package/utils/elasticsearch/plugins/index.d.ts +6 -0
- package/utils/elasticsearch/plugins/index.js +14 -0
- package/utils/elasticsearch/plugins/index.js.map +1 -0
- package/utils/elasticsearch/plugins/japanese.d.ts +4 -0
- package/utils/elasticsearch/plugins/japanese.js +14 -0
- package/utils/elasticsearch/plugins/japanese.js.map +1 -0
- package/utils/elasticsearch/restoreOriginalEsSettings.d.ts +15 -0
- package/utils/elasticsearch/restoreOriginalEsSettings.js +44 -0
- package/utils/elasticsearch/restoreOriginalEsSettings.js.map +1 -0
- package/utils/forEachTenantLocale.d.ts +13 -0
- package/utils/forEachTenantLocale.js +55 -0
- package/utils/forEachTenantLocale.js.map +1 -0
- package/utils/index.d.ts +6 -0
- package/utils/index.js +73 -0
- package/utils/index.js.map +1 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.MetaFieldsMigration = void 0;
|
|
8
|
+
var _SegmentProcessor = require("./SegmentProcessor");
|
|
9
|
+
var _utils = require("../../../../utils");
|
|
10
|
+
var _apiElasticsearch = require("@webiny/api-elasticsearch");
|
|
11
|
+
var _waitUntilHealthy = require("@webiny/api-elasticsearch/utils/waitUntilHealthy");
|
|
12
|
+
var _utils2 = require("./utils");
|
|
13
|
+
var _path = _interopRequireDefault(require("path"));
|
|
14
|
+
var _os = _interopRequireDefault(require("os"));
|
|
15
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
16
|
+
var _fastGlob = _interopRequireDefault(require("fast-glob"));
|
|
17
|
+
var _clientDynamodb = require("@webiny/aws-sdk/client-dynamodb");
|
|
18
|
+
class MetaFieldsMigration {
|
|
19
|
+
constructor(params) {
|
|
20
|
+
this.runId = String(new Date().getTime());
|
|
21
|
+
this.ddbTable = params.ddbTable;
|
|
22
|
+
this.ddbEsTable = params.ddbEsTable;
|
|
23
|
+
this.esEndpoint = params.esEndpoint;
|
|
24
|
+
this.totalSegments = params.totalSegments;
|
|
25
|
+
this.logger = params.logger;
|
|
26
|
+
this.esHealthChecks = {
|
|
27
|
+
..._utils2.DEFAULT_ES_HEALTH_CHECKS_PARAMS,
|
|
28
|
+
...params.esHealthChecks
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
async execute() {
|
|
32
|
+
const scanProcessesPromises = [];
|
|
33
|
+
const start = Date.now();
|
|
34
|
+
const getDuration = () => {
|
|
35
|
+
return (Date.now() - start) / 1000;
|
|
36
|
+
};
|
|
37
|
+
const documentClient = (0, _clientDynamodb.getDocumentClient)();
|
|
38
|
+
|
|
39
|
+
// Was the migration already executed?
|
|
40
|
+
const dataMigrationRecordExists = await (0, _utils2.migrationSkippedDdbRecordExists)({
|
|
41
|
+
documentClient,
|
|
42
|
+
ddbTable: this.ddbTable
|
|
43
|
+
});
|
|
44
|
+
if (dataMigrationRecordExists) {
|
|
45
|
+
this.logger.info("5.39.6-001 migration has already been executed. Exiting...");
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this.logger.info("Starting 5.39.6-001 meta fields data migration...");
|
|
49
|
+
this.logger.info({
|
|
50
|
+
ddbTable: this.ddbTable,
|
|
51
|
+
ddbEsTable: this.ddbEsTable,
|
|
52
|
+
esEndpoint: this.esEndpoint,
|
|
53
|
+
totalSegments: this.totalSegments,
|
|
54
|
+
esHealthChecks: this.esHealthChecks
|
|
55
|
+
}, "Received the following parameters:");
|
|
56
|
+
const elasticsearchClient = (0, _apiElasticsearch.createElasticsearchClient)({
|
|
57
|
+
endpoint: `https://${this.esEndpoint}`
|
|
58
|
+
});
|
|
59
|
+
this.logger.info("Checking Elasticsearch health status...");
|
|
60
|
+
const waitUntilHealthy = (0, _waitUntilHealthy.createWaitUntilHealthy)(elasticsearchClient, this.esHealthChecks);
|
|
61
|
+
this.logger.info("Elasticsearch is healthy.");
|
|
62
|
+
await waitUntilHealthy.wait();
|
|
63
|
+
const indexes = await (0, _utils.esListIndexes)({
|
|
64
|
+
elasticsearchClient,
|
|
65
|
+
match: "-headless-cms-"
|
|
66
|
+
});
|
|
67
|
+
const indexSettings = {};
|
|
68
|
+
for (const indexName of indexes) {
|
|
69
|
+
this.logger.info(`Disabling indexing for Elasticsearch index "${indexName}"...`);
|
|
70
|
+
indexSettings[indexName] = await (0, _utils.fetchOriginalElasticsearchSettings)({
|
|
71
|
+
elasticsearchClient,
|
|
72
|
+
index: indexName,
|
|
73
|
+
logger: this.logger
|
|
74
|
+
});
|
|
75
|
+
await (0, _utils.disableElasticsearchIndexing)({
|
|
76
|
+
elasticsearchClient,
|
|
77
|
+
index: indexName,
|
|
78
|
+
logger: this.logger
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
this.logger.info("Proceeding with the migration...");
|
|
82
|
+
for (let segmentIndex = 0; segmentIndex < this.totalSegments; segmentIndex++) {
|
|
83
|
+
const segmentProcessor = new _SegmentProcessor.SegmentProcessor({
|
|
84
|
+
segmentIndex,
|
|
85
|
+
runId: this.runId,
|
|
86
|
+
totalSegments: this.totalSegments,
|
|
87
|
+
ddbTable: this.ddbTable,
|
|
88
|
+
ddbEsTable: this.ddbEsTable,
|
|
89
|
+
esEndpoint: this.esEndpoint,
|
|
90
|
+
esHealthChecks: this.esHealthChecks
|
|
91
|
+
});
|
|
92
|
+
scanProcessesPromises.push(segmentProcessor.execute());
|
|
93
|
+
}
|
|
94
|
+
await Promise.all(scanProcessesPromises);
|
|
95
|
+
this.logger.info("Restoring original Elasticsearch settings...");
|
|
96
|
+
await (0, _utils.restoreOriginalElasticsearchSettings)({
|
|
97
|
+
elasticsearchClient,
|
|
98
|
+
indexSettings,
|
|
99
|
+
logger: this.logger
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// Insert a record that the migration was executed.
|
|
103
|
+
await (0, _utils2.createMigrationSkippedDdbRecord)({
|
|
104
|
+
documentClient,
|
|
105
|
+
ddbTable: this.ddbTable
|
|
106
|
+
});
|
|
107
|
+
const duration = getDuration();
|
|
108
|
+
this.logger.info(`5.39.6-001 migration completed in ${duration}s, here are the results...`);
|
|
109
|
+
|
|
110
|
+
// Wait for 1 second.
|
|
111
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
112
|
+
this.logger.info({
|
|
113
|
+
totalSegments: this.totalSegments,
|
|
114
|
+
esHealthChecks: this.esHealthChecks
|
|
115
|
+
}, "The migration was performed with the following following parameters:");
|
|
116
|
+
|
|
117
|
+
// Pickup all log files and print a summary of the migration.
|
|
118
|
+
const logFilePaths = await (0, _fastGlob.default)(_path.default.join(_os.default.tmpdir(), `webiny-5-39-6-meta-fields-data-migration-log-${this.runId}-*.log`));
|
|
119
|
+
const migrationStats = {
|
|
120
|
+
iterationsCount: 0,
|
|
121
|
+
avgIterationDuration: 0,
|
|
122
|
+
recordsScanned: 0,
|
|
123
|
+
avgRecordsScannedPerIteration: 0,
|
|
124
|
+
recordsScannedPerSecond: 0,
|
|
125
|
+
recordsUpdated: 0,
|
|
126
|
+
recordsSkipped: 0,
|
|
127
|
+
esHealthChecks: {
|
|
128
|
+
timeSpentWaiting: 0,
|
|
129
|
+
checksCount: 0,
|
|
130
|
+
unhealthyReasons: {}
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
for (const logFilePath of logFilePaths) {
|
|
134
|
+
const logFileContent = _fs.default.readFileSync(logFilePath, "utf-8");
|
|
135
|
+
const logFile = JSON.parse(logFileContent);
|
|
136
|
+
migrationStats.iterationsCount += logFile.iterationsCount;
|
|
137
|
+
migrationStats.recordsScanned += logFile.recordsScanned;
|
|
138
|
+
migrationStats.recordsUpdated += logFile.recordsUpdated;
|
|
139
|
+
migrationStats.recordsSkipped += logFile.recordsSkipped;
|
|
140
|
+
migrationStats.esHealthChecks.timeSpentWaiting += logFile.esHealthChecks.timeSpentWaiting;
|
|
141
|
+
migrationStats.esHealthChecks.checksCount += logFile.esHealthChecks.checksCount;
|
|
142
|
+
for (const unhealthyReasonType in logFile.esHealthChecks.unhealthyReasons) {
|
|
143
|
+
if (!logFile.esHealthChecks.unhealthyReasons.hasOwnProperty(unhealthyReasonType)) {
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
const hasCount = (unhealthyReasonType in migrationStats.esHealthChecks.unhealthyReasons);
|
|
147
|
+
if (hasCount) {
|
|
148
|
+
migrationStats.esHealthChecks.unhealthyReasons[unhealthyReasonType] += logFile.esHealthChecks.unhealthyReasons[unhealthyReasonType];
|
|
149
|
+
} else {
|
|
150
|
+
migrationStats.esHealthChecks.unhealthyReasons[unhealthyReasonType] = logFile.esHealthChecks.unhealthyReasons[unhealthyReasonType];
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
migrationStats.avgIterationDuration = duration / migrationStats.iterationsCount;
|
|
155
|
+
migrationStats.avgRecordsScannedPerIteration = migrationStats.recordsScanned / migrationStats.iterationsCount;
|
|
156
|
+
migrationStats.recordsScannedPerSecond = migrationStats.recordsScanned / duration;
|
|
157
|
+
this.logger.info(migrationStats, `Migration summary (based on ${logFilePaths.length} generated logs):`);
|
|
158
|
+
const logFilePath = _path.default.join(_os.default.tmpdir(), `webiny-5-39-6-meta-fields-data-migration-log-${this.runId}.log`);
|
|
159
|
+
|
|
160
|
+
// Save segment processing stats to a file.
|
|
161
|
+
_fs.default.writeFileSync(logFilePath, JSON.stringify(migrationStats, null, 2));
|
|
162
|
+
this.logger.trace(`Migration summary saved to "${logFilePath}".`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.MetaFieldsMigration = MetaFieldsMigration;
|
|
166
|
+
|
|
167
|
+
//# sourceMappingURL=MetaFieldsMigration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_SegmentProcessor","require","_utils","_apiElasticsearch","_waitUntilHealthy","_utils2","_path","_interopRequireDefault","_os","_fs","_fastGlob","_clientDynamodb","MetaFieldsMigration","constructor","params","runId","String","Date","getTime","ddbTable","ddbEsTable","esEndpoint","totalSegments","logger","esHealthChecks","DEFAULT_ES_HEALTH_CHECKS_PARAMS","execute","scanProcessesPromises","start","now","getDuration","documentClient","getDocumentClient","dataMigrationRecordExists","migrationSkippedDdbRecordExists","info","elasticsearchClient","createElasticsearchClient","endpoint","waitUntilHealthy","createWaitUntilHealthy","wait","indexes","esListIndexes","match","indexSettings","indexName","fetchOriginalElasticsearchSettings","index","disableElasticsearchIndexing","segmentIndex","segmentProcessor","SegmentProcessor","push","Promise","all","restoreOriginalElasticsearchSettings","createMigrationSkippedDdbRecord","duration","resolve","setTimeout","logFilePaths","glob","path","join","os","tmpdir","migrationStats","iterationsCount","avgIterationDuration","recordsScanned","avgRecordsScannedPerIteration","recordsScannedPerSecond","recordsUpdated","recordsSkipped","timeSpentWaiting","checksCount","unhealthyReasons","logFilePath","logFileContent","fs","readFileSync","logFile","JSON","parse","unhealthyReasonType","hasOwnProperty","hasCount","length","writeFileSync","stringify","trace","exports"],"sources":["MetaFieldsMigration.ts"],"sourcesContent":["import { Logger } from \"@webiny/logger\";\nimport { SegmentProcessor } from \"./SegmentProcessor\";\nimport {\n disableElasticsearchIndexing,\n esListIndexes,\n fetchOriginalElasticsearchSettings,\n restoreOriginalElasticsearchSettings\n} from \"~/utils\";\nimport { createElasticsearchClient } from \"@webiny/api-elasticsearch\";\nimport { createWaitUntilHealthy } from \"@webiny/api-elasticsearch/utils/waitUntilHealthy\";\nimport {\n DEFAULT_ES_HEALTH_CHECKS_PARAMS,\n EsHealthChecksParams,\n migrationSkippedDdbRecordExists,\n createMigrationSkippedDdbRecord\n} from \"~/migrations/5.39.6/001/ddb-es/utils\";\nimport path from \"path\";\nimport os from \"os\";\nimport fs from \"fs\";\nimport glob from \"fast-glob\";\nimport { getDocumentClient } from \"@webiny/aws-sdk/client-dynamodb\";\n\nexport interface MetaFieldsMigrationParams {\n ddbTable: string;\n ddbEsTable: string;\n esEndpoint: string;\n totalSegments: number;\n logger: Logger;\n\n // Elasticsearch health check options.\n esHealthChecks?: Partial<EsHealthChecksParams>;\n}\n\nexport class MetaFieldsMigration {\n private readonly runId: string;\n private readonly ddbTable: string;\n private readonly ddbEsTable: string;\n private readonly esEndpoint: string;\n private readonly totalSegments: number;\n private readonly logger: Logger;\n\n private readonly esHealthChecks: EsHealthChecksParams;\n\n constructor(params: MetaFieldsMigrationParams) {\n this.runId = String(new Date().getTime());\n this.ddbTable = params.ddbTable;\n this.ddbEsTable = params.ddbEsTable;\n this.esEndpoint = params.esEndpoint;\n this.totalSegments = params.totalSegments;\n this.logger = params.logger;\n this.esHealthChecks = {\n ...DEFAULT_ES_HEALTH_CHECKS_PARAMS,\n ...params.esHealthChecks\n };\n }\n\n async execute() {\n const scanProcessesPromises = [];\n\n const start = Date.now();\n const getDuration = () => {\n return (Date.now() - start) / 1000;\n };\n\n const documentClient = getDocumentClient();\n\n // Was the migration already executed?\n const dataMigrationRecordExists = await migrationSkippedDdbRecordExists({\n documentClient,\n ddbTable: this.ddbTable\n });\n\n if (dataMigrationRecordExists) {\n this.logger.info(\"5.39.6-001 migration has already been executed. Exiting...\");\n return;\n }\n\n this.logger.info(\"Starting 5.39.6-001 meta fields data migration...\");\n this.logger.info(\n {\n ddbTable: this.ddbTable,\n ddbEsTable: this.ddbEsTable,\n esEndpoint: this.esEndpoint,\n totalSegments: this.totalSegments,\n esHealthChecks: this.esHealthChecks\n },\n \"Received the following parameters:\"\n );\n\n const elasticsearchClient = createElasticsearchClient({\n endpoint: `https://${this.esEndpoint}`\n });\n\n this.logger.info(\"Checking Elasticsearch health status...\");\n const waitUntilHealthy = createWaitUntilHealthy(elasticsearchClient, this.esHealthChecks);\n this.logger.info(\"Elasticsearch is healthy.\");\n\n await waitUntilHealthy.wait();\n\n const indexes = await esListIndexes({ elasticsearchClient, match: \"-headless-cms-\" });\n const indexSettings: Record<string, any> = {};\n for (const indexName of indexes) {\n this.logger.info(`Disabling indexing for Elasticsearch index \"${indexName}\"...`);\n indexSettings[indexName] = await fetchOriginalElasticsearchSettings({\n elasticsearchClient,\n index: indexName,\n logger: this.logger\n });\n\n await disableElasticsearchIndexing({\n elasticsearchClient,\n index: indexName,\n logger: this.logger\n });\n }\n\n this.logger.info(\"Proceeding with the migration...\");\n\n for (let segmentIndex = 0; segmentIndex < this.totalSegments; segmentIndex++) {\n const segmentProcessor = new SegmentProcessor({\n segmentIndex,\n runId: this.runId,\n totalSegments: this.totalSegments,\n ddbTable: this.ddbTable,\n ddbEsTable: this.ddbEsTable,\n esEndpoint: this.esEndpoint,\n esHealthChecks: this.esHealthChecks\n });\n\n scanProcessesPromises.push(segmentProcessor.execute());\n }\n\n await Promise.all(scanProcessesPromises);\n\n this.logger.info(\"Restoring original Elasticsearch settings...\");\n await restoreOriginalElasticsearchSettings({\n elasticsearchClient,\n indexSettings,\n logger: this.logger\n });\n\n // Insert a record that the migration was executed.\n await createMigrationSkippedDdbRecord({\n documentClient,\n ddbTable: this.ddbTable\n });\n\n const duration = getDuration();\n this.logger.info(`5.39.6-001 migration completed in ${duration}s, here are the results...`);\n\n // Wait for 1 second.\n await new Promise(resolve => setTimeout(resolve, 1000));\n\n this.logger.info(\n {\n totalSegments: this.totalSegments,\n esHealthChecks: this.esHealthChecks\n },\n \"The migration was performed with the following following parameters:\"\n );\n\n // Pickup all log files and print a summary of the migration.\n const logFilePaths = await glob(\n path.join(\n os.tmpdir(),\n `webiny-5-39-6-meta-fields-data-migration-log-${this.runId}-*.log`\n )\n );\n\n const migrationStats = {\n iterationsCount: 0,\n avgIterationDuration: 0,\n recordsScanned: 0,\n avgRecordsScannedPerIteration: 0,\n recordsScannedPerSecond: 0,\n recordsUpdated: 0,\n recordsSkipped: 0,\n esHealthChecks: {\n timeSpentWaiting: 0,\n checksCount: 0,\n unhealthyReasons: {} as Record<string, any>\n }\n };\n\n for (const logFilePath of logFilePaths) {\n const logFileContent = fs.readFileSync(logFilePath, \"utf-8\");\n const logFile = JSON.parse(logFileContent);\n\n migrationStats.iterationsCount += logFile.iterationsCount;\n migrationStats.recordsScanned += logFile.recordsScanned;\n migrationStats.recordsUpdated += logFile.recordsUpdated;\n migrationStats.recordsSkipped += logFile.recordsSkipped;\n\n migrationStats.esHealthChecks.timeSpentWaiting +=\n logFile.esHealthChecks.timeSpentWaiting;\n migrationStats.esHealthChecks.checksCount += logFile.esHealthChecks.checksCount;\n\n for (const unhealthyReasonType in logFile.esHealthChecks.unhealthyReasons) {\n if (!logFile.esHealthChecks.unhealthyReasons.hasOwnProperty(unhealthyReasonType)) {\n continue;\n }\n\n const hasCount =\n unhealthyReasonType in migrationStats.esHealthChecks.unhealthyReasons;\n if (hasCount) {\n migrationStats.esHealthChecks.unhealthyReasons[unhealthyReasonType] +=\n logFile.esHealthChecks.unhealthyReasons[unhealthyReasonType];\n } else {\n migrationStats.esHealthChecks.unhealthyReasons[unhealthyReasonType] =\n logFile.esHealthChecks.unhealthyReasons[unhealthyReasonType];\n }\n }\n }\n\n migrationStats.avgIterationDuration = duration / migrationStats.iterationsCount;\n\n migrationStats.avgRecordsScannedPerIteration =\n migrationStats.recordsScanned / migrationStats.iterationsCount;\n\n migrationStats.recordsScannedPerSecond = migrationStats.recordsScanned / duration;\n\n this.logger.info(\n migrationStats,\n `Migration summary (based on ${logFilePaths.length} generated logs):`\n );\n\n const logFilePath = path.join(\n os.tmpdir(),\n `webiny-5-39-6-meta-fields-data-migration-log-${this.runId}.log`\n );\n\n // Save segment processing stats to a file.\n fs.writeFileSync(logFilePath, JSON.stringify(migrationStats, null, 2));\n this.logger.trace(`Migration summary saved to \"${logFilePath}\".`);\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import execa from "execa";
|
|
2
|
+
import { EsHealthChecksParams } from "./utils";
|
|
3
|
+
interface SegmentProcessorParams {
|
|
4
|
+
runId: string;
|
|
5
|
+
ddbTable: string;
|
|
6
|
+
ddbEsTable: string;
|
|
7
|
+
esEndpoint: string;
|
|
8
|
+
segmentIndex: number;
|
|
9
|
+
totalSegments: number;
|
|
10
|
+
esHealthChecks: EsHealthChecksParams;
|
|
11
|
+
}
|
|
12
|
+
export declare class SegmentProcessor {
|
|
13
|
+
private readonly runId;
|
|
14
|
+
private readonly ddbTable;
|
|
15
|
+
private readonly ddbEsTable;
|
|
16
|
+
private readonly esEndpoint;
|
|
17
|
+
private readonly segmentIndex;
|
|
18
|
+
private readonly totalSegments;
|
|
19
|
+
private readonly esHealthChecks;
|
|
20
|
+
constructor(params: SegmentProcessorParams);
|
|
21
|
+
execute(): execa.ExecaChildProcess<string>;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.SegmentProcessor = void 0;
|
|
8
|
+
var _execa = _interopRequireDefault(require("execa"));
|
|
9
|
+
var _path = _interopRequireDefault(require("path"));
|
|
10
|
+
class SegmentProcessor {
|
|
11
|
+
constructor(params) {
|
|
12
|
+
this.runId = params.runId;
|
|
13
|
+
this.ddbTable = params.ddbTable;
|
|
14
|
+
this.ddbEsTable = params.ddbEsTable;
|
|
15
|
+
this.esEndpoint = params.esEndpoint;
|
|
16
|
+
this.segmentIndex = params.segmentIndex;
|
|
17
|
+
this.totalSegments = params.totalSegments;
|
|
18
|
+
this.esHealthChecks = params.esHealthChecks;
|
|
19
|
+
}
|
|
20
|
+
execute() {
|
|
21
|
+
return (0, _execa.default)("node", [_path.default.join(__dirname, "worker"), "--runId", this.runId, "--ddbTable", this.ddbTable, "--ddbEsTable", this.ddbEsTable, "--esEndpoint", this.esEndpoint, "--segmentIndex", String(this.segmentIndex), "--totalSegments", String(this.totalSegments),
|
|
22
|
+
// Elasticsearch health check options.
|
|
23
|
+
"--esHealthMinClusterHealthStatus", this.esHealthChecks.minClusterHealthStatus, "--esHealthMaxProcessorPercent", String(this.esHealthChecks.maxProcessorPercent), "--esHealthMaxRamPercent", String(this.esHealthChecks.maxRamPercent), "--esHealthMaxWaitingTime", String(this.esHealthChecks.maxWaitingTime), "--esHealthWaitingTimeStep", String(this.esHealthChecks.waitingTimeStep)], {
|
|
24
|
+
stdio: "inherit",
|
|
25
|
+
env: process.env
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.SegmentProcessor = SegmentProcessor;
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=SegmentProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_execa","_interopRequireDefault","require","_path","SegmentProcessor","constructor","params","runId","ddbTable","ddbEsTable","esEndpoint","segmentIndex","totalSegments","esHealthChecks","execute","execa","path","join","__dirname","String","minClusterHealthStatus","maxProcessorPercent","maxRamPercent","maxWaitingTime","waitingTimeStep","stdio","env","process","exports"],"sources":["SegmentProcessor.ts"],"sourcesContent":["import execa from \"execa\";\nimport path from \"path\";\nimport { EsHealthChecksParams } from \"~/migrations/5.39.6/001/ddb-es/utils\";\n\ninterface SegmentProcessorParams {\n runId: string;\n ddbTable: string;\n ddbEsTable: string;\n esEndpoint: string;\n segmentIndex: number;\n totalSegments: number;\n esHealthChecks: EsHealthChecksParams;\n}\n\nexport class SegmentProcessor {\n private readonly runId: string;\n private readonly ddbTable: string;\n private readonly ddbEsTable: string;\n private readonly esEndpoint: string;\n private readonly segmentIndex: number;\n private readonly totalSegments: number;\n private readonly esHealthChecks: EsHealthChecksParams;\n\n constructor(params: SegmentProcessorParams) {\n this.runId = params.runId;\n this.ddbTable = params.ddbTable;\n this.ddbEsTable = params.ddbEsTable;\n this.esEndpoint = params.esEndpoint;\n this.segmentIndex = params.segmentIndex;\n this.totalSegments = params.totalSegments;\n this.esHealthChecks = params.esHealthChecks;\n }\n\n execute() {\n return execa(\n \"node\",\n [\n path.join(__dirname, \"worker\"),\n \"--runId\",\n this.runId,\n \"--ddbTable\",\n this.ddbTable,\n \"--ddbEsTable\",\n this.ddbEsTable,\n \"--esEndpoint\",\n this.esEndpoint,\n \"--segmentIndex\",\n String(this.segmentIndex),\n \"--totalSegments\",\n String(this.totalSegments),\n\n // Elasticsearch health check options.\n \"--esHealthMinClusterHealthStatus\",\n this.esHealthChecks.minClusterHealthStatus,\n \"--esHealthMaxProcessorPercent\",\n String(this.esHealthChecks.maxProcessorPercent),\n \"--esHealthMaxRamPercent\",\n String(this.esHealthChecks.maxRamPercent),\n \"--esHealthMaxWaitingTime\",\n String(this.esHealthChecks.maxWaitingTime),\n \"--esHealthWaitingTimeStep\",\n String(this.esHealthChecks.waitingTimeStep)\n ],\n {\n stdio: \"inherit\",\n env: process.env\n }\n );\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AAaO,MAAME,gBAAgB,CAAC;EAS1BC,WAAWA,CAACC,MAA8B,EAAE;IACxC,IAAI,CAACC,KAAK,GAAGD,MAAM,CAACC,KAAK;IACzB,IAAI,CAACC,QAAQ,GAAGF,MAAM,CAACE,QAAQ;IAC/B,IAAI,CAACC,UAAU,GAAGH,MAAM,CAACG,UAAU;IACnC,IAAI,CAACC,UAAU,GAAGJ,MAAM,CAACI,UAAU;IACnC,IAAI,CAACC,YAAY,GAAGL,MAAM,CAACK,YAAY;IACvC,IAAI,CAACC,aAAa,GAAGN,MAAM,CAACM,aAAa;IACzC,IAAI,CAACC,cAAc,GAAGP,MAAM,CAACO,cAAc;EAC/C;EAEAC,OAAOA,CAAA,EAAG;IACN,OAAO,IAAAC,cAAK,EACR,MAAM,EACN,CACIC,aAAI,CAACC,IAAI,CAACC,SAAS,EAAE,QAAQ,CAAC,EAC9B,SAAS,EACT,IAAI,CAACX,KAAK,EACV,YAAY,EACZ,IAAI,CAACC,QAAQ,EACb,cAAc,EACd,IAAI,CAACC,UAAU,EACf,cAAc,EACd,IAAI,CAACC,UAAU,EACf,gBAAgB,EAChBS,MAAM,CAAC,IAAI,CAACR,YAAY,CAAC,EACzB,iBAAiB,EACjBQ,MAAM,CAAC,IAAI,CAACP,aAAa,CAAC;IAE1B;IACA,kCAAkC,EAClC,IAAI,CAACC,cAAc,CAACO,sBAAsB,EAC1C,+BAA+B,EAC/BD,MAAM,CAAC,IAAI,CAACN,cAAc,CAACQ,mBAAmB,CAAC,EAC/C,yBAAyB,EACzBF,MAAM,CAAC,IAAI,CAACN,cAAc,CAACS,aAAa,CAAC,EACzC,0BAA0B,EAC1BH,MAAM,CAAC,IAAI,CAACN,cAAc,CAACU,cAAc,CAAC,EAC1C,2BAA2B,EAC3BJ,MAAM,CAAC,IAAI,CAACN,cAAc,CAACW,eAAe,CAAC,CAC9C,EACD;MACIC,KAAK,EAAE,SAAS;MAChBC,GAAG,EAAEC,OAAO,CAACD;IACjB,CACJ,CAAC;EACL;AACJ;AAACE,OAAA,CAAAxB,gBAAA,GAAAA,gBAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
var _yargs = _interopRequireDefault(require("yargs/yargs"));
|
|
6
|
+
var _helpers = require("yargs/helpers");
|
|
7
|
+
var _MetaFieldsMigration = require("./MetaFieldsMigration");
|
|
8
|
+
var _logger = require("@webiny/logger");
|
|
9
|
+
var _pinoPretty = _interopRequireDefault(require("pino-pretty"));
|
|
10
|
+
var _utils = require("./utils");
|
|
11
|
+
const argv = (0, _yargs.default)((0, _helpers.hideBin)(process.argv)).options({
|
|
12
|
+
ddbTable: {
|
|
13
|
+
type: "string",
|
|
14
|
+
demandOption: true
|
|
15
|
+
},
|
|
16
|
+
ddbEsTable: {
|
|
17
|
+
type: "string",
|
|
18
|
+
demandOption: true
|
|
19
|
+
},
|
|
20
|
+
esEndpoint: {
|
|
21
|
+
type: "string",
|
|
22
|
+
demandOption: true
|
|
23
|
+
},
|
|
24
|
+
segments: {
|
|
25
|
+
type: "number",
|
|
26
|
+
demandOption: true
|
|
27
|
+
},
|
|
28
|
+
// Elasticsearch health check options.
|
|
29
|
+
esHealthMinClusterHealthStatus: {
|
|
30
|
+
type: "string",
|
|
31
|
+
demandOption: false,
|
|
32
|
+
default: _utils.DEFAULT_ES_HEALTH_CHECKS_PARAMS.minClusterHealthStatus,
|
|
33
|
+
description: `Minimum cluster health status to wait for before proceeding with the migration.`
|
|
34
|
+
},
|
|
35
|
+
esHealthMaxProcessorPercent: {
|
|
36
|
+
type: "number",
|
|
37
|
+
demandOption: false,
|
|
38
|
+
default: _utils.DEFAULT_ES_HEALTH_CHECKS_PARAMS.maxProcessorPercent,
|
|
39
|
+
description: `Maximum CPU usage percentage to wait for before proceeding with the migration.`
|
|
40
|
+
},
|
|
41
|
+
esHealthMaxRamPercent: {
|
|
42
|
+
type: "number",
|
|
43
|
+
demandOption: false,
|
|
44
|
+
default: _utils.DEFAULT_ES_HEALTH_CHECKS_PARAMS.maxRamPercent,
|
|
45
|
+
description: `Maximum RAM usage percentage to wait for before proceeding with the migration.`
|
|
46
|
+
},
|
|
47
|
+
esHealthMaxWaitingTime: {
|
|
48
|
+
type: "number",
|
|
49
|
+
demandOption: false,
|
|
50
|
+
default: _utils.DEFAULT_ES_HEALTH_CHECKS_PARAMS.maxWaitingTime,
|
|
51
|
+
description: `Maximum time to wait (seconds) for before proceeding with the migration.`
|
|
52
|
+
},
|
|
53
|
+
esHealthWaitingTimeStep: {
|
|
54
|
+
type: "number",
|
|
55
|
+
demandOption: false,
|
|
56
|
+
default: _utils.DEFAULT_ES_HEALTH_CHECKS_PARAMS.waitingTimeStep,
|
|
57
|
+
description: `Time step (seconds) to wait before checking Elasticsearch health status again.`
|
|
58
|
+
}
|
|
59
|
+
}).parseSync();
|
|
60
|
+
(async () => {
|
|
61
|
+
const logger = (0, _logger.createPinoLogger)({
|
|
62
|
+
level: (0, _logger.getLogLevel)(process.env.MIGRATIONS_LOG_LEVEL, "trace")
|
|
63
|
+
}, (0, _pinoPretty.default)({
|
|
64
|
+
ignore: "pid,hostname"
|
|
65
|
+
}));
|
|
66
|
+
const migration = new _MetaFieldsMigration.MetaFieldsMigration({
|
|
67
|
+
totalSegments: argv.segments,
|
|
68
|
+
ddbTable: argv.ddbTable,
|
|
69
|
+
ddbEsTable: argv.ddbEsTable,
|
|
70
|
+
esEndpoint: argv.esEndpoint,
|
|
71
|
+
esHealthChecks: {
|
|
72
|
+
minClusterHealthStatus: argv.esHealthMinClusterHealthStatus,
|
|
73
|
+
maxProcessorPercent: argv.esHealthMaxProcessorPercent,
|
|
74
|
+
maxRamPercent: argv.esHealthMaxRamPercent,
|
|
75
|
+
maxWaitingTime: argv.esHealthMaxWaitingTime,
|
|
76
|
+
waitingTimeStep: argv.esHealthWaitingTimeStep
|
|
77
|
+
},
|
|
78
|
+
logger
|
|
79
|
+
});
|
|
80
|
+
await migration.execute();
|
|
81
|
+
})();
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=bin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_interopRequireDefault","require","default","_yargs","_helpers","_MetaFieldsMigration","_logger","_pinoPretty","_utils","argv","yargs","hideBin","process","options","ddbTable","type","demandOption","ddbEsTable","esEndpoint","segments","esHealthMinClusterHealthStatus","DEFAULT_ES_HEALTH_CHECKS_PARAMS","minClusterHealthStatus","description","esHealthMaxProcessorPercent","maxProcessorPercent","esHealthMaxRamPercent","maxRamPercent","esHealthMaxWaitingTime","maxWaitingTime","esHealthWaitingTimeStep","waitingTimeStep","parseSync","logger","createPinoLogger","level","getLogLevel","env","MIGRATIONS_LOG_LEVEL","pinoPretty","ignore","migration","MetaFieldsMigration","totalSegments","esHealthChecks","execute"],"sources":["bin.ts"],"sourcesContent":["#!/usr/bin/env node\nimport yargs from \"yargs/yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { MetaFieldsMigration } from \"./MetaFieldsMigration\";\nimport { createPinoLogger, getLogLevel } from \"@webiny/logger\";\nimport pinoPretty from \"pino-pretty\";\nimport {\n DEFAULT_ES_HEALTH_CHECKS_PARAMS,\n EsHealthChecksParams\n} from \"~/migrations/5.39.6/001/ddb-es/utils\";\n\nconst argv = yargs(hideBin(process.argv))\n .options({\n ddbTable: { type: \"string\", demandOption: true },\n ddbEsTable: { type: \"string\", demandOption: true },\n esEndpoint: { type: \"string\", demandOption: true },\n segments: { type: \"number\", demandOption: true },\n\n // Elasticsearch health check options.\n esHealthMinClusterHealthStatus: {\n type: \"string\",\n demandOption: false,\n default: DEFAULT_ES_HEALTH_CHECKS_PARAMS.minClusterHealthStatus,\n description: `Minimum cluster health status to wait for before proceeding with the migration.`\n },\n esHealthMaxProcessorPercent: {\n type: \"number\",\n demandOption: false,\n default: DEFAULT_ES_HEALTH_CHECKS_PARAMS.maxProcessorPercent,\n description: `Maximum CPU usage percentage to wait for before proceeding with the migration.`\n },\n esHealthMaxRamPercent: {\n type: \"number\",\n demandOption: false,\n default: DEFAULT_ES_HEALTH_CHECKS_PARAMS.maxRamPercent,\n description: `Maximum RAM usage percentage to wait for before proceeding with the migration.`\n },\n esHealthMaxWaitingTime: {\n type: \"number\",\n demandOption: false,\n default: DEFAULT_ES_HEALTH_CHECKS_PARAMS.maxWaitingTime,\n description: `Maximum time to wait (seconds) for before proceeding with the migration.`\n },\n esHealthWaitingTimeStep: {\n type: \"number\",\n demandOption: false,\n default: DEFAULT_ES_HEALTH_CHECKS_PARAMS.waitingTimeStep,\n description: `Time step (seconds) to wait before checking Elasticsearch health status again.`\n }\n })\n .parseSync();\n\n(async () => {\n const logger = createPinoLogger(\n {\n level: getLogLevel(process.env.MIGRATIONS_LOG_LEVEL, \"trace\")\n },\n pinoPretty({ ignore: \"pid,hostname\" })\n );\n\n const migration = new MetaFieldsMigration({\n totalSegments: argv.segments,\n ddbTable: argv.ddbTable,\n ddbEsTable: argv.ddbEsTable,\n esEndpoint: argv.esEndpoint,\n esHealthChecks: {\n minClusterHealthStatus:\n argv.esHealthMinClusterHealthStatus as EsHealthChecksParams[\"minClusterHealthStatus\"],\n maxProcessorPercent: argv.esHealthMaxProcessorPercent,\n maxRamPercent: argv.esHealthMaxRamPercent,\n maxWaitingTime: argv.esHealthMaxWaitingTime,\n waitingTimeStep: argv.esHealthWaitingTimeStep\n },\n logger\n });\n\n await migration.execute();\n})();\n"],"mappings":"AAAA;AAAmB;;AAAA,IAAAA,sBAAA,GAAAC,OAAA,iDAAAC,OAAA;AACnB,IAAAC,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAKA,MAAMQ,IAAI,GAAG,IAAAC,cAAK,EAAC,IAAAC,gBAAO,EAACC,OAAO,CAACH,IAAI,CAAC,CAAC,CACpCI,OAAO,CAAC;EACLC,QAAQ,EAAE;IAAEC,IAAI,EAAE,QAAQ;IAAEC,YAAY,EAAE;EAAK,CAAC;EAChDC,UAAU,EAAE;IAAEF,IAAI,EAAE,QAAQ;IAAEC,YAAY,EAAE;EAAK,CAAC;EAClDE,UAAU,EAAE;IAAEH,IAAI,EAAE,QAAQ;IAAEC,YAAY,EAAE;EAAK,CAAC;EAClDG,QAAQ,EAAE;IAAEJ,IAAI,EAAE,QAAQ;IAAEC,YAAY,EAAE;EAAK,CAAC;EAEhD;EACAI,8BAA8B,EAAE;IAC5BL,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE,KAAK;IACnBd,OAAO,EAAEmB,sCAA+B,CAACC,sBAAsB;IAC/DC,WAAW,EAAG;EAClB,CAAC;EACDC,2BAA2B,EAAE;IACzBT,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE,KAAK;IACnBd,OAAO,EAAEmB,sCAA+B,CAACI,mBAAmB;IAC5DF,WAAW,EAAG;EAClB,CAAC;EACDG,qBAAqB,EAAE;IACnBX,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE,KAAK;IACnBd,OAAO,EAAEmB,sCAA+B,CAACM,aAAa;IACtDJ,WAAW,EAAG;EAClB,CAAC;EACDK,sBAAsB,EAAE;IACpBb,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE,KAAK;IACnBd,OAAO,EAAEmB,sCAA+B,CAACQ,cAAc;IACvDN,WAAW,EAAG;EAClB,CAAC;EACDO,uBAAuB,EAAE;IACrBf,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE,KAAK;IACnBd,OAAO,EAAEmB,sCAA+B,CAACU,eAAe;IACxDR,WAAW,EAAG;EAClB;AACJ,CAAC,CAAC,CACDS,SAAS,CAAC,CAAC;AAEhB,CAAC,YAAY;EACT,MAAMC,MAAM,GAAG,IAAAC,wBAAgB,EAC3B;IACIC,KAAK,EAAE,IAAAC,mBAAW,EAACxB,OAAO,CAACyB,GAAG,CAACC,oBAAoB,EAAE,OAAO;EAChE,CAAC,EACD,IAAAC,mBAAU,EAAC;IAAEC,MAAM,EAAE;EAAe,CAAC,CACzC,CAAC;EAED,MAAMC,SAAS,GAAG,IAAIC,wCAAmB,CAAC;IACtCC,aAAa,EAAElC,IAAI,CAACU,QAAQ;IAC5BL,QAAQ,EAAEL,IAAI,CAACK,QAAQ;IACvBG,UAAU,EAAER,IAAI,CAACQ,UAAU;IAC3BC,UAAU,EAAET,IAAI,CAACS,UAAU;IAC3B0B,cAAc,EAAE;MACZtB,sBAAsB,EAClBb,IAAI,CAACW,8BAAgF;MACzFK,mBAAmB,EAAEhB,IAAI,CAACe,2BAA2B;MACrDG,aAAa,EAAElB,IAAI,CAACiB,qBAAqB;MACzCG,cAAc,EAAEpB,IAAI,CAACmB,sBAAsB;MAC3CG,eAAe,EAAEtB,IAAI,CAACqB;IAC1B,CAAC;IACDG;EACJ,CAAC,CAAC;EAEF,MAAMQ,SAAS,CAACI,OAAO,CAAC,CAAC;AAC7B,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CliContext } from "@webiny/cli/types";
|
|
2
|
+
import { MetaFieldsMigrationParams } from "./MetaFieldsMigration";
|
|
3
|
+
/**
|
|
4
|
+
* Creates an after-deployment hook that triggers the meta fields data migration.
|
|
5
|
+
* @param params
|
|
6
|
+
*/
|
|
7
|
+
export declare const createMetaFieldsDataMigrationDeploymentHook: (params: Pick<MetaFieldsMigrationParams, "totalSegments" | "esHealthChecks">) => {
|
|
8
|
+
type: string;
|
|
9
|
+
name: string;
|
|
10
|
+
hook({ inputs, env, projectApplication }: Record<string, any>, context: CliContext): Promise<void>;
|
|
11
|
+
}[];
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createMetaFieldsDataMigrationDeploymentHook = void 0;
|
|
8
|
+
var _utils = require("@webiny/cli-plugin-deploy-pulumi/utils");
|
|
9
|
+
var _logger = require("@webiny/logger");
|
|
10
|
+
var _pinoPretty = _interopRequireDefault(require("pino-pretty"));
|
|
11
|
+
var _MetaFieldsMigration = require("./MetaFieldsMigration");
|
|
12
|
+
const REQUIRED_AWS_ENV_VARS = ["AWS_REGION", "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"];
|
|
13
|
+
const ensureAwsEnvVars = () => {
|
|
14
|
+
const missingAwsEnvVars = [];
|
|
15
|
+
for (const variable of REQUIRED_AWS_ENV_VARS) {
|
|
16
|
+
if (!process.env[variable]) {
|
|
17
|
+
missingAwsEnvVars.push(variable);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if (missingAwsEnvVars.length > 0) {
|
|
21
|
+
throw new Error(`Cannot run 5.39.6 meta fields data migration. Missing required environment variables: ${missingAwsEnvVars.join(", ")}.`);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Creates an after-deployment hook that triggers the meta fields data migration.
|
|
27
|
+
* @param params
|
|
28
|
+
*/
|
|
29
|
+
const createMetaFieldsDataMigrationDeploymentHook = params => {
|
|
30
|
+
return [{
|
|
31
|
+
type: "hook-before-deploy",
|
|
32
|
+
name: "hook-before-deploy-skip-5-39-6-001-migration",
|
|
33
|
+
async hook({
|
|
34
|
+
projectApplication
|
|
35
|
+
}) {
|
|
36
|
+
// Only run migrations for `api` app
|
|
37
|
+
if (projectApplication.id !== "api") {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
process.env.WEBINY_MIGRATION_SKIP_5_39_6_001 = "true";
|
|
41
|
+
}
|
|
42
|
+
}, {
|
|
43
|
+
type: "hook-after-deploy",
|
|
44
|
+
name: "hook-after-deploy-api-run-5-39-6-meta-fields-data-migrations",
|
|
45
|
+
async hook({
|
|
46
|
+
inputs,
|
|
47
|
+
env,
|
|
48
|
+
projectApplication
|
|
49
|
+
}, context) {
|
|
50
|
+
// Only run migrations for `api` app
|
|
51
|
+
if (projectApplication.id !== "api") {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// No need to run migrations if we're doing a preview.
|
|
56
|
+
if (inputs.preview) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
ensureAwsEnvVars();
|
|
60
|
+
const coreOutput = (0, _utils.getStackOutput)({
|
|
61
|
+
folder: "apps/core",
|
|
62
|
+
env
|
|
63
|
+
});
|
|
64
|
+
context.info("Executing 5.39.6-001 meta fields data migration...");
|
|
65
|
+
const logger = (0, _logger.createPinoLogger)({
|
|
66
|
+
level: (0, _logger.getLogLevel)(process.env.MIGRATIONS_LOG_LEVEL, "trace")
|
|
67
|
+
}, (0, _pinoPretty.default)({
|
|
68
|
+
ignore: "pid,hostname"
|
|
69
|
+
}));
|
|
70
|
+
const migration = new _MetaFieldsMigration.MetaFieldsMigration({
|
|
71
|
+
ddbTable: coreOutput.primaryDynamodbTableName,
|
|
72
|
+
ddbEsTable: coreOutput.elasticsearchDynamodbTableName,
|
|
73
|
+
esEndpoint: coreOutput.elasticsearchDomainEndpoint,
|
|
74
|
+
...params,
|
|
75
|
+
logger
|
|
76
|
+
});
|
|
77
|
+
await migration.execute();
|
|
78
|
+
}
|
|
79
|
+
}];
|
|
80
|
+
};
|
|
81
|
+
exports.createMetaFieldsDataMigrationDeploymentHook = createMetaFieldsDataMigrationDeploymentHook;
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=createMetaFieldsDataMigrationDeploymentHook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","_logger","_pinoPretty","_interopRequireDefault","_MetaFieldsMigration","REQUIRED_AWS_ENV_VARS","ensureAwsEnvVars","missingAwsEnvVars","variable","process","env","push","length","Error","join","createMetaFieldsDataMigrationDeploymentHook","params","type","name","hook","projectApplication","id","WEBINY_MIGRATION_SKIP_5_39_6_001","inputs","context","preview","coreOutput","getStackOutput","folder","info","logger","createPinoLogger","level","getLogLevel","MIGRATIONS_LOG_LEVEL","pinoPretty","ignore","migration","MetaFieldsMigration","ddbTable","primaryDynamodbTableName","ddbEsTable","elasticsearchDynamodbTableName","esEndpoint","elasticsearchDomainEndpoint","execute","exports"],"sources":["createMetaFieldsDataMigrationDeploymentHook.ts"],"sourcesContent":["import { CliContext } from \"@webiny/cli/types\";\nimport { getStackOutput } from \"@webiny/cli-plugin-deploy-pulumi/utils\";\nimport { createPinoLogger, getLogLevel } from \"@webiny/logger\";\nimport pinoPretty from \"pino-pretty\";\nimport {\n MetaFieldsMigrationParams,\n MetaFieldsMigration\n} from \"~/migrations/5.39.6/001/ddb-es/MetaFieldsMigration\";\n\ninterface CoreOutput {\n primaryDynamodbTableName: string;\n elasticsearchDynamodbTableName: string;\n elasticsearchDomainEndpoint: string;\n}\n\nconst REQUIRED_AWS_ENV_VARS = [\n \"AWS_REGION\",\n \"AWS_ACCESS_KEY_ID\",\n \"AWS_SECRET_ACCESS_KEY\",\n \"AWS_SESSION_TOKEN\"\n];\n\nconst ensureAwsEnvVars = () => {\n const missingAwsEnvVars = [];\n for (const variable of REQUIRED_AWS_ENV_VARS) {\n if (!process.env[variable]) {\n missingAwsEnvVars.push(variable);\n }\n }\n\n if (missingAwsEnvVars.length > 0) {\n throw new Error(\n `Cannot run 5.39.6 meta fields data migration. Missing required environment variables: ${missingAwsEnvVars.join(\n \", \"\n )}.`\n );\n }\n};\n\n/**\n * Creates an after-deployment hook that triggers the meta fields data migration.\n * @param params\n */\nexport const createMetaFieldsDataMigrationDeploymentHook = (\n params: Pick<MetaFieldsMigrationParams, \"totalSegments\" | \"esHealthChecks\">\n) => {\n return [\n {\n type: \"hook-before-deploy\",\n name: \"hook-before-deploy-skip-5-39-6-001-migration\",\n async hook({ projectApplication }: Record<string, any>) {\n // Only run migrations for `api` app\n if (projectApplication.id !== \"api\") {\n return;\n }\n\n process.env.WEBINY_MIGRATION_SKIP_5_39_6_001 = \"true\";\n }\n },\n {\n type: \"hook-after-deploy\",\n name: \"hook-after-deploy-api-run-5-39-6-meta-fields-data-migrations\",\n async hook(\n { inputs, env, projectApplication }: Record<string, any>,\n context: CliContext\n ) {\n // Only run migrations for `api` app\n if (projectApplication.id !== \"api\") {\n return;\n }\n\n // No need to run migrations if we're doing a preview.\n if (inputs.preview) {\n return;\n }\n\n ensureAwsEnvVars();\n\n const coreOutput = getStackOutput<CoreOutput>({ folder: \"apps/core\", env });\n\n context.info(\"Executing 5.39.6-001 meta fields data migration...\");\n\n const logger = createPinoLogger(\n {\n level: getLogLevel(process.env.MIGRATIONS_LOG_LEVEL, \"trace\")\n },\n pinoPretty({ ignore: \"pid,hostname\" })\n );\n\n const migration = new MetaFieldsMigration({\n ddbTable: coreOutput.primaryDynamodbTableName,\n ddbEsTable: coreOutput.elasticsearchDynamodbTableName,\n esEndpoint: coreOutput.elasticsearchDomainEndpoint,\n ...params,\n logger\n });\n\n await migration.execute();\n }\n }\n ];\n};\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AAWA,MAAMK,qBAAqB,GAAG,CAC1B,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,CACtB;AAED,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAC3B,MAAMC,iBAAiB,GAAG,EAAE;EAC5B,KAAK,MAAMC,QAAQ,IAAIH,qBAAqB,EAAE;IAC1C,IAAI,CAACI,OAAO,CAACC,GAAG,CAACF,QAAQ,CAAC,EAAE;MACxBD,iBAAiB,CAACI,IAAI,CAACH,QAAQ,CAAC;IACpC;EACJ;EAEA,IAAID,iBAAiB,CAACK,MAAM,GAAG,CAAC,EAAE;IAC9B,MAAM,IAAIC,KAAK,CACV,yFAAwFN,iBAAiB,CAACO,IAAI,CAC3G,IACJ,CAAE,GACN,CAAC;EACL;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAMC,2CAA2C,GACpDC,MAA2E,IAC1E;EACD,OAAO,CACH;IACIC,IAAI,EAAE,oBAAoB;IAC1BC,IAAI,EAAE,8CAA8C;IACpD,MAAMC,IAAIA,CAAC;MAAEC;IAAwC,CAAC,EAAE;MACpD;MACA,IAAIA,kBAAkB,CAACC,EAAE,KAAK,KAAK,EAAE;QACjC;MACJ;MAEAZ,OAAO,CAACC,GAAG,CAACY,gCAAgC,GAAG,MAAM;IACzD;EACJ,CAAC,EACD;IACIL,IAAI,EAAE,mBAAmB;IACzBC,IAAI,EAAE,8DAA8D;IACpE,MAAMC,IAAIA,CACN;MAAEI,MAAM;MAAEb,GAAG;MAAEU;IAAwC,CAAC,EACxDI,OAAmB,EACrB;MACE;MACA,IAAIJ,kBAAkB,CAACC,EAAE,KAAK,KAAK,EAAE;QACjC;MACJ;;MAEA;MACA,IAAIE,MAAM,CAACE,OAAO,EAAE;QAChB;MACJ;MAEAnB,gBAAgB,CAAC,CAAC;MAElB,MAAMoB,UAAU,GAAG,IAAAC,qBAAc,EAAa;QAAEC,MAAM,EAAE,WAAW;QAAElB;MAAI,CAAC,CAAC;MAE3Ec,OAAO,CAACK,IAAI,CAAC,oDAAoD,CAAC;MAElE,MAAMC,MAAM,GAAG,IAAAC,wBAAgB,EAC3B;QACIC,KAAK,EAAE,IAAAC,mBAAW,EAACxB,OAAO,CAACC,GAAG,CAACwB,oBAAoB,EAAE,OAAO;MAChE,CAAC,EACD,IAAAC,mBAAU,EAAC;QAAEC,MAAM,EAAE;MAAe,CAAC,CACzC,CAAC;MAED,MAAMC,SAAS,GAAG,IAAIC,wCAAmB,CAAC;QACtCC,QAAQ,EAAEb,UAAU,CAACc,wBAAwB;QAC7CC,UAAU,EAAEf,UAAU,CAACgB,8BAA8B;QACrDC,UAAU,EAAEjB,UAAU,CAACkB,2BAA2B;QAClD,GAAG5B,MAAM;QACTc;MACJ,CAAC,CAAC;MAEF,MAAMO,SAAS,CAACQ,OAAO,CAAC,CAAC;IAC7B;EACJ,CAAC,CACJ;AACL,CAAC;AAACC,OAAA,CAAA/B,2CAAA,GAAAA,2CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Table } from "@webiny/db-dynamodb/toolbox";
|
|
2
|
+
import { DataMigration, DataMigrationContext } from "@webiny/data-migration";
|
|
3
|
+
import { Client } from "@elastic/elasticsearch";
|
|
4
|
+
interface LastEvaluatedKey {
|
|
5
|
+
PK: string;
|
|
6
|
+
SK: string;
|
|
7
|
+
GSI1_PK: string;
|
|
8
|
+
GSI1_SK: string;
|
|
9
|
+
}
|
|
10
|
+
interface IndexSettings {
|
|
11
|
+
number_of_replicas: number;
|
|
12
|
+
refresh_interval: `${number}s`;
|
|
13
|
+
}
|
|
14
|
+
interface CmsEntriesRootFolderDataMigrationCheckpoint {
|
|
15
|
+
lastEvaluatedKey?: LastEvaluatedKey | boolean;
|
|
16
|
+
indexes: {
|
|
17
|
+
[index: string]: IndexSettings | null;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export declare class CmsEntriesInitNewMetaFields_5_39_6_001 implements DataMigration {
|
|
21
|
+
private readonly elasticsearchClient;
|
|
22
|
+
private readonly ddbEntryEntity;
|
|
23
|
+
private readonly ddbEsEntryEntity;
|
|
24
|
+
constructor(table: Table<string, string, string>, esTable: Table<string, string, string>, elasticsearchClient: Client);
|
|
25
|
+
getId(): string;
|
|
26
|
+
getDescription(): string;
|
|
27
|
+
shouldExecute({ logger }: DataMigrationContext): Promise<boolean>;
|
|
28
|
+
execute({ logger, ...context }: DataMigrationContext<CmsEntriesRootFolderDataMigrationCheckpoint>): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
export {};
|