See it as a diagram
Everything below, as a diagram you can edit. Describe yours and see it in seconds.
No account needed · Editable canvas, not a picture
What Hava does well
It connects securely to AWS, Azure, Google Cloud, and Kubernetes and generates interactive diagrams from the live configuration, laid out by VPC or resource zone rather than dumped as a flat list. That is a lot of value for a connection you set up once.
The views around it are the real product. A security view showing security groups, subnets, and ingress and egress paths, which is how you spot the port someone opened for a test in March. Cost estimates broken down by VPC, region, instance, tag, or project. Container support alongside the cloud resources. Exports to Visio, PNG, CSV, and JSON, and an embeddable interactive viewer.
And it keeps watching. Hava polls the cloud configuration, updates diagrams when something changes, and archives the previous version, so you can compare across time and see drift as it happens. For an operations team, that history is worth more than the first diagram.
What a live scan structurally cannot show
It cannot show what is not deployed. A module written last week, an environment that exists only in the release branch, a change waiting in review: none of it is in the account, so none of it is in the diagram. For teams reviewing infrastructure before it ships, that is the wrong end of the pipeline.
It cannot show the parts of the system that are not cloud resources. The dbt models, the CI pipelines, the API contracts, the service manifests that describe how the application is composed, all of that lives in the repository and is invisible to a cloud API.
And it needs access to the account. An IAM role in a production subscription is a conversation with security, a change ticket, and sometimes a hard no. Consultants and platform teams working across client environments often have read access to a repository and nothing else, and that is precisely the case where a repo parse works and a scanner does not.
How the repository parse works instead
Datadef connects read-only to GitHub, GitLab, or Azure DevOps, tracks one branch or tag per diagram, and generates the architecture from the files that declare it, including Terraform, containers and orchestration, schemas and dbt models, API specs, and CI pipelines. Terraform repositories get a dedicated parse: every .tf file, modules drawn as zones, per-environment counts read from tfvars, registry modules recognized with their versions, and no init, no state, and no cloud credentials.
Two behaviours are worth naming, because they are exactly where a live scan and a source parse diverge. Environments are discovered from the tfvars layout, so a repository holding environments/DEV and environments/QUAL produces one drawing of the platform annotated with the real counts, something like per lakebase_projects (DEV 2, QUAL 1), rather than two near-identical copies of the same architecture. And a module pulled from the registry cannot be expanded from source, so the call becomes a single node carrying its source and version, with its inputs drawn as edges: a module.eks consuming module.vpc.vpc_id draws eks to vpc even though neither module body lives in your repository.
The document produced by the same read carries the inventory the diagram compresses: a module reference table with one row per module, its source, its resource count, and its multiplicity, composed from the parse rather than written by a model. Directories named examples, tests, or fixtures are dropped from the model first, on the grounds that they describe how to use the repository rather than what it is.
The diagram and a generated architecture.md refresh on a daily sync, skip commits that change nothing structural, and can be refreshed on demand or by an agent over MCP. The output goes where readers already are: an editable canvas, PNG and JPEG export, and a live embed for the README or wiki.
Intent versus reality
Picking the right one
Choose a cloud scanner when the questions are operational: what is running right now, which security group is open, what does this VPC cost, what changed in the account overnight.
Choose a repository parse when the questions are architectural: what does this platform build, how are the modules composed, what is different between environments, and what will exist after the next merge. Also choose it when the access conversation is the blocker, because read access to a repository is a much smaller ask than a role in a production account.
FAQ
Does Datadef connect to AWS, Azure, or Google Cloud accounts?
Will the diagram show what is actually deployed?
Can it draw environments that differ, like dev and prod?
Is there version history when the architecture changes?
What happens to the diagrams if the subscription lapses?