RFC: Signed receipts for Haystack pipeline component calls
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- ai, observability, security
Direzione di ricerca
Inizia esaminando i punti di ingresso di Haystack's Pipeline e la telemetria e il tracing esistenti dei componenti, quindi confronta il ReceiptMiddleware proposto con le primitive di firma Python citate e i campi del receipt. Definisci l'architettura e i confini di integrazione prima dell'implementazione. Il lavoro è completato quando un'integrazione opzionale concordata della pipeline può emettere receipt verificabili indipendentemente, comprendenti i dati di invocazione e gli identificatori di trace elencati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
Haystack pipelines chain multiple components (retrievers, generators, rankers) in production NLP workflows, but there is no cryptographic audit trail of component-level decisions. For enterprise RAG deployments, compliance teams need to prove: which retriever was used, what documents were ranked, what the generator produced, and that none of this was altered after the fact.
Proposal
Add an optional ReceiptSigningComponent (or pipeline middleware) that wraps Haystack components and emits Ed25519-signed receipts for each invocation:
from haystack import Pipeline
from protect_mcp import ReceiptMiddleware
pipe = Pipeline()
pipe.add_component("retriever", InMemoryBM25Retriever(...))
pipe.add_component("generator", OpenAIGenerator(...))
pipe.add_middleware(ReceiptMiddleware(policy="enterprise.json"))
Each receipt captures:
- Component name and type
- Input/output SHA-256 digests
- Policy evaluation result (allow/deny)
- Ed25519 signature
- OpenTelemetry trace/span IDs for correlation
Why Haystack
Haystack already has excellent pipeline telemetry and component tracing. Receipt signing is a natural extension — it turns existing observability data into verifiable evidence that can be independently validated offline.
References
- npm: https://www.npmjs.com/package/protect-mcp (MIT, v0.5.3)
- Python SDK: https://pypi.org/project/scopeblind/ (the signing primitives are also available in Python)
- IETF Draft: https://datatracker.ietf.org/doc/draft-farley-acta-signed-receipts/
- Prior integrations: Mission Control, Cedar for Agents, Microsoft AGT, LlamaIndex
Happy to discuss architecture and submit a PR.
- Lingua principale
- Python
- Stelle
- 26.7k
- Fork
- 3.3k
- Merge medio
- 1g 15h
- PR unite (30g)
- 265
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di deepset-ai/haystack
-
CSVToDocument accepts an unsupported conversion_mode and silently converts in row modeForse già presa @Lesereingrape l’ha presa 15 giorni fa. ApertaP3
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
deepset-ai/haystack#13070 ·
I maintainer di solito rispondono entro 1 giorno
-
PPTXToDocument drops soft line breaks when link_format is markdown or plainForse già presa @bogdankostic l’ha presa 5 giorni fa. ApertaP3
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
deepset-ai/haystack#13043 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
InMemoryDocumentStore: count_unique_metadata_by_filter and get_metadata_field_unique_values disagree on int/float/bool valuesForse già presa @julian-risch l’ha presa 15 giorni fa. ApertaP3
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
deepset-ai/haystack#13040 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
AutoMergingRetriever raises ValueError when a matched document has no parent (for example the root document)Forse già presa @julian-risch l’ha presa 16 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
deepset-ai/haystack#13029 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
CSVToDocument row mode fails on CR-separated CSV inputForse già presa @julian-risch l’ha presa 15 giorni fa. ApertaP3
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
deepset-ai/haystack#13022 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di deepset-ai/haystack
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Graphify-Labs/graphify#4524 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
topoteretes/cognee#5982 ·
I maintainer di solito rispondono entro 1 giorno
-
Patches of derivations with `__structuredAttrs` are ignoredForse già presa @KiaraGrouwstra l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 81/100
nix-community/vulnix#184 ·
-
New InternshipApertanew_internship
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
aws-samples/sample-per-model-bedrock#295 ·
I maintainer di solito rispondono entro 1 giorno