Skip to content

Server Configuration Viewer Page #313

@ElioNeto

Description

@ElioNeto

Server Configuration Viewer Page

Create an Angular page for viewing and editing the server configuration using the existing LsmConfig infrastructure in src/infra/config.rs.

Backend Endpoints Needed

GET    /admin/config            — Current server configuration (read-only or full)
PUT    /admin/config            — Update configuration (hot-reload where supported)
GET    /admin/config/schema     — JSON Schema describing valid config structure

UI Requirements

Configuration Display

  • Categorized Sections: Core, Storage, Compaction, Replication, Security, etc.
  • Card-based Layout: Each config section as a collapsible card
  • Read-only View: Display current values with formatting
  • Edit Mode: Toggle to enable editing of hot-reloadable values

Configuration Sections

  • Core: dir_path, memtable_max_size, etc.
  • Storage: block_size, block_cache_size_mb, encryption, compression
  • Compaction: strategy, thresholds, max_sstables
  • Replication: role, endpoints, sync_interval
  • Security: auth_enabled, encryption_key_path
  • Logging: log_level, log_format

Edit Mode

  • Inline Editing: Editable fields for supported values
  • Validation: Real-time validation against schema
  • Diff View: Show what changed before saving
  • Save/Revert: Save changes or revert to original
  • Hot Reload Notice: Indicate which changes require restart

Configuration Profile System

  • Profile Selector: Quick switch between presets (development, production, high-write, low-memory)
  • Custom Profile: Save current settings as a named profile
  • Profile Import/Export: Download/upload profiles as JSON

Acceptance Criteria

  • All configuration sections displayed correctly
  • Values are formatted appropriately (bytes, durations, etc.)
  • Edit mode allows changing supported values
  • Validation shows errors for invalid values
  • Profile switching works
  • Error states for API failures
  • Responsive layout

Parent Epic

#290

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions