Meridian Storage OCI
meridian-storage-oci is the Meridian V1 Object Adapter for an OCI
Distribution 1.1 registry. Its stable Adapter id is oci-distribution. It
implements streaming blob upload and download, digest verification, OCI image
manifests for non-container artifacts, exact versions, range reads, bounded
maintenance inventory, policy-aware deletion, resumable multipart upload,
capability probes, and logical migration helpers behind the released
meridian-storage-object-common==1.0.0 contract.
This repository publishes exactly one Python distribution. Provider endpoints, repository names, credentials, upload locations, tags, and manifest digests are private binding state and never appear in consumer Object results or errors.
Install
python -m pip install meridian-storage-oci==1.0.0
Python 3.12 or newer is required.
Composition-root use
Consumers continue to call meridian.catalog("object"). Platform composition
creates one adapter per Object Resource binding:
from meridian_storage import ResourceRef
from meridian_storage.adapters.oci import (
AnonymousCredentials,
OciDistributionAdapter,
OciDistributionBinding,
)
binding = OciDistributionBinding(
resource=ResourceRef("object", "assets", "releases"),
endpoint="https://registry.example.com",
repository="meridian/releases",
credentials=AnonymousCredentials(),
conditional_create_mode="registry-enforced",
deletion_enabled=True,
)
adapter = OciDistributionAdapter(binding)
The binding belongs to Platform/Vangu IaC. Application code must not construct this adapter, persist its physical identifiers, or receive its configuration.
OCI representation
Each logical Object id owns a deterministic anchor manifest. Every immutable
Object version is an OCI image manifest whose subject is that anchor, whose
config blob contains the exact portable Object metadata, and whose single layer
is the Object payload. Immutable version tags are derived from hashes of the
logical id and content digest. A private latest tag provides digest-less lookup;
it is never a consumer release-channel API.
The Adapter records retention intent and enforces retainUntil before delete.
It does not claim WORM or regulatory certification. Registry-side immutable-tag
and retention enforcement are advertised only when the deployment explicitly
declares those verified controls.
Verification
uv sync --all-extras
uv run ruff format --check src tests scripts
uv run ruff check src tests scripts
uv run mypy src
uv run pytest
uv run python scripts/verify_contracts.py
uv build
The integration suite uses the official Distribution reference registry. Set
MERIDIAN_OCI_TEST_ENDPOINT and MERIDIAN_OCI_TEST_REPOSITORY to run it against
another genuine OCI-compatible registry. Owner-managed registry variants are an
explicit gate; mocks are used only for deterministic transport unit tests and
are never reported as real-service acceptance.
See architecture, configuration, conformance, and migration.
License
Copyright 2026 Meridian contributors. Licensed under Apache License 2.0; see
LICENSE and NOTICE.
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_oci-1.0.0.tar.gz.
File metadata
- Download URL: meridian_storage_oci-1.0.0.tar.gz
- Upload date:
- Size: 28.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0da5138edb00fe65fb7a1e99aebddb2d7ac498d6a4742ac03d33d9e9a03677e1
|
|
| MD5 |
ce36fbc0b09067a841b543e2c72eac9b
|
|
| BLAKE2b-256 |
6a37277db2afbe0f0acfeca37e5e12a302d4294fa89b496fd168e3e5d05c7e92
|
Provenance
The following attestation bundles were made for meridian_storage_oci-1.0.0.tar.gz:
Publisher:
release.yml on zephytiju/meridian-storage-oci
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meridian_storage_oci-1.0.0.tar.gz -
Subject digest:
0da5138edb00fe65fb7a1e99aebddb2d7ac498d6a4742ac03d33d9e9a03677e1 - Sigstore transparency entry: 2606015598
- Sigstore integration time:
-
Permalink:
zephytiju/meridian-storage-oci@f7909f46814d6c1468d77b95dcbc6a4db6f12c6e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/zephytiju
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f7909f46814d6c1468d77b95dcbc6a4db6f12c6e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file meridian_storage_oci-1.0.0-py3-none-any.whl.
File metadata
- Download URL: meridian_storage_oci-1.0.0-py3-none-any.whl
- Upload date:
- Size: 38.4 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 |
0e372765f54ef982e9f45af45d5f6993b6394d9d611296510d44594dc8c79c15
|
|
| MD5 |
8953908a576cdbaad0ca1dbe312244df
|
|
| BLAKE2b-256 |
e80521a729b19456519fc63d7b1dd76d12fe5193be28589574f94e686c07c3a6
|
Provenance
The following attestation bundles were made for meridian_storage_oci-1.0.0-py3-none-any.whl:
Publisher:
release.yml on zephytiju/meridian-storage-oci
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meridian_storage_oci-1.0.0-py3-none-any.whl -
Subject digest:
0e372765f54ef982e9f45af45d5f6993b6394d9d611296510d44594dc8c79c15 - Sigstore transparency entry: 2606016039
- Sigstore integration time:
-
Permalink:
zephytiju/meridian-storage-oci@f7909f46814d6c1468d77b95dcbc6a4db6f12c6e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/zephytiju
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f7909f46814d6c1468d77b95dcbc6a4db6f12c6e -
Trigger Event:
workflow_dispatch
-
Statement type: