UNPKG

@fiftyten/db-toolkit

Version:

Complete database toolkit: connections, migration, and operations via AWS Session Manager

107 lines 3.47 kB
import { MigrationTemplateParams } from './cloudformation-templates'; export interface CloudFormationDeploymentConfig { stackName: string; region: string; parameters: MigrationTemplateParams; } export declare class CloudFormationManager { private cfnClient; private ec2Client; private rdsClient; private ssmClient; private mfaAuth; private region; private mfaAuthenticated; constructor(region?: string); /** * Handle AWS API calls with automatic MFA authentication */ private callWithMfaRetry; /** * Discover database security groups for automatic connectivity configuration */ discoverDatabaseSecurityGroups(legacyEndpoint: string, targetEndpoint: string): Promise<{ legacySecurityGroupIds?: string[]; targetSecurityGroupIds?: string[]; }>; /** * Get VPC and subnet information for DMS deployment */ getVpcInfo(environmentName: string): Promise<{ vpcId: string; subnetIds: string[]; }>; /** * Deploy CloudFormation stack */ deployStack(config: CloudFormationDeploymentConfig): Promise<void>; /** * Delete CloudFormation stack */ deleteStack(stackName: string): Promise<void>; /** * Wait for CloudFormation stack operation to complete */ private waitForStackOperation; /** * Show recent CloudFormation events */ private showRecentEvents; /** * Configure security group ingress rules for database access with flexible fallback strategies */ configureSecurityGroupAccess(dmsSecurityGroupId: string, legacySecurityGroupIds?: string[], targetSecurityGroupIds?: string[], environmentName?: string): Promise<void>; /** * Remove security group rules that were added during DMS deployment */ cleanupSecurityGroupRules(dmsSecurityGroupId: string, legacySecurityGroupIds?: string[], targetSecurityGroupIds?: string[]): Promise<void>; /** * Remove bidirectional security group rules for a single database security group */ private removeSingleSecurityGroupRules; /** * Configure bidirectional security group access for a single database security group with fallback strategies */ private configureSingleSecurityGroup; /** * Check if PostgreSQL inbound rule already exists */ private checkExistingPostgreSQLInboundRule; /** * Check if PostgreSQL outbound rule already exists */ private checkExistingPostgreSQLOutboundRule; /** * Try adding inbound security group reference rule */ private trySecurityGroupInboundReference; /** * Try adding inbound VPC CIDR-based rule */ private tryVpcCidrInboundRule; /** * Try adding inbound broad CIDR rule (10.0.0.0/8) */ private tryBroadCidrInboundRule; /** * Try adding outbound security group reference rule */ private trySecurityGroupOutboundReference; /** * Try adding outbound VPC CIDR-based rule */ private tryVpcCidrOutboundRule; /** * Try adding outbound broad CIDR rule (10.0.0.0/8) */ private tryBroadCidrOutboundRule; /** * Provide manual instructions for security group configuration */ private provideManualInstructions; /** * Get stack outputs */ getStackOutputs(stackName: string): Promise<Record<string, string>>; } //# sourceMappingURL=cloudformation-manager.d.ts.map