Skip to content

docs(stack-drizzle): conversion-focused README rewrite#775

Open
coderdan wants to merge 2 commits into
mainfrom
docs/stack-drizzle-readme
Open

docs(stack-drizzle): conversion-focused README rewrite#775
coderdan wants to merge 2 commits into
mainfrom
docs/stack-drizzle-readme

Conversation

@coderdan

@coderdan coderdan commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

The @cipherstash/stack-drizzle README documented mechanics without making the case for the package. We're about to file an upstream drizzle-orm bug report that links here, so the landing page should sell.

Rewritten borrowing the structure Dan built for the root README in #526:

  • Bold differentiator lead — searchable, application-level encryption for Drizzle + Postgres — followed by the zero-knowledge trust line (unique key per value via ZeroKMS, breach leaks ciphertext only) with the security-architecture link.
  • Money shot before setup: an encrypted schema + a free-text/range/ORDER BY query over ciphertext, then a query-type table mapping the ops.* surface to the searchable-encryption docs anchors.
  • Account-first quick start — free tier sign-up + npx stash init, with the manual install as the alternative.
  • How it works — EQL payloads, searchable terms, extractor-backed functional indexes, ZeroKMS per-value keys, platform support.
  • Reference-style links centralised at the bottom, utm_source=github&utm_medium=stack_drizzle_readme on cipherstash.com links (same pattern as docs: refresh root README around the three Stack pillars #526, distinct medium).
  • Retained: the full v3 example, the encryptedIndexes section, the v2 legacy section, and the @cipherstash/drizzle disambiguation note.

One deliberate divergence from #526's root draft: that README is doc-driven and shows ops.ilike/cipherstashIlike; this one ships in the npm tarball today, so every API named here is the shipped surface (ops.matches/ops.contains).

Changeset: @cipherstash/stack-drizzle patch (README ships in the tarball).

https://claude.ai/code/session_01BkEpKJC3975NHsKgMrCT8R

Summary by CodeRabbit

  • Documentation
    • Refreshed the stack-drizzle README to better explain application-level encryption with Drizzle ORM and PostgreSQL, including “Encrypted columns. Real Drizzle queries.”
    • Updated Quick Start and v3 example setup, imports, and query predicates.
    • Expanded guidance on indexing encrypted columns, including when encrypted predicates can use indexes and how to configure encrypted expression indexes (including JSON selectors).
    • Added a clearer “How it works” section covering EQL payloads, searchable terms, key handling concepts, and required SQL setup.

The package README documented mechanics without ever making the case.
Rewritten along the lines of the root-README refresh in #526: a bold
searchable-encryption lead, the zero-knowledge trust line up front, a
ciphertext-queries example before any setup, a query-type table mapping
the ops.* surface to the docs, an account-first quick start, a
How-it-works section on EQL payloads and searchable terms, and
reference-style links with UTM attribution (stack_drizzle_readme).
The quickstart, indexing, and v2-legacy sections are retained. All API
claims match the shipped surface (ops.matches/contains, not the
doc-driven ilike forms from #526's root draft). No code changes.

Claude-Session: https://claude.ai/code/session_01BkEpKJC3975NHsKgMrCT8R
@coderdan
coderdan requested a review from a team as a code owner July 23, 2026 13:02
@changeset-bot

changeset-bot Bot commented Jul 23, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: b668412

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 11 packages
Name Type
@cipherstash/stack-drizzle Patch
@cipherstash/bench Patch
@cipherstash/basic-example Patch
stash Patch
@cipherstash/stack Patch
@cipherstash/stack-supabase Patch
@cipherstash/prisma-next Patch
@cipherstash/wizard Patch
@cipherstash/e2e Patch
@cipherstash/test-kit Patch
@cipherstash/prisma-next-example Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c8891936-c3a3-4d81-8293-99035a0aca0d

📥 Commits

Reviewing files that changed from the base of the PR and between 92631f9 and b668412.

📒 Files selected for processing (1)
  • packages/stack-drizzle/README.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/stack-drizzle/README.md

📝 Walkthrough

Walkthrough

The PR refreshes the Stack Drizzle README with updated encryption, querying, setup, indexing, EQL, and legacy-version guidance, and adds a patch changeset. No implementation or exported API changes are included.

Changes

Stack Drizzle documentation

Layer / File(s) Summary
Overview and setup documentation
.changeset/stack-drizzle-readme.md, packages/stack-drizzle/README.md
Adds a patch changeset and rewrites the README introduction, query examples, installation steps, and EQL v3 setup flow.
Query, indexing, and EQL guidance
packages/stack-drizzle/README.md
Updates query and decryption examples, expands encryptedIndexes and ANALYZE guidance, documents encrypted JSON indexes and EQL payloads, and refreshes legacy and documentation links.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

Suggested reviewers: calvinbrewer

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the stack-drizzle README rewrite, though it is broader than the encryption-specific details.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/stack-drizzle-readme

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

…exes, bounded trade-off

Replaces the trust blockquote with the team's threat-model-first framing:
who normally sees everything, per-value identity-derived keys with audited
decryption, how queries still work (deterministic encryption / ORE / bloom
filters over native Postgres indexes), and the explicit leakage boundary —
equality and order relationships, nothing else; not FHE.

Claude-Session: https://claude.ai/code/session_01BkEpKJC3975NHsKgMrCT8R
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.

2 participants