Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
packaging [#19] cleanup from test hook move Aug 31, 2018
CMakeLists.txt bump version for 4.2.5 Oct 10, 2018 [#19] Moved audit plugin setup to test hook May 25, 2018 [#16] changes made for ci Oct 31, 2017 [#19] Moved audit plugin setup to test hook May 25, 2018
libirods_rule_engine_plugin-audit_amqp.cpp Changes to stop() method after iRODS change removing the stop() metho… Aug 2, 2017 update to use qpid-with-proton Sep 21, 2016
sample_configuration.json remove cruft, rename variables, check for and resolve unresolved symbols Nov 25, 2016

iRODS Rule Engine Plugin - Audit via AMQP

This C++ plugin provides the iRODS platform a rule engine that emits a single AMQP message to the configured topic for every policy enforcement point (PEP) encountered by the iRODS server.


Building the iRODS Audit Rule Engine Plugin requires iRODS 4.2.2 (

This plugin requires the iRODS development and runtime packages to be installed on the build machine.

Also, use the iRODS-built CMake (or CMake 3.7+):

export PATH=/opt/irods-externals/cmake3.5.2-0/bin:$PATH
cd irods_rule_engine_plugin_audit_amqp
mkdir build
cd build
cmake ../
make package


The packages produced by CMake will install the Audit plugin shared object file:



After installing the plugin, /etc/irods/server_config.json needs to be configured to use the plugin.

Add a new stanza to the "rule_engines" array within server_config.json:

                "instance_name": "irods_rule_engine_plugin-audit_amqp-instance",
                "plugin_name": "irods_rule_engine_plugin-audit_amqp",
                "plugin_specific_configuration" : {
                     "amqp_location" : "ANONYMOUS@localhost:5672",
                     "amqp_options" : "",
                     "amqp_topic" : "audit_messages",
                     "pep_regex_to_match" : "audit_.*"

Add the new audit_ namespace to the "rule_engine_namespaces" array within server_config.json:

    "rule_engine_namespaces": [

Further information on this plugin is described in the slide deck available here:


Hao Xu, Jason Coposky, Ben Keller, Terrell Russell (2015) Pluggable Rule Engine Architecture. 7th iRODS User Group Meeting, University of North Carolina at Chapel Hill. June 2015. (PDF)

Hao Xu, Jason Coposky, Dan Bedard, Jewel H. Ward, Terrell Russell, Arcot Rajasekar, Reagan Moore, Ben Keller, Zoey Greer (2015) A Method for the Systematic Generation of Audit Logs in a Digital Preservation Environment and Its Experimental Implementation In a Production Ready System. 12th International Conference on Digital Preservation, University of North Carolina at Chapel Hill. November 2-6, 2015. (PDF) (direct link)

You can’t perform that action at this time.