Skip to main content

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, Core/Semantics/Query 1.0.0, and Object Common 1.0.1 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

Artifact bytes use Object Common's shared process-local default registry. Install the s3 extra and start Meridian through installed-component discovery using deployment-owned bindings and migrations:

from meridian_storage import Meridian
from meridian_storage.plugins.config_artifact import ResourceStore

meridian = Meridian.from_environment()
meridian.start()
store = ResourceStore(meridian)

Core rejects duplicate component registration. Do not also inject an S3AdapterFactory when the installed s3 entry point is present. default_payload_registry() remains the ResourceStore accessor and now returns Object Common's default. Passing this registry explicitly to ResourceStore is also supported. Custom SPI compositions may share an explicit PayloadRegistry with S3AdapterFactory(payloads=registry); S3 1.0.1 preserves that exact object even when it is empty.

The target combination is Core/Semantics/Query/PostgreSQL 1.0.0, Object Common/S3 1.0.1, and ResourceStore 1.0.3. OCI 1.0.1 retains the existing optional conformance set. Regenerate deployment manifest fingerprints after upgrading package versions.

The schema entry point contributes these logical Resources by default:

  • structured:resources.metadata
  • structured:resources.channels
  • structured:resources.provenance
  • structured:resources.orphan-candidates
  • object: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) using version_order, then creation time
  • channel(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.3

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-plugin-config-artifact 1.0.3
File Size Uploaded
meridian_plugin_config_artifact-1.0.3.tar.gz 65.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for meridian-plugin-config-artifact 1.0.3
File Interpreter ABI Platform
meridian_plugin_config_artifact-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 119.9 kB

Release files / meridian_plugin_config_artifact-1.0.3.tar.gz

Download URL meridian_plugin_config_artifact-1.0.3.tar.gz
Size 65.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b88fb3370d240664ae999c703a7eddfc3e0f6a630b61300bd50f921aa323696e
BLAKE2b-256 checksum
How to use checksums
fb2ce7aa309114156e97187c40c0e070d004cda73171574c5a91bd3c5e4cbc71
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 5, 2026.

Transparency log

Release files / meridian_plugin_config_artifact-1.0.3-py3-none-any.whl

Download URL meridian_plugin_config_artifact-1.0.3-py3-none-any.whl
Size 54.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0bc0811f7b1f0da54b793b85354a23a8751fa049281c3c12cf5cf320acf473c7
BLAKE2b-256 checksum
How to use checksums
6c113018a356d33b94ac47cdebe963aa28766caab3763b0be1361f5fe0f6cd8e
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 5, 2026.

Transparency log

Release history Release notifications | RSS feed

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

This release

1.0.3 This release

2 release files

1.0.2

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