Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
bdfb2a2
feat(v2): scaffold the V2 information architecture (CIP-3325)
coderdan Jul 2, 2026
af92d2c
fix(v2): quote colon-bearing frontmatter descriptions; unshadow /refe…
coderdan Jul 2, 2026
a6a4274
feat(v2): serve the /docs landing inside the docs navigation; redirec…
coderdan Jul 2, 2026
5c34cef
docs(v2): note landing-page state in IA.md checklist
coderdan Jul 2, 2026
b604d4f
fix(v2): merge folder index pages into their nav rows
coderdan Jul 2, 2026
f5c9e81
fix(v2): no chevron on nav items without sub-pages
coderdan Jul 2, 2026
8514932
fix(v2): make all MDX links basePath-relative
coderdan Jul 2, 2026
d415a48
feat(v2): EQL v3 reference section (CIP-3326)
coderdan Jul 2, 2026
dd2a8d6
refactor(v2): restructure EQL reference Tailwind-style (CIP-3326)
coderdan Jul 2, 2026
9cecb45
refactor(v2): SEM specifiers, Tailwind-style variant enumeration, pay…
coderdan Jul 2, 2026
127f0a6
refactor(v2): split numbers/dates pages, Example headings, separate O…
coderdan Jul 2, 2026
123a544
docs(v2): track EQL 3.0.0 release-alignment gate in IA.md (CIP-3352)
coderdan Jul 2, 2026
896eae5
docs(v2): address Copilot review on EQL reference (PR #38)
coderdan Jul 2, 2026
d0ccd7e
docs(v2): address PR #37 review comments
coderdan Jul 2, 2026
5e5641c
Merge v2 review fixes (placeholder pages, non-permanent redirects)
coderdan Jul 2, 2026
19a132b
Merge pull request #38 from cipherstash/cip-3326-eql-v3-reference
coderdan Jul 2, 2026
4901b0f
docs(v2): add the two-axis content model to IA.md
coderdan Jul 5, 2026
299c1cb
docs(v2): reconcile structure with the two-axis IA
coderdan Jul 6, 2026
9bbdcfb
chore(v2): fix Biome lint errors so `bun run lint` passes clean
coderdan Jul 7, 2026
a900369
chore: ignore .serena/ (local MCP tooling state)
coderdan Jul 7, 2026
064c176
fix(eql-docs): strip Doxygen <tt> tags so a stray one can't break the…
coderdan Jul 8, 2026
fd4ddbb
Merge pull request #52 from cipherstash/fix/eql-docs-strip-tt-tag
coderdan Jul 8, 2026
ccca2e5
docs(v2): prototype — generate the CLI reference from `stash --help`
coderdan Jul 5, 2026
7371257
docs(v2): CLI generator tracks latest published stash + wire into pre…
coderdan Jul 5, 2026
22dd036
docs(v2): hybrid CLI reference — merge hand-authored supplements + ex…
coderdan Jul 5, 2026
6a7ac7b
docs(cli): generate the CLI reference from `stash manifest --json`
coderdan Jul 8, 2026
a10e6b7
docs(v2): add nested EQL v2 reference for existing v2.2 deployments
coderdan Jul 5, 2026
40ee221
fix(cli-docs): escape MDX braces in manifest-derived prose
coderdan Jul 8, 2026
261b69c
docs(cli): address auth-page review feedback
coderdan Jul 8, 2026
7d1dcff
fix(cli-docs): harden manifest loading (Copilot review)
coderdan Jul 8, 2026
f736ffa
Merge pull request #45 from cipherstash/docs/v2-cli-generator
coderdan Jul 8, 2026
089645d
chore(cli-docs): drop the internal tracker ref from the generator header
coderdan Jul 8, 2026
83ae605
Merge pull request #53 from cipherstash/chore/cli-gen-cip3460
coderdan Jul 8, 2026
c9cc2ef
Merge pull request #44 from cipherstash/docs/v2-eql-v2-reference
coderdan Jul 8, 2026
1dd4b98
docs(v2): generate the EQL function catalog from the manifest + drift…
coderdan Jul 5, 2026
1f08e4f
docs(v2): render the EQL domain/variant matrix + extend the drift-lin…
coderdan Jul 5, 2026
200ee2e
docs(v2): switch the domain matrix to the catalog-driven shape
coderdan Jul 6, 2026
1e9f6f8
docs(v2): consume jsonb domains + extractor functions from the manifest
coderdan Jul 6, 2026
7e5f301
docs(eql): schema-aware drift-lint + sweep pages to the shipped surface
coderdan Jul 6, 2026
d5e1910
docs(eql): fix schema placeholders + add 'The three schemas' section
coderdan Jul 6, 2026
a0e9204
docs(eql): rename public.jsonb_query -> eql_v3.query_jsonb
coderdan Jul 8, 2026
79b8833
docs(eql): add an EQL-version banner linking to the v2 reference
coderdan Jul 8, 2026
88b819f
Merge pull request #46 from cipherstash/docs/v2-eql-manifest-consumer
coderdan Jul 8, 2026
78a4a22
docs(eql): install via `stash eql install` CLI
coderdan Jul 8, 2026
e19f7d0
docs(eql): document stash.config.ts
coderdan Jul 8, 2026
4c05054
Merge pull request #51 from cipherstash/eql-install-cli
coderdan Jul 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,8 @@ content/stack/reference/drizzle/latest/
content/stack/reference/drizzle/v*/
.tmp-*
.env.local

# serena (local MCP tooling state)
.serena/
# EQL release manifest extracted by generate-eql-docs.ts (see generate-eql-api-docs.ts)
.eql-manifest.release.json
457 changes: 457 additions & 0 deletions IA.md

Large diffs are not rendered by default.

12 changes: 10 additions & 2 deletions biome.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@
{
"$schema": "https://biomejs.dev/schemas/2.2.0/schema.json",
"$schema": "https://biomejs.dev/schemas/2.3.15/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"ignoreUnknown": true,
"includes": ["**", "!node_modules", "!.next", "!dist", "!build", "!.source"]
"includes": [
"**",
"!node_modules",
"!.next",
"!dist",
"!build",
"!.source",
"!src/app/global.css"
]
},
"formatter": {
"enabled": true,
Expand Down
9 changes: 9 additions & 0 deletions content/docs/concepts/compare/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Comparisons
description: "How CipherStash compares to other approaches to protecting data."
type: concept
---

This section is being built as part of the docs V2 overhaul ([CIP-3307](https://linear.app/cipherstash/issue/CIP-3307)). Track progress in [IA.md](https://github.com/cipherstash/docs/blob/v2/IA.md).

Until it lands, current documentation lives in the [existing docs](/stack).
5 changes: 5 additions & 0 deletions content/docs/concepts/compare/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"title": "Comparisons",
"icon": "Scale",
"pages": ["..."]
}
9 changes: 9 additions & 0 deletions content/docs/concepts/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Concepts
description: "How CipherStash works and how to think about searchable encryption, keys, and identity."
type: concept
---

This section is being built as part of the docs V2 overhaul ([CIP-3307](https://linear.app/cipherstash/issue/CIP-3307)). Track progress in [IA.md](https://github.com/cipherstash/docs/blob/v2/IA.md).

Until it lands, current documentation lives in the [existing docs](/stack).
5 changes: 5 additions & 0 deletions content/docs/concepts/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"title": "Concepts",
"icon": "Lightbulb",
"pages": ["...", "compare"]
}
9 changes: 9 additions & 0 deletions content/docs/concepts/searchable-encryption.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Searchable encryption
description: "How querying encrypted data works, and exactly what each index term reveals."
type: concept
---

This page is being rewritten as part of the docs V2 overhaul ([CIP-3333](https://linear.app/cipherstash/issue/CIP-3333)). Track progress in [IA.md](https://github.com/cipherstash/docs/blob/v2/IA.md).

Until it lands, the current version lives in the [existing docs](/stack/cipherstash/encryption/searchable-encryption).
9 changes: 9 additions & 0 deletions content/docs/get-started/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Get started
description: "What CipherStash is, a 10-minute quickstart, and how to choose your integration path."
type: tutorial
---

This section is being built as part of the docs V2 overhaul ([CIP-3307](https://linear.app/cipherstash/issue/CIP-3307)). Track progress in [IA.md](https://github.com/cipherstash/docs/blob/v2/IA.md).

Until it lands, current documentation lives in the [existing docs](/stack).
5 changes: 5 additions & 0 deletions content/docs/get-started/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"title": "Get started",
"icon": "Rocket",
"pages": ["..."]
}
8 changes: 8 additions & 0 deletions content/docs/guides/deployment/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: Deployment
description: "Deployment documentation — being built as part of the docs V2 overhaul."
---

This section is being built as part of the docs V2 overhaul ([CIP-3307](https://linear.app/cipherstash/issue/CIP-3307)). Track progress in [IA.md](https://github.com/cipherstash/docs/blob/v2/IA.md).

Until it lands, current documentation lives in the [existing docs](/stack).
4 changes: 4 additions & 0 deletions content/docs/guides/deployment/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"title": "Deployment",
"pages": ["..."]
}
8 changes: 8 additions & 0 deletions content/docs/guides/development/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: Development
description: "Development documentation — being built as part of the docs V2 overhaul."
---

This section is being built as part of the docs V2 overhaul ([CIP-3307](https://linear.app/cipherstash/issue/CIP-3307)). Track progress in [IA.md](https://github.com/cipherstash/docs/blob/v2/IA.md).

Until it lands, current documentation lives in the [existing docs](/stack).
4 changes: 4 additions & 0 deletions content/docs/guides/development/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"title": "Development",
"pages": ["..."]
}
9 changes: 9 additions & 0 deletions content/docs/guides/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Guides
description: "Task-oriented guides: development workflow, data migration, deployment, and troubleshooting."
type: guide
---

This section is being built as part of the docs V2 overhaul ([CIP-3307](https://linear.app/cipherstash/issue/CIP-3307)). Track progress in [IA.md](https://github.com/cipherstash/docs/blob/v2/IA.md).

Until it lands, current documentation lives in the [existing docs](/stack).
5 changes: 5 additions & 0 deletions content/docs/guides/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"title": "Guides",
"icon": "Wrench",
"pages": ["..."]
}
8 changes: 8 additions & 0 deletions content/docs/guides/migration/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: Data migration
description: "Data migration documentation — being built as part of the docs V2 overhaul."
---

This section is being built as part of the docs V2 overhaul ([CIP-3307](https://linear.app/cipherstash/issue/CIP-3307)). Track progress in [IA.md](https://github.com/cipherstash/docs/blob/v2/IA.md).

Until it lands, current documentation lives in the [existing docs](/stack).
4 changes: 4 additions & 0 deletions content/docs/guides/migration/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"title": "Data migration",
"pages": ["..."]
}
8 changes: 8 additions & 0 deletions content/docs/guides/troubleshooting/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: Troubleshooting
description: "Troubleshooting documentation — being built as part of the docs V2 overhaul."
---

This section is being built as part of the docs V2 overhaul ([CIP-3307](https://linear.app/cipherstash/issue/CIP-3307)). Track progress in [IA.md](https://github.com/cipherstash/docs/blob/v2/IA.md).

Until it lands, current documentation lives in the [existing docs](/stack).
4 changes: 4 additions & 0 deletions content/docs/guides/troubleshooting/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"title": "Troubleshooting",
"pages": ["..."]
}
9 changes: 9 additions & 0 deletions content/docs/guides/troubleshooting/query-performance.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Query performance
description: "Diagnosing and fixing slow queries on encrypted columns."
type: guide
---

This page is being built as part of the docs V2 overhaul ([CIP-3351](https://linear.app/cipherstash/issue/CIP-3351)). Track progress in [IA.md](https://github.com/cipherstash/docs/blob/v2/IA.md).

Until it lands, the EQL reference covers the essentials: [Indexes](/reference/eql/indexes) walks through `EXPLAIN` verification and large-table index builds, and [Sorting](/reference/eql/sorting) covers extractor-form sort keys.
38 changes: 38 additions & 0 deletions content/docs/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
title: CipherStash Docs
seoTitle: CipherStash Docs — Searchable encryption for Postgres
description: "Searchable field-level encryption, identity-bound keys, and cryptographic audit trails — built into your existing Postgres stack."
type: concept
audience: [developer, cto, ciso]
---

CipherStash encrypts your data at the field level. Every value gets its own
key, bound to an identity — and the ciphertext stays queryable in Postgres.
A breach, a compromised agent, a curious insider: they all see ciphertext
with no key.

## Start here

<Cards>
<Card title="Get started" href="/get-started" description="What CipherStash is and your first encrypted fields in 10 minutes." />
<Card title="Quickstart" href="/stack/quickstart" description="Encrypt, store, query, and decrypt your first fields in any Postgres." />
<Card title="Supabase" href="/integrations/supabase" description="Searchable, application-level encryption for your Supabase project." />
<Card title="Agent skills" href="/stack/reference/agent-skills" description="CipherStash knowledge for Cursor, Copilot, and Claude Code." />
</Cards>

## Browse the docs

<Cards>
<Card title="Integrations" href="/integrations" description="Platforms, ORMs, frameworks, auth providers, and runtimes." />
<Card title="Concepts" href="/concepts" description="How searchable encryption, key management, and identity-aware encryption work." />
<Card title="Guides" href="/guides" description="Development workflow, data migration, deployment, and troubleshooting." />
<Card title="Architecture & security" href="/security" description="Trust model, components, availability, audit, and compliance — for security review." />
<Card title="Solutions" href="/solutions" description="PII protection, HIPAA, AI/RAG, data residency, and provable access." />
<Card title="Reference" href="/reference" description="EQL, the Stack SDK, Auth, the CLI, and Proxy — precise API documentation." />
</Cards>

## AI-ready documentation

Every page is available as clean markdown: append `.mdx` to any page URL, or
fetch the whole corpus via [llms.txt](/llms.txt) and
[llms-full.txt](/llms-full.txt).
9 changes: 9 additions & 0 deletions content/docs/integrations/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Integrations
description: "Set up CipherStash with your platform, ORM, framework, auth provider, and runtime."
type: tutorial
---

This section is being built as part of the docs V2 overhaul ([CIP-3307](https://linear.app/cipherstash/issue/CIP-3307)). Track progress in [IA.md](https://github.com/cipherstash/docs/blob/v2/IA.md).

Until it lands, current documentation lives in the [existing docs](/stack).
5 changes: 5 additions & 0 deletions content/docs/integrations/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"title": "Integrations",
"icon": "Blocks",
"pages": ["..."]
}
20 changes: 20 additions & 0 deletions content/docs/integrations/supabase/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
title: Supabase
description: "Searchable, application-level encryption for your Supabase project — encrypt in your app, query in Postgres."
type: tutorial
components: [encryption, eql, platform]
audience: [developer]
integration:
category: platform
setup: dashboard-required
pairsWith: [drizzle, prisma-next, clerk, nextjs]
---

CipherStash adds application-level encryption to your Supabase project:
sensitive fields are encrypted in your application before they reach Postgres,
and stay queryable with the same Supabase.js calls you already use.

This page is being rebuilt as part of the docs V2 overhaul
([CIP-3328](https://linear.app/cipherstash/issue/CIP-3328)). Until it lands,
the current Supabase integration guide lives at
[CipherStash + Supabase](/stack/cipherstash/supabase).
5 changes: 5 additions & 0 deletions content/docs/integrations/supabase/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"title": "Supabase",
"icon": "Supabase",
"pages": ["..."]
}
12 changes: 12 additions & 0 deletions content/docs/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"pages": [
"index",
"get-started",
"integrations",
"concepts",
"guides",
"security",
"solutions",
"reference"
]
}
8 changes: 8 additions & 0 deletions content/docs/reference/auth/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: Auth
description: "Auth documentation — being built as part of the docs V2 overhaul."
---

This section is being built as part of the docs V2 overhaul ([CIP-3307](https://linear.app/cipherstash/issue/CIP-3307)). Track progress in [IA.md](https://github.com/cipherstash/docs/blob/v2/IA.md).

Until it lands, current documentation lives in the [existing docs](/stack).
4 changes: 4 additions & 0 deletions content/docs/reference/auth/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"title": "Auth",
"pages": ["..."]
}
88 changes: 88 additions & 0 deletions content/docs/reference/cli/auth.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
title: stash auth
description: "Reference for the `stash auth` commands."
type: reference
components: [cli]
verifiedAgainst:
cli: "0.17.0"
---

{/* GENERATED — do not edit. Produced by scripts/generate-cli-docs.ts from `stash manifest --json` (v0.17.0). Re-run `bun run generate-docs:cli` to refresh from the latest published CLI. */}

<Callout type="info">
Generated from **`stash` v0.17.0** via `npx stash@0.17.0 manifest --json`. Run `npx stash@0.17.0 --help` to see the live command surface.
</Callout>

The `stash auth` command group.

### `auth login`

Authenticate with CipherStash

```bash
npx stash auth login [flags]
```

#### Flags

| Flag | Description |
| --- | --- |
| `--region <slug>` | Region to authenticate against (e.g. us-east-1). Skips the interactive region picker. (env: `STASH_REGION`) |
| `--json` | Emit newline-delimited JSON events instead of prose. The first event (authorization_required) carries the device verification URL for a human to open. Implies no prompt and no browser auto-open. |
| `--no-open` | Don't auto-open the verification URL in a browser (already implied by --json). |
| `--supabase` | Track Supabase as the referrer. |
| `--drizzle` | Track Drizzle as the referrer. |


#### Examples

```bash
npx stash auth login
npx stash auth login --region us-east-1
npx stash auth login --supabase
npx stash auth login --region us-east-1 --json
```

### `auth regions`

List the regions you can authenticate against

```bash
npx stash auth regions [flags]
```

#### Flags

| Flag | Description |
| --- | --- |
| `--json` | Emit machine-readable [\{ slug, label \}] instead of a text list. |


#### Examples

```bash
npx stash auth regions
npx stash auth regions --json
```

## How authentication works

`stash auth login` runs the OAuth 2.0 **device authorization flow**:

1. You pick a **region** for your CipherStash workspace.
2. The CLI opens your browser to a verification URL (and prints it, so it also
works over SSH or in a headless/agent environment) where you approve the
request.
3. Meanwhile the CLI polls CipherStash until you approve, then receives a
short-lived access token (it reports the token's expiry).
4. Your device is **bound to the workspace's default keyset**, so later commands
(`stash eql install`, `stash db push`, …) authenticate without a fresh login.

<Callout title="Good to know">
Login is device- and workspace-scoped. Authenticating from a new machine, or for a different workspace, re-runs the device flow.
</Callout>

{/* TODO(verify with product): profiles, multiple workspaces, and switching
between them (where they're stored and how they're selected) belong here, or
in a linked CLI concept page. The CLI currently exposes only `auth login`;
confirm the profile / workspace-switching surface before documenting it. */}
Loading