Module: LlmCostTracker::Dashboard::Masking
- Defined in:
- app/services/llm_cost_tracker/dashboard/masking.rb
Constant Summary collapse
- SENSITIVE_KEYS =
%w[provider_api_key_id provider_workspace_id provider_project_id].freeze
- MASK_TAIL_LENGTH =
4
Class Method Summary collapse
Class Method Details
.mask_hash(hash) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/services/llm_cost_tracker/dashboard/masking.rb', line 17 def self.mask_hash(hash) return hash unless hash.is_a?(Hash) hash.each_with_object({}) do |(key, value), masked| masked[key] = case value when Hash then mask_hash(value) when Array then value.map { |entry| entry.is_a?(Hash) ? mask_hash(entry) : entry } else mask_value(key, value) end end end |
.mask_value(key, value) ⇒ Object
9 10 11 12 13 14 15 |
# File 'app/services/llm_cost_tracker/dashboard/masking.rb', line 9 def self.mask_value(key, value) string = value.to_s return string unless SENSITIVE_KEYS.include?(key.to_s) return string if string.length <= MASK_TAIL_LENGTH "***#{string[-MASK_TAIL_LENGTH, MASK_TAIL_LENGTH]}" end |