Technology Working Group - March 14, 2016

Jason Coposky, Chief Technologist


  • 4.2 Update
  • Update on CI
  • Update on the new configuration and build system
  • Standardized Message Bus Format
  • 4.3 - GQv2 and The Next Roadmap

iRODS 4.2 Update

Rule Engine Plugins

  • Moving Native Rule engine entirely to a plugin
  • Plugins now running user-land rules (irule)
  • Security concerns related to irule
  • C++ Default rule engine plugin


New Rule Engines

  • Python
  • JavaScript
  • Haskell



iRODS 4.2 Update

Single Server Build

  • No longer build an IES or Resource Server
  • Servers have roles - provider, consumer or proxy


API Plugins - New Serialization

  • API Plugins & Static APIs now trigger dynPEPs
  • Full serialization of parameters to the PEP
    • ​Everything routed as std::map of std::strings
    • Out variable string still supported for communication of state
    • parameters re-serialized for post-PEP​

Build and Configuration

Updates to CI & Build System

  • CMake
  • CPack
  • Federation & Plugin testing
  • Repository for external dependencies
    • Internal version system


New Configuration Framework

  • New pure python framework
  • Updates to schema(s) now done by irodsctrl

Standardization of Message Bus Format

Events vs. Policy Enforcement Points 

  • A large collection of PEPs may route to a single event
    • Open/Write/Close vs Put

Consolidate Effort across existing deployments

  • Cyverse Discovery Environment
  • Hydroshare
  • DFC

Package Capabilities into install-able components

  • Search
  • Notification

iRODS 4.3 Roadmap

Focus on backlog

  • Harden 4.2 features
  • Work off build-up of existing bugs and enhancements

Expose GenQuery v2 as Experimental Service

  • Expose as a new API plugin while it is hardened

Refactor existing GenQuery facility

  • Use a proper parser via Flex & Bison
  • Possible optional code generation for GQv2


Technology Working Group - March 14, 2016

By jason coposky

Technology Working Group - March 14, 2016

  • 1,738