Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 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
212f894
docs(reference): port proxy, workspace, glossary, agent-skills
coderdan Jul 9, 2026
e2c33a9
docs(workspace): link to pricing instead of listing plan prices and l…
coderdan Jul 9, 2026
d9a5b6c
docs(workspace): drop per-plan subsections from billing
coderdan Jul 9, 2026
026a5a0
Merge pull request #55 from cipherstash/docs/v2-reference-mechanical-…
coderdan Jul 9, 2026
f3d4554
docs(solutions): port ai-and-rag, data-residency, provable-access, index
coderdan Jul 9, 2026
6d7268f
docs(solutions): address review, move to strategy-based identity API
coderdan Jul 9, 2026
619c122
docs(solutions): narrow the LockContext deprecation to identify()
coderdan Jul 9, 2026
9804cd6
docs(solutions): make the authStrategy dependency explicit in provabl…
coderdan Jul 9, 2026
b4883db
Merge pull request #56 from cipherstash/docs/v2-solutions-port
coderdan Jul 9, 2026
9484ffb
chore: merge main into v2
coderdan Jul 9, 2026
e8e1542
chore(ci): gate the build on deprecated and non-existent API in docs
coderdan Jul 9, 2026
779f6aa
Merge pull request #61 from cipherstash/chore/deprecated-api-lint
coderdan Jul 9, 2026
0bf6fe5
docs(security): write the canonical architecture page
coderdan Jul 9, 2026
005d22c
docs(security): rename Architecture to Cryptography, label the index …
coderdan Jul 9, 2026
5cbb9ce
feat(mdx): render mermaid code fences as diagrams
coderdan Jul 9, 2026
cabc111
docs(solutions): convert the data-residency diagrams to mermaid
coderdan Jul 9, 2026
9cdfb8f
docs(security): correct the key exchange, the client key never leaves
coderdan Jul 9, 2026
d17c110
docs(security): show the key-ID request in the ZeroKMS diagram
coderdan Jul 9, 2026
f3575c6
chore: merge main into v2
coderdan Jul 9, 2026
802dae2
Merge pull request #64 from cipherstash/chore/merge-main-into-v2-2
coderdan Jul 9, 2026
353615c
Merge pull request #62 from cipherstash/docs/v2-security-architecture
coderdan Jul 9, 2026
c6ed577
docs(get-started): rewrite the quickstart on EQL v3
coderdan Jul 9, 2026
1b4f340
docs(get-started): tell the quickstart to install EQL v3 explicitly
coderdan Jul 9, 2026
4f13b93
docs(get-started): write the section overview, fix the landing page
coderdan Jul 9, 2026
c255d16
fix(eql): document the CLLW OPE ordering term, unblocking the build
coderdan Jul 9, 2026
60ce290
fix(eql): rename the remaining oc payload keys, and pin the EQL release
coderdan Jul 9, 2026
393dddc
Merge pull request #66 from cipherstash/fix/eql-ope-cllw-drift
coderdan Jul 9, 2026
217319f
Merge remote-tracking branch 'origin/v2' into docs/v2-quickstart
coderdan Jul 9, 2026
6fe86b1
docs(get-started): write what-is-cipherstash and choose-your-stack
coderdan Jul 9, 2026
7f7b38c
docs(get-started): restore the performance numbers, with 14x for AWS KMS
coderdan Jul 9, 2026
2f79af0
docs(get-started): frame leakage as a design choice, not a confession
coderdan Jul 9, 2026
2961856
docs(get-started): apply the choose-your-stack preview comments
coderdan Jul 9, 2026
bf32cef
Merge pull request #65 from cipherstash/docs/v2-quickstart
coderdan Jul 9, 2026
98e03ee
docs(eql): update the reference to the EQL 3.0.0 shapes
coderdan Jul 9, 2026
3935598
docs(eql): pin to the EQL 3.0.0 release
coderdan Jul 9, 2026
b9e5adc
Merge pull request #67 from cipherstash/docs/eql-3.0.0-shapes
coderdan Jul 14, 2026
249dfe2
docs(reference): add the benchmarks page (#54)
coderdan Jul 14, 2026
4321355
fix(generator): make the TypeDoc SDK reference build against Stack 1.0
coderdan Jul 14, 2026
56fd18b
docs(eql): generate per-type function tables as included partials
coderdan Jul 14, 2026
68eeb93
docs(eql): per-function cards for the EQL function reference
coderdan Jul 14, 2026
47a2cf7
docs(eql): drop per-card examples, add deep-link anchors, flatten cards
coderdan Jul 14, 2026
b1f5b16
docs(eql): keep examples in the function cards, drop the page Example…
coderdan Jul 14, 2026
f6a1265
docs(eql): make each function a heading so it appears in the page nav
coderdan Jul 15, 2026
f3af667
docs(eql): give the JSON page the per-function card treatment
coderdan Jul 15, 2026
36dcbed
docs(eql): add a shared plaintext document to the JSON functions section
coderdan Jul 15, 2026
e7a8793
Merge pull request #69 from cipherstash/docs/eql-function-partials
coderdan Jul 15, 2026
f2ec5c4
docs: brand the code syntax highlighting with a CipherStash theme
coderdan Jul 15, 2026
e18c502
docs: use Geist Sans for H2+ headings, keep Fira Code for H1
coderdan Jul 15, 2026
8e1f685
docs: relax H4-H6 heading tracking to -0.01em
coderdan Jul 15, 2026
9a2bf64
Merge pull request #70 from cipherstash/docs/code-theme
coderdan Jul 15, 2026
e9b0a02
docs: retune the code theme to match the marketing site
coderdan Jul 15, 2026
5d68d6c
Merge pull request #71 from cipherstash/docs/code-theme-tweaks
coderdan Jul 15, 2026
8d267e8
docs: document eql_v3.grouped_value and fix the GROUP BY / DISTINCT s…
coderdan Jul 27, 2026
2376fe9
docs: address review — restore heading, flag broken examples, drop ve…
coderdan Jul 27, 2026
cab3fc2
docs: pin EQL 3.0.3 and fix the fuzzy-match and encrypted-JSON surfaces
coderdan Jul 27, 2026
a1538d3
docs: escape manifest prose before it reaches MDX
coderdan Jul 27, 2026
e304ff1
docs: add an EQL pin resolver so patch bumps stop relying on memory
coderdan Jul 28, 2026
c6733cc
Merge pull request #75 from cipherstash/docs/auto-eql-pin
coderdan Jul 28, 2026
95e90e4
docs: resolve protect-ffi's real types so the Stack reference stops s…
coderdan Jul 28, 2026
e6bd6e6
Merge pull request #77 from cipherstash/docs/fix-typedoc-conditions
coderdan Jul 28, 2026
642a249
Merge remote-tracking branch 'origin/v2' into docs/eql-grouped-value
coderdan Jul 28, 2026
90916c4
docs: pin EQL 3.0.4 and drop the two manifest blind spots it fixed
coderdan Jul 28, 2026
5d279a8
chore: merge main into v2
coderdan Jul 28, 2026
13da74e
Merge pull request #74 from cipherstash/docs/eql-grouped-value
coderdan Jul 28, 2026
2d8ba27
Merge pull request #78 from cipherstash/chore/merge-main-into-v2
coderdan Jul 28, 2026
8107f7a
docs: generate the stack-supabase reference, and stop overstating the…
coderdan Jul 28, 2026
57dd44f
Merge pull request #80 from cipherstash/docs/api-validation
coderdan Jul 28, 2026
642cc94
fix(ci): validate links across both content trees, and check anchors
coderdan Jul 29, 2026
543f2a8
ci: run the link check on pull requests
coderdan Jul 29, 2026
904198d
style: mute body copy, and let the standfirst lead
coderdan Jul 29, 2026
33bec22
fix(ci): address review — line numbers, escaping links, path guards
coderdan Jul 29, 2026
30acb72
Merge pull request #81 from cipherstash/docs/validate-links-v2-tree
coderdan Jul 29, 2026
308f082
style(callout): un-mute callout body text, and double the padding
coderdan Jul 29, 2026
fc360ff
style(callout): keep Fumadocs' body colour, matching the sidebar
coderdan Jul 29, 2026
818db45
style(callout): sit callout body one step above the page copy
coderdan Jul 29, 2026
7675b52
style(callout): adjust padding for callout component
coderdan Jul 29, 2026
3be5d98
Merge pull request #82 from cipherstash/docs/text-colour-scheme
coderdan Jul 29, 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
53 changes: 53 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Blocking documentation checks for pull requests.
#
# `validate-links` also runs inside `prebuild`, so a broken link already fails
# the Vercel build. This job exists to make that a fast, named status check
# that branch protection can require, rather than a failure buried in a
# deploy log.
name: Docs

on:
pull_request:
# v2 is the live documentation line. `main` is deliberately excluded: it
# trails v2 by ~100 commits and its bun.lock is out of sync with its
# package.json, so `--frozen-lockfile` fails there for reasons that have
# nothing to do with links. Add `main` here once #37 lands and makes it
# current.
branches: [v2]
push:
branches: [v2]
workflow_dispatch:

# A PR that gets pushed to twice shouldn't queue behind its own stale run.
concurrency:
group: docs-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
links:
name: Internal links
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v5

- uses: oven-sh/setup-bun@v2
with:
# Pinned rather than `latest` so a bun release can't turn a
# required check red on its own.
bun-version: 1.3.13

- run: bun install --frozen-lockfile

# The TypeDoc reference under content/stack/reference/stack/latest/ is
# gitignored and built from a clone of cipherstash/stack. Roughly 18
# links point into it, so without this step they all report as missing.
# `prebuild` generates before validating for the same reason.
- name: Generate the SDK reference
run: bun run generate-docs

- name: Validate internal links and anchors
run: bun run validate-links
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
43 changes: 0 additions & 43 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,46 +102,3 @@ Fumadocs UI theme with custom purple primary color (`hsl(269, 70%, 45%)`). Dark
## Formatting

Biome handles both linting and formatting. 2-space indentation. Biome organizes imports automatically. Run `bun run format` before committing.

## Required Skills

Always use the following agent skills when working in this repository. These skills contain the canonical API references and must be consulted to ensure documentation accuracy.

### CipherStash Product Skills

Use these skills whenever writing or editing documentation about the corresponding product area. They contain the complete, up-to-date API surface, code examples, and type signatures.

| Skill | Use when editing docs in |
|---|---|
| `encryption` | `content/docs/encryption/` — Schema definition, encrypt/decrypt, searchable encryption, bulk operations, identity-aware encryption, error handling, migration |
| `secrets` | `content/docs/secrets/` — Secrets SDK (`set`/`get`/`getMany`/`list`/`delete`), `stash` CLI usage, environment isolation |
| `drizzle` | `content/docs/encryption/drizzle.mdx` — `encryptedType` column, `extractEncryptionSchema`, `createEncryptionOperators`, encrypted query operators, batched and/or, EQL migrations |
| `supabase` | `content/docs/encryption/supabase.mdx` — `encryptedSupabase` wrapper, transparent encrypt/decrypt on insert/update/select, query filters (eq, like, gt, in, or, match), identity-aware encryption |
| `dynamodb` | `content/docs/encryption/dynamodb.mdx` — `encryptedDynamoDB` helper, `__source`/`__hmac` attribute naming, encrypted partition/sort keys, bulk operations, audit logging |

### Documentation Update Skill

Use the `update-docs` skill whenever:
- Creating new documentation pages
- Updating existing documentation based on code changes
- Reviewing documentation completeness for a PR
- Scaffolding docs for a new feature

The `update-docs` skill enforces the following workflow:

1. **Analyze changes** — Diff the branch to identify affected files
2. **Map to docs** — Use the code-to-docs mapping to find which MDX files need updates
3. **Review each doc** — Walk through updates with user confirmation before editing
4. **Validate** — Run `bun run lint` to check formatting
5. **Commit** — Stage documentation changes

#### Documentation Validation Checklist

Before committing documentation changes, verify:

- Frontmatter has `title` and `description`
- Code blocks have `filename` attribute
- TypeScript examples come first, with `switcher` and a JS variant where appropriate
- Props/options tables are properly formatted
- Notes use the `> **Good to know**:` callout pattern
- `bun run lint` passes
Loading