Merge monitoring_service training metrics into trading_service system health monitoring.proto. All 11 proto files now in one canonical location. Merged monitoring.proto has 13 RPCs (10 system + 3 training) with all message types from both source protos preserved. Added cpu_percent, memory_used_mb, memory_total_mb fields to GetLiveTrainingMetricsResponse. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
326 lines
9.3 KiB
Protocol Buffer
326 lines
9.3 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package config;
|
|
|
|
// Configuration Service provides centralized, PostgreSQL-based configuration management with hot-reload capabilities.
|
|
// This service supports real-time configuration updates, validation, history tracking, and import/export functionality
|
|
// for all trading system components with comprehensive audit trails and rollback capabilities.
|
|
service ConfigService {
|
|
// Configuration CRUD Operations
|
|
// Get configuration settings by category, key, or environment
|
|
rpc GetConfiguration(GetConfigurationRequest) returns (GetConfigurationResponse);
|
|
|
|
// Update configuration value with validation and audit logging
|
|
rpc UpdateConfiguration(UpdateConfigurationRequest) returns (UpdateConfigurationResponse);
|
|
|
|
// Delete configuration setting with audit trail
|
|
rpc DeleteConfiguration(DeleteConfigurationRequest) returns (DeleteConfigurationResponse);
|
|
|
|
// List available configuration categories
|
|
rpc ListCategories(ListCategoriesRequest) returns (ListCategoriesResponse);
|
|
|
|
// Real-time Configuration Streaming
|
|
// Stream real-time configuration changes with hot-reload support
|
|
rpc StreamConfigChanges(StreamConfigChangesRequest) returns (stream ConfigChangeEvent);
|
|
|
|
// Configuration Management Operations
|
|
// Validate configuration value against schema and rules
|
|
rpc ValidateConfiguration(ValidateConfigurationRequest) returns (ValidateConfigurationResponse);
|
|
|
|
// Get configuration change history with audit details
|
|
rpc GetConfigurationHistory(GetConfigurationHistoryRequest) returns (GetConfigurationHistoryResponse);
|
|
|
|
// Rollback configuration to previous value
|
|
rpc RollbackConfiguration(RollbackConfigurationRequest) returns (RollbackConfigurationResponse);
|
|
|
|
// Export configuration data in various formats
|
|
rpc ExportConfiguration(ExportConfigurationRequest) returns (ExportConfigurationResponse);
|
|
|
|
// Import configuration data with validation
|
|
rpc ImportConfiguration(ImportConfigurationRequest) returns (ImportConfigurationResponse);
|
|
|
|
// Schema Management Operations
|
|
// Get configuration schema definitions
|
|
rpc GetConfigSchema(GetConfigSchemaRequest) returns (GetConfigSchemaResponse);
|
|
|
|
// Update configuration schema with validation rules
|
|
rpc UpdateConfigSchema(UpdateConfigSchemaRequest) returns (UpdateConfigSchemaResponse);
|
|
}
|
|
|
|
// Configuration CRUD Messages
|
|
message GetConfigurationRequest {
|
|
optional string category = 1;
|
|
optional string key = 2;
|
|
optional string environment = 3;
|
|
}
|
|
|
|
message GetConfigurationResponse {
|
|
repeated ConfigurationSetting settings = 1;
|
|
}
|
|
|
|
message UpdateConfigurationRequest {
|
|
string category = 1;
|
|
string key = 2;
|
|
string value = 3;
|
|
string changed_by = 4;
|
|
optional string change_reason = 5;
|
|
optional string environment = 6;
|
|
}
|
|
|
|
message UpdateConfigurationResponse {
|
|
bool success = 1;
|
|
string message = 2;
|
|
optional ValidationResult validation_result = 3;
|
|
int64 timestamp = 4;
|
|
}
|
|
|
|
message DeleteConfigurationRequest {
|
|
string category = 1;
|
|
string key = 2;
|
|
string deleted_by = 3;
|
|
optional string delete_reason = 4;
|
|
}
|
|
|
|
message DeleteConfigurationResponse {
|
|
bool success = 1;
|
|
string message = 2;
|
|
int64 timestamp = 3;
|
|
}
|
|
|
|
message ListCategoriesRequest {
|
|
optional string parent_category = 1;
|
|
}
|
|
|
|
message ListCategoriesResponse {
|
|
repeated ConfigurationCategory categories = 1;
|
|
}
|
|
|
|
// Streaming Messages
|
|
message StreamConfigChangesRequest {
|
|
repeated string categories = 1;
|
|
repeated string keys = 2;
|
|
}
|
|
|
|
// Validation Messages
|
|
message ValidateConfigurationRequest {
|
|
string category = 1;
|
|
string key = 2;
|
|
string value = 3;
|
|
}
|
|
|
|
message ValidateConfigurationResponse {
|
|
bool is_valid = 1;
|
|
ValidationResult validation_result = 2;
|
|
}
|
|
|
|
// History Messages
|
|
message GetConfigurationHistoryRequest {
|
|
optional string category = 1;
|
|
optional string key = 2;
|
|
optional int64 start_time = 3;
|
|
optional int64 end_time = 4;
|
|
optional int32 limit = 5;
|
|
}
|
|
|
|
message GetConfigurationHistoryResponse {
|
|
repeated ConfigurationHistoryEntry history = 1;
|
|
}
|
|
|
|
message RollbackConfigurationRequest {
|
|
string category = 1;
|
|
string key = 2;
|
|
int64 rollback_to_timestamp = 3;
|
|
string rolled_back_by = 4;
|
|
optional string rollback_reason = 5;
|
|
}
|
|
|
|
message RollbackConfigurationResponse {
|
|
bool success = 1;
|
|
string message = 2;
|
|
ConfigurationSetting restored_setting = 3;
|
|
int64 timestamp = 4;
|
|
}
|
|
|
|
// Import/Export Messages
|
|
message ExportConfigurationRequest {
|
|
repeated string categories = 1;
|
|
optional string environment = 2;
|
|
ExportFormat format = 3;
|
|
}
|
|
|
|
message ExportConfigurationResponse {
|
|
string exported_data = 1;
|
|
ExportFormat format = 2;
|
|
int32 settings_count = 3;
|
|
int64 exported_at = 4;
|
|
}
|
|
|
|
message ImportConfigurationRequest {
|
|
string imported_data = 1;
|
|
ExportFormat format = 2;
|
|
string imported_by = 3;
|
|
bool dry_run = 4;
|
|
bool overwrite_existing = 5;
|
|
}
|
|
|
|
message ImportConfigurationResponse {
|
|
bool success = 1;
|
|
string message = 2;
|
|
repeated ImportResult import_results = 3;
|
|
int32 imported_count = 4;
|
|
int32 skipped_count = 5;
|
|
int32 error_count = 6;
|
|
}
|
|
|
|
// Schema Messages
|
|
message GetConfigSchemaRequest {
|
|
optional string category = 1;
|
|
}
|
|
|
|
message GetConfigSchemaResponse {
|
|
repeated ConfigurationSchema schemas = 1;
|
|
}
|
|
|
|
message UpdateConfigSchemaRequest {
|
|
string schema_name = 1;
|
|
string schema_definition = 2;
|
|
string updated_by = 3;
|
|
}
|
|
|
|
message UpdateConfigSchemaResponse {
|
|
bool success = 1;
|
|
string message = 2;
|
|
int64 timestamp = 3;
|
|
}
|
|
|
|
// Core Data Types
|
|
|
|
// Complete configuration setting with metadata and validation rules
|
|
message ConfigurationSetting {
|
|
int64 id = 1; // Unique setting identifier
|
|
string category = 2; // Configuration category (e.g., "trading.limits")
|
|
string key = 3; // Configuration key (e.g., "max_position_size")
|
|
string value = 4; // Current configuration value
|
|
ConfigDataType data_type = 5; // Data type (string, number, boolean, etc.)
|
|
bool hot_reload = 6; // Whether changes trigger hot-reload
|
|
string description = 7; // Human-readable description
|
|
optional string default_value = 8; // Default value if not set
|
|
bool required = 9; // Whether this setting is required
|
|
bool sensitive = 10; // Whether value contains sensitive data
|
|
optional string validation_rule = 11; // Validation rule expression
|
|
optional string environment_override = 12; // Environment-specific override
|
|
optional double min_value = 13; // Minimum numeric value
|
|
optional double max_value = 14; // Maximum numeric value
|
|
optional string enum_values = 15; // Allowed enum values (comma-separated)
|
|
repeated string depends_on = 16; // Dependencies on other settings
|
|
repeated string tags = 17; // Tags for categorization
|
|
int32 display_order = 18; // Display order in UI
|
|
int64 created_at = 19; // Creation timestamp
|
|
int64 modified_at = 20; // Last modification timestamp
|
|
}
|
|
|
|
message ConfigurationCategory {
|
|
int64 id = 1;
|
|
string name = 2;
|
|
string description = 3;
|
|
optional int64 parent_id = 4;
|
|
int32 display_order = 5;
|
|
optional string icon = 6;
|
|
int64 created_at = 7;
|
|
repeated ConfigurationCategory children = 8;
|
|
}
|
|
|
|
message ConfigurationHistoryEntry {
|
|
int64 id = 1;
|
|
int64 setting_id = 2;
|
|
optional string old_value = 3;
|
|
string new_value = 4;
|
|
optional string change_reason = 5;
|
|
string changed_by = 6;
|
|
int64 changed_at = 7;
|
|
string change_source = 8;
|
|
optional ValidationResult validation_result = 9;
|
|
optional int64 rollback_id = 10;
|
|
}
|
|
|
|
message ConfigurationSchema {
|
|
int64 id = 1;
|
|
string name = 2;
|
|
string schema_definition = 3;
|
|
string description = 4;
|
|
int64 created_at = 5;
|
|
}
|
|
|
|
message ValidationResult {
|
|
bool is_valid = 1;
|
|
repeated ValidationError errors = 2;
|
|
repeated ValidationWarning warnings = 3;
|
|
}
|
|
|
|
message ValidationError {
|
|
string field = 1;
|
|
string message = 2;
|
|
string error_code = 3;
|
|
}
|
|
|
|
message ValidationWarning {
|
|
string field = 1;
|
|
string message = 2;
|
|
string warning_code = 3;
|
|
}
|
|
|
|
message ImportResult {
|
|
string category = 1;
|
|
string key = 2;
|
|
ImportStatus status = 3;
|
|
optional string error_message = 4;
|
|
}
|
|
|
|
// Event Messages
|
|
message ConfigChangeEvent {
|
|
int64 setting_id = 1;
|
|
string category = 2;
|
|
string key = 3;
|
|
string old_value = 4;
|
|
string new_value = 5;
|
|
string changed_by = 6;
|
|
int64 timestamp = 7;
|
|
ConfigChangeType change_type = 8;
|
|
bool hot_reload = 9;
|
|
}
|
|
|
|
// Enums
|
|
|
|
// Data types for configuration values
|
|
enum ConfigDataType {
|
|
CONFIG_DATA_TYPE_UNSPECIFIED = 0; // Default/unknown type
|
|
CONFIG_DATA_TYPE_STRING = 1; // Text string value
|
|
CONFIG_DATA_TYPE_NUMBER = 2; // Numeric value (int or float)
|
|
CONFIG_DATA_TYPE_BOOLEAN = 3; // Boolean true/false value
|
|
CONFIG_DATA_TYPE_JSON = 4; // JSON object or array
|
|
CONFIG_DATA_TYPE_ENCRYPTED = 5; // Encrypted sensitive value
|
|
}
|
|
|
|
enum ExportFormat {
|
|
EXPORT_FORMAT_UNSPECIFIED = 0;
|
|
EXPORT_FORMAT_JSON = 1;
|
|
EXPORT_FORMAT_YAML = 2;
|
|
EXPORT_FORMAT_TOML = 3;
|
|
EXPORT_FORMAT_ENV = 4;
|
|
}
|
|
|
|
enum ImportStatus {
|
|
IMPORT_STATUS_UNSPECIFIED = 0;
|
|
IMPORT_STATUS_SUCCESS = 1;
|
|
IMPORT_STATUS_SKIPPED = 2;
|
|
IMPORT_STATUS_ERROR = 3;
|
|
IMPORT_STATUS_VALIDATION_FAILED = 4;
|
|
}
|
|
|
|
enum ConfigChangeType {
|
|
CONFIG_CHANGE_TYPE_UNSPECIFIED = 0;
|
|
CONFIG_CHANGE_TYPE_CREATED = 1;
|
|
CONFIG_CHANGE_TYPE_UPDATED = 2;
|
|
CONFIG_CHANGE_TYPE_DELETED = 3;
|
|
CONFIG_CHANGE_TYPE_ROLLBACK = 4;
|
|
} |