Meridian Configuration and Artifact Plugin
meridian-plugin-config-artifact is the Apache-2.0 licensed Meridian V1 library for
publishing and consuming versioned configuration and built runtime artifacts. It is an embeddable
plugin, never a service or a Catalog.
Configuration payloads remain queryable and mutable through structured database semantics until publication. A published version stores its validated JSON inline and is immutable. Artifact bytes are written as immutable Objects; only their logical metadata, provenance, lifecycle state, and channel pointers are structured records.
Install
python -m pip install meridian-plugin-config-artifact
Python 3.12–3.14 and the exact Meridian 1.0.0 Core, Semantics, Query, and Object Common releases
are supported. Add meridian-plugin-config-artifact[s3] or [oci] only to co-install a
released provider; this library never imports either provider or its SDK.
Compose
The Artifact publisher and Object Adapter must share the same process-local payload registry. Use the package registry before constructing the runtime:
from meridian_storage.adapters.s3 import S3AdapterFactory
from meridian_storage.plugins.config_artifact import (
ResourceStore,
default_payload_registry,
)
payloads = default_payload_registry()
adapter_factory = S3AdapterFactory(payloads=payloads)
# Construct and start Meridian with Platform-IaC-rendered bindings, the released
# structured/object Catalog providers, ConfigArtifactSchemaProvider, and adapter_factory.
store = ResourceStore(meridian, payload_registry=payloads)
default_payload_registry() is deliberately truthy even while empty so released V1 Adapter
factory constructors preserve the injected object. Applications may instead inject their own
already-shared PayloadRegistry.
The schema entry point contributes these logical Resources by default:
structured:resources.metadatastructured:resources.channelsstructured:resources.provenancestructured:resources.orphan-candidatesobject:resources.objects
Platform IaC owns their physical provisioning, binding, identity/ACL, migrations, recovery, and lifecycle. Constructor arguments accept alternate logical Resource refs; no physical locator is accepted.
Publish configuration
receipt = store.publisher.publish_configuration(
namespace="checkout",
kind="service",
name="runtime",
version="2026.08.26",
payload={"endpoint": "https://api.example", "replicas": 3},
schema="application.service-config@1.0.0",
actor="release-bot",
version_order=20260826,
channel="production",
expected_pointer_version=4,
)
The profile-specific surface from the locked LLD is also available directly. Publication receipts
expose their immutable ref for a later compare-and-set promotion:
revision = store.configurations.publish(
namespace="checkout",
kind="service",
name="runtime",
version="2026.08.27",
payload={"endpoint": "https://api.example", "replicas": 3},
schema="application.service-config@1.0.0",
actor="release-bot",
)
store.configurations.promote(
revision.ref,
"production",
expected_pointer_version=5,
actor="release-bot",
)
The exact Schema is resolved through Core and applied locally with Meridian Semantics before any
write. A retry with the same immutable content is idempotent; a different digest or immutable
metadata at the same logical identity raises IdentityConflict.
Publish and consume an artifact
receipt = store.publisher.publish_artifact(
namespace="recommendations",
kind="model",
name="ranker",
version="v42",
payload=model_bytes,
media_type_value="application/vnd.example.model",
actor="model-builder",
)
resolved = store.consumer.artifacts.exact(receipt.resource.identity)
with store.consumer.artifacts.open(resolved) as stream:
deploy(stream)
Bytes, streams, PayloadSource objects, factories, and pre-registered PayloadReference values
are supported. Streaming inputs must declare SHA-256 digest and byte length. Full reads are checked
again at the consumer boundary; range reads use the released Object Catalog verification contract.
Artifact publication commits the Object first, then structured metadata and provenance. If the
second phase fails, IncompletePublication is raised and an idempotently addressed orphan
candidate is recorded. discover_orphans() scans only bounded logical Object prefixes and never
deletes bytes.
Resolution and lifecycle
Configuration and Artifact consumers each support:
exact(ResourceIdentity(...))latest(namespace, kind, name)usingversion_order, then creation timechannel(namespace, kind, name, channel)
Channel promotion requires expected_pointer_version; concurrent writers cannot silently win.
Published versions may be deprecated but the library forbids deletion. It contains no bootstrap
configuration, provider credentials, Adapter/Engine selection, NativeQuery, endpoint, or physical
storage name.
See architecture, operations, and the checked-in public contract.
Metadata
Release files for meridian-plugin-config-artifact 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| meridian_plugin_config_artifact-1.0.2.tar.gz | 60.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| meridian_plugin_config_artifact-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 114.2 kB
Release files / meridian_plugin_config_artifact-1.0.2.tar.gz
| Download URL | meridian_plugin_config_artifact-1.0.2.tar.gz |
|---|---|
| Size | 60.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
76dfacbe7c5437fa4302a25cb7bf11472d9793a7676f8a9f068f098f818c766e
|
|
BLAKE2b-256 checksum How to use checksums |
9ec8d12f5eb3fc2c491339f472a7d1e3d5ccc6faf202eb05cd3de4fb694da15c
|
| 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 Aug 28, 2026.
Transparency logRelease files / meridian_plugin_config_artifact-1.0.2-py3-none-any.whl
| Download URL | meridian_plugin_config_artifact-1.0.2-py3-none-any.whl |
|---|---|
| Size | 53.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d16a9914872ae73e972176c9b075cd291297eb5b30ca3a1d99d8661f049cf8d6
|
|
BLAKE2b-256 checksum How to use checksums |
df02a41d6be8a1187b84283e8fe2916b191f5b6b59f314c7f5423183dc2cb2bb
|
| 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 Aug 28, 2026.
Transparency log