@vasoyaprince14/sql-analyzer
Version:
🚀 Enhanced SQL database analyzer with AI-powered insights, comprehensive security analysis, RLS policy auditing, and beautiful HTML reports
128 lines • 3.36 kB
TypeScript
export interface SqlAnalyzerConfig {
database?: {
host?: string;
port?: number;
database?: string;
user?: string;
password?: string;
ssl?: boolean;
connectionString?: string;
};
ai?: {
enabled?: boolean;
provider?: 'openai' | 'anthropic' | 'local';
apiKey?: string;
model?: string;
maxTokens?: number;
temperature?: number;
};
analysis?: {
includeSchema?: boolean;
includeTriggers?: boolean;
includeProcedures?: boolean;
includeRLS?: boolean;
includeCostAnalysis?: boolean;
includeAIInsights?: boolean;
performanceThreshold?: number;
securityLevel?: 'basic' | 'standard' | 'strict';
};
reporting?: {
format?: 'cli' | 'html' | 'json' | 'pdf' | 'md';
outputPath?: string;
includeCharts?: boolean;
includeBeforeAfter?: boolean;
includeImplementationGuide?: boolean;
customBranding?: {
companyName?: string;
logo?: string;
colors?: {
primary?: string;
secondary?: string;
};
};
};
advanced?: {
concurrentAnalysis?: boolean;
cacheResults?: boolean;
cacheTTL?: number;
retryAttempts?: number;
timeout?: number;
verbose?: boolean;
skipLargeObjects?: boolean;
maxTableSize?: number;
};
}
export declare const defaultConfig: SqlAnalyzerConfig;
export declare class ConfigManager {
private config;
constructor(userConfig?: Partial<SqlAnalyzerConfig>);
getConfig(): SqlAnalyzerConfig;
updateConfig(updates: Partial<SqlAnalyzerConfig>): void;
private mergeConfig;
validateConfig(): {
valid: boolean;
errors: string[];
};
private isValidPath;
/**
* Load configuration from environment variables
*/
static fromEnvironment(): ConfigManager;
/**
* Load configuration from file
*/
static fromFile(filePath: string): Promise<ConfigManager>;
/**
* Save configuration to file
*/
saveToFile(filePath: string): Promise<void>;
}
export declare const configPresets: {
development: {
advanced: {
verbose: boolean;
cacheResults: boolean;
};
analysis: {
securityLevel: "basic";
};
};
production: {
advanced: {
verbose: boolean;
cacheResults: boolean;
cacheTTL: number;
};
analysis: {
securityLevel: "strict";
includeAIInsights: boolean;
};
};
ci: {
reporting: {
format: "json";
};
analysis: {
includeAIInsights: boolean;
};
advanced: {
timeout: number;
};
};
comprehensive: {
analysis: {
includeSchema: boolean;
includeTriggers: boolean;
includeProcedures: boolean;
includeRLS: boolean;
includeCostAnalysis: boolean;
includeAIInsights: boolean;
securityLevel: "strict";
};
ai: {
enabled: boolean;
maxTokens: number;
};
};
};
//# sourceMappingURL=config.d.ts.map