Rules builds upon on its own API, which allows contributed modules to provide

  • default rules, fixed or customizable
  • further rule sets, fixed or customizable
  • actions, which may be configurable
  • conditions, which may also be configurable
  • new events, for which conditions and actions can be configured
  • new input evaluators (like token and PHP input evaluators)
  • new rules data types
  • user interfaces

Furthermore the API supports

  • multiple arguments, for actions as well as for conditions
  • configuration of actions/conditions for every event and rule set, where the necessary arguments are available. Action writers don't have to care about action compatibility.
  • dynamic loading of needed arguments
  • condition evaluation which supports logical operations like OR and AND
  • negating conditions or logical operations
  • ordered execution of conditions, actions and rules, controlled with weights
  • a flexible input evaluation system (token, php, ..)
  • packing and unpacking arguments, used e.g. for scheduling rule set execution
  • building simple/complex interfaces, like rules admin ui or transformations