/superb-data-kraken-search

Abstracts the underlying search engine, providing a consistent interface regardless of the search engine used.

Primary LanguageJavaApache License 2.0Apache-2.0

Search-Service

License Java Version Spring Boot Version

SDK LOGO
A data platform for everyone

Table of Contents


Description

The Search-Service is a component of the Superb Data Kraken Platform (SDK). It abstracts the underlying search engine, providing a consistent interface regardless of the search engine used.

The service provides endpoints that allows users to view indices, retrieve filter options, access metadata properties, and execute searches among others. Although these endpoints can be utilized directly by users, their primary purpose is to integrate with the search module of the Superb Data Kraken Frontend.

For a more detailed understanding of the broader context of the platform this project is used in, refer to the architecture documentation.

For instructions on how to deploy the Search-Service on an instance of the SDK, refer to the installation instructions.

Refer to index.md for more detailed but deployment specific documentation.

Getting Started

Follow the instructions below to set up a local copy of the project for development and testing.

Prerequisites

  • jdk >= 17
  • Maven 3.6.x (if you're not using the Maven wrapper)
  • A running OpenSearch instance
  • A running OIDC/OAuth2 provider instance

Setup

To set up your local environment for development and testing, follow these steps:

  1. Clone the repository:
    git clone https://github.com/EFS-OpenSource/superb-data-kraken-search.git
    cd superb-data-kraken-search
  2. Set up the service configuration:
    cp src/main/resources/application-local-template.yml src/main/resources/application-local.yaml
    Configure the application-local.yaml file based on your local development setup. The OpenSearch instance and the OIDC provider instance need to be configured correctly for the search service to run as expected.
  3. Run the service:
    ./mvnw spring-boot:run -Dspring-boot:run.profiles=local
  4. After successful setup, you can test the service using the auto-generated API documentation at:
    https://localhost:8090/search/swagger-ui/index.html
    
    

Configuration

  • sdk.oauth2.config-url: Specifies the URL pointing to the OpenID Connect discovery document. This URL provides essential configuration details for OAuth2 and OpenID Connect operations, enabling dynamic discovery of authentication server endpoints and supported features. It's instrumental in configuring the OAuth2-based security settings within the Spring Boot application's security plugin.
  • Replace all placeholders enclosed in $(), e.g.:
    • REALM: the specific realm set up with the openid connect (oidc) provider.
    • CLIENT_ID: the unique identifier for the service account that the service utilizes.

Usage

Here are the essential commands you'll need to use the service:

  • Build the service:
    ./mvnw package
  • Executing the tests alone:
    ./mvnw test
  • Run the Search-Service:
    ./mvnw spring-boot:run -Dspring-boot:run.profiles=local
  • Build the service Docker image:
    docker build -t sdk/search-service .
    

Contributing

See the Contribution Guide.

Changelog

See the Changelog.