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.
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_plugin_config_artifact-1.0.0.tar.gz.
File metadata
- Download URL: meridian_plugin_config_artifact-1.0.0.tar.gz
- Upload date:
- Size: 57.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 |
4192c7a582f865e64bde96bb9452e5cc9c1c048c61da0db1564d17914fdeaac5
|
|
| MD5 |
11f30a338f026e8f73841ef6dd3ec8a5
|
|
| BLAKE2b-256 |
2658293e64aba283bfc9d52ad4e02b33c23a08b689721a3a49e5f55731894233
|
Provenance
The following attestation bundles were made for meridian_plugin_config_artifact-1.0.0.tar.gz:
Publisher:
release.yml on zephytiju/meridian-plugin-config-artifact
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meridian_plugin_config_artifact-1.0.0.tar.gz -
Subject digest:
4192c7a582f865e64bde96bb9452e5cc9c1c048c61da0db1564d17914fdeaac5 - Sigstore transparency entry: 2609194326
- Sigstore integration time:
-
Permalink:
zephytiju/meridian-plugin-config-artifact@043da3455f9ca9f2a419286615f0f8b9c6972544 -
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@043da3455f9ca9f2a419286615f0f8b9c6972544 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file meridian_plugin_config_artifact-1.0.0-py3-none-any.whl.
File metadata
- Download URL: meridian_plugin_config_artifact-1.0.0-py3-none-any.whl
- Upload date:
- Size: 53.7 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 |
282d6fcfac5ed6ae643ebeb6b550b46101fad5455ac1f709a3a70a6ad524f0ab
|
|
| MD5 |
c64c97df72aeb04eab5c368482292967
|
|
| BLAKE2b-256 |
74445dac11b0ed3da0ca4fc21e95e3fea6df2afcaa133d7f277313c4197e85e1
|
Provenance
The following attestation bundles were made for meridian_plugin_config_artifact-1.0.0-py3-none-any.whl:
Publisher:
release.yml on zephytiju/meridian-plugin-config-artifact
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meridian_plugin_config_artifact-1.0.0-py3-none-any.whl -
Subject digest:
282d6fcfac5ed6ae643ebeb6b550b46101fad5455ac1f709a3a70a6ad524f0ab - Sigstore transparency entry: 2609194935
- Sigstore integration time:
-
Permalink:
zephytiju/meridian-plugin-config-artifact@043da3455f9ca9f2a419286615f0f8b9c6972544 -
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@043da3455f9ca9f2a419286615f0f8b9c6972544 -
Trigger Event:
workflow_dispatch
-
Statement type: