Skip to content

Machine-Readable Warnings for Programmatic Use #863

@thetechgy

Description

@thetechgy

Description

Several cmdlets (e.g., Get-DDDomainHealthReport) emit console warnings that do not appear to correspond to any structured properties on the returned object. This makes programmatic use difficult (e.g., pipelines, CI checks), because consumers cannot reliably parse the free‑text output.

Evidence

Command

Get-DDDomainHealthReport architechlabs.io

Output (examples)

WARNING: Report address fc8e636633ba4528828289d6915e7310@dmarc-reports.cloudflare.net is not aligned with architechlabs.io.
WARNING: No DANE records found.
WARNING: RRSIG for io expires in 15 days
WARNING: Root trust anchor expires in -2408 days

Problem

Warnings are printed but not present as object properties (unlike Hints).
Programmatic consumers cannot filter on, count, or gate on warnings without scraping text.

Proposal

  • Add a structured Warnings property to returned objects (mirroring Hints).
  • Keep console warnings for humans, but derive them from the structured items for consistency.
  • Offer switches to control noise:
    -NoWarnings (suppress console warnings)
  • Normalize existing warning cases with stable codes:
ReportAddressNotAligned
NoDaneRecords
RrsigExpiringSoon
RootTrustAnchorExpired

Expected Benefits

  • Enables reliable, programmatic consumption (CI/CD, dashboards, remediation scripts).
  • Aligns with existing Hints pattern and improves consistency.
  • Reduces text‑scraping and ambiguity.

Backward Compatibility

  • Preserve current console warnings; just ensure they are generated from the new structured Warnings collection to avoid duplication.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions