From 535847cf14d521e694177ae01464c39fa2548243 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 10 Jun 2022 10:08:48 +0200 Subject: [PATCH] changeset and api report updates Signed-off-by: Emma Indal --- .changeset/wet-icons-shout.md | 5 +++++ .../api-report.md | 16 ++++++++++++++++ .../src/engines/ElasticSearchSearchEngine.ts | 6 ++++-- .../src/engines/index.ts | 2 ++ .../src/index.ts | 2 ++ 5 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 .changeset/wet-icons-shout.md diff --git a/.changeset/wet-icons-shout.md b/.changeset/wet-icons-shout.md new file mode 100644 index 0000000000..de105cbde9 --- /dev/null +++ b/.changeset/wet-icons-shout.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-elasticsearch': patch +--- + +Now possible to set a custom index template on the elasticsearch search engine. diff --git a/plugins/search-backend-module-elasticsearch/api-report.md b/plugins/search-backend-module-elasticsearch/api-report.md index 143d3ab3e8..a6be34dcb1 100644 --- a/plugins/search-backend-module-elasticsearch/api-report.md +++ b/plugins/search-backend-module-elasticsearch/api-report.md @@ -137,6 +137,18 @@ export interface ElasticSearchConnectionConstructor { }; } +// @public +export type ElasticSearchCustomIndexTemplate = { + name: string; + body: ElasticSearchCustomIndexTemplateBody; +}; + +// @public +export type ElasticSearchCustomIndexTemplateBody = { + index_patterns: string[]; + template: Record; +}; + // @public (undocumented) export type ElasticSearchHighlightConfig = { fragmentDelimiter: string; @@ -211,10 +223,14 @@ export class ElasticSearchSearchEngine implements SearchEngine { }: ElasticSearchOptions): Promise; // (undocumented) getIndexer(type: string): Promise; + // (undocumented) + protected indexTemplate?: ElasticSearchCustomIndexTemplate; newClient(create: (options: ElasticSearchClientOptions) => T): T; // (undocumented) query(query: SearchQuery): Promise; // (undocumented) + setIndexTemplate(template: ElasticSearchCustomIndexTemplate): void; + // (undocumented) setTranslator(translator: ElasticSearchQueryTranslator): void; // (undocumented) protected translator( diff --git a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts index 025a9fe1fc..a4b3be6eec 100644 --- a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts +++ b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts @@ -42,15 +42,17 @@ export type { ElasticSearchClientOptions }; */ export type ElasticSearchCustomIndexTemplate = { name: string; - body: ElasticSearchIndexTemplateBody; + body: ElasticSearchCustomIndexTemplateBody; }; /** * Elasticsearch specific index template body * @public */ -export type ElasticSearchIndexTemplateBody = { +export type ElasticSearchCustomIndexTemplateBody = { index_patterns: string[]; + // See available properties of template + // https://www.elastic.co/guide/en/elasticsearch/reference/7.15/indices-put-template.html#put-index-template-api-request-body template: Record; }; diff --git a/plugins/search-backend-module-elasticsearch/src/engines/index.ts b/plugins/search-backend-module-elasticsearch/src/engines/index.ts index d99f96ef72..8ac86970a1 100644 --- a/plugins/search-backend-module-elasticsearch/src/engines/index.ts +++ b/plugins/search-backend-module-elasticsearch/src/engines/index.ts @@ -30,6 +30,8 @@ export type { ElasticSearchQueryTranslator, ElasticSearchQueryTranslatorOptions, ElasticSearchOptions, + ElasticSearchCustomIndexTemplate, + ElasticSearchCustomIndexTemplateBody, } from './ElasticSearchSearchEngine'; export type { ElasticSearchSearchEngineIndexer, diff --git a/plugins/search-backend-module-elasticsearch/src/index.ts b/plugins/search-backend-module-elasticsearch/src/index.ts index 772c7d3689..adf7fa43f2 100644 --- a/plugins/search-backend-module-elasticsearch/src/index.ts +++ b/plugins/search-backend-module-elasticsearch/src/index.ts @@ -36,4 +36,6 @@ export type { ElasticSearchAuth, ElasticSearchSearchEngineIndexer, ElasticSearchSearchEngineIndexerOptions, + ElasticSearchCustomIndexTemplate, + ElasticSearchCustomIndexTemplateBody, } from './engines';