Module: Olyx::Guardrails

Defined in:
lib/olyx/guardrails.rb,
lib/olyx/guardrails/rails.rb,
lib/olyx/guardrails/errors.rb,
lib/olyx/guardrails/policy.rb,
lib/olyx/guardrails/railtie.rb,
lib/olyx/guardrails/version.rb,
lib/olyx/guardrails/notifier.rb,
lib/olyx/guardrails/redactor.rb,
lib/olyx/guardrails/check_set.rb,
lib/olyx/guardrails/rails/job.rb,
lib/olyx/guardrails/enum_value.rb,
lib/olyx/guardrails/validation.rb,
lib/olyx/guardrails/policy/name.rb,
lib/olyx/guardrails/policy_rule.rb,
lib/olyx/guardrails/rails/timer.rb,
lib/olyx/guardrails/risk_scorer.rb,
lib/olyx/guardrails/check_runner.rb,
lib/olyx/guardrails/llm_analysis.rb,
lib/olyx/guardrails/pii/hash_key.rb,
lib/olyx/guardrails/pii_scrubber.rb,
lib/olyx/guardrails/rails/upload.rb,
lib/olyx/guardrails/risk/weights.rb,
lib/olyx/guardrails/rails/graphql.rb,
lib/olyx/guardrails/rails/ingress.rb,
lib/olyx/guardrails/rails/runtime.rb,
lib/olyx/guardrails/check_analyzer.rb,
lib/olyx/guardrails/check_pipeline.rb,
lib/olyx/guardrails/message_source.rb,
lib/olyx/guardrails/pii_validators.rb,
lib/olyx/guardrails/policy_scanner.rb,
lib/olyx/guardrails/rails/enforcer.rb,
lib/olyx/guardrails/risk/llm_score.rb,
lib/olyx/guardrails/secret_scanner.rb,
lib/olyx/guardrails/message_content.rb,
lib/olyx/guardrails/secrets/blocked.rb,
lib/olyx/guardrails/text/normalizer.rb,
lib/olyx/guardrails/checks/pii_check.rb,
lib/olyx/guardrails/notification/key.rb,
lib/olyx/guardrails/rails/controller.rb,
lib/olyx/guardrails/rails/queue_name.rb,
lib/olyx/guardrails/secrets/redactor.rb,
lib/olyx/guardrails/text/url_decoder.rb,
lib/olyx/guardrails/violation_labels.rb,
lib/olyx/guardrails/message_check_set.rb,
lib/olyx/guardrails/pii/luhn_checksum.rb,
lib/olyx/guardrails/pii/sin_validator.rb,
lib/olyx/guardrails/pii/ssn_validator.rb,
lib/olyx/guardrails/pii/text_scrubber.rb,
lib/olyx/guardrails/rails/policy_file.rb,
lib/olyx/guardrails/rails/policy_yaml.rb,
lib/olyx/guardrails/text/html_decoder.rb,
lib/olyx/guardrails/injection_detector.rb,
lib/olyx/guardrails/injection_patterns.rb,
lib/olyx/guardrails/llm_finding_merger.rb,
lib/olyx/guardrails/pii/block_scrubber.rb,
lib/olyx/guardrails/pii/date_validator.rb,
lib/olyx/guardrails/pii/iban_remainder.rb,
lib/olyx/guardrails/pii/iban_validator.rb,
lib/olyx/guardrails/pii/ipv4_validator.rb,
lib/olyx/guardrails/pii/ipv6_validator.rb,
lib/olyx/guardrails/pii/luhn_validator.rb,
lib/olyx/guardrails/policy/scan_result.rb,
lib/olyx/guardrails/policy_rule/values.rb,
lib/olyx/guardrails/rails/action_cable.rb,
lib/olyx/guardrails/rails/job_argument.rb,
lib/olyx/guardrails/risk/check_weights.rb,
lib/olyx/guardrails/secrets/source_set.rb,
lib/olyx/guardrails/checks/length_check.rb,
lib/olyx/guardrails/checks/policy_check.rb,
lib/olyx/guardrails/checks/secret_check.rb,
lib/olyx/guardrails/llm_context_builder.rb,
lib/olyx/guardrails/llm_failure_handler.rb,
lib/olyx/guardrails/pii/pattern_catalog.rb,
lib/olyx/guardrails/pii/year_first_date.rb,
lib/olyx/guardrails/policy/rule_matcher.rb,
lib/olyx/guardrails/rails/configuration.rb,
lib/olyx/guardrails/rails/job_reference.rb,
lib/olyx/guardrails/text/base64_decoder.rb,
lib/olyx/guardrails/text/mapped_builder.rb,
lib/olyx/guardrails/check_result_builder.rb,
lib/olyx/guardrails/llm/result_sanitizer.rb,
lib/olyx/guardrails/message_check_runner.rb,
lib/olyx/guardrails/notification/handler.rb,
lib/olyx/guardrails/notification/preview.rb,
lib/olyx/guardrails/pii/content_scrubber.rb,
lib/olyx/guardrails/pii/message_scrubber.rb,
lib/olyx/guardrails/policy/configuration.rb,
lib/olyx/guardrails/policy/finding_order.rb,
lib/olyx/guardrails/rails/result_summary.rb,
lib/olyx/guardrails/checks/skipped_checks.rb,
lib/olyx/guardrails/llm/analysis_pipeline.rb,
lib/olyx/guardrails/llm/boolean_validator.rb,
lib/olyx/guardrails/notification/metadata.rb,
lib/olyx/guardrails/notification/scrubber.rb,
lib/olyx/guardrails/policy_aware_redactor.rb,
lib/olyx/guardrails/rails/check_telemetry.rb,
lib/olyx/guardrails/rails/instrumentation.rb,
lib/olyx/guardrails/rails/policy_document.rb,
lib/olyx/guardrails/secrets/finding_order.rb,
lib/olyx/guardrails/checks/injection_check.rb,
lib/olyx/guardrails/notification_sanitizer.rb,
lib/olyx/guardrails/notifier_configuration.rb,
lib/olyx/guardrails/policy/match_collector.rb,
lib/olyx/guardrails/policy/pattern_matcher.rb,
lib/olyx/guardrails/policy/redaction_spans.rb,
lib/olyx/guardrails/policy/rule_collection.rb,
lib/olyx/guardrails/policy/rule_normalizer.rb,
lib/olyx/guardrails/policy_rule/name_value.rb,
lib/olyx/guardrails/rails/decision_service.rb,
lib/olyx/guardrails/secrets/catalog_source.rb,
lib/olyx/guardrails/checks/injection_result.rb,
lib/olyx/guardrails/llm/analysis_normalizer.rb,
lib/olyx/guardrails/multi_turn_pair_scanner.rb,
lib/olyx/guardrails/notification/base_event.rb,
lib/olyx/guardrails/policy/redaction_result.rb,
lib/olyx/guardrails/policy_rule/text_values.rb,
lib/olyx/guardrails/rails/constant_resolver.rb,
lib/olyx/guardrails/rails/filter_parameters.rb,
lib/olyx/guardrails/rails/policy_file_error.rb,
lib/olyx/guardrails/rails/policy_rule_names.rb,
lib/olyx/guardrails/rails/redaction_payload.rb,
lib/olyx/guardrails/rails/redaction_service.rb,
lib/olyx/guardrails/redaction/public_result.rb,
lib/olyx/guardrails/secrets/pattern_catalog.rb,
lib/olyx/guardrails/secrets/redaction_spans.rb,
lib/olyx/guardrails/text/detection_variants.rb,
lib/olyx/guardrails/multi_turn_variant_pairs.rb,
lib/olyx/guardrails/pii/named_date_validator.rb,
lib/olyx/guardrails/policy/finding_presenter.rb,
lib/olyx/guardrails/rails/active_job_handler.rb,
lib/olyx/guardrails/redaction/content_result.rb,
lib/olyx/guardrails/risk/deterministic_score.rb,
lib/olyx/guardrails/secret_finding_collector.rb,
lib/olyx/guardrails/secrets/network_patterns.rb,
lib/olyx/guardrails/notification/deep_freezer.rb,
lib/olyx/guardrails/policy/configuration_hash.rb,
lib/olyx/guardrails/policy_rule/configuration.rb,
lib/olyx/guardrails/policy_rule/term_compiler.rb,
lib/olyx/guardrails/rails/controller_metadata.rb,
lib/olyx/guardrails/redaction/input_validator.rb,
lib/olyx/guardrails/secrets/finding_presenter.rb,
lib/olyx/guardrails/text/mapped_normalization.rb,
lib/olyx/guardrails/notification_event_builder.rb,
lib/olyx/guardrails/pii/ambiguous_numeric_date.rb,
lib/olyx/guardrails/pii/numeric_date_validator.rb,
lib/olyx/guardrails/rails/configuration_values.rb,
lib/olyx/guardrails/rails/evaluation_lifecycle.rb,
lib/olyx/guardrails/notification/notifier_setup.rb,
lib/olyx/guardrails/policy_rule/regexp_compiler.rb,
lib/olyx/guardrails/redaction/unrestricted_text.rb,
lib/olyx/guardrails/text/unicode_escape_decoder.rb,
lib/olyx/guardrails/policy/unmatched_transformer.rb,
lib/olyx/guardrails/policy_rule/pattern_compiler.rb,
lib/olyx/guardrails/rails/configuration_registry.rb,
lib/olyx/guardrails/multi_turn_injection_detector.rb,
lib/olyx/guardrails/notification/violation_labels.rb,
lib/olyx/guardrails/policy_rule/description_value.rb,
lib/olyx/guardrails/policy_rule/replacement_value.rb,
lib/olyx/guardrails/rails/configuration_finalizer.rb,
lib/olyx/guardrails/rails/notification_dispatcher.rb,
lib/olyx/guardrails/secrets/custom_pattern_source.rb,
lib/olyx/guardrails/secrets/normalized_source_set.rb,
lib/olyx/guardrails/secrets/regexp_finding_source.rb,
lib/olyx/guardrails/supplemental_violation_labels.rb,
lib/olyx/guardrails/checks/message_injection_check.rb,
lib/olyx/guardrails/rails/instrumentation_payloads.rb,
lib/olyx/guardrails/secrets/confidentiality_source.rb,
lib/olyx/guardrails/notification/handler_collection.rb,
lib/olyx/guardrails/rails/instrumentation_publisher.rb,
lib/olyx/guardrails/secrets/custom_pattern_compiler.rb,
lib/olyx/guardrails/notification/delivery_dispatcher.rb,
lib/olyx/guardrails/policy/secret_pattern_collection.rb,
lib/olyx/guardrails/policy/unmatched_segment_builder.rb,
lib/olyx/guardrails/secrets/internal_endpoint_source.rb,
lib/olyx/guardrails/policy/normalized_pattern_matcher.rb,
lib/olyx/guardrails/secrets/cloud_credential_patterns.rb,
lib/olyx/guardrails/secrets/private_network_validator.rb,
lib/olyx/guardrails/single_message_injection_detector.rb,
lib/olyx/guardrails/secrets/generic_credential_patterns.rb,
lib/olyx/guardrails/notification/handler_collection_validator.rb

Overview

Policy-driven safety checks and redaction for Ruby applications.

Defined Under Namespace

Modules: CheckAnalyzer, CheckPipeline, CheckResultBuilder, Checks, InjectionPatterns, Llm, LlmContextBuilder, LlmFailureHandler, LlmFindingMerger, MessageCheckSet, MessageContent, MessageSource, MultiTurnInjectionDetector, MultiTurnPairScanner, MultiTurnVariantPairs, Notification, Pii, PiiValidators, PolicyComponents, PolicyRuleComponents, Rails, Redaction, Risk, Secrets, SingleMessageInjectionDetector, SupplementalViolationLabels, Text, Validation, ViolationLabels Classes: Blocked, CheckRunner, CheckSet, ConfigurationError, EnumValue, InjectionDetector, LlmAnalysis, LlmProviderError, MessageCheckRunner, Notifier, PiiScrubber, Policy, PolicyRule, Railtie, Redactor, RiskScorer, SecretFindingCollector, SecretScanner

Constant Summary collapse

INJECTION_RISK_WEIGHT =

:nodoc:

Risk::Weights::FINDINGS.fetch(:injection).last
SECRET_RISK_WEIGHT =

:nodoc:

Risk::Weights::FINDINGS.fetch(:secret).last
PII_RISK_WEIGHT =

:nodoc:

Risk::Weights::FINDINGS.fetch(:pii).last
POLICY_RISK_WEIGHT =

:nodoc:

Risk::Weights::FINDINGS.fetch(:policy).last
BLOCKED_RISK_WEIGHT =

:nodoc:

Risk::Weights::BLOCKED
VERSION =

The current gem version, following semantic versioning.

'1.1.1'

Class Method Summary collapse

Class Method Details

.check(input, policy: Policy.default, llm_provider: nil) ⇒ Object Also known as: check_output

:call-seq:

check(input, policy: Policy.default, llm_provider: nil) -> Hash

Evaluates one completed input and returns an allow/block decision.

input is converted with to_s. policy supplies length limits, blocking behavior, secret patterns, and restricted-content rules. llm_provider, when present, receives the converted text and a bounded context Hash. Provider findings can add violations but cannot remove deterministic findings.

An oversized input returns a rejected decision without running content scanners or the provider. Invalid arguments raise ArgumentError. A provider failure raises LlmProviderError only when the policy uses llm_failure_mode: :raise.

See docs/API.md#decision-result for the returned Hash contract.



61
62
63
# File 'lib/olyx/guardrails.rb', line 61

def self.check(input, policy: Policy.default, llm_provider: nil)
  CheckRunner.call(input, policy: policy, llm_provider: llm_provider)
end

.check_messages(messages, policy: Policy.default, llm_provider: nil) ⇒ Object

:call-seq:

check_messages(messages, policy: Policy.default, llm_provider: nil) -> Hash

Evaluates structured chat messages and returns an allow/block decision.

messages must be an Array of Hashes with String or Symbol keys. Supported content is either a String or an Array of text blocks. In addition to ordinary checks, adjacent user-to-assistant turns are scanned for split prompt-injection patterns.

policy and llm_provider behave as they do for check. Invalid message structure raises ArgumentError.



77
78
79
# File 'lib/olyx/guardrails.rb', line 77

def self.check_messages(messages, policy: Policy.default, llm_provider: nil)
  MessageCheckRunner.call(messages, policy: policy, llm_provider: llm_provider)
end

.redact(input, policy: Policy.default) ⇒ Object Also known as: redact_output

:call-seq:

redact(input, policy: Policy.default) -> Hash

Redacts recognized PII, secrets, and restricted-policy matches.

input is converted with to_s. policy provides the input limit, custom secret patterns, and restricted-content replacements. This method transforms content and does not make an allow/block decision.

Raises ArgumentError when policy is invalid or the converted input exceeds the policy limit. See docs/API.md#redaction-result for the returned Hash contract.



93
94
95
# File 'lib/olyx/guardrails.rb', line 93

def self.redact(input, policy: Policy.default)
  Redactor.call(input, policy: policy)
end