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 require meridian-storage-core>=1.1.0,<2 and meridian-storage-semantics>=2.0.1,<3. The exact tested public closure is in requirements-validation.lock; see compatibility.

Install

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

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.2

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.2
File Size Uploaded
meridian_storage_evidence-1.0.2.tar.gz 61.3 kB Details

Built distribution (wheel)

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

Total release size: 116.9 kB

Release files / meridian_storage_evidence-1.0.2.tar.gz

Download URL meridian_storage_evidence-1.0.2.tar.gz
Size 61.3 kB
Tags Source
SHA-256 checksum
How to use checksums
df5861b8f938aea8a515818b42b3373a0086b6642b691da1a976bc54577eedfa
BLAKE2b-256 checksum
How to use checksums
0ddf146cbe23700b70db96674333610cbfffe297b7f71b07fed92a039cf97eec
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 8, 2026.

Transparency log

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

Download URL meridian_storage_evidence-1.0.2-py3-none-any.whl
Size 55.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
25305ebcc4a2a4668ec365c8c20c0793d7074d88f96f7c5539af50bfcc34f449
BLAKE2b-256 checksum
How to use checksums
b73442e845419719d4111e293e4086016de57a50309c2f563bbc94157d580a33
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 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

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