microsoft / microsoft/finops-toolkit
FOCUS 1.4 phase 4: add FOCUS 1.4-preview ingestion
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: #2129 (phase 3)
Goal
Add FOCUS 1.4 ingestion support as a preview schema. FOCUS 1.4 is still in working_draft (last commit 2026-01-09) and may churn before ratification. Hub schema version: `v1_4`.
Scope
`IngestionSetup_v1_4.kql` (new)
- Copy `IngestionSetup_v1_3.kql` as the starting point.
- Rename `_v1_3` -> `_v1_4`, `FOCUS 1.3` -> `FOCUS 1.4-preview`.
- Remove `ProviderName` and `PublisherName` columns from `Costs_final_v1_4` (removed in 1.4 per spec).
- Update `Costs_transform_v1_4` projection to drop those columns.
- Expand `ContractCommitment_final_v1_4` with FOCUS 1.4 column additions:
- `BenefitCategory` (string)
- `ContractCommitmentApplicability` (dynamic / JSON)
- `Created` (datetime)
- `DiscountPercentage` (real)
- `DurationType` (string)
- `FulfillmentInterval` (string)
- `LastUpdated` (datetime)
- `LifecycleStatus` (string)
- `Model` (string)
- `OfferCategory` (string)
- `PaymentInterval` (string)
- `PaymentModel` (string)
- `PaymentUpfrontPercentage` (real)
- `PricingCurrencyContractCommitmentCost` (real)
- Add corresponding raw columns to `ContractCommitment_raw` in `IngestionSetup_RawTables.kql`.
- Wire `v1_4` into `app.bicep` and `.build.config`.
Out of scope
- `HubSetup_v1_4.kql` -> phase 5
- New Invoice dataset (mentioned in 1.4 working_draft) -> deferred until spec stabilizes
Branch
`flanakin/focus14-phase4-ingestion-1.4` off `flanakin/focus14-phase3-contractcommitment`. PR target: phase 3 branch.
Done when
- New file deploys cleanly.
- Pester tests pass.
- Bicep compiles.
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 IngestionSetup_v1_3.kql with the requested IngestionSetup_v1_4.kql changes, then inspect IngestionSetup_RawTables.kql, app.bicep, and .build.config for the v1_4 wiring. Run the Pester tests and compile the Bicep configuration; done means the new file deploys cleanly, tests pass, and Bicep compiles.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, powershell
- Domain
- build-system, cloud, data-engineering
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 55/100