@multicloud-io/multicloud-connection-js
Version: 
Shared TypeScript/JavaScript library for connecting to Multicloud servers with mTLS authentication
80 lines • 2.6 kB
TypeScript
/**
 * Configuration management for Multicloud connections
 *
 * This module provides the MulticloudConfig class for loading and managing
 * configuration from files, environment variables, and direct parameters
 * with proper precedence handling.
 *
 * Supports both Node.js and browser environments (server-side only for security).
 */
export interface MulticloudConnectionParams {
    serverUrl: string;
    clientCert?: string;
    clientKey?: string;
    verifySsl: boolean;
    timeout: number;
    debug: boolean;
    accessToken?: string;
}
export interface MulticloudConfigOptions {
    /** Environment variable prefix (default: MULTICLOUD_) */
    envPrefix?: string;
    /** Default configuration file path */
    configFile?: string;
    /** Whether running in production mode */
    isProduction?: boolean;
}
export declare class MulticloudConfig {
    private static readonly DEFAULT_CONFIG_PATH;
    /**
     * Default configuration values
     */
    private static readonly DEFAULT_CONFIG;
    /**
     * Get connection parameters with file and environment variable overrides
     *
     * Applies configuration precedence:
     * 1. Direct overrides (highest priority)
     * 2. Environment variables
     * 3. Configuration file
     * 4. Default values (lowest priority)
     *
     * @param overrides Direct parameter overrides
     * @param options Configuration options
     * @returns Connection parameters
     */
    static getConnectionParams(overrides?: Partial<MulticloudConnectionParams>, options?: MulticloudConfigOptions): MulticloudConnectionParams;
    /**
     * Load configuration from YAML file
     */
    private static applyFileConfig;
    /**
     * Substitute variables in configuration content
     * Supports ${variable} syntax with simple replacements
     */
    private static substituteVariables;
    /**
     * Apply environment variable overrides to parameters
     */
    private static applyEnvOverrides;
    /**
     * Validate that required parameters are present
     */
    private static validateParams;
    /**
     * Get configuration information for debugging
     */
    static getConfigInfo(options?: MulticloudConfigOptions): Record<string, any>;
    /**
     * Check if configuration file exists
     */
    static hasConfigFile(configFile?: string): boolean;
    /**
     * Check if multicloud integration is enabled
     *
     * @param options Configuration options
     * @returns True if multicloud is properly configured
     */
    static isEnabled(options?: MulticloudConfigOptions): boolean;
}
//# sourceMappingURL=config.d.ts.map