Class: RosettAi::Config::MaskingSecretResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/rosett_ai/config/masking_secret_resolver.rb

Overview

Drop-in replacement for SecretResolver that masks all secret values instead of resolving them. Used by config show to display compiled JSON without exposing sensitive data.

Follows the same interface as SecretResolver (resolve, resolve_all) and uses the same deterministic string parsing — no regex.

Constant Summary collapse

MASKED_VALUE =
'***'

Instance Method Summary collapse

Instance Method Details

#resolve(value) ⇒ Object



17
18
19
20
21
22
# File 'lib/rosett_ai/config/masking_secret_resolver.rb', line 17

def resolve(value)
  return value unless value.is_a?(String)
  return value unless secret_reference?(value)

  MASKED_VALUE
end

#resolve_all(obj) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/rosett_ai/config/masking_secret_resolver.rb', line 24

def resolve_all(obj)
  case obj
  when Hash  then obj.transform_values { |v| resolve_all(v) }
  when Array then obj.map { |v| resolve_all(v) }
  when String then resolve(obj)
  else obj
  end
end