What are Transformations and Artifacts and Why are They Useful?
One of the key characteristics of Infrahub is that it is a comprehensive data management system, and that doesn’t just stop at design and intent, but extends to rendered data. As such Infrahub offers a capability called Transformations. A transformation is a generic plug-in that transforms data into a different format to simplify ingestion by a third-party system. The output of a transformation is an artifact. While you can run a transformation on-demand, artifacts are persistent, bringing a number of benefits:
Caching: Generated artifacts are stored in the internal object storage, which improves performance resource intensive transformations since you don’t have to regenerate them each time you use them.
Traceability: Past values of an artifact remain available.
Peer Review: Artifacts are automatically part of the Proposed Change review process.
Database: Artifact nodes are stored in the database and other nodes can optionally have a relationship with them, which makes it possible to perform certain artifact related queries.
Here are some examples of artifacts:
- Startup configurations for single devices
- Startup configurations for complex service catalogue delivery
- Multi-device configuration snippets for configuring services
- Containerlab *.clab files for digital twin labs
Note that transforms and artifacts aren’t restricted to config files–you’ll see that in the video (and image above) that the artifact is a JSON blob. Artifacts can be plain text or JSON format.
To learn more in-depth on these topics, you can read more about Transformations and Artifacts in the Infrahub documentation. Meanwhile, check out this short demo video that we created for AutoCon 2 where we take a look at an artifact, change an interface attribute, and automatically regenerate the artifact to reflect that change.