UNPKG

auto-builder-sdk

Version:

SDK for building Auto Builder workflow plugins

68 lines (67 loc) 2.27 kB
/** * 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;