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]