1. An non-transitory computer readable medium comprising a set of computer instructions executable by a computer processor for: receiving a filesystem request identifying a requested operation on a filesystem object, where the filesystem request was generated by a filesystem client and is intended for a filesystem server; determining one or more of a set of rules to be applied based on the filesystem request by matching each of the set of rules to the filesystem request, wherein each rule comprises a pattern and an associated action and matching a rule to the filesystem request comprises: obtaining metadata associated with the filesystem object identified by the filesystem request, wherein the metadata is specified in the pattern of the rule and the pattern is an expression for the evaluation of the metadata, and evaluating the metadata using the pattern; applying each of the one or more rules, wherein applying a rule comprises applying the action associated with the rule and applying the action comprises: determining if the action should be applied in-band or out-of-band; and applying the action, wherein if the action is to be applied is an in-band action the action is performed either before providing the filesystem request to the filesystem server or before returning a filesystem response to the filesystem client and if the action is to be applied is an out-of-band action the action is performed after returning the filesystem response to the filesystem client.