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 1.0.1, Semantics 2.0.0, Query 1.0.2, and Object Common 1.0.2 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 or oci 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 validated combination is Core 1.0.1, Semantics 2.0.0, PostgreSQL 2.1.1, Query/Object Common/S3 1.0.2, OCI 1.0.3, and ResourceStore 1.1.0. Both Object backends pass the same ResourceStore acceptance suite through normal Core discovery. See docs/put-mode-validation.md for compatibility validation. 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.1.0

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.1.0
File Size Uploaded
meridian_plugin_config_artifact-1.1.0.tar.gz 70.4 kB Details

Built distribution (wheel)

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

Total release size: 125.0 kB

Release files / meridian_plugin_config_artifact-1.1.0.tar.gz

Download URL meridian_plugin_config_artifact-1.1.0.tar.gz
Size 70.4 kB
Tags Source
SHA-256 checksum
How to use checksums
143c847b361b48c95fabcb458097b2b02ed57805633342b89daf114099d6a71e
BLAKE2b-256 checksum
How to use checksums
cdd9ac4dc4d7c790333fd5b5389fa1dfdcfa5ef0379da0c7df5354012f1ab18c
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 7, 2026.

Transparency log

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

Download URL meridian_plugin_config_artifact-1.1.0-py3-none-any.whl
Size 54.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd35211966aa37e21e7bf940ff6751bf94d97276022290f792106413d9d88e35
BLAKE2b-256 checksum
How to use checksums
9ae0a53869a125c7b3b9d3af14193320661990b0cc0a3422c032e1d3fa50259e
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 7, 2026.

Transparency log

Release history Release notifications | RSS feed

1.1.2

2 release files

1.1.1

2 release files

This release

1.1.0 This release

2 release files

1.0.3

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