feat: Add metadata support to custom detectors #4625
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Feature Request: Add Metadata Support to Custom Detectors
Summary
Add support for a
metadatafield in custom detector configurations that automatically populates theExtraDatafield in detector results. This would allow users to attach custom key-value metadata directly in the YAML configuration without requiring code changes.Use Case
Currently, custom detectors can only set metadata programmatically in the code. Users should be able to define metadata directly in their custom detector YAML configuration files, which would then be automatically included in the
ExtraDatafield of all results from that detector.This would be useful for:
environment: production)team: security)severity: high)Proposed Implementation
1. Proto Definition Update
Add a
metadatafield to theCustomRegexmessage inproto/custom_detectors.proto:2. Code Implementation
Update
pkg/custom_detectors/custom_detectors.goto copy metadata from the detector configuration toExtraDatawhen creating results:Example Usage
YAML Configuration
Result
All results from this detector would automatically include the metadata in
ExtraData:{ "DetectorName": "my-api-key-detector", "ExtraData": { "name": "my-api-key-detector", "environment": "production", "team": "security", "severity": "high", "rotation_guide": "https://example.com/rotate-api-keys", "custom_field": "any value" } }