Pure helpers for validation rule definitions.
Rule Format: {:rule-id keyword ; Unique identifier (e.g., :user.email/required) :description string ; Human-readable description :category keyword ; :schema | :business | :cross-field | :context :module keyword ; Module name (e.g., :user, :billing) :fields [keyword] ; Affected fields :error-code keyword ; Default error code :validator-fn (fn [data] ...) ; Actual validation function :dependencies [rule-id] ; Required rules (optional) :metadata map} ; Additional metadata (optional)
This namespace holds only pure rule-shape validation (no mutable state). The stateful in-process rule registry — registration, lookup, and execution tracking — lives in the shell at boundary.platform.shell.validation-registry, so the functional core stays free of process state (FC/IS).
Pure helpers for validation rule definitions.
Rule Format:
{:rule-id keyword ; Unique identifier (e.g., :user.email/required)
:description string ; Human-readable description
:category keyword ; :schema | :business | :cross-field | :context
:module keyword ; Module name (e.g., :user, :billing)
:fields [keyword] ; Affected fields
:error-code keyword ; Default error code
:validator-fn (fn [data] ...) ; Actual validation function
:dependencies [rule-id] ; Required rules (optional)
:metadata map} ; Additional metadata (optional)
This namespace holds only pure rule-shape validation (no mutable state). The
stateful in-process rule registry — registration, lookup, and execution
tracking — lives in the shell at boundary.platform.shell.validation-registry,
so the functional core stays free of process state (FC/IS).(find-conflicting-rules rules)Find rules with overlapping fields and categories that might conflict.
Args: rules: Collection of rule definitions
Returns: Vector of conflict maps {:rule-ids [...] :category kw :fields set :reason string}
Find rules with overlapping fields and categories that might conflict.
Args:
rules: Collection of rule definitions
Returns:
Vector of conflict maps {:rule-ids [...] :category kw :fields set :reason string}(find-duplicate-rule-ids rules)Find duplicate rule IDs in a collection of rules.
Args: rules: Collection of rule definitions
Returns: Set of duplicate rule-ids
Find duplicate rule IDs in a collection of rules. Args: rules: Collection of rule definitions Returns: Set of duplicate rule-ids
(valid-rule? rule)Check if rule definition is valid.
Args: rule: Rule definition map
Returns: Boolean indicating validity
Check if rule definition is valid. Args: rule: Rule definition map Returns: Boolean indicating validity
(validate-rule rule)Validate rule definition and return errors.
Args: rule: Rule definition map
Returns: Vector of error strings (empty if valid)
Validate rule definition and return errors. Args: rule: Rule definition map Returns: Vector of error strings (empty if valid)
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |