Skip to content

0.54.0

Choose a tag to compare

@mivano mivano released this 11 Apr 21:31
· 17 commits to main since this release

What's New in 0.54.0

This release adds six new features and improvements across the CLI:

✨ New Features

  • Untagged resource visibility (#294) — Resources without the requested tag(s) are now grouped under (untagged) in the costByTag command, making it easy to see what percentage of spend is properly tagged.

  • Cost threshold exit codes (#295) — New --fail-if-over <amount> option returns exit code 1 when costs exceed the specified threshold, enabling CI/CD cost gates and automated budget enforcement.

  • Top & sort for costByResource (#296) — New --top and --sort parameters on the costByResource command let you focus on the most expensive or most relevant resources.

  • Live time-period comparison (#298) — The diff command can now compare two time periods directly by fetching data live from the Azure Cost API using --source-from/--source-to, without needing to manually export JSON files first.

  • Budget spend tracking (#299) — The budgets command now shows actual spend, forecast amounts, and budget status alongside configuration — surfacing data the Azure API already provides.

🔧 Improvements

  • Complete formatter coverage (#297) — All output formatters (Text, CSV, JSON, Markdown) now fully implement every command output. Previously, WriteBudgets and WriteAccumulatedDiffCost were stubs that silently produced no output.

🛠️ Maintenance

  • Fixed flaky Jsonc test and CI coverage threshold configuration
  • All 242 tests passing across net8.0 and net10.0

What's Changed

  • Complete all missing formatter implementations by @mivano in #297
  • Show untagged resources in costByTag command by @mivano in #294
  • Add --fail-if-over cost threshold for CI/CD pipelines by @mivano in #295
  • Enhance budgets with current spend tracking and status by @mivano in #299
  • Add --top and --sort parameters to costByResource by @mivano in #296
  • Add live time-period comparison to diff command by @mivano in #298

Full Changelog: 0.53.0...0.54.0