Skip to content

FOCUS 1.4 phase 3: add ContractCommitment dataset #2129

@flanakin

Description

@flanakin

Parent: #2120
Depends on: #2124 (phase 1) and #2127 (phase 2)

Goal

Add the FOCUS 1.3 Contract Commitment supplemental dataset across raw ingestion, transforms, hub functions, and the Latest aliases.

FOCUS 1.3 Contract Commitment columns (14 mandatory)

Column Type Description
BillingCurrency string ISO 4217
ContractCommitmentId string Unique commitment identifier
ContractCommitmentType string Provider-specific type
ContractCommitmentCategory string Spend or Usage
ContractCommitmentCost real Monetary value (nullable for Usage)
ContractCommitmentQuantity real Quantity (nullable for Spend)
ContractCommitmentUnit string Unit of measure
ContractCommitmentPeriodStart datetime Inclusive start
ContractCommitmentPeriodEnd datetime Exclusive end
ContractId string Parent contract identifier
ContractPeriodStart datetime Inclusive start
ContractPeriodEnd datetime Exclusive end
InvoiceIssuerName string Statement issuer
PricingCurrency string Pricing currency

Scope

`IngestionSetup_RawTables.kql`

  • Add new table `ContractCommitment_raw` mirroring the column shape above (all string types in raw, parsed in transform).

`IngestionSetup_v1_3.kql`

  • Add `ContractCommitment_transform_v1_3()` function: trivially passes through raw columns to typed final columns.
  • Add `ContractCommitment_final_v1_3` table with the 14 columns above plus standard hub add-ons (`x_IngestionTime`, `x_SourceName`, `x_SourceProvider`, `x_SourceType`, `x_SourceVersion`).
  • Add update policy `ContractCommitment_raw` -> `ContractCommitment_transform_v1_3` -> `ContractCommitment_final_v1_3`.

`HubSetup_v1_3.kql`

  • Add `ContractCommitment_v1_3()` function reading `ContractCommitment_final_v1_3` directly. No older versions to union.

`HubSetup_Latest.kql`

  • Add unversioned `ContractCommitment()` aliasing to `ContractCommitment_v1_3()`.

Branch

`flanakin/focus14-phase3-contractcommitment` off `flanakin/focus14-phase2-hubs-1.3` (depends on phase 2 for the v1_3 hub schema). PR target: `flanakin/focus14-phase2-hubs-1.3` until phase 2 merges, then will retarget.

Done when

  • New raw, final, and hub tables / functions land.
  • Pester tests still pass.
  • Bicep compiles cleanly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions