- Add conditional route registration based on feature toggles - AuthEnabled now controls authentication/user management endpoints - ClusteringEnabled controls member and Merkle tree endpoints - RevisionHistoryEnabled controls history endpoints - Feature toggles for RateLimitingEnabled and TamperLoggingEnabled were already implemented This completes issue #6 allowing flexible deployment scenarios by disabling unnecessary features and their associated endpoints. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1.7 KiB
1.7 KiB
Issue #6: Configuration Options to Disable Optional Functionalities
Status: ✅ COMPLETED
Author: MrKalzu
Created: 2025-09-12
Repository: #6
Description
Proposes adding configuration options to disable advanced features in the KVS (Key-Value Store) server to allow more flexible and lightweight deployment scenarios.
Suggested Disablement Options
- Authentication System - Disable JWT authentication entirely
- Tamper-Evident Logging - Disable cryptographic audit trails
- Clustering - Disable gossip protocol and distributed features
- Rate Limiting - Disable per-client rate limiting
- Revision History - Disable automatic versioning
Proposed Implementation
- Add boolean flags to the Config struct for each feature
- Modify server initialization and request handling to respect these flags
- Allow conditional compilation/execution of features based on configuration
Pros of Proposed Changes
- Reduce unnecessary overhead for simple deployments
- Simplify setup for different deployment needs
- Improve performance for specific use cases
- Lower resource consumption
Cons of Proposed Changes
- Potential security risks if features are disabled inappropriately
- Loss of advanced functionality like audit trails or data recovery
- Increased complexity in codebase with conditional feature logic
Already Implemented Features
- Backup System (configurable)
- Compression (configurable)
Implementation Notes
The issue suggests modifying relevant code sections to conditionally enable/disable these features based on configuration, similar to how backup and compression are currently handled.