Skip to content

Add Inspeximus document store integration - #554

Open
DanceNitra wants to merge 1 commit into
deepset-ai:mainfrom
DanceNitra:add-inspeximus
Open

Add Inspeximus document store integration#554
DanceNitra wants to merge 1 commit into
deepset-ai:mainfrom
DanceNitra:add-inspeximus

Conversation

@DanceNitra

Copy link
Copy Markdown

Adds a Document Store integration page for Inspeximus (MIT, on PyPI as inspeximus).

InspeximusDocumentStore implements Haystack's DocumentStore protocol as a drop-in for InMemoryDocumentStore, with two differences that matter for long-running or regulated pipelines: it persists to a file, and its delete_documents removes the value from disk (with receipts enabled, leaving a signed, content-free tombstone so a deletion is provable).

It is a faithful drop-in — the duplicate policies (SKIP, OVERWRITE, NONE, FAIL) match InMemoryDocumentStore exactly (captured from the reference, not guessed), and filtering reuses Haystack's own document_matches_filter, so FilterRetriever and pipeline serialization work unchanged. Parity is verified in CI against InMemoryDocumentStore, operation by operation, with a falsification control that must fail.

The usage example in the page was run end to end against haystack-ai 3.0.0 and inspeximus 1.29.0, and produces the output shown.

No logo included for now; happy to add one if you'd like it before merge.

This page was drafted with AI assistance; a human reviewed it and ran the example.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@DanceNitra
DanceNitra requested a review from a team as a code owner July 22, 2026 12:43
@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown

Someone is attempting to deploy a commit to the deepset Team on Vercel.

A member of the Team first needs to authorize it.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

  • Adds a new integration documentation page for the inspeximus Python package, describing InspeximusDocumentStore as a persistent, file-backed Haystack DocumentStore with provable deletion semantics.

Changes:

  • Adds integrations/inspeximus.md with overview, install instructions, and end-to-end usage snippets.
  • Documents persistence + receipted erasure behavior and positions it as a drop-in alternative to InMemoryDocumentStore.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +31 to +33
- **Its delete leaves nothing behind.** `delete_documents` removes the value from the bytes on disk, and
with receipts enabled it writes a signed, content-free tombstone — so a deletion made for a data-subject
request is provable, not merely done.
repo: https://github.com/DanceNitra/inspeximus
type: Document Store
report_issue: https://github.com/DanceNitra/inspeximus/issues
version: Haystack 2.0

@kacperlukawski kacperlukawski left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @DanceNitra Could you please help me understand if the integration comes from an actual need of any user? I would like to know if that's going to be helpful for broader audience.

@DanceNitra

Copy link
Copy Markdown
Author

Honest answer: no, this didn't come from a user request. I built the adapter because inspeximus ships a document store and Haystack was a natural target, and I wanted the "drop-in" claim to be tested rather than asserted — so it runs against your own InMemoryDocumentStore in CI, with a control that deliberately breaks ours and requires the comparison to fail.

But that's an answer about correctness, not about demand, and demand is what you asked about. I don't have a user to point to. If your bar for the integrations catalogue is demonstrated need, this doesn't clear it, and I'd rather you close or park it than have it sit there implying an adoption that doesn't exist.

For what it's worth on the "broader audience" question: the thing inspeximus does differently from an in-memory store is deletion — delete_documents removes the value from disk, not just from the index — plus provenance on writes. That matters to people with a retention or erasure obligation and is irrelevant to everyone else, so it's a narrow audience by design.

Happy either way. Thanks for looking at it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants