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.1.0,<2, Semantics >=2.0.1,<3, Query >=1.0.3,<2, and Object Common >=1.0.3,<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 release-validation selection is Core 1.1.0, Semantics 2.0.1, PostgreSQL 2.2.0, Query/Object Common/Projection 1.0.3, S3 1.0.4, OCI 1.1.0, and ResourceStore 1.1.2.

Version 1.1.2 corrects deprecation collection-result handling and accepts whole-second UTC storage values while keeping six-digit canonical output. See upgrade and reproduction notes for the PostgreSQL 2.3.1 validation selection. Public dependency bounds describe API compatibility; this exact selection and its hashes live in requirements-validation.txt. See dependency compatibility. 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.2

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.2
File Size Uploaded
meridian_plugin_config_artifact-1.1.2.tar.gz 121.1 kB Details

Built distribution (wheel)

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

Total release size: 176.7 kB

Release files / meridian_plugin_config_artifact-1.1.2.tar.gz

Download URL meridian_plugin_config_artifact-1.1.2.tar.gz
Size 121.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3e01961aedcb5ca38bd1650db6a0a276d8d93039417e49a020507593d7930fec
BLAKE2b-256 checksum
How to use checksums
f9300683e26338eae3be6259337ad9ad29826c36afc4dbbebe958f6d34d59786
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 9, 2026.

Transparency log

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

Download URL meridian_plugin_config_artifact-1.1.2-py3-none-any.whl
Size 55.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc6f9cd65a7dd35ffe9946a67d055a7836bdf8de39ed78bc98c62747c3dbdf6b
BLAKE2b-256 checksum
How to use checksums
93a06a8bfaabd94cbef1224c50f0207dd0710aae7aa9e581fe95cfaa39682b72
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 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.2 This release

2 release files

1.1.1

2 release files

1.1.0

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