Skip to content

An adapter providing plugin parameter validators, using backports where necessary.

License

Notifications You must be signed in to change notification settings

logstash-plugins/logstash-mixin-validator_support

Repository files navigation

Validator Support Mixin

This gem provides back-ports of new validators that have been added to Logstash core. By using this support adapter, plugin developers can use newly-introduced validators without constraining the versions of Logstash on which their plugin can run.

When a plugin using this adapter runs on a version of Logstash that does not provide the named validator, the back-ported validator provided by this adapter is used instead.

Usage

  1. Add this gem as a runtime dependency of your plugin. To avoid conflicts with other plugins, you should always use the pessimistic operator ~> to match the minimum 1.x that provides the back-ports you intend to use:

    Gem::Specification.new do |s|
      # ...
    
      s.add_runtime_dependency 'logstash-mixin-validator_support', '~>1.0'
    end
  2. In your plugin code, require this library and extend one or more of the provided validators into your plugin. For example, to use the :field_reference validator introduced in Logstash 7.11:

    require 'logstash/plugin_mixins/validator_support/field_reference_validation_adapter'
    
    class LogStash::Inputs::Foo < Logstash::Inputs::Base
      extend LogStash::PluginMixins::ValidatorSupport::FieldReferenceValidationAdapter
    
      # ...
    end
  3. Use the validator as normal when defining config options; your plugin does not need to know whether the validator was provided by Logstash core or by this gem.

      config :target, :validate => :field_reference

Development

This gem:

  • MUST remain API-stable at 1.x
  • MUST NOT introduce additional runtime dependencies

When developing back-ports, sometimes it may not be possible to provide a verbatim validation. In these cases, developers should err on the side of the back-port accepting input that the core implementation may consider invalid.

Each time a new validator is added, the runtime dependency of this library on Logstash core should be updated to require a minimium of the OLDEST supported release. This allows plugins using this adapter to supply patch-level fixes to any supported Logstash version without maintaining multiple branches.

About

An adapter providing plugin parameter validators, using backports where necessary.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages