@fiftyten/db-toolkit
Version:
Complete database toolkit: connections, migration, and operations via AWS Session Manager
107 lines • 3.47 kB
TypeScript
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