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 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.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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meridian_plugin_config_artifact-1.0.0.tar.gz (57.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meridian_plugin_config_artifact-1.0.0-py3-none-any.whl (53.7 kB view details)

Uploaded Python 3

File details

Details for the file meridian_plugin_config_artifact-1.0.0.tar.gz.

File metadata

File hashes

Hashes for meridian_plugin_config_artifact-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4192c7a582f865e64bde96bb9452e5cc9c1c048c61da0db1564d17914fdeaac5
MD5 11f30a338f026e8f73841ef6dd3ec8a5
BLAKE2b-256 2658293e64aba283bfc9d52ad4e02b33c23a08b689721a3a49e5f55731894233

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meridian_plugin_config_artifact-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for meridian_plugin_config_artifact-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 282d6fcfac5ed6ae643ebeb6b550b46101fad5455ac1f709a3a70a6ad524f0ab
MD5 c64c97df72aeb04eab5c368482292967
BLAKE2b-256 74445dac11b0ed3da0ca4fc21e95e3fea6df2afcaa133d7f277313c4197e85e1

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 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