@webiny/migrations 5.41.4 → 5.42.0-beta.0
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/migrations/5.41.0/001/index.js.map +1 -1
- package/package.json +18 -26
- package/utils/elasticsearch/disableEsIndexing.js.map +1 -1
- package/utils/elasticsearch/esGetIndexExist.js.map +1 -1
- package/utils/elasticsearch/esGetIndexName.js.map +1 -1
- package/utils/elasticsearch/fetchOriginalEsSettings.js.map +1 -1
- package/utils/elasticsearch/restoreOriginalEsSettings.js.map +1 -1
- package/utils/forEachTenantLocale.js.map +1 -1
- package/migrations/5.35.0/001/FileSettingsMigration.d.ts +0 -12
- package/migrations/5.35.0/001/FileSettingsMigration.js +0 -93
- package/migrations/5.35.0/001/FileSettingsMigration.js.map +0 -1
- package/migrations/5.35.0/001/ddb/FileDataMigration.d.ts +0 -14
- package/migrations/5.35.0/001/ddb/FileDataMigration.js +0 -156
- package/migrations/5.35.0/001/ddb/FileDataMigration.js.map +0 -1
- package/migrations/5.35.0/001/ddb/index.d.ts +0 -10
- package/migrations/5.35.0/001/ddb/index.js +0 -50
- package/migrations/5.35.0/001/ddb/index.js.map +0 -1
- package/migrations/5.35.0/001/ddb-es/FileDataMigration.d.ts +0 -17
- package/migrations/5.35.0/001/ddb-es/FileDataMigration.js +0 -175
- package/migrations/5.35.0/001/ddb-es/FileDataMigration.js.map +0 -1
- package/migrations/5.35.0/001/ddb-es/index.d.ts +0 -12
- package/migrations/5.35.0/001/ddb-es/index.js +0 -65
- package/migrations/5.35.0/001/ddb-es/index.js.map +0 -1
- package/migrations/5.35.0/001/entities/createFileEntity.d.ts +0 -92
- package/migrations/5.35.0/001/entities/createFileEntity.js +0 -61
- package/migrations/5.35.0/001/entities/createFileEntity.js.map +0 -1
- package/migrations/5.35.0/001/entities/createLocaleEntity.d.ts +0 -42
- package/migrations/5.35.0/001/entities/createLocaleEntity.js +0 -52
- package/migrations/5.35.0/001/entities/createLocaleEntity.js.map +0 -1
- package/migrations/5.35.0/001/entities/createSettingsEntity.d.ts +0 -90
- package/migrations/5.35.0/001/entities/createSettingsEntity.js +0 -37
- package/migrations/5.35.0/001/entities/createSettingsEntity.js.map +0 -1
- package/migrations/5.35.0/001/entities/createTenantEntity.d.ts +0 -42
- package/migrations/5.35.0/001/entities/createTenantEntity.js +0 -69
- package/migrations/5.35.0/001/entities/createTenantEntity.js.map +0 -1
- package/migrations/5.35.0/001/types.d.ts +0 -19
- package/migrations/5.35.0/001/types.js +0 -7
- package/migrations/5.35.0/001/types.js.map +0 -1
- package/migrations/5.35.0/002/createLocaleEntity.d.ts +0 -42
- package/migrations/5.35.0/002/createLocaleEntity.js +0 -32
- package/migrations/5.35.0/002/createLocaleEntity.js.map +0 -1
- package/migrations/5.35.0/002/createSettingsEntity.d.ts +0 -90
- package/migrations/5.35.0/002/createSettingsEntity.js +0 -61
- package/migrations/5.35.0/002/createSettingsEntity.js.map +0 -1
- package/migrations/5.35.0/002/createTenantEntity.d.ts +0 -42
- package/migrations/5.35.0/002/createTenantEntity.js +0 -46
- package/migrations/5.35.0/002/createTenantEntity.js.map +0 -1
- package/migrations/5.35.0/002/index.d.ts +0 -13
- package/migrations/5.35.0/002/index.js +0 -117
- package/migrations/5.35.0/002/index.js.map +0 -1
- package/migrations/5.35.0/003/createTenantEntity.d.ts +0 -42
- package/migrations/5.35.0/003/createTenantEntity.js +0 -46
- package/migrations/5.35.0/003/createTenantEntity.js.map +0 -1
- package/migrations/5.35.0/003/createUserEntity.d.ts +0 -90
- package/migrations/5.35.0/003/createUserEntity.js +0 -55
- package/migrations/5.35.0/003/createUserEntity.js.map +0 -1
- package/migrations/5.35.0/003/index.d.ts +0 -12
- package/migrations/5.35.0/003/index.js +0 -95
- package/migrations/5.35.0/003/index.js.map +0 -1
- package/migrations/5.35.0/004/createTenantEntity.d.ts +0 -90
- package/migrations/5.35.0/004/createTenantEntity.js +0 -57
- package/migrations/5.35.0/004/createTenantEntity.js.map +0 -1
- package/migrations/5.35.0/004/index.d.ts +0 -11
- package/migrations/5.35.0/004/index.js +0 -80
- package/migrations/5.35.0/004/index.js.map +0 -1
- package/migrations/5.35.0/005/createLocaleEntity.d.ts +0 -42
- package/migrations/5.35.0/005/createLocaleEntity.js +0 -32
- package/migrations/5.35.0/005/createLocaleEntity.js.map +0 -1
- package/migrations/5.35.0/005/createModelEntity.d.ts +0 -42
- package/migrations/5.35.0/005/createModelEntity.js +0 -101
- package/migrations/5.35.0/005/createModelEntity.js.map +0 -1
- package/migrations/5.35.0/005/createTenantEntity.d.ts +0 -48
- package/migrations/5.35.0/005/createTenantEntity.js +0 -13
- package/migrations/5.35.0/005/createTenantEntity.js.map +0 -1
- package/migrations/5.35.0/005/index.d.ts +0 -15
- package/migrations/5.35.0/005/index.js +0 -145
- package/migrations/5.35.0/005/index.js.map +0 -1
- package/migrations/5.35.0/005/types.d.ts +0 -42
- package/migrations/5.35.0/005/types.js +0 -7
- package/migrations/5.35.0/005/types.js.map +0 -1
- package/migrations/5.35.0/006/constants.d.ts +0 -3
- package/migrations/5.35.0/006/constants.js +0 -11
- package/migrations/5.35.0/006/constants.js.map +0 -1
- package/migrations/5.35.0/006/ddb/PageDataMigration.d.ts +0 -17
- package/migrations/5.35.0/006/ddb/PageDataMigration.js +0 -249
- package/migrations/5.35.0/006/ddb/PageDataMigration.js.map +0 -1
- package/migrations/5.35.0/006/ddb/index.d.ts +0 -10
- package/migrations/5.35.0/006/ddb/index.js +0 -49
- package/migrations/5.35.0/006/ddb/index.js.map +0 -1
- package/migrations/5.35.0/006/ddb-es/PageDataMigration.d.ts +0 -22
- package/migrations/5.35.0/006/ddb-es/PageDataMigration.js +0 -413
- package/migrations/5.35.0/006/ddb-es/PageDataMigration.js.map +0 -1
- package/migrations/5.35.0/006/ddb-es/index.d.ts +0 -12
- package/migrations/5.35.0/006/ddb-es/index.js +0 -64
- package/migrations/5.35.0/006/ddb-es/index.js.map +0 -1
- package/migrations/5.35.0/006/entities/createEntryEntity.d.ts +0 -89
- package/migrations/5.35.0/006/entities/createEntryEntity.js +0 -106
- package/migrations/5.35.0/006/entities/createEntryEntity.js.map +0 -1
- package/migrations/5.35.0/006/entities/createLocaleEntity.d.ts +0 -42
- package/migrations/5.35.0/006/entities/createLocaleEntity.js +0 -32
- package/migrations/5.35.0/006/entities/createLocaleEntity.js.map +0 -1
- package/migrations/5.35.0/006/entities/createPageEntity.d.ts +0 -89
- package/migrations/5.35.0/006/entities/createPageEntity.js +0 -113
- package/migrations/5.35.0/006/entities/createPageEntity.js.map +0 -1
- package/migrations/5.35.0/006/entities/createTenantEntity.d.ts +0 -48
- package/migrations/5.35.0/006/entities/createTenantEntity.js +0 -13
- package/migrations/5.35.0/006/entities/createTenantEntity.js.map +0 -1
- package/migrations/5.35.0/006/types.d.ts +0 -91
- package/migrations/5.35.0/006/types.js +0 -7
- package/migrations/5.35.0/006/types.js.map +0 -1
- package/migrations/5.35.0/006/utils/getCompressedData.d.ts +0 -4
- package/migrations/5.35.0/006/utils/getCompressedData.js +0 -19
- package/migrations/5.35.0/006/utils/getCompressedData.js.map +0 -1
- package/migrations/5.35.0/006/utils/getLexicalContentText.d.ts +0 -1
- package/migrations/5.35.0/006/utils/getLexicalContentText.js +0 -29
- package/migrations/5.35.0/006/utils/getLexicalContentText.js.map +0 -1
- package/migrations/5.35.0/006/utils/getSearchableContent.d.ts +0 -6
- package/migrations/5.35.0/006/utils/getSearchableContent.js +0 -45
- package/migrations/5.35.0/006/utils/getSearchableContent.js.map +0 -1
- package/migrations/5.35.0/006/utils/processors/button.d.ts +0 -1
- package/migrations/5.35.0/006/utils/processors/button.js +0 -17
- package/migrations/5.35.0/006/utils/processors/button.js.map +0 -1
- package/migrations/5.35.0/006/utils/processors/image.d.ts +0 -1
- package/migrations/5.35.0/006/utils/processors/image.js +0 -17
- package/migrations/5.35.0/006/utils/processors/image.js.map +0 -1
- package/migrations/5.35.0/006/utils/processors/images.d.ts +0 -1
- package/migrations/5.35.0/006/utils/processors/images.js +0 -18
- package/migrations/5.35.0/006/utils/processors/images.js.map +0 -1
- package/migrations/5.35.0/006/utils/processors/index.d.ts +0 -1
- package/migrations/5.35.0/006/utils/processors/index.js +0 -13
- package/migrations/5.35.0/006/utils/processors/index.js.map +0 -1
- package/migrations/5.35.0/006/utils/processors/paragraph.d.ts +0 -1
- package/migrations/5.35.0/006/utils/processors/paragraph.js +0 -25
- package/migrations/5.35.0/006/utils/processors/paragraph.js.map +0 -1
- package/migrations/5.36.0/001/constants.d.ts +0 -3
- package/migrations/5.36.0/001/constants.js +0 -11
- package/migrations/5.36.0/001/constants.js.map +0 -1
- package/migrations/5.36.0/001/ddb/FileDataMigration.d.ts +0 -17
- package/migrations/5.36.0/001/ddb/FileDataMigration.js +0 -241
- package/migrations/5.36.0/001/ddb/FileDataMigration.js.map +0 -1
- package/migrations/5.36.0/001/ddb/index.d.ts +0 -10
- package/migrations/5.36.0/001/ddb/index.js +0 -49
- package/migrations/5.36.0/001/ddb/index.js.map +0 -1
- package/migrations/5.36.0/001/ddb-es/FileDataMigration.d.ts +0 -20
- package/migrations/5.36.0/001/ddb-es/FileDataMigration.js +0 -405
- package/migrations/5.36.0/001/ddb-es/FileDataMigration.js.map +0 -1
- package/migrations/5.36.0/001/ddb-es/index.d.ts +0 -12
- package/migrations/5.36.0/001/ddb-es/index.js +0 -64
- package/migrations/5.36.0/001/ddb-es/index.js.map +0 -1
- package/migrations/5.36.0/001/entities/createEntryEntity.d.ts +0 -89
- package/migrations/5.36.0/001/entities/createEntryEntity.js +0 -106
- package/migrations/5.36.0/001/entities/createEntryEntity.js.map +0 -1
- package/migrations/5.36.0/001/entities/createFileEntity.d.ts +0 -95
- package/migrations/5.36.0/001/entities/createFileEntity.js +0 -33
- package/migrations/5.36.0/001/entities/createFileEntity.js.map +0 -1
- package/migrations/5.36.0/001/entities/createLocaleEntity.d.ts +0 -42
- package/migrations/5.36.0/001/entities/createLocaleEntity.js +0 -32
- package/migrations/5.36.0/001/entities/createLocaleEntity.js.map +0 -1
- package/migrations/5.36.0/001/entities/createTenantEntity.d.ts +0 -48
- package/migrations/5.36.0/001/entities/createTenantEntity.js +0 -13
- package/migrations/5.36.0/001/entities/createTenantEntity.js.map +0 -1
- package/migrations/5.36.0/001/types.d.ts +0 -67
- package/migrations/5.36.0/001/types.js +0 -7
- package/migrations/5.36.0/001/types.js.map +0 -1
- package/migrations/5.36.0/001/utils/createMimeTag.d.ts +0 -1
- package/migrations/5.36.0/001/utils/createMimeTag.js +0 -10
- package/migrations/5.36.0/001/utils/createMimeTag.js.map +0 -1
- package/migrations/5.36.0/001/utils/getCompressedData.d.ts +0 -4
- package/migrations/5.36.0/001/utils/getCompressedData.js +0 -19
- package/migrations/5.36.0/001/utils/getCompressedData.js.map +0 -1
- package/migrations/5.37.0/001/TenantLinkDataMigration.d.ts +0 -14
- package/migrations/5.37.0/001/TenantLinkDataMigration.js +0 -106
- package/migrations/5.37.0/001/TenantLinkDataMigration.js.map +0 -1
- package/migrations/5.37.0/001/entities/createTenantEntity.d.ts +0 -48
- package/migrations/5.37.0/001/entities/createTenantEntity.js +0 -13
- package/migrations/5.37.0/001/entities/createTenantEntity.js.map +0 -1
- package/migrations/5.37.0/001/entities/createTenantLinkEntity.d.ts +0 -48
- package/migrations/5.37.0/001/entities/createTenantLinkEntity.js +0 -17
- package/migrations/5.37.0/001/entities/createTenantLinkEntity.js.map +0 -1
- package/migrations/5.37.0/001/index.d.ts +0 -10
- package/migrations/5.37.0/001/index.js +0 -49
- package/migrations/5.37.0/001/index.js.map +0 -1
- package/migrations/5.37.0/001/types.d.ts +0 -25
- package/migrations/5.37.0/001/types.js +0 -7
- package/migrations/5.37.0/001/types.js.map +0 -1
- package/migrations/5.37.0/001/utils/isMigratedTenantLink.d.ts +0 -2
- package/migrations/5.37.0/001/utils/isMigratedTenantLink.js +0 -12
- package/migrations/5.37.0/001/utils/isMigratedTenantLink.js.map +0 -1
- package/migrations/5.37.0/002/constants.d.ts +0 -1
- package/migrations/5.37.0/002/constants.js +0 -9
- package/migrations/5.37.0/002/constants.js.map +0 -1
- package/migrations/5.37.0/002/ddb/index.d.ts +0 -22
- package/migrations/5.37.0/002/ddb/index.js +0 -133
- package/migrations/5.37.0/002/ddb/index.js.map +0 -1
- package/migrations/5.37.0/002/ddb-es/index.d.ts +0 -35
- package/migrations/5.37.0/002/ddb-es/index.js +0 -321
- package/migrations/5.37.0/002/ddb-es/index.js.map +0 -1
- package/migrations/5.37.0/002/entities/createEntryEntity.d.ts +0 -89
- package/migrations/5.37.0/002/entities/createEntryEntity.js +0 -109
- package/migrations/5.37.0/002/entities/createEntryEntity.js.map +0 -1
- package/migrations/5.37.0/002/entities/createLocaleEntity.d.ts +0 -42
- package/migrations/5.37.0/002/entities/createLocaleEntity.js +0 -32
- package/migrations/5.37.0/002/entities/createLocaleEntity.js.map +0 -1
- package/migrations/5.37.0/002/entities/createTenantEntity.d.ts +0 -48
- package/migrations/5.37.0/002/entities/createTenantEntity.js +0 -13
- package/migrations/5.37.0/002/entities/createTenantEntity.js.map +0 -1
- package/migrations/5.37.0/002/types.d.ts +0 -53
- package/migrations/5.37.0/002/types.js +0 -7
- package/migrations/5.37.0/002/types.js.map +0 -1
- package/migrations/5.37.0/002/utils/getCompressedData.d.ts +0 -4
- package/migrations/5.37.0/002/utils/getCompressedData.js +0 -19
- package/migrations/5.37.0/002/utils/getCompressedData.js.map +0 -1
- package/migrations/5.37.0/002/utils/getDecompressedData.d.ts +0 -1
- package/migrations/5.37.0/002/utils/getDecompressedData.js +0 -31
- package/migrations/5.37.0/002/utils/getDecompressedData.js.map +0 -1
- package/migrations/5.37.0/003/constants.d.ts +0 -3
- package/migrations/5.37.0/003/constants.js +0 -11
- package/migrations/5.37.0/003/constants.js.map +0 -1
- package/migrations/5.37.0/003/ddb/AcoFolderMigration.d.ts +0 -15
- package/migrations/5.37.0/003/ddb/AcoFolderMigration.js +0 -179
- package/migrations/5.37.0/003/ddb/AcoFolderMigration.js.map +0 -1
- package/migrations/5.37.0/003/ddb/index.d.ts +0 -10
- package/migrations/5.37.0/003/ddb/index.js +0 -49
- package/migrations/5.37.0/003/ddb/index.js.map +0 -1
- package/migrations/5.37.0/003/ddb-es/AcoFolderMigration.d.ts +0 -20
- package/migrations/5.37.0/003/ddb-es/AcoFolderMigration.js +0 -313
- package/migrations/5.37.0/003/ddb-es/AcoFolderMigration.js.map +0 -1
- package/migrations/5.37.0/003/ddb-es/index.d.ts +0 -12
- package/migrations/5.37.0/003/ddb-es/index.js +0 -64
- package/migrations/5.37.0/003/ddb-es/index.js.map +0 -1
- package/migrations/5.37.0/003/ddb-es/latestElasticsearchData.d.ts +0 -4
- package/migrations/5.37.0/003/ddb-es/latestElasticsearchData.js +0 -30
- package/migrations/5.37.0/003/ddb-es/latestElasticsearchData.js.map +0 -1
- package/migrations/5.37.0/003/entities/createEntryEntity.d.ts +0 -89
- package/migrations/5.37.0/003/entities/createEntryEntity.js +0 -109
- package/migrations/5.37.0/003/entities/createEntryEntity.js.map +0 -1
- package/migrations/5.37.0/003/entities/createLocaleEntity.d.ts +0 -42
- package/migrations/5.37.0/003/entities/createLocaleEntity.js +0 -32
- package/migrations/5.37.0/003/entities/createLocaleEntity.js.map +0 -1
- package/migrations/5.37.0/003/entities/createTenantEntity.d.ts +0 -48
- package/migrations/5.37.0/003/entities/createTenantEntity.js +0 -13
- package/migrations/5.37.0/003/entities/createTenantEntity.js.map +0 -1
- package/migrations/5.37.0/003/types.d.ts +0 -46
- package/migrations/5.37.0/003/types.js +0 -7
- package/migrations/5.37.0/003/types.js.map +0 -1
- package/migrations/5.37.0/003/utils/getCompressedData.d.ts +0 -4
- package/migrations/5.37.0/003/utils/getCompressedData.js +0 -19
- package/migrations/5.37.0/003/utils/getCompressedData.js.map +0 -1
- package/migrations/5.37.0/003/utils/getDecompressedData.d.ts +0 -1
- package/migrations/5.37.0/003/utils/getDecompressedData.js +0 -31
- package/migrations/5.37.0/003/utils/getDecompressedData.js.map +0 -1
- package/migrations/5.37.0/004/constants.d.ts +0 -7
- package/migrations/5.37.0/004/constants.js +0 -15
- package/migrations/5.37.0/004/constants.js.map +0 -1
- package/migrations/5.37.0/004/ddb/PageDataMigration.d.ts +0 -17
- package/migrations/5.37.0/004/ddb/PageDataMigration.js +0 -269
- package/migrations/5.37.0/004/ddb/PageDataMigration.js.map +0 -1
- package/migrations/5.37.0/004/ddb/index.d.ts +0 -10
- package/migrations/5.37.0/004/ddb/index.js +0 -49
- package/migrations/5.37.0/004/ddb/index.js.map +0 -1
- package/migrations/5.37.0/004/ddb-es/PageDataMigration.d.ts +0 -22
- package/migrations/5.37.0/004/ddb-es/PageDataMigration.js +0 -364
- package/migrations/5.37.0/004/ddb-es/PageDataMigration.js.map +0 -1
- package/migrations/5.37.0/004/ddb-es/index.d.ts +0 -12
- package/migrations/5.37.0/004/ddb-es/index.js +0 -64
- package/migrations/5.37.0/004/ddb-es/index.js.map +0 -1
- package/migrations/5.37.0/004/entities/createEntryEntity.d.ts +0 -89
- package/migrations/5.37.0/004/entities/createEntryEntity.js +0 -109
- package/migrations/5.37.0/004/entities/createEntryEntity.js.map +0 -1
- package/migrations/5.37.0/004/entities/createLocaleEntity.d.ts +0 -42
- package/migrations/5.37.0/004/entities/createLocaleEntity.js +0 -32
- package/migrations/5.37.0/004/entities/createLocaleEntity.js.map +0 -1
- package/migrations/5.37.0/004/entities/createPageEntity.d.ts +0 -89
- package/migrations/5.37.0/004/entities/createPageEntity.js +0 -113
- package/migrations/5.37.0/004/entities/createPageEntity.js.map +0 -1
- package/migrations/5.37.0/004/entities/createTenantEntity.d.ts +0 -48
- package/migrations/5.37.0/004/entities/createTenantEntity.js +0 -13
- package/migrations/5.37.0/004/entities/createTenantEntity.js.map +0 -1
- package/migrations/5.37.0/004/types.d.ts +0 -149
- package/migrations/5.37.0/004/types.js +0 -7
- package/migrations/5.37.0/004/types.js.map +0 -1
- package/migrations/5.37.0/004/utils/getCompressedData.d.ts +0 -4
- package/migrations/5.37.0/004/utils/getCompressedData.js +0 -19
- package/migrations/5.37.0/004/utils/getCompressedData.js.map +0 -1
- package/migrations/5.37.0/005/constants.d.ts +0 -3
- package/migrations/5.37.0/005/constants.js +0 -11
- package/migrations/5.37.0/005/constants.js.map +0 -1
- package/migrations/5.37.0/005/ddb/index.d.ts +0 -20
- package/migrations/5.37.0/005/ddb/index.js +0 -245
- package/migrations/5.37.0/005/ddb/index.js.map +0 -1
- package/migrations/5.37.0/005/ddb-es/index.d.ts +0 -22
- package/migrations/5.37.0/005/ddb-es/index.js +0 -382
- package/migrations/5.37.0/005/ddb-es/index.js.map +0 -1
- package/migrations/5.37.0/005/entities/createEntryEntity.d.ts +0 -89
- package/migrations/5.37.0/005/entities/createEntryEntity.js +0 -109
- package/migrations/5.37.0/005/entities/createEntryEntity.js.map +0 -1
- package/migrations/5.37.0/005/entities/createFileEntity.d.ts +0 -95
- package/migrations/5.37.0/005/entities/createFileEntity.js +0 -33
- package/migrations/5.37.0/005/entities/createFileEntity.js.map +0 -1
- package/migrations/5.37.0/005/entities/createLocaleEntity.d.ts +0 -42
- package/migrations/5.37.0/005/entities/createLocaleEntity.js +0 -32
- package/migrations/5.37.0/005/entities/createLocaleEntity.js.map +0 -1
- package/migrations/5.37.0/005/entities/createTenantEntity.d.ts +0 -48
- package/migrations/5.37.0/005/entities/createTenantEntity.js +0 -13
- package/migrations/5.37.0/005/entities/createTenantEntity.js.map +0 -1
- package/migrations/5.37.0/005/entities/createTenantLinkEntity.d.ts +0 -48
- package/migrations/5.37.0/005/entities/createTenantLinkEntity.js +0 -17
- package/migrations/5.37.0/005/entities/createTenantLinkEntity.js.map +0 -1
- package/migrations/5.37.0/005/types.d.ts +0 -109
- package/migrations/5.37.0/005/types.js +0 -7
- package/migrations/5.37.0/005/types.js.map +0 -1
- package/migrations/5.38.0/001/ddb/index.d.ts +0 -11
- package/migrations/5.38.0/001/ddb/index.js +0 -116
- package/migrations/5.38.0/001/ddb/index.js.map +0 -1
- package/migrations/5.38.0/001/ddb-es/index.d.ts +0 -13
- package/migrations/5.38.0/001/ddb-es/index.js +0 -211
- package/migrations/5.38.0/001/ddb-es/index.js.map +0 -1
- package/migrations/5.38.0/001/entities/createFormEntity.d.ts +0 -42
- package/migrations/5.38.0/001/entities/createFormEntity.js +0 -92
- package/migrations/5.38.0/001/entities/createFormEntity.js.map +0 -1
- package/migrations/5.38.0/001/types.d.ts +0 -11
- package/migrations/5.38.0/001/types.js +0 -7
- package/migrations/5.38.0/001/types.js.map +0 -1
- package/migrations/5.38.0/002/ddb/index.d.ts +0 -22
- package/migrations/5.38.0/002/ddb/index.js +0 -140
- package/migrations/5.38.0/002/ddb/index.js.map +0 -1
- package/migrations/5.38.0/002/ddb-es/index.d.ts +0 -31
- package/migrations/5.38.0/002/ddb-es/index.js +0 -250
- package/migrations/5.38.0/002/ddb-es/index.js.map +0 -1
- package/migrations/5.38.0/002/entities/createFormEntity.d.ts +0 -42
- package/migrations/5.38.0/002/entities/createFormEntity.js +0 -92
- package/migrations/5.38.0/002/entities/createFormEntity.js.map +0 -1
- package/migrations/5.38.0/002/entities/createFormSubmissionDdbEsEntity.d.ts +0 -48
- package/migrations/5.38.0/002/entities/createFormSubmissionDdbEsEntity.js +0 -29
- package/migrations/5.38.0/002/entities/createFormSubmissionDdbEsEntity.js.map +0 -1
- package/migrations/5.38.0/002/entities/createFormSubmissionEntity.d.ts +0 -42
- package/migrations/5.38.0/002/entities/createFormSubmissionEntity.js +0 -56
- package/migrations/5.38.0/002/entities/createFormSubmissionEntity.js.map +0 -1
- package/migrations/5.38.0/002/types.d.ts +0 -23
- package/migrations/5.38.0/002/types.js +0 -7
- package/migrations/5.38.0/002/types.js.map +0 -1
- package/migrations/5.38.0/003/ddb/compressContent.d.ts +0 -4
- package/migrations/5.38.0/003/ddb/compressContent.js +0 -17
- package/migrations/5.38.0/003/ddb/compressContent.js.map +0 -1
- package/migrations/5.38.0/003/ddb/index.d.ts +0 -12
- package/migrations/5.38.0/003/ddb/index.js +0 -143
- package/migrations/5.38.0/003/ddb/index.js.map +0 -1
- package/migrations/5.38.0/003/entities/createPageBlockEntity.d.ts +0 -83
- package/migrations/5.38.0/003/entities/createPageBlockEntity.js +0 -68
- package/migrations/5.38.0/003/entities/createPageBlockEntity.js.map +0 -1
- package/migrations/5.38.0/003/types.d.ts +0 -8
- package/migrations/5.38.0/003/types.js +0 -7
- package/migrations/5.38.0/003/types.js.map +0 -1
- package/migrations/5.39.0/001/ddb/index.d.ts +0 -20
- package/migrations/5.39.0/001/ddb/index.js +0 -136
- package/migrations/5.39.0/001/ddb/index.js.map +0 -1
- package/migrations/5.39.0/001/ddb-es/index.d.ts +0 -29
- package/migrations/5.39.0/001/ddb-es/index.js +0 -266
- package/migrations/5.39.0/001/ddb-es/index.js.map +0 -1
- package/migrations/5.39.0/001/entities/createEntryEntity.d.ts +0 -89
- package/migrations/5.39.0/001/entities/createEntryEntity.js +0 -188
- package/migrations/5.39.0/001/entities/createEntryEntity.js.map +0 -1
- package/migrations/5.39.0/001/types.d.ts +0 -136
- package/migrations/5.39.0/001/types.js +0 -7
- package/migrations/5.39.0/001/types.js.map +0 -1
- package/migrations/5.39.0/001/utils/assignNewMetaFields.d.ts +0 -11
- package/migrations/5.39.0/001/utils/assignNewMetaFields.js +0 -44
- package/migrations/5.39.0/001/utils/assignNewMetaFields.js.map +0 -1
- package/migrations/5.39.0/001/utils/ensureAllNonNullableValues.d.ts +0 -8
- package/migrations/5.39.0/001/utils/ensureAllNonNullableValues.js +0 -38
- package/migrations/5.39.0/001/utils/ensureAllNonNullableValues.js.map +0 -1
- package/migrations/5.39.0/001/utils/fixTypeFieldValue.d.ts +0 -3
- package/migrations/5.39.0/001/utils/fixTypeFieldValue.js +0 -33
- package/migrations/5.39.0/001/utils/fixTypeFieldValue.js.map +0 -1
- package/migrations/5.39.0/001/utils/getCompressedData.d.ts +0 -4
- package/migrations/5.39.0/001/utils/getCompressedData.js +0 -19
- package/migrations/5.39.0/001/utils/getCompressedData.js.map +0 -1
- package/migrations/5.39.0/001/utils/getDecompressedData.d.ts +0 -1
- package/migrations/5.39.0/001/utils/getDecompressedData.js +0 -31
- package/migrations/5.39.0/001/utils/getDecompressedData.js.map +0 -1
- package/migrations/5.39.0/001/utils/getFallbackIdentity.d.ts +0 -10
- package/migrations/5.39.0/001/utils/getFallbackIdentity.js +0 -49
- package/migrations/5.39.0/001/utils/getFallbackIdentity.js.map +0 -1
- package/migrations/5.39.0/001/utils/getFirstLastPublishedOn.d.ts +0 -13
- package/migrations/5.39.0/001/utils/getFirstLastPublishedOn.js +0 -44
- package/migrations/5.39.0/001/utils/getFirstLastPublishedOn.js.map +0 -1
- package/migrations/5.39.0/001/utils/getNonNullableFieldsWithMissingValues.d.ts +0 -2
- package/migrations/5.39.0/001/utils/getNonNullableFieldsWithMissingValues.js +0 -22
- package/migrations/5.39.0/001/utils/getNonNullableFieldsWithMissingValues.js.map +0 -1
- package/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn.d.ts +0 -13
- package/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn.js +0 -37
- package/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn.js.map +0 -1
- package/migrations/5.39.0/001/utils/hasAllNonNullableValues.d.ts +0 -2
- package/migrations/5.39.0/001/utils/hasAllNonNullableValues.js +0 -21
- package/migrations/5.39.0/001/utils/hasAllNonNullableValues.js.map +0 -1
- package/migrations/5.39.0/001/utils/hasValidTypeFieldValue.d.ts +0 -4
- package/migrations/5.39.0/001/utils/hasValidTypeFieldValue.js +0 -21
- package/migrations/5.39.0/001/utils/hasValidTypeFieldValue.js.map +0 -1
- package/migrations/5.39.0/001/utils/isMigratedEntry.d.ts +0 -2
- package/migrations/5.39.0/001/utils/isMigratedEntry.js +0 -12
- package/migrations/5.39.0/001/utils/isMigratedEntry.js.map +0 -1
- package/migrations/5.39.0/002/ddb/FileManager_5_39_0_002.d.ts +0 -14
- package/migrations/5.39.0/002/ddb/FileManager_5_39_0_002.js +0 -133
- package/migrations/5.39.0/002/ddb/FileManager_5_39_0_002.js.map +0 -1
- package/migrations/5.39.0/002/ddb/index.d.ts +0 -1
- package/migrations/5.39.0/002/ddb/index.js +0 -18
- package/migrations/5.39.0/002/ddb/index.js.map +0 -1
- package/migrations/5.39.0/002/ddb-es/FileManager_5_39_0_002.d.ts +0 -15
- package/migrations/5.39.0/002/ddb-es/FileManager_5_39_0_002.js +0 -190
- package/migrations/5.39.0/002/ddb-es/FileManager_5_39_0_002.js.map +0 -1
- package/migrations/5.39.0/002/ddb-es/index.d.ts +0 -1
- package/migrations/5.39.0/002/ddb-es/index.js +0 -18
- package/migrations/5.39.0/002/ddb-es/index.js.map +0 -1
- package/migrations/5.39.0/002/utils/FileMetadata.d.ts +0 -12
- package/migrations/5.39.0/002/utils/FileMetadata.js +0 -55
- package/migrations/5.39.0/002/utils/FileMetadata.js.map +0 -1
- package/migrations/5.39.0/002/utils/createFileEntity.d.ts +0 -53
- package/migrations/5.39.0/002/utils/createFileEntity.js +0 -50
- package/migrations/5.39.0/002/utils/createFileEntity.js.map +0 -1
- package/migrations/5.39.0/002/utils/createLocaleEntity.d.ts +0 -42
- package/migrations/5.39.0/002/utils/createLocaleEntity.js +0 -32
- package/migrations/5.39.0/002/utils/createLocaleEntity.js.map +0 -1
- package/migrations/5.39.0/002/utils/createTenantEntity.d.ts +0 -48
- package/migrations/5.39.0/002/utils/createTenantEntity.js +0 -13
- package/migrations/5.39.0/002/utils/createTenantEntity.js.map +0 -1
- package/migrations/5.39.2/001/ddb-es/index.d.ts +0 -29
- package/migrations/5.39.2/001/ddb-es/index.js +0 -276
- package/migrations/5.39.2/001/ddb-es/index.js.map +0 -1
- package/migrations/5.39.6/001/ddb-es/MetaFieldsMigration.d.ts +0 -21
- package/migrations/5.39.6/001/ddb-es/MetaFieldsMigration.js +0 -172
- package/migrations/5.39.6/001/ddb-es/MetaFieldsMigration.js.map +0 -1
- package/migrations/5.39.6/001/ddb-es/SegmentProcessor.d.ts +0 -23
- package/migrations/5.39.6/001/ddb-es/SegmentProcessor.js +0 -31
- package/migrations/5.39.6/001/ddb-es/SegmentProcessor.js.map +0 -1
- package/migrations/5.39.6/001/ddb-es/bin.d.ts +0 -2
- package/migrations/5.39.6/001/ddb-es/bin.js +0 -83
- package/migrations/5.39.6/001/ddb-es/bin.js.map +0 -1
- package/migrations/5.39.6/001/ddb-es/createMetaFieldsDataMigrationDeploymentHook.d.ts +0 -11
- package/migrations/5.39.6/001/ddb-es/createMetaFieldsDataMigrationDeploymentHook.js +0 -83
- package/migrations/5.39.6/001/ddb-es/createMetaFieldsDataMigrationDeploymentHook.js.map +0 -1
- package/migrations/5.39.6/001/ddb-es/index.d.ts +0 -29
- package/migrations/5.39.6/001/ddb-es/index.js +0 -329
- package/migrations/5.39.6/001/ddb-es/index.js.map +0 -1
- package/migrations/5.39.6/001/ddb-es/utils.d.ts +0 -28
- package/migrations/5.39.6/001/ddb-es/utils.js +0 -60
- package/migrations/5.39.6/001/ddb-es/utils.js.map +0 -1
- package/migrations/5.39.6/001/ddb-es/worker.d.ts +0 -1
- package/migrations/5.39.6/001/ddb-es/worker.js +0 -465
- package/migrations/5.39.6/001/ddb-es/worker.js.map +0 -1
- package/migrations/5.40.0/001/ddb/compression.d.ts +0 -15
- package/migrations/5.40.0/001/ddb/compression.js +0 -42
- package/migrations/5.40.0/001/ddb/compression.js.map +0 -1
- package/migrations/5.40.0/001/ddb/createBlockEntity.d.ts +0 -42
- package/migrations/5.40.0/001/ddb/createBlockEntity.js +0 -54
- package/migrations/5.40.0/001/ddb/createBlockEntity.js.map +0 -1
- package/migrations/5.40.0/001/ddb/index.d.ts +0 -13
- package/migrations/5.40.0/001/ddb/index.js +0 -158
- package/migrations/5.40.0/001/ddb/index.js.map +0 -1
- package/migrations/5.40.0/001/ddb/types.d.ts +0 -20
- package/migrations/5.40.0/001/ddb/types.js +0 -7
- package/migrations/5.40.0/001/ddb/types.js.map +0 -1
|
@@ -1,465 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
var _utils = require("@webiny/utils");
|
|
5
|
-
var _logger = require("@webiny/logger");
|
|
6
|
-
var _dataMigration = require("@webiny/data-migration");
|
|
7
|
-
var _clientDynamodb = require("@webiny/aws-sdk/client-dynamodb");
|
|
8
|
-
var _apiElasticsearch = require("@webiny/api-elasticsearch");
|
|
9
|
-
var _yargs = _interopRequireDefault(require("yargs/yargs"));
|
|
10
|
-
var _helpers = require("yargs/helpers");
|
|
11
|
-
var _isMigratedEntry = require("../../../5.39.0/001/utils/isMigratedEntry");
|
|
12
|
-
var _hasValidTypeFieldValue = require("../../../5.39.0/001/utils/hasValidTypeFieldValue");
|
|
13
|
-
var _hasAllNonNullableValues = require("../../../5.39.0/001/utils/hasAllNonNullableValues");
|
|
14
|
-
var _getOldestRevisionCreatedOn = require("../../../5.39.0/001/utils/getOldestRevisionCreatedOn");
|
|
15
|
-
var _getFirstLastPublishedOn = require("../../../5.39.0/001/utils/getFirstLastPublishedOn");
|
|
16
|
-
var _assignNewMetaFields = require("../../../5.39.0/001/utils/assignNewMetaFields");
|
|
17
|
-
var _fixTypeFieldValue = require("../../../5.39.0/001/utils/fixTypeFieldValue");
|
|
18
|
-
var _getFallbackIdentity = require("../../../5.39.0/001/utils/getFallbackIdentity");
|
|
19
|
-
var _ensureAllNonNullableValues = require("../../../5.39.0/001/utils/ensureAllNonNullableValues");
|
|
20
|
-
var _getDecompressedData = require("../../../5.39.0/001/utils/getDecompressedData");
|
|
21
|
-
var _getCompressedData = require("../../../5.39.0/001/utils/getCompressedData");
|
|
22
|
-
var _createEntryEntity = require("../../../5.39.0/001/entities/createEntryEntity");
|
|
23
|
-
var _utils2 = require("../../../../utils");
|
|
24
|
-
var _waitUntilHealthy = require("@webiny/api-elasticsearch/utils/waitUntilHealthy");
|
|
25
|
-
var _pinoPretty = _interopRequireDefault(require("pino-pretty"));
|
|
26
|
-
var _path = _interopRequireDefault(require("path"));
|
|
27
|
-
var _os = _interopRequireDefault(require("os"));
|
|
28
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
29
|
-
var _getNonNullableFieldsWithMissingValues = require("../../../5.39.0/001/utils/getNonNullableFieldsWithMissingValues");
|
|
30
|
-
const argv = (0, _yargs.default)((0, _helpers.hideBin)(process.argv)).options({
|
|
31
|
-
runId: {
|
|
32
|
-
type: "string",
|
|
33
|
-
demandOption: true
|
|
34
|
-
},
|
|
35
|
-
ddbTable: {
|
|
36
|
-
type: "string",
|
|
37
|
-
demandOption: true
|
|
38
|
-
},
|
|
39
|
-
ddbEsTable: {
|
|
40
|
-
type: "string",
|
|
41
|
-
demandOption: true
|
|
42
|
-
},
|
|
43
|
-
esEndpoint: {
|
|
44
|
-
type: "string",
|
|
45
|
-
demandOption: true
|
|
46
|
-
},
|
|
47
|
-
segmentIndex: {
|
|
48
|
-
type: "number",
|
|
49
|
-
demandOption: true
|
|
50
|
-
},
|
|
51
|
-
totalSegments: {
|
|
52
|
-
type: "number",
|
|
53
|
-
demandOption: true
|
|
54
|
-
},
|
|
55
|
-
// Elasticsearch health check options.
|
|
56
|
-
esHealthMinClusterHealthStatus: {
|
|
57
|
-
type: "string",
|
|
58
|
-
demandOption: true
|
|
59
|
-
},
|
|
60
|
-
esHealthMaxProcessorPercent: {
|
|
61
|
-
type: "number",
|
|
62
|
-
demandOption: true
|
|
63
|
-
},
|
|
64
|
-
esHealthMaxRamPercent: {
|
|
65
|
-
type: "number",
|
|
66
|
-
demandOption: true
|
|
67
|
-
},
|
|
68
|
-
esHealthMaxWaitingTime: {
|
|
69
|
-
type: "number",
|
|
70
|
-
demandOption: true
|
|
71
|
-
},
|
|
72
|
-
esHealthWaitingTimeStep: {
|
|
73
|
-
type: "number",
|
|
74
|
-
demandOption: true
|
|
75
|
-
}
|
|
76
|
-
}).parseSync();
|
|
77
|
-
const createInitialStatus = () => {
|
|
78
|
-
return {
|
|
79
|
-
lastEvaluatedKey: null,
|
|
80
|
-
stats: {
|
|
81
|
-
iterationsCount: 0,
|
|
82
|
-
recordsScanned: 0,
|
|
83
|
-
recordsUpdated: 0,
|
|
84
|
-
recordsSkipped: 0,
|
|
85
|
-
esHealthChecks: {
|
|
86
|
-
timeSpentWaiting: 0,
|
|
87
|
-
checksCount: 0,
|
|
88
|
-
unhealthyReasons: {}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
};
|
|
93
|
-
let BATCH_WRITE_MAX_CHUNK = 20;
|
|
94
|
-
if (process.env.WEBINY_MIGRATION_5_39_6_001_BATCH_WRITE_MAX_CHUNK) {
|
|
95
|
-
BATCH_WRITE_MAX_CHUNK = parseInt(process.env.WEBINY_MIGRATION_5_39_6_001_BATCH_WRITE_MAX_CHUNK);
|
|
96
|
-
}
|
|
97
|
-
(async () => {
|
|
98
|
-
const logger = (0, _logger.createPinoLogger)({
|
|
99
|
-
level: (0, _logger.getLogLevel)(process.env.MIGRATIONS_LOG_LEVEL, "trace"),
|
|
100
|
-
msgPrefix: `[segment #${argv.segmentIndex}] `
|
|
101
|
-
}, (0, _pinoPretty.default)({
|
|
102
|
-
ignore: "pid,hostname"
|
|
103
|
-
}));
|
|
104
|
-
const documentClient = (0, _clientDynamodb.getDocumentClient)();
|
|
105
|
-
const elasticsearchClient = (0, _apiElasticsearch.createElasticsearchClient)({
|
|
106
|
-
endpoint: `https://${argv.esEndpoint}`
|
|
107
|
-
});
|
|
108
|
-
const primaryTable = (0, _dataMigration.createTable)({
|
|
109
|
-
name: argv.ddbTable,
|
|
110
|
-
documentClient
|
|
111
|
-
});
|
|
112
|
-
const dynamoToEsTable = (0, _dataMigration.createTable)({
|
|
113
|
-
name: argv.ddbEsTable,
|
|
114
|
-
documentClient
|
|
115
|
-
});
|
|
116
|
-
const ddbEntryEntity = (0, _createEntryEntity.createDdbEntryEntity)(primaryTable);
|
|
117
|
-
const ddbEsEntryEntity = (0, _createEntryEntity.createDdbEsEntryEntity)(dynamoToEsTable);
|
|
118
|
-
const status = createInitialStatus();
|
|
119
|
-
const waitUntilHealthy = (0, _waitUntilHealthy.createWaitUntilHealthy)(elasticsearchClient, {
|
|
120
|
-
minClusterHealthStatus: argv.esHealthMinClusterHealthStatus,
|
|
121
|
-
maxProcessorPercent: argv.esHealthMaxProcessorPercent,
|
|
122
|
-
maxRamPercent: argv.esHealthMaxRamPercent,
|
|
123
|
-
maxWaitingTime: argv.esHealthMaxWaitingTime,
|
|
124
|
-
waitingTimeStep: argv.esHealthWaitingTimeStep
|
|
125
|
-
});
|
|
126
|
-
try {
|
|
127
|
-
await (0, _utils2.ddbScanWithCallback)({
|
|
128
|
-
entity: ddbEntryEntity,
|
|
129
|
-
options: {
|
|
130
|
-
segment: argv.segmentIndex,
|
|
131
|
-
segments: argv.totalSegments,
|
|
132
|
-
filters: [{
|
|
133
|
-
attr: "_et",
|
|
134
|
-
eq: "CmsEntries"
|
|
135
|
-
}],
|
|
136
|
-
startKey: status.lastEvaluatedKey || undefined,
|
|
137
|
-
limit: 100
|
|
138
|
-
}
|
|
139
|
-
}, async result => {
|
|
140
|
-
status.stats.iterationsCount++;
|
|
141
|
-
status.stats.recordsScanned += result.items.length;
|
|
142
|
-
if (status.stats.iterationsCount % 5 === 0) {
|
|
143
|
-
// We log every 5th iteration.
|
|
144
|
-
logger.trace(`[iteration #${status.stats.iterationsCount}] Reading ${result.items.length} record(s)...`);
|
|
145
|
-
}
|
|
146
|
-
const ddbItemsToBatchWrite = [];
|
|
147
|
-
const ddbEsItemsToBatchWrite = [];
|
|
148
|
-
const ddbEsItemsToBatchRead = {};
|
|
149
|
-
const fallbackDateTime = new Date().toISOString();
|
|
150
|
-
|
|
151
|
-
// Update records in primary DynamoDB table. Also do preparations for
|
|
152
|
-
// subsequent updates on DDB-ES DynamoDB table, and in Elasticsearch.
|
|
153
|
-
for (const item of result.items) {
|
|
154
|
-
const isFullyMigrated = (0, _isMigratedEntry.isMigratedEntry)(item) && (0, _hasValidTypeFieldValue.hasValidTypeFieldValue)(item) && (0, _hasAllNonNullableValues.hasAllNonNullableValues)(item);
|
|
155
|
-
if (isFullyMigrated) {
|
|
156
|
-
status.stats.recordsSkipped++;
|
|
157
|
-
continue;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
// 1. Check if the data migration was ever performed. If not, let's perform it.
|
|
161
|
-
if (!(0, _isMigratedEntry.isMigratedEntry)(item)) {
|
|
162
|
-
// Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value.
|
|
163
|
-
const createdOn = await (0, _getOldestRevisionCreatedOn.getOldestRevisionCreatedOn)({
|
|
164
|
-
entry: item,
|
|
165
|
-
entryEntity: ddbEntryEntity,
|
|
166
|
-
retryOptions: {
|
|
167
|
-
onFailedAttempt: error => {
|
|
168
|
-
logger.warn({
|
|
169
|
-
error,
|
|
170
|
-
item
|
|
171
|
-
}, `getOldestRevisionCreatedOn attempt #${error.attemptNumber} failed: ${error.message}`);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
const firstLastPublishedOnByFields = await (0, _getFirstLastPublishedOn.getFirstLastPublishedOnBy)({
|
|
176
|
-
entry: item,
|
|
177
|
-
entryEntity: ddbEntryEntity,
|
|
178
|
-
retryOptions: {
|
|
179
|
-
onFailedAttempt: error => {
|
|
180
|
-
logger.warn({
|
|
181
|
-
error,
|
|
182
|
-
item
|
|
183
|
-
}, `getFirstLastPublishedOnBy attempt #${error.attemptNumber} failed: ${error.message}`);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
(0, _assignNewMetaFields.assignNewMetaFields)(item, {
|
|
188
|
-
createdOn,
|
|
189
|
-
...firstLastPublishedOnByFields
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// 2. We've noticed some of the records had an invalid `TYPE` field value
|
|
194
|
-
// in the database. This step addresses this issue.
|
|
195
|
-
if (!(0, _hasValidTypeFieldValue.hasValidTypeFieldValue)(item)) {
|
|
196
|
-
// Fixes the value of the `TYPE` field, if it's not valid.
|
|
197
|
-
(0, _fixTypeFieldValue.fixTypeFieldValue)(item);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
// 3. Finally, once both of the steps were performed, ensure that all
|
|
201
|
-
// new non-nullable meta fields have a value and nothing is missing.
|
|
202
|
-
if (!(0, _hasAllNonNullableValues.hasAllNonNullableValues)(item)) {
|
|
203
|
-
logger.trace((0, _getNonNullableFieldsWithMissingValues.getNonNullableFieldsWithMissingValues)(item), `Detected an entry with missing values for non-nullable meta fields (${item.modelId}/${item.id}).`);
|
|
204
|
-
try {
|
|
205
|
-
const fallbackIdentity = await (0, _getFallbackIdentity.getFallbackIdentity)({
|
|
206
|
-
entity: ddbEntryEntity,
|
|
207
|
-
tenant: item.tenant,
|
|
208
|
-
retryOptions: {
|
|
209
|
-
onFailedAttempt: error => {
|
|
210
|
-
logger.warn({
|
|
211
|
-
error,
|
|
212
|
-
item
|
|
213
|
-
}, `getFallbackIdentity attempt #${error.attemptNumber} failed: ${error.message}`);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
});
|
|
217
|
-
(0, _ensureAllNonNullableValues.ensureAllNonNullableValues)(item, {
|
|
218
|
-
dateTime: fallbackDateTime,
|
|
219
|
-
identity: fallbackIdentity
|
|
220
|
-
});
|
|
221
|
-
logger.trace(`Successfully ensured all non-nullable meta fields have values (${item.modelId}/${item.id}). Will be saving into the database soon.`);
|
|
222
|
-
} catch (e) {
|
|
223
|
-
logger.debug(`Failed to ensure all non-nullable meta fields have values (${item.modelId}/${item.id}): ${e.message}`);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
ddbItemsToBatchWrite.push(ddbEntryEntity.putBatch(item));
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Prepare the loading of DynamoDB Elasticsearch part of the records.
|
|
230
|
-
*/
|
|
231
|
-
|
|
232
|
-
const ddbEsLatestRecordKey = `${item.entryId}:L`;
|
|
233
|
-
if (ddbEsItemsToBatchRead[ddbEsLatestRecordKey]) {
|
|
234
|
-
continue;
|
|
235
|
-
}
|
|
236
|
-
ddbEsItemsToBatchRead[ddbEsLatestRecordKey] = ddbEsEntryEntity.getBatch({
|
|
237
|
-
PK: item.PK,
|
|
238
|
-
SK: "L"
|
|
239
|
-
});
|
|
240
|
-
const ddbEsPublishedRecordKey = `${item.entryId}:P`;
|
|
241
|
-
if (item.status === "published" || !!item.locked) {
|
|
242
|
-
ddbEsItemsToBatchRead[ddbEsPublishedRecordKey] = ddbEsEntryEntity.getBatch({
|
|
243
|
-
PK: item.PK,
|
|
244
|
-
SK: "P"
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
if (Object.keys(ddbEsItemsToBatchRead).length > 0) {
|
|
249
|
-
/**
|
|
250
|
-
* Get all the records from DynamoDB Elasticsearch.
|
|
251
|
-
*/
|
|
252
|
-
const executeBatchReadAll = () => {
|
|
253
|
-
return (0, _utils2.batchReadAll)({
|
|
254
|
-
table: ddbEsEntryEntity.table,
|
|
255
|
-
items: Object.values(ddbEsItemsToBatchRead)
|
|
256
|
-
});
|
|
257
|
-
};
|
|
258
|
-
const ddbEsRecords = await (0, _utils.executeWithRetry)(executeBatchReadAll, {
|
|
259
|
-
onFailedAttempt: error => {
|
|
260
|
-
logger.warn({
|
|
261
|
-
error,
|
|
262
|
-
items: Object.values(ddbEsItemsToBatchRead)
|
|
263
|
-
}, `[DDB-ES Table] Batch (ddbEsItemsToBatchRead) read attempt #${error.attemptNumber} failed: ${error.message}`);
|
|
264
|
-
}
|
|
265
|
-
});
|
|
266
|
-
for (const ddbEsRecord of ddbEsRecords) {
|
|
267
|
-
const decompressedData = await (0, _getDecompressedData.getDecompressedData)(ddbEsRecord.data);
|
|
268
|
-
if (!decompressedData) {
|
|
269
|
-
logger.trace(`[DDB-ES Table] Skipping record "${ddbEsRecord.PK}" as it is not a valid CMS entry...`);
|
|
270
|
-
continue;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
// 1. Check if the data migration was ever performed. If not, let's perform it.
|
|
274
|
-
if (!(0, _isMigratedEntry.isMigratedEntry)(decompressedData)) {
|
|
275
|
-
// Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value.
|
|
276
|
-
const createdOn = await (0, _getOldestRevisionCreatedOn.getOldestRevisionCreatedOn)({
|
|
277
|
-
entry: {
|
|
278
|
-
...decompressedData,
|
|
279
|
-
PK: ddbEsRecord.PK
|
|
280
|
-
},
|
|
281
|
-
entryEntity: ddbEntryEntity,
|
|
282
|
-
retryOptions: {
|
|
283
|
-
onFailedAttempt: error => {
|
|
284
|
-
logger.warn({
|
|
285
|
-
error,
|
|
286
|
-
item: {
|
|
287
|
-
...decompressedData,
|
|
288
|
-
PK: ddbEsRecord.PK
|
|
289
|
-
}
|
|
290
|
-
}, `[DDB-ES Table] getOldestRevisionCreatedOn attempt #${error.attemptNumber} failed: ${error.message}`);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
});
|
|
294
|
-
const firstLastPublishedOnByFields = await (0, _getFirstLastPublishedOn.getFirstLastPublishedOnBy)({
|
|
295
|
-
entry: {
|
|
296
|
-
...decompressedData,
|
|
297
|
-
PK: ddbEsRecord.PK
|
|
298
|
-
},
|
|
299
|
-
entryEntity: ddbEntryEntity,
|
|
300
|
-
retryOptions: {
|
|
301
|
-
onFailedAttempt: error => {
|
|
302
|
-
logger.warn({
|
|
303
|
-
error,
|
|
304
|
-
item: {
|
|
305
|
-
...decompressedData,
|
|
306
|
-
PK: ddbEsRecord.PK
|
|
307
|
-
}
|
|
308
|
-
}, `[DDB-ES Table] getFirstLastPublishedOnBy attempt #${error.attemptNumber} failed: ${error.message}`);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
});
|
|
312
|
-
(0, _assignNewMetaFields.assignNewMetaFields)(decompressedData, {
|
|
313
|
-
createdOn,
|
|
314
|
-
...firstLastPublishedOnByFields
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
// 2. Ensure new non-nullable meta fields have a value and nothing is missing.
|
|
319
|
-
if (!(0, _hasAllNonNullableValues.hasAllNonNullableValues)(decompressedData)) {
|
|
320
|
-
logger.trace((0, _getNonNullableFieldsWithMissingValues.getNonNullableFieldsWithMissingValues)(decompressedData), [`[DDB-ES Table] Detected an entry with missing values for non-nullable meta fields`, `(${decompressedData.modelId}/${decompressedData.id}).`].join(" "));
|
|
321
|
-
try {
|
|
322
|
-
const fallbackIdentity = await (0, _getFallbackIdentity.getFallbackIdentity)({
|
|
323
|
-
entity: ddbEntryEntity,
|
|
324
|
-
tenant: decompressedData.tenant,
|
|
325
|
-
retryOptions: {
|
|
326
|
-
onFailedAttempt: error => {
|
|
327
|
-
logger.warn({
|
|
328
|
-
error,
|
|
329
|
-
item: ddbEntryEntity
|
|
330
|
-
}, `[DDB-ES Table] getFallbackIdentity attempt #${error.attemptNumber} failed: ${error.message}`);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
});
|
|
334
|
-
(0, _ensureAllNonNullableValues.ensureAllNonNullableValues)(decompressedData, {
|
|
335
|
-
dateTime: fallbackDateTime,
|
|
336
|
-
identity: fallbackIdentity
|
|
337
|
-
});
|
|
338
|
-
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(" "));
|
|
339
|
-
} catch (e) {
|
|
340
|
-
logger.error(["[DDB-ES Table] Failed to ensure all non-nullable meta fields have values", `(${decompressedData.modelId}/${decompressedData.id}): ${e.message}`].join(" "));
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
const compressedData = await (0, _getCompressedData.getCompressedData)(decompressedData);
|
|
344
|
-
ddbEsItemsToBatchWrite.push(ddbEsEntryEntity.putBatch({
|
|
345
|
-
...ddbEsRecord,
|
|
346
|
-
data: compressedData
|
|
347
|
-
}));
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
if (ddbItemsToBatchWrite.length) {
|
|
351
|
-
let ddbWriteError = false;
|
|
352
|
-
let ddbEsWriteError = false;
|
|
353
|
-
|
|
354
|
-
// Store data in primary DynamoDB table.
|
|
355
|
-
const execute = () => {
|
|
356
|
-
return (0, _utils2.batchWriteAll)({
|
|
357
|
-
table: ddbEntryEntity.table,
|
|
358
|
-
items: ddbItemsToBatchWrite
|
|
359
|
-
}, BATCH_WRITE_MAX_CHUNK);
|
|
360
|
-
};
|
|
361
|
-
logger.trace(`Storing ${ddbItemsToBatchWrite.length} record(s) in primary DynamoDB table...`);
|
|
362
|
-
try {
|
|
363
|
-
await (0, _utils.executeWithRetry)(execute, {
|
|
364
|
-
onFailedAttempt: error => {
|
|
365
|
-
logger.warn(`Batch write attempt #${error.attemptNumber} failed: ${error.message}`);
|
|
366
|
-
}
|
|
367
|
-
});
|
|
368
|
-
} catch (e) {
|
|
369
|
-
ddbWriteError = true;
|
|
370
|
-
logger.error({
|
|
371
|
-
error: e,
|
|
372
|
-
ddbItemsToBatchWrite
|
|
373
|
-
}, "After multiple retries, failed to batch-store records in primary DynamoDB table.");
|
|
374
|
-
}
|
|
375
|
-
if (ddbEsItemsToBatchWrite.length) {
|
|
376
|
-
logger.trace(`Storing ${ddbEsItemsToBatchWrite.length} record(s) in DDB-ES DynamoDB table...`);
|
|
377
|
-
try {
|
|
378
|
-
const results = await waitUntilHealthy.wait({
|
|
379
|
-
async onUnhealthy(params) {
|
|
380
|
-
const shouldWaitReason = params.waitingReason.name;
|
|
381
|
-
logger.warn(`Cluster is unhealthy (${shouldWaitReason}). Waiting for the cluster to become healthy...`, params);
|
|
382
|
-
if (status.stats.esHealthChecks.unhealthyReasons[shouldWaitReason]) {
|
|
383
|
-
status.stats.esHealthChecks.unhealthyReasons[shouldWaitReason]++;
|
|
384
|
-
} else {
|
|
385
|
-
status.stats.esHealthChecks.unhealthyReasons[shouldWaitReason] = 1;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
});
|
|
389
|
-
status.stats.esHealthChecks.checksCount++;
|
|
390
|
-
status.stats.esHealthChecks.timeSpentWaiting += results.runningTime;
|
|
391
|
-
|
|
392
|
-
// Store data in DDB-ES DynamoDB table.
|
|
393
|
-
const executeDdbEs = () => {
|
|
394
|
-
return (0, _utils2.batchWriteAll)({
|
|
395
|
-
table: ddbEsEntryEntity.table,
|
|
396
|
-
items: ddbEsItemsToBatchWrite
|
|
397
|
-
}, BATCH_WRITE_MAX_CHUNK);
|
|
398
|
-
};
|
|
399
|
-
await (0, _utils.executeWithRetry)(executeDdbEs, {
|
|
400
|
-
onFailedAttempt: error => {
|
|
401
|
-
logger.warn(`[DDB-ES Table] Batch write attempt #${error.attemptNumber} failed: ${error.message}`);
|
|
402
|
-
}
|
|
403
|
-
});
|
|
404
|
-
} catch (e) {
|
|
405
|
-
ddbEsWriteError = true;
|
|
406
|
-
logger.error({
|
|
407
|
-
error: e,
|
|
408
|
-
ddbEsItemsToBatchWrite
|
|
409
|
-
}, "After multiple retries, failed to batch-store records in DDB-ES DynamoDB table.");
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
if (ddbEsWriteError || ddbWriteError) {
|
|
413
|
-
logger.warn('Not increasing the "recordsUpdated" count due to write errors.');
|
|
414
|
-
} else {
|
|
415
|
-
status.stats.recordsUpdated += ddbItemsToBatchWrite.length;
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
// Update checkpoint after every batch.
|
|
420
|
-
let lastEvaluatedKey = true;
|
|
421
|
-
if (result.lastEvaluatedKey) {
|
|
422
|
-
lastEvaluatedKey = result.lastEvaluatedKey;
|
|
423
|
-
}
|
|
424
|
-
status.lastEvaluatedKey = lastEvaluatedKey;
|
|
425
|
-
if (lastEvaluatedKey === true) {
|
|
426
|
-
return false;
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
// Continue further scanning.
|
|
430
|
-
return true;
|
|
431
|
-
}, {
|
|
432
|
-
retry: {
|
|
433
|
-
onFailedAttempt: error => {
|
|
434
|
-
logger.warn({
|
|
435
|
-
lastEvaluatedKey: status.lastEvaluatedKey,
|
|
436
|
-
error
|
|
437
|
-
}, `ddbScanWithCallback attempt #${error.attemptNumber} failed: ${error.message}`);
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
});
|
|
441
|
-
|
|
442
|
-
// Store status in tmp file.
|
|
443
|
-
logger.trace({
|
|
444
|
-
status
|
|
445
|
-
}, "Segment processing completed. Saving status to tmp file...");
|
|
446
|
-
const logFilePath = _path.default.join(_os.default.tmpdir(), `webiny-5-39-6-meta-fields-data-migration-log-${argv.runId}-${argv.segmentIndex}.log`);
|
|
447
|
-
|
|
448
|
-
// Save segment processing stats to a file.
|
|
449
|
-
_fs.default.writeFileSync(logFilePath, JSON.stringify(status.stats, null, 2));
|
|
450
|
-
logger.trace(`Segment processing stats saved in ${logFilePath}.`);
|
|
451
|
-
} catch (error) {
|
|
452
|
-
// Store status in tmp file.
|
|
453
|
-
logger.error({
|
|
454
|
-
status,
|
|
455
|
-
error
|
|
456
|
-
}, "Segment processing failed to complete. Saving status to tmp file...");
|
|
457
|
-
const logFilePath = _path.default.join(_os.default.tmpdir(), `webiny-5-39-6-meta-fields-data-migration-log-${argv.runId}-${argv.segmentIndex}.log`);
|
|
458
|
-
|
|
459
|
-
// Save segment processing stats to a file.
|
|
460
|
-
_fs.default.writeFileSync(logFilePath, JSON.stringify(status.stats, null, 2));
|
|
461
|
-
logger.trace(`Segment processing stats saved in ${logFilePath}.`);
|
|
462
|
-
}
|
|
463
|
-
})();
|
|
464
|
-
|
|
465
|
-
//# sourceMappingURL=worker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_utils","require","_logger","_dataMigration","_clientDynamodb","_apiElasticsearch","_yargs","_interopRequireDefault","_helpers","_isMigratedEntry","_hasValidTypeFieldValue","_hasAllNonNullableValues","_getOldestRevisionCreatedOn","_getFirstLastPublishedOn","_assignNewMetaFields","_fixTypeFieldValue","_getFallbackIdentity","_ensureAllNonNullableValues","_getDecompressedData","_getCompressedData","_createEntryEntity","_utils2","_waitUntilHealthy","_pinoPretty","_path","_os","_fs","_getNonNullableFieldsWithMissingValues","argv","yargs","hideBin","process","options","runId","type","demandOption","ddbTable","ddbEsTable","esEndpoint","segmentIndex","totalSegments","esHealthMinClusterHealthStatus","esHealthMaxProcessorPercent","esHealthMaxRamPercent","esHealthMaxWaitingTime","esHealthWaitingTimeStep","parseSync","createInitialStatus","lastEvaluatedKey","stats","iterationsCount","recordsScanned","recordsUpdated","recordsSkipped","esHealthChecks","timeSpentWaiting","checksCount","unhealthyReasons","BATCH_WRITE_MAX_CHUNK","env","WEBINY_MIGRATION_5_39_6_001_BATCH_WRITE_MAX_CHUNK","parseInt","logger","createPinoLogger","level","getLogLevel","MIGRATIONS_LOG_LEVEL","msgPrefix","pinoPretty","ignore","documentClient","getDocumentClient","elasticsearchClient","createElasticsearchClient","endpoint","primaryTable","createTable","name","dynamoToEsTable","ddbEntryEntity","createDdbEntryEntity","ddbEsEntryEntity","createDdbEsEntryEntity","status","waitUntilHealthy","createWaitUntilHealthy","minClusterHealthStatus","maxProcessorPercent","maxRamPercent","maxWaitingTime","waitingTimeStep","ddbScanWithCallback","entity","segment","segments","filters","attr","eq","startKey","undefined","limit","result","items","length","trace","ddbItemsToBatchWrite","ddbEsItemsToBatchWrite","ddbEsItemsToBatchRead","fallbackDateTime","Date","toISOString","item","isFullyMigrated","isMigratedEntry","hasValidTypeFieldValue","hasAllNonNullableValues","createdOn","getOldestRevisionCreatedOn","entry","entryEntity","retryOptions","onFailedAttempt","error","warn","attemptNumber","message","firstLastPublishedOnByFields","getFirstLastPublishedOnBy","assignNewMetaFields","fixTypeFieldValue","getNonNullableFieldsWithMissingValues","modelId","id","fallbackIdentity","getFallbackIdentity","tenant","ensureAllNonNullableValues","dateTime","identity","e","debug","push","putBatch","ddbEsLatestRecordKey","entryId","getBatch","PK","SK","ddbEsPublishedRecordKey","locked","Object","keys","executeBatchReadAll","batchReadAll","table","values","ddbEsRecords","executeWithRetry","ddbEsRecord","decompressedData","getDecompressedData","data","join","compressedData","getCompressedData","ddbWriteError","ddbEsWriteError","execute","batchWriteAll","results","wait","onUnhealthy","params","shouldWaitReason","waitingReason","runningTime","executeDdbEs","retry","logFilePath","path","os","tmpdir","fs","writeFileSync","JSON","stringify"],"sources":["worker.ts"],"sourcesContent":["import { executeWithRetry } from \"@webiny/utils\";\nimport { createPinoLogger, getLogLevel } from \"@webiny/logger\";\nimport { createTable } from \"@webiny/data-migration\";\nimport { getDocumentClient } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { createElasticsearchClient } from \"@webiny/api-elasticsearch\";\nimport yargs from \"yargs/yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { isMigratedEntry } from \"~/migrations/5.39.0/001/utils/isMigratedEntry\";\nimport { hasValidTypeFieldValue } from \"~/migrations/5.39.0/001/utils/hasValidTypeFieldValue\";\nimport { hasAllNonNullableValues } from \"~/migrations/5.39.0/001/utils/hasAllNonNullableValues\";\nimport { getOldestRevisionCreatedOn } from \"~/migrations/5.39.0/001/utils/getOldestRevisionCreatedOn\";\nimport { getFirstLastPublishedOnBy } from \"~/migrations/5.39.0/001/utils/getFirstLastPublishedOn\";\nimport { assignNewMetaFields } from \"~/migrations/5.39.0/001/utils/assignNewMetaFields\";\nimport { fixTypeFieldValue } from \"~/migrations/5.39.0/001/utils/fixTypeFieldValue\";\nimport { getFallbackIdentity } from \"~/migrations/5.39.0/001/utils/getFallbackIdentity\";\nimport { ensureAllNonNullableValues } from \"~/migrations/5.39.0/001/utils/ensureAllNonNullableValues\";\nimport { getDecompressedData } from \"~/migrations/5.39.0/001/utils/getDecompressedData\";\nimport { getCompressedData } from \"~/migrations/5.39.0/001/utils/getCompressedData\";\nimport { CmsEntry } from \"~/migrations/5.39.0/001/types\";\nimport {\n createDdbEntryEntity,\n createDdbEsEntryEntity\n} from \"~/migrations/5.39.0/001/entities/createEntryEntity\";\nimport {\n batchReadAll,\n BatchReadItem,\n batchWriteAll,\n BatchWriteItem,\n ddbScanWithCallback\n} from \"~/utils\";\nimport { createWaitUntilHealthy } from \"@webiny/api-elasticsearch/utils/waitUntilHealthy\";\nimport pinoPretty from \"pino-pretty\";\nimport { EsHealthChecksParams } from \"~/migrations/5.39.6/001/ddb-es/utils\";\nimport path from \"path\";\nimport os from \"os\";\nimport fs from \"fs\";\nimport { getNonNullableFieldsWithMissingValues } from \"~/migrations/5.39.0/001/utils/getNonNullableFieldsWithMissingValues\";\n\nconst argv = yargs(hideBin(process.argv))\n .options({\n runId: { type: \"string\", demandOption: true },\n ddbTable: { type: \"string\", demandOption: true },\n ddbEsTable: { type: \"string\", demandOption: true },\n esEndpoint: { type: \"string\", demandOption: true },\n segmentIndex: { type: \"number\", demandOption: true },\n totalSegments: { type: \"number\", demandOption: true },\n\n // Elasticsearch health check options.\n esHealthMinClusterHealthStatus: { type: \"string\", demandOption: true },\n esHealthMaxProcessorPercent: { type: \"number\", demandOption: true },\n esHealthMaxRamPercent: { type: \"number\", demandOption: true },\n esHealthMaxWaitingTime: { type: \"number\", demandOption: true },\n esHealthWaitingTimeStep: { type: \"number\", demandOption: true }\n })\n .parseSync();\n\ninterface LastEvaluatedKeyObject {\n PK: string;\n SK: string;\n GSI1_PK: string;\n GSI1_SK: string;\n}\n\ntype LastEvaluatedKey = LastEvaluatedKeyObject | true | null;\n\ninterface MigrationStatus {\n lastEvaluatedKey: LastEvaluatedKey;\n stats: {\n iterationsCount: number;\n recordsScanned: number;\n recordsUpdated: number;\n recordsSkipped: number;\n esHealthChecks: {\n timeSpentWaiting: number;\n checksCount: number;\n unhealthyReasons: {\n [key: string]: number;\n };\n };\n };\n}\n\ninterface DynamoDbElasticsearchRecord {\n PK: string;\n SK: string;\n data: string;\n}\n\nconst createInitialStatus = (): MigrationStatus => {\n return {\n lastEvaluatedKey: null,\n stats: {\n iterationsCount: 0,\n recordsScanned: 0,\n recordsUpdated: 0,\n recordsSkipped: 0,\n esHealthChecks: {\n timeSpentWaiting: 0,\n checksCount: 0,\n unhealthyReasons: {}\n }\n }\n };\n};\n\nlet BATCH_WRITE_MAX_CHUNK = 20;\nif (process.env.WEBINY_MIGRATION_5_39_6_001_BATCH_WRITE_MAX_CHUNK) {\n BATCH_WRITE_MAX_CHUNK = parseInt(process.env.WEBINY_MIGRATION_5_39_6_001_BATCH_WRITE_MAX_CHUNK);\n}\n\n(async () => {\n const logger = createPinoLogger(\n {\n level: getLogLevel(process.env.MIGRATIONS_LOG_LEVEL, \"trace\"),\n msgPrefix: `[segment #${argv.segmentIndex}] `\n },\n pinoPretty({ ignore: \"pid,hostname\" })\n );\n\n const documentClient = getDocumentClient();\n const elasticsearchClient = createElasticsearchClient({\n endpoint: `https://${argv.esEndpoint}`\n });\n\n const primaryTable = createTable({\n name: argv.ddbTable,\n documentClient\n });\n const dynamoToEsTable = createTable({\n name: argv.ddbEsTable,\n documentClient\n });\n\n const ddbEntryEntity = createDdbEntryEntity(primaryTable);\n const ddbEsEntryEntity = createDdbEsEntryEntity(dynamoToEsTable);\n\n const status = createInitialStatus();\n\n const waitUntilHealthy = createWaitUntilHealthy(elasticsearchClient, {\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\n try {\n await ddbScanWithCallback<CmsEntry>(\n {\n entity: ddbEntryEntity,\n options: {\n segment: argv.segmentIndex,\n segments: argv.totalSegments,\n filters: [\n {\n attr: \"_et\",\n eq: \"CmsEntries\"\n }\n ],\n startKey: status.lastEvaluatedKey || undefined,\n limit: 100\n }\n },\n async result => {\n status.stats.iterationsCount++;\n status.stats.recordsScanned += result.items.length;\n\n if (status.stats.iterationsCount % 5 === 0) {\n // We log every 5th iteration.\n logger.trace(\n `[iteration #${status.stats.iterationsCount}] Reading ${result.items.length} record(s)...`\n );\n }\n\n const ddbItemsToBatchWrite: BatchWriteItem[] = [];\n const ddbEsItemsToBatchWrite: BatchWriteItem[] = [];\n const ddbEsItemsToBatchRead: Record<string, BatchReadItem> = {};\n\n const fallbackDateTime = new Date().toISOString();\n\n // Update records in primary DynamoDB table. Also do preparations for\n // subsequent updates on DDB-ES DynamoDB table, and in Elasticsearch.\n for (const item of result.items) {\n const isFullyMigrated =\n isMigratedEntry(item) &&\n hasValidTypeFieldValue(item) &&\n hasAllNonNullableValues(item);\n\n if (isFullyMigrated) {\n status.stats.recordsSkipped++;\n continue;\n }\n\n // 1. Check if the data migration was ever performed. If not, let's perform it.\n if (!isMigratedEntry(item)) {\n // Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value.\n const createdOn = await getOldestRevisionCreatedOn({\n entry: item,\n entryEntity: ddbEntryEntity,\n retryOptions: {\n onFailedAttempt: error => {\n logger.warn(\n { error, item },\n `getOldestRevisionCreatedOn attempt #${error.attemptNumber} failed: ${error.message}`\n );\n }\n }\n });\n\n const firstLastPublishedOnByFields = await getFirstLastPublishedOnBy({\n entry: item,\n entryEntity: ddbEntryEntity,\n retryOptions: {\n onFailedAttempt: error => {\n logger.warn(\n { error, item },\n `getFirstLastPublishedOnBy attempt #${error.attemptNumber} failed: ${error.message}`\n );\n }\n }\n });\n\n assignNewMetaFields(item, {\n createdOn,\n ...firstLastPublishedOnByFields\n });\n }\n\n // 2. We've noticed some of the records had an invalid `TYPE` field value\n // in the database. This step addresses this issue.\n if (!hasValidTypeFieldValue(item)) {\n // Fixes the value of the `TYPE` field, if it's not valid.\n fixTypeFieldValue(item);\n }\n\n // 3. Finally, once both of the steps were performed, ensure that all\n // new non-nullable meta fields have a value and nothing is missing.\n if (!hasAllNonNullableValues(item)) {\n logger.trace(\n getNonNullableFieldsWithMissingValues(item),\n `Detected an entry with missing values for non-nullable meta fields (${item.modelId}/${item.id}).`\n );\n\n try {\n const fallbackIdentity = await getFallbackIdentity({\n entity: ddbEntryEntity,\n tenant: item.tenant,\n retryOptions: {\n onFailedAttempt: error => {\n logger.warn(\n { error, item },\n `getFallbackIdentity attempt #${error.attemptNumber} failed: ${error.message}`\n );\n }\n }\n });\n\n ensureAllNonNullableValues(item, {\n dateTime: fallbackDateTime,\n identity: fallbackIdentity\n });\n\n logger.trace(\n `Successfully ensured all non-nullable meta fields have values (${item.modelId}/${item.id}). Will be saving into the database soon.`\n );\n } catch (e) {\n logger.debug(\n `Failed to ensure all non-nullable meta fields have values (${item.modelId}/${item.id}): ${e.message}`\n );\n }\n }\n\n ddbItemsToBatchWrite.push(ddbEntryEntity.putBatch(item));\n\n /**\n * Prepare the loading of DynamoDB Elasticsearch part of the records.\n */\n\n const ddbEsLatestRecordKey = `${item.entryId}:L`;\n if (ddbEsItemsToBatchRead[ddbEsLatestRecordKey]) {\n continue;\n }\n\n ddbEsItemsToBatchRead[ddbEsLatestRecordKey] = ddbEsEntryEntity.getBatch({\n PK: item.PK,\n SK: \"L\"\n });\n\n const ddbEsPublishedRecordKey = `${item.entryId}:P`;\n if (item.status === \"published\" || !!item.locked) {\n ddbEsItemsToBatchRead[ddbEsPublishedRecordKey] = ddbEsEntryEntity.getBatch({\n PK: item.PK,\n SK: \"P\"\n });\n }\n }\n\n if (Object.keys(ddbEsItemsToBatchRead).length > 0) {\n /**\n * Get all the records from DynamoDB Elasticsearch.\n */\n const executeBatchReadAll = () => {\n return batchReadAll<DynamoDbElasticsearchRecord>({\n table: ddbEsEntryEntity.table,\n items: Object.values(ddbEsItemsToBatchRead)\n });\n };\n\n const ddbEsRecords = await executeWithRetry(executeBatchReadAll, {\n onFailedAttempt: error => {\n logger.warn(\n { error, items: Object.values(ddbEsItemsToBatchRead) },\n `[DDB-ES Table] Batch (ddbEsItemsToBatchRead) read attempt #${error.attemptNumber} failed: ${error.message}`\n );\n }\n });\n\n for (const ddbEsRecord of ddbEsRecords) {\n const decompressedData = await getDecompressedData<CmsEntry>(\n ddbEsRecord.data\n );\n if (!decompressedData) {\n logger.trace(\n `[DDB-ES Table] Skipping record \"${ddbEsRecord.PK}\" as it is not a valid CMS entry...`\n );\n continue;\n }\n\n // 1. Check if the data migration was ever performed. If not, let's perform it.\n if (!isMigratedEntry(decompressedData)) {\n // Get the oldest revision's `createdOn` value. We use that to set the entry-level `createdOn` value.\n const createdOn = await getOldestRevisionCreatedOn({\n entry: { ...decompressedData, PK: ddbEsRecord.PK },\n entryEntity: ddbEntryEntity,\n retryOptions: {\n onFailedAttempt: error => {\n logger.warn(\n {\n error,\n item: { ...decompressedData, PK: ddbEsRecord.PK }\n },\n `[DDB-ES Table] getOldestRevisionCreatedOn attempt #${error.attemptNumber} failed: ${error.message}`\n );\n }\n }\n });\n\n const firstLastPublishedOnByFields = await getFirstLastPublishedOnBy({\n entry: { ...decompressedData, PK: ddbEsRecord.PK },\n entryEntity: ddbEntryEntity,\n retryOptions: {\n onFailedAttempt: error => {\n logger.warn(\n {\n error,\n item: { ...decompressedData, PK: ddbEsRecord.PK }\n },\n `[DDB-ES Table] getFirstLastPublishedOnBy attempt #${error.attemptNumber} failed: ${error.message}`\n );\n }\n }\n });\n\n assignNewMetaFields(decompressedData, {\n createdOn,\n ...firstLastPublishedOnByFields\n });\n }\n\n // 2. Ensure new non-nullable meta fields have a value and nothing is missing.\n if (!hasAllNonNullableValues(decompressedData)) {\n logger.trace(\n getNonNullableFieldsWithMissingValues(decompressedData),\n [\n `[DDB-ES Table] Detected an entry with missing values for non-nullable meta fields`,\n `(${decompressedData.modelId}/${decompressedData.id}).`\n ].join(\" \")\n );\n\n try {\n const fallbackIdentity = await getFallbackIdentity({\n entity: ddbEntryEntity,\n tenant: decompressedData.tenant,\n retryOptions: {\n onFailedAttempt: error => {\n logger.warn(\n { error, item: ddbEntryEntity },\n `[DDB-ES Table] getFallbackIdentity attempt #${error.attemptNumber} failed: ${error.message}`\n );\n }\n }\n });\n\n ensureAllNonNullableValues(decompressedData, {\n dateTime: fallbackDateTime,\n identity: fallbackIdentity\n });\n\n logger.trace(\n [\n `[DDB-ES Table] Successfully ensured all non-nullable meta fields`,\n `have values (${decompressedData.modelId}/${decompressedData.id}).`,\n \"Will be saving the changes soon.\"\n ].join(\" \")\n );\n } catch (e) {\n logger.error(\n [\n \"[DDB-ES Table] Failed to ensure all non-nullable meta fields have values\",\n `(${decompressedData.modelId}/${decompressedData.id}): ${e.message}`\n ].join(\" \")\n );\n }\n }\n\n const compressedData = await getCompressedData(decompressedData);\n\n ddbEsItemsToBatchWrite.push(\n ddbEsEntryEntity.putBatch({\n ...ddbEsRecord,\n data: compressedData\n })\n );\n }\n }\n\n if (ddbItemsToBatchWrite.length) {\n let ddbWriteError = false;\n let ddbEsWriteError = false;\n\n // Store data in primary DynamoDB table.\n const execute = () => {\n return batchWriteAll(\n {\n table: ddbEntryEntity.table,\n items: ddbItemsToBatchWrite\n },\n BATCH_WRITE_MAX_CHUNK\n );\n };\n\n logger.trace(\n `Storing ${ddbItemsToBatchWrite.length} record(s) in primary DynamoDB table...`\n );\n\n try {\n await executeWithRetry(execute, {\n onFailedAttempt: error => {\n logger.warn(\n `Batch write attempt #${error.attemptNumber} failed: ${error.message}`\n );\n }\n });\n } catch (e) {\n ddbWriteError = true;\n logger.error(\n {\n error: e,\n ddbItemsToBatchWrite\n },\n \"After multiple retries, failed to batch-store records in primary DynamoDB table.\"\n );\n }\n\n if (ddbEsItemsToBatchWrite.length) {\n logger.trace(\n `Storing ${ddbEsItemsToBatchWrite.length} record(s) in DDB-ES DynamoDB table...`\n );\n\n try {\n const results = await waitUntilHealthy.wait({\n async onUnhealthy(params) {\n const shouldWaitReason = params.waitingReason.name;\n\n logger.warn(\n `Cluster is unhealthy (${shouldWaitReason}). Waiting for the cluster to become healthy...`,\n params\n );\n\n if (\n status.stats.esHealthChecks.unhealthyReasons[\n shouldWaitReason\n ]\n ) {\n status.stats.esHealthChecks.unhealthyReasons[\n shouldWaitReason\n ]++;\n } else {\n status.stats.esHealthChecks.unhealthyReasons[\n shouldWaitReason\n ] = 1;\n }\n }\n });\n\n status.stats.esHealthChecks.checksCount++;\n status.stats.esHealthChecks.timeSpentWaiting += results.runningTime;\n\n // Store data in DDB-ES DynamoDB table.\n const executeDdbEs = () => {\n return batchWriteAll(\n {\n table: ddbEsEntryEntity.table,\n items: ddbEsItemsToBatchWrite\n },\n BATCH_WRITE_MAX_CHUNK\n );\n };\n\n await executeWithRetry(executeDdbEs, {\n onFailedAttempt: error => {\n logger.warn(\n `[DDB-ES Table] Batch write attempt #${error.attemptNumber} failed: ${error.message}`\n );\n }\n });\n } catch (e) {\n ddbEsWriteError = true;\n logger.error(\n {\n error: e,\n ddbEsItemsToBatchWrite\n },\n \"After multiple retries, failed to batch-store records in DDB-ES DynamoDB table.\"\n );\n }\n }\n\n if (ddbEsWriteError || ddbWriteError) {\n logger.warn(\n 'Not increasing the \"recordsUpdated\" count due to write errors.'\n );\n } else {\n status.stats.recordsUpdated += ddbItemsToBatchWrite.length;\n }\n }\n\n // Update checkpoint after every batch.\n let lastEvaluatedKey: LastEvaluatedKey = true;\n if (result.lastEvaluatedKey) {\n lastEvaluatedKey = result.lastEvaluatedKey as unknown as LastEvaluatedKeyObject;\n }\n\n status.lastEvaluatedKey = lastEvaluatedKey;\n\n if (lastEvaluatedKey === true) {\n return false;\n }\n\n // Continue further scanning.\n return true;\n },\n {\n retry: {\n onFailedAttempt: error => {\n logger.warn(\n {\n lastEvaluatedKey: status.lastEvaluatedKey,\n error\n },\n `ddbScanWithCallback attempt #${error.attemptNumber} failed: ${error.message}`\n );\n }\n }\n }\n );\n\n // Store status in tmp file.\n logger.trace({ status }, \"Segment processing completed. Saving status to tmp file...\");\n const logFilePath = path.join(\n os.tmpdir(),\n `webiny-5-39-6-meta-fields-data-migration-log-${argv.runId}-${argv.segmentIndex}.log`\n );\n\n // Save segment processing stats to a file.\n fs.writeFileSync(logFilePath, JSON.stringify(status.stats, null, 2));\n\n logger.trace(`Segment processing stats saved in ${logFilePath}.`);\n } catch (error) {\n // Store status in tmp file.\n logger.error(\n { status, error },\n \"Segment processing failed to complete. Saving status to tmp file...\"\n );\n const logFilePath = path.join(\n os.tmpdir(),\n `webiny-5-39-6-meta-fields-data-migration-log-${argv.runId}-${argv.segmentIndex}.log`\n );\n\n // Save segment processing stats to a file.\n fs.writeFileSync(logFilePath, JSON.stringify(status.stats, null, 2));\n\n logger.trace(`Segment processing stats saved in ${logFilePath}.`);\n }\n})();\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { PageBlock } from "./types";
|
|
2
|
-
export declare const compress: (data: any) => Promise<{
|
|
3
|
-
compression: string;
|
|
4
|
-
value: string;
|
|
5
|
-
}>;
|
|
6
|
-
export declare const decompress: (pageBlock: PageBlock) => Promise<{
|
|
7
|
-
content: any;
|
|
8
|
-
id: string;
|
|
9
|
-
name: string;
|
|
10
|
-
blockCategory: string;
|
|
11
|
-
createdOn: string;
|
|
12
|
-
createdBy: import("./types").CreatedBy;
|
|
13
|
-
tenant: string;
|
|
14
|
-
locale: string;
|
|
15
|
-
}>;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.decompress = exports.compress = void 0;
|
|
7
|
-
var _gzip = require("@webiny/utils/compression/gzip");
|
|
8
|
-
const GZIP = "gzip";
|
|
9
|
-
const TO_STORAGE_ENCODING = "base64";
|
|
10
|
-
const FROM_STORAGE_ENCODING = "utf8";
|
|
11
|
-
const convertToBuffer = value => {
|
|
12
|
-
if (typeof value === "string") {
|
|
13
|
-
return Buffer.from(value, TO_STORAGE_ENCODING);
|
|
14
|
-
}
|
|
15
|
-
return value;
|
|
16
|
-
};
|
|
17
|
-
const compress = async data => {
|
|
18
|
-
const value = await (0, _gzip.compress)(JSON.stringify(data));
|
|
19
|
-
return {
|
|
20
|
-
compression: GZIP,
|
|
21
|
-
value: value.toString(TO_STORAGE_ENCODING)
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
exports.compress = compress;
|
|
25
|
-
const decompress = async pageBlock => {
|
|
26
|
-
try {
|
|
27
|
-
const buf = await (0, _gzip.decompress)(convertToBuffer(pageBlock.content.value));
|
|
28
|
-
const value = buf.toString(FROM_STORAGE_ENCODING);
|
|
29
|
-
return {
|
|
30
|
-
...pageBlock,
|
|
31
|
-
content: JSON.parse(value)
|
|
32
|
-
};
|
|
33
|
-
} catch (ex) {
|
|
34
|
-
return {
|
|
35
|
-
...pageBlock,
|
|
36
|
-
content: null
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
exports.decompress = decompress;
|
|
41
|
-
|
|
42
|
-
//# sourceMappingURL=compression.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_gzip","require","GZIP","TO_STORAGE_ENCODING","FROM_STORAGE_ENCODING","convertToBuffer","value","Buffer","from","compress","data","gzip","JSON","stringify","compression","toString","exports","decompress","pageBlock","buf","ungzip","content","parse","ex"],"sources":["compression.ts"],"sourcesContent":["import { compress as gzip, decompress as ungzip } from \"@webiny/utils/compression/gzip\";\nimport { PageBlock } from \"./types\";\n\nconst GZIP = \"gzip\";\nconst TO_STORAGE_ENCODING = \"base64\";\nconst FROM_STORAGE_ENCODING = \"utf8\";\n\nconst convertToBuffer = (value: string | Buffer) => {\n if (typeof value === \"string\") {\n return Buffer.from(value, TO_STORAGE_ENCODING);\n }\n return value;\n};\n\nexport const compress = async (data: any) => {\n const value = await gzip(JSON.stringify(data));\n\n return {\n compression: GZIP,\n value: value.toString(TO_STORAGE_ENCODING)\n };\n};\n\nexport const decompress = async (pageBlock: PageBlock) => {\n try {\n const buf = await ungzip(convertToBuffer(pageBlock.content.value));\n const value = buf.toString(FROM_STORAGE_ENCODING);\n return {\n ...pageBlock,\n content: JSON.parse(value)\n };\n } catch (ex) {\n return { ...pageBlock, content: null };\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,MAAMC,IAAI,GAAG,MAAM;AACnB,MAAMC,mBAAmB,GAAG,QAAQ;AACpC,MAAMC,qBAAqB,GAAG,MAAM;AAEpC,MAAMC,eAAe,GAAIC,KAAsB,IAAK;EAChD,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC3B,OAAOC,MAAM,CAACC,IAAI,CAACF,KAAK,EAAEH,mBAAmB,CAAC;EAClD;EACA,OAAOG,KAAK;AAChB,CAAC;AAEM,MAAMG,QAAQ,GAAG,MAAOC,IAAS,IAAK;EACzC,MAAMJ,KAAK,GAAG,MAAM,IAAAK,cAAI,EAACC,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC,CAAC;EAE9C,OAAO;IACHI,WAAW,EAAEZ,IAAI;IACjBI,KAAK,EAAEA,KAAK,CAACS,QAAQ,CAACZ,mBAAmB;EAC7C,CAAC;AACL,CAAC;AAACa,OAAA,CAAAP,QAAA,GAAAA,QAAA;AAEK,MAAMQ,UAAU,GAAG,MAAOC,SAAoB,IAAK;EACtD,IAAI;IACA,MAAMC,GAAG,GAAG,MAAM,IAAAC,gBAAM,EAACf,eAAe,CAACa,SAAS,CAACG,OAAO,CAACf,KAAK,CAAC,CAAC;IAClE,MAAMA,KAAK,GAAGa,GAAG,CAACJ,QAAQ,CAACX,qBAAqB,CAAC;IACjD,OAAO;MACH,GAAGc,SAAS;MACZG,OAAO,EAAET,IAAI,CAACU,KAAK,CAAChB,KAAK;IAC7B,CAAC;EACL,CAAC,CAAC,OAAOiB,EAAE,EAAE;IACT,OAAO;MAAE,GAAGL,SAAS;MAAEG,OAAO,EAAE;IAAK,CAAC;EAC1C;AACJ,CAAC;AAACL,OAAA,CAAAC,UAAA,GAAAA,UAAA","ignoreList":[]}
|