microsoft / microsoft/finops-toolkit
FOCUS 1.4 phase 5: add FOCUS 1.4-preview hub functions
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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