You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit b2f9d7a
Browse filesBrowse the repository at this point in the historyBrowse files
docs(skills,meta): correct the naming the v2 removal inverted
PRs 3-5 froze the API names but the prose describing them was not swept,
so the shipped guidance told users the opposite of what the code does.
The worst of it is in skills/, which ship inside the stash tarball and get
copied into customer repos: stash-encryption and stash-cli both described
`encryptedSupabase` as the legacy EQL v2 wrapper. It is the EQL v3 factory
— the v2 wrapper was deleted in #769. stash-drizzle taught `EncryptionV3`
as the canonical client, contradicting stash-encryption, which correctly
calls it deprecated.
Also corrects the @cipherstash/stack README, the npm landing page, which
claimed DynamoDB "still requires v2" and pointed at #657 — #768 removed the
v2 write overloads and #657 is closed. The root README quickstart still
taught the v2 chainable builders as the primary example.
Reframes the "Legacy: EQL v2" sections to say what is actually true now: v2
is a read path, not an authoring surface. Left alone deliberately: the v2
CLI/database sections in supabase-sdk.md and the v2 read path in
stash-dynamodb — both accurate today, and the CLI text moves with the SQL
teardown.
`export { Encryption }` in v3.ts is ordered after the `export *` so Biome's
organizeImports is satisfied without detaching the comment from its subject.
Copy file name to clipboardExpand all lines: AGENTS.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -78,7 +78,7 @@ If these variables are missing, tests that require live encryption will fail or
78
78
-`packages/migrate`: Plaintext-to-encrypted column migration (`@cipherstash/migrate`) — resumable backfill, per-column state
79
79
-`packages/prisma-next`: Prisma Next integration (`@cipherstash/prisma-next`) — searchable field-level encryption for Postgres. **EQL v3 only**: per-domain constructors (`cipherstash.TextSearch()` / `text()` / `bigIntOrd()` / …) and `cipherstashFromStack` (the `./v3` and `./stack` entries). The EQL v2 surface was removed — the adapter's baseline migration installs the EQL v3 bundle only (works on Supabase as a non-superuser)
80
80
-`packages/stack-drizzle`: Drizzle ORM integration (`@cipherstash/stack-drizzle`), depends on `@cipherstash/stack` — **EQL v3 only**, on the package root (the v2 surface was removed and the old `./v3` subpath collapsed into `.`). Split out of `@cipherstash/stack`.
81
-
-`packages/stack-supabase`: Supabase integration (`@cipherstash/stack-supabase`), depends on `@cipherstash/stack` — `encryptedSupabase`(v2) and `encryptedSupabaseV3`(v3). Split out of `@cipherstash/stack`.
81
+
-`packages/stack-supabase`: Supabase integration (`@cipherstash/stack-supabase`), depends on `@cipherstash/stack` — **EQL v3 only**: `encryptedSupabase`is the v3 factory (`encryptedSupabaseV3`remains as a `@deprecated` alias). Split out of `@cipherstash/stack`.
82
82
-`packages/nextjs`: Next.js helpers and Clerk integration (`./clerk` export)
83
83
-`packages/utils`: Shared config (`utils/config`) and logger (`utils/logger`)
84
84
-`packages/bench`: Performance / index-engagement benchmarks (private, not published)
@@ -155,7 +155,7 @@ Three rules to remember when editing CI or pnpm config:
155
155
-**Identity-aware encryption**: Authenticate the client as the end user with `OidcFederationStrategy` (`config.authStrategy`, re-exported from `@cipherstash/stack`), then chain `.withLockContext({ identityClaim })` on operations to bind the data key to a claim. The same claim must be used for encrypt and decrypt. (`LockContext.identify()` from `@cipherstash/stack/identity` is deprecated — the strategy now handles token acquisition; `.withLockContext()` also accepts a `LockContext`.)
156
156
-**Integrations**:
157
157
-**Drizzle ORM**: `types.*` column factories, `extractEncryptionSchema`, `createEncryptionOperators` from `@cipherstash/stack-drizzle`
-**[Searchable encryption](https://cipherstash.com/docs/stack/cipherstash/encryption/searchable-encryption)**: query encrypted data with equality, free text search, range, and [JSONB queries](https://cipherstash.com/docs/stack/cipherstash/encryption/searchable-encryption#jsonb-queries-with-searchablejson).
70
-
-**[Type-safe schema](https://cipherstash.com/docs/stack/cipherstash/encryption/schema)**: define encrypted tables and columns with `encryptedTable`/ `encryptedColumn`
70
+
-**[Type-safe schema](https://cipherstash.com/docs/stack/cipherstash/encryption/schema)**: define encrypted tables and columns with `encryptedTable`and the `types.*` concrete-domain factories
71
71
-**[Model & bulk operations](https://cipherstash.com/docs/stack/cipherstash/encryption/encrypt-decrypt#model-operations)**: encrypt and decrypt entire objects or batches with `encryptModel` / `bulkEncryptModels`.
72
72
-**[Identity-aware encryption](https://cipherstash.com/docs/stack/cipherstash/encryption/identity)**: authenticate as the end user with `OidcFederationStrategy` and bind the data key to their identity with `.withLockContext({ identityClaim })` for policy-based access control.
**Security fixes are released for the latest release line of each package.** Security reports are welcome for any version, but fixes land in the latest release — if you are running an older major version, plan to upgrade to receive them.
Copy file name to clipboardExpand all lines: packages/migrate/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ Creates `cipherstash.cs_migrations` idempotently. Normally called by `stash eql
43
43
Chunked, resumable, idempotent backfill of plaintext → encrypted. Per chunk, in a single transaction: select next page → encrypt via `client.bulkEncryptModels` → `UPDATE … FROM (VALUES …)` → `INSERT` a `backfill_checkpoint` event. Guards with `encrypted IS NULL` so re-runs never double-write.
44
44
45
45
-`db`: a `pg.PoolClient` (the runner drives transactions on it).
46
-
-`encryptionClient`: your initialised `@cipherstash/stack` client (or anything that exposes `bulkEncryptModels(models, table)` returning `{ data } | { failure }`). For an EQL v3 column pass an `EncryptionV3` client (from `@cipherstash/stack/v3`) — it pins the v3 wire format; the engine itself is version-agnostic and writes whatever envelope the client produces.
46
+
-`encryptionClient`: your initialised `@cipherstash/stack` client (or anything that exposes `bulkEncryptModels(models, table)` returning `{ data } | { failure }`). For an EQL v3 column pass an `Encryption` client (from `@cipherstash/stack/v3`) — it pins the v3 wire format; the engine itself is version-agnostic and writes whatever envelope the client produces.
47
47
-`tableSchema`: the `EncryptedTable` for the target table from your encryption client file.
48
48
-`signal`: optional `AbortSignal`. If aborted between chunks, the backfill exits cleanly and leaves a resumable checkpoint.
0 commit comments