UNPKG

@codai/cbd

Version:

Codai Better Database - High-Performance Vector Memory System with HPKV-inspired architecture and MCP server

220 lines 7.92 kB
/** * Multi-Cloud Configuration Interface * Defines configuration patterns for AWS, Azure, and GCP integration */ import { CloudProvider, CloudSelectionStrategy } from './IntelligentCloudSelector.js'; export interface MultiCloudConfiguration { readonly strategy: CloudSelectionStrategy; readonly primaryCloud: CloudProvider; readonly fallbackClouds: CloudProvider[]; readonly aws: AWSConfiguration; readonly azure: AzureConfiguration; readonly gcp: GCPConfiguration; readonly local: LocalConfiguration; readonly monitoring: MonitoringConfiguration; readonly cost: CostOptimizationConfiguration; } export interface AWSConfiguration { readonly region: string; readonly credentials: { readonly accessKeyId?: string; readonly secretAccessKey?: string; readonly sessionToken?: string; readonly role?: string; }; readonly services: { readonly dynamodb: DynamoDBConfiguration; readonly opensearch: OpenSearchConfiguration; readonly rds: RDSConfiguration; readonly s3: S3Configuration; readonly lambda: LambdaConfiguration; }; } export interface AzureConfiguration { readonly tenantId: string; readonly clientId: string; readonly clientSecret?: string; readonly subscriptionId: string; readonly resourceGroup: string; readonly services: { readonly cosmosDb: CosmosDBConfiguration; readonly cognitiveSearch: CognitiveSearchConfiguration; readonly sqlDatabase: SQLDatabaseConfiguration; readonly blobStorage: BlobStorageConfiguration; readonly functions: AzureFunctionsConfiguration; }; } export interface GCPConfiguration { readonly projectId: string; readonly keyFilename?: string; readonly credentials?: any; readonly region: string; readonly services: { readonly firestore: FirestoreConfiguration; readonly spanner: SpannerConfiguration; readonly bigquery: BigQueryConfiguration; readonly cloudStorage: CloudStorageConfiguration; readonly cloudFunctions: CloudFunctionsConfiguration; }; } export interface LocalConfiguration { readonly dataPath: string; readonly backupPath: string; readonly maxMemoryMB: number; readonly enablePersistence: boolean; readonly compressionEnabled: boolean; } export interface MonitoringConfiguration { readonly enabled: boolean; readonly metricsInterval: number; readonly cloudWatch: boolean; readonly azureMonitor: boolean; readonly gcpOperations: boolean; readonly customEndpoint?: string; } export interface CostOptimizationConfiguration { readonly enabled: boolean; readonly maxMonthlyCost: number; readonly costAlerts: boolean; readonly autoScaling: boolean; readonly spotInstances: boolean; } export interface DynamoDBConfiguration { readonly endpoint?: string; readonly region: string; readonly consistentReads: boolean; readonly billingMode: 'PAY_PER_REQUEST' | 'PROVISIONED'; readonly readCapacityUnits?: number; readonly writeCapacityUnits?: number; } export interface OpenSearchConfiguration { readonly endpoint: string; readonly region: string; readonly version: string; readonly instanceType: string; readonly instanceCount: number; } export interface RDSConfiguration { readonly engine: 'postgres' | 'mysql' | 'aurora-postgresql' | 'aurora-mysql'; readonly instanceClass: string; readonly allocatedStorage: number; readonly multiAZ: boolean; readonly backupRetentionPeriod: number; } export interface S3Configuration { readonly bucket: string; readonly region: string; readonly storageClass: 'STANDARD' | 'STANDARD_IA' | 'GLACIER' | 'DEEP_ARCHIVE'; readonly versioning: boolean; readonly encryption: boolean; } export interface LambdaConfiguration { readonly runtime: string; readonly timeout: number; readonly memorySize: number; readonly environment: Record<string, string>; } export interface CosmosDBConfiguration { readonly endpoint: string; readonly primaryKey: string; readonly databaseName: string; readonly consistencyLevel: 'Strong' | 'BoundedStaleness' | 'Session' | 'ConsistentPrefix' | 'Eventual'; readonly requestUnits: number; readonly multiRegion: boolean; } export interface CognitiveSearchConfiguration { readonly endpoint: string; readonly apiKey: string; readonly indexName: string; readonly tier: 'free' | 'basic' | 'standard' | 'standard2' | 'standard3' | 'storage_optimized_l1' | 'storage_optimized_l2'; } export interface SQLDatabaseConfiguration { readonly server: string; readonly database: string; readonly username: string; readonly password: string; readonly tier: 'Basic' | 'Standard' | 'Premium' | 'GeneralPurpose' | 'BusinessCritical' | 'Hyperscale'; readonly maxSizeMB: number; } export interface BlobStorageConfiguration { readonly accountName: string; readonly accountKey: string; readonly containerName: string; readonly tier: 'Hot' | 'Cool' | 'Archive'; readonly redundancy: 'LRS' | 'ZRS' | 'GRS' | 'GZRS'; } export interface AzureFunctionsConfiguration { readonly appName: string; readonly resourceGroup: string; readonly runtime: string; readonly version: string; readonly consumptionPlan: boolean; } export interface FirestoreConfiguration { readonly projectId: string; readonly databaseId: string; readonly location: string; readonly type: 'firestore-native' | 'datastore'; } export interface SpannerConfiguration { readonly instanceId: string; readonly databaseId: string; readonly nodeCount: number; readonly processingUnits: number; } export interface BigQueryConfiguration { readonly datasetId: string; readonly location: string; readonly defaultTableExpirationMs?: number; readonly labels?: Record<string, string>; } export interface CloudStorageConfiguration { readonly bucketName: string; readonly location: string; readonly storageClass: 'STANDARD' | 'NEARLINE' | 'COLDLINE' | 'ARCHIVE'; readonly uniformBucketLevelAccess: boolean; } export interface CloudFunctionsConfiguration { readonly runtime: string; readonly region: string; readonly memory: number; readonly timeout: number; readonly environmentVariables: Record<string, string>; } /** * Default multi-cloud configuration */ export declare const defaultMultiCloudConfig: MultiCloudConfiguration; /** * Configuration builder for multi-cloud setup */ export declare class MultiCloudConfigBuilder { private config; static create(): MultiCloudConfigBuilder; withStrategy(strategy: CloudSelectionStrategy): MultiCloudConfigBuilder; withPrimaryCloud(cloud: CloudProvider): MultiCloudConfigBuilder; withFallbackClouds(clouds: CloudProvider[]): MultiCloudConfigBuilder; withAWS(config: Partial<AWSConfiguration>): MultiCloudConfigBuilder; withAzure(config: Partial<AzureConfiguration>): MultiCloudConfigBuilder; withGCP(config: Partial<GCPConfiguration>): MultiCloudConfigBuilder; withLocal(config: Partial<LocalConfiguration>): MultiCloudConfigBuilder; withMonitoring(config: Partial<MonitoringConfiguration>): MultiCloudConfigBuilder; withCostOptimization(config: Partial<CostOptimizationConfiguration>): MultiCloudConfigBuilder; build(): MultiCloudConfiguration; /** * Load configuration from environment variables */ fromEnvironment(): MultiCloudConfigBuilder; /** * Load configuration from file */ static fromFile(filePath: string): MultiCloudConfiguration; /** * Validate configuration */ static validate(config: MultiCloudConfiguration): { valid: boolean; errors: string[]; }; } //# sourceMappingURL=MultiCloudConfiguration.d.ts.map