Configuration Manager API
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.Base URL
All endpoints are prefixed with/api/v1/configurationManager
Authentication
All endpoints require authentication via Bearer token: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 using AES-256-GCM algorithm
- Provides a RESTful API for managing configurations
- Integrates with other services via event-driven architecture
- Controls access through authentication and authorization
- Performs health checks before saving configurations
Key Features
- Secure Storage: All sensitive configurations are encrypted using AES-256-GCM algorithm
- Health Checks: Built-in validation of configuration parameters before storage
- Event Notifications: Publishes events when critical configurations change
- Centralized Management: Single service to control settings across the system
- AI Model Management: Advanced provider management for AI models with support for multiple models per provider
- Connector Integration: Support for various connectors including Google Workspace, Atlassian, OneDrive, and SharePoint
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, SSO, and OAuth settings
- Database Configurations - MongoDB, ArangoDB, and Qdrant settings
- Key-Value Store Configurations - Redis settings
- Message Broker Configurations - Kafka settings
- SMTP Configurations - Email service settings
- AI Models Configurations - Settings for LLM, embedding, OCR, SLM, reasoning, and multiModal models
- Connector Configurations - Google Workspace, Atlassian, OneDrive, and SharePoint integrations
- Public URL Configurations - Frontend and connector URLs
- Metrics Collection Configurations - Settings for metrics gathering
API Endpoints
Storage Configuration
Storage Configuration
POST /storageConfig - Set Storage Configuration
POST /storageConfig - Set Storage Configuration
- Request
- Response
POST /api/v1/configurationManager/storageConfigRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| storageType | string | Yes | Type of storage (“s3”, “azureBlob”, or “local”) |
GET /storageConfig - Get Storage Configuration
GET /storageConfig - Get Storage Configuration
- Request
- Response
GET /api/v1/configurationManager/storageConfigSMTP Configuration
SMTP Configuration
POST /smtpConfig - Set SMTP Configuration
POST /smtpConfig - Set SMTP Configuration
- Request
- Response
POST /api/v1/configurationManager/smtpConfigRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| host | string | Yes | SMTP server host |
| port | number | Yes | SMTP server port |
| username | string | No | SMTP username |
| password | string | No | SMTP password |
| fromEmail | string | Yes | Default sender email |
GET /smtpConfig - Get SMTP Configuration
GET /smtpConfig - Get SMTP Configuration
- Request
- Response
GET /api/v1/configurationManager/smtpConfigAuthentication Configuration
Authentication Configuration
Azure AD Authentication
Azure AD Authentication
POST /authConfig/azureAd - Set Azure AD Config
POST /authConfig/azureAd - Set Azure AD Config
- Request
- Response
POST /api/v1/configurationManager/authConfig/azureAdRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string | Yes | Azure AD client ID |
| tenantId | string | No | Azure AD tenant ID (defaults to “common”) |
GET /authConfig/azureAd - Get Azure AD Config
GET /authConfig/azureAd - Get Azure AD Config
- Request
- Response
GET /api/v1/configurationManager/authConfig/azureAdMicrosoft Authentication
Microsoft Authentication
POST /authConfig/microsoft - Set Microsoft Config
POST /authConfig/microsoft - Set Microsoft Config
- Request
- Response
POST /api/v1/configurationManager/authConfig/microsoftRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string | Yes | Microsoft client ID |
| tenantId | string | No | Microsoft tenant ID (defaults to “common”) |
GET /authConfig/microsoft - Get Microsoft Config
GET /authConfig/microsoft - Get Microsoft Config
- Request
- Response
GET /api/v1/configurationManager/authConfig/microsoftGoogle Authentication
Google Authentication
POST /authConfig/google - Set Google Config
POST /authConfig/google - Set Google Config
- Request
- Response
POST /api/v1/configurationManager/authConfig/googleRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string | Yes | Google client ID |
GET /authConfig/google - Get Google Config
GET /authConfig/google - Get Google Config
- Request
- Response
GET /api/v1/configurationManager/authConfig/googleSSO Authentication
SSO Authentication
POST /authConfig/sso - Set SSO Config
POST /authConfig/sso - Set SSO Config
- Request
- Response
POST /api/v1/configurationManager/authConfig/ssoRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| entryPoint | string | Yes | SSO entry point URL |
| certificate | string | Yes | SSO certificate |
| emailKey | string | Yes | Key for email in SSO response |
GET /authConfig/sso - Get SSO Config
GET /authConfig/sso - Get SSO Config
- Request
- Response
GET /api/v1/configurationManager/authConfig/ssoOAuth Authentication
OAuth Authentication
POST /authConfig/oauth - Set OAuth Config
POST /authConfig/oauth - Set OAuth Config
- Request
- Response
POST /api/v1/configurationManager/authConfig/oauthRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| providerName | string | Yes | OAuth provider name |
| clientId | string | Yes | OAuth client ID |
| clientSecret | string | No | OAuth client secret |
| authorizationUrl | string | No | Authorization URL |
| tokenEndpoint | string | No | Token endpoint URL |
| userInfoEndpoint | string | No | User info endpoint URL |
| scope | string | No | OAuth scope |
| redirectUri | string | No | Redirect URI |
GET /authConfig/oauth - Get OAuth Config
GET /authConfig/oauth - Get OAuth Config
- Request
- Response
GET /api/v1/configurationManager/authConfig/oauthDatabase Configuration
Database Configuration
MongoDB Configuration
MongoDB Configuration
POST /mongoDBConfig - Set MongoDB Config
POST /mongoDBConfig - Set MongoDB Config
- Request
- Response
POST /api/v1/configurationManager/mongoDBConfigRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| uri | string | Yes | MongoDB connection URI |
GET /mongoDBConfig - Get MongoDB Config
GET /mongoDBConfig - Get MongoDB Config
- Request
- Response
GET /api/v1/configurationManager/mongoDBConfigArangoDB Configuration
ArangoDB Configuration
POST /arangoDBConfig - Set ArangoDB Config
POST /arangoDBConfig - Set ArangoDB Config
- Request
- Response
POST /api/v1/configurationManager/arangoDBConfigRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | ArangoDB connection URL |
| username | string | No | ArangoDB username |
| password | string | No | ArangoDB password |
GET /arangoDBConfig - Get ArangoDB Config
GET /arangoDBConfig - Get ArangoDB Config
- Request
- Response
GET /api/v1/configurationManager/arangoDBConfigQdrant Configuration
Qdrant Configuration
POST /qdrantConfig - Set Qdrant Config
POST /qdrantConfig - Set Qdrant Config
- Request
- Response
POST /api/v1/configurationManager/qdrantConfigRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| host | string | Yes | Qdrant server host |
| port | number | Yes | Qdrant HTTP port |
| grpcPort | number | No | Qdrant gRPC port |
| apiKey | string | No | Qdrant API key (not required for localhost) |
GET /qdrantConfig - Get Qdrant Config
GET /qdrantConfig - Get Qdrant Config
- Request
- Response
GET /api/v1/configurationManager/qdrantConfigKey-Value Store Configuration
Key-Value Store Configuration
POST /redisConfig - Set Redis Config
POST /redisConfig - Set Redis Config
- Request
- Response
POST /api/v1/configurationManager/redisConfigRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| host | string | Yes | Redis server host |
| port | number | Yes | Redis server port |
| password | string | No | Redis password |
| tls | boolean | No | Enable TLS for Redis connection |
GET /redisConfig - Get Redis Config
GET /redisConfig - Get Redis Config
- Request
- Response
GET /api/v1/configurationManager/redisConfigMessage Broker Configuration
Message Broker Configuration
POST /kafkaConfig - Set Kafka Config
POST /kafkaConfig - Set Kafka Config
- Request
- Response
POST /api/v1/configurationManager/kafkaConfigRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| brokers | string[] | Yes | Array of Kafka broker URLs |
| sasl | object | No | SASL authentication details |
GET /kafkaConfig - Get Kafka Config
GET /kafkaConfig - Get Kafka Config
- Request
- Response
GET /api/v1/configurationManager/kafkaConfigAI Models Configuration
AI Models Configuration
Complete AI Models Configuration
Complete AI Models Configuration
POST /aiModelsConfig - Set AI Models Config
POST /aiModelsConfig - Set AI Models Config
- Request
- Response
POST /api/v1/configurationManager/aiModelsConfigRequest Body Parameters:
At least one AI model type must be configured.GET /aiModelsConfig - Get AI Models Config
GET /aiModelsConfig - Get AI Models Config
- Request
- Response
GET /api/v1/configurationManager/aiModelsConfigAI Models Management
AI Models Management
GET /ai-models - Get All AI Models
GET /ai-models - Get All AI Models
- Request
- Response
GET /api/v1/configurationManager/ai-modelsGET /ai-models/{modelType} - Get Models by Type
GET /ai-models/{modelType} - Get Models by Type
- Request
- Response
GET /api/v1/configurationManager/ai-models/{modelType}Path Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| modelType | string | Yes | One of: llm, embedding, ocr, slm, reasoning, multiModal |
GET /ai-models/available/{modelType} - Get Available Models
GET /ai-models/available/{modelType} - Get Available Models
- Request
- Response
GET /api/v1/configurationManager/ai-models/available/{modelType}Path Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| modelType | string | Yes | One of: llm, embedding, ocr, slm, reasoning, multiModal |
AI Model Provider Management
AI Model Provider Management
POST /ai-models/providers - Add AI Model Provider
POST /ai-models/providers - Add AI Model Provider
- Request
- Response
POST /api/v1/configurationManager/ai-models/providersRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| modelType | string | Yes | One of: llm, embedding, ocr, slm, reasoning, multiModal |
| provider | string | Yes | Provider name (e.g., openAI, anthropic, cohere) |
| configuration | object | Yes | Provider-specific configuration |
| isMultimodal | boolean | No | Whether model supports multimodal input (default: false) |
| isDefault | boolean | No | Whether this should be the default model (default: false) |
PUT /ai-models/providers/{modelType}/{modelKey} - Update AI Model Provider
PUT /ai-models/providers/{modelType}/{modelKey} - Update AI Model Provider
- Request
- Response
PUT /api/v1/configurationManager/ai-models/providers/{modelType}/{modelKey}Path Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| modelType | string | Yes | One of: llm, embedding, ocr, slm, reasoning, multiModal |
| modelKey | string | Yes | Unique key for the model configuration |
| Parameter | Type | Required | Description |
|---|---|---|---|
| provider | string | Yes | Provider name |
| configuration | object | Yes | Provider-specific configuration |
| isMultimodal | boolean | No | Whether model supports multimodal input (default: false) |
| isDefault | boolean | No | Whether this should be the default model (default: false) |
DELETE /ai-models/providers/{modelType}/{modelKey} - Delete AI Model Provider
DELETE /ai-models/providers/{modelType}/{modelKey} - Delete AI Model Provider
- Request
- Response
DELETE /api/v1/configurationManager/ai-models/providers/{modelType}/{modelKey}Path Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| modelType | string | Yes | One of: llm, embedding, ocr, slm, reasoning, multiModal |
| modelKey | string | Yes | Unique key for the model configuration |
PUT /ai-models/default/{modelType}/{modelKey} - Update Default AI Model
PUT /ai-models/default/{modelType}/{modelKey} - Update Default AI Model
- Request
- Response
PUT /api/v1/configurationManager/ai-models/default/{modelType}/{modelKey}Path Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| modelType | string | Yes | One of: llm, embedding, ocr, slm, reasoning, multiModal |
| modelKey | string | Yes | Unique key for the model configuration |
Connector Configuration
Connector Configuration
Google Workspace Configuration
Google Workspace Configuration
Google Workspace OAuth Configuration
Google Workspace OAuth Configuration
POST /connectors/googleWorkspaceOauthConfig - Set Google Workspace OAuth Config
POST /connectors/googleWorkspaceOauthConfig - Set Google Workspace OAuth Config
- Request
- Response
POST /api/v1/configurationManager/connectors/googleWorkspaceOauthConfigRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string | Yes | Google client ID |
| clientSecret | string | Yes | Google client secret |
| enableRealTimeUpdates | boolean/string | No | Enable real-time updates |
| topicName | string | No | Pub/Sub topic name (required if enableRealTimeUpdates is true) |
GET /connectors/googleWorkspaceOauthConfig - Get Google Workspace OAuth Config
GET /connectors/googleWorkspaceOauthConfig - Get Google Workspace OAuth Config
- Request
- Response
GET /api/v1/configurationManager/connectors/googleWorkspaceOauthConfigGoogle Workspace Credentials
Google Workspace Credentials
POST /connectors/googleWorkspaceCredentials - Set Google Workspace Credentials
POST /connectors/googleWorkspaceCredentials - Set Google Workspace Credentials
- Request
- Response
POST /api/v1/configurationManager/connectors/googleWorkspaceCredentialsContent-Type: multipart/form-dataRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| googleWorkspaceCredentials | file | No | JSON file with credentials (for business accounts) |
| userType | string | No | ”individual” or “business” |
| fileChanged | boolean | No | Whether the file was changed (for business accounts) |
| adminEmail | string | Conditional | Required for business accounts |
| enableRealTimeUpdates | boolean/string | No | Enable real-time updates |
| topicName | string | No | Pub/Sub topic name (required if enableRealTimeUpdates is true) |
GET /connectors/googleWorkspaceCredentials - Get Google Workspace Credentials
GET /connectors/googleWorkspaceCredentials - Get Google Workspace Credentials
- Request
- Response
GET /api/v1/configurationManager/connectors/googleWorkspaceCredentialsAtlassian Configuration
Atlassian Configuration
POST /connectors/atlassian/config - Set Atlassian Config
POST /connectors/atlassian/config - Set Atlassian Config
- Request
- Response
POST /api/v1/configurationManager/connectors/atlassian/configRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string | Yes | Atlassian client ID |
| clientSecret | string | Yes | Atlassian client secret |
GET /connectors/atlassian/config - Get Atlassian Config
GET /connectors/atlassian/config - Get Atlassian Config
- Request
- Response
GET /api/v1/configurationManager/connectors/atlassian/configOneDrive Configuration
OneDrive Configuration
POST /connectors/onedrive/config - Set OneDrive Config
POST /connectors/onedrive/config - Set OneDrive Config
- Request
- Response
POST /api/v1/configurationManager/connectors/onedrive/configRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string | Yes | Microsoft client ID |
| clientSecret | string | Yes | Microsoft client secret |
| tenantId | string | Yes | Microsoft tenant ID |
| hasAdminConsent | boolean | No | Whether admin consent has been granted |
GET /connectors/onedrive/config - Get OneDrive Config
GET /connectors/onedrive/config - Get OneDrive Config
- Request
- Response
GET /api/v1/configurationManager/connectors/onedrive/configSharePoint Configuration
SharePoint Configuration
Public URL Configuration
Public URL Configuration
Frontend URL Configuration
Frontend URL Configuration
POST /frontendPublicUrl - Set Frontend URL
POST /frontendPublicUrl - Set Frontend URL
- Request
- Response
POST /api/v1/configurationManager/frontendPublicUrlRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Public URL for frontend service |
GET /frontendPublicUrl - Get Frontend URL
GET /frontendPublicUrl - Get Frontend URL
- Request
- Response
GET /api/v1/configurationManager/frontendPublicUrlConnector URL Configuration
Connector URL Configuration
POST /connectorPublicUrl - Set Connector URL
POST /connectorPublicUrl - Set Connector URL
- Request
- Response
POST /api/v1/configurationManager/connectorPublicUrlRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Public URL for connector service |
GET /connectorPublicUrl - Get Connector URL
GET /connectorPublicUrl - Get Connector URL
- Request
- Response
GET /api/v1/configurationManager/connectorPublicUrlMetrics Collection Configuration
Metrics Collection Configuration
PUT /metricsCollection/toggle - Toggle Metrics Collection
PUT /metricsCollection/toggle - Toggle Metrics Collection
- Request
- Response
PUT /api/v1/configurationManager/metricsCollection/toggleRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| enableMetricCollection | boolean | Yes | Enable or disable metrics collection |
GET /metricsCollection - Get Metrics Collection Config
GET /metricsCollection - Get Metrics Collection Config
- Request
- Response
GET /api/v1/configurationManager/metricsCollectionPATCH /metricsCollection/pushInterval - Set Push Interval
PATCH /metricsCollection/pushInterval - Set Push Interval
- Request
- Response
PATCH /api/v1/configurationManager/metricsCollection/pushIntervalRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| pushIntervalMs | number | Yes | Push interval in milliseconds |
PATCH /metricsCollection/serverUrl - Set Remote Server
PATCH /metricsCollection/serverUrl - Set Remote Server
- Request
- Response
PATCH /api/v1/configurationManager/metricsCollection/serverUrlRequest Body Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
| serverUrl | string | Yes | Remote metrics server URL |
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
- Health Checks: Automatic validation of configurations before storage
Event-Driven Architecture
The Configuration Manager publishes events when critical configurations change:- LLM Configured Event: When AI models are configured or updated
- Connector Public URL Changed Event: When connector URLs are updated
- Gmail Updates Enabled/Disabled Event: When Gmail real-time updates are toggled
Health Checks
The service includes built-in health checks for various configurations that are automatically performed before saving:- Kafka Health Check: Verifies Kafka broker connectivity and validates broker URLs
- Redis Health Check: Tests Redis connection with timeout and retry logic
- Qdrant Health Check: Ensures Qdrant vector database is accessible via HTTP
- MongoDB Health Check: Validates MongoDB connection using ping command
- ArangoDB Health Check: Confirms ArangoDB connection and authentication
- AI Models Health Check: Validates AI model configurations with provider APIs
Schema Definitions
- Authentication Config Schema
- Storage Config Schema
- Database Config Schema
- AI Models Config Schema
- Connector Config Schema
- Other Config Schemas













