feat(api): add log_request_body_enabled feature flag support

Add runtime feature flag to control whether request bodies are stored
in logs. The Handler now accepts a Redis client to check the
log_request_body_enabled feature flag before persisting log records.

- Add logRequestBodyFeatureKey constant for feature flag
- Inject Redis client into Handler for feature flag lookups
- Strip request body from log records when feature is disabled
- Update tests to pass Redis client to NewHandler
This commit is contained in:
zenfun
2025-12-21 13:26:16 +08:00
parent 1089f9490e
commit 00192f937e
5 changed files with 31 additions and 9 deletions

View File

@@ -14,10 +14,11 @@ import (
const featuresKey = "meta:features"
const (
logRetentionFeatureKey = "log_retention_days"
logMaxRecordsFeatureKey = "log_max_records"
logRetentionRedisKey = "meta:log:retention_days"
logMaxRecordsRedisKey = "meta:log:max_records"
logRetentionFeatureKey = "log_retention_days"
logMaxRecordsFeatureKey = "log_max_records"
logRequestBodyFeatureKey = "log_request_body_enabled"
logRetentionRedisKey = "meta:log:retention_days"
logMaxRecordsRedisKey = "meta:log:max_records"
)
// FeatureHandler manages lightweight feature flags stored in Redis for DP/CP runtime toggles.