Skip to content

API Schemas Standards and Versioning

github-actions[bot] edited this page Jul 16, 2026 · 3 revisions

API, schemas, standards, and versioning

Navigation guide, not a versioned contract. This page tracks dmarcgo v3. The repository's Go documentation, schemas, and focused guides are authoritative.

Who this is for

Developers choosing an API, validating serialized output, evaluating standards support, or planning an upgrade.

Question this workflow answers

Where is the stable contract for parsing, analysis, output, schemas, and standards behavior?

Inputs

The installed module version, selected analysis/output mode, and any destination contract that the consuming application must satisfy.

Activity and side effects

API and schema discovery are offline. Package helpers do not initiate analysis or network access unless the chosen operation explicitly accepts an I/O dependency, such as a resolver or enricher.

Starting APIs

  • Import github.com/georgestarcher/dmarcgo/v3.
  • Use OutputSchemaVersions, OutputSchemaForVersion, SupportedOutputModes, AnalysisOutputDescriptorForMode, and AnalysisOutputSchema for contract discovery.
  • Use the focused guide linked from the documentation index.

Outputs

Versioned Go values, embedded schemas, stable mode and finding codes, and standards-native payloads where documented.

What this does not prove

Wiki text is not a substitute for the contract shipped with a selected module version. Vendor exports still require the caller to confirm the current target instance contract and lifecycle behavior.

XARF is not a dmarcgo export contract. DMARC aggregate evidence cannot supply the current XARF v4.2.0 per-message SMTP fields without invention. See the repository feasibility decision.

Sensitive data

Schemas describe shape, not recipient authorization. Operational and restricted values can remain sensitive even when valid. Never put credentials or private organization data into examples or schema fixtures.

Safe next steps

Pin a module version, validate serialized output against that release's embedded schema, review changelog entries before upgrading, and treat major-version changes as explicit migrations.

Authoritative references

Clone this wiki locally