Metadata-Version: 2.4
Name: algovoi-keystone-elasticsearch
Version: 0.1.3
Summary: Bind Elasticsearch writes to the AlgoVoi keystone -- wrap any elasticsearch-py client and every index / update / delete gets a content-addressed execution_ref (keystone-only edition, Apache-2.0)
Author-email: AlgoVoi <chopmob@gmail.com>
License: Apache-2.0
Keywords: elasticsearch,search,index,opensearch,keystone,execution_ref,jcs,rfc8785,algovoi
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Database
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: algovoi-execution-ref>=0.1.0
Dynamic: license-file

# algovoi-keystone-elasticsearch

[![Keystone Integration](https://img.shields.io/badge/Keystone-integration-7c8aa0)](https://docs.algovoi.co.uk/keystone)

Bind Elasticsearch writes to the AlgoVoi keystone -- every index / update / delete on a wrapped client gets a content-addressed execution_ref. Open, keystone-only edition, Apache-2.0. Byte-compatible with `algovoi-execution-ref`.
Available on request -- see https://docs.algovoi.co.uk/keystone-connectors

```python
from algovoi_keystone_elasticsearch import keystone_elasticsearch

es = keystone_elasticsearch(Elasticsearch(...), decision_ref="sha256:...")
es.index(index="orders", id="o1", document=doc)
es.execution_ref   # binds that write (scope = index/doc_id) to the keystone decision
```

Wraps write operations (index, create, update, delete, bulk); reads (search, get, ...) pass through
untouched. A failed write is recorded `FAILED`. No elasticsearch dependency. Or compute standalone
with `es_execution_ref(...)`.

A failed operation is recorded with outcome `FAILED`; `tamper_detected(...)` recomputes any
binding offline.

## Keystone-only edition

The open edition binds and verifies each operation. The signed, hash-linked chain of operations
(PQC + CCC ingest) is the commercial tier.

## License

Apache-2.0. Copyright AlgoVoi.
