@webiny/api-headless-cms-es-tasks 6.4.5 → 6.6.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ export declare const HeadlessCmsEsTasksFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { MockDataCreatorTaskDefinition } from "./tasks/MockDataCreatorTask.js";
3
+ import { MockDataManagerTaskDefinition } from "./tasks/MockDataManagerTask.js";
4
+ const HeadlessCmsEsTasksFeature = createFeature({
5
+ name: "HeadlessCmsEsTasks",
6
+ register (container) {
7
+ container.register(MockDataCreatorTaskDefinition);
8
+ container.register(MockDataManagerTaskDefinition);
9
+ }
10
+ });
11
+ export { HeadlessCmsEsTasksFeature };
12
+
13
+ //# sourceMappingURL=HeadlessCmsEsTasksFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadlessCmsEsTasksFeature.js","sources":["../src/HeadlessCmsEsTasksFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { MockDataCreatorTaskDefinition } from \"~/tasks/MockDataCreatorTask.js\";\nimport { MockDataManagerTaskDefinition } from \"~/tasks/MockDataManagerTask.js\";\n\nexport const HeadlessCmsEsTasksFeature = createFeature({\n name: \"HeadlessCmsEsTasks\",\n register(container) {\n container.register(MockDataCreatorTaskDefinition);\n container.register(MockDataManagerTaskDefinition);\n }\n});\n"],"names":["HeadlessCmsEsTasksFeature","createFeature","container","MockDataCreatorTaskDefinition","MockDataManagerTaskDefinition"],"mappings":";;;AAIO,MAAMA,4BAA4BC,cAAc;IACnD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import { MOCK_DATA_CREATOR_TASK_ID } from "./tasks/MockDataCreatorTask.js";
2
2
  import { MOCK_DATA_MANAGER_TASK_ID } from "./tasks/MockDataManagerTask.js";
3
3
  export { MOCK_DATA_CREATOR_TASK_ID, MOCK_DATA_MANAGER_TASK_ID };
4
- export declare const createHeadlessCmsEsTasks: () => import("@webiny/api").ContextPlugin<import("@webiny/api/types").Context>;
4
+ export { HeadlessCmsEsTasksFeature } from "./HeadlessCmsEsTasksFeature.js";
package/index.js CHANGED
@@ -1,10 +1,3 @@
1
- import { createContextPlugin } from "@webiny/api";
2
- import { MOCK_DATA_CREATOR_TASK_ID, MockDataCreatorTaskDefinition } from "./tasks/MockDataCreatorTask.js";
3
- import { MOCK_DATA_MANAGER_TASK_ID, MockDataManagerTaskDefinition } from "./tasks/MockDataManagerTask.js";
4
- const createHeadlessCmsEsTasks = ()=>createContextPlugin((context)=>{
5
- context.container.register(MockDataCreatorTaskDefinition);
6
- context.container.register(MockDataManagerTaskDefinition);
7
- });
8
- export { MOCK_DATA_CREATOR_TASK_ID, MOCK_DATA_MANAGER_TASK_ID, createHeadlessCmsEsTasks };
9
-
10
- //# sourceMappingURL=index.js.map
1
+ export { MOCK_DATA_CREATOR_TASK_ID } from "./tasks/MockDataCreatorTask.js";
2
+ export { MOCK_DATA_MANAGER_TASK_ID } from "./tasks/MockDataManagerTask.js";
3
+ export { HeadlessCmsEsTasksFeature } from "./HeadlessCmsEsTasksFeature.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-es-tasks",
3
- "version": "6.4.5",
3
+ "version": "6.6.0-alpha.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -17,23 +17,22 @@
17
17
  },
18
18
  "license": "MIT",
19
19
  "dependencies": {
20
- "@webiny/api-core": "6.4.5",
21
- "@webiny/api-headless-cms": "6.4.5",
22
- "@webiny/api-headless-cms-ddb-es": "6.4.5",
23
- "@webiny/api-opensearch": "6.4.5",
24
- "@webiny/background-tasks": "6.4.5",
25
- "@webiny/handler": "6.4.5",
26
- "@webiny/handler-aws": "6.4.5",
27
- "@webiny/utils": "6.4.5"
20
+ "@webiny/api-core": "6.6.0-alpha.0",
21
+ "@webiny/api-headless-cms": "6.6.0-alpha.0",
22
+ "@webiny/api-headless-cms-utils-os": "6.6.0-alpha.0",
23
+ "@webiny/api-opensearch": "6.6.0-alpha.0",
24
+ "@webiny/background-tasks": "6.6.0-alpha.0",
25
+ "@webiny/error": "6.6.0-alpha.0",
26
+ "@webiny/feature": "6.6.0-alpha.0",
27
+ "@webiny/utils": "6.6.0-alpha.0"
28
28
  },
29
29
  "devDependencies": {
30
- "@webiny/api": "6.4.5",
31
- "@webiny/build-tools": "6.4.5",
32
- "@webiny/handler-graphql": "6.4.5",
33
- "@webiny/plugins": "6.4.5",
34
- "@webiny/project-utils": "6.4.5",
35
- "@webiny/wcp": "6.4.5",
36
- "typescript": "6.0.3",
30
+ "@webiny/api-graphql": "6.6.0-alpha.0",
31
+ "@webiny/api-headless-cms-testing": "6.6.0-alpha.0",
32
+ "@webiny/build-tools": "6.6.0-alpha.0",
33
+ "@webiny/db-dynamodb": "6.6.0-alpha.0",
34
+ "@webiny/project-utils": "6.6.0-alpha.0",
35
+ "typescript": "7.0.2",
37
36
  "vitest": "4.1.10"
38
37
  },
39
38
  "publishConfig": {
@@ -1,8 +1,10 @@
1
1
  import type { IMockDataCreatorInput, IMockDataCreatorOutput } from "./types.js";
2
2
  import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
3
  import type { Context } from "../../types.js";
4
+ import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
4
5
  export declare class MockDataCreator<I extends IMockDataCreatorInput, O extends IMockDataCreatorOutput> {
5
- private context;
6
- constructor(context: Context);
6
+ private readonly context;
7
+ private readonly openSearchClient;
8
+ constructor(context: Context, openSearchClient: OpenSearchClient.Interface);
7
9
  execute(params: TaskDefinition.RunParams<I, O>): Promise<TaskDefinition.Result<I, O>>;
8
10
  }
@@ -5,8 +5,9 @@ import { mdbid } from "@webiny/utils";
5
5
  import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
6
6
  import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
7
7
  class MockDataCreator {
8
- constructor(context){
8
+ constructor(context, openSearchClient){
9
9
  this.context = context;
10
+ this.openSearchClient = openSearchClient;
10
11
  }
11
12
  async execute(params) {
12
13
  const { input, controller } = params;
@@ -19,7 +20,7 @@ class MockDataCreator {
19
20
  const modelResult = await getModel.execute("cars");
20
21
  if (modelResult.isFail()) return controller.response.error(modelResult.error);
21
22
  const model = modelResult.value;
22
- const healthCheck = createWaitUntilHealthy(this.context.opensearch, {
23
+ const healthCheck = createWaitUntilHealthy(this.openSearchClient.use(), {
23
24
  waitingTimeStep: 20,
24
25
  maxWaitingTime: 150,
25
26
  maxProcessorPercent: 80,
@@ -1 +1 @@
1
- {"version":3,"file":"tasks/MockDataCreator/MockDataCreator.js","sources":["../../../src/tasks/MockDataCreator/MockDataCreator.ts"],"sourcesContent":["import type { IMockDataCreatorInput, IMockDataCreatorOutput } from \"./types.js\";\nimport { mockData } from \"./mockData.js\";\nimport { createWaitUntilHealthy } from \"@webiny/api-opensearch/utils/waitUntilHealthy/index.js\";\nimport { OpenSearchCatClusterHealthStatus } from \"@webiny/api-opensearch/operations/types.js\";\nimport { mdbid } from \"@webiny/utils\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { Context } from \"~/types.js\";\n\nexport class MockDataCreator<I extends IMockDataCreatorInput, O extends IMockDataCreatorOutput> {\n constructor(private context: Context) {}\n\n public async execute(\n params: TaskDefinition.RunParams<I, O>\n ): Promise<TaskDefinition.Result<I, O>> {\n const { input, controller } = params;\n\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n } else if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue({\n ...input\n });\n }\n\n const getModel = this.context.container.resolve(GetModelUseCase);\n const createEntry = this.context.container.resolve(CreateEntryUseCase);\n\n const modelResult = await getModel.execute(\"cars\");\n if (modelResult.isFail()) {\n return controller.response.error(modelResult.error);\n }\n\n const model = modelResult.value;\n\n const healthCheck = createWaitUntilHealthy(this.context.opensearch, {\n waitingTimeStep: 20,\n maxWaitingTime: 150,\n maxProcessorPercent: 80,\n minClusterHealthStatus: OpenSearchCatClusterHealthStatus.Yellow,\n maxRamPercent: 101\n });\n\n let createdAmount = input.createdAmount;\n\n for (; createdAmount < input.totalAmount; createdAmount++) {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n } else if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue({\n ...input,\n createdAmount\n });\n }\n if (createdAmount % 50 === 0) {\n try {\n await healthCheck.wait({\n async onUnhealthy({\n waitingTimeStep,\n startedAt,\n mustEndAt,\n runs,\n waitingReason\n }) {\n console.warn(`Cluster is unhealthy on run #${runs}.`, {\n startedAt,\n mustEndAt,\n waitingTimeStep,\n waitingReason\n });\n },\n async onTimeout({\n waitingTimeStep,\n startedAt,\n mustEndAt,\n runs,\n waitingReason\n }) {\n console.warn(`Cluster health check timed out on run #${runs}.`, {\n startedAt,\n mustEndAt,\n waitingTimeStep,\n waitingReason\n });\n }\n });\n } catch {\n return controller.response.continue(\n {\n ...input,\n createdAmount\n },\n {\n seconds: 30\n }\n );\n }\n }\n const taskId = controller.state.getTask().id;\n\n const createResult = await createEntry.execute(model, {\n id: `${taskId}${mdbid()}`,\n location: mockData.wbyAco_location,\n values: mockData\n });\n\n if (createResult.isFail()) {\n return controller.response.error(createResult.error);\n }\n }\n\n return params.controller.response.done(`Created ${input.totalAmount} records.`);\n }\n}\n"],"names":["MockDataCreator","context","params","input","controller","getModel","GetModelUseCase","createEntry","CreateEntryUseCase","modelResult","model","healthCheck","createWaitUntilHealthy","OpenSearchCatClusterHealthStatus","createdAmount","waitingTimeStep","startedAt","mustEndAt","runs","waitingReason","console","taskId","createResult","mdbid","mockData"],"mappings":";;;;;;AAUO,MAAMA;IACT,YAAoBC,OAAgB,CAAE;aAAlBA,OAAO,GAAPA;IAAmB;IAEvC,MAAa,QACTC,MAAsC,EACF;QACpC,MAAM,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGF;QAE9B,IAAIE,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;QAC/B,IAAIA,WAAW,OAAO,CAAC,gBAAgB,IAC1C,OAAOA,WAAW,QAAQ,CAAC,QAAQ,CAAC;YAChC,GAAGD,KAAK;QACZ;QAGJ,MAAME,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAACC;QAChD,MAAMC,cAAc,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAACC;QAEnD,MAAMC,cAAc,MAAMJ,SAAS,OAAO,CAAC;QAC3C,IAAII,YAAY,MAAM,IAClB,OAAOL,WAAW,QAAQ,CAAC,KAAK,CAACK,YAAY,KAAK;QAGtD,MAAMC,QAAQD,YAAY,KAAK;QAE/B,MAAME,cAAcC,uBAAuB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YAChE,iBAAiB;YACjB,gBAAgB;YAChB,qBAAqB;YACrB,wBAAwBC,iCAAiC,MAAM;YAC/D,eAAe;QACnB;QAEA,IAAIC,gBAAgBX,MAAM,aAAa;QAEvC,MAAOW,gBAAgBX,MAAM,WAAW,EAAEW,gBAAiB;YACvD,IAAIV,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;YAC/B,IAAIA,WAAW,OAAO,CAAC,gBAAgB,IAC1C,OAAOA,WAAW,QAAQ,CAAC,QAAQ,CAAC;gBAChC,GAAGD,KAAK;gBACRW;YACJ;YAEJ,IAAIA,gBAAgB,OAAO,GACvB,IAAI;gBACA,MAAMH,YAAY,IAAI,CAAC;oBACnB,MAAM,aAAY,EACdI,eAAe,EACfC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,aAAa,EAChB;wBACGC,QAAQ,IAAI,CAAC,CAAC,6BAA6B,EAAEF,KAAK,CAAC,CAAC,EAAE;4BAClDF;4BACAC;4BACAF;4BACAI;wBACJ;oBACJ;oBACA,MAAM,WAAU,EACZJ,eAAe,EACfC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,aAAa,EAChB;wBACGC,QAAQ,IAAI,CAAC,CAAC,uCAAuC,EAAEF,KAAK,CAAC,CAAC,EAAE;4BAC5DF;4BACAC;4BACAF;4BACAI;wBACJ;oBACJ;gBACJ;YACJ,EAAE,OAAM;gBACJ,OAAOf,WAAW,QAAQ,CAAC,QAAQ,CAC/B;oBACI,GAAGD,KAAK;oBACRW;gBACJ,GACA;oBACI,SAAS;gBACb;YAER;YAEJ,MAAMO,SAASjB,WAAW,KAAK,CAAC,OAAO,GAAG,EAAE;YAE5C,MAAMkB,eAAe,MAAMf,YAAY,OAAO,CAACG,OAAO;gBAClD,IAAI,GAAGW,SAASE,SAAS;gBACzB,UAAUC,SAAS,eAAe;gBAClC,QAAQA;YACZ;YAEA,IAAIF,aAAa,MAAM,IACnB,OAAOlB,WAAW,QAAQ,CAAC,KAAK,CAACkB,aAAa,KAAK;QAE3D;QAEA,OAAOpB,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAEC,MAAM,WAAW,CAAC,SAAS,CAAC;IAClF;AACJ"}
1
+ {"version":3,"file":"tasks/MockDataCreator/MockDataCreator.js","sources":["../../../src/tasks/MockDataCreator/MockDataCreator.ts"],"sourcesContent":["import type { IMockDataCreatorInput, IMockDataCreatorOutput } from \"./types.js\";\nimport { mockData } from \"./mockData.js\";\nimport { createWaitUntilHealthy } from \"@webiny/api-opensearch/utils/waitUntilHealthy/index.js\";\nimport { OpenSearchCatClusterHealthStatus } from \"@webiny/api-opensearch/operations/types.js\";\nimport { mdbid } from \"@webiny/utils\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { Context } from \"~/types.js\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\n\nexport class MockDataCreator<I extends IMockDataCreatorInput, O extends IMockDataCreatorOutput> {\n constructor(\n private readonly context: Context,\n private readonly openSearchClient: OpenSearchClient.Interface\n ) {}\n\n public async execute(\n params: TaskDefinition.RunParams<I, O>\n ): Promise<TaskDefinition.Result<I, O>> {\n const { input, controller } = params;\n\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n } else if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue({\n ...input\n });\n }\n\n const getModel = this.context.container.resolve(GetModelUseCase);\n const createEntry = this.context.container.resolve(CreateEntryUseCase);\n\n const modelResult = await getModel.execute(\"cars\");\n if (modelResult.isFail()) {\n return controller.response.error(modelResult.error);\n }\n\n const model = modelResult.value;\n\n const healthCheck = createWaitUntilHealthy(this.openSearchClient.use(), {\n waitingTimeStep: 20,\n maxWaitingTime: 150,\n maxProcessorPercent: 80,\n minClusterHealthStatus: OpenSearchCatClusterHealthStatus.Yellow,\n maxRamPercent: 101\n });\n\n let createdAmount = input.createdAmount;\n\n for (; createdAmount < input.totalAmount; createdAmount++) {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n } else if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue({\n ...input,\n createdAmount\n });\n }\n if (createdAmount % 50 === 0) {\n try {\n await healthCheck.wait({\n async onUnhealthy({\n waitingTimeStep,\n startedAt,\n mustEndAt,\n runs,\n waitingReason\n }) {\n console.warn(`Cluster is unhealthy on run #${runs}.`, {\n startedAt,\n mustEndAt,\n waitingTimeStep,\n waitingReason\n });\n },\n async onTimeout({\n waitingTimeStep,\n startedAt,\n mustEndAt,\n runs,\n waitingReason\n }) {\n console.warn(`Cluster health check timed out on run #${runs}.`, {\n startedAt,\n mustEndAt,\n waitingTimeStep,\n waitingReason\n });\n }\n });\n } catch {\n return controller.response.continue(\n {\n ...input,\n createdAmount\n },\n {\n seconds: 30\n }\n );\n }\n }\n const taskId = controller.state.getTask().id;\n\n const createResult = await createEntry.execute(model, {\n id: `${taskId}${mdbid()}`,\n location: mockData.wbyAco_location,\n values: mockData\n });\n\n if (createResult.isFail()) {\n return controller.response.error(createResult.error);\n }\n }\n\n return params.controller.response.done(`Created ${input.totalAmount} records.`);\n }\n}\n"],"names":["MockDataCreator","context","openSearchClient","params","input","controller","getModel","GetModelUseCase","createEntry","CreateEntryUseCase","modelResult","model","healthCheck","createWaitUntilHealthy","OpenSearchCatClusterHealthStatus","createdAmount","waitingTimeStep","startedAt","mustEndAt","runs","waitingReason","console","taskId","createResult","mdbid","mockData"],"mappings":";;;;;;AAWO,MAAMA;IACT,YACqBC,OAAgB,EAChBC,gBAA4C,CAC/D;aAFmBD,OAAO,GAAPA;aACAC,gBAAgB,GAAhBA;IAClB;IAEH,MAAa,QACTC,MAAsC,EACF;QACpC,MAAM,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGF;QAE9B,IAAIE,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;QAC/B,IAAIA,WAAW,OAAO,CAAC,gBAAgB,IAC1C,OAAOA,WAAW,QAAQ,CAAC,QAAQ,CAAC;YAChC,GAAGD,KAAK;QACZ;QAGJ,MAAME,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAACC;QAChD,MAAMC,cAAc,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAACC;QAEnD,MAAMC,cAAc,MAAMJ,SAAS,OAAO,CAAC;QAC3C,IAAII,YAAY,MAAM,IAClB,OAAOL,WAAW,QAAQ,CAAC,KAAK,CAACK,YAAY,KAAK;QAGtD,MAAMC,QAAQD,YAAY,KAAK;QAE/B,MAAME,cAAcC,uBAAuB,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI;YACpE,iBAAiB;YACjB,gBAAgB;YAChB,qBAAqB;YACrB,wBAAwBC,iCAAiC,MAAM;YAC/D,eAAe;QACnB;QAEA,IAAIC,gBAAgBX,MAAM,aAAa;QAEvC,MAAOW,gBAAgBX,MAAM,WAAW,EAAEW,gBAAiB;YACvD,IAAIV,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;YAC/B,IAAIA,WAAW,OAAO,CAAC,gBAAgB,IAC1C,OAAOA,WAAW,QAAQ,CAAC,QAAQ,CAAC;gBAChC,GAAGD,KAAK;gBACRW;YACJ;YAEJ,IAAIA,gBAAgB,OAAO,GACvB,IAAI;gBACA,MAAMH,YAAY,IAAI,CAAC;oBACnB,MAAM,aAAY,EACdI,eAAe,EACfC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,aAAa,EAChB;wBACGC,QAAQ,IAAI,CAAC,CAAC,6BAA6B,EAAEF,KAAK,CAAC,CAAC,EAAE;4BAClDF;4BACAC;4BACAF;4BACAI;wBACJ;oBACJ;oBACA,MAAM,WAAU,EACZJ,eAAe,EACfC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,aAAa,EAChB;wBACGC,QAAQ,IAAI,CAAC,CAAC,uCAAuC,EAAEF,KAAK,CAAC,CAAC,EAAE;4BAC5DF;4BACAC;4BACAF;4BACAI;wBACJ;oBACJ;gBACJ;YACJ,EAAE,OAAM;gBACJ,OAAOf,WAAW,QAAQ,CAAC,QAAQ,CAC/B;oBACI,GAAGD,KAAK;oBACRW;gBACJ,GACA;oBACI,SAAS;gBACb;YAER;YAEJ,MAAMO,SAASjB,WAAW,KAAK,CAAC,OAAO,GAAG,EAAE;YAE5C,MAAMkB,eAAe,MAAMf,YAAY,OAAO,CAACG,OAAO;gBAClD,IAAI,GAAGW,SAASE,SAAS;gBACzB,UAAUC,SAAS,eAAe;gBAClC,QAAQA;YACZ;YAEA,IAAIF,aAAa,MAAM,IACnB,OAAOlB,WAAW,QAAQ,CAAC,KAAK,CAACkB,aAAa,KAAK;QAE3D;QAEA,OAAOpB,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAEC,MAAM,WAAW,CAAC,SAAS,CAAC;IAClF;AACJ"}
@@ -1,14 +1,16 @@
1
1
  import type { IMockDataCreatorInput, IMockDataCreatorOutput } from "../tasks/MockDataCreator/types.js";
2
2
  import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
3
  import { CmsContext } from "@webiny/api-headless-cms/features/shared/abstractions.js";
4
+ import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
4
5
  export declare const MOCK_DATA_CREATOR_TASK_ID = "mockDataCreator";
5
6
  declare class MockDataCreatorTask implements TaskDefinition.Interface<IMockDataCreatorInput, IMockDataCreatorOutput> {
6
- private context;
7
+ private readonly context;
8
+ private readonly openSearchClient;
7
9
  id: string;
8
10
  title: string;
9
11
  maxIterations: number;
10
12
  selfCleanup: "always";
11
- constructor(context: CmsContext.Interface);
13
+ constructor(context: CmsContext.Interface, openSearchClient: OpenSearchClient.Interface);
12
14
  run(params: TaskDefinition.RunParams<IMockDataCreatorInput, IMockDataCreatorOutput>): Promise<TaskDefinition.Result<IMockDataCreatorInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskOutput>>;
13
15
  }
14
16
  export declare const MockDataCreatorTaskDefinition: typeof MockDataCreatorTask & {
@@ -1,17 +1,19 @@
1
1
  import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
2
  import { CmsContext } from "@webiny/api-headless-cms/features/shared/abstractions.js";
3
+ import { MockDataCreator } from "./MockDataCreator/MockDataCreator.js";
4
+ import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
3
5
  const MOCK_DATA_CREATOR_TASK_ID = "mockDataCreator";
4
6
  class MockDataCreatorTask {
5
- constructor(context){
7
+ constructor(context, openSearchClient){
6
8
  this.context = context;
9
+ this.openSearchClient = openSearchClient;
7
10
  this.id = MOCK_DATA_CREATOR_TASK_ID;
8
11
  this.title = "Mock Data Creator";
9
12
  this.maxIterations = 500;
10
13
  this.selfCleanup = "always";
11
14
  }
12
15
  async run(params) {
13
- const { MockDataCreator } = await import("./MockDataCreator/MockDataCreator.js");
14
- const carsMock = new MockDataCreator(this.context);
16
+ const carsMock = new MockDataCreator(this.context, this.openSearchClient);
15
17
  try {
16
18
  return await carsMock.execute(params);
17
19
  } catch (ex) {
@@ -22,7 +24,8 @@ class MockDataCreatorTask {
22
24
  const MockDataCreatorTaskDefinition = TaskDefinition.createImplementation({
23
25
  implementation: MockDataCreatorTask,
24
26
  dependencies: [
25
- CmsContext
27
+ CmsContext,
28
+ OpenSearchClient
26
29
  ]
27
30
  });
28
31
  export { MOCK_DATA_CREATOR_TASK_ID, MockDataCreatorTaskDefinition };
@@ -1 +1 @@
1
- {"version":3,"file":"tasks/MockDataCreatorTask.js","sources":["../../src/tasks/MockDataCreatorTask.ts"],"sourcesContent":["import type { Context } from \"~/types.js\";\nimport type {\n IMockDataCreatorInput,\n IMockDataCreatorOutput\n} from \"~/tasks/MockDataCreator/types.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { CmsContext } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\n\nexport const MOCK_DATA_CREATOR_TASK_ID = \"mockDataCreator\";\n\nclass MockDataCreatorTask implements TaskDefinition.Interface<\n IMockDataCreatorInput,\n IMockDataCreatorOutput\n> {\n id = MOCK_DATA_CREATOR_TASK_ID;\n title = \"Mock Data Creator\";\n maxIterations = 500;\n\n selfCleanup = \"always\" as const;\n\n constructor(private context: CmsContext.Interface) {}\n\n async run(params: TaskDefinition.RunParams<IMockDataCreatorInput, IMockDataCreatorOutput>) {\n const { MockDataCreator } = await import(\n /* webpackChunkName: \"MockDataCreator\" */ \"./MockDataCreator/MockDataCreator.js\"\n );\n\n const carsMock = new MockDataCreator<IMockDataCreatorInput, IMockDataCreatorOutput>(\n this.context as Context\n );\n\n try {\n return await carsMock.execute(params);\n } catch (ex) {\n return params.controller.response.error(ex);\n }\n }\n}\n\nexport const MockDataCreatorTaskDefinition = TaskDefinition.createImplementation({\n implementation: MockDataCreatorTask,\n dependencies: [CmsContext]\n});\n"],"names":["MOCK_DATA_CREATOR_TASK_ID","MockDataCreatorTask","context","params","MockDataCreator","carsMock","ex","MockDataCreatorTaskDefinition","TaskDefinition","CmsContext"],"mappings":";;AAQO,MAAMA,4BAA4B;AAEzC,MAAMC;IAUF,YAAoBC,OAA6B,CAAE;aAA/BA,OAAO,GAAPA;aANpB,EAAE,GAAGF;aACL,KAAK,GAAG;aACR,aAAa,GAAG;aAEhB,WAAW,GAAG;IAEsC;IAEpD,MAAM,IAAIG,MAA+E,EAAE;QACvF,MAAM,EAAEC,eAAe,EAAE,GAAG,MAAM,MAAM,CAAN;QAIlC,MAAMC,WAAW,IAAID,gBACjB,IAAI,CAAC,OAAO;QAGhB,IAAI;YACA,OAAO,MAAMC,SAAS,OAAO,CAACF;QAClC,EAAE,OAAOG,IAAI;YACT,OAAOH,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAACG;QAC5C;IACJ;AACJ;AAEO,MAAMC,gCAAgCC,eAAe,oBAAoB,CAAC;IAC7E,gBAAgBP;IAChB,cAAc;QAACQ;KAAW;AAC9B"}
1
+ {"version":3,"file":"tasks/MockDataCreatorTask.js","sources":["../../src/tasks/MockDataCreatorTask.ts"],"sourcesContent":["import type { Context } from \"~/types.js\";\nimport type {\n IMockDataCreatorInput,\n IMockDataCreatorOutput\n} from \"~/tasks/MockDataCreator/types.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { CmsContext } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\nimport { MockDataCreator } from \"./MockDataCreator/MockDataCreator.js\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\n\nexport const MOCK_DATA_CREATOR_TASK_ID = \"mockDataCreator\";\n\nclass MockDataCreatorTask implements TaskDefinition.Interface<\n IMockDataCreatorInput,\n IMockDataCreatorOutput\n> {\n id = MOCK_DATA_CREATOR_TASK_ID;\n title = \"Mock Data Creator\";\n maxIterations = 500;\n\n selfCleanup = \"always\" as const;\n\n constructor(\n private readonly context: CmsContext.Interface,\n private readonly openSearchClient: OpenSearchClient.Interface\n ) {}\n\n async run(params: TaskDefinition.RunParams<IMockDataCreatorInput, IMockDataCreatorOutput>) {\n const carsMock = new MockDataCreator<IMockDataCreatorInput, IMockDataCreatorOutput>(\n this.context as Context,\n this.openSearchClient\n );\n\n try {\n return await carsMock.execute(params);\n } catch (ex) {\n return params.controller.response.error(ex);\n }\n }\n}\n\nexport const MockDataCreatorTaskDefinition = TaskDefinition.createImplementation({\n implementation: MockDataCreatorTask,\n dependencies: [CmsContext, OpenSearchClient]\n});\n"],"names":["MOCK_DATA_CREATOR_TASK_ID","MockDataCreatorTask","context","openSearchClient","params","carsMock","MockDataCreator","ex","MockDataCreatorTaskDefinition","TaskDefinition","CmsContext","OpenSearchClient"],"mappings":";;;;AAUO,MAAMA,4BAA4B;AAEzC,MAAMC;IAUF,YACqBC,OAA6B,EAC7BC,gBAA4C,CAC/D;aAFmBD,OAAO,GAAPA;aACAC,gBAAgB,GAAhBA;aARrB,EAAE,GAAGH;aACL,KAAK,GAAG;aACR,aAAa,GAAG;aAEhB,WAAW,GAAG;IAKX;IAEH,MAAM,IAAII,MAA+E,EAAE;QACvF,MAAMC,WAAW,IAAIC,gBACjB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,gBAAgB;QAGzB,IAAI;YACA,OAAO,MAAMD,SAAS,OAAO,CAACD;QAClC,EAAE,OAAOG,IAAI;YACT,OAAOH,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAACG;QAC5C;IACJ;AACJ;AAEO,MAAMC,gCAAgCC,eAAe,oBAAoB,CAAC;IAC7E,gBAAgBR;IAChB,cAAc;QAACS;QAAYC;KAAiB;AAChD"}
@@ -1,9 +1,11 @@
1
1
  import type { IMockDataManagerInput, IMockDataManagerOutput } from "../../tasks/MockDataManager/types.js";
2
2
  import type { Context } from "../../types.js";
3
3
  import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
+ import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
4
5
  export declare class MockDataManager<I extends IMockDataManagerInput, O extends IMockDataManagerOutput> {
5
- private context;
6
- constructor(context: Context);
6
+ private readonly context;
7
+ private readonly openSearchClient;
8
+ constructor(context: Context, openSearchClient: OpenSearchClient.Interface);
7
9
  execute(params: TaskDefinition.RunParams<I, O>): Promise<TaskDefinition.Result<I, O>>;
8
10
  private listChildTasksNotDone;
9
11
  private abortChildTasks;
@@ -1,13 +1,13 @@
1
- import { TaskDataStatus } from "@webiny/background-tasks/api";
1
+ import { AbortTaskUseCase, ListTasksUseCase, TaskDataStatus } from "@webiny/background-tasks/api";
2
2
  import { calculateAmounts } from "./calculateAmounts.js";
3
3
  import { WAIT_MAX_SECONDS, calculateSeconds } from "./calculateSeconds.js";
4
4
  import { createModelAndGroup } from "./createModelAndGroup.js";
5
5
  import { disableIndexing, enableIndexing } from "../../utils/index.js";
6
- import { CmsModelOpenSearchIndexProvider } from "@webiny/api-headless-cms-ddb-es/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
7
6
  import { MOCK_DATA_CREATOR_TASK_ID } from "../MockDataCreatorTask.js";
8
7
  class MockDataManager {
9
- constructor(context){
8
+ constructor(context, openSearchClient){
10
9
  this.context = context;
10
+ this.openSearchClient = openSearchClient;
11
11
  }
12
12
  async execute(params) {
13
13
  const { input, controller } = params;
@@ -23,11 +23,12 @@ class MockDataManager {
23
23
  }, {
24
24
  seconds: input.seconds || WAIT_MAX_SECONDS
25
25
  });
26
- const model = (await this.context.cms.listModels()).find((m)=>m.modelId === input.modelId);
27
- if (model) await enableIndexing({
28
- client: this.context.opensearch,
29
- model,
30
- indexProvider: this.context.container.resolve(CmsModelOpenSearchIndexProvider)
26
+ await enableIndexing({
27
+ client: this.openSearchClient.use(),
28
+ model: {
29
+ modelId: input.modelId,
30
+ tenant: "root"
31
+ }
31
32
  });
32
33
  return controller.response.done();
33
34
  }
@@ -39,8 +40,7 @@ class MockDataManager {
39
40
  if ("string" == typeof result) return controller.response.done(result);
40
41
  await disableIndexing({
41
42
  model: result.model,
42
- client: this.context.opensearch,
43
- indexProvider: this.context.container.resolve(CmsModelOpenSearchIndexProvider)
43
+ client: this.openSearchClient.use()
44
44
  });
45
45
  const { amountOfTasks, amountOfRecords } = calculateAmounts(input.amount);
46
46
  const seconds = calculateSeconds(amountOfRecords);
@@ -62,7 +62,7 @@ class MockDataManager {
62
62
  });
63
63
  }
64
64
  async listChildTasksNotDone(context, id) {
65
- const { items } = await context.tasks.listTasks({
65
+ const { items } = await context.container.resolve(ListTasksUseCase).execute({
66
66
  where: {
67
67
  parentId: id,
68
68
  taskStatus_in: [
@@ -76,7 +76,7 @@ class MockDataManager {
76
76
  }
77
77
  async abortChildTasks(context, id) {
78
78
  const items = await this.listChildTasksNotDone(context, id);
79
- for (const item of items)await context.tasks.abort({
79
+ for (const item of items)await context.container.resolve(AbortTaskUseCase).execute({
80
80
  id: item.id,
81
81
  message: "Aborted by parent task."
82
82
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tasks/MockDataManager/MockDataManager.js","sources":["../../../src/tasks/MockDataManager/MockDataManager.ts"],"sourcesContent":["import { TaskDataStatus } from \"@webiny/background-tasks/api\";\nimport type {\n IMockDataManagerInput,\n IMockDataManagerOutput\n} from \"~/tasks/MockDataManager/types.js\";\nimport { calculateAmounts } from \"./calculateAmounts.js\";\nimport type { IMockDataCreatorInput } from \"~/tasks/MockDataCreator/types.js\";\nimport { calculateSeconds, WAIT_MAX_SECONDS } from \"./calculateSeconds.js\";\nimport { createModelAndGroup } from \"~/tasks/MockDataManager/createModelAndGroup.js\";\nimport type { Context } from \"~/types.js\";\nimport { disableIndexing, enableIndexing } from \"~/utils/index.js\";\nimport { CmsModelOpenSearchIndexProvider } from \"@webiny/api-headless-cms-ddb-es/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { MOCK_DATA_CREATOR_TASK_ID } from \"~/tasks/MockDataCreatorTask.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\n\nexport class MockDataManager<I extends IMockDataManagerInput, O extends IMockDataManagerOutput> {\n constructor(private context: Context) {}\n\n public async execute(\n params: TaskDefinition.RunParams<I, O>\n ): Promise<TaskDefinition.Result<I, O>> {\n const { input, controller } = params;\n\n const taskId = controller.state.getTask().id;\n if (controller.runtime.isAborted()) {\n await this.abortChildTasks(this.context, taskId);\n return controller.response.aborted();\n } else if (input.seconds) {\n const items = await this.listChildTasksNotDone(this.context, taskId);\n\n if (items.length > 0) {\n return controller.response.continue(\n {\n ...input\n },\n {\n seconds: input.seconds || WAIT_MAX_SECONDS\n }\n );\n }\n\n const model = (await this.context.cms.listModels()).find(\n m => m.modelId === input.modelId\n );\n if (model) {\n await enableIndexing({\n client: this.context.opensearch,\n model,\n indexProvider: this.context.container.resolve(CmsModelOpenSearchIndexProvider)\n });\n }\n return controller.response.done();\n }\n\n const result = await createModelAndGroup({\n context: this.context,\n modelId: input.modelId,\n overwrite: input.overwrite\n });\n if (typeof result === \"string\") {\n return controller.response.done(result);\n }\n\n await disableIndexing({\n model: result.model,\n client: this.context.opensearch,\n indexProvider: this.context.container.resolve(CmsModelOpenSearchIndexProvider)\n });\n\n const { amountOfTasks, amountOfRecords } = calculateAmounts(input.amount);\n\n const seconds = calculateSeconds(amountOfRecords);\n\n for (let current = 0; current < amountOfTasks; current++) {\n await controller.task.trigger<IMockDataCreatorInput>({\n definition: MOCK_DATA_CREATOR_TASK_ID,\n input: {\n totalAmount: amountOfRecords,\n createdAmount: 0\n },\n name: `Mock Data Creator Task #${current + 1} of ${amountOfTasks}`\n });\n }\n\n return controller.response.continue(\n {\n ...input,\n seconds,\n amountOfTasks,\n amountOfRecords\n },\n {\n seconds\n }\n );\n }\n\n private async listChildTasksNotDone(context: Context, id: string): Promise<TaskService.Task[]> {\n const { items } = await context.tasks.listTasks({\n where: {\n parentId: id,\n taskStatus_in: [TaskDataStatus.PENDING, TaskDataStatus.RUNNING]\n },\n limit: 10000\n });\n return items;\n }\n\n private async abortChildTasks(context: Context, id: string): Promise<void> {\n const items = await this.listChildTasksNotDone(context, id);\n for (const item of items) {\n await context.tasks.abort({\n id: item.id,\n message: \"Aborted by parent task.\"\n });\n }\n }\n}\n"],"names":["MockDataManager","context","params","input","controller","taskId","items","WAIT_MAX_SECONDS","model","m","enableIndexing","CmsModelOpenSearchIndexProvider","result","createModelAndGroup","disableIndexing","amountOfTasks","amountOfRecords","calculateAmounts","seconds","calculateSeconds","current","MOCK_DATA_CREATOR_TASK_ID","id","TaskDataStatus","item"],"mappings":";;;;;;;AAgBO,MAAMA;IACT,YAAoBC,OAAgB,CAAE;aAAlBA,OAAO,GAAPA;IAAmB;IAEvC,MAAa,QACTC,MAAsC,EACF;QACpC,MAAM,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGF;QAE9B,MAAMG,SAASD,WAAW,KAAK,CAAC,OAAO,GAAG,EAAE;QAC5C,IAAIA,WAAW,OAAO,CAAC,SAAS,IAAI;YAChC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAEC;YACzC,OAAOD,WAAW,QAAQ,CAAC,OAAO;QACtC;QAAO,IAAID,MAAM,OAAO,EAAE;YACtB,MAAMG,QAAQ,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAED;YAE7D,IAAIC,MAAM,MAAM,GAAG,GACf,OAAOF,WAAW,QAAQ,CAAC,QAAQ,CAC/B;gBACI,GAAGD,KAAK;YACZ,GACA;gBACI,SAASA,MAAM,OAAO,IAAII;YAC9B;YAIR,MAAMC,QAAS,OAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,EAAG,IAAI,CACpDC,CAAAA,IAAKA,EAAE,OAAO,KAAKN,MAAM,OAAO;YAEpC,IAAIK,OACA,MAAME,eAAe;gBACjB,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU;gBAC/BF;gBACA,eAAe,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAACG;YAClD;YAEJ,OAAOP,WAAW,QAAQ,CAAC,IAAI;QACnC;QAEA,MAAMQ,SAAS,MAAMC,oBAAoB;YACrC,SAAS,IAAI,CAAC,OAAO;YACrB,SAASV,MAAM,OAAO;YACtB,WAAWA,MAAM,SAAS;QAC9B;QACA,IAAI,AAAkB,YAAlB,OAAOS,QACP,OAAOR,WAAW,QAAQ,CAAC,IAAI,CAACQ;QAGpC,MAAME,gBAAgB;YAClB,OAAOF,OAAO,KAAK;YACnB,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU;YAC/B,eAAe,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAACD;QAClD;QAEA,MAAM,EAAEI,aAAa,EAAEC,eAAe,EAAE,GAAGC,iBAAiBd,MAAM,MAAM;QAExE,MAAMe,UAAUC,iBAAiBH;QAEjC,IAAK,IAAII,UAAU,GAAGA,UAAUL,eAAeK,UAC3C,MAAMhB,WAAW,IAAI,CAAC,OAAO,CAAwB;YACjD,YAAYiB;YACZ,OAAO;gBACH,aAAaL;gBACb,eAAe;YACnB;YACA,MAAM,CAAC,wBAAwB,EAAEI,UAAU,EAAE,IAAI,EAAEL,eAAe;QACtE;QAGJ,OAAOX,WAAW,QAAQ,CAAC,QAAQ,CAC/B;YACI,GAAGD,KAAK;YACRe;YACAH;YACAC;QACJ,GACA;YACIE;QACJ;IAER;IAEA,MAAc,sBAAsBjB,OAAgB,EAAEqB,EAAU,EAA+B;QAC3F,MAAM,EAAEhB,KAAK,EAAE,GAAG,MAAML,QAAQ,KAAK,CAAC,SAAS,CAAC;YAC5C,OAAO;gBACH,UAAUqB;gBACV,eAAe;oBAACC,eAAe,OAAO;oBAAEA,eAAe,OAAO;iBAAC;YACnE;YACA,OAAO;QACX;QACA,OAAOjB;IACX;IAEA,MAAc,gBAAgBL,OAAgB,EAAEqB,EAAU,EAAiB;QACvE,MAAMhB,QAAQ,MAAM,IAAI,CAAC,qBAAqB,CAACL,SAASqB;QACxD,KAAK,MAAME,QAAQlB,MACf,MAAML,QAAQ,KAAK,CAAC,KAAK,CAAC;YACtB,IAAIuB,KAAK,EAAE;YACX,SAAS;QACb;IAER;AACJ"}
1
+ {"version":3,"file":"tasks/MockDataManager/MockDataManager.js","sources":["../../../src/tasks/MockDataManager/MockDataManager.ts"],"sourcesContent":["import { TaskDataStatus, AbortTaskUseCase, ListTasksUseCase } from \"@webiny/background-tasks/api\";\nimport type {\n IMockDataManagerInput,\n IMockDataManagerOutput\n} from \"~/tasks/MockDataManager/types.js\";\nimport { calculateAmounts } from \"./calculateAmounts.js\";\nimport type { IMockDataCreatorInput } from \"~/tasks/MockDataCreator/types.js\";\nimport { calculateSeconds, WAIT_MAX_SECONDS } from \"./calculateSeconds.js\";\nimport { createModelAndGroup } from \"~/tasks/MockDataManager/createModelAndGroup.js\";\nimport type { Context } from \"~/types.js\";\nimport { disableIndexing, enableIndexing } from \"~/utils/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { MOCK_DATA_CREATOR_TASK_ID } from \"~/tasks/MockDataCreatorTask.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\n\nexport class MockDataManager<I extends IMockDataManagerInput, O extends IMockDataManagerOutput> {\n constructor(\n private readonly context: Context,\n private readonly openSearchClient: OpenSearchClient.Interface\n ) {}\n\n public async execute(\n params: TaskDefinition.RunParams<I, O>\n ): Promise<TaskDefinition.Result<I, O>> {\n const { input, controller } = params;\n\n const taskId = controller.state.getTask().id;\n if (controller.runtime.isAborted()) {\n await this.abortChildTasks(this.context, taskId);\n return controller.response.aborted();\n } else if (input.seconds) {\n const items = await this.listChildTasksNotDone(this.context, taskId);\n\n /**\n * If there are still running creator tasks, we need to wait a bit more.\n */\n if (items.length > 0) {\n return controller.response.continue(\n {\n ...input\n },\n {\n seconds: input.seconds || WAIT_MAX_SECONDS\n }\n );\n }\n /**\n * If there are no running tasks, we can enable indexing and finish the manager task.\n */\n await enableIndexing({\n client: this.openSearchClient.use(),\n model: {\n modelId: input.modelId,\n tenant: \"root\"\n }\n });\n return controller.response.done();\n }\n\n const result = await createModelAndGroup({\n context: this.context,\n modelId: input.modelId,\n overwrite: input.overwrite\n });\n if (typeof result === \"string\") {\n return controller.response.done(result);\n }\n\n await disableIndexing({\n model: result.model,\n client: this.openSearchClient.use()\n });\n\n const { amountOfTasks, amountOfRecords } = calculateAmounts(input.amount);\n\n const seconds = calculateSeconds(amountOfRecords);\n\n for (let current = 0; current < amountOfTasks; current++) {\n await controller.task.trigger<IMockDataCreatorInput>({\n definition: MOCK_DATA_CREATOR_TASK_ID,\n input: {\n totalAmount: amountOfRecords,\n createdAmount: 0\n },\n name: `Mock Data Creator Task #${current + 1} of ${amountOfTasks}`\n });\n }\n\n return controller.response.continue(\n {\n ...input,\n seconds,\n amountOfTasks,\n amountOfRecords\n },\n {\n seconds\n }\n );\n }\n\n private async listChildTasksNotDone(context: Context, id: string): Promise<TaskService.Task[]> {\n const { items } = await context.container.resolve(ListTasksUseCase).execute({\n where: {\n parentId: id,\n taskStatus_in: [TaskDataStatus.PENDING, TaskDataStatus.RUNNING]\n },\n limit: 10000\n });\n return items;\n }\n\n private async abortChildTasks(context: Context, id: string): Promise<void> {\n const items = await this.listChildTasksNotDone(context, id);\n for (const item of items) {\n await context.container.resolve(AbortTaskUseCase).execute({\n id: item.id,\n message: \"Aborted by parent task.\"\n });\n }\n }\n}\n"],"names":["MockDataManager","context","openSearchClient","params","input","controller","taskId","items","WAIT_MAX_SECONDS","enableIndexing","result","createModelAndGroup","disableIndexing","amountOfTasks","amountOfRecords","calculateAmounts","seconds","calculateSeconds","current","MOCK_DATA_CREATOR_TASK_ID","id","ListTasksUseCase","TaskDataStatus","item","AbortTaskUseCase"],"mappings":";;;;;;AAgBO,MAAMA;IACT,YACqBC,OAAgB,EAChBC,gBAA4C,CAC/D;aAFmBD,OAAO,GAAPA;aACAC,gBAAgB,GAAhBA;IAClB;IAEH,MAAa,QACTC,MAAsC,EACF;QACpC,MAAM,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGF;QAE9B,MAAMG,SAASD,WAAW,KAAK,CAAC,OAAO,GAAG,EAAE;QAC5C,IAAIA,WAAW,OAAO,CAAC,SAAS,IAAI;YAChC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAEC;YACzC,OAAOD,WAAW,QAAQ,CAAC,OAAO;QACtC;QAAO,IAAID,MAAM,OAAO,EAAE;YACtB,MAAMG,QAAQ,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAED;YAK7D,IAAIC,MAAM,MAAM,GAAG,GACf,OAAOF,WAAW,QAAQ,CAAC,QAAQ,CAC/B;gBACI,GAAGD,KAAK;YACZ,GACA;gBACI,SAASA,MAAM,OAAO,IAAII;YAC9B;YAMR,MAAMC,eAAe;gBACjB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG;gBACjC,OAAO;oBACH,SAASL,MAAM,OAAO;oBACtB,QAAQ;gBACZ;YACJ;YACA,OAAOC,WAAW,QAAQ,CAAC,IAAI;QACnC;QAEA,MAAMK,SAAS,MAAMC,oBAAoB;YACrC,SAAS,IAAI,CAAC,OAAO;YACrB,SAASP,MAAM,OAAO;YACtB,WAAWA,MAAM,SAAS;QAC9B;QACA,IAAI,AAAkB,YAAlB,OAAOM,QACP,OAAOL,WAAW,QAAQ,CAAC,IAAI,CAACK;QAGpC,MAAME,gBAAgB;YAClB,OAAOF,OAAO,KAAK;YACnB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG;QACrC;QAEA,MAAM,EAAEG,aAAa,EAAEC,eAAe,EAAE,GAAGC,iBAAiBX,MAAM,MAAM;QAExE,MAAMY,UAAUC,iBAAiBH;QAEjC,IAAK,IAAII,UAAU,GAAGA,UAAUL,eAAeK,UAC3C,MAAMb,WAAW,IAAI,CAAC,OAAO,CAAwB;YACjD,YAAYc;YACZ,OAAO;gBACH,aAAaL;gBACb,eAAe;YACnB;YACA,MAAM,CAAC,wBAAwB,EAAEI,UAAU,EAAE,IAAI,EAAEL,eAAe;QACtE;QAGJ,OAAOR,WAAW,QAAQ,CAAC,QAAQ,CAC/B;YACI,GAAGD,KAAK;YACRY;YACAH;YACAC;QACJ,GACA;YACIE;QACJ;IAER;IAEA,MAAc,sBAAsBf,OAAgB,EAAEmB,EAAU,EAA+B;QAC3F,MAAM,EAAEb,KAAK,EAAE,GAAG,MAAMN,QAAQ,SAAS,CAAC,OAAO,CAACoB,kBAAkB,OAAO,CAAC;YACxE,OAAO;gBACH,UAAUD;gBACV,eAAe;oBAACE,eAAe,OAAO;oBAAEA,eAAe,OAAO;iBAAC;YACnE;YACA,OAAO;QACX;QACA,OAAOf;IACX;IAEA,MAAc,gBAAgBN,OAAgB,EAAEmB,EAAU,EAAiB;QACvE,MAAMb,QAAQ,MAAM,IAAI,CAAC,qBAAqB,CAACN,SAASmB;QACxD,KAAK,MAAMG,QAAQhB,MACf,MAAMN,QAAQ,SAAS,CAAC,OAAO,CAACuB,kBAAkB,OAAO,CAAC;YACtD,IAAID,KAAK,EAAE;YACX,SAAS;QACb;IAER;AACJ"}
@@ -1,25 +1,38 @@
1
1
  import { createGroupData } from "./group.js";
2
2
  import { createCarsModel } from "./model.js";
3
3
  import { createIndex } from "../../utils/index.js";
4
- import { CmsModelOpenSearchIndexProvider } from "@webiny/api-headless-cms-ddb-es/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
4
+ import { CmsEntryOpenSearchIndex } from "@webiny/api-headless-cms-utils-os/exports/api/cms/opensearch.js";
5
+ import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
6
+ import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
7
+ import { ListGroupsUseCase } from "@webiny/api-headless-cms/features/contentModelGroup/ListGroups/index.js";
8
+ import { CreateGroupUseCase } from "@webiny/api-headless-cms/features/contentModelGroup/CreateGroup/index.js";
9
+ import { CreateModelUseCase } from "@webiny/api-headless-cms/features/contentModel/CreateModel/index.js";
5
10
  const createModelAndGroup = async (params)=>{
6
11
  const { context, modelId, overwrite = false } = params;
7
- let model = (await context.cms.listModels()).find((m)=>m.modelId === modelId);
12
+ const modelsResult = await context.container.resolve(ListModelsUseCase).execute();
13
+ if (modelsResult.isFail()) throw modelsResult.error;
14
+ let model = modelsResult.value.find((m)=>m.modelId === modelId);
8
15
  let group;
9
16
  if (model && !overwrite) return `Model "${modelId}" already exists.`;
10
17
  if (!model) {
11
- group = (await context.cms.listGroups()).find((group)=>"mocks" === group.slug);
18
+ const groupsResult = await context.container.resolve(ListGroupsUseCase).execute();
19
+ if (groupsResult.isFail()) throw groupsResult.error;
20
+ group = groupsResult.value.find((g)=>"mocks" === g.slug);
12
21
  if (!group) {
13
22
  const groupData = createGroupData();
14
- group = await context.cms.createGroup(groupData);
23
+ const createGroupResult = await context.container.resolve(CreateGroupUseCase).execute(groupData);
24
+ if (createGroupResult.isFail()) throw createGroupResult.error;
25
+ group = createGroupResult.value;
15
26
  }
16
27
  const carsModel = createCarsModel(group);
17
- model = await context.cms.createModel(carsModel);
28
+ const createModelResult = await context.container.resolve(CreateModelUseCase).execute(carsModel);
29
+ if (createModelResult.isFail()) throw createModelResult.error;
30
+ model = createModelResult.value;
18
31
  }
19
32
  await createIndex({
20
33
  model,
21
- client: context.opensearch,
22
- indexProvider: context.container.resolve(CmsModelOpenSearchIndexProvider)
34
+ client: context.container.resolve(OpenSearchClient).use(),
35
+ indexConfigs: context.container.resolveAll(CmsEntryOpenSearchIndex)
23
36
  });
24
37
  return {
25
38
  group: group,
@@ -1 +1 @@
1
- {"version":3,"file":"tasks/MockDataManager/createModelAndGroup.js","sources":["../../../src/tasks/MockDataManager/createModelAndGroup.ts"],"sourcesContent":["import type { CmsGroup, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { Context } from \"~/types.js\";\nimport { createGroupData } from \"./group.js\";\nimport { createCarsModel } from \"./model.js\";\nimport { createIndex } from \"~/utils/index.js\";\nimport { CmsModelOpenSearchIndexProvider } from \"@webiny/api-headless-cms-ddb-es/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js\";\n\ninterface ICreateModelAndGroupParams {\n context: Context;\n modelId: string;\n overwrite?: boolean;\n}\nexport interface ICreateModelAndGroupResultSuccess {\n group: CmsGroup;\n model: CmsModel;\n}\nexport type ICreateModelAndGroupResult = string | ICreateModelAndGroupResultSuccess;\n\nexport const createModelAndGroup = async (\n params: ICreateModelAndGroupParams\n): Promise<ICreateModelAndGroupResult> => {\n const { context, modelId, overwrite = false } = params;\n /**\n * First we need to check if the model already exists in the database. If not, we need to create it.\n */\n let model = (await context.cms.listModels()).find(m => m.modelId === modelId);\n let group: CmsGroup | undefined;\n if (model && !overwrite) {\n return `Model \"${modelId}\" already exists.`;\n } else if (!model) {\n group = (await context.cms.listGroups()).find(group => group.slug === \"mocks\");\n if (!group) {\n const groupData = createGroupData();\n group = await context.cms.createGroup(groupData);\n }\n /**\n * Possibly we need to create the model.\n */\n const carsModel = createCarsModel(group);\n model = await context.cms.createModel(carsModel);\n }\n await createIndex({\n model,\n client: context.opensearch,\n indexProvider: context.container.resolve(CmsModelOpenSearchIndexProvider)\n });\n\n return {\n group: group as CmsGroup,\n model: model as CmsModel\n };\n};\n"],"names":["createModelAndGroup","params","context","modelId","overwrite","model","m","group","groupData","createGroupData","carsModel","createCarsModel","createIndex","CmsModelOpenSearchIndexProvider"],"mappings":";;;;AAkBO,MAAMA,sBAAsB,OAC/BC;IAEA,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,YAAY,KAAK,EAAE,GAAGH;IAIhD,IAAII,QAAS,OAAMH,QAAQ,GAAG,CAAC,UAAU,EAAC,EAAG,IAAI,CAACI,CAAAA,IAAKA,EAAE,OAAO,KAAKH;IACrE,IAAII;IACJ,IAAIF,SAAS,CAACD,WACV,OAAO,CAAC,OAAO,EAAED,QAAQ,iBAAiB,CAAC;IACxC,IAAI,CAACE,OAAO;QACfE,QAAS,OAAML,QAAQ,GAAG,CAAC,UAAU,EAAC,EAAG,IAAI,CAACK,CAAAA,QAASA,AAAe,YAAfA,MAAM,IAAI;QACjE,IAAI,CAACA,OAAO;YACR,MAAMC,YAAYC;YAClBF,QAAQ,MAAML,QAAQ,GAAG,CAAC,WAAW,CAACM;QAC1C;QAIA,MAAME,YAAYC,gBAAgBJ;QAClCF,QAAQ,MAAMH,QAAQ,GAAG,CAAC,WAAW,CAACQ;IAC1C;IACA,MAAME,YAAY;QACdP;QACA,QAAQH,QAAQ,UAAU;QAC1B,eAAeA,QAAQ,SAAS,CAAC,OAAO,CAACW;IAC7C;IAEA,OAAO;QACH,OAAON;QACP,OAAOF;IACX;AACJ"}
1
+ {"version":3,"file":"tasks/MockDataManager/createModelAndGroup.js","sources":["../../../src/tasks/MockDataManager/createModelAndGroup.ts"],"sourcesContent":["import type { CmsGroup, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { Context } from \"~/types.js\";\nimport { createGroupData } from \"./group.js\";\nimport { createCarsModel } from \"./model.js\";\nimport { createIndex } from \"~/utils/index.js\";\nimport { CmsEntryOpenSearchIndex } from \"@webiny/api-headless-cms-utils-os/exports/api/cms/opensearch.js\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { ListGroupsUseCase } from \"@webiny/api-headless-cms/features/contentModelGroup/ListGroups/index.js\";\nimport { CreateGroupUseCase } from \"@webiny/api-headless-cms/features/contentModelGroup/CreateGroup/index.js\";\nimport { CreateModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/CreateModel/index.js\";\n\ninterface ICreateModelAndGroupParams {\n context: Context;\n modelId: string;\n overwrite?: boolean;\n}\nexport interface ICreateModelAndGroupResultSuccess {\n group: CmsGroup;\n model: CmsModel;\n}\nexport type ICreateModelAndGroupResult = string | ICreateModelAndGroupResultSuccess;\n\nexport const createModelAndGroup = async (\n params: ICreateModelAndGroupParams\n): Promise<ICreateModelAndGroupResult> => {\n const { context, modelId, overwrite = false } = params;\n /**\n * First we need to check if the model already exists in the database. If not, we need to create it.\n */\n const modelsResult = await context.container.resolve(ListModelsUseCase).execute();\n if (modelsResult.isFail()) {\n throw modelsResult.error;\n }\n let model = modelsResult.value.find(m => m.modelId === modelId);\n let group: CmsGroup | undefined;\n if (model && !overwrite) {\n return `Model \"${modelId}\" already exists.`;\n } else if (!model) {\n const groupsResult = await context.container.resolve(ListGroupsUseCase).execute();\n if (groupsResult.isFail()) {\n throw groupsResult.error;\n }\n group = groupsResult.value.find(g => g.slug === \"mocks\");\n if (!group) {\n const groupData = createGroupData();\n const createGroupResult = await context.container\n .resolve(CreateGroupUseCase)\n .execute(groupData);\n if (createGroupResult.isFail()) {\n throw createGroupResult.error;\n }\n group = createGroupResult.value;\n }\n /**\n * Possibly we need to create the model.\n */\n const carsModel = createCarsModel(group);\n const createModelResult = await context.container\n .resolve(CreateModelUseCase)\n .execute(carsModel);\n if (createModelResult.isFail()) {\n throw createModelResult.error;\n }\n model = createModelResult.value;\n }\n await createIndex({\n model,\n client: context.container.resolve(OpenSearchClient).use(),\n indexConfigs: context.container.resolveAll(CmsEntryOpenSearchIndex)\n });\n\n return {\n group: group as CmsGroup,\n model: model as CmsModel\n };\n};\n"],"names":["createModelAndGroup","params","context","modelId","overwrite","modelsResult","ListModelsUseCase","model","m","group","groupsResult","ListGroupsUseCase","g","groupData","createGroupData","createGroupResult","CreateGroupUseCase","carsModel","createCarsModel","createModelResult","CreateModelUseCase","createIndex","OpenSearchClient","CmsEntryOpenSearchIndex"],"mappings":";;;;;;;;;AAuBO,MAAMA,sBAAsB,OAC/BC;IAEA,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,YAAY,KAAK,EAAE,GAAGH;IAIhD,MAAMI,eAAe,MAAMH,QAAQ,SAAS,CAAC,OAAO,CAACI,mBAAmB,OAAO;IAC/E,IAAID,aAAa,MAAM,IACnB,MAAMA,aAAa,KAAK;IAE5B,IAAIE,QAAQF,aAAa,KAAK,CAAC,IAAI,CAACG,CAAAA,IAAKA,EAAE,OAAO,KAAKL;IACvD,IAAIM;IACJ,IAAIF,SAAS,CAACH,WACV,OAAO,CAAC,OAAO,EAAED,QAAQ,iBAAiB,CAAC;IACxC,IAAI,CAACI,OAAO;QACf,MAAMG,eAAe,MAAMR,QAAQ,SAAS,CAAC,OAAO,CAACS,mBAAmB,OAAO;QAC/E,IAAID,aAAa,MAAM,IACnB,MAAMA,aAAa,KAAK;QAE5BD,QAAQC,aAAa,KAAK,CAAC,IAAI,CAACE,CAAAA,IAAKA,AAAW,YAAXA,EAAE,IAAI;QAC3C,IAAI,CAACH,OAAO;YACR,MAAMI,YAAYC;YAClB,MAAMC,oBAAoB,MAAMb,QAAQ,SAAS,CAC5C,OAAO,CAACc,oBACR,OAAO,CAACH;YACb,IAAIE,kBAAkB,MAAM,IACxB,MAAMA,kBAAkB,KAAK;YAEjCN,QAAQM,kBAAkB,KAAK;QACnC;QAIA,MAAME,YAAYC,gBAAgBT;QAClC,MAAMU,oBAAoB,MAAMjB,QAAQ,SAAS,CAC5C,OAAO,CAACkB,oBACR,OAAO,CAACH;QACb,IAAIE,kBAAkB,MAAM,IACxB,MAAMA,kBAAkB,KAAK;QAEjCZ,QAAQY,kBAAkB,KAAK;IACnC;IACA,MAAME,YAAY;QACdd;QACA,QAAQL,QAAQ,SAAS,CAAC,OAAO,CAACoB,kBAAkB,GAAG;QACvD,cAAcpB,QAAQ,SAAS,CAAC,UAAU,CAACqB;IAC/C;IAEA,OAAO;QACH,OAAOd;QACP,OAAOF;IACX;AACJ"}
@@ -1,16 +1,17 @@
1
1
  import type { IMockDataManagerInput, IMockDataManagerOutput } from "../tasks/MockDataManager/types.js";
2
2
  import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
3
  import { CmsContext } from "@webiny/api-headless-cms/features/shared/abstractions.js";
4
+ import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
4
5
  export declare const MOCK_DATA_MANAGER_TASK_ID = "mockDataManager";
5
6
  declare class MockDataManagerTask implements TaskDefinition.Interface<IMockDataManagerInput, IMockDataManagerOutput> {
7
+ private readonly context;
8
+ private readonly openSearchClient;
6
9
  id: string;
7
10
  title: string;
8
11
  maxIterations: number;
9
12
  selfCleanup: "always";
10
- private readonly context;
11
- constructor(context: CmsContext.Interface);
13
+ constructor(context: CmsContext.Interface, openSearchClient: OpenSearchClient.Interface);
12
14
  run(params: TaskDefinition.RunParams<IMockDataManagerInput, IMockDataManagerOutput>): Promise<TaskDefinition.Result<IMockDataManagerInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskOutput>>;
13
- private findModel;
14
15
  onError(): Promise<void>;
15
16
  onAbort(): Promise<void>;
16
17
  }
@@ -1,20 +1,21 @@
1
1
  import { CARS_MODEL_ID } from "./MockDataManager/constants.js";
2
2
  import { enableIndexing } from "../utils/index.js";
3
- import { CmsModelOpenSearchIndexProvider } from "@webiny/api-headless-cms-ddb-es/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
4
3
  import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
5
4
  import { CmsContext } from "@webiny/api-headless-cms/features/shared/abstractions.js";
5
+ import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
6
+ import { MockDataManager } from "./MockDataManager/MockDataManager.js";
6
7
  const MOCK_DATA_MANAGER_TASK_ID = "mockDataManager";
7
8
  class MockDataManagerTask {
8
- constructor(context){
9
+ constructor(context, openSearchClient){
10
+ this.context = context;
11
+ this.openSearchClient = openSearchClient;
9
12
  this.id = MOCK_DATA_MANAGER_TASK_ID;
10
13
  this.title = "Mock Data Manager";
11
14
  this.maxIterations = 500;
12
15
  this.selfCleanup = "always";
13
- this.context = context;
14
16
  }
15
17
  async run(params) {
16
- const { MockDataManager } = await import("./MockDataManager/MockDataManager.js");
17
- const carsMock = new MockDataManager(this.context);
18
+ const carsMock = new MockDataManager(this.context, this.openSearchClient);
18
19
  try {
19
20
  return await carsMock.execute({
20
21
  ...params,
@@ -27,30 +28,30 @@ class MockDataManagerTask {
27
28
  return params.controller.response.error(ex);
28
29
  }
29
30
  }
30
- async findModel() {
31
- return (await this.context.cms.listModels()).find((m)=>m.modelId === CARS_MODEL_ID);
32
- }
33
31
  async onError() {
34
- const model = await this.findModel();
35
- if (model) await enableIndexing({
36
- client: this.context.opensearch,
37
- model,
38
- indexProvider: this.context.container.resolve(CmsModelOpenSearchIndexProvider)
32
+ await enableIndexing({
33
+ client: this.openSearchClient.use(),
34
+ model: {
35
+ modelId: CARS_MODEL_ID,
36
+ tenant: "root"
37
+ }
39
38
  });
40
39
  }
41
40
  async onAbort() {
42
- const model = await this.findModel();
43
- if (model) await enableIndexing({
44
- client: this.context.opensearch,
45
- model,
46
- indexProvider: this.context.container.resolve(CmsModelOpenSearchIndexProvider)
41
+ await enableIndexing({
42
+ client: this.openSearchClient.use(),
43
+ model: {
44
+ modelId: CARS_MODEL_ID,
45
+ tenant: "root"
46
+ }
47
47
  });
48
48
  }
49
49
  }
50
50
  const MockDataManagerTaskDefinition = TaskDefinition.createImplementation({
51
51
  implementation: MockDataManagerTask,
52
52
  dependencies: [
53
- CmsContext
53
+ CmsContext,
54
+ OpenSearchClient
54
55
  ]
55
56
  });
56
57
  export { MOCK_DATA_MANAGER_TASK_ID, MockDataManagerTaskDefinition };
@@ -1 +1 @@
1
- {"version":3,"file":"tasks/MockDataManagerTask.js","sources":["../../src/tasks/MockDataManagerTask.ts"],"sourcesContent":["import type { Context } from \"~/types.js\";\nimport type {\n IMockDataManagerInput,\n IMockDataManagerOutput\n} from \"~/tasks/MockDataManager/types.js\";\nimport { CARS_MODEL_ID } from \"~/tasks/MockDataManager/constants.js\";\nimport { enableIndexing } from \"~/utils/index.js\";\nimport { CmsModelOpenSearchIndexProvider } from \"@webiny/api-headless-cms-ddb-es/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { CmsContext } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\n\nexport const MOCK_DATA_MANAGER_TASK_ID = \"mockDataManager\";\n\nclass MockDataManagerTask implements TaskDefinition.Interface<\n IMockDataManagerInput,\n IMockDataManagerOutput\n> {\n id = MOCK_DATA_MANAGER_TASK_ID;\n title = \"Mock Data Manager\";\n maxIterations = 500;\n\n selfCleanup = \"always\" as const;\n\n private readonly context: Context;\n\n constructor(context: CmsContext.Interface) {\n this.context = context as Context;\n }\n\n async run(params: TaskDefinition.RunParams<IMockDataManagerInput, IMockDataManagerOutput>) {\n const { MockDataManager } = await import(\n /* webpackChunkName: \"MockDataManager\" */ \"./MockDataManager/MockDataManager.js\"\n );\n\n const carsMock = new MockDataManager<IMockDataManagerInput, IMockDataManagerOutput>(\n this.context as Context\n );\n\n try {\n return await carsMock.execute({\n ...params,\n input: {\n ...params.input,\n modelId: CARS_MODEL_ID\n }\n });\n } catch (ex) {\n return params.controller.response.error(ex);\n }\n }\n\n private async findModel() {\n return (await this.context.cms.listModels()).find(m => m.modelId === CARS_MODEL_ID);\n }\n\n async onError() {\n const model = await this.findModel();\n if (model) {\n await enableIndexing({\n client: this.context.opensearch,\n model,\n indexProvider: this.context.container.resolve(CmsModelOpenSearchIndexProvider)\n });\n }\n }\n\n async onAbort() {\n const model = await this.findModel();\n if (model) {\n await enableIndexing({\n client: this.context.opensearch,\n model,\n indexProvider: this.context.container.resolve(CmsModelOpenSearchIndexProvider)\n });\n }\n }\n}\n\nexport const MockDataManagerTaskDefinition = TaskDefinition.createImplementation({\n implementation: MockDataManagerTask,\n dependencies: [CmsContext]\n});\n"],"names":["MOCK_DATA_MANAGER_TASK_ID","MockDataManagerTask","context","params","MockDataManager","carsMock","CARS_MODEL_ID","ex","m","model","enableIndexing","CmsModelOpenSearchIndexProvider","MockDataManagerTaskDefinition","TaskDefinition","CmsContext"],"mappings":";;;;;AAWO,MAAMA,4BAA4B;AAEzC,MAAMC;IAYF,YAAYC,OAA6B,CAAE;aAR3C,EAAE,GAAGF;aACL,KAAK,GAAG;aACR,aAAa,GAAG;aAEhB,WAAW,GAAG;QAKV,IAAI,CAAC,OAAO,GAAGE;IACnB;IAEA,MAAM,IAAIC,MAA+E,EAAE;QACvF,MAAM,EAAEC,eAAe,EAAE,GAAG,MAAM,MAAM,CAAN;QAIlC,MAAMC,WAAW,IAAID,gBACjB,IAAI,CAAC,OAAO;QAGhB,IAAI;YACA,OAAO,MAAMC,SAAS,OAAO,CAAC;gBAC1B,GAAGF,MAAM;gBACT,OAAO;oBACH,GAAGA,OAAO,KAAK;oBACf,SAASG;gBACb;YACJ;QACJ,EAAE,OAAOC,IAAI;YACT,OAAOJ,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAACI;QAC5C;IACJ;IAEA,MAAc,YAAY;QACtB,OAAQ,OAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,EAAG,IAAI,CAACC,CAAAA,IAAKA,EAAE,OAAO,KAAKF;IACzE;IAEA,MAAM,UAAU;QACZ,MAAMG,QAAQ,MAAM,IAAI,CAAC,SAAS;QAClC,IAAIA,OACA,MAAMC,eAAe;YACjB,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU;YAC/BD;YACA,eAAe,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAACE;QAClD;IAER;IAEA,MAAM,UAAU;QACZ,MAAMF,QAAQ,MAAM,IAAI,CAAC,SAAS;QAClC,IAAIA,OACA,MAAMC,eAAe;YACjB,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU;YAC/BD;YACA,eAAe,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAACE;QAClD;IAER;AACJ;AAEO,MAAMC,gCAAgCC,eAAe,oBAAoB,CAAC;IAC7E,gBAAgBZ;IAChB,cAAc;QAACa;KAAW;AAC9B"}
1
+ {"version":3,"file":"tasks/MockDataManagerTask.js","sources":["../../src/tasks/MockDataManagerTask.ts"],"sourcesContent":["import type { Context } from \"~/types.js\";\nimport type {\n IMockDataManagerInput,\n IMockDataManagerOutput\n} from \"~/tasks/MockDataManager/types.js\";\nimport { CARS_MODEL_ID } from \"~/tasks/MockDataManager/constants.js\";\nimport { enableIndexing } from \"~/utils/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { CmsContext } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport { MockDataManager } from \"./MockDataManager/MockDataManager.js\";\n\nexport const MOCK_DATA_MANAGER_TASK_ID = \"mockDataManager\";\n\nclass MockDataManagerTask implements TaskDefinition.Interface<\n IMockDataManagerInput,\n IMockDataManagerOutput\n> {\n id = MOCK_DATA_MANAGER_TASK_ID;\n title = \"Mock Data Manager\";\n maxIterations = 500;\n\n selfCleanup = \"always\" as const;\n\n constructor(\n private readonly context: CmsContext.Interface,\n private readonly openSearchClient: OpenSearchClient.Interface\n ) {}\n\n async run(params: TaskDefinition.RunParams<IMockDataManagerInput, IMockDataManagerOutput>) {\n const carsMock = new MockDataManager<IMockDataManagerInput, IMockDataManagerOutput>(\n this.context as Context,\n this.openSearchClient\n );\n\n try {\n return await carsMock.execute({\n ...params,\n input: {\n ...params.input,\n modelId: CARS_MODEL_ID\n }\n });\n } catch (ex) {\n return params.controller.response.error(ex);\n }\n }\n async onError() {\n await enableIndexing({\n client: this.openSearchClient.use(),\n model: {\n modelId: CARS_MODEL_ID,\n tenant: \"root\"\n }\n });\n }\n\n async onAbort() {\n await enableIndexing({\n client: this.openSearchClient.use(),\n model: {\n modelId: CARS_MODEL_ID,\n tenant: \"root\"\n }\n });\n }\n}\n\nexport const MockDataManagerTaskDefinition = TaskDefinition.createImplementation({\n implementation: MockDataManagerTask,\n dependencies: [CmsContext, OpenSearchClient]\n});\n"],"names":["MOCK_DATA_MANAGER_TASK_ID","MockDataManagerTask","context","openSearchClient","params","carsMock","MockDataManager","CARS_MODEL_ID","ex","enableIndexing","MockDataManagerTaskDefinition","TaskDefinition","CmsContext","OpenSearchClient"],"mappings":";;;;;;AAYO,MAAMA,4BAA4B;AAEzC,MAAMC;IAUF,YACqBC,OAA6B,EAC7BC,gBAA4C,CAC/D;aAFmBD,OAAO,GAAPA;aACAC,gBAAgB,GAAhBA;aARrB,EAAE,GAAGH;aACL,KAAK,GAAG;aACR,aAAa,GAAG;aAEhB,WAAW,GAAG;IAKX;IAEH,MAAM,IAAII,MAA+E,EAAE;QACvF,MAAMC,WAAW,IAAIC,gBACjB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,gBAAgB;QAGzB,IAAI;YACA,OAAO,MAAMD,SAAS,OAAO,CAAC;gBAC1B,GAAGD,MAAM;gBACT,OAAO;oBACH,GAAGA,OAAO,KAAK;oBACf,SAASG;gBACb;YACJ;QACJ,EAAE,OAAOC,IAAI;YACT,OAAOJ,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAACI;QAC5C;IACJ;IACA,MAAM,UAAU;QACZ,MAAMC,eAAe;YACjB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG;YACjC,OAAO;gBACH,SAASF;gBACT,QAAQ;YACZ;QACJ;IACJ;IAEA,MAAM,UAAU;QACZ,MAAME,eAAe;YACjB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG;YACjC,OAAO;gBACH,SAASF;gBACT,QAAQ;YACZ;QACJ;IACJ;AACJ;AAEO,MAAMG,gCAAgCC,eAAe,oBAAoB,CAAC;IAC7E,gBAAgBV;IAChB,cAAc;QAACW;QAAYC;KAAiB;AAChD"}
package/types.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import type { OpenSearchContext } from "@webiny/api-opensearch/types.js";
2
1
  import type { CmsContext } from "@webiny/api-headless-cms/types/index.js";
3
2
  import type { Context as TasksContext } from "@webiny/background-tasks/api/types.js";
4
3
  export type * from "./tasks/MockDataManager/types.js";
5
- export interface Context extends CmsContext, OpenSearchContext, TasksContext {
4
+ export interface Context extends CmsContext, TasksContext {
6
5
  }
@@ -1,9 +1,9 @@
1
1
  import type { Client } from "@webiny/api-opensearch";
2
- import type { StorageCmsModel } from "@webiny/api-headless-cms/types/index.js";
3
- import type { CmsModelOpenSearchIndexProvider } from "@webiny/api-headless-cms-ddb-es/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
2
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { CmsEntryOpenSearchIndex } from "@webiny/api-headless-cms-utils-os/exports/api/cms/opensearch.js";
4
4
  export interface ICreateIndexParams {
5
5
  client: Client;
6
- model: StorageCmsModel;
7
- indexProvider: CmsModelOpenSearchIndexProvider.Interface;
6
+ model: Pick<CmsModel, "modelId" | "tenant" | "group">;
7
+ indexConfigs: CmsEntryOpenSearchIndex.Interface[];
8
8
  }
9
9
  export declare const createIndex: (params: ICreateIndexParams) => Promise<void>;
@@ -1,19 +1,23 @@
1
- import { getOpenSearchIndexPrefix } from "@webiny/api-opensearch";
1
+ import { WebinyError } from "@webiny/error";
2
+ import { configurations } from "@webiny/api-headless-cms-utils-os/configurations.js";
2
3
  const createIndex = async (params)=>{
3
- const { client, model, indexProvider } = params;
4
- const { index: rawIndex, settings } = await indexProvider.execute({
4
+ const { client, model, indexConfigs } = params;
5
+ const { index } = configurations.es({
5
6
  model
6
7
  });
7
- const prefix = getOpenSearchIndexPrefix();
8
- const index = prefix ? prefix + rawIndex : rawIndex;
9
8
  const result = await client.indices.exists({
10
9
  index
11
10
  });
12
11
  if (result.body) return;
12
+ const usable = indexConfigs.filter((c)=>c.canUse({
13
+ model
14
+ }));
15
+ if (0 === usable.length) throw new WebinyError("Could not find a single usable CmsEntryOpenSearchIndex.", "OPENSEARCH_INDEX_TEMPLATE_ERROR");
16
+ const config = usable[usable.length - 1];
13
17
  await client.indices.create({
14
18
  index,
15
19
  body: {
16
- ...settings
20
+ ...config.body
17
21
  }
18
22
  });
19
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils/createIndex.js","sources":["../../src/utils/createIndex.ts"],"sourcesContent":["import type { Client } from \"@webiny/api-opensearch\";\nimport type { StorageCmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsModelOpenSearchIndexProvider } from \"@webiny/api-headless-cms-ddb-es/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js\";\nimport { getOpenSearchIndexPrefix } from \"@webiny/api-opensearch\";\n\nexport interface ICreateIndexParams {\n client: Client;\n model: StorageCmsModel;\n indexProvider: CmsModelOpenSearchIndexProvider.Interface;\n}\n\nexport const createIndex = async (params: ICreateIndexParams): Promise<void> => {\n const { client, model, indexProvider } = params;\n\n const { index: rawIndex, settings } = await indexProvider.execute({ model });\n\n const prefix = getOpenSearchIndexPrefix();\n const index = prefix ? prefix + rawIndex : rawIndex;\n\n const result = await client.indices.exists({\n index\n });\n if (result.body) {\n return;\n }\n\n await client.indices.create({\n index,\n body: {\n ...settings\n }\n });\n};\n"],"names":["createIndex","params","client","model","indexProvider","rawIndex","settings","prefix","getOpenSearchIndexPrefix","index","result"],"mappings":";AAWO,MAAMA,cAAc,OAAOC;IAC9B,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAEC,aAAa,EAAE,GAAGH;IAEzC,MAAM,EAAE,OAAOI,QAAQ,EAAEC,QAAQ,EAAE,GAAG,MAAMF,cAAc,OAAO,CAAC;QAAED;IAAM;IAE1E,MAAMI,SAASC;IACf,MAAMC,QAAQF,SAASA,SAASF,WAAWA;IAE3C,MAAMK,SAAS,MAAMR,OAAO,OAAO,CAAC,MAAM,CAAC;QACvCO;IACJ;IACA,IAAIC,OAAO,IAAI,EACX;IAGJ,MAAMR,OAAO,OAAO,CAAC,MAAM,CAAC;QACxBO;QACA,MAAM;YACF,GAAGH,QAAQ;QACf;IACJ;AACJ"}
1
+ {"version":3,"file":"utils/createIndex.js","sources":["../../src/utils/createIndex.ts"],"sourcesContent":["import type { Client } from \"@webiny/api-opensearch\";\nimport { WebinyError } from \"@webiny/error\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { configurations } from \"@webiny/api-headless-cms-utils-os/configurations.js\";\nimport type { CmsEntryOpenSearchIndex } from \"@webiny/api-headless-cms-utils-os/exports/api/cms/opensearch.js\";\n\nexport interface ICreateIndexParams {\n client: Client;\n model: Pick<CmsModel, \"modelId\" | \"tenant\" | \"group\">;\n indexConfigs: CmsEntryOpenSearchIndex.Interface[];\n}\n\nexport const createIndex = async (params: ICreateIndexParams): Promise<void> => {\n const { client, model, indexConfigs } = params;\n\n const { index } = configurations.es({\n model\n });\n\n const result = await client.indices.exists({\n index\n });\n if (result.body) {\n return;\n }\n\n const usable = indexConfigs.filter(c => c.canUse({ model }));\n if (usable.length === 0) {\n /**\n * Should not happen in production as we have a default index configuration, but it can happen in tests if the test setup is not correct.\n */\n throw new WebinyError(\n \"Could not find a single usable CmsEntryOpenSearchIndex.\",\n \"OPENSEARCH_INDEX_TEMPLATE_ERROR\"\n );\n }\n const config = usable[usable.length - 1];\n\n await client.indices.create({\n index,\n body: {\n ...config.body\n }\n });\n};\n"],"names":["createIndex","params","client","model","indexConfigs","index","configurations","result","usable","c","WebinyError","config"],"mappings":";;AAYO,MAAMA,cAAc,OAAOC;IAC9B,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAEC,YAAY,EAAE,GAAGH;IAExC,MAAM,EAAEI,KAAK,EAAE,GAAGC,eAAe,EAAE,CAAC;QAChCH;IACJ;IAEA,MAAMI,SAAS,MAAML,OAAO,OAAO,CAAC,MAAM,CAAC;QACvCG;IACJ;IACA,IAAIE,OAAO,IAAI,EACX;IAGJ,MAAMC,SAASJ,aAAa,MAAM,CAACK,CAAAA,IAAKA,EAAE,MAAM,CAAC;YAAEN;QAAM;IACzD,IAAIK,AAAkB,MAAlBA,OAAO,MAAM,EAIb,MAAM,IAAIE,YACN,2DACA;IAGR,MAAMC,SAASH,MAAM,CAACA,OAAO,MAAM,GAAG,EAAE;IAExC,MAAMN,OAAO,OAAO,CAAC,MAAM,CAAC;QACxBG;QACA,MAAM;YACF,GAAGM,OAAO,IAAI;QAClB;IACJ;AACJ"}
@@ -1,9 +1,7 @@
1
1
  import type { Client } from "@webiny/api-opensearch";
2
- import type { StorageCmsModel } from "@webiny/api-headless-cms/types/index.js";
3
- import type { CmsModelOpenSearchIndexProvider } from "@webiny/api-headless-cms-ddb-es/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
2
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
4
3
  export interface IDisableIndexingParams {
5
4
  client: Client;
6
- model: StorageCmsModel;
7
- indexProvider: CmsModelOpenSearchIndexProvider.Interface;
5
+ model: Pick<CmsModel, "modelId" | "tenant">;
8
6
  }
9
7
  export declare const disableIndexing: (params: IDisableIndexingParams) => Promise<void>;
@@ -1,11 +1,9 @@
1
- import { getOpenSearchIndexPrefix } from "@webiny/api-opensearch";
1
+ import { configurations } from "@webiny/api-headless-cms-utils-os/configurations.js";
2
2
  const disableIndexing = async (params)=>{
3
- const { client, model, indexProvider } = params;
4
- const { index: rawIndex } = await indexProvider.execute({
3
+ const { client, model } = params;
4
+ const { index } = configurations.es({
5
5
  model
6
6
  });
7
- const prefix = getOpenSearchIndexPrefix();
8
- const index = prefix ? prefix + rawIndex : rawIndex;
9
7
  try {
10
8
  await client.indices.putSettings({
11
9
  index,
@@ -1 +1 @@
1
- {"version":3,"file":"utils/disableIndexing.js","sources":["../../src/utils/disableIndexing.ts"],"sourcesContent":["import type { Client } from \"@webiny/api-opensearch\";\nimport type { StorageCmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsModelOpenSearchIndexProvider } from \"@webiny/api-headless-cms-ddb-es/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js\";\nimport { getOpenSearchIndexPrefix } from \"@webiny/api-opensearch\";\n\nexport interface IDisableIndexingParams {\n client: Client;\n model: StorageCmsModel;\n indexProvider: CmsModelOpenSearchIndexProvider.Interface;\n}\n\nexport const disableIndexing = async (params: IDisableIndexingParams) => {\n const { client, model, indexProvider } = params;\n\n const { index: rawIndex } = await indexProvider.execute({ model });\n const prefix = getOpenSearchIndexPrefix();\n const index = prefix ? prefix + rawIndex : rawIndex;\n\n try {\n await client.indices.putSettings({\n index,\n body: {\n index: {\n number_of_replicas: 0,\n refresh_interval: \"-1\"\n }\n }\n });\n } catch (ex) {\n console.error(ex);\n throw ex;\n }\n};\n"],"names":["disableIndexing","params","client","model","indexProvider","rawIndex","prefix","getOpenSearchIndexPrefix","index","ex","console"],"mappings":";AAWO,MAAMA,kBAAkB,OAAOC;IAClC,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAEC,aAAa,EAAE,GAAGH;IAEzC,MAAM,EAAE,OAAOI,QAAQ,EAAE,GAAG,MAAMD,cAAc,OAAO,CAAC;QAAED;IAAM;IAChE,MAAMG,SAASC;IACf,MAAMC,QAAQF,SAASA,SAASD,WAAWA;IAE3C,IAAI;QACA,MAAMH,OAAO,OAAO,CAAC,WAAW,CAAC;YAC7BM;YACA,MAAM;gBACF,OAAO;oBACH,oBAAoB;oBACpB,kBAAkB;gBACtB;YACJ;QACJ;IACJ,EAAE,OAAOC,IAAI;QACTC,QAAQ,KAAK,CAACD;QACd,MAAMA;IACV;AACJ"}
1
+ {"version":3,"file":"utils/disableIndexing.js","sources":["../../src/utils/disableIndexing.ts"],"sourcesContent":["import type { Client } from \"@webiny/api-opensearch\";\nimport { configurations } from \"@webiny/api-headless-cms-utils-os/configurations.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface IDisableIndexingParams {\n client: Client;\n model: Pick<CmsModel, \"modelId\" | \"tenant\">;\n}\n\nexport const disableIndexing = async (params: IDisableIndexingParams) => {\n const { client, model } = params;\n\n const { index } = configurations.es({\n model\n });\n\n try {\n await client.indices.putSettings({\n index,\n body: {\n index: {\n number_of_replicas: 0,\n refresh_interval: \"-1\"\n }\n }\n });\n } catch (ex) {\n console.error(ex);\n throw ex;\n }\n};\n"],"names":["disableIndexing","params","client","model","index","configurations","ex","console"],"mappings":";AASO,MAAMA,kBAAkB,OAAOC;IAClC,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAE,GAAGF;IAE1B,MAAM,EAAEG,KAAK,EAAE,GAAGC,eAAe,EAAE,CAAC;QAChCF;IACJ;IAEA,IAAI;QACA,MAAMD,OAAO,OAAO,CAAC,WAAW,CAAC;YAC7BE;YACA,MAAM;gBACF,OAAO;oBACH,oBAAoB;oBACpB,kBAAkB;gBACtB;YACJ;QACJ;IACJ,EAAE,OAAOE,IAAI;QACTC,QAAQ,KAAK,CAACD;QACd,MAAMA;IACV;AACJ"}
@@ -1,10 +1,8 @@
1
1
  import type { Client } from "@webiny/api-opensearch";
2
- import type { StorageCmsModel } from "@webiny/api-headless-cms/types/index.js";
3
- import type { CmsModelOpenSearchIndexProvider } from "@webiny/api-headless-cms-ddb-es/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js";
2
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
4
3
  interface IEnableIndexingParams {
5
4
  client: Client;
6
- model: StorageCmsModel;
7
- indexProvider: CmsModelOpenSearchIndexProvider.Interface;
5
+ model: Pick<CmsModel, "modelId" | "tenant">;
8
6
  }
9
7
  export declare const enableIndexing: (params: IEnableIndexingParams) => Promise<void>;
10
8
  export {};
@@ -1,11 +1,9 @@
1
- import { getOpenSearchIndexPrefix } from "@webiny/api-opensearch";
1
+ import { configurations } from "@webiny/api-headless-cms-utils-os/configurations.js";
2
2
  const enableIndexing = async (params)=>{
3
- const { client, model, indexProvider } = params;
4
- const { index: rawIndex } = await indexProvider.execute({
3
+ const { client, model } = params;
4
+ const { index } = configurations.es({
5
5
  model
6
6
  });
7
- const prefix = getOpenSearchIndexPrefix();
8
- const index = prefix ? prefix + rawIndex : rawIndex;
9
7
  try {
10
8
  await client.indices.putSettings({
11
9
  index,
@@ -1 +1 @@
1
- {"version":3,"file":"utils/enableIndexing.js","sources":["../../src/utils/enableIndexing.ts"],"sourcesContent":["import type { Client } from \"@webiny/api-opensearch\";\nimport type { StorageCmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsModelOpenSearchIndexProvider } from \"@webiny/api-headless-cms-ddb-es/features/CmsModelOpenSearchIndex/CmsModelOpenSearchIndexProvider.js\";\nimport { getOpenSearchIndexPrefix } from \"@webiny/api-opensearch\";\n\ninterface IEnableIndexingParams {\n client: Client;\n model: StorageCmsModel;\n indexProvider: CmsModelOpenSearchIndexProvider.Interface;\n}\n\nexport const enableIndexing = async (params: IEnableIndexingParams) => {\n const { client, model, indexProvider } = params;\n const { index: rawIndex } = await indexProvider.execute({ model });\n const prefix = getOpenSearchIndexPrefix();\n const index = prefix ? prefix + rawIndex : rawIndex;\n try {\n await client.indices.putSettings({\n index,\n body: {\n index: {\n number_of_replicas: 1,\n refresh_interval: \"1s\"\n }\n }\n });\n } catch (ex) {\n console.error(ex);\n throw ex;\n }\n};\n"],"names":["enableIndexing","params","client","model","indexProvider","rawIndex","prefix","getOpenSearchIndexPrefix","index","ex","console"],"mappings":";AAWO,MAAMA,iBAAiB,OAAOC;IACjC,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAEC,aAAa,EAAE,GAAGH;IACzC,MAAM,EAAE,OAAOI,QAAQ,EAAE,GAAG,MAAMD,cAAc,OAAO,CAAC;QAAED;IAAM;IAChE,MAAMG,SAASC;IACf,MAAMC,QAAQF,SAASA,SAASD,WAAWA;IAC3C,IAAI;QACA,MAAMH,OAAO,OAAO,CAAC,WAAW,CAAC;YAC7BM;YACA,MAAM;gBACF,OAAO;oBACH,oBAAoB;oBACpB,kBAAkB;gBACtB;YACJ;QACJ;IACJ,EAAE,OAAOC,IAAI;QACTC,QAAQ,KAAK,CAACD;QACd,MAAMA;IACV;AACJ"}
1
+ {"version":3,"file":"utils/enableIndexing.js","sources":["../../src/utils/enableIndexing.ts"],"sourcesContent":["import type { Client } from \"@webiny/api-opensearch\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { configurations } from \"@webiny/api-headless-cms-utils-os/configurations.js\";\n\ninterface IEnableIndexingParams {\n client: Client;\n model: Pick<CmsModel, \"modelId\" | \"tenant\">;\n}\n\nexport const enableIndexing = async (params: IEnableIndexingParams) => {\n const { client, model } = params;\n const { index } = configurations.es({\n model\n });\n try {\n await client.indices.putSettings({\n index,\n body: {\n index: {\n number_of_replicas: 1,\n refresh_interval: \"1s\"\n }\n }\n });\n } catch (ex) {\n console.error(ex);\n throw ex;\n }\n};\n"],"names":["enableIndexing","params","client","model","index","configurations","ex","console"],"mappings":";AASO,MAAMA,iBAAiB,OAAOC;IACjC,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAE,GAAGF;IAC1B,MAAM,EAAEG,KAAK,EAAE,GAAGC,eAAe,EAAE,CAAC;QAChCF;IACJ;IACA,IAAI;QACA,MAAMD,OAAO,OAAO,CAAC,WAAW,CAAC;YAC7BE;YACA,MAAM;gBACF,OAAO;oBACH,oBAAoB;oBACpB,kBAAkB;gBACtB;YACJ;QACJ;IACJ,EAAE,OAAOE,IAAI;QACTC,QAAQ,KAAK,CAACD;QACd,MAAMA;IACV;AACJ"}
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport {\n MockDataCreatorTaskDefinition,\n MOCK_DATA_CREATOR_TASK_ID\n} from \"~/tasks/MockDataCreatorTask.js\";\nimport {\n MockDataManagerTaskDefinition,\n MOCK_DATA_MANAGER_TASK_ID\n} from \"~/tasks/MockDataManagerTask.js\";\n\nexport { MOCK_DATA_CREATOR_TASK_ID, MOCK_DATA_MANAGER_TASK_ID };\n\nexport const createHeadlessCmsEsTasks = () => {\n return createContextPlugin(context => {\n context.container.register(MockDataCreatorTaskDefinition);\n context.container.register(MockDataManagerTaskDefinition);\n });\n};\n"],"names":["createHeadlessCmsEsTasks","createContextPlugin","context","MockDataCreatorTaskDefinition","MockDataManagerTaskDefinition"],"mappings":";;;AAYO,MAAMA,2BAA2B,IAC7BC,oBAAoBC,CAAAA;QACvBA,QAAQ,SAAS,CAAC,QAAQ,CAACC;QAC3BD,QAAQ,SAAS,CAAC,QAAQ,CAACE;IAC/B"}