auto-builder-sdk
Version:
SDK for building Auto Builder workflow plugins
68 lines (67 loc) • 2.27 kB
TypeScript
/**
* Database service interface for dependency injection
* This allows plugins to execute database queries without importing drivers directly
*/
/**
* Database execution result interface
*/
export interface DatabaseExecutionResult {
rows: any[];
rowCount: number;
executionTime: number;
metadata?: Record<string, any>;
}
/**
* Generic database credentials interface
*/
export interface DatabaseCredentials {
type: string;
data: Record<string, any>;
}
/**
* Database service interface that plugins can use to execute queries
* The main auto-builder project implements this interface and injects it into sandboxed plugins
*/
export interface IDatabaseService {
/**
* Execute a SQL query against the specified database
* @param query - SQL query to execute
* @param credentials - Database credentials
* @returns Promise<DatabaseExecutionResult> - Execution result
*/
executeQuery(query: string, credentials: DatabaseCredentials): Promise<DatabaseExecutionResult>;
/**
* Test database connection with given credentials
* @param credentials - Database credentials to test
* @returns Promise<boolean> - True if connection successful
*/
testConnection(credentials: DatabaseCredentials): Promise<boolean>;
/**
* Get supported database types
* @returns Array of supported database type names
*/
getSupportedDatabaseTypes(): string[];
/**
* Validate database credentials format
* @param credentials - Database credentials to validate
* @throws Error if credentials are invalid
*/
validateCredentials(credentials: DatabaseCredentials): void;
}
/**
* Global database service instance (injected by main auto-builder project)
*/
declare global {
var __databaseService: IDatabaseService | undefined;
}
/**
* Get the injected database service
* @returns IDatabaseService instance
* @throws Error if database service is not available
*/
export declare function getDatabaseService(): IDatabaseService;
/**
* Internal function to inject database service (used by main auto-builder project)
* @param service - Database service implementation
*/
export declare function _internalInjectDatabaseService(service: IDatabaseService): void;