@webiny/api-elasticsearch-tasks 6.2.0 → 6.3.0-beta.1
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/helpers/getClients.d.ts +2 -2
- package/package.json +23 -23
- package/tasks/Manager.js.map +1 -1
- package/tasks/createIndexes/CreateIndexesTask.js.map +1 -1
- package/tasks/dataSynchronization/DataSynchronizationTask.js.map +1 -1
- package/tasks/dataSynchronization/types.js.map +1 -1
- package/tasks/enableIndexing/index.js.map +1 -1
- package/tasks/reindexing/reindexingTaskDefinition.js.map +1 -1
package/helpers/getClients.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Context, IElasticsearchTaskConfig } from "../types.js";
|
|
2
2
|
export declare function getClients(context: Context, params?: Partial<IElasticsearchTaskConfig>): {
|
|
3
|
-
documentClient: import("@aws-sdk/lib-dynamodb
|
|
4
|
-
elasticsearchClient: import("@opensearch-project/opensearch
|
|
3
|
+
documentClient: import("@aws-sdk/lib-dynamodb").DynamoDBDocument;
|
|
4
|
+
elasticsearchClient: import("@opensearch-project/opensearch").Client;
|
|
5
5
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-elasticsearch-tasks",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.3.0-beta.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": {
|
|
@@ -13,38 +13,38 @@
|
|
|
13
13
|
],
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@webiny/api": "6.
|
|
17
|
-
"@webiny/api-core": "6.
|
|
18
|
-
"@webiny/api-dynamodb-to-elasticsearch": "6.
|
|
19
|
-
"@webiny/api-opensearch": "6.
|
|
20
|
-
"@webiny/aws-sdk": "6.
|
|
21
|
-
"@webiny/db": "6.
|
|
22
|
-
"@webiny/db-dynamodb": "6.
|
|
23
|
-
"@webiny/error": "6.
|
|
24
|
-
"@webiny/feature": "6.
|
|
25
|
-
"@webiny/plugins": "6.
|
|
26
|
-
"@webiny/tasks": "6.
|
|
27
|
-
"@webiny/utils": "6.
|
|
16
|
+
"@webiny/api": "6.3.0-beta.1",
|
|
17
|
+
"@webiny/api-core": "6.3.0-beta.1",
|
|
18
|
+
"@webiny/api-dynamodb-to-elasticsearch": "6.3.0-beta.1",
|
|
19
|
+
"@webiny/api-opensearch": "6.3.0-beta.1",
|
|
20
|
+
"@webiny/aws-sdk": "6.3.0-beta.1",
|
|
21
|
+
"@webiny/db": "6.3.0-beta.1",
|
|
22
|
+
"@webiny/db-dynamodb": "6.3.0-beta.1",
|
|
23
|
+
"@webiny/error": "6.3.0-beta.1",
|
|
24
|
+
"@webiny/feature": "6.3.0-beta.1",
|
|
25
|
+
"@webiny/plugins": "6.3.0-beta.1",
|
|
26
|
+
"@webiny/tasks": "6.3.0-beta.1",
|
|
27
|
+
"@webiny/utils": "6.3.0-beta.1"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@webiny/api": "0.0.0",
|
|
31
|
-
"@webiny/api-headless-cms": "6.
|
|
32
|
-
"@webiny/build-tools": "6.
|
|
33
|
-
"@webiny/handler": "6.
|
|
34
|
-
"@webiny/handler-aws": "6.
|
|
35
|
-
"@webiny/handler-db": "6.
|
|
36
|
-
"@webiny/handler-graphql": "6.
|
|
37
|
-
"@webiny/project-utils": "6.
|
|
31
|
+
"@webiny/api-headless-cms": "6.3.0-beta.1",
|
|
32
|
+
"@webiny/build-tools": "6.3.0-beta.1",
|
|
33
|
+
"@webiny/handler": "6.3.0-beta.1",
|
|
34
|
+
"@webiny/handler-aws": "6.3.0-beta.1",
|
|
35
|
+
"@webiny/handler-db": "6.3.0-beta.1",
|
|
36
|
+
"@webiny/handler-graphql": "6.3.0-beta.1",
|
|
37
|
+
"@webiny/project-utils": "6.3.0-beta.1",
|
|
38
38
|
"rimraf": "6.1.3",
|
|
39
|
-
"type-fest": "5.
|
|
40
|
-
"typescript": "
|
|
39
|
+
"type-fest": "5.6.0",
|
|
40
|
+
"typescript": "6.0.3",
|
|
41
41
|
"vitest": "4.1.4"
|
|
42
42
|
},
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public",
|
|
45
45
|
"directory": "dist"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "664b273a9f0a971f9ca7e6ffe920db77fefdced1",
|
|
48
48
|
"adio": {
|
|
49
49
|
"ignore": {
|
|
50
50
|
"src": [
|
package/tasks/Manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createOpenSearchEntity","createOpenSearchTable","batchReadAll","Manager","entities","constructor","params","controller","documentClient","elasticsearch","elasticsearchClient","table","getEntity","name","entityName","read","items"],"sources":["Manager.ts"],"sourcesContent":["import { TaskController } from \"@webiny/api-core/features/task/TaskController/index.js\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport type { Client } from \"@webiny/api-opensearch\";\nimport { createOpenSearchEntity, createOpenSearchTable } from \"@webiny/api-opensearch\";\nimport type { IManager } from \"~/types.js\";\nimport type { BatchReadItem } from \"@webiny/db-dynamodb/utils/batch/batchRead.js\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batch/batchRead.js\";\nimport type { IEntity } from \"@webiny/db-dynamodb\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface ManagerParams<\n T extends TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput\n> {\n documentClient: DynamoDBDocument;\n elasticsearchClient: Client;\n controller: TaskController.Interface<T, O>;\n}\n\nexport class Manager<\n T extends TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> implements IManager<T, O
|
|
1
|
+
{"version":3,"names":["createOpenSearchEntity","createOpenSearchTable","batchReadAll","Manager","entities","constructor","params","controller","documentClient","elasticsearch","elasticsearchClient","table","getEntity","name","entityName","read","items"],"sources":["Manager.ts"],"sourcesContent":["import { TaskController } from \"@webiny/api-core/features/task/TaskController/index.js\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport type { Client } from \"@webiny/api-opensearch\";\nimport { createOpenSearchEntity, createOpenSearchTable } from \"@webiny/api-opensearch\";\nimport type { IManager } from \"~/types.js\";\nimport type { BatchReadItem } from \"@webiny/db-dynamodb/utils/batch/batchRead.js\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batch/batchRead.js\";\nimport type { IEntity } from \"@webiny/db-dynamodb\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface ManagerParams<\n T extends TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput\n> {\n documentClient: DynamoDBDocument;\n elasticsearchClient: Client;\n controller: TaskController.Interface<T, O>;\n}\n\nexport class Manager<\n T extends TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> implements IManager<T, O> {\n public readonly controller: TaskController.Interface<T, O>;\n public readonly documentClient: DynamoDBDocument;\n public readonly elasticsearch: Client;\n public readonly table: ReturnType<typeof createOpenSearchTable>;\n\n private readonly entities: Record<string, IEntity> = {};\n\n public constructor(params: ManagerParams<T, O>) {\n this.controller = params.controller;\n this.documentClient = params.documentClient;\n this.elasticsearch = params.elasticsearchClient;\n\n this.table = createOpenSearchTable({\n documentClient: this.documentClient\n });\n }\n\n public getEntity(name: string): IEntity {\n if (this.entities[name]) {\n return this.entities[name];\n }\n\n return (this.entities[name] = createOpenSearchEntity({\n table: this.table,\n entityName: name\n }));\n }\n\n public async read<T>(items: BatchReadItem[]): Promise<T[]> {\n return await batchReadAll<T>({\n table: this.table.table,\n items\n });\n }\n}\n"],"mappings":"AAGA,SAASA,sBAAsB,EAAEC,qBAAqB,QAAQ,wBAAwB;AAGtF,SAASC,YAAY,QAAQ,8CAA8C;AAa3E,OAAO,MAAMC,OAAO,CAGQ;EAMPC,QAAQ,GAA4B,CAAC,CAAC;EAEhDC,WAAWA,CAACC,MAA2B,EAAE;IAC5C,IAAI,CAACC,UAAU,GAAGD,MAAM,CAACC,UAAU;IACnC,IAAI,CAACC,cAAc,GAAGF,MAAM,CAACE,cAAc;IAC3C,IAAI,CAACC,aAAa,GAAGH,MAAM,CAACI,mBAAmB;IAE/C,IAAI,CAACC,KAAK,GAAGV,qBAAqB,CAAC;MAC/BO,cAAc,EAAE,IAAI,CAACA;IACzB,CAAC,CAAC;EACN;EAEOI,SAASA,CAACC,IAAY,EAAW;IACpC,IAAI,IAAI,CAACT,QAAQ,CAACS,IAAI,CAAC,EAAE;MACrB,OAAO,IAAI,CAACT,QAAQ,CAACS,IAAI,CAAC;IAC9B;IAEA,OAAQ,IAAI,CAACT,QAAQ,CAACS,IAAI,CAAC,GAAGb,sBAAsB,CAAC;MACjDW,KAAK,EAAE,IAAI,CAACA,KAAK;MACjBG,UAAU,EAAED;IAChB,CAAC,CAAC;EACN;EAEA,MAAaE,IAAIA,CAAIC,KAAsB,EAAgB;IACvD,OAAO,MAAMd,YAAY,CAAI;MACzBS,KAAK,EAAE,IAAI,CAACA,KAAK,CAACA,KAAK;MACvBK;IACJ,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CreateIndexesTaskRunner","CreateIndexesTaskDefinition","id","title","maxIterations","constructor","elasticsearchClient","documentClient","tenantContext","listTenantsUseCase","indexFactories","run","input","controller","runtime","isAborted","response","aborted","Manager","IndexManager","manager","indexManager","elasticsearch","createIndexesTaskRunner","execute","matching","Array","from","done","onBeforeTrigger","OnBeforeTrigger"],"sources":["CreateIndexesTask.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { IElasticsearchCreateIndexesTaskInput } from \"~/tasks/createIndexes/types.js\";\nimport type { IElasticsearchTaskConfig } from \"~/types.js\";\nimport { CreateIndexesTaskRunner } from \"~/tasks/createIndexes/CreateIndexesTaskRunner.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 class CreateIndexesTaskDefinition
|
|
1
|
+
{"version":3,"names":["CreateIndexesTaskRunner","CreateIndexesTaskDefinition","id","title","maxIterations","constructor","elasticsearchClient","documentClient","tenantContext","listTenantsUseCase","indexFactories","run","input","controller","runtime","isAborted","response","aborted","Manager","IndexManager","manager","indexManager","elasticsearch","createIndexesTaskRunner","execute","matching","Array","from","done","onBeforeTrigger","OnBeforeTrigger"],"sources":["CreateIndexesTask.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { IElasticsearchCreateIndexesTaskInput } from \"~/tasks/createIndexes/types.js\";\nimport type { IElasticsearchTaskConfig } from \"~/types.js\";\nimport { CreateIndexesTaskRunner } from \"~/tasks/createIndexes/CreateIndexesTaskRunner.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 class CreateIndexesTaskDefinition implements TaskDefinition.Interface<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 indexes is there to create.\n */\n maxIterations = 2;\n\n constructor(\n private elasticsearchClient: IElasticsearchTaskConfig[\"elasticsearchClient\"],\n private documentClient: IElasticsearchTaskConfig[\"documentClient\"],\n private tenantContext: TenantContext.Interface,\n private listTenantsUseCase: ListTenantsUseCase.Interface,\n private indexFactories: OpensearchTenantIndexFactory.Interface[]\n ) {}\n\n async run({\n input,\n controller\n }: TaskDefinition.RunParams<IElasticsearchCreateIndexesTaskInput>) {\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 const { IndexManager } = await import(\n /* webpackChunkName: \"IndexManager\" */ \"~/settings/index.js\"\n );\n\n const manager = new Manager<IElasticsearchCreateIndexesTaskInput>({\n elasticsearchClient: this.elasticsearchClient,\n documentClient: this.documentClient,\n controller\n });\n\n const indexManager = new IndexManager(manager.elasticsearch, {});\n\n const createIndexesTaskRunner = new CreateIndexesTaskRunner(\n this.tenantContext,\n this.listTenantsUseCase,\n this.indexFactories,\n manager,\n indexManager\n );\n\n return createIndexesTaskRunner.execute(input.matching, Array.from(input.done || []));\n }\n\n async onBeforeTrigger() {\n // Let's create a new index for the tasks first.\n const { IndexManager } = await import(\n /* webpackChunkName: \"IndexManager\" */ \"~/settings/index.js\"\n );\n const indexManager = new IndexManager(this.elasticsearchClient, {});\n const { OnBeforeTrigger } = await import(\n /* webpackChunkName: \"OnBeforeTrigger\" */\n \"./OnBeforeTrigger.js\"\n );\n\n const onBeforeTrigger = new OnBeforeTrigger(\n indexManager,\n this.tenantContext,\n this.indexFactories\n );\n await onBeforeTrigger.run([\"wbytask\"]);\n }\n}\n"],"mappings":"AAGA,SAASA,uBAAuB;AAKhC,OAAO,MAAMC,2BAA2B,CAA2E;EAC/GC,EAAE,GAAG,4BAA4B;EACjCC,KAAK,GAAG,sCAAsC;EAC9C;AACJ;AACA;AACA;EACIC,aAAa,GAAG,CAAC;EAEjBC,WAAWA,CACCC,mBAAoE,EACpEC,cAA0D,EAC1DC,aAAsC,EACtCC,kBAAgD,EAChDC,cAAwD,EAClE;IAAA,KALUJ,mBAAoE,GAApEA,mBAAoE;IAAA,KACpEC,cAA0D,GAA1DA,cAA0D;IAAA,KAC1DC,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,kBAAgD,GAAhDA,kBAAgD;IAAA,KAChDC,cAAwD,GAAxDA,cAAwD;EACjE;EAEH,MAAMC,GAAGA,CAAC;IACNC,KAAK;IACLC;EAC4D,CAAC,EAAE;IAC/D,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;IACD,MAAM;MAAEC;IAAa,CAAC,GAAG,MAAM,MAAM,CACjC,+DACJ,CAAC;IAED,MAAMC,OAAO,GAAG,IAAIF,OAAO,CAAuC;MAC9DZ,mBAAmB,EAAE,IAAI,CAACA,mBAAmB;MAC7CC,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCM;IACJ,CAAC,CAAC;IAEF,MAAMQ,YAAY,GAAG,IAAIF,YAAY,CAACC,OAAO,CAACE,aAAa,EAAE,CAAC,CAAC,CAAC;IAEhE,MAAMC,uBAAuB,GAAG,IAAIvB,uBAAuB,CACvD,IAAI,CAACQ,aAAa,EAClB,IAAI,CAACC,kBAAkB,EACvB,IAAI,CAACC,cAAc,EACnBU,OAAO,EACPC,YACJ,CAAC;IAED,OAAOE,uBAAuB,CAACC,OAAO,CAACZ,KAAK,CAACa,QAAQ,EAAEC,KAAK,CAACC,IAAI,CAACf,KAAK,CAACgB,IAAI,IAAI,EAAE,CAAC,CAAC;EACxF;EAEA,MAAMC,eAAeA,CAAA,EAAG;IACpB;IACA,MAAM;MAAEV;IAAa,CAAC,GAAG,MAAM,MAAM,CACjC,+DACJ,CAAC;IACD,MAAME,YAAY,GAAG,IAAIF,YAAY,CAAC,IAAI,CAACb,mBAAmB,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM;MAAEwB;IAAgB,CAAC,GAAG,MAAM,MAAM,CACpC,+DAEJ,CAAC;IAED,MAAMD,eAAe,GAAG,IAAIC,eAAe,CACvCT,YAAY,EACZ,IAAI,CAACb,aAAa,EAClB,IAAI,CAACE,cACT,CAAC;IACD,MAAMmB,eAAe,CAAClB,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;EAC1C;AACJ","ignoreList":[]}
|
|
@@ -1 +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
|
|
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 implements TaskDefinition.Interface<\n IDataSynchronizationInput,\n 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,CAGlC;EACEC,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 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IManager } from \"~/types.js\";\nimport type { PrimitiveValue } from \"@webiny/api-opensearch/types.js\";\nimport type { IIndexManager } from \"~/settings/types.js\";\nimport type { IElasticsearchSynchronize } from \"~/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchSynchronize.js\";\nimport type { IElasticsearchFetcher } from \"~/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.js\";\nimport type { IGenericOutput } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface IDataSynchronizationInputValue {\n finished?: boolean;\n}\n\nexport interface IDataSynchronizationInputElasticsearchToDynamoDbValue
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IManager } from \"~/types.js\";\nimport type { PrimitiveValue } from \"@webiny/api-opensearch/types.js\";\nimport type { IIndexManager } from \"~/settings/types.js\";\nimport type { IElasticsearchSynchronize } from \"~/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchSynchronize.js\";\nimport type { IElasticsearchFetcher } from \"~/tasks/dataSynchronization/elasticsearch/abstractions/ElasticsearchFetcher.js\";\nimport type { IGenericOutput } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface IDataSynchronizationInputValue {\n finished?: boolean;\n}\n\nexport interface IDataSynchronizationInputElasticsearchToDynamoDbValue extends IDataSynchronizationInputValue {\n index?: string;\n cursor?: PrimitiveValue[];\n}\n\nexport interface IDataSynchronizationInput {\n flow: \"elasticsearchToDynamoDb\";\n elasticsearchToDynamoDb?: IDataSynchronizationInputElasticsearchToDynamoDbValue;\n}\n\nexport type IDataSynchronizationOutput = IGenericOutput;\n\nexport type ISynchronizationRunResult =\n | TaskDefinition.ResultContinue<IDataSynchronizationInput>\n | TaskDefinition.ResultDone<IDataSynchronizationOutput>\n | TaskDefinition.ResultError\n | TaskDefinition.ResultAborted;\n\nexport interface ISynchronization {\n run(input: IDataSynchronizationInput): Promise<ISynchronizationRunResult>;\n}\n\nexport interface IElasticsearchSyncParams {\n manager: IDataSynchronizationManager;\n indexManager: IIndexManager;\n synchronize: IElasticsearchSynchronize;\n fetcher: IElasticsearchFetcher;\n}\n\nexport interface IElasticsearchSyncFactory {\n (params: IElasticsearchSyncParams): ISynchronization;\n}\n\nexport interface IFactories {\n /**\n * Delete all the records which are in the Elasticsearch but not in the Elasticsearch DynamoDB table.\n */\n elasticsearchToDynamoDb: IElasticsearchSyncFactory;\n}\n\nexport type IDataSynchronizationManager = IManager<\n IDataSynchronizationInput,\n IDataSynchronizationOutput\n>;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContextPlugin","TaskDefinition","Manager","IndexManager","EnableIndexingTaskRunner","getClients","ElasticsearchEnableIndexingTask","id","title","constructor","elasticsearchClient","documentClient","run","input","controller","runtime","isAborted","response","aborted","manager","indexManager","elasticsearch","refreshInterval","numberOfReplicas","enableIndexing","exec","matching","createEnableIndexingTask","params","context","clients","container","registerFactory"],"sources":["index.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { Context, IElasticsearchTaskConfig } from \"~/types.js\";\nimport type { IElasticsearchEnableIndexingTaskInput } from \"./types.js\";\nimport { Manager } from \"../Manager.js\";\nimport { IndexManager } from \"~/settings/index.js\";\nimport { EnableIndexingTaskRunner } from \"./EnableIndexingTaskRunner.js\";\nimport { getClients } from \"~/helpers/getClients.js\";\n\nclass ElasticsearchEnableIndexingTask
|
|
1
|
+
{"version":3,"names":["createContextPlugin","TaskDefinition","Manager","IndexManager","EnableIndexingTaskRunner","getClients","ElasticsearchEnableIndexingTask","id","title","constructor","elasticsearchClient","documentClient","run","input","controller","runtime","isAborted","response","aborted","manager","indexManager","elasticsearch","refreshInterval","numberOfReplicas","enableIndexing","exec","matching","createEnableIndexingTask","params","context","clients","container","registerFactory"],"sources":["index.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { Context, IElasticsearchTaskConfig } from \"~/types.js\";\nimport type { IElasticsearchEnableIndexingTaskInput } from \"./types.js\";\nimport { Manager } from \"../Manager.js\";\nimport { IndexManager } from \"~/settings/index.js\";\nimport { EnableIndexingTaskRunner } from \"./EnableIndexingTaskRunner.js\";\nimport { getClients } from \"~/helpers/getClients.js\";\n\nclass ElasticsearchEnableIndexingTask implements TaskDefinition.Interface<IElasticsearchEnableIndexingTaskInput> {\n id = \"elasticsearchEnableIndexing\";\n title = \"Enable Indexing on Elasticsearch Indexes\";\n\n constructor(\n private elasticsearchClient: IElasticsearchTaskConfig[\"elasticsearchClient\"],\n private documentClient: IElasticsearchTaskConfig[\"documentClient\"]\n ) {}\n\n async run({\n input,\n controller\n }: TaskDefinition.RunParams<IElasticsearchEnableIndexingTaskInput>) {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n const manager = new Manager<IElasticsearchEnableIndexingTaskInput>({\n elasticsearchClient: this.elasticsearchClient,\n documentClient: this.documentClient,\n controller\n });\n\n const indexManager = new IndexManager(\n manager.elasticsearch,\n {},\n {\n refreshInterval: input.refreshInterval,\n numberOfReplicas: input.numberOfReplicas\n }\n );\n\n const enableIndexing = new EnableIndexingTaskRunner(manager, indexManager);\n\n return enableIndexing.exec(input.matching);\n }\n}\n\nexport const createEnableIndexingTask = (params?: Partial<IElasticsearchTaskConfig>) => {\n return createContextPlugin<Context>(context => {\n const clients = getClients(context, params);\n\n // Register the task definition\n context.container.registerFactory(TaskDefinition, () => {\n return new ElasticsearchEnableIndexingTask(\n clients.elasticsearchClient,\n clients.documentClient\n );\n });\n });\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,aAAa;AACjD,SAASC,cAAc,QAAQ,wDAAwD;AAGvF,SAASC,OAAO;AAChB,SAASC,YAAY;AACrB,SAASC,wBAAwB;AACjC,SAASC,UAAU;AAEnB,MAAMC,+BAA+B,CAA4E;EAC7GC,EAAE,GAAG,6BAA6B;EAClCC,KAAK,GAAG,0CAA0C;EAElDC,WAAWA,CACCC,mBAAoE,EACpEC,cAA0D,EACpE;IAAA,KAFUD,mBAAoE,GAApEA,mBAAoE;IAAA,KACpEC,cAA0D,GAA1DA,cAA0D;EACnE;EAEH,MAAMC,GAAGA,CAAC;IACNC,KAAK;IACLC;EAC6D,CAAC,EAAE;IAChE,IAAIA,UAAU,CAACC,OAAO,CAACC,SAAS,CAAC,CAAC,EAAE;MAChC,OAAOF,UAAU,CAACG,QAAQ,CAACC,OAAO,CAAC,CAAC;IACxC;IAEA,MAAMC,OAAO,GAAG,IAAIjB,OAAO,CAAwC;MAC/DQ,mBAAmB,EAAE,IAAI,CAACA,mBAAmB;MAC7CC,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCG;IACJ,CAAC,CAAC;IAEF,MAAMM,YAAY,GAAG,IAAIjB,YAAY,CACjCgB,OAAO,CAACE,aAAa,EACrB,CAAC,CAAC,EACF;MACIC,eAAe,EAAET,KAAK,CAACS,eAAe;MACtCC,gBAAgB,EAAEV,KAAK,CAACU;IAC5B,CACJ,CAAC;IAED,MAAMC,cAAc,GAAG,IAAIpB,wBAAwB,CAACe,OAAO,EAAEC,YAAY,CAAC;IAE1E,OAAOI,cAAc,CAACC,IAAI,CAACZ,KAAK,CAACa,QAAQ,CAAC;EAC9C;AACJ;AAEA,OAAO,MAAMC,wBAAwB,GAAIC,MAA0C,IAAK;EACpF,OAAO5B,mBAAmB,CAAU6B,OAAO,IAAI;IAC3C,MAAMC,OAAO,GAAGzB,UAAU,CAACwB,OAAO,EAAED,MAAM,CAAC;;IAE3C;IACAC,OAAO,CAACE,SAAS,CAACC,eAAe,CAAC/B,cAAc,EAAE,MAAM;MACpD,OAAO,IAAIK,+BAA+B,CACtCwB,OAAO,CAACpB,mBAAmB,EAC3BoB,OAAO,CAACnB,cACZ,CAAC;IACL,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContextPlugin","TaskDefinition","getClients","ElasticsearchReindexingTask","id","title","constructor","elasticsearchClient","documentClient","run","input","controller","runtime","isAborted","response","aborted","Manager","IndexManager","ReindexingTaskRunner","manager","indexManager","elasticsearch","settings","reindexing","keys","undefined","exec","limit","createElasticsearchReindexingTask","params","context","container","registerFactory"],"sources":["reindexingTaskDefinition.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type {\n Context,\n IElasticsearchIndexingTaskValues,\n IElasticsearchTaskConfig\n} from \"~/types.js\";\nimport { getClients } from \"~/helpers/getClients.js\";\n\nclass ElasticsearchReindexingTask
|
|
1
|
+
{"version":3,"names":["createContextPlugin","TaskDefinition","getClients","ElasticsearchReindexingTask","id","title","constructor","elasticsearchClient","documentClient","run","input","controller","runtime","isAborted","response","aborted","Manager","IndexManager","ReindexingTaskRunner","manager","indexManager","elasticsearch","settings","reindexing","keys","undefined","exec","limit","createElasticsearchReindexingTask","params","context","container","registerFactory"],"sources":["reindexingTaskDefinition.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type {\n Context,\n IElasticsearchIndexingTaskValues,\n IElasticsearchTaskConfig\n} from \"~/types.js\";\nimport { getClients } from \"~/helpers/getClients.js\";\n\nclass ElasticsearchReindexingTask implements TaskDefinition.Interface<IElasticsearchIndexingTaskValues> {\n id = \"elasticsearchReindexing\";\n title = \"Elasticsearch reindexing\";\n\n constructor(\n private elasticsearchClient: IElasticsearchTaskConfig[\"elasticsearchClient\"],\n private documentClient: IElasticsearchTaskConfig[\"documentClient\"]\n ) {}\n\n async run({ input, controller }: TaskDefinition.RunParams<IElasticsearchIndexingTaskValues>) {\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 const { ReindexingTaskRunner } = await import(\n /* webpackChunkName: \"ReindexingTaskRunner\" */ \"./ReindexingTaskRunner.js\"\n );\n\n const manager = new Manager<IElasticsearchIndexingTaskValues>({\n elasticsearchClient: this.elasticsearchClient,\n documentClient: this.documentClient,\n controller\n });\n\n const indexManager = new IndexManager(manager.elasticsearch, input.settings || {});\n const reindexing = new ReindexingTaskRunner(manager, indexManager);\n\n const keys = input.keys || undefined;\n return await reindexing.exec(keys, input.limit || 100);\n }\n}\n\nexport const createElasticsearchReindexingTask = (params?: Partial<IElasticsearchTaskConfig>) => {\n return createContextPlugin<Context>(context => {\n const { documentClient, elasticsearchClient } = getClients(context, params);\n\n context.container.registerFactory(\n TaskDefinition,\n () => new ElasticsearchReindexingTask(elasticsearchClient, documentClient)\n );\n });\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,aAAa;AACjD,SAASC,cAAc,QAAQ,wDAAwD;AAMvF,SAASC,UAAU;AAEnB,MAAMC,2BAA2B,CAAuE;EACpGC,EAAE,GAAG,yBAAyB;EAC9BC,KAAK,GAAG,0BAA0B;EAElCC,WAAWA,CACCC,mBAAoE,EACpEC,cAA0D,EACpE;IAAA,KAFUD,mBAAoE,GAApEA,mBAAoE;IAAA,KACpEC,cAA0D,GAA1DA,cAA0D;EACnE;EAEH,MAAMC,GAAGA,CAAC;IAAEC,KAAK;IAAEC;EAAuE,CAAC,EAAE;IACzF,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;IACD,MAAM;MAAEC;IAAqB,CAAC,GAAG,MAAM,MAAM,CACzC,yEACJ,CAAC;IAED,MAAMC,OAAO,GAAG,IAAIH,OAAO,CAAmC;MAC1DT,mBAAmB,EAAE,IAAI,CAACA,mBAAmB;MAC7CC,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCG;IACJ,CAAC,CAAC;IAEF,MAAMS,YAAY,GAAG,IAAIH,YAAY,CAACE,OAAO,CAACE,aAAa,EAAEX,KAAK,CAACY,QAAQ,IAAI,CAAC,CAAC,CAAC;IAClF,MAAMC,UAAU,GAAG,IAAIL,oBAAoB,CAACC,OAAO,EAAEC,YAAY,CAAC;IAElE,MAAMI,IAAI,GAAGd,KAAK,CAACc,IAAI,IAAIC,SAAS;IACpC,OAAO,MAAMF,UAAU,CAACG,IAAI,CAACF,IAAI,EAAEd,KAAK,CAACiB,KAAK,IAAI,GAAG,CAAC;EAC1D;AACJ;AAEA,OAAO,MAAMC,iCAAiC,GAAIC,MAA0C,IAAK;EAC7F,OAAO7B,mBAAmB,CAAU8B,OAAO,IAAI;IAC3C,MAAM;MAAEtB,cAAc;MAAED;IAAoB,CAAC,GAAGL,UAAU,CAAC4B,OAAO,EAAED,MAAM,CAAC;IAE3EC,OAAO,CAACC,SAAS,CAACC,eAAe,CAC7B/B,cAAc,EACd,MAAM,IAAIE,2BAA2B,CAACI,mBAAmB,EAAEC,cAAc,CAC7E,CAAC;EACL,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|