Skip to content

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

@flanakin

Description

@flanakin

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions