What Finowl reads
Supported formats
| FORMAT | STATUS | READS |
|---|---|---|
| Databricks Asset Bundles | Available | databricks.yml and the target overlays it declares. Jobs, DLT pipelines, SQL warehouses, job clusters, inline task clusters and serverless. |
| Terraform | Coming soon | The Databricks Terraform provider — databricks_job, databricks_pipeline, databricks_sql_endpoint and the cluster blocks inside them, per workspace. |
What a format has to provide
Every reader answers the same four questions, and a format Finowl can support is one that can answer them from files alone, before anything is deployed.
| QUESTION | USED FOR |
|---|---|
| Which environments exist? | The value --target is checked against. Finowl never guesses an environment. |
| What does each environment actually declare? | Overlays and variables resolved, so a production override is priced as production and not as the base definition. |
| What compute does each workload use? | The cluster shape — instance type, worker count, Photon, spot — which sets what an hour costs. |
| How often does it run? | Schedules, triggers and continuous flags, which set how many hours a month. |
One thing no format provides is how long a run takes. That is not in any file, because it depends on the data. It comes from a workload word per compute in finowl.yml — see finowl.yml reference.
What does not depend on the format
The reader sits at the edge of the product. Everything a team accumulates over a product's life is held by the platform, keyed on an opaque product identity:
- The committed budget and every superseded estimate.
- Run history on every deployment.
- Policies, rules and their verdicts.
- Attributed actual spend.
The two files, and what each owns
| FILE | OWNED BY | HOLDS |
|---|---|---|
| IaC definition | Your team | What gets deployed: workloads, compute shapes, schedules, environments. |
| finowl.yml | Finowl | Which product this reports to, and one workload word per compute per environment. |
finowl.yml always sits in the same directory as the definition it describes, whatever the format. A monorepo registers one product per directory.
A format you need that is not here
The constraint is not parsing — it is pricing. A format has to expose the cluster shape and the schedule for Finowl to produce a figure, and some deployment tools abstract both away behind a module boundary. If yours does, tell us what it looks like: get in touch.