@webiny/api-headless-cms-ddb-es 5.25.0-beta.5 → 5.25.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/configurations.d.ts +2 -2
  2. package/configurations.js +18 -7
  3. package/configurations.js.map +1 -1
  4. package/elasticsearch/createElasticsearchIndex.d.ts +9 -0
  5. package/elasticsearch/createElasticsearchIndex.js +60 -0
  6. package/elasticsearch/createElasticsearchIndex.js.map +1 -0
  7. package/elasticsearch/deleteElasticsearchIndex.d.ts +8 -0
  8. package/elasticsearch/deleteElasticsearchIndex.js +43 -0
  9. package/elasticsearch/deleteElasticsearchIndex.js.map +1 -0
  10. package/elasticsearch/indexing/dateTimeIndexing.js +1 -1
  11. package/elasticsearch/indexing/dateTimeIndexing.js.map +1 -1
  12. package/elasticsearch/indices/base.d.ts +2 -0
  13. package/elasticsearch/indices/base.js +23 -0
  14. package/elasticsearch/indices/base.js.map +1 -0
  15. package/elasticsearch/indices/index.d.ts +1 -0
  16. package/elasticsearch/indices/index.js +16 -0
  17. package/elasticsearch/indices/index.js.map +1 -0
  18. package/elasticsearch/indices/japanese.d.ts +2 -0
  19. package/elasticsearch/indices/japanese.js +24 -0
  20. package/elasticsearch/indices/japanese.js.map +1 -0
  21. package/helpers/createElasticsearchQueryBody.js +83 -28
  22. package/helpers/createElasticsearchQueryBody.js.map +1 -1
  23. package/index.js +49 -14
  24. package/index.js.map +1 -1
  25. package/operations/entry/index.js +37 -47
  26. package/operations/entry/index.js.map +1 -1
  27. package/operations/group/index.js +1 -3
  28. package/operations/group/index.js.map +1 -1
  29. package/operations/model/index.js +18 -36
  30. package/operations/model/index.js.map +1 -1
  31. package/operations/settings/index.js +1 -3
  32. package/operations/settings/index.js.map +1 -1
  33. package/operations/system/index.js +1 -3
  34. package/operations/system/index.js.map +1 -1
  35. package/package.json +15 -17
  36. package/plugins/CmsEntryElasticsearchIndexPlugin.d.ts +4 -0
  37. package/plugins/CmsEntryElasticsearchIndexPlugin.js +17 -0
  38. package/plugins/CmsEntryElasticsearchIndexPlugin.js.map +1 -0
  39. package/types.d.ts +2 -2
  40. package/types.js.map +1 -1
  41. package/upgrades/index.d.ts +1 -1
  42. package/upgrades/index.js +1 -7
  43. package/upgrades/index.js.map +1 -1
  44. package/helpers/operatorPluginsList.d.ts +0 -6
  45. package/helpers/operatorPluginsList.js +0 -30
  46. package/helpers/operatorPluginsList.js.map +0 -1
  47. package/operations/system/createElasticsearchTemplate.d.ts +0 -5
  48. package/operations/system/createElasticsearchTemplate.js +0 -62
  49. package/operations/system/createElasticsearchTemplate.js.map +0 -1
  50. package/upgrades/utils.d.ts +0 -4
  51. package/upgrades/utils.js +0 -20
  52. package/upgrades/utils.js.map +0 -1
  53. package/upgrades/v5.0.0/cleanDatabaseRecord.d.ts +0 -9
  54. package/upgrades/v5.0.0/cleanDatabaseRecord.js +0 -20
  55. package/upgrades/v5.0.0/cleanDatabaseRecord.js.map +0 -1
  56. package/upgrades/v5.0.0/createOldVersionIndiceName.d.ts +0 -2
  57. package/upgrades/v5.0.0/createOldVersionIndiceName.js +0 -12
  58. package/upgrades/v5.0.0/createOldVersionIndiceName.js.map +0 -1
  59. package/upgrades/v5.0.0/entryValueFixer.d.ts +0 -7
  60. package/upgrades/v5.0.0/entryValueFixer.js +0 -124
  61. package/upgrades/v5.0.0/entryValueFixer.js.map +0 -1
  62. package/upgrades/v5.0.0/fieldFinder.d.ts +0 -9
  63. package/upgrades/v5.0.0/fieldFinder.js +0 -46
  64. package/upgrades/v5.0.0/fieldFinder.js.map +0 -1
  65. package/upgrades/v5.0.0/helpers.d.ts +0 -4
  66. package/upgrades/v5.0.0/helpers.js +0 -57
  67. package/upgrades/v5.0.0/helpers.js.map +0 -1
  68. package/upgrades/v5.0.0/index.d.ts +0 -4
  69. package/upgrades/v5.0.0/index.js +0 -232
  70. package/upgrades/v5.0.0/index.js.map +0 -1
  71. package/upgrades/v5.8.0/index.d.ts +0 -7
  72. package/upgrades/v5.8.0/index.js +0 -426
  73. package/upgrades/v5.8.0/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["createElasticsearchQueryBody.ts"],"names":["specialFields","noKeywordFields","createElasticsearchSortParams","args","sort","modelFields","parentPath","searchPlugins","length","sortPlugins","Object","values","reduce","plugins","modelField","searchPlugin","type","field","fieldId","CmsEntryElasticsearchFieldPlugin","unmappedType","keyword","hasKeyword","sortable","isSortable","searchable","isSearchable","path","createFieldPath","key","fieldPlugins","createInitialQueryValue","where","query","must","must_not","should","filter","sharedIndex","process","env","ELASTICSEARCH_SHARED_INDEXES","tenant","push","term","locale","published","latest","WebinyError","createPath","value","id","isSystemField","match","includes","nonRefFieldTypes","isRefFieldFiltering","params","typeOf","Array","isArray","Date","toISOString","fieldPathFactory","plugin","fieldPath","keywordValue","applyFiltering","operator","initialValue","operatorPlugins","fieldSearchPlugin","apply","basePath","execElasticsearchBuildQueryPlugins","initialWhere","sf","keys","hasOwnProperty","undefined","cmsField","whereKey","createElasticsearchQueryBody","model","after","limit","initialSort","queryPlugins","byType","CmsEntryElasticsearchQueryModifierPlugin","pl","modelId","modifyQuery","CmsEntryElasticsearchSortModifierPlugin","modifySort","body","bool","size","search_after","track_total_hits","bodyPlugins","CmsEntryElasticsearchBodyModifierPlugin","modifyBody"],"mappings":"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","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { OperatorPlugins, operatorPluginsList } from \"./operatorPluginsList\";\nimport { transformValueForSearch } from \"./transformValueForSearch\";\nimport { searchPluginsList } from \"./searchPluginsList\";\nimport {\n CmsEntryListParams,\n CmsEntryListSort,\n CmsEntryListWhere,\n CmsModel,\n CmsModelField\n} from \"@webiny/api-headless-cms/types\";\nimport {\n SearchBody as esSearchBody,\n Sort as esSort,\n ElasticsearchBoolQueryConfig\n} from \"@webiny/api-elasticsearch/types\";\nimport { decodeCursor } from \"@webiny/api-elasticsearch/cursors\";\nimport { createSort } from \"@webiny/api-elasticsearch/sort\";\nimport { createModelFields, ModelField, ModelFields } from \"./fields\";\nimport { CmsEntryElasticsearchFieldPlugin } from \"~/plugins/CmsEntryElasticsearchFieldPlugin\";\nimport { parseWhereKey } from \"@webiny/api-elasticsearch/where\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createLatestType, createPublishedType } from \"~/operations/entry\";\nimport { CmsEntryElasticsearchQueryModifierPlugin } from \"~/plugins/CmsEntryElasticsearchQueryModifierPlugin\";\nimport { CmsEntryElasticsearchSortModifierPlugin } from \"~/plugins/CmsEntryElasticsearchSortModifierPlugin\";\nimport { CmsEntryElasticsearchBodyModifierPlugin } from \"~/plugins/CmsEntryElasticsearchBodyModifierPlugin\";\nimport {\n CmsEntryElasticsearchQueryBuilderValueSearchPlugin,\n CreatePathCallableParams\n} from \"~/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin\";\n\ninterface CreateElasticsearchParams {\n plugins: PluginsContainer;\n model: CmsModel;\n args: CmsEntryListParams;\n parentPath?: string;\n}\n\ninterface CreateElasticsearchSortParams {\n plugins: PluginsContainer;\n sort?: CmsEntryListSort;\n modelFields: ModelFields;\n parentPath?: string | null;\n model: CmsModel;\n searchPlugins: Record<string, CmsEntryElasticsearchQueryBuilderValueSearchPlugin>;\n}\n\ninterface CreateElasticsearchQueryArgs {\n model: CmsModel;\n plugins: PluginsContainer;\n where: CmsEntryListWhere;\n modelFields: ModelFields;\n parentPath?: string | null;\n searchPlugins: Record<string, CmsEntryElasticsearchQueryBuilderValueSearchPlugin>;\n}\n\nconst specialFields = [\"published\", \"latest\", \"locale\", \"tenant\"];\nconst noKeywordFields = [\"date\", \"number\", \"boolean\"];\n\nconst createElasticsearchSortParams = (args: CreateElasticsearchSortParams): esSort => {\n const { sort, modelFields, parentPath, searchPlugins } = args;\n\n if (!sort || sort.length === 0) {\n return [];\n }\n\n const sortPlugins = Object.values(modelFields).reduce((plugins, modelField) => {\n const searchPlugin = searchPlugins[modelField.type];\n\n plugins[modelField.field.fieldId] = new CmsEntryElasticsearchFieldPlugin({\n unmappedType: modelField.unmappedType,\n keyword: hasKeyword(modelField),\n sortable: modelField.isSortable,\n searchable: modelField.isSearchable,\n field: modelField.field.fieldId,\n path: createFieldPath({\n key: modelField.field.fieldId,\n parentPath,\n modelField,\n searchPlugin\n })\n });\n return plugins;\n }, {} as Record<string, CmsEntryElasticsearchFieldPlugin>);\n\n return createSort({\n fieldPlugins: sortPlugins,\n sort\n });\n};\n/**\n * Latest and published are specific in Elasticsearch to that extend that they are tagged in the __type property.\n * We allow either published or either latest.\n * Latest is used in the manage API and published in the read API.\n */\nconst createInitialQueryValue = (\n args: CreateElasticsearchQueryArgs\n): ElasticsearchBoolQueryConfig => {\n /**\n * Cast as partial so we can remove unnecessary keys.\n */\n const where = args.where as Partial<CmsEntryListWhere>;\n\n const query: ElasticsearchBoolQueryConfig = {\n must: [],\n must_not: [],\n should: [],\n filter: []\n };\n\n // When ES index is shared between tenants, we need to filter records by tenant ID\n const sharedIndex = process.env.ELASTICSEARCH_SHARED_INDEXES === \"true\";\n if (sharedIndex && where.tenant) {\n query.must.push({ term: { \"tenant.keyword\": where.tenant } });\n }\n delete where[\"tenant\"];\n\n if (where.locale) {\n query.must.push({\n term: {\n \"locale.keyword\": where.locale\n }\n });\n }\n delete where[\"locale\"];\n /**\n * We must transform published and latest where args into something that is understandable by our Elasticsearch\n */\n if (where.published === true) {\n query.must.push({\n term: {\n \"__type.keyword\": createPublishedType()\n }\n });\n } else if (where.latest === true) {\n query.must.push({\n term: {\n \"__type.keyword\": createLatestType()\n }\n });\n }\n // we do not allow not published and not latest\n else {\n throw new WebinyError(\n `Cannot call Elasticsearch query when not setting \"published\" or \"latest\".`,\n \"ELASTICSEARCH_UNSUPPORTED_QUERY\",\n {\n where\n }\n );\n }\n //\n return query;\n};\n\ninterface CreateFieldPathParams {\n modelField: ModelField;\n key: string;\n searchPlugin?: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;\n parentPath?: string | null;\n}\nconst createFieldPath = ({\n modelField,\n searchPlugin,\n parentPath,\n key\n}: CreateFieldPathParams): string => {\n let path: string | null = null;\n if (searchPlugin && typeof searchPlugin.createPath === \"function\") {\n path = searchPlugin.createPath({\n field: modelField.field,\n value: null,\n key\n });\n } else if (typeof modelField.path === \"function\") {\n path = modelField.path(modelField.field.fieldId);\n }\n if (!path) {\n /**\n * We know that modelFieldPath is a string or undefined at this point.\n */\n path = (modelField.path as string) || modelField.field.fieldId || modelField.field.id;\n }\n return modelField.isSystemField || !parentPath || path.match(parentPath)\n ? path\n : `${parentPath}.${path}`;\n};\n\nconst hasKeyword = (modelField: ModelField): boolean => {\n /**\n * We defined some field types that MUST have no keyword added to the field path\n */\n if (noKeywordFields.includes(modelField.type)) {\n return false;\n } else if (modelField.unmappedType) {\n /**\n * If modelField has unmapped type defined, do not add keyword.\n */\n return false;\n } else if (modelField.keyword === false) {\n /**\n * And if specifically defined that modelField has no keyword, do not add it.\n */\n return false;\n }\n /**\n * All other fields have keyword added.\n */\n return true;\n};\n\ninterface IsRefFieldFilteringParams {\n key: string;\n value: any;\n field: CmsModelField;\n}\n\n/**\n * A list of typeof strings that are 100% not ref field filtering.\n * We also need to check for array and date.\n */\nconst nonRefFieldTypes: string[] = [\n \"string\",\n \"number\",\n \"undefined\",\n \"symbol\",\n \"bigint\",\n \"function\",\n \"boolean\"\n];\nconst isRefFieldFiltering = (params: IsRefFieldFilteringParams): boolean => {\n const { key, value, field } = params;\n const typeOf = typeof value;\n if (\n !value ||\n nonRefFieldTypes.includes(typeOf) ||\n Array.isArray(value) ||\n value instanceof Date ||\n !!value.toISOString\n ) {\n return false;\n } else if (typeOf === \"object\" && field.type === \"ref\") {\n return true;\n }\n throw new WebinyError(\n \"Could not determine if the search value is ref field search.\",\n \"REF_FIELD_SEARCH_ERROR\",\n {\n value,\n field,\n key\n }\n );\n};\n\ninterface FieldPathFactoryParams extends Omit<CreatePathCallableParams, \"field\"> {\n plugin?: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;\n modelField: ModelField;\n key: string;\n parentPath?: string | null;\n keyword?: boolean;\n}\nconst fieldPathFactory = (params: FieldPathFactoryParams): string => {\n const { plugin, modelField, value, parentPath, keyword, key } = params;\n\n const field = modelField.field;\n\n let fieldPath: string | null = null;\n if (plugin) {\n fieldPath = plugin.createPath({ field, value, key });\n }\n if (!fieldPath) {\n fieldPath = field.fieldId;\n if (modelField.path) {\n fieldPath =\n typeof modelField.path === \"function\" ? modelField.path(value) : modelField.path;\n }\n }\n\n const keywordValue = keyword ? \".keyword\" : \"\";\n if (!parentPath) {\n return `${fieldPath}${keywordValue}`;\n }\n return `${parentPath}.${fieldPath}${keywordValue}`;\n};\n\ninterface ApplyFilteringParams {\n query: ElasticsearchBoolQueryConfig;\n modelField: ModelField;\n operator: string;\n key: string;\n value: any;\n operatorPlugins: OperatorPlugins;\n searchPlugins: Record<string, CmsEntryElasticsearchQueryBuilderValueSearchPlugin>;\n parentPath?: string | null;\n}\nconst applyFiltering = (params: ApplyFilteringParams) => {\n const {\n query,\n modelField,\n operator,\n key,\n value: initialValue,\n operatorPlugins,\n searchPlugins,\n parentPath\n } = params;\n const plugin = operatorPlugins[operator];\n if (!plugin) {\n throw new WebinyError(\"Operator plugin missing.\", \"PLUGIN_MISSING\", {\n operator\n });\n }\n const fieldSearchPlugin = searchPlugins[modelField.type];\n const value = transformValueForSearch({\n plugins: searchPlugins,\n field: modelField.field,\n value: initialValue\n });\n\n const keyword = hasKeyword(modelField);\n plugin.apply(query, {\n basePath: fieldPathFactory({\n plugin: fieldSearchPlugin,\n modelField,\n parentPath: modelField.isSystemField ? null : parentPath,\n value,\n key\n }),\n path: fieldPathFactory({\n plugin: fieldSearchPlugin,\n modelField,\n value,\n parentPath: modelField.isSystemField ? null : parentPath,\n keyword,\n key\n }),\n value,\n keyword\n });\n};\n/*\n * Iterate through where keys and apply plugins where necessary\n */\nconst execElasticsearchBuildQueryPlugins = (\n params: CreateElasticsearchQueryArgs\n): ElasticsearchBoolQueryConfig => {\n const { where: initialWhere, modelFields, parentPath, plugins, searchPlugins } = params;\n\n const where: CmsEntryListWhere = {\n ...initialWhere\n };\n const query = createInitialQueryValue({\n ...params,\n where\n });\n\n /**\n * Always remove special fields, as these do not exist in Elasticsearch.\n */\n for (const sf of specialFields) {\n delete where[sf];\n }\n\n if (Object.keys(where).length === 0) {\n return query;\n }\n\n const operatorPlugins = operatorPluginsList(plugins);\n\n for (const key in where) {\n if (where.hasOwnProperty(key) === false) {\n continue;\n }\n /**\n * We do not need to go further if value is undefined.\n * There are few hardcoded possibilities when value is undefined, for example, ownedBy.\n */\n if (where[key] === undefined) {\n continue;\n }\n const { field, operator } = parseWhereKey(key);\n const modelField = modelFields[field];\n\n if (!modelField) {\n throw new WebinyError(`There is no field \"${field}\".`);\n }\n const { isSearchable = false, field: cmsField } = modelField;\n if (!isSearchable) {\n throw new WebinyError(`Field \"${field}\" is not searchable.`);\n }\n /**\n * There is a possibility that value is an object.\n * In that case, check if field is ref field and continue a bit differently.\n */\n if (isRefFieldFiltering({ key, value: where[key], field: cmsField })) {\n /**\n * We we need to go through each key in where[key] to determine the filters.\n */\n for (const whereKey in where[key]) {\n const { operator } = parseWhereKey(whereKey);\n applyFiltering({\n query,\n modelField,\n operator,\n key: whereKey,\n value: where[key][whereKey],\n searchPlugins,\n operatorPlugins,\n parentPath\n });\n }\n continue;\n }\n applyFiltering({\n query,\n modelField,\n operator,\n key,\n value: where[key],\n searchPlugins,\n operatorPlugins,\n parentPath\n });\n }\n\n return query;\n};\n\nexport const createElasticsearchQueryBody = (params: CreateElasticsearchParams): esSearchBody => {\n const { plugins, model, args, parentPath = null } = params;\n const { where, after, limit, sort: initialSort } = args;\n\n const modelFields = createModelFields(plugins, model);\n const searchPlugins = searchPluginsList(plugins);\n\n const query = execElasticsearchBuildQueryPlugins({\n model,\n plugins,\n where,\n modelFields,\n parentPath,\n searchPlugins\n });\n\n const queryPlugins = plugins\n .byType<CmsEntryElasticsearchQueryModifierPlugin>(\n CmsEntryElasticsearchQueryModifierPlugin.type\n )\n .filter(pl => {\n return !pl.modelId || pl.modelId === model.modelId;\n });\n for (const pl of queryPlugins) {\n pl.modifyQuery({ query, model, where });\n }\n\n const sort = createElasticsearchSortParams({\n plugins,\n sort: initialSort,\n modelFields,\n parentPath,\n model,\n searchPlugins\n });\n\n const sortPlugins = plugins\n .byType<CmsEntryElasticsearchSortModifierPlugin>(\n CmsEntryElasticsearchSortModifierPlugin.type\n )\n .filter(pl => {\n return !pl.modelId || pl.modelId === model.modelId;\n });\n for (const pl of sortPlugins) {\n pl.modifySort({\n sort,\n model\n });\n }\n\n const body: esSearchBody = {\n query: {\n bool: {\n must: query.must.length > 0 ? query.must : undefined,\n must_not: query.must_not.length > 0 ? query.must_not : undefined,\n should: query.should.length > 0 ? query.should : undefined,\n filter: query.filter.length > 0 ? query.filter : undefined\n }\n },\n sort,\n size: (limit || 0) + 1,\n // eslint-disable-next-line\n search_after: decodeCursor(after) as any,\n // eslint-disable-next-line\n track_total_hits: true\n };\n\n const bodyPlugins = plugins\n .byType<CmsEntryElasticsearchBodyModifierPlugin>(\n CmsEntryElasticsearchBodyModifierPlugin.type\n )\n .filter(pl => {\n return !pl.modelId || pl.modelId === model.modelId;\n });\n for (const pl of bodyPlugins) {\n pl.modifyBody({\n body,\n model\n });\n }\n\n return body;\n};\n"]}
1
+ {"version":3,"sources":["createElasticsearchQueryBody.ts"],"names":["specialFields","noKeywordFields","createElasticsearchSortParams","args","sort","modelFields","parentPath","searchPlugins","length","sortPlugins","Object","values","reduce","plugins","modelField","searchPlugin","type","field","fieldId","CmsEntryElasticsearchFieldPlugin","unmappedType","keyword","hasKeyword","sortable","isSortable","searchable","isSearchable","path","createFieldPath","key","fieldPlugins","createInitialQueryValue","params","model","where","initialWhere","query","must","must_not","should","filter","sharedIndex","process","env","ELASTICSEARCH_SHARED_INDEXES","push","term","tenant","locale","published","latest","WebinyError","createPath","value","id","isSystemField","match","includes","nonRefFieldTypes","isRefFieldFiltering","typeOf","Array","isArray","Date","toISOString","fieldPathFactory","plugin","fieldPath","keywordValue","applyFiltering","operator","initialValue","operatorPlugins","fieldSearchPlugin","apply","basePath","applyFullTextSearch","fields","fieldPaths","collection","query_string","allow_leading_wildcard","default_operator","execElasticsearchBuildQueryPlugins","fullTextSearch","sf","keys","hasOwnProperty","undefined","cmsField","whereKey","createElasticsearchQueryBody","after","limit","initialSort","search","queryPlugins","byType","CmsEntryElasticsearchQueryModifierPlugin","pl","modelId","modifyQuery","CmsEntryElasticsearchSortModifierPlugin","modifySort","body","bool","size","search_after","track_total_hits","bodyPlugins","CmsEntryElasticsearchBodyModifierPlugin","modifyBody"],"mappings":"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","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { transformValueForSearch } from \"./transformValueForSearch\";\nimport { searchPluginsList } from \"./searchPluginsList\";\nimport {\n CmsEntryListParams,\n CmsEntryListSort,\n CmsEntryListWhere,\n CmsModel,\n CmsModelField\n} from \"@webiny/api-headless-cms/types\";\nimport {\n SearchBody as esSearchBody,\n Sort as esSort,\n ElasticsearchBoolQueryConfig\n} from \"@webiny/api-elasticsearch/types\";\nimport { decodeCursor } from \"@webiny/api-elasticsearch/cursors\";\nimport { createSort } from \"@webiny/api-elasticsearch/sort\";\nimport { createModelFields, ModelField, ModelFields } from \"./fields\";\nimport { CmsEntryElasticsearchFieldPlugin } from \"~/plugins/CmsEntryElasticsearchFieldPlugin\";\nimport { parseWhereKey } from \"@webiny/api-elasticsearch/where\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createLatestType, createPublishedType } from \"~/operations/entry\";\nimport { CmsEntryElasticsearchQueryModifierPlugin } from \"~/plugins/CmsEntryElasticsearchQueryModifierPlugin\";\nimport { CmsEntryElasticsearchSortModifierPlugin } from \"~/plugins/CmsEntryElasticsearchSortModifierPlugin\";\nimport { CmsEntryElasticsearchBodyModifierPlugin } from \"~/plugins/CmsEntryElasticsearchBodyModifierPlugin\";\nimport {\n CmsEntryElasticsearchQueryBuilderValueSearchPlugin,\n CreatePathCallableParams\n} from \"~/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin\";\nimport { getElasticsearchOperatorPluginsByLocale } from \"@webiny/api-elasticsearch/operators\";\nimport { normalizeValue } from \"@webiny/api-elasticsearch/normalize\";\nimport { ElasticsearchQueryBuilderOperatorPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\n\ninterface CreateElasticsearchParams {\n plugins: PluginsContainer;\n model: CmsModel;\n args: CmsEntryListParams;\n parentPath?: string;\n}\n\ninterface CreateElasticsearchSortParams {\n plugins: PluginsContainer;\n sort?: CmsEntryListSort;\n modelFields: ModelFields;\n parentPath?: string | null;\n model: CmsModel;\n searchPlugins: Record<string, CmsEntryElasticsearchQueryBuilderValueSearchPlugin>;\n}\n\ninterface CreateElasticsearchQueryArgs {\n model: CmsModel;\n plugins: PluginsContainer;\n where: CmsEntryListWhere;\n modelFields: ModelFields;\n parentPath?: string | null;\n searchPlugins: Record<string, CmsEntryElasticsearchQueryBuilderValueSearchPlugin>;\n fullTextSearch: {\n term?: string;\n fields: string[];\n };\n}\n\nconst specialFields: (keyof Partial<CmsEntryListWhere>)[] = [\"published\", \"latest\"];\nconst noKeywordFields = [\"date\", \"number\", \"boolean\"];\n\nconst createElasticsearchSortParams = (args: CreateElasticsearchSortParams): esSort => {\n const { sort, modelFields, parentPath, searchPlugins } = args;\n\n if (!sort || sort.length === 0) {\n return [];\n }\n\n const sortPlugins = Object.values(modelFields).reduce((plugins, modelField) => {\n const searchPlugin = searchPlugins[modelField.type];\n\n plugins[modelField.field.fieldId] = new CmsEntryElasticsearchFieldPlugin({\n unmappedType: modelField.unmappedType,\n keyword: hasKeyword(modelField),\n sortable: modelField.isSortable,\n searchable: modelField.isSearchable,\n field: modelField.field.fieldId,\n path: createFieldPath({\n key: modelField.field.fieldId,\n parentPath,\n modelField,\n searchPlugin\n })\n });\n return plugins;\n }, {} as Record<string, CmsEntryElasticsearchFieldPlugin>);\n\n return createSort({\n fieldPlugins: sortPlugins,\n sort\n });\n};\n/**\n * Latest and published are specific in Elasticsearch to that extend that they are tagged in the __type property.\n * We allow either published or either latest.\n * Latest is used in the manage API and published in the read API.\n */\nconst createInitialQueryValue = (\n params: CreateElasticsearchQueryArgs\n): ElasticsearchBoolQueryConfig => {\n const { model, where: initialWhere } = params;\n /**\n * Cast as partial so we can remove unnecessary keys.\n */\n const where: CmsEntryListWhere = {\n ...initialWhere\n };\n\n const query: ElasticsearchBoolQueryConfig = {\n must: [],\n must_not: [],\n should: [],\n filter: []\n };\n\n // When ES index is shared between tenants, we need to filter records by tenant ID\n const sharedIndex = process.env.ELASTICSEARCH_SHARED_INDEXES === \"true\";\n if (sharedIndex) {\n query.must.push({ term: { \"tenant.keyword\": model.tenant } });\n }\n\n query.must.push({\n term: {\n \"locale.keyword\": model.locale\n }\n });\n\n /**\n * We must transform published and latest where args into something that is understandable by our Elasticsearch\n */\n if (where.published === true) {\n query.must.push({\n term: {\n \"__type.keyword\": createPublishedType()\n }\n });\n } else if (where.latest === true) {\n query.must.push({\n term: {\n \"__type.keyword\": createLatestType()\n }\n });\n }\n // we do not allow not published and not latest\n else {\n throw new WebinyError(\n `Cannot call Elasticsearch query when not setting \"published\" or \"latest\".`,\n \"ELASTICSEARCH_UNSUPPORTED_QUERY\",\n {\n where\n }\n );\n }\n //\n return query;\n};\n\ninterface CreateFieldPathParams {\n modelField: ModelField;\n key: string;\n searchPlugin?: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;\n parentPath?: string | null;\n}\nconst createFieldPath = ({\n modelField,\n searchPlugin,\n parentPath,\n key\n}: CreateFieldPathParams): string => {\n let path: string | null = null;\n if (searchPlugin && typeof searchPlugin.createPath === \"function\") {\n path = searchPlugin.createPath({\n field: modelField.field,\n value: null,\n key\n });\n } else if (typeof modelField.path === \"function\") {\n path = modelField.path(modelField.field.fieldId);\n }\n if (!path) {\n /**\n * We know that modelFieldPath is a string or undefined at this point.\n */\n path = (modelField.path as string) || modelField.field.fieldId || modelField.field.id;\n }\n return modelField.isSystemField || !parentPath || path.match(parentPath)\n ? path\n : `${parentPath}.${path}`;\n};\n\nconst hasKeyword = (modelField: ModelField): boolean => {\n /**\n * We defined some field types that MUST have no keyword added to the field path\n */\n if (noKeywordFields.includes(modelField.type)) {\n return false;\n } else if (modelField.unmappedType) {\n /**\n * If modelField has unmapped type defined, do not add keyword.\n */\n return false;\n } else if (modelField.keyword === false) {\n /**\n * And if specifically defined that modelField has no keyword, do not add it.\n */\n return false;\n }\n /**\n * All other fields have keyword added.\n */\n return true;\n};\n\ninterface IsRefFieldFilteringParams {\n key: string;\n value: any;\n field: CmsModelField;\n}\n\n/**\n * A list of typeof strings that are 100% not ref field filtering.\n * We also need to check for array and date.\n */\nconst nonRefFieldTypes: string[] = [\n \"string\",\n \"number\",\n \"undefined\",\n \"symbol\",\n \"bigint\",\n \"function\",\n \"boolean\"\n];\nconst isRefFieldFiltering = (params: IsRefFieldFilteringParams): boolean => {\n const { key, value, field } = params;\n const typeOf = typeof value;\n if (\n !value ||\n nonRefFieldTypes.includes(typeOf) ||\n Array.isArray(value) ||\n value instanceof Date ||\n !!value.toISOString\n ) {\n return false;\n } else if (typeOf === \"object\" && field.type === \"ref\") {\n return true;\n }\n throw new WebinyError(\n \"Could not determine if the search value is ref field search.\",\n \"REF_FIELD_SEARCH_ERROR\",\n {\n value,\n field,\n key\n }\n );\n};\n\ninterface FieldPathFactoryParams extends Omit<CreatePathCallableParams, \"field\"> {\n plugin?: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;\n modelField: ModelField;\n key: string;\n parentPath?: string | null;\n keyword?: boolean;\n}\nconst fieldPathFactory = (params: FieldPathFactoryParams): string => {\n const { plugin, modelField, value, parentPath, keyword, key } = params;\n\n const field = modelField.field;\n\n let fieldPath: string | null = null;\n if (plugin) {\n fieldPath = plugin.createPath({ field, value, key });\n }\n if (!fieldPath) {\n fieldPath = field.fieldId;\n if (modelField.path) {\n fieldPath =\n typeof modelField.path === \"function\" ? modelField.path(value) : modelField.path;\n }\n }\n\n const keywordValue = keyword ? \".keyword\" : \"\";\n if (!parentPath) {\n return `${fieldPath}${keywordValue}`;\n }\n return `${parentPath}.${fieldPath}${keywordValue}`;\n};\n\ninterface ApplyFilteringParams {\n query: ElasticsearchBoolQueryConfig;\n modelField: ModelField;\n operator: string;\n key: string;\n value: any;\n operatorPlugins: Record<string, ElasticsearchQueryBuilderOperatorPlugin>;\n searchPlugins: Record<string, CmsEntryElasticsearchQueryBuilderValueSearchPlugin>;\n parentPath?: string | null;\n}\nconst applyFiltering = (params: ApplyFilteringParams) => {\n const {\n query,\n modelField,\n operator,\n key,\n value: initialValue,\n operatorPlugins,\n searchPlugins,\n parentPath\n } = params;\n const plugin = operatorPlugins[operator];\n if (!plugin) {\n throw new WebinyError(\"Operator plugin missing.\", \"PLUGIN_MISSING\", {\n operator\n });\n }\n const fieldSearchPlugin = searchPlugins[modelField.type];\n const value = transformValueForSearch({\n plugins: searchPlugins,\n field: modelField.field,\n value: initialValue\n });\n\n const keyword = hasKeyword(modelField);\n plugin.apply(query, {\n basePath: fieldPathFactory({\n plugin: fieldSearchPlugin,\n modelField,\n parentPath: modelField.isSystemField ? null : parentPath,\n value,\n key\n }),\n path: fieldPathFactory({\n plugin: fieldSearchPlugin,\n modelField,\n value,\n parentPath: modelField.isSystemField ? null : parentPath,\n keyword,\n key\n }),\n value,\n keyword\n });\n};\n\ninterface ApplyFullTextSearchParams {\n query: ElasticsearchBoolQueryConfig;\n modelFields: ModelFields;\n term?: string;\n fields: string[];\n}\nconst applyFullTextSearch = (params: ApplyFullTextSearchParams): void => {\n const { query, modelFields, term, fields } = params;\n if (!term || term.length === 0 || fields.length === 0) {\n return;\n }\n\n const fieldPaths = fields.reduce((collection, field) => {\n const modelField = modelFields[field];\n if (!modelField) {\n return collection;\n }\n\n collection.push(`values.${field}`);\n\n return collection;\n }, [] as string[]);\n\n query.must.push({\n query_string: {\n allow_leading_wildcard: true,\n fields: fieldPaths,\n query: normalizeValue(term),\n default_operator: \"or\"\n }\n });\n};\n/*\n * Iterate through where keys and apply plugins where necessary\n */\nconst execElasticsearchBuildQueryPlugins = (\n params: CreateElasticsearchQueryArgs\n): ElasticsearchBoolQueryConfig => {\n const {\n model,\n where: initialWhere,\n modelFields,\n parentPath,\n plugins,\n searchPlugins,\n fullTextSearch\n } = params;\n\n const where: Partial<CmsEntryListWhere> = {\n ...initialWhere\n };\n const query = createInitialQueryValue({\n ...params,\n where\n });\n\n /**\n * Add full text search for requested fields.\n */\n applyFullTextSearch({\n query,\n modelFields,\n term: fullTextSearch.term,\n fields: fullTextSearch.fields\n });\n\n /**\n * Always remove special fields, as these do not exist in Elasticsearch.\n */\n for (const sf of specialFields) {\n delete where[sf];\n }\n\n if (Object.keys(where).length === 0) {\n return query;\n }\n\n const operatorPlugins = getElasticsearchOperatorPluginsByLocale(plugins, model.locale);\n\n for (const key in where) {\n if (where.hasOwnProperty(key) === false) {\n continue;\n }\n /**\n * We do not need to go further if value is undefined.\n * There are few hardcoded possibilities when value is undefined, for example, ownedBy.\n */\n // TODO figure out how to have type.\n const value = (where as any)[key];\n if (value === undefined) {\n continue;\n }\n const { field, operator } = parseWhereKey(key);\n const modelField = modelFields[field];\n\n if (!modelField) {\n throw new WebinyError(`There is no field \"${field}\".`);\n }\n const { isSearchable = false, field: cmsField } = modelField;\n if (!isSearchable) {\n throw new WebinyError(`Field \"${field}\" is not searchable.`);\n }\n /**\n * There is a possibility that value is an object.\n * In that case, check if field is ref field and continue a bit differently.\n */\n if (isRefFieldFiltering({ key, value, field: cmsField })) {\n /**\n * We we need to go through each key in where[key] to determine the filters.\n */\n for (const whereKey in value) {\n const { operator } = parseWhereKey(whereKey);\n applyFiltering({\n query,\n modelField,\n operator,\n key: whereKey,\n value: value[whereKey],\n searchPlugins,\n operatorPlugins,\n parentPath\n });\n }\n continue;\n }\n applyFiltering({\n query,\n modelField,\n operator,\n key,\n value,\n searchPlugins,\n operatorPlugins,\n parentPath\n });\n }\n\n return query;\n};\n\nexport const createElasticsearchQueryBody = (params: CreateElasticsearchParams): esSearchBody => {\n const { plugins, model, args, parentPath = null } = params;\n const { where = {}, after, limit, sort: initialSort, search, fields } = args;\n\n const modelFields = createModelFields(plugins, model);\n const searchPlugins = searchPluginsList(plugins);\n\n const query = execElasticsearchBuildQueryPlugins({\n model,\n plugins,\n where,\n modelFields,\n parentPath,\n searchPlugins,\n fullTextSearch: {\n term: search,\n fields: fields || []\n }\n });\n\n const queryPlugins = plugins\n .byType<CmsEntryElasticsearchQueryModifierPlugin>(\n CmsEntryElasticsearchQueryModifierPlugin.type\n )\n .filter(pl => {\n return !pl.modelId || pl.modelId === model.modelId;\n });\n for (const pl of queryPlugins) {\n pl.modifyQuery({ query, model, where });\n }\n\n const sort = createElasticsearchSortParams({\n plugins,\n sort: initialSort,\n modelFields,\n parentPath,\n model,\n searchPlugins\n });\n\n const sortPlugins = plugins\n .byType<CmsEntryElasticsearchSortModifierPlugin>(\n CmsEntryElasticsearchSortModifierPlugin.type\n )\n .filter(pl => {\n return !pl.modelId || pl.modelId === model.modelId;\n });\n for (const pl of sortPlugins) {\n pl.modifySort({\n sort,\n model\n });\n }\n\n const body: esSearchBody = {\n query: {\n bool: {\n must: query.must.length > 0 ? query.must : undefined,\n must_not: query.must_not.length > 0 ? query.must_not : undefined,\n should: query.should.length > 0 ? query.should : undefined,\n filter: query.filter.length > 0 ? query.filter : undefined\n }\n },\n sort,\n size: (limit || 0) + 1,\n // eslint-disable-next-line\n search_after: decodeCursor(after) as any,\n // eslint-disable-next-line\n track_total_hits: true\n };\n\n const bodyPlugins = plugins\n .byType<CmsEntryElasticsearchBodyModifierPlugin>(\n CmsEntryElasticsearchBodyModifierPlugin.type\n )\n .filter(pl => {\n return !pl.modelId || pl.modelId === model.modelId;\n });\n for (const pl of bodyPlugins) {\n pl.modifyBody({\n body,\n model\n });\n }\n\n return body;\n};\n"]}
package/index.js CHANGED
@@ -39,7 +39,7 @@ var _system2 = require("./definitions/system");
39
39
 
40
40
  var _settings2 = require("./definitions/settings");
41
41
 
42
- var _createElasticsearchTemplate = require("./operations/system/createElasticsearchTemplate");
42
+ var _createElasticsearchIndex = require("./elasticsearch/createElasticsearchIndex");
43
43
 
44
44
  var _plugins = require("@webiny/plugins");
45
45
 
@@ -49,6 +49,10 @@ var _operators = require("@webiny/api-elasticsearch/operators");
49
49
 
50
50
  var _elasticsearchFields = require("./operations/entry/elasticsearchFields");
51
51
 
52
+ var _indices = require("./elasticsearch/indices");
53
+
54
+ var _deleteElasticsearchIndex = require("./elasticsearch/deleteElasticsearchIndex");
55
+
52
56
  const createStorageOperations = params => {
53
57
  const {
54
58
  attributes,
@@ -56,7 +60,7 @@ const createStorageOperations = params => {
56
60
  esTable,
57
61
  documentClient,
58
62
  elasticsearch,
59
- plugins: customPlugins,
63
+ plugins: userPlugins,
60
64
  modelFieldToGraphQLPlugins
61
65
  } = params;
62
66
  const tableInstance = (0, _table.createTable)({
@@ -103,7 +107,7 @@ const createStorageOperations = params => {
103
107
  /**
104
108
  * User defined custom plugins.
105
109
  */
106
- ...(customPlugins || []),
110
+ ...(userPlugins || []),
107
111
  /**
108
112
  * Plugins of type CmsModelFieldToGraphQLPlugin.
109
113
  */
@@ -127,21 +131,52 @@ const createStorageOperations = params => {
127
131
  /**
128
132
  * Field plugins for Elasticsearch.
129
133
  */
130
- (0, _elasticsearch.default)()]);
134
+ (0, _elasticsearch.default)(),
135
+ /**
136
+ * Built-in Elasticsearch index templates.
137
+ */
138
+ (0, _indices.elasticsearchIndexPlugins)()]);
131
139
  return {
132
- init: async cms => {
133
- cms.onBeforeSystemInstall.subscribe(async () => {
134
- await (0, _createElasticsearchTemplate.createElasticsearchTemplate)({
135
- elasticsearch
140
+ beforeInit: async context => {
141
+ context.plugins.register([
142
+ /**
143
+ * Field plugins for DynamoDB.
144
+ * We must pass them to the base application.
145
+ */
146
+ (0, _dynamoDb.default)()]);
147
+ },
148
+ init: async context => {
149
+ /**
150
+ * We need to create indexes on before model create and on clone (create from).
151
+ * Other apps create indexes on locale creation.
152
+ */
153
+ context.cms.onBeforeModelCreate.subscribe(async ({
154
+ model
155
+ }) => {
156
+ await (0, _createElasticsearchIndex.createElasticsearchIndex)({
157
+ elasticsearch,
158
+ model,
159
+ plugins
160
+ });
161
+ });
162
+ context.cms.onBeforeModelCreateFrom.subscribe(async ({
163
+ model
164
+ }) => {
165
+ await (0, _createElasticsearchIndex.createElasticsearchIndex)({
166
+ elasticsearch,
167
+ model,
168
+ plugins
169
+ });
170
+ });
171
+ context.cms.onAfterModelDelete.subscribe(async ({
172
+ model
173
+ }) => {
174
+ await (0, _deleteElasticsearchIndex.deleteElasticsearchIndex)({
175
+ elasticsearch,
176
+ model
136
177
  });
137
178
  });
138
179
  },
139
- plugins: [
140
- /**
141
- * Field plugins for DynamoDB.
142
- * We must pass them to the base application.
143
- */
144
- (0, _dynamoDb.default)()],
145
180
  getEntities: () => entities,
146
181
  getTable: () => tableInstance,
147
182
  getEsTable: () => tableElasticsearchInstance,
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["createStorageOperations","params","attributes","table","esTable","documentClient","elasticsearch","plugins","customPlugins","modelFieldToGraphQLPlugins","tableInstance","tableElasticsearchInstance","entities","settings","entityName","ENTITIES","SETTINGS","system","SYSTEM","groups","GROUPS","models","MODELS","entries","ENTRIES","entriesEs","ENTRIES_ES","PluginsContainer","cmsEntryElasticsearchFields","init","cms","onBeforeSystemInstall","subscribe","getEntities","getTable","getEsTable","entity","esEntity"],"mappings":"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","sourcesContent":["import dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters\";\nimport elasticsearchPlugins from \"./elasticsearch\";\nimport dynamoDbPlugins from \"./dynamoDb\";\nimport { createSettingsStorageOperations } from \"./operations/settings\";\nimport { createSystemStorageOperations } from \"./operations/system\";\nimport { createModelsStorageOperations } from \"./operations/model\";\nimport { createEntriesStorageOperations } from \"./operations/entry\";\nimport { ENTITIES, StorageOperationsFactory } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createElasticsearchTable } from \"~/definitions/tableElasticsearch\";\nimport { createGroupEntity } from \"~/definitions/group\";\nimport { createModelEntity } from \"~/definitions/model\";\nimport { createEntryEntity } from \"~/definitions/entry\";\nimport { createEntryElasticsearchEntity } from \"~/definitions/entryElasticsearch\";\nimport { createSystemEntity } from \"~/definitions/system\";\nimport { createSettingsEntity } from \"~/definitions/settings\";\nimport { HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { createElasticsearchTemplate } from \"~/operations/system/createElasticsearchTemplate\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createGroupsStorageOperations } from \"~/operations/group\";\nimport { getElasticsearchOperators } from \"@webiny/api-elasticsearch/operators\";\nimport { elasticsearchFields as cmsEntryElasticsearchFields } from \"~/operations/entry/elasticsearchFields\";\n\nexport const createStorageOperations: StorageOperationsFactory = params => {\n const {\n attributes,\n table,\n esTable,\n documentClient,\n elasticsearch,\n plugins: customPlugins,\n modelFieldToGraphQLPlugins\n } = params;\n\n const tableInstance = createTable({\n table,\n documentClient\n });\n const tableElasticsearchInstance = createElasticsearchTable({\n table: esTable,\n documentClient\n });\n\n const entities = {\n settings: createSettingsEntity({\n entityName: ENTITIES.SETTINGS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SETTINGS] : {}\n }),\n system: createSystemEntity({\n entityName: ENTITIES.SYSTEM,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SYSTEM] : {}\n }),\n groups: createGroupEntity({\n entityName: ENTITIES.GROUPS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.GROUPS] : {}\n }),\n models: createModelEntity({\n entityName: ENTITIES.MODELS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.MODELS] : {}\n }),\n entries: createEntryEntity({\n entityName: ENTITIES.ENTRIES,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES] : {}\n }),\n entriesEs: createEntryElasticsearchEntity({\n entityName: ENTITIES.ENTRIES_ES,\n table: tableElasticsearchInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES_ES] : {}\n })\n };\n\n const plugins = new PluginsContainer([\n /**\n * User defined custom plugins.\n */\n ...(customPlugins || []),\n /**\n * Plugins of type CmsModelFieldToGraphQLPlugin.\n */\n modelFieldToGraphQLPlugins,\n /**\n * Elasticsearch field definitions for the entry record.\n */\n cmsEntryElasticsearchFields,\n /**\n * DynamoDB filter plugins for the where conditions.\n */\n dynamoDbValueFilters(),\n /**\n * Elasticsearch operators.\n */\n getElasticsearchOperators(),\n /**\n * Field plugins for DynamoDB.\n */\n dynamoDbPlugins(),\n /**\n * Field plugins for Elasticsearch.\n */\n elasticsearchPlugins()\n ]);\n\n return {\n init: async (cms: HeadlessCms) => {\n cms.onBeforeSystemInstall.subscribe(async () => {\n await createElasticsearchTemplate({\n elasticsearch\n });\n });\n },\n plugins: [\n /**\n * Field plugins for DynamoDB.\n * We must pass them to the base application.\n */\n dynamoDbPlugins()\n ],\n getEntities: () => entities,\n getTable: () => tableInstance,\n getEsTable: () => tableElasticsearchInstance,\n system: createSystemStorageOperations({\n entity: entities.system\n }),\n settings: createSettingsStorageOperations({\n entity: entities.settings\n }),\n groups: createGroupsStorageOperations({\n entity: entities.groups,\n plugins\n }),\n models: createModelsStorageOperations({\n entity: entities.models,\n elasticsearch\n }),\n entries: createEntriesStorageOperations({\n entity: entities.entries,\n esEntity: entities.entriesEs,\n plugins,\n elasticsearch\n })\n };\n};\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":["createStorageOperations","params","attributes","table","esTable","documentClient","elasticsearch","plugins","userPlugins","modelFieldToGraphQLPlugins","tableInstance","tableElasticsearchInstance","entities","settings","entityName","ENTITIES","SETTINGS","system","SYSTEM","groups","GROUPS","models","MODELS","entries","ENTRIES","entriesEs","ENTRIES_ES","PluginsContainer","cmsEntryElasticsearchFields","beforeInit","context","register","init","cms","onBeforeModelCreate","subscribe","model","onBeforeModelCreateFrom","onAfterModelDelete","getEntities","getTable","getEsTable","entity","esEntity"],"mappings":"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","sourcesContent":["import dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters\";\nimport elasticsearchPlugins from \"./elasticsearch\";\nimport dynamoDbPlugins from \"./dynamoDb\";\nimport { createSettingsStorageOperations } from \"./operations/settings\";\nimport { createSystemStorageOperations } from \"./operations/system\";\nimport { createModelsStorageOperations } from \"./operations/model\";\nimport { createEntriesStorageOperations } from \"./operations/entry\";\nimport { ENTITIES, StorageOperationsFactory } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createElasticsearchTable } from \"~/definitions/tableElasticsearch\";\nimport { createGroupEntity } from \"~/definitions/group\";\nimport { createModelEntity } from \"~/definitions/model\";\nimport { createEntryEntity } from \"~/definitions/entry\";\nimport { createEntryElasticsearchEntity } from \"~/definitions/entryElasticsearch\";\nimport { createSystemEntity } from \"~/definitions/system\";\nimport { createSettingsEntity } from \"~/definitions/settings\";\nimport { createElasticsearchIndex } from \"~/elasticsearch/createElasticsearchIndex\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createGroupsStorageOperations } from \"~/operations/group\";\nimport { getElasticsearchOperators } from \"@webiny/api-elasticsearch/operators\";\nimport { elasticsearchFields as cmsEntryElasticsearchFields } from \"~/operations/entry/elasticsearchFields\";\nimport { elasticsearchIndexPlugins } from \"./elasticsearch/indices\";\nimport { deleteElasticsearchIndex } from \"./elasticsearch/deleteElasticsearchIndex\";\n\nexport const createStorageOperations: StorageOperationsFactory = params => {\n const {\n attributes,\n table,\n esTable,\n documentClient,\n elasticsearch,\n plugins: userPlugins,\n modelFieldToGraphQLPlugins\n } = params;\n\n const tableInstance = createTable({\n table,\n documentClient\n });\n const tableElasticsearchInstance = createElasticsearchTable({\n table: esTable,\n documentClient\n });\n\n const entities = {\n settings: createSettingsEntity({\n entityName: ENTITIES.SETTINGS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SETTINGS] : {}\n }),\n system: createSystemEntity({\n entityName: ENTITIES.SYSTEM,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SYSTEM] : {}\n }),\n groups: createGroupEntity({\n entityName: ENTITIES.GROUPS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.GROUPS] : {}\n }),\n models: createModelEntity({\n entityName: ENTITIES.MODELS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.MODELS] : {}\n }),\n entries: createEntryEntity({\n entityName: ENTITIES.ENTRIES,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES] : {}\n }),\n entriesEs: createEntryElasticsearchEntity({\n entityName: ENTITIES.ENTRIES_ES,\n table: tableElasticsearchInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES_ES] : {}\n })\n };\n\n const plugins = new PluginsContainer([\n /**\n * User defined custom plugins.\n */\n ...(userPlugins || []),\n /**\n * Plugins of type CmsModelFieldToGraphQLPlugin.\n */\n modelFieldToGraphQLPlugins,\n /**\n * Elasticsearch field definitions for the entry record.\n */\n cmsEntryElasticsearchFields,\n /**\n * DynamoDB filter plugins for the where conditions.\n */\n dynamoDbValueFilters(),\n /**\n * Elasticsearch operators.\n */\n getElasticsearchOperators(),\n /**\n * Field plugins for DynamoDB.\n */\n dynamoDbPlugins(),\n /**\n * Field plugins for Elasticsearch.\n */\n elasticsearchPlugins(),\n /**\n * Built-in Elasticsearch index templates.\n */\n elasticsearchIndexPlugins()\n ]);\n\n return {\n beforeInit: async context => {\n context.plugins.register([\n /**\n * Field plugins for DynamoDB.\n * We must pass them to the base application.\n */\n dynamoDbPlugins()\n ]);\n },\n init: async context => {\n /**\n * We need to create indexes on before model create and on clone (create from).\n * Other apps create indexes on locale creation.\n */\n context.cms.onBeforeModelCreate.subscribe(async ({ model }) => {\n await createElasticsearchIndex({\n elasticsearch,\n model,\n plugins\n });\n });\n context.cms.onBeforeModelCreateFrom.subscribe(async ({ model }) => {\n await createElasticsearchIndex({\n elasticsearch,\n model,\n plugins\n });\n });\n context.cms.onAfterModelDelete.subscribe(async ({ model }) => {\n await deleteElasticsearchIndex({\n elasticsearch,\n model\n });\n });\n },\n getEntities: () => entities,\n getTable: () => tableInstance,\n getEsTable: () => tableElasticsearchInstance,\n system: createSystemStorageOperations({\n entity: entities.system\n }),\n settings: createSettingsStorageOperations({\n entity: entities.settings\n }),\n groups: createGroupsStorageOperations({\n entity: entities.groups,\n plugins\n }),\n models: createModelsStorageOperations({\n entity: entities.models,\n elasticsearch\n }),\n entries: createEntriesStorageOperations({\n entity: entities.entries,\n esEntity: entities.entriesEs,\n plugins,\n elasticsearch\n })\n };\n};\n"]}
@@ -13,7 +13,7 @@ var _types = require("@webiny/api-headless-cms/types");
13
13
 
14
14
  var _helpers = require("../../helpers");
15
15
 
16
- var _configurations = _interopRequireDefault(require("../../configurations"));
16
+ var _configurations = require("../../configurations");
17
17
 
18
18
  var _error = _interopRequireDefault(require("@webiny/error"));
19
19
 
@@ -109,7 +109,7 @@ const createEntriesStorageOperations = params => {
109
109
 
110
110
  const {
111
111
  index: esIndex
112
- } = _configurations.default.es({
112
+ } = _configurations.configurations.es({
113
113
  model
114
114
  });
115
115
 
@@ -162,7 +162,6 @@ const createEntriesStorageOperations = params => {
162
162
 
163
163
  const createRevisionFrom = async (model, params) => {
164
164
  const {
165
- originalEntry,
166
165
  entry,
167
166
  storageEntry
168
167
  } = params;
@@ -189,7 +188,7 @@ const createEntriesStorageOperations = params => {
189
188
 
190
189
  const {
191
190
  index
192
- } = _configurations.default.es({
191
+ } = _configurations.configurations.es({
193
192
  model
194
193
  });
195
194
 
@@ -204,7 +203,6 @@ const createEntriesStorageOperations = params => {
204
203
  } catch (ex) {
205
204
  throw new _error.default(ex.message || "Could not create revision from given entry in the DynamoDB table.", ex.code || "CREATE_REVISION_ERROR", {
206
205
  error: ex,
207
- originalEntry,
208
206
  entry,
209
207
  storageEntry
210
208
  });
@@ -222,7 +220,6 @@ const createEntriesStorageOperations = params => {
222
220
  } catch (ex) {
223
221
  throw new _error.default(ex.message || "Could not update latest entry in the DynamoDB Elasticsearch table.", ex.code || "CREATE_REVISION_ERROR", {
224
222
  error: ex,
225
- originalEntry,
226
223
  entry
227
224
  });
228
225
  }
@@ -236,7 +233,6 @@ const createEntriesStorageOperations = params => {
236
233
 
237
234
  const update = async (model, params) => {
238
235
  const {
239
- originalEntry,
240
236
  entry,
241
237
  storageEntry
242
238
  } = params;
@@ -254,7 +250,7 @@ const createEntriesStorageOperations = params => {
254
250
 
255
251
  const [latestStorageEntry] = await dataLoaders.getLatestRevisionByEntryId({
256
252
  model,
257
- ids: [originalEntry.id]
253
+ ids: [entry.id]
258
254
  });
259
255
  const items = [entity.putBatch(_objectSpread(_objectSpread(_objectSpread({}, storageEntry), revisionKeys), {}, {
260
256
  TYPE: createType()
@@ -265,7 +261,7 @@ const createEntriesStorageOperations = params => {
265
261
 
266
262
  let elasticsearchLatestData = null;
267
263
 
268
- if (latestStorageEntry.id === originalEntry.id) {
264
+ if (latestStorageEntry.id === entry.id) {
269
265
  /**
270
266
  * First we update the regular DynamoDB table
271
267
  */
@@ -296,7 +292,6 @@ const createEntriesStorageOperations = params => {
296
292
  } catch (ex) {
297
293
  throw new _error.default(ex.message || "Could not update entry DynamoDB records.", ex.code || "UPDATE_ENTRY_ERROR", {
298
294
  error: ex,
299
- originalEntry,
300
295
  entry,
301
296
  storageEntry
302
297
  });
@@ -308,7 +303,7 @@ const createEntriesStorageOperations = params => {
308
303
 
309
304
  const {
310
305
  index: esIndex
311
- } = _configurations.default.es({
306
+ } = _configurations.configurations.es({
312
307
  model
313
308
  });
314
309
 
@@ -320,7 +315,6 @@ const createEntriesStorageOperations = params => {
320
315
  } catch (ex) {
321
316
  throw new _error.default(ex.message || "Could not update entry DynamoDB Elasticsearch record.", ex.code || "UPDATE_ES_ENTRY_ERROR", {
322
317
  error: ex,
323
- originalEntry,
324
318
  entry
325
319
  });
326
320
  }
@@ -390,15 +384,15 @@ const createEntriesStorageOperations = params => {
390
384
 
391
385
  const deleteRevision = async (model, params) => {
392
386
  const {
393
- entryToDelete,
394
- entryToSetAsLatest,
395
- storageEntryToSetAsLatest
387
+ entry,
388
+ latestEntry,
389
+ latestStorageEntry
396
390
  } = params;
397
- const partitionKey = (0, _keys.createPartitionKey)(entryToDelete);
391
+ const partitionKey = (0, _keys.createPartitionKey)(entry);
398
392
 
399
393
  const {
400
394
  index
401
- } = _configurations.default.es({
395
+ } = _configurations.configurations.es({
402
396
  model
403
397
  });
404
398
  /**
@@ -408,7 +402,7 @@ const createEntriesStorageOperations = params => {
408
402
 
409
403
  const [publishedStorageEntry] = await dataLoaders.getPublishedRevisionByEntryId({
410
404
  model,
411
- ids: [entryToDelete.id]
405
+ ids: [entry.id]
412
406
  });
413
407
  /**
414
408
  * We need to delete all existing records of the given entry revision.
@@ -420,14 +414,14 @@ const createEntriesStorageOperations = params => {
420
414
  */
421
415
  entity.deleteBatch({
422
416
  PK: partitionKey,
423
- SK: (0, _keys.createRevisionSortKey)(entryToDelete)
417
+ SK: (0, _keys.createRevisionSortKey)(entry)
424
418
  })];
425
419
  const esItems = [];
426
420
  /**
427
421
  * If revision we are deleting is the published one as well, we need to delete those records as well.
428
422
  */
429
423
 
430
- if (publishedStorageEntry && entryToDelete.id === publishedStorageEntry.id) {
424
+ if (publishedStorageEntry && entry.id === publishedStorageEntry.id) {
431
425
  items.push(entity.deleteBatch({
432
426
  PK: partitionKey,
433
427
  SK: (0, _keys.createPublishedSortKey)()
@@ -438,19 +432,19 @@ const createEntriesStorageOperations = params => {
438
432
  }));
439
433
  }
440
434
 
441
- if (entryToSetAsLatest && storageEntryToSetAsLatest) {
435
+ if (latestEntry && latestStorageEntry) {
442
436
  const esEntry = (0, _helpers.prepareEntryToIndex)({
443
437
  plugins,
444
438
  model,
445
- entry: (0, _cloneDeep.default)(entryToSetAsLatest),
446
- storageEntry: (0, _cloneDeep.default)(storageEntryToSetAsLatest)
439
+ entry: (0, _cloneDeep.default)(latestEntry),
440
+ storageEntry: (0, _cloneDeep.default)(latestStorageEntry)
447
441
  });
448
442
  const esLatestData = await getESLatestEntryData(plugins, esEntry);
449
443
  /**
450
444
  * In the end we need to set the new latest entry
451
445
  */
452
446
 
453
- items.push(entity.putBatch(_objectSpread(_objectSpread({}, storageEntryToSetAsLatest), {}, {
447
+ items.push(entity.putBatch(_objectSpread(_objectSpread({}, latestStorageEntry), {}, {
454
448
  PK: partitionKey,
455
449
  SK: (0, _keys.createLatestSortKey)(),
456
450
  TYPE: createLatestType()
@@ -474,9 +468,9 @@ const createEntriesStorageOperations = params => {
474
468
  } catch (ex) {
475
469
  throw new _error.default(ex.message || "Could not batch write entry records to DynamoDB table.", ex.code || "DELETE_REVISION_ERROR", {
476
470
  error: ex,
477
- entryToDelete,
478
- entryToSetAsLatest,
479
- storageEntryToSetAsLatest
471
+ entry,
472
+ latestEntry,
473
+ latestStorageEntry
480
474
  });
481
475
  }
482
476
 
@@ -492,9 +486,9 @@ const createEntriesStorageOperations = params => {
492
486
  } catch (ex) {
493
487
  throw new _error.default(ex.message || "Could not batch write entry records to DynamoDB Elasticsearch table.", ex.code || "DELETE_REVISION_ERROR", {
494
488
  error: ex,
495
- entryToDelete,
496
- entryToSetAsLatest,
497
- storageEntryToSetAsLatest
489
+ entry,
490
+ latestEntry,
491
+ latestStorageEntry
498
492
  });
499
493
  }
500
494
  };
@@ -504,7 +498,7 @@ const createEntriesStorageOperations = params => {
504
498
 
505
499
  const {
506
500
  index
507
- } = _configurations.default.es({
501
+ } = _configurations.configurations.es({
508
502
  model
509
503
  });
510
504
 
@@ -639,7 +633,7 @@ const createEntriesStorageOperations = params => {
639
633
 
640
634
  const {
641
635
  index
642
- } = _configurations.default.es({
636
+ } = _configurations.configurations.es({
643
637
  model
644
638
  });
645
639
 
@@ -800,7 +794,7 @@ const createEntriesStorageOperations = params => {
800
794
  if (latestStorageEntry.id === entry.id) {
801
795
  const {
802
796
  index
803
- } = _configurations.default.es({
797
+ } = _configurations.configurations.es({
804
798
  model
805
799
  });
806
800
 
@@ -860,8 +854,7 @@ const createEntriesStorageOperations = params => {
860
854
  const requestReview = async (model, params) => {
861
855
  const {
862
856
  entry,
863
- storageEntry,
864
- originalEntry
857
+ storageEntry
865
858
  } = params;
866
859
  /**
867
860
  * We need the latest entry to check if it needs to be updated.
@@ -880,7 +873,7 @@ const createEntriesStorageOperations = params => {
880
873
 
881
874
  const {
882
875
  index
883
- } = _configurations.default.es({
876
+ } = _configurations.configurations.es({
884
877
  model
885
878
  });
886
879
 
@@ -906,8 +899,8 @@ const createEntriesStorageOperations = params => {
906
899
  } catch (ex) {
907
900
  throw new _error.default(ex.message || "Could not store request review entry record into DynamoDB table.", ex.code || "REQUEST_REVIEW_ERROR", {
908
901
  entry,
909
- latestStorageEntry,
910
- originalEntry
902
+ storageEntry,
903
+ latestStorageEntry
911
904
  });
912
905
  }
913
906
  /**
@@ -929,8 +922,8 @@ const createEntriesStorageOperations = params => {
929
922
  } catch (ex) {
930
923
  throw new _error.default(ex.message || "Could not store request review entry record into DynamoDB Elasticsearch table.", ex.code || "REQUEST_REVIEW_ERROR", {
931
924
  entry,
932
- latestStorageEntry,
933
- originalEntry
925
+ storageEntry,
926
+ latestStorageEntry
934
927
  });
935
928
  }
936
929
 
@@ -940,8 +933,7 @@ const createEntriesStorageOperations = params => {
940
933
  const requestChanges = async (model, params) => {
941
934
  const {
942
935
  entry,
943
- storageEntry,
944
- originalEntry
936
+ storageEntry
945
937
  } = params;
946
938
  /**
947
939
  * We need the latest entry to check if it needs to be updated.
@@ -963,7 +955,7 @@ const createEntriesStorageOperations = params => {
963
955
 
964
956
  const {
965
957
  index
966
- } = _configurations.default.es({
958
+ } = _configurations.configurations.es({
967
959
  model
968
960
  });
969
961
 
@@ -995,8 +987,7 @@ const createEntriesStorageOperations = params => {
995
987
  } catch (ex) {
996
988
  throw new _error.default(ex.message || "Could not store request changes entry record into DynamoDB table.", ex.code || "REQUEST_CHANGES_ERROR", {
997
989
  entry,
998
- latestStorageEntry,
999
- originalEntry
990
+ latestStorageEntry
1000
991
  });
1001
992
  }
1002
993
  /**
@@ -1018,8 +1009,7 @@ const createEntriesStorageOperations = params => {
1018
1009
  } catch (ex) {
1019
1010
  throw new _error.default(ex.message || "Could not store request changes entry record into DynamoDB Elasticsearch table.", ex.code || "REQUEST_CHANGES_ERROR", {
1020
1011
  entry,
1021
- latestStorageEntry,
1022
- originalEntry
1012
+ latestStorageEntry
1023
1013
  });
1024
1014
  }
1025
1015