Backstage
    Preparing search index...

    A wrapper class that exposes logical methods that are conditionally fired against either a configured Elasticsearch client or a configured Opensearch client.

    This is necessary because, despite its intention to be API-compatible, the opensearch client does not support API key-based authentication. This is also the sanest way to accomplish this while making typescript happy.

    In the future, if the differences between implementations become unmaintainably divergent, we should split out the Opensearch and Elasticsearch search engine implementations.

    interface ElasticSearchClientWrapper {
        bulk(
            bulkOptions: {
                datasource: Readable;
                onDocument: (doc: any) => ElasticSearchIndexAction;
                refreshOnCompletion?: string | boolean;
            },
        ): BulkHelper<BulkStats>;
        createIndex(
            options: { index: string },
        ):
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>;
        deleteIndex(
            options: { index: string | string[] },
        ):
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>;
        getAliases(
            options: { aliases: string[] },
        ):
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>;
        indexExists(
            options: { index: string | string[] },
        ):
            | TransportRequestPromise<ApiResponse<boolean, unknown>>
            | TransportRequestPromise<ApiResponse<boolean, unknown>>;
        listIndices(
            options: { index: string },
        ):
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>;
        putIndexTemplate(
            template: ElasticSearchCustomIndexTemplate,
        ):
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>;
        search(
            options: { body: Object; index: string | string[] },
        ):
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>;
        updateAliases(
            options: { actions: ElasticSearchAliasAction[] },
        ):
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>
            | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>;
    }
    Index

    Methods

    • Parameters

      • options: { index: string }

      Returns
          | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>
          | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>

    • Parameters

      • options: { index: string | string[] }

      Returns
          | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>
          | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>

    • Parameters

      • options: { aliases: string[] }

      Returns
          | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>
          | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>

      unused by the ElasticSearch Engine, will be removed in the future

    • Parameters

      • options: { index: string | string[] }

      Returns
          | TransportRequestPromise<ApiResponse<boolean, unknown>>
          | TransportRequestPromise<ApiResponse<boolean, unknown>>

    • Parameters

      • options: { index: string }

      Returns
          | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>
          | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>

    • Parameters

      • options: { body: Object; index: string | string[] }

      Returns
          | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>
          | TransportRequestPromise<ApiResponse<Record<string, any>, unknown>>