Expand description
§Mountain Client Module
This module provides the gRPC client implementation for Air to communicate with Mountain. Air acts as a client connecting to Mountain’s gRPC server for requesting status, health checks, and configuration operations.
§Architecture
Air (Background Daemon) ──► MountainClient ──► gRPC ──► Mountain (Main App)§Features
- Connection Management: Establish and maintain gRPC connections to Mountain
- Health Monitoring: Check Mountain’s health status
- Status Queries: Query Mountain’s operational status
- Configuration: Get and update Mountain configuration
§Configuration
- Default Address:
[::1]:50051(Mountain’s default Vine server port) - Transport: gRPC over TCP/IP with optional TLS
- Timeouts: Configurable connection and request timeouts
§TLS/mTLS Support
The mtls feature enables TLS client support with:
- Client certificate authentication
- Secure encrypted communications
- Certificate validation against CA
Note: TLS/mTLS implementation is a stub for future enhancement. The current implementation focuses on establishing unencrypted connections for development and testing purposes.
Structs§
- Mountain
Client - Mountain gRPC client wrapper for Air.
- Mountain
Client Config - Configuration for connecting to Mountain.
- TlsConfig
- TLS configuration for gRPC connections to Mountain.
Constants§
- DEFAULT_
CONNECTION_ TIMEOUT_ SECS - Default connection timeout in seconds
- DEFAULT_
MOUNTAIN_ ADDRESS - Default Vine server address for Mountain component.
- DEFAULT_
REQUEST_ TIMEOUT_ SECS - Default request timeout in seconds
Functions§
- connect_
to_ mountain - Convenience function to connect to Mountain with default configuration.
- connect_
to_ mountain_ at - Convenience function to connect to Mountain with a custom address.
- create_
tls_ client_ config - Creates a TLS client configuration from a TlsConfig.