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