Skip to content

basis-adapters v0.2.0

Latest

Choose a tag to compare

@basauth basauth released this 09 Aug 21:32
· 4 commits to main since this release
fa0373a

Summary

basis-adapters v0.2.0 is an additive public API and packaging release.

The existing nine-adapter normalization surface remains unchanged. This release adds the basis-adapters-owned portion of the evidence architecture formally adopted by basis-architecture ADR-0007.

Highlights

  • Add governed basis-adapter-evidence-v1 material construction.
  • Add RFC 8785 canonicalization.
  • Add deterministic SHA-256 evidence digest generation.
  • Add deeply immutable retained evidence material and defensive serialization.
  • Add governed evidence projections across REST, BACnet, Modbus, OPC UA, MQTT, DNP3, IEC 61850, KNX, and Niagara.
  • Add evidence-construction models and exceptions.
  • Add rfc8785==0.1.4 as the first runtime dependency.

Public API

The release adds:

  • EVIDENCE_PROFILE
  • CANONICALIZATION_PROFILE
  • DIGEST_ALGORITHM_SHA256
  • AdapterEvidenceMaterial
  • EvidenceDigest
  • ConstructedAdapterEvidence
  • construct_adapter_evidence()
  • evidence-construction exceptions derived from AdapterError

Compatibility

No existing normalization model, serialized normalized-request field, action or resource semantic, mapping schema, supported protocol, or existing normalization behavior changed.

Installing v0.2.0 now includes the runtime dependency rfc8785==0.1.4.

Important Boundaries

This release does not provide:

  • an operation-producer runtime;
  • producer authentication;
  • reference_id minting;
  • adapter_source selection;
  • redaction_classification assignment;
  • final AdapterEvidenceReference assembly;
  • gateway submission;
  • evidence persistence or retrieval;
  • protocol network communication;
  • device execution;
  • execution-result evidence.

A digest proves correspondence with canonical bytes only. It does not prove truthfulness, producer authenticity, authorization, or execution.

Validation

  • 1530 tests passed.
  • Ruff lint and formatting checks passed.
  • Strict mypy validation passed.
  • Wheel and source-distribution builds passed.
  • Clean-install smoke testing passed.
  • Package-content and dependency inspection passed.
  • Final release assets were built from the exact v0.2.0 tagged commit.