The manageiq-automation_engine repository is a Ruby-based plugin that provides the core automation execution engine for ManageIQ, an open-source cloud and infrastructure management platform. The engine enables policy-driven task automation, workflow orchestration, and dynamic resource provisioning across virtualized and cloud environments, including support for RHEV management and Ansible integration.
The automation engine operates through two primary storage mechanisms documented in the repository. The Automation Datastore serves as persistent storage backed by SQL tables with the miq_ae prefix, including miq_ae_namespaces, miq_ae_classes, miq_ae_fields, miq_ae_values, miq_ae_instances, and miq_ae_methods. The Automation Workspace functions as transient in-memory storage for object hierarchies during engine execution, with each invocation running in an isolated workspace. The engine uses URI-based addressing throughout its operations, supporting two schemes: miqaedb for accessing objects from the Automation Datastore and miqaews for accessing objects from the Automation Workspace.
The database schema defines a hierarchical structure for automation definitions. Namespaces provide organizational containers with parent-child relationships. Classes define automation logic with support for inheritance, visibility controls, and type specifications. Fields represent individual attributes, methods, states, assertions, and relationships within classes, with configurable data types, priorities, conditions, and substitution capabilities. Instances represent specific instantiations of classes, and Values store the actual data for fields within instances. This structure enables complex automation workflows with conditional processing and field collection capabilities.
The repository includes documentation for the Dynamic Instantiation Process, an advanced feature that converts steps to relationships, dynamically invokes before and after step methods, and internalizes state machine workflows to simplify definition of new automation patterns. This capability allows automation designers to define sophisticated provisioning and orchestration workflows without reimplementing core state machine logic.
According to GitGenius activity tracking, the repository shows median issue and pull request response latency of 0.0 hours across tracked items, with a mean latency of 569.9 hours, indicating variable response times. The most active contributors tracked include jrafanie with 4 events, kbrock with 3 events, and Fryguy with 2 events. Active issue labels include dependency dashboard items from Mend, bug reports, and stale issue markers. The repository shares overlapping contributors with manageiq/manageiq, manageiq/manageiq-ui-classic, and apollographql/apollo-client, indicating integration points across the ManageIQ ecosystem and external dependencies.
The engine supports infrastructure as code patterns, service catalog integration, API-driven automation, and resource scheduling across cloud and virtualized infrastructure. Development follows standard ManageIQ plugin conventions, with setup utilities provided for local development environments. The project is distributed under the Apache License 2.0 and accepts community contributions through standard fork and pull request workflows.