@webiny/api-elasticsearch-tasks 0.0.0-unstable.eb196ccd2f → 0.0.0-unstable.f6dc066313

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.
Files changed (152) hide show
  1. package/README.md +10 -9
  2. package/abstractions/DbRegistry.d.ts +11 -0
  3. package/abstractions/DbRegistry.js +4 -0
  4. package/abstractions/DbRegistry.js.map +1 -0
  5. package/abstractions/OpensearchTenantIndexFactory.d.ts +14 -0
  6. package/abstractions/OpensearchTenantIndexFactory.js +4 -0
  7. package/abstractions/OpensearchTenantIndexFactory.js.map +1 -0
  8. package/abstractions/SynchronizationContext.d.ts +6 -0
  9. package/abstractions/SynchronizationContext.js +4 -0
  10. package/abstractions/SynchronizationContext.js.map +1 -0
  11. package/errors/IndexSettingsGetError.d.ts +1 -1
  12. package/errors/IndexSettingsGetError.js +2 -10
  13. package/errors/IndexSettingsGetError.js.map +1 -1
  14. package/errors/IndexSettingsSetError.d.ts +1 -1
  15. package/errors/IndexSettingsSetError.js +2 -10
  16. package/errors/IndexSettingsSetError.js.map +1 -1
  17. package/errors/IndexingDisableError.js +1 -8
  18. package/errors/IndexingDisableError.js.map +1 -1
  19. package/errors/IndexingEnableError.js +1 -8
  20. package/errors/IndexingEnableError.js.map +1 -1
  21. package/errors/index.d.ts +4 -4
  22. package/errors/index.js +4 -49
  23. package/errors/index.js.map +1 -1
  24. package/helpers/getClients.d.ts +5 -0
  25. package/helpers/getClients.js +14 -0
  26. package/helpers/getClients.js.map +1 -0
  27. package/helpers/scan.d.ts +2 -2
  28. package/helpers/scan.js +3 -10
  29. package/helpers/scan.js.map +1 -1
  30. package/index.d.ts +5 -5
  31. package/index.js +14 -25
  32. package/index.js.map +1 -1
  33. package/package.json +26 -30
  34. package/settings/DisableIndexing.d.ts +2 -2
  35. package/settings/DisableIndexing.js +3 -10
  36. package/settings/DisableIndexing.js.map +1 -1
  37. package/settings/EnableIndexing.d.ts +2 -2
  38. package/settings/EnableIndexing.js +3 -10
  39. package/settings/EnableIndexing.js.map +1 -1
  40. package/settings/IndexManager.d.ts +2 -2
  41. package/settings/IndexManager.js +10 -17
  42. package/settings/IndexManager.js.map +1 -1
  43. package/settings/IndexSettingsManager.d.ts +1 -1
  44. package/settings/IndexSettingsManager.js +4 -11
  45. package/settings/IndexSettingsManager.js.map +1 -1
  46. package/settings/index.d.ts +1 -1
  47. package/settings/index.js +1 -16
  48. package/settings/index.js.map +1 -1
  49. package/settings/types.d.ts +1 -1
  50. package/settings/types.js +1 -5
  51. package/settings/types.js.map +1 -1
  52. package/tasks/Manager.d.ts +15 -25
  53. package/tasks/Manager.js +10 -31
  54. package/tasks/Manager.js.map +1 -1
  55. package/tasks/createIndexes/CreateIndexesTask.d.ts +23 -0
  56. package/tasks/createIndexes/CreateIndexesTask.js +53 -0
  57. package/tasks/createIndexes/CreateIndexesTask.js.map +1 -0
  58. package/tasks/createIndexes/CreateIndexesTaskRunner.d.ts +14 -8
  59. package/tasks/createIndexes/CreateIndexesTaskRunner.js +22 -29
  60. package/tasks/createIndexes/CreateIndexesTaskRunner.js.map +1 -1
  61. package/tasks/createIndexes/OnBeforeTrigger.d.ts +7 -9
  62. package/tasks/createIndexes/OnBeforeTrigger.js +11 -28
  63. package/tasks/createIndexes/OnBeforeTrigger.js.map +1 -1
  64. package/tasks/createIndexes/createIndex.d.ts +1 -1
  65. package/tasks/createIndexes/createIndex.js +2 -9
  66. package/tasks/createIndexes/createIndex.js.map +1 -1
  67. package/tasks/createIndexes/index.d.ts +2 -3
  68. package/tasks/createIndexes/index.js +17 -63
  69. package/tasks/createIndexes/index.js.map +1 -1
  70. package/tasks/createIndexes/listIndexes.d.ts +4 -12
  71. package/tasks/createIndexes/listIndexes.js +10 -43
  72. package/tasks/createIndexes/listIndexes.js.map +1 -1
  73. package/tasks/createIndexes/types.js +1 -5
  74. package/tasks/dataSynchronization/DataSynchronizationTask.d.ts +34 -0
  75. package/tasks/dataSynchronization/DataSynchronizationTask.js +69 -0
  76. package/tasks/dataSynchronization/DataSynchronizationTask.js.map +1 -0
  77. package/tasks/dataSynchronization/DataSynchronizationTaskRunner.d.ts +6 -3
  78. package/tasks/dataSynchronization/DataSynchronizationTaskRunner.js +7 -17
  79. package/tasks/dataSynchronization/DataSynchronizationTaskRunner.js.map +1 -1
  80. package/tasks/dataSynchronization/createFactories.d.ts +1 -1
  81. package/tasks/dataSynchronization/createFactories.js +3 -10
  82. package/tasks/dataSynchronization/createFactories.js.map +1 -1
  83. package/tasks/dataSynchronization/elasticsearch/ElasticsearchFetcher.d.ts +1 -1
  84. package/tasks/dataSynchronization/elasticsearch/ElasticsearchFetcher.js +5 -12
  85. package/tasks/dataSynchronization/elasticsearch/ElasticsearchFetcher.js.map +1 -1
  86. package/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.d.ts +8 -10
  87. package/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.js +18 -24
  88. package/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.js.map +1 -1
  89. package/tasks/dataSynchronization/elasticsearch/ElasticsearchToDynamoDbSynchronization.d.ts +1 -1
  90. package/tasks/dataSynchronization/elasticsearch/ElasticsearchToDynamoDbSynchronization.js +6 -13
  91. package/tasks/dataSynchronization/elasticsearch/ElasticsearchToDynamoDbSynchronization.js.map +1 -1
  92. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.d.ts +1 -1
  93. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.js +1 -5
  94. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.js.map +1 -1
  95. package/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchSynchronize.js +1 -5
  96. package/tasks/dataSynchronization/elasticsearch/shouldIgnoreEsResponseError.js +1 -8
  97. package/tasks/dataSynchronization/elasticsearch/shouldIgnoreEsResponseError.js.map +1 -1
  98. package/tasks/dataSynchronization/entities/getElasticsearchEntity.d.ts +7 -710
  99. package/tasks/dataSynchronization/entities/getElasticsearchEntity.js +6 -28
  100. package/tasks/dataSynchronization/entities/getElasticsearchEntity.js.map +1 -1
  101. package/tasks/dataSynchronization/entities/getElasticsearchEntityType.d.ts +1 -4
  102. package/tasks/dataSynchronization/entities/getElasticsearchEntityType.js +2 -19
  103. package/tasks/dataSynchronization/entities/getElasticsearchEntityType.js.map +1 -1
  104. package/tasks/dataSynchronization/entities/getTable.d.ts +3 -3
  105. package/tasks/dataSynchronization/entities/getTable.js +3 -10
  106. package/tasks/dataSynchronization/entities/getTable.js.map +1 -1
  107. package/tasks/dataSynchronization/entities/index.d.ts +3 -3
  108. package/tasks/dataSynchronization/entities/index.js +3 -38
  109. package/tasks/dataSynchronization/entities/index.js.map +1 -1
  110. package/tasks/dataSynchronization/index.d.ts +3 -4
  111. package/tasks/dataSynchronization/index.js +22 -74
  112. package/tasks/dataSynchronization/index.js.map +1 -1
  113. package/tasks/dataSynchronization/types.d.ts +9 -8
  114. package/tasks/dataSynchronization/types.js +1 -5
  115. package/tasks/dataSynchronization/types.js.map +1 -1
  116. package/tasks/enableIndexing/EnableIndexingTaskRunner.d.ts +5 -6
  117. package/tasks/enableIndexing/EnableIndexingTaskRunner.js +5 -13
  118. package/tasks/enableIndexing/EnableIndexingTaskRunner.js.map +1 -1
  119. package/tasks/enableIndexing/index.d.ts +2 -3
  120. package/tasks/enableIndexing/index.js +40 -46
  121. package/tasks/enableIndexing/index.js.map +1 -1
  122. package/tasks/enableIndexing/types.js +1 -5
  123. package/tasks/index.d.ts +4 -4
  124. package/tasks/index.js +4 -49
  125. package/tasks/index.js.map +1 -1
  126. package/tasks/reindexing/ReindexingTaskRunner.d.ts +4 -5
  127. package/tasks/reindexing/ReindexingTaskRunner.js +18 -26
  128. package/tasks/reindexing/ReindexingTaskRunner.js.map +1 -1
  129. package/tasks/reindexing/index.d.ts +1 -1
  130. package/tasks/reindexing/index.js +1 -16
  131. package/tasks/reindexing/index.js.map +1 -1
  132. package/tasks/reindexing/reindexingTaskDefinition.d.ts +2 -2
  133. package/tasks/reindexing/reindexingTaskDefinition.js +43 -44
  134. package/tasks/reindexing/reindexingTaskDefinition.js.map +1 -1
  135. package/types.d.ts +18 -20
  136. package/types.js +1 -5
  137. package/types.js.map +1 -1
  138. package/definitions/entry.d.ts +0 -11
  139. package/definitions/entry.js +0 -43
  140. package/definitions/entry.js.map +0 -1
  141. package/definitions/index.d.ts +0 -2
  142. package/definitions/index.js +0 -29
  143. package/definitions/index.js.map +0 -1
  144. package/definitions/table.d.ts +0 -7
  145. package/definitions/table.js +0 -23
  146. package/definitions/table.js.map +0 -1
  147. package/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin.d.ts +0 -23
  148. package/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin.js +0 -25
  149. package/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin.js.map +0 -1
  150. package/tasks/createIndexes/listCreateElasticsearchIndexTaskPlugin.d.ts +0 -4
  151. package/tasks/createIndexes/listCreateElasticsearchIndexTaskPlugin.js +0 -13
  152. package/tasks/createIndexes/listCreateElasticsearchIndexTaskPlugin.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_listIndexes","require","_createIndex","_listCreateElasticsearchIndexTaskPlugin","CreateIndexesTaskRunner","constructor","manager","indexManager","execute","matching","done","plugins","listCreateElasticsearchIndexTaskPlugin","context","length","response","indexes","listIndexes","isIndexAllowed","index","includes","createIndex","createIndexFactory","settings","isAborted","aborted","isCloseToTimeout","continue","exists","indexExists","push","create","store","addInfoLog","message","data","ex","addErrorLog","error","exports"],"sources":["CreateIndexesTaskRunner.ts"],"sourcesContent":["import type { Manager } from \"~/tasks/Manager\";\nimport type { IndexManager } from \"~/settings\";\nimport type { ITaskResponseResult } from \"@webiny/tasks\";\nimport type { IElasticsearchCreateIndexesTaskInput } from \"./types\";\nimport { listIndexes } from \"./listIndexes\";\nimport { createIndexFactory } from \"./createIndex\";\nimport type { Context } from \"~/types\";\nimport { listCreateElasticsearchIndexTaskPlugin } from \"./listCreateElasticsearchIndexTaskPlugin\";\n\nexport class CreateIndexesTaskRunner {\n private readonly manager: Manager<IElasticsearchCreateIndexesTaskInput>;\n private readonly indexManager: IndexManager;\n\n public constructor(\n manager: Manager<IElasticsearchCreateIndexesTaskInput>,\n indexManager: IndexManager\n ) {\n this.manager = manager;\n\n this.indexManager = indexManager;\n }\n\n public async execute(\n matching: string | undefined,\n done: string[]\n ): Promise<ITaskResponseResult> {\n const plugins = listCreateElasticsearchIndexTaskPlugin<Context>(\n this.manager.context.plugins\n );\n if (plugins.length === 0) {\n return this.manager.response.done(\"No index plugins found.\");\n }\n\n const indexes = await listIndexes({\n context: this.manager.context,\n plugins\n });\n\n if (indexes.length === 0) {\n return this.manager.response.done(\"No indexes found.\");\n }\n\n const isIndexAllowed = (index: string): boolean => {\n if (typeof matching !== \"string\" || !matching) {\n return true;\n }\n return index.includes(matching);\n };\n\n const createIndex = createIndexFactory(this.indexManager);\n\n for (const { index, settings } of indexes) {\n if (this.manager.isAborted()) {\n return this.manager.response.aborted();\n } else if (this.manager.isCloseToTimeout()) {\n return this.manager.response.continue({\n done\n });\n }\n try {\n if (done.includes(index)) {\n continue;\n } else if (isIndexAllowed(index) === false) {\n continue;\n }\n const exists = await this.indexManager.indexExists(index);\n if (exists) {\n continue;\n }\n done.push(index);\n await createIndex.create(index, settings);\n await this.manager.store.addInfoLog({\n message: `Index \"${index}\" created.`,\n data: {\n index\n }\n });\n } catch (ex) {\n await this.manager.store.addErrorLog({\n message: `Failed to create index \"${index}\".`,\n error: ex\n });\n }\n }\n\n return this.manager.response.done(\"Indexes created.\", {\n done\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["listIndexes","createIndexFactory","CreateIndexesTaskRunner","constructor","tenantContext","listTenantsUseCase","indexFactories","manager","indexManager","taskController","controller","execute","matching","done","length","response","tenantsResult","tenants","value","indexes","isIndexAllowed","index","includes","createIndex","settings","runtime","isAborted","aborted","isCloseToTimeout","continue","exists","indexExists","push","create","logger","info","message","data","ex","error"],"sources":["CreateIndexesTaskRunner.ts"],"sourcesContent":["import type { Manager } from \"~/tasks/Manager.js\";\nimport type { IndexManager } from \"~/settings/index.js\";\nimport type { IElasticsearchCreateIndexesTaskInput } from \"./types.js\";\nimport { listIndexes } from \"./listIndexes.js\";\nimport { createIndexFactory } from \"./createIndex.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { OpensearchTenantIndexFactory } from \"~/abstractions/OpensearchTenantIndexFactory.js\";\nimport { ListTenantsUseCase } from \"@webiny/api-core/features/tenancy/ListTenants/index.js\";\nimport { TaskController } from \"@webiny/api-core/features/task/TaskController/index.js\";\n\nexport class CreateIndexesTaskRunner {\n private taskController: TaskController.Interface;\n\n public constructor(\n private tenantContext: TenantContext.Interface,\n private listTenantsUseCase: ListTenantsUseCase.Interface,\n private indexFactories: OpensearchTenantIndexFactory.Interface[],\n manager: Manager<IElasticsearchCreateIndexesTaskInput>,\n private indexManager: IndexManager\n ) {\n this.taskController = manager.controller;\n }\n\n public async execute(\n matching: string | undefined,\n done: string[]\n ): Promise<TaskDefinition.Result> {\n if (this.indexFactories.length === 0) {\n return this.taskController.response.done(\"No index plugins found.\");\n }\n\n const tenantsResult = await this.listTenantsUseCase.execute();\n const tenants = tenantsResult.value;\n\n const indexes = await listIndexes(this.tenantContext, tenants, this.indexFactories);\n\n if (indexes.length === 0) {\n return this.taskController.response.done(\"No indexes found.\");\n }\n\n const isIndexAllowed = (index: string): boolean => {\n if (typeof matching !== \"string\" || !matching) {\n return true;\n }\n return index.includes(matching);\n };\n\n const createIndex = createIndexFactory(this.indexManager);\n\n for (const { index, settings } of indexes) {\n if (this.taskController.runtime.isAborted()) {\n return this.taskController.response.aborted();\n } else if (this.taskController.runtime.isCloseToTimeout()) {\n return this.taskController.response.continue({\n done\n });\n }\n try {\n if (done.includes(index)) {\n continue;\n } else if (isIndexAllowed(index) === false) {\n continue;\n }\n const exists = await this.indexManager.indexExists(index);\n if (exists) {\n continue;\n }\n done.push(index);\n await createIndex.create(index, settings);\n await this.taskController.logger.info({\n message: `Index \"${index}\" created.`,\n data: { index }\n });\n } catch (ex) {\n await this.taskController.logger.error({\n message: `Failed to create index \"${index}\".`,\n error: ex\n });\n }\n }\n\n return this.taskController.response.done(\"Indexes created.\", {\n done\n });\n }\n}\n"],"mappings":"AAGA,SAASA,WAAW;AACpB,SAASC,kBAAkB;AAO3B,OAAO,MAAMC,uBAAuB,CAAC;EAG1BC,WAAWA,CACNC,aAAsC,EACtCC,kBAAgD,EAChDC,cAAwD,EAChEC,OAAsD,EAC9CC,YAA0B,EACpC;IAAA,KALUJ,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,kBAAgD,GAAhDA,kBAAgD;IAAA,KAChDC,cAAwD,GAAxDA,cAAwD;IAAA,KAExDE,YAA0B,GAA1BA,YAA0B;IAElC,IAAI,CAACC,cAAc,GAAGF,OAAO,CAACG,UAAU;EAC5C;EAEA,MAAaC,OAAOA,CAChBC,QAA4B,EAC5BC,IAAc,EACgB;IAC9B,IAAI,IAAI,CAACP,cAAc,CAACQ,MAAM,KAAK,CAAC,EAAE;MAClC,OAAO,IAAI,CAACL,cAAc,CAACM,QAAQ,CAACF,IAAI,CAAC,yBAAyB,CAAC;IACvE;IAEA,MAAMG,aAAa,GAAG,MAAM,IAAI,CAACX,kBAAkB,CAACM,OAAO,CAAC,CAAC;IAC7D,MAAMM,OAAO,GAAGD,aAAa,CAACE,KAAK;IAEnC,MAAMC,OAAO,GAAG,MAAMnB,WAAW,CAAC,IAAI,CAACI,aAAa,EAAEa,OAAO,EAAE,IAAI,CAACX,cAAc,CAAC;IAEnF,IAAIa,OAAO,CAACL,MAAM,KAAK,CAAC,EAAE;MACtB,OAAO,IAAI,CAACL,cAAc,CAACM,QAAQ,CAACF,IAAI,CAAC,mBAAmB,CAAC;IACjE;IAEA,MAAMO,cAAc,GAAIC,KAAa,IAAc;MAC/C,IAAI,OAAOT,QAAQ,KAAK,QAAQ,IAAI,CAACA,QAAQ,EAAE;QAC3C,OAAO,IAAI;MACf;MACA,OAAOS,KAAK,CAACC,QAAQ,CAACV,QAAQ,CAAC;IACnC,CAAC;IAED,MAAMW,WAAW,GAAGtB,kBAAkB,CAAC,IAAI,CAACO,YAAY,CAAC;IAEzD,KAAK,MAAM;MAAEa,KAAK;MAAEG;IAAS,CAAC,IAAIL,OAAO,EAAE;MACvC,IAAI,IAAI,CAACV,cAAc,CAACgB,OAAO,CAACC,SAAS,CAAC,CAAC,EAAE;QACzC,OAAO,IAAI,CAACjB,cAAc,CAACM,QAAQ,CAACY,OAAO,CAAC,CAAC;MACjD,CAAC,MAAM,IAAI,IAAI,CAAClB,cAAc,CAACgB,OAAO,CAACG,gBAAgB,CAAC,CAAC,EAAE;QACvD,OAAO,IAAI,CAACnB,cAAc,CAACM,QAAQ,CAACc,QAAQ,CAAC;UACzChB;QACJ,CAAC,CAAC;MACN;MACA,IAAI;QACA,IAAIA,IAAI,CAACS,QAAQ,CAACD,KAAK,CAAC,EAAE;UACtB;QACJ,CAAC,MAAM,IAAID,cAAc,CAACC,KAAK,CAAC,KAAK,KAAK,EAAE;UACxC;QACJ;QACA,MAAMS,MAAM,GAAG,MAAM,IAAI,CAACtB,YAAY,CAACuB,WAAW,CAACV,KAAK,CAAC;QACzD,IAAIS,MAAM,EAAE;UACR;QACJ;QACAjB,IAAI,CAACmB,IAAI,CAACX,KAAK,CAAC;QAChB,MAAME,WAAW,CAACU,MAAM,CAACZ,KAAK,EAAEG,QAAQ,CAAC;QACzC,MAAM,IAAI,CAACf,cAAc,CAACyB,MAAM,CAACC,IAAI,CAAC;UAClCC,OAAO,EAAE,UAAUf,KAAK,YAAY;UACpCgB,IAAI,EAAE;YAAEhB;UAAM;QAClB,CAAC,CAAC;MACN,CAAC,CAAC,OAAOiB,EAAE,EAAE;QACT,MAAM,IAAI,CAAC7B,cAAc,CAACyB,MAAM,CAACK,KAAK,CAAC;UACnCH,OAAO,EAAE,2BAA2Bf,KAAK,IAAI;UAC7CkB,KAAK,EAAED;QACX,CAAC,CAAC;MACN;IACJ;IAEA,OAAO,IAAI,CAAC7B,cAAc,CAACM,QAAQ,CAACF,IAAI,CAAC,kBAAkB,EAAE;MACzDA;IACJ,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
@@ -1,12 +1,10 @@
1
- import type { Context } from "../../types";
2
- import type { IndexManager } from "../../settings";
3
- export interface IOnBeforeTriggerParams {
4
- indexManager: IndexManager;
5
- context: Context;
6
- }
1
+ import type { IndexManager } from "../../settings/index.js";
2
+ import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
3
+ import { OpensearchTenantIndexFactory } from "../../abstractions/OpensearchTenantIndexFactory.js";
7
4
  export declare class OnBeforeTrigger {
8
- private readonly context;
9
- private readonly indexManager;
10
- constructor(params: IOnBeforeTriggerParams);
5
+ private indexManager;
6
+ private tenantContext;
7
+ private indexFactories;
8
+ constructor(indexManager: IndexManager, tenantContext: TenantContext.Interface, indexFactories: OpensearchTenantIndexFactory.Interface[]);
11
9
  run(targets: string[] | undefined): Promise<void>;
12
10
  }
@@ -1,34 +1,18 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.OnBeforeTrigger = void 0;
7
- var _listIndexes = require("./listIndexes");
8
- var _createIndex = require("./createIndex");
9
- var _listCreateElasticsearchIndexTaskPlugin = require("./listCreateElasticsearchIndexTaskPlugin");
10
- class OnBeforeTrigger {
11
- constructor(params) {
12
- this.context = params.context;
13
- this.indexManager = params.indexManager;
1
+ import { listIndexes } from "./listIndexes.js";
2
+ import { createIndexFactory } from "./createIndex.js";
3
+ export class OnBeforeTrigger {
4
+ constructor(indexManager, tenantContext, indexFactories) {
5
+ this.indexManager = indexManager;
6
+ this.tenantContext = tenantContext;
7
+ this.indexFactories = indexFactories;
14
8
  }
15
9
  async run(targets) {
16
- const plugins = (0, _listCreateElasticsearchIndexTaskPlugin.listCreateElasticsearchIndexTaskPlugin)(this.context.plugins);
17
- const tenant = this.context.tenancy.getCurrentTenant();
18
- if (!tenant?.id) {
10
+ const tenant = this.tenantContext.getTenant();
11
+ if (!tenant) {
19
12
  throw new Error("Something went wrong, tenant not found when triggering a task.");
20
13
  }
21
- const locale = this.context.i18n.getContentLocale();
22
- if (!locale) {
23
- throw new Error("Something went wrong, locale not found when triggering a task.");
24
- }
25
14
  try {
26
- const allIndexes = await (0, _listIndexes.listIndexes)({
27
- context: this.context,
28
- plugins,
29
- tenants: [tenant],
30
- locales: [locale]
31
- });
15
+ const allIndexes = await listIndexes(this.tenantContext, [tenant], this.indexFactories);
32
16
  const indexes = allIndexes.filter(index => {
33
17
  if (!targets?.length) {
34
18
  return true;
@@ -46,7 +30,7 @@ class OnBeforeTrigger {
46
30
  });
47
31
  return;
48
32
  }
49
- const createIndex = (0, _createIndex.createIndexFactory)(this.indexManager);
33
+ const createIndex = createIndexFactory(this.indexManager);
50
34
  for (const {
51
35
  index,
52
36
  settings
@@ -63,6 +47,5 @@ class OnBeforeTrigger {
63
47
  }
64
48
  }
65
49
  }
66
- exports.OnBeforeTrigger = OnBeforeTrigger;
67
50
 
68
51
  //# sourceMappingURL=OnBeforeTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_listIndexes","require","_createIndex","_listCreateElasticsearchIndexTaskPlugin","OnBeforeTrigger","constructor","params","context","indexManager","run","targets","plugins","listCreateElasticsearchIndexTaskPlugin","tenant","tenancy","getCurrentTenant","id","Error","locale","i18n","getContentLocale","allIndexes","listIndexes","tenants","locales","indexes","filter","index","length","t","includes","console","warn","createIndex","createIndexFactory","settings","log","createIfNotExists","ex","error","exports"],"sources":["OnBeforeTrigger.ts"],"sourcesContent":["import type { Context } from \"~/types\";\nimport type { IndexManager } from \"~/settings\";\nimport { listIndexes } from \"./listIndexes\";\nimport { createIndexFactory } from \"~/tasks/createIndexes/createIndex\";\nimport { listCreateElasticsearchIndexTaskPlugin } from \"~/tasks/createIndexes/listCreateElasticsearchIndexTaskPlugin\";\n\nexport interface IOnBeforeTriggerParams {\n indexManager: IndexManager;\n context: Context;\n}\n\nexport class OnBeforeTrigger {\n private readonly context: Context;\n private readonly indexManager: IndexManager;\n\n public constructor(params: IOnBeforeTriggerParams) {\n this.context = params.context;\n this.indexManager = params.indexManager;\n }\n\n public async run(targets: string[] | undefined): Promise<void> {\n const plugins = listCreateElasticsearchIndexTaskPlugin<Context>(this.context.plugins);\n\n const tenant = this.context.tenancy.getCurrentTenant();\n if (!tenant?.id) {\n throw new Error(\"Something went wrong, tenant not found when triggering a task.\");\n }\n const locale = this.context.i18n.getContentLocale();\n if (!locale) {\n throw new Error(\"Something went wrong, locale not found when triggering a task.\");\n }\n try {\n const allIndexes = await listIndexes({\n context: this.context,\n plugins,\n tenants: [tenant],\n locales: [locale]\n });\n const indexes = allIndexes.filter(index => {\n if (!targets?.length) {\n return true;\n }\n for (const t of targets) {\n if (index.index.includes(t)) {\n return true;\n }\n }\n return false;\n });\n if (indexes.length === 0) {\n console.warn(\n \"There are no indexes to create before triggering the Create indexes task.\",\n {\n targets\n }\n );\n return;\n }\n\n const createIndex = createIndexFactory(this.indexManager);\n\n for (const { index, settings } of indexes) {\n try {\n console.log(\"Creating index\", index);\n await createIndex.createIfNotExists(index, settings);\n } catch (ex) {\n console.error(`Failed to create index \"${index}\".`, ex);\n }\n }\n } catch (ex) {\n console.error(ex);\n }\n }\n}\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,uCAAA,GAAAF,OAAA;AAOO,MAAMG,eAAe,CAAC;EAIlBC,WAAWA,CAACC,MAA8B,EAAE;IAC/C,IAAI,CAACC,OAAO,GAAGD,MAAM,CAACC,OAAO;IAC7B,IAAI,CAACC,YAAY,GAAGF,MAAM,CAACE,YAAY;EAC3C;EAEA,MAAaC,GAAGA,CAACC,OAA6B,EAAiB;IAC3D,MAAMC,OAAO,GAAG,IAAAC,8EAAsC,EAAU,IAAI,CAACL,OAAO,CAACI,OAAO,CAAC;IAErF,MAAME,MAAM,GAAG,IAAI,CAACN,OAAO,CAACO,OAAO,CAACC,gBAAgB,CAAC,CAAC;IACtD,IAAI,CAACF,MAAM,EAAEG,EAAE,EAAE;MACb,MAAM,IAAIC,KAAK,CAAC,gEAAgE,CAAC;IACrF;IACA,MAAMC,MAAM,GAAG,IAAI,CAACX,OAAO,CAACY,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACnD,IAAI,CAACF,MAAM,EAAE;MACT,MAAM,IAAID,KAAK,CAAC,gEAAgE,CAAC;IACrF;IACA,IAAI;MACA,MAAMI,UAAU,GAAG,MAAM,IAAAC,wBAAW,EAAC;QACjCf,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBI,OAAO;QACPY,OAAO,EAAE,CAACV,MAAM,CAAC;QACjBW,OAAO,EAAE,CAACN,MAAM;MACpB,CAAC,CAAC;MACF,MAAMO,OAAO,GAAGJ,UAAU,CAACK,MAAM,CAACC,KAAK,IAAI;QACvC,IAAI,CAACjB,OAAO,EAAEkB,MAAM,EAAE;UAClB,OAAO,IAAI;QACf;QACA,KAAK,MAAMC,CAAC,IAAInB,OAAO,EAAE;UACrB,IAAIiB,KAAK,CAACA,KAAK,CAACG,QAAQ,CAACD,CAAC,CAAC,EAAE;YACzB,OAAO,IAAI;UACf;QACJ;QACA,OAAO,KAAK;MAChB,CAAC,CAAC;MACF,IAAIJ,OAAO,CAACG,MAAM,KAAK,CAAC,EAAE;QACtBG,OAAO,CAACC,IAAI,CACR,2EAA2E,EAC3E;UACItB;QACJ,CACJ,CAAC;QACD;MACJ;MAEA,MAAMuB,WAAW,GAAG,IAAAC,+BAAkB,EAAC,IAAI,CAAC1B,YAAY,CAAC;MAEzD,KAAK,MAAM;QAAEmB,KAAK;QAAEQ;MAAS,CAAC,IAAIV,OAAO,EAAE;QACvC,IAAI;UACAM,OAAO,CAACK,GAAG,CAAC,gBAAgB,EAAET,KAAK,CAAC;UACpC,MAAMM,WAAW,CAACI,iBAAiB,CAACV,KAAK,EAAEQ,QAAQ,CAAC;QACxD,CAAC,CAAC,OAAOG,EAAE,EAAE;UACTP,OAAO,CAACQ,KAAK,CAAC,2BAA2BZ,KAAK,IAAI,EAAEW,EAAE,CAAC;QAC3D;MACJ;IACJ,CAAC,CAAC,OAAOA,EAAE,EAAE;MACTP,OAAO,CAACQ,KAAK,CAACD,EAAE,CAAC;IACrB;EACJ;AACJ;AAACE,OAAA,CAAApC,eAAA,GAAAA,eAAA","ignoreList":[]}
1
+ {"version":3,"names":["listIndexes","createIndexFactory","OnBeforeTrigger","constructor","indexManager","tenantContext","indexFactories","run","targets","tenant","getTenant","Error","allIndexes","indexes","filter","index","length","t","includes","console","warn","createIndex","settings","log","createIfNotExists","ex","error"],"sources":["OnBeforeTrigger.ts"],"sourcesContent":["import type { IndexManager } from \"~/settings/index.js\";\nimport { listIndexes } from \"./listIndexes.js\";\nimport { createIndexFactory } from \"~/tasks/createIndexes/createIndex.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { OpensearchTenantIndexFactory } from \"~/abstractions/OpensearchTenantIndexFactory.js\";\n\nexport class OnBeforeTrigger {\n public constructor(\n private indexManager: IndexManager,\n private tenantContext: TenantContext.Interface,\n private indexFactories: OpensearchTenantIndexFactory.Interface[]\n ) {}\n\n public async run(targets: string[] | undefined): Promise<void> {\n const tenant = this.tenantContext.getTenant();\n if (!tenant) {\n throw new Error(\"Something went wrong, tenant not found when triggering a task.\");\n }\n\n try {\n const allIndexes = await listIndexes(this.tenantContext, [tenant], this.indexFactories);\n\n const indexes = allIndexes.filter(index => {\n if (!targets?.length) {\n return true;\n }\n for (const t of targets) {\n if (index.index.includes(t)) {\n return true;\n }\n }\n return false;\n });\n if (indexes.length === 0) {\n console.warn(\n \"There are no indexes to create before triggering the Create indexes task.\",\n {\n targets\n }\n );\n return;\n }\n\n const createIndex = createIndexFactory(this.indexManager);\n\n for (const { index, settings } of indexes) {\n try {\n console.log(\"Creating index\", index);\n await createIndex.createIfNotExists(index, settings);\n } catch (ex) {\n console.error(`Failed to create index \"${index}\".`, ex);\n }\n }\n } catch (ex) {\n console.error(ex);\n }\n }\n}\n"],"mappings":"AACA,SAASA,WAAW;AACpB,SAASC,kBAAkB;AAI3B,OAAO,MAAMC,eAAe,CAAC;EAClBC,WAAWA,CACNC,YAA0B,EAC1BC,aAAsC,EACtCC,cAAwD,EAClE;IAAA,KAHUF,YAA0B,GAA1BA,YAA0B;IAAA,KAC1BC,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,cAAwD,GAAxDA,cAAwD;EACjE;EAEH,MAAaC,GAAGA,CAACC,OAA6B,EAAiB;IAC3D,MAAMC,MAAM,GAAG,IAAI,CAACJ,aAAa,CAACK,SAAS,CAAC,CAAC;IAC7C,IAAI,CAACD,MAAM,EAAE;MACT,MAAM,IAAIE,KAAK,CAAC,gEAAgE,CAAC;IACrF;IAEA,IAAI;MACA,MAAMC,UAAU,GAAG,MAAMZ,WAAW,CAAC,IAAI,CAACK,aAAa,EAAE,CAACI,MAAM,CAAC,EAAE,IAAI,CAACH,cAAc,CAAC;MAEvF,MAAMO,OAAO,GAAGD,UAAU,CAACE,MAAM,CAACC,KAAK,IAAI;QACvC,IAAI,CAACP,OAAO,EAAEQ,MAAM,EAAE;UAClB,OAAO,IAAI;QACf;QACA,KAAK,MAAMC,CAAC,IAAIT,OAAO,EAAE;UACrB,IAAIO,KAAK,CAACA,KAAK,CAACG,QAAQ,CAACD,CAAC,CAAC,EAAE;YACzB,OAAO,IAAI;UACf;QACJ;QACA,OAAO,KAAK;MAChB,CAAC,CAAC;MACF,IAAIJ,OAAO,CAACG,MAAM,KAAK,CAAC,EAAE;QACtBG,OAAO,CAACC,IAAI,CACR,2EAA2E,EAC3E;UACIZ;QACJ,CACJ,CAAC;QACD;MACJ;MAEA,MAAMa,WAAW,GAAGpB,kBAAkB,CAAC,IAAI,CAACG,YAAY,CAAC;MAEzD,KAAK,MAAM;QAAEW,KAAK;QAAEO;MAAS,CAAC,IAAIT,OAAO,EAAE;QACvC,IAAI;UACAM,OAAO,CAACI,GAAG,CAAC,gBAAgB,EAAER,KAAK,CAAC;UACpC,MAAMM,WAAW,CAACG,iBAAiB,CAACT,KAAK,EAAEO,QAAQ,CAAC;QACxD,CAAC,CAAC,OAAOG,EAAE,EAAE;UACTN,OAAO,CAACO,KAAK,CAAC,2BAA2BX,KAAK,IAAI,EAAEU,EAAE,CAAC;QAC3D;MACJ;IACJ,CAAC,CAAC,OAAOA,EAAE,EAAE;MACTN,OAAO,CAACO,KAAK,CAACD,EAAE,CAAC;IACrB;EACJ;AACJ","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { IndexManager } from "../../settings";
1
+ import type { IndexManager } from "../../settings/index.js";
2
2
  export declare const createIndexFactory: (manager: IndexManager) => {
3
3
  create: (index: string, settings?: Record<string, any>) => Promise<void>;
4
4
  createIfNotExists: (index: string, settings?: Record<string, any>) => Promise<void>;
@@ -1,10 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createIndexFactory = void 0;
7
- const createIndexFactory = manager => {
1
+ export const createIndexFactory = manager => {
8
2
  return {
9
3
  create: async (index, settings) => {
10
4
  return manager.createIndex(index, settings);
@@ -15,13 +9,12 @@ const createIndexFactory = manager => {
15
9
  if (exists) {
16
10
  return;
17
11
  }
18
- } catch (ex) {
12
+ } catch {
19
13
  return;
20
14
  }
21
15
  return await manager.createIndex(index, settings);
22
16
  }
23
17
  };
24
18
  };
25
- exports.createIndexFactory = createIndexFactory;
26
19
 
27
20
  //# sourceMappingURL=createIndex.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createIndexFactory","manager","create","index","settings","createIndex","createIfNotExists","exists","indexExists","ex","exports"],"sources":["createIndex.ts"],"sourcesContent":["import type { IndexManager } from \"~/settings\";\n\nexport const createIndexFactory = (manager: IndexManager) => {\n return {\n create: async (index: string, settings?: Record<string, any>): Promise<void> => {\n return manager.createIndex(index, settings);\n },\n createIfNotExists: async (index: string, settings?: Record<string, any>): Promise<void> => {\n try {\n const exists = await manager.indexExists(index);\n if (exists) {\n return;\n }\n } catch (ex) {\n return;\n }\n\n return await manager.createIndex(index, settings);\n }\n };\n};\n"],"mappings":";;;;;;AAEO,MAAMA,kBAAkB,GAAIC,OAAqB,IAAK;EACzD,OAAO;IACHC,MAAM,EAAE,MAAAA,CAAOC,KAAa,EAAEC,QAA8B,KAAoB;MAC5E,OAAOH,OAAO,CAACI,WAAW,CAACF,KAAK,EAAEC,QAAQ,CAAC;IAC/C,CAAC;IACDE,iBAAiB,EAAE,MAAAA,CAAOH,KAAa,EAAEC,QAA8B,KAAoB;MACvF,IAAI;QACA,MAAMG,MAAM,GAAG,MAAMN,OAAO,CAACO,WAAW,CAACL,KAAK,CAAC;QAC/C,IAAII,MAAM,EAAE;UACR;QACJ;MACJ,CAAC,CAAC,OAAOE,EAAE,EAAE;QACT;MACJ;MAEA,OAAO,MAAMR,OAAO,CAACI,WAAW,CAACF,KAAK,EAAEC,QAAQ,CAAC;IACrD;EACJ,CAAC;AACL,CAAC;AAACM,OAAA,CAAAV,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["createIndexFactory","manager","create","index","settings","createIndex","createIfNotExists","exists","indexExists"],"sources":["createIndex.ts"],"sourcesContent":["import type { IndexManager } from \"~/settings/index.js\";\n\nexport const createIndexFactory = (manager: IndexManager) => {\n return {\n create: async (index: string, settings?: Record<string, any>): Promise<void> => {\n return manager.createIndex(index, settings);\n },\n createIfNotExists: async (index: string, settings?: Record<string, any>): Promise<void> => {\n try {\n const exists = await manager.indexExists(index);\n if (exists) {\n return;\n }\n } catch {\n return;\n }\n\n return await manager.createIndex(index, settings);\n }\n };\n};\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAkB,GAAIC,OAAqB,IAAK;EACzD,OAAO;IACHC,MAAM,EAAE,MAAAA,CAAOC,KAAa,EAAEC,QAA8B,KAAoB;MAC5E,OAAOH,OAAO,CAACI,WAAW,CAACF,KAAK,EAAEC,QAAQ,CAAC;IAC/C,CAAC;IACDE,iBAAiB,EAAE,MAAAA,CAAOH,KAAa,EAAEC,QAA8B,KAAoB;MACvF,IAAI;QACA,MAAMG,MAAM,GAAG,MAAMN,OAAO,CAACO,WAAW,CAACL,KAAK,CAAC;QAC/C,IAAII,MAAM,EAAE;UACR;QACJ;MACJ,CAAC,CAAC,MAAM;QACJ;MACJ;MAEA,OAAO,MAAMN,OAAO,CAACI,WAAW,CAACF,KAAK,EAAEC,QAAQ,CAAC;IACrD;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -1,3 +1,2 @@
1
- import type { Context, IElasticsearchTaskConfig } from "../../types";
2
- import type { IElasticsearchCreateIndexesTaskInput } from "./types";
3
- export declare const createIndexesTaskDefinition: (params?: IElasticsearchTaskConfig) => import("@webiny/tasks").TaskDefinitionPlugin<Context, IElasticsearchCreateIndexesTaskInput, import("@webiny/tasks").ITaskResponseDoneResultOutput>;
1
+ import type { Context, IElasticsearchTaskConfig } from "../../types.js";
2
+ export declare const createIndexesTaskDefinition: (params?: Partial<IElasticsearchTaskConfig>) => import("@webiny/api").ContextPlugin<Context>;
@@ -1,68 +1,22 @@
1
- "use strict";
1
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ import { createContextPlugin } from "@webiny/api";
3
+ import { getClients } from "../../helpers/getClients.js";
4
+ import { CreateIndexesTaskDefinition } from "./CreateIndexesTask.js";
5
+ import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
6
+ import { ListTenantsUseCase } from "@webiny/api-core/features/tenancy/ListTenants/index.js";
7
+ import { OpensearchTenantIndexFactory } from "../../abstractions/OpensearchTenantIndexFactory.js";
8
+ export const createIndexesTaskDefinition = params => {
9
+ return createContextPlugin(async context => {
10
+ const clients = getClients(context, params);
2
11
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createIndexesTaskDefinition = void 0;
7
- var _tasks = require("@webiny/tasks");
8
- var _CreateIndexesTaskRunner = require("./CreateIndexesTaskRunner");
9
- const createIndexesTaskDefinition = params => {
10
- return (0, _tasks.createTaskDefinition)({
11
- id: "elasticsearchCreateIndexes",
12
- title: "Create Missing Elasticsearch Indexes",
13
- /**
14
- * Maximum number of iterations before the task goes into the error state.
15
- * No point in having more than 2 runs, as the create index operations should not even take 1 full run, no matter how much indeexs is there to create.
16
- */
17
- maxIterations: 2,
18
- run: async ({
19
- response,
20
- context,
21
- isCloseToTimeout,
22
- isAborted,
23
- store,
24
- input,
25
- timer
26
- }) => {
27
- const {
28
- Manager
29
- } = await import(/* webpackChunkName: "Manager" */"../Manager");
30
- const {
31
- IndexManager
32
- } = await import(/* webpackChunkName: "IndexManager" */"../../settings");
33
- const manager = new Manager({
34
- elasticsearchClient: params?.elasticsearchClient,
35
- documentClient: params?.documentClient,
36
- response,
37
- context,
38
- isAborted,
39
- isCloseToTimeout,
40
- store,
41
- timer
42
- });
43
- const indexManager = new IndexManager(manager.elasticsearch, {});
44
- const createIndexesTaskRunner = new _CreateIndexesTaskRunner.CreateIndexesTaskRunner(manager, indexManager);
45
- return createIndexesTaskRunner.execute(input.matching, Array.from(input.done || []));
46
- },
47
- async onBeforeTrigger({
48
- context
49
- }) {
50
- // Let's create a new index for the tasks first.
51
- const {
52
- IndexManager
53
- } = await import(/* webpackChunkName: "IndexManager" */"../../settings");
54
- const indexManager = new IndexManager(context.elasticsearch, {});
55
- const {
56
- OnBeforeTrigger
57
- } = await import(/* webpackChunkName: "OnBeforeTrigger" */"./OnBeforeTrigger");
58
- const onBeforeTrigger = new OnBeforeTrigger({
59
- indexManager,
60
- context
61
- });
62
- await onBeforeTrigger.run(["webinytask"]);
63
- }
12
+ // Register the task definition
13
+ context.container.registerFactory(TaskDefinition, () => {
14
+ const tenantContext = context.container.resolve(TenantContext);
15
+ const listTenantsUseCase = context.container.resolve(ListTenantsUseCase);
16
+ const indexFactories = context.container.resolveAll(OpensearchTenantIndexFactory);
17
+ return new CreateIndexesTaskDefinition(clients.elasticsearchClient, clients.documentClient, tenantContext, listTenantsUseCase, indexFactories);
18
+ });
64
19
  });
65
20
  };
66
- exports.createIndexesTaskDefinition = createIndexesTaskDefinition;
67
21
 
68
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_tasks","require","_CreateIndexesTaskRunner","createIndexesTaskDefinition","params","createTaskDefinition","id","title","maxIterations","run","response","context","isCloseToTimeout","isAborted","store","input","timer","Manager","IndexManager","manager","elasticsearchClient","documentClient","indexManager","elasticsearch","createIndexesTaskRunner","CreateIndexesTaskRunner","execute","matching","Array","from","done","onBeforeTrigger","OnBeforeTrigger","exports"],"sources":["index.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport type { Context, IElasticsearchTaskConfig } from \"~/types\";\nimport type { IElasticsearchCreateIndexesTaskInput } from \"~/tasks/createIndexes/types\";\nimport { CreateIndexesTaskRunner } from \"./CreateIndexesTaskRunner\";\n\nexport const createIndexesTaskDefinition = (params?: IElasticsearchTaskConfig) => {\n return createTaskDefinition<Context, IElasticsearchCreateIndexesTaskInput>({\n id: \"elasticsearchCreateIndexes\",\n title: \"Create Missing Elasticsearch Indexes\",\n /**\n * Maximum number of iterations before the task goes into the error state.\n * No point in having more than 2 runs, as the create index operations should not even take 1 full run, no matter how much indeexs is there to create.\n */\n maxIterations: 2,\n run: async ({ response, context, isCloseToTimeout, isAborted, store, input, timer }) => {\n const { Manager } = await import(\n /* webpackChunkName: \"Manager\" */\n \"../Manager\"\n );\n const { IndexManager } = await import(\n /* webpackChunkName: \"IndexManager\" */ \"~/settings\"\n );\n\n const manager = new Manager<IElasticsearchCreateIndexesTaskInput>({\n elasticsearchClient: params?.elasticsearchClient,\n documentClient: params?.documentClient,\n response,\n context,\n isAborted,\n isCloseToTimeout,\n store,\n timer\n });\n\n const indexManager = new IndexManager(manager.elasticsearch, {});\n\n const createIndexesTaskRunner = new CreateIndexesTaskRunner(manager, indexManager);\n\n return createIndexesTaskRunner.execute(input.matching, Array.from(input.done || []));\n },\n async onBeforeTrigger({ context }) {\n // Let's create a new index for the tasks first.\n const { IndexManager } = await import(\n /* webpackChunkName: \"IndexManager\" */ \"~/settings\"\n );\n const indexManager = new IndexManager(context.elasticsearch, {});\n const { OnBeforeTrigger } = await import(\n /* webpackChunkName: \"OnBeforeTrigger\" */\n \"./OnBeforeTrigger\"\n );\n\n const onBeforeTrigger = new OnBeforeTrigger({\n indexManager,\n context\n });\n await onBeforeTrigger.run([\"webinytask\"]);\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,wBAAA,GAAAD,OAAA;AAEO,MAAME,2BAA2B,GAAIC,MAAiC,IAAK;EAC9E,OAAO,IAAAC,2BAAoB,EAAgD;IACvEC,EAAE,EAAE,4BAA4B;IAChCC,KAAK,EAAE,sCAAsC;IAC7C;AACR;AACA;AACA;IACQC,aAAa,EAAE,CAAC;IAChBC,GAAG,EAAE,MAAAA,CAAO;MAAEC,QAAQ;MAAEC,OAAO;MAAEC,gBAAgB;MAAEC,SAAS;MAAEC,KAAK;MAAEC,KAAK;MAAEC;IAAM,CAAC,KAAK;MACpF,MAAM;QAAEC;MAAQ,CAAC,GAAG,MAAM,MAAM,CAC5B,6CAEJ,CAAC;MACD,MAAM;QAAEC;MAAa,CAAC,GAAG,MAAM,MAAM,CACjC,sDACJ,CAAC;MAED,MAAMC,OAAO,GAAG,IAAIF,OAAO,CAAuC;QAC9DG,mBAAmB,EAAEhB,MAAM,EAAEgB,mBAAmB;QAChDC,cAAc,EAAEjB,MAAM,EAAEiB,cAAc;QACtCX,QAAQ;QACRC,OAAO;QACPE,SAAS;QACTD,gBAAgB;QAChBE,KAAK;QACLE;MACJ,CAAC,CAAC;MAEF,MAAMM,YAAY,GAAG,IAAIJ,YAAY,CAACC,OAAO,CAACI,aAAa,EAAE,CAAC,CAAC,CAAC;MAEhE,MAAMC,uBAAuB,GAAG,IAAIC,gDAAuB,CAACN,OAAO,EAAEG,YAAY,CAAC;MAElF,OAAOE,uBAAuB,CAACE,OAAO,CAACX,KAAK,CAACY,QAAQ,EAAEC,KAAK,CAACC,IAAI,CAACd,KAAK,CAACe,IAAI,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,MAAMC,eAAeA,CAAC;MAAEpB;IAAQ,CAAC,EAAE;MAC/B;MACA,MAAM;QAAEO;MAAa,CAAC,GAAG,MAAM,MAAM,CACjC,sDACJ,CAAC;MACD,MAAMI,YAAY,GAAG,IAAIJ,YAAY,CAACP,OAAO,CAACY,aAAa,EAAE,CAAC,CAAC,CAAC;MAChE,MAAM;QAAES;MAAgB,CAAC,GAAG,MAAM,MAAM,CACpC,4DAEJ,CAAC;MAED,MAAMD,eAAe,GAAG,IAAIC,eAAe,CAAC;QACxCV,YAAY;QACZX;MACJ,CAAC,CAAC;MACF,MAAMoB,eAAe,CAACtB,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;IAC7C;EACJ,CAAC,CAAC;AACN,CAAC;AAACwB,OAAA,CAAA9B,2BAAA,GAAAA,2BAAA","ignoreList":[]}
1
+ {"version":3,"names":["TaskDefinition","createContextPlugin","getClients","CreateIndexesTaskDefinition","TenantContext","ListTenantsUseCase","OpensearchTenantIndexFactory","createIndexesTaskDefinition","params","context","clients","container","registerFactory","tenantContext","resolve","listTenantsUseCase","indexFactories","resolveAll","elasticsearchClient","documentClient"],"sources":["index.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { Context, IElasticsearchTaskConfig } from \"~/types.js\";\nimport { createContextPlugin } from \"@webiny/api\";\nimport { getClients } from \"~/helpers/getClients.js\";\nimport { CreateIndexesTaskDefinition } from \"~/tasks/createIndexes/CreateIndexesTask.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { ListTenantsUseCase } from \"@webiny/api-core/features/tenancy/ListTenants/index.js\";\nimport { OpensearchTenantIndexFactory } from \"~/abstractions/OpensearchTenantIndexFactory.js\";\n\nexport const createIndexesTaskDefinition = (params?: Partial<IElasticsearchTaskConfig>) => {\n return createContextPlugin<Context>(async context => {\n const clients = getClients(context, params);\n\n // Register the task definition\n context.container.registerFactory(TaskDefinition, () => {\n const tenantContext = context.container.resolve(TenantContext);\n const listTenantsUseCase = context.container.resolve(ListTenantsUseCase);\n const indexFactories = context.container.resolveAll(OpensearchTenantIndexFactory);\n\n return new CreateIndexesTaskDefinition(\n clients.elasticsearchClient,\n clients.documentClient,\n tenantContext,\n listTenantsUseCase,\n indexFactories\n );\n });\n });\n};\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,wDAAwD;AAEvF,SAASC,mBAAmB,QAAQ,aAAa;AACjD,SAASC,UAAU;AACnB,SAASC,2BAA2B;AACpC,SAASC,aAAa,QAAQ,0DAA0D;AACxF,SAASC,kBAAkB,QAAQ,wDAAwD;AAC3F,SAASC,4BAA4B;AAErC,OAAO,MAAMC,2BAA2B,GAAIC,MAA0C,IAAK;EACvF,OAAOP,mBAAmB,CAAU,MAAMQ,OAAO,IAAI;IACjD,MAAMC,OAAO,GAAGR,UAAU,CAACO,OAAO,EAAED,MAAM,CAAC;;IAE3C;IACAC,OAAO,CAACE,SAAS,CAACC,eAAe,CAACZ,cAAc,EAAE,MAAM;MACpD,MAAMa,aAAa,GAAGJ,OAAO,CAACE,SAAS,CAACG,OAAO,CAACV,aAAa,CAAC;MAC9D,MAAMW,kBAAkB,GAAGN,OAAO,CAACE,SAAS,CAACG,OAAO,CAACT,kBAAkB,CAAC;MACxE,MAAMW,cAAc,GAAGP,OAAO,CAACE,SAAS,CAACM,UAAU,CAACX,4BAA4B,CAAC;MAEjF,OAAO,IAAIH,2BAA2B,CAClCO,OAAO,CAACQ,mBAAmB,EAC3BR,OAAO,CAACS,cAAc,EACtBN,aAAa,EACbE,kBAAkB,EAClBC,cACJ,CAAC;IACL,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
@@ -1,12 +1,4 @@
1
- import type { CreateElasticsearchIndexTaskPluginIndex } from "./CreateElasticsearchIndexTaskPlugin";
2
- import type { CreateElasticsearchIndexTaskPlugin } from "./CreateElasticsearchIndexTaskPlugin";
3
- import type { Context } from "../../types";
4
- import type { Tenant } from "@webiny/api-tenancy/types";
5
- import type { I18NLocale } from "@webiny/api-i18n/types";
6
- export interface IListIndexesParams {
7
- context: Context;
8
- plugins: CreateElasticsearchIndexTaskPlugin<Context>[];
9
- tenants?: Tenant[];
10
- locales?: I18NLocale[];
11
- }
12
- export declare const listIndexes: (params: IListIndexesParams) => Promise<CreateElasticsearchIndexTaskPluginIndex[]>;
1
+ import { OpensearchTenantIndexFactory } from "../../abstractions/OpensearchTenantIndexFactory.js";
2
+ import type { Tenant } from "@webiny/api-core/types/tenancy.js";
3
+ import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
4
+ export declare const listIndexes: (tenantContext: TenantContext.Interface, tenants: Tenant[], indexFactories: OpensearchTenantIndexFactory.Interface[]) => Promise<OpensearchTenantIndexFactory.IndexConfig[]>;
@@ -1,53 +1,20 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.listIndexes = void 0;
7
- const listIndexes = async params => {
8
- const {
9
- context,
10
- plugins,
11
- tenants: inputTenants,
12
- locales: inputLocales
13
- } = params;
14
- if (plugins.length === 0) {
1
+ export const listIndexes = async (tenantContext, tenants, indexFactories) => {
2
+ if (indexFactories.length === 0) {
15
3
  return [];
16
4
  }
17
5
  const indexes = [];
18
- const tenants = inputTenants || (await context.tenancy.listTenants());
19
- const initialTenant = context.tenancy.getCurrentTenant();
20
- try {
21
- for (const tenant of tenants) {
22
- context.tenancy.setCurrentTenant(tenant);
23
- let locales = inputLocales ? [...inputLocales] : [];
24
- if (locales.length === 0) {
25
- const [localesResult] = await context.i18n.locales.listLocales({
26
- limit: 10000
27
- });
28
- locales = localesResult;
29
- }
30
- for (const locale of locales) {
31
- for (const plugin of plugins) {
32
- const results = await plugin.getIndexList({
33
- context,
34
- tenant: tenant.id,
35
- locale: locale.code
36
- });
37
- for (const result of results) {
38
- if (indexes.some(i => i.index === result.index)) {
39
- continue;
40
- }
41
- indexes.push(result);
42
- }
6
+ await tenantContext.withEachTenant(tenants, async tenant => {
7
+ for (const factory of indexFactories) {
8
+ const results = await factory.getIndexList(tenant);
9
+ for (const result of results) {
10
+ if (indexes.some(i => i.index === result.index)) {
11
+ continue;
43
12
  }
13
+ indexes.push(result);
44
14
  }
45
15
  }
46
- } finally {
47
- context.tenancy.setCurrentTenant(initialTenant);
48
- }
16
+ });
49
17
  return indexes;
50
18
  };
51
- exports.listIndexes = listIndexes;
52
19
 
53
20
  //# sourceMappingURL=listIndexes.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["listIndexes","params","context","plugins","tenants","inputTenants","locales","inputLocales","length","indexes","tenancy","listTenants","initialTenant","getCurrentTenant","tenant","setCurrentTenant","localesResult","i18n","listLocales","limit","locale","plugin","results","getIndexList","id","code","result","some","i","index","push","exports"],"sources":["listIndexes.ts"],"sourcesContent":["import type { CreateElasticsearchIndexTaskPluginIndex } from \"~/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin\";\nimport type { CreateElasticsearchIndexTaskPlugin } from \"~/tasks/createIndexes/CreateElasticsearchIndexTaskPlugin\";\nimport type { Context } from \"~/types\";\nimport type { Tenant } from \"@webiny/api-tenancy/types\";\nimport type { I18NLocale } from \"@webiny/api-i18n/types\";\n\nexport interface IListIndexesParams {\n context: Context;\n plugins: CreateElasticsearchIndexTaskPlugin<Context>[];\n tenants?: Tenant[];\n locales?: I18NLocale[];\n}\n\nexport const listIndexes = async (\n params: IListIndexesParams\n): Promise<CreateElasticsearchIndexTaskPluginIndex[]> => {\n const { context, plugins, tenants: inputTenants, locales: inputLocales } = params;\n if (plugins.length === 0) {\n return [];\n }\n\n const indexes: CreateElasticsearchIndexTaskPluginIndex[] = [];\n const tenants = inputTenants || (await context.tenancy.listTenants());\n const initialTenant = context.tenancy.getCurrentTenant();\n try {\n for (const tenant of tenants) {\n context.tenancy.setCurrentTenant(tenant);\n\n let locales = inputLocales ? [...inputLocales] : [];\n if (locales.length === 0) {\n const [localesResult] = await context.i18n.locales.listLocales({\n limit: 10000\n });\n locales = localesResult;\n }\n\n for (const locale of locales) {\n for (const plugin of plugins) {\n const results = await plugin.getIndexList({\n context,\n tenant: tenant.id,\n locale: locale.code\n });\n for (const result of results) {\n if (indexes.some(i => i.index === result.index)) {\n continue;\n }\n indexes.push(result);\n }\n }\n }\n }\n } finally {\n context.tenancy.setCurrentTenant(initialTenant);\n }\n\n return indexes;\n};\n"],"mappings":";;;;;;AAaO,MAAMA,WAAW,GAAG,MACvBC,MAA0B,IAC2B;EACrD,MAAM;IAAEC,OAAO;IAAEC,OAAO;IAAEC,OAAO,EAAEC,YAAY;IAAEC,OAAO,EAAEC;EAAa,CAAC,GAAGN,MAAM;EACjF,IAAIE,OAAO,CAACK,MAAM,KAAK,CAAC,EAAE;IACtB,OAAO,EAAE;EACb;EAEA,MAAMC,OAAkD,GAAG,EAAE;EAC7D,MAAML,OAAO,GAAGC,YAAY,KAAK,MAAMH,OAAO,CAACQ,OAAO,CAACC,WAAW,CAAC,CAAC,CAAC;EACrE,MAAMC,aAAa,GAAGV,OAAO,CAACQ,OAAO,CAACG,gBAAgB,CAAC,CAAC;EACxD,IAAI;IACA,KAAK,MAAMC,MAAM,IAAIV,OAAO,EAAE;MAC1BF,OAAO,CAACQ,OAAO,CAACK,gBAAgB,CAACD,MAAM,CAAC;MAExC,IAAIR,OAAO,GAAGC,YAAY,GAAG,CAAC,GAAGA,YAAY,CAAC,GAAG,EAAE;MACnD,IAAID,OAAO,CAACE,MAAM,KAAK,CAAC,EAAE;QACtB,MAAM,CAACQ,aAAa,CAAC,GAAG,MAAMd,OAAO,CAACe,IAAI,CAACX,OAAO,CAACY,WAAW,CAAC;UAC3DC,KAAK,EAAE;QACX,CAAC,CAAC;QACFb,OAAO,GAAGU,aAAa;MAC3B;MAEA,KAAK,MAAMI,MAAM,IAAId,OAAO,EAAE;QAC1B,KAAK,MAAMe,MAAM,IAAIlB,OAAO,EAAE;UAC1B,MAAMmB,OAAO,GAAG,MAAMD,MAAM,CAACE,YAAY,CAAC;YACtCrB,OAAO;YACPY,MAAM,EAAEA,MAAM,CAACU,EAAE;YACjBJ,MAAM,EAAEA,MAAM,CAACK;UACnB,CAAC,CAAC;UACF,KAAK,MAAMC,MAAM,IAAIJ,OAAO,EAAE;YAC1B,IAAIb,OAAO,CAACkB,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,KAAK,KAAKH,MAAM,CAACG,KAAK,CAAC,EAAE;cAC7C;YACJ;YACApB,OAAO,CAACqB,IAAI,CAACJ,MAAM,CAAC;UACxB;QACJ;MACJ;IACJ;EACJ,CAAC,SAAS;IACNxB,OAAO,CAACQ,OAAO,CAACK,gBAAgB,CAACH,aAAa,CAAC;EACnD;EAEA,OAAOH,OAAO;AAClB,CAAC;AAACsB,OAAA,CAAA/B,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["listIndexes","tenantContext","tenants","indexFactories","length","indexes","withEachTenant","tenant","factory","results","getIndexList","result","some","i","index","push"],"sources":["listIndexes.ts"],"sourcesContent":["import { OpensearchTenantIndexFactory } from \"~/abstractions/OpensearchTenantIndexFactory.js\";\nimport type { Tenant } from \"@webiny/api-core/types/tenancy.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\n\nexport const listIndexes = async (\n tenantContext: TenantContext.Interface,\n tenants: Tenant[],\n indexFactories: OpensearchTenantIndexFactory.Interface[]\n): Promise<OpensearchTenantIndexFactory.IndexConfig[]> => {\n if (indexFactories.length === 0) {\n return [];\n }\n\n const indexes: OpensearchTenantIndexFactory.IndexConfig[] = [];\n await tenantContext.withEachTenant(tenants, async tenant => {\n for (const factory of indexFactories) {\n const results = await factory.getIndexList(tenant);\n for (const result of results) {\n if (indexes.some(i => i.index === result.index)) {\n continue;\n }\n indexes.push(result);\n }\n }\n });\n\n return indexes;\n};\n"],"mappings":"AAIA,OAAO,MAAMA,WAAW,GAAG,MAAAA,CACvBC,aAAsC,EACtCC,OAAiB,EACjBC,cAAwD,KACF;EACtD,IAAIA,cAAc,CAACC,MAAM,KAAK,CAAC,EAAE;IAC7B,OAAO,EAAE;EACb;EAEA,MAAMC,OAAmD,GAAG,EAAE;EAC9D,MAAMJ,aAAa,CAACK,cAAc,CAACJ,OAAO,EAAE,MAAMK,MAAM,IAAI;IACxD,KAAK,MAAMC,OAAO,IAAIL,cAAc,EAAE;MAClC,MAAMM,OAAO,GAAG,MAAMD,OAAO,CAACE,YAAY,CAACH,MAAM,CAAC;MAClD,KAAK,MAAMI,MAAM,IAAIF,OAAO,EAAE;QAC1B,IAAIJ,OAAO,CAACO,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,KAAK,KAAKH,MAAM,CAACG,KAAK,CAAC,EAAE;UAC7C;QACJ;QACAT,OAAO,CAACU,IAAI,CAACJ,MAAM,CAAC;MACxB;IACJ;EACJ,CAAC,CAAC;EAEF,OAAON,OAAO;AAClB,CAAC","ignoreList":[]}
@@ -1,7 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
1
+ export {};
6
2
 
7
3
  //# sourceMappingURL=types.js.map
@@ -0,0 +1,34 @@
1
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ import type { IElasticsearchTaskConfig } from "../../types.js";
3
+ import type { IDataSynchronizationInput, IDataSynchronizationOutput } from "../../tasks/dataSynchronization/types.js";
4
+ import { ElasticsearchSynchronize } from "../../tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.js";
5
+ export declare const DATA_SYNCHRONIZATION_TASK = "dataSynchronization";
6
+ export declare class DataSynchronizationTask implements TaskDefinition.Interface<IDataSynchronizationInput, IDataSynchronizationOutput> {
7
+ private elasticsearchClient;
8
+ private documentClient;
9
+ private elasticsearchSynchronize;
10
+ id: string;
11
+ title: string;
12
+ description: string;
13
+ isPrivate: boolean;
14
+ maxIterations: number;
15
+ databaseLogs: boolean;
16
+ constructor(elasticsearchClient: IElasticsearchTaskConfig["elasticsearchClient"], documentClient: IElasticsearchTaskConfig["documentClient"], elasticsearchSynchronize: ElasticsearchSynchronize);
17
+ run({ input, controller }: TaskDefinition.RunParams<IDataSynchronizationInput, IDataSynchronizationOutput>): Promise<import("~/tasks/dataSynchronization/types.js").ISynchronizationRunResult>;
18
+ createInputValidation({ validator }: TaskDefinition.CreateInputValidationParams): {
19
+ flow: import("zod").ZodEnum<["elasticsearchToDynamoDb"]>;
20
+ elasticsearchToDynamoDb: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodObject<{
21
+ finished: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
22
+ index: import("zod").ZodOptional<import("zod").ZodString>;
23
+ cursor: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
24
+ }, "strip", import("zod").ZodTypeAny, {
25
+ finished: boolean;
26
+ index?: string | undefined;
27
+ cursor?: string[] | undefined;
28
+ }, {
29
+ index?: string | undefined;
30
+ cursor?: string[] | undefined;
31
+ finished?: boolean | undefined;
32
+ }>>>;
33
+ };
34
+ }
@@ -0,0 +1,69 @@
1
+ export const DATA_SYNCHRONIZATION_TASK = "dataSynchronization";
2
+ export class DataSynchronizationTask {
3
+ id = DATA_SYNCHRONIZATION_TASK;
4
+ title = "Data Synchronization";
5
+ description = "Synchronize data between Elasticsearch and DynamoDB";
6
+ isPrivate = false;
7
+ maxIterations = 100;
8
+ databaseLogs = false;
9
+ constructor(elasticsearchClient, documentClient, elasticsearchSynchronize) {
10
+ this.elasticsearchClient = elasticsearchClient;
11
+ this.documentClient = documentClient;
12
+ this.elasticsearchSynchronize = elasticsearchSynchronize;
13
+ }
14
+ async run({
15
+ input,
16
+ controller
17
+ }) {
18
+ if (controller.runtime.isAborted()) {
19
+ return controller.response.aborted();
20
+ }
21
+ const {
22
+ Manager
23
+ } = await import(/* webpackChunkName: "Manager" */"../Manager.js");
24
+ const {
25
+ IndexManager
26
+ } = await import(/* webpackChunkName: "IndexManager" */"../../settings/index.js");
27
+ const manager = new Manager({
28
+ elasticsearchClient: this.elasticsearchClient,
29
+ documentClient: this.documentClient,
30
+ controller
31
+ });
32
+ const indexManager = new IndexManager(manager.elasticsearch, {});
33
+ const {
34
+ DataSynchronizationTaskRunner
35
+ } = await import(/* webpackChunkName: "DataSynchronizationTaskRunner" */"./DataSynchronizationTaskRunner.js");
36
+ const {
37
+ createFactories
38
+ } = await import(/* webpackChunkName: "createFactories" */"./createFactories.js");
39
+ try {
40
+ const dataSynchronization = new DataSynchronizationTaskRunner({
41
+ manager,
42
+ indexManager,
43
+ factories: createFactories(),
44
+ elasticsearchSynchronize: this.elasticsearchSynchronize
45
+ });
46
+ return await dataSynchronization.run({
47
+ ...input
48
+ });
49
+ } catch (ex) {
50
+ return controller.response.error(ex);
51
+ }
52
+ }
53
+ createInputValidation({
54
+ validator
55
+ }) {
56
+ return {
57
+ flow: validator.enum(["elasticsearchToDynamoDb"]),
58
+ elasticsearchToDynamoDb: validator.object({
59
+ finished: validator.boolean().optional().default(false),
60
+ index: validator.string().optional(),
61
+ cursor: validator.array(validator.string()).optional()
62
+ }).optional().default({
63
+ finished: false
64
+ })
65
+ };
66
+ }
67
+ }
68
+
69
+ //# sourceMappingURL=DataSynchronizationTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DATA_SYNCHRONIZATION_TASK","DataSynchronizationTask","id","title","description","isPrivate","maxIterations","databaseLogs","constructor","elasticsearchClient","documentClient","elasticsearchSynchronize","run","input","controller","runtime","isAborted","response","aborted","Manager","IndexManager","manager","indexManager","elasticsearch","DataSynchronizationTaskRunner","createFactories","dataSynchronization","factories","ex","error","createInputValidation","validator","flow","enum","elasticsearchToDynamoDb","object","finished","boolean","optional","default","index","string","cursor","array"],"sources":["DataSynchronizationTask.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { IElasticsearchTaskConfig } from \"~/types.js\";\nimport type {\n IDataSynchronizationInput,\n IDataSynchronizationOutput\n} from \"~/tasks/dataSynchronization/types.js\";\nimport { ElasticsearchSynchronize } from \"~/tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.js\";\n\nexport const DATA_SYNCHRONIZATION_TASK = \"dataSynchronization\";\n\nexport class DataSynchronizationTask\n implements TaskDefinition.Interface<IDataSynchronizationInput, IDataSynchronizationOutput>\n{\n id = DATA_SYNCHRONIZATION_TASK;\n title = \"Data Synchronization\";\n description = \"Synchronize data between Elasticsearch and DynamoDB\";\n isPrivate = false;\n maxIterations = 100;\n databaseLogs = false;\n\n constructor(\n private elasticsearchClient: IElasticsearchTaskConfig[\"elasticsearchClient\"],\n private documentClient: IElasticsearchTaskConfig[\"documentClient\"],\n private elasticsearchSynchronize: ElasticsearchSynchronize\n ) {}\n\n async run({\n input,\n controller\n }: TaskDefinition.RunParams<IDataSynchronizationInput, IDataSynchronizationOutput>) {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n const { Manager } = await import(\n /* webpackChunkName: \"Manager\" */\n \"../Manager.js\"\n );\n\n const { IndexManager } = await import(\n /* webpackChunkName: \"IndexManager\" */ \"~/settings/index.js\"\n );\n\n const manager = new Manager<IDataSynchronizationInput, IDataSynchronizationOutput>({\n elasticsearchClient: this.elasticsearchClient,\n documentClient: this.documentClient,\n controller\n });\n\n const indexManager = new IndexManager(manager.elasticsearch, {});\n\n const { DataSynchronizationTaskRunner } = await import(\n /* webpackChunkName: \"DataSynchronizationTaskRunner\" */ \"./DataSynchronizationTaskRunner.js\"\n );\n\n const { createFactories } = await import(\n /* webpackChunkName: \"createFactories\" */ \"./createFactories.js\"\n );\n\n try {\n const dataSynchronization = new DataSynchronizationTaskRunner({\n manager,\n indexManager,\n factories: createFactories(),\n elasticsearchSynchronize: this.elasticsearchSynchronize\n });\n\n return await dataSynchronization.run({\n ...input\n });\n } catch (ex) {\n return controller.response.error(ex);\n }\n }\n\n createInputValidation({ validator }: TaskDefinition.CreateInputValidationParams) {\n return {\n flow: validator.enum([\"elasticsearchToDynamoDb\"]),\n elasticsearchToDynamoDb: validator\n .object({\n finished: validator.boolean().optional().default(false),\n index: validator.string().optional(),\n cursor: validator.array(validator.string()).optional()\n })\n .optional()\n .default({\n finished: false\n })\n };\n }\n}\n"],"mappings":"AAQA,OAAO,MAAMA,yBAAyB,GAAG,qBAAqB;AAE9D,OAAO,MAAMC,uBAAuB,CAEpC;EACIC,EAAE,GAAGF,yBAAyB;EAC9BG,KAAK,GAAG,sBAAsB;EAC9BC,WAAW,GAAG,qDAAqD;EACnEC,SAAS,GAAG,KAAK;EACjBC,aAAa,GAAG,GAAG;EACnBC,YAAY,GAAG,KAAK;EAEpBC,WAAWA,CACCC,mBAAoE,EACpEC,cAA0D,EAC1DC,wBAAkD,EAC5D;IAAA,KAHUF,mBAAoE,GAApEA,mBAAoE;IAAA,KACpEC,cAA0D,GAA1DA,cAA0D;IAAA,KAC1DC,wBAAkD,GAAlDA,wBAAkD;EAC3D;EAEH,MAAMC,GAAGA,CAAC;IACNC,KAAK;IACLC;EAC6E,CAAC,EAAE;IAChF,IAAIA,UAAU,CAACC,OAAO,CAACC,SAAS,CAAC,CAAC,EAAE;MAChC,OAAOF,UAAU,CAACG,QAAQ,CAACC,OAAO,CAAC,CAAC;IACxC;IAEA,MAAM;MAAEC;IAAQ,CAAC,GAAG,MAAM,MAAM,CAC5B,gDAEJ,CAAC;IAED,MAAM;MAAEC;IAAa,CAAC,GAAG,MAAM,MAAM,CACjC,+DACJ,CAAC;IAED,MAAMC,OAAO,GAAG,IAAIF,OAAO,CAAwD;MAC/EV,mBAAmB,EAAE,IAAI,CAACA,mBAAmB;MAC7CC,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCI;IACJ,CAAC,CAAC;IAEF,MAAMQ,YAAY,GAAG,IAAIF,YAAY,CAACC,OAAO,CAACE,aAAa,EAAE,CAAC,CAAC,CAAC;IAEhE,MAAM;MAAEC;IAA8B,CAAC,GAAG,MAAM,MAAM,CAClD,2FACJ,CAAC;IAED,MAAM;MAAEC;IAAgB,CAAC,GAAG,MAAM,MAAM,CACpC,+DACJ,CAAC;IAED,IAAI;MACA,MAAMC,mBAAmB,GAAG,IAAIF,6BAA6B,CAAC;QAC1DH,OAAO;QACPC,YAAY;QACZK,SAAS,EAAEF,eAAe,CAAC,CAAC;QAC5Bd,wBAAwB,EAAE,IAAI,CAACA;MACnC,CAAC,CAAC;MAEF,OAAO,MAAMe,mBAAmB,CAACd,GAAG,CAAC;QACjC,GAAGC;MACP,CAAC,CAAC;IACN,CAAC,CAAC,OAAOe,EAAE,EAAE;MACT,OAAOd,UAAU,CAACG,QAAQ,CAACY,KAAK,CAACD,EAAE,CAAC;IACxC;EACJ;EAEAE,qBAAqBA,CAAC;IAAEC;EAAsD,CAAC,EAAE;IAC7E,OAAO;MACHC,IAAI,EAAED,SAAS,CAACE,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC;MACjDC,uBAAuB,EAAEH,SAAS,CAC7BI,MAAM,CAAC;QACJC,QAAQ,EAAEL,SAAS,CAACM,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACC,OAAO,CAAC,KAAK,CAAC;QACvDC,KAAK,EAAET,SAAS,CAACU,MAAM,CAAC,CAAC,CAACH,QAAQ,CAAC,CAAC;QACpCI,MAAM,EAAEX,SAAS,CAACY,KAAK,CAACZ,SAAS,CAACU,MAAM,CAAC,CAAC,CAAC,CAACH,QAAQ,CAAC;MACzD,CAAC,CAAC,CACDA,QAAQ,CAAC,CAAC,CACVC,OAAO,CAAC;QACLH,QAAQ,EAAE;MACd,CAAC;IACT,CAAC;EACL;AACJ","ignoreList":[]}
@@ -1,15 +1,18 @@
1
- import type { IDataSynchronizationInput, IDataSynchronizationManager, IFactories } from "./types";
2
- import type { IIndexManager } from "../../settings/types";
1
+ import type { IDataSynchronizationInput, IDataSynchronizationManager, IFactories } from "../../tasks/dataSynchronization/types.js";
2
+ import type { IIndexManager } from "../../settings/types.js";
3
+ import { ElasticsearchSynchronize } from "../../tasks/dataSynchronization/elasticsearch/ElasticsearchSynchronize.js";
3
4
  export interface IDataSynchronizationTaskRunnerParams {
4
5
  manager: IDataSynchronizationManager;
5
6
  indexManager: IIndexManager;
6
7
  factories: IFactories;
8
+ elasticsearchSynchronize: ElasticsearchSynchronize;
7
9
  }
8
10
  export declare class DataSynchronizationTaskRunner {
9
11
  private readonly manager;
10
12
  private readonly indexManager;
11
13
  private readonly factories;
14
+ private readonly elasticsearchSynchronize;
12
15
  constructor(params: IDataSynchronizationTaskRunnerParams);
13
- run(input: IDataSynchronizationInput): Promise<import("@webiny/tasks").ITaskResponseErrorResult | import("@webiny/tasks").ITaskResponseAbortedResult | import("@webiny/tasks").ITaskResponseDoneResult<import("@webiny/tasks").ITaskResponseDoneResultOutput> | import("@webiny/tasks").ITaskResponseContinueResult<IDataSynchronizationInput>>;
16
+ run(input: IDataSynchronizationInput): Promise<import("~/tasks/dataSynchronization/types.js").ISynchronizationRunResult>;
14
17
  private validateFlow;
15
18
  }