Configuration Manager
Documentation for the Configuration Manager Service
Configuration Manager Service
The Configuration Manager Service provides a centralized way to manage configuration settings across your organization’s services. It securely stores various configuration parameters in a key-value store (ETCD by default) and provides APIs to manage these configurations.
Architecture Overview
The Configuration Manager Service is built on a Node.js backend that leverages ETCD (or other compatible key-value stores) for secure configuration storage. The service:
- Securely encrypts sensitive configuration values
- Provides a RESTful API for managing configurations
- Integrates with other services via event-driven architecture
- Controls access through authentication and authorization
Key Features
- Secure Storage: All sensitive configurations are encrypted using AES-256-GCM algorithm
- Health Checks: Built-in validation of configuration parameters
- Event Notifications: Publishes events when critical configurations change
- Centralized Management: Single service to control settings across the system
Supported Configurations
The Configuration Manager handles various types of configurations:
- Storage Configurations - AWS S3, Azure Blob, or Local storage settings
- Authentication Configurations - Azure AD, Google, Microsoft, and SSO settings
- Database Configurations - MongoDB, ArangoDB, and Qdrant settings
- Message Broker Configurations - Kafka settings
- Key-Value Store Configurations - Redis settings
- SMTP Configurations - Email service settings
- AI Models Configurations - Settings for various AI model types
- Connector Configurations - Google Workspace and other integration settings
- Public URL Configurations - Frontend and connector URLs
- Metrics Collection Configurations - Settings for metrics gathering
Storage Configuration API
The Storage Configuration API enables you to configure different storage backends for your application.
Set Storage Configuration
Configure the storage service with specific backend details.
Get Storage Configuration
Retrieve the current storage configuration.
Authentication Configuration API
The Authentication Configuration API allows you to manage various authentication providers.
Azure AD Authentication
Get Azure AD Config
SSO Authentication
Database Configuration API
Configure database connections for your application.
MongoDB Configuration
ArangoDB Configuration
Qdrant Configuration
Message Broker Configuration API
Configure message broker for event-driven architecture.
Kafka Configuration
SMTP Configuration API
Configure email service settings.
AI Models Configuration API
Configure AI models for various tasks.
Connector Configuration API
Configure connectors for integrating with external services.
Google Workspace Configuration
Key-Value Store Configuration API
Configure Redis as a key-value store.
Public URL Configuration API
Configure public URLs for frontend and connector services.
Metrics Collection Configuration API
Configure metrics collection settings.
Schema Definitions
Encryption and Security
The Configuration Manager Service uses AES-256-GCM encryption to protect sensitive configuration data. Key features include:
- Secret Key Hashing: The secret key used for encryption is hashed using SHA-256 for added security
- Per-Configuration Encryption: Each sensitive configuration is individually encrypted
- Fine-grained Access Control: API endpoints require appropriate authentication and authorization
Event-Driven Architecture
The Configuration Manager publishes events when critical configurations change:
- LLM Configured Event: When AI models are configured
- Connector Public URL Changed Event: When connector URLs are updated
- Gmail Updates Enabled/Disabled Event: When Gmail real-time updates are toggled
These events allow other services to react to configuration changes without polling.
Health Checks
The service includes built-in health checks for various configurations:
- Kafka Health Check: Verifies Kafka broker connectivity
- Redis Health Check: Tests Redis connection
- Qdrant Health Check: Ensures Qdrant vector database is accessible
- MongoDB Health Check: Validates MongoDB connection
- ArangoDB Health Check: Confirms ArangoDB connection
These health checks are automatically performed before saving configurations to ensure validity.