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.0 and
meridian-storage-semantics==1.0.0.
Install
python -m pip install meridian-storage-evidence==1.0.0
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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file meridian_storage_evidence-1.0.0.tar.gz.
File metadata
- Download URL: meridian_storage_evidence-1.0.0.tar.gz
- Upload date:
- Size: 58.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8da9093a81fc1ac3cab530076653af0b02a18be688c0e738d6500b091f5213e
|
|
| MD5 |
5311710ad4d326e48fb0cf238461fe28
|
|
| BLAKE2b-256 |
acaa09f027970ee9db1bee67ed13ef89aba61711521190a559309de4fc62b286
|
Provenance
The following attestation bundles were made for meridian_storage_evidence-1.0.0.tar.gz:
Publisher:
release.yml on zephytiju/meridian-storage-evidence
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meridian_storage_evidence-1.0.0.tar.gz -
Subject digest:
e8da9093a81fc1ac3cab530076653af0b02a18be688c0e738d6500b091f5213e - Sigstore transparency entry: 2592654107
- Sigstore integration time:
-
Permalink:
zephytiju/meridian-storage-evidence@9ac5c08f128cacc946d8a6444a76063f48c4827e -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/zephytiju
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9ac5c08f128cacc946d8a6444a76063f48c4827e -
Trigger Event:
push
-
Statement type:
File details
Details for the file meridian_storage_evidence-1.0.0-py3-none-any.whl.
File metadata
- Download URL: meridian_storage_evidence-1.0.0-py3-none-any.whl
- Upload date:
- Size: 54.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0752cbb1cac2b72e9a041a455bdf80a33c26eea1643526ac45c12d15f7210a3e
|
|
| MD5 |
396f976ab946bad1e0304354539d8351
|
|
| BLAKE2b-256 |
2950a7713f6656cd703636e03317c16f91b072581876a1def2d809ab6a556833
|
Provenance
The following attestation bundles were made for meridian_storage_evidence-1.0.0-py3-none-any.whl:
Publisher:
release.yml on zephytiju/meridian-storage-evidence
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meridian_storage_evidence-1.0.0-py3-none-any.whl -
Subject digest:
0752cbb1cac2b72e9a041a455bdf80a33c26eea1643526ac45c12d15f7210a3e - Sigstore transparency entry: 2592655054
- Sigstore integration time:
-
Permalink:
zephytiju/meridian-storage-evidence@9ac5c08f128cacc946d8a6444a76063f48c4827e -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/zephytiju
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9ac5c08f128cacc946d8a6444a76063f48c4827e -
Trigger Event:
push
-
Statement type: