Skip to main content

meridian-storage-evidence

meridian-storage-evidence is the single Python distribution implementing the Meridian V1 evidence Catalog. It provides provider-neutral audit, lineage, provenance, telemetry, policy, query-helper, and low-level OpenTelemetry bridge contracts. It never selects an Adapter, Engine, endpoint, Collector, or deployment topology.

The package is licensed under Apache License 2.0 and targets Python 3.12 or newer. Its released dependencies are pinned to meridian-storage-core==1.0.1 and meridian-storage-semantics==2.0.0.

Install

python -m pip install meridian-storage-evidence==1.0.1

Mapping-first Catalog API

Core discovers EvidenceCatalogProvider through the meridian_storage.catalogs entry-point. Consumer code uses the same mapping-first syntax as every other Meridian Catalog:

evidence = meridian.catalog("evidence")

expression = evidence.append(
    resource="runtime.logs",
    data={
        "severity": "INFO",
        "body": "worker ready",
        "attributes": {"worker": worker_name},
    },
)
meridian.execute(expression)

rows = meridian.execute(
    evidence.query(
        resource="runtime.logs",
        where={"severity": {"eq": "INFO"}},
        limit=50,
    ),
).data

The exhaustive V1 surface is append, create_resource, publish_schema, and query. Audit, lineage, provenance, and telemetry are profiles inside the one evidence Catalog—not additional Catalog names.

Typed helpers and operation hooks

Mapping inputs remain authoritative. Typed records add validation and deterministic serialization:

from datetime import UTC, datetime

from meridian_storage.evidence import EvidenceMetadata, LogRecord

record = LogRecord(
    severity="INFO",
    body="worker ready",
    metadata=EvidenceMetadata(
        event_time=datetime.now(UTC),
        observed_time=datetime.now(UTC),
        tenant="tenant-a",
        scope={"environment": "production"},
    ),
)
expression = evidence.append(resource="runtime.logs", data=record)

OperationEvidenceHooks builds explicit append plans from Core Operation, OperationContext, OperationResult, and normalized failures. It propagates request, execution, tenant, scope, trace, and safe Adapter provenance without copying unrestricted request/response bodies. Required atomic audit plans must pass EvidenceHookPlan.validate_atomic_resolution before publication or startup.

OpenTelemetry boundary

OTelEvidenceBridge preserves OTel log, span, and metric fields and supplies a bounded queue, timeouts, recursion suppression, and non-recursive health counters. The separate public meridian-storage-plugin-observability package owns consumer-facing tracers, meters, structured loggers, exporter wiring, and process-wide provider installation. Core deliberately has no Meridian.telemetry() method.

Policy and retention

EvidencePolicy handles required fields, deterministic redaction/drop/rejection, record and attribute bounds, distinct-value cardinality budgets, access-scope inputs, atomicity, queue-failure policy, and logical retention intent. RetentionPolicyInput does not configure storage, delete Data, enable WORM, or implement a military/national-security profile. Those remain deployment and future-profile concerns.

Architecture boundary

Meridian has exactly five Catalogs: structured, object, cache, evidence, and streaming. Evidence persistence belongs to independently released Adapters. Collector deployment, OTLP routing, storage placement, retention execution, recovery, and lifecycle belong to MeridianConstructs and deployment IaC. Public values contain logical Resource references only; they never expose provider credentials, endpoints, or physical names.

The implementation authority is Meridian HLD revision 60 and Meridian Catalogs and Public Interfaces revision 72, section 5.7. See architecture, contracts, and compatibility.

Development

python -m pip install '.[test]'
ruff format --check src tests scripts
ruff check src tests scripts
mypy src
python scripts/verify_contracts.py
pytest --cov=meridian_storage.evidence --cov-report=term-missing
python -m build --no-isolation
python scripts/verify_artifacts.py dist

Release builds are made twice under one SOURCE_DATE_EPOCH, compared byte-for-byte, verified, described by a deterministic SPDX 2.3 SBOM, and attested by GitHub Actions.

Metadata

Release files for meridian-storage-evidence 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for meridian-storage-evidence 1.0.1
File Size Uploaded
meridian_storage_evidence-1.0.1.tar.gz 60.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for meridian-storage-evidence 1.0.1
File Interpreter ABI Platform
meridian_storage_evidence-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 115.6 kB

Release files / meridian_storage_evidence-1.0.1.tar.gz

Download URL meridian_storage_evidence-1.0.1.tar.gz
Size 60.3 kB
Tags Source
SHA-256 checksum
How to use checksums
2438ef0fdf34a9f7712c1c3649235d05d4911314d3c5e20a560cd2f8a0399d22
BLAKE2b-256 checksum
How to use checksums
9468ea1c53d6b1ec90e5d05ac0fc21e77519102ea8fc54d7b8f055be532fbc4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

Release files / meridian_storage_evidence-1.0.1-py3-none-any.whl

Download URL meridian_storage_evidence-1.0.1-py3-none-any.whl
Size 55.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2fa9b5bb730a535432362a105a552e6c59b4da73521cde5bfbc477bbc32c2276
BLAKE2b-256 checksum
How to use checksums
c37b42e857505a89f6bc5b20bba6a824ca0831cc86653699d174570b9bb23aa9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

Release history Release notifications | RSS feed

1.0.2

2 release files

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page