API Module

API Module#

The API module implements the controller logic that orchestrates module calls once API calls are made and also sets up the server that exposes the APIs. Currently, FastAPI is the only supported API server implementation.

Abstract API Class#

The API Server options, including FastAPI, inherit from the abstract API class. The following are required methods that need to be implemented.

API#

All implementations of the API module must inherit and implement the abstract API class.

heartbeat(self) int

Returns the current server time in nanoseconds to check if the server is alive.

Returns:

The current server time in nanoseconds.

Return type:

int

scan_db(self, scanner_request: ScannerRequest) bool

Initiates the scanning of a database using the provided scanner request.

Parameters:

scanner_request (ScannerRequest) – The scanner request.

Returns:

True if the scanning was initiated successfully; otherwise, False.

Return type:

bool

answer_question(self, question_request: QuestionRequest) Response

Provides a response to a user’s question based on the provided question request.

Parameters:

question_request (QuestionRequest) – The question request.

Returns:

The Response containing the response to the user’s question.

Return type:

Response

create_database_connection(self, database_connection_request: DatabaseConnectionRequest) bool

Establishes a connection to a database using the provided connection request.

Parameters:

database_connection_request (DatabaseConnectionRequest) – The database connection request.

Returns:

True if the connection was established successfully; otherwise, False.

Return type:

bool

add_description(self, db_connection_id: str, table_name: str, table_description_request: TableDescriptionRequest) bool

Adds a description to a specific table within a database based on the provided table description request.

Parameters:
  • db_connection_id (str) – The db connection id

  • table_name (str) – The name of the table.

  • table_description_request (TableDescriptionRequest) – The table description request.

Returns:

True if the description was added successfully; otherwise, False.

Return type:

bool

add_golden_records(self, golden_records: List[GoldenRecordRequest]) List[GoldenRecord]

Adds golden records to the vector stores based on the provided list.

Parameters:

golden_records (List[GoldenRecordRequest]) – A list of golden record requests.

Returns:

A list of added GoldenRecord objects.

Return type:

List[GoldenRecord]

execute_query(self, query: Query) tuple[str, dict]

Executes a query using the provided Query object and returns the query result.

Parameters:

query (Query) – The query to execute.

Returns:

A tuple containing the query status and result.

Return type:

tuple[str, dict]

update_query(self, query_id: str, query: UpdateQueryRequest) Response

Updates a query using the provided query ID and UpdateQueryRequest.

Parameters:
  • query_id (str) – The ID of the query to update.

  • query (UpdateQueryRequest) – The update query request.

Returns:

The Response containing the result of the query update.

Return type:

Response

execute_temp_query(self, query_id: str, query: CreateResponseRequest) Response

Executes a temporary query using the provided query ID and CreateResponseRequest.

Parameters:
  • question_id (str) – The ID of the question to execute.

  • query (CreateResponseRequest) – The query request.

Returns:

The Response containing the result.

Return type:

Response

get_scanned_databases(self, db_connection_id: str) ScannedDBResponse

Retrieves information about scanned databases based on a database connection id.

Parameters:

db_connection_id (str) – The database connection id.

Returns:

The ScannedDBResponse containing information about scanned databases.

Return type:

ScannedDBResponse

delete_golden_record(self, golden_record_id: str) dict

Deletes a golden record based on its ID.

Parameters:

golden_record_id (str) – The ID of the golden record to delete.

Returns:

A dictionary containing information about the deleted golden record.

Return type:

dict

get_golden_records(self, page: int = 1, limit: int = 10) List[GoldenRecord]

Retrieves a list of golden records with pagination support.

Parameters:
  • page (int) – The page number (default is 1).

  • limit (int) – The maximum number of records per page (default is 10).

Returns:

A list of retrieved GoldenRecord objects.

Return type:

List[GoldenRecord]