microsoft / microsoft/finops-toolkit

FOCUS 1.4 phase 5: add FOCUS 1.4-preview hub functions

Open
#2,133 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Tool: FinOps hubs Tool: FOCUS
Dominant language
PowerShell
Stars
603
Forks
248
Avg merge
7d 11h
Merged PRs (30d)
11

Description

Parent: #2120
Depends on: #2131 (phase 4)

Goal

Add the hub-side counterpart to phase 4: `HubSetup_v1_4.kql` exposing FOCUS 1.4-preview-shaped functions.

Scope

`HubSetup_v1_4.kql` (new)
  • Copy `HubSetup_v1_3.kql` and rename `_v1_3` -> `_v1_4`, `FOCUS 1.3` -> `FOCUS 1.4-preview`.
  • `Costs_v1_4()`: union `Costs_final_v1_4` with the existing v1_3, v1_2, and v1_0 final tables. The final `| project` drops `ProviderName` and `PublisherName` since they are removed in 1.4. The v1_3 / v1_2 / v1_0 union arms drop those columns by exclusion (the project list doesn't reference them).
  • `ContractCommitment_v1_4()`: union `ContractCommitment_final_v1_4` with `ContractCommitment_final_v1_3` extending v1_3 data with empty/null defaults for the 14 new FOCUS 1.4 columns.
  • Other functions (Prices, CommitmentDiscountUsage, Recommendations, Transactions): rename only — no FOCUS 1.4 changes for those datasets.
Latest aliases policy

Do NOT retarget `HubSetup_Latest.kql` to v1_4. Per the upgrade procedure (data-model.md preview convention), unversioned aliases stay pinned to the latest GA schema (v1_3) until the v1_4 preview promotes to GA.

Wiring
  • Add `v1_4: loadTextContent('scripts/HubSetup_v1_4.kql')` to `app.bicep`.
  • Add to `.build.config` file list.

Branch

`flanakin/focus14-phase5-hubs-1.4` off `flanakin/focus14-phase4-ingestion-1.4`. PR target: phase 4 branch.

Done when

  • New file deploys cleanly.
  • Pester tests pass.
  • Bicep compiles.
  • `Costs()` still returns v1_3 schema (Latest stayed pinned).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing HubSetup_v1_3.kql with the phase 4 schema in #2131, then inspect app.bicep and the .build.config file list. Add HubSetup_v1_4.kql with the specified unions and renamed functions, wire it into both files, and run the Pester tests and Bicep compilation. Done means deployment is clean and Costs() still exposes the v1_3 Latest schema.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure
Domain
build-system, cloud
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.