Modular Architecture
The adac-tools ecosystem has undergone a significant architectural refactor to maximize modularity and reusability.
Previously a monolithic pipeline, the project is now split into multiple independent NPM packages. Every major feature (Cost, Compliance, Layout, Exports) now comes with its own integrated parser, renderer, and CLI.
Standalone NPM Modules
Each of the following modules can be used entirely on its own:
@mindfiredigital/adac-layout-core: Core constraint solving, validation, and layout algorithms.@mindfiredigital/adac-layout-elk: An ELK-based rendering engine.@mindfiredigital/adac-cost: Calculates the infrastructure cost based on the YAML definition.@mindfiredigital/adac-compliance: Validates the YAML definition against security and architectural policies.@mindfiredigital/adac-export-cloudformation: Converts the YAML to an AWS CloudFormation template.@mindfiredigital/adac-export-k8s: Converts the YAML to Kubernetes deployment manifests.@mindfiredigital/adac-export-terraform: Converts the YAML to Terraform HCL.
Example: Standalone Usage
Because each package bundles its own CLI and parser, a user who only wants to check compliance can do so effortlessly without installing the diagramming or export logic:
# Execute using npx directly
npx @mindfiredigital/adac-cost my-architecture.adac.yaml
Integration Packages
To provide a unified experience, we offer top-level packages that stitch these independent modules together:
@mindfiredigital/adac-diagram: This is the central NPM module. It depends oncost,compliance,layout-*, and the variousexport-*packages, as well as cloud-specific icon packages. When you installdiagram, everything you need is installed alongside it.@mindfiredigital/adac-web: A web application that provides a visual UI (powered by Ignix UI) for the underlyingdiagrampackage.