Class: RosettAi::Policy::Validator
- Inherits:
-
Object
- Object
- RosettAi::Policy::Validator
- Defined in:
- lib/rosett_ai/policy/validator.rb
Overview
Validates policy files against the policy JSON Schema.
Sanitizes all string values (ANSI/control char stripping) before schema validation to prevent injection via policy definitions.
Constant Summary collapse
- SCHEMA_PATH =
File.('../../../conf/schemas/policy_schema.json', __dir__)
Instance Method Summary collapse
-
#valid?(data) ⇒ Boolean
True if data passes schema validation.
-
#validate(data) ⇒ Array<String>
Validation errors (empty if valid).
Instance Method Details
#valid?(data) ⇒ Boolean
Returns true if data passes schema validation.
30 31 32 |
# File 'lib/rosett_ai/policy/validator.rb', line 30 def valid?(data) validate(data).empty? end |
#validate(data) ⇒ Array<String>
Returns validation errors (empty if valid).
21 22 23 24 25 26 27 |
# File 'lib/rosett_ai/policy/validator.rb', line 21 def validate(data) sanitized = RosettAi::TextSanitizer.sanitize_for_display(data) schema = JSONSchemer.schema(Pathname.new(SCHEMA_PATH)) schema.validate(sanitized).map do |error| "#{error['data_pointer']}: #{error['type']}" end end |