Meridian OpenSearch Adapter
meridian-storage-opensearch is the independently released Meridian V1 adapter for eventually
consistent structured Catalog search projections on OpenSearch. It is one Python distribution
in one public Apache-2.0 repository.
Capabilities
The sole operation surface is meridian.structured.search@1.0.0. The adapter provides:
- closed, fingerprinted mappings for full-text and declared document-path projections;
- unrestricted BCP 47 language metadata with ICU fallback, with English and Chinese initial conformance;
- deterministic document identities, externally versioned upserts, tombstones, and bounded bulk partial outcomes;
- mapping-first Query V1 translation for the released logical operator allowlist;
- mandatory tenant/scope, Resource, and tombstone filters;
- signed
search_aftercursors, plus deployment-conditional point-in-time cursors; - logical
RecordRefresults, bounded facets/highlights, and fail-closed partial-search handling; - explicit generation create/verify/activate/rollback/retire hooks with atomic alias cutover; and
- authenticated engine, ICU plugin, topology, health, alias, analyzer, replica, and mapping probes.
The exact capability manifest, historical tested engine releases, and hard limits are available from
adapter_descriptor(), capability_manifest(), and query_capabilities().
Install
python -m pip install meridian-storage-opensearch==1.1.0
The distribution consumes Core >=1.1,<2, Query >=1.0.3,<2, and Semantics >=2.0.1,<3.
These bounds retain the required public API majors and the released dependency repair.
The deployment selects exact versions; the CI recipe locks Core 1.1.0, Query 1.0.3 and
Semantics 2.0.1 with hashes. Historical tested engine versions never gate startup.
Untested combinations remain unverified. Artifact hashes and design revisions are recorded in
compatibility.json.
Configure through a Meridian Binding
Platform or Vangu IaC supplies the endpoint or service reference, secret references, compiled layouts, topology expectations, and exact capability fingerprint. Credentials never belong in an endpoint URL or settings document.
{
"adapterId": "org.meridian.storage.opensearch",
"engineProfile": "opensearch",
"engineVersion": "2.19.1",
"serviceRef": "platform://search/case-index",
"physicalNamespace": "meridian",
"requiredCapabilityFingerprint": "sha256:<64 hex characters>",
"settings": {
"indexPrefix": "meridian",
"layouts": {
"structured:investigation.articles": {
"formatVersion": "meridian.opensearch.layout.v1"
}
},
"requiredPlugins": ["analysis-icu"],
"pitEnabled": true
}
}
layouts must contain the complete value returned by MappingCompiler.compile(...).to_dict();
the abbreviated object above only illustrates placement. Use
expected_capability_fingerprint(engine_version, settings) when producing the Binding pin.
Projection and search APIs
Adapter-internal projection workers use ProjectionExecutor with an IaC-selected write alias.
Consumers do not receive this object and never see aliases, index names, mappings, analyzers, or
OpenSearch DSL. Consumers submit released mapping-first Expressions or serialized Operations
through Meridian Core.
The projection is always derived and eventually consistent. A successful authoritative write does
not imply immediate search visibility. refresh=wait_for is available to controlled projection
and conformance workflows; it is not an authoritative transaction guarantee.
Ownership boundary
This package owns translation, mappings, analysis definitions, indexing requests, cursor behavior, generation hooks, probes, and redacted engine-failure normalization. It does not create a Search or Projection Catalog and does not expose native queries, regex, wildcard/query-string syntax, scripts, credentials, endpoints, or physical lifecycle details.
Platform/Vangu IaC owns engine selection, provisioning/reference, state, identity and ACLs, migration orchestration, recovery, and lifecycle. See architecture, migrations, and the failure model.
Verify
python -m pytest -q tests/unit tests/contract tests/packaging
./scripts/run-single-conformance.sh
./scripts/run-cluster-conformance.sh
python -m build
python scripts/verify_artifacts.py dist
The Docker harness locks OpenSearch 2.19.1 and 2.19.3 by digest and installs matching analysis-icu
plugin. Cluster conformance uses three eligible/data nodes, one replica, green-health verification,
and a deliberate node loss. See conformance evidence.
License and security
Licensed under the Apache License 2.0. See LICENSE, NOTICE, and SECURITY.md.
See release validation for the gate inventory and verified combinations.
Metadata
Release files for meridian-storage-opensearch 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| meridian_storage_opensearch-1.1.0.tar.gz | 123.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| meridian_storage_opensearch-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 182.7 kB
Release files / meridian_storage_opensearch-1.1.0.tar.gz
| Download URL | meridian_storage_opensearch-1.1.0.tar.gz |
|---|---|
| Size | 123.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b91b6ea6bb9acb72c42db164331af8b9982f7f1f8aa9956eaeec4986d825941b
|
|
BLAKE2b-256 checksum How to use checksums |
5435e0d64c03e6ffd8c046e666514d241788a7bc3ec585649f870fb8a18429e9
|
| 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 8, 2026.
Transparency logRelease files / meridian_storage_opensearch-1.1.0-py3-none-any.whl
| Download URL | meridian_storage_opensearch-1.1.0-py3-none-any.whl |
|---|---|
| Size | 59.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c915f869debc494e356d3007a0b48de805dcea80f33acd264792cad134aaac41
|
|
BLAKE2b-256 checksum How to use checksums |
51fb5813d83aab6f9ca56fc1ae90092f60f166a9f1eda645973c7c08a362a1e1
|
| 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 8, 2026.
Transparency log