Skip to content

Commit 58bd94c

Browse files
Fix create_default_sanitizer to only collect #-prefixed secret values
Replaces extract_values() with _collect_hash_values() so that non-sensitive metadata fields (oauthVersion, id, created, etc.) are skipped. Previously, short values like "2.0" were added to sensitive_values, causing URL path corruption in cassettes (e.g. api.xro/2.0 → api.xro/REDACTED). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent c0e08ea commit 58bd94c

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

src/keboola/vcr/sanitizers.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -789,17 +789,21 @@ def create_default_sanitizer(secrets: dict[str, Any]) -> DefaultSanitizer:
789789
"""
790790
Create a default sanitizer from secrets.
791791
792-
Extracts all string values from the secrets dict and returns a
793-
DefaultSanitizer that handles OAuth bodies, JSON responses, headers,
794-
and URL parameters automatically.
792+
Collects only values under #-prefixed keys (Keboola's encrypted-field
793+
convention) and returns a DefaultSanitizer that handles OAuth bodies,
794+
JSON responses, headers, and URL parameters automatically.
795+
796+
Non-sensitive metadata fields (oauthVersion, id, created, etc.) are
797+
intentionally skipped to avoid corrupting URL paths in cassettes.
795798
796799
Args:
797800
secrets: Dictionary of secret values to redact
798801
799802
Returns:
800803
A DefaultSanitizer with extracted secret values
801804
"""
802-
secret_values = extract_values(secrets, [])
805+
secret_values: list[str] = []
806+
_collect_hash_values(secrets, secret_values)
803807
return DefaultSanitizer(sensitive_values=secret_values)
804808

805809

0 commit comments

Comments
 (0)