UNPKG

@fiftyten/db-connect

Version:

CLI tool for database connections and DynamoDB operations via AWS Session Manager

86 lines 2.44 kB
export interface ConnectionInfo { instanceId: string; sessionManagerEnabled: boolean; accessMethod: string; region: string; securityGroupId: string; sessionCommand: string; portForwardCommand: string; cliToolCommand: string; sshEnabled?: boolean; keyName?: string; note?: string; } export interface DatabaseInfo { DATABASE_HOST: string; DATABASE_PORT: string; DATABASE_NAME: string; DATABASE_USER: string; DATABASE_SECRET_ARN: string; } export declare class DatabaseConnector { private ec2Client; private ssmClient; private secretsClient; private mfaAuth; private region; private mfaAuthenticated; constructor(region?: string); /** * Check if a local port is available */ private isPortAvailable; /** * Find an available port starting from the given port */ private findAvailablePort; /** * Handle AWS API calls with automatic MFA authentication */ private callWithMfaRetry; /** * Get bastion host instance ID by environment */ private getBastionInstanceId; /** * Get connection information from SSM */ private getConnectionInfo; /** * Get database information from SSM */ private getDatabaseInfo; /** * Get database password from Secrets Manager */ getDatabasePassword(environment: string, database?: string): Promise<string>; /** * Create SSH tunnel to database via Session Manager */ createTunnel(environment: string, database?: string, localPort?: number): Promise<void>; /** * Connect directly to database via Session Manager */ connectDatabase(environment: string, database?: string): Promise<void>; /** * SSH into bastion host via Session Manager */ sshBastion(environment: string): Promise<void>; /** * Show connection information */ showInfo(environment: string): Promise<void>; /** * List available environments */ listEnvironments(): Promise<void>; /** * Discover available databases for an environment */ discoverDatabases(environment: string): Promise<string[]>; /** * Connect to database with automatic tunnel and password retrieval */ connectWithPassword(environment: string, database?: string, localPort?: number): Promise<void>; } //# sourceMappingURL=database-connector.d.ts.map