| Ansible content & dependencies | Playbooks, collections, modules, and roles must exist on the server filesystem before IAG 4 can access them. Collections and roles must exist on the filesystem at design time. | Services retrieve playbook files from Git repositories at runtime. IAG 5 obtains required collections and roles by consulting requirements.yml files stored in Git repositories. This allows you to auto-deploy your latest Ansible dependencies at runtime. | Enhancement |
| Python scripts & dependencies | Python scripts must exist on the filesystem before IAG 4 can execute them. You must manually install Python dependencies in the script’s environment on the server. | Services retrieve script content from Git repositories at runtime. IAG 5 obtains required Python libraries from requirements.txt or pyproject.toml files stored in Git alongside the scripts. This allows you to auto-deploy your latest Python dependencies at runtime. | Enhancement |
| Scaling | Difficult to scale due to architectural limitations. | Supports multiple deployment architectures, including distributed execution with runner nodes. | Enhancement |
| Decorators | Associates decorators with individual scripts or playbooks using a limited JSON schema subset that only accepts strings. | Decorators can work with multiple gateway services and support the full JSON schema specification. | Enhancement |
| Service discovery | Manual service discovery. | Automatic discovery and registration of available gateway services. | New Feature |
| Database support | Limited to built-in storage. | External database support (etcd, Amazon DynamoDB) to enable clustered deployments. | New Feature |
| Execution history | Dedicated store to display Python script and Ansible playbook execution history. | Gateway service execution history available through application log files. | Change |
| Platform integration | Leverages a combination of Automation Gateway Manager and IAG Adapter for Platform connectivity. | Leverages Gateway Manager for Platform connectivity. | Change |
| Device inventory | Multiple inventory options: internal inventory stored in sqlite database, Ansible DSL files, and Ansible dynamic inventory plugins for Nautobot, NetBox, SolarWinds, ServiceNow, and ZPE Cloud. | IAG 5.3 introduces support for Inventory Manager, a platform application that centralizes management of automation targets across the Itential platform. Inventory Manager replaces the internal SQLite inventory from IAG 4 with a more scalable, platform-integrated approach. IAG 5 continues to support external inventory sources the same way as IAG 4. For services not using Inventory Manager, define inventory on a per-service basis using the --inventory parameter with iagctl create service ansible-playbook commands. | Breaking Change (mitigated in IAG 5.3) |