Hi,

we had a discussion with Lukas about this feature
and came up with some modifications to the design.

I will explain the change in the typo detection mechanism.

The format in the schema/constraints file will be following.

[rule/domain_options]
validator = allowed_options
section = domain/.*
option = debug_level
option = id_provider
.
.
.

This rule uses validator 'allowed_options',
it is an internal validator. The validator
gets all the options specified in the
rule and also the config object that is
being checked. It then does 'something'
and succeeds or fails (returning message
and code).

The allowed_options validator will check
if the options in config file are allowed
(listed in the rule). It does not check the
value of the options.

There will be more internal validators
for example allowed_sections:

[rule/list_of_sections]
validator = allowed_sections
section = domain/.*
section = nss
section = pam
.
.
.


or value/type checking validators (these are just examples
actual validators may be named differently)

[rule/must_be_integer]
validator = integer_type
option = memcache_timeout
option = offline_timeout
.
.
.

[rule/memcache_timeout_range]
validator = integer_range
min = 10       <- can be left unspecified for no lower limit
max = 100000   <- can be left unspecified for no upper limit
option = memcache_timeout

Internally the validators will be implemented as C functions
that will take the options specified in the rule (that uses
this validator) and the config object and check whatever the
validator wants to check. Every validator can interpret the
options in different way. validator can succeed or fail. Libini
will provide several internal validators and the possibility
for users to write their own specific validators (external
validators).

To write more complicated checks we can add external validators
to SSSD and if they are made generic enough we can make
them available in libini as internal validators (for example
validator to check more complicated types such as csv lists).

I will update the design page later.

Any comments, likes or dislikes?

Michal
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/admin/lists/sssd-devel@lists.fedorahosted.org

Reply via email to