Summary
The old docs had a dedicated guides/protect-js/bulk-operations page covering bulkEncrypt and bulkDecrypt end-to-end. In the new docs the API surface only appears as fragments inside other pages, so a user who knows they want bulk operations has nowhere obvious to land.
Where it currently appears
| File |
What it covers |
cipherstash/encryption/storing-data.mdx:139–164 |
bulkEncrypt for INSERTs with UNNEST |
cipherstash/encryption/drizzle.mdx |
bulkEncryptModels / bulkDecryptModels Drizzle examples |
cipherstash/encryption/dynamodb.mdx:135 |
bulkEncryptModels DynamoDB example |
cipherstash/encryption/supabase.mdx:428,432 |
One-line mention in the wrapper's internals |
deploy/testing.mdx:48,51 |
Stub signatures in a mock client |
deploy/troubleshooting.mdx:172,187 |
Performance tip with example |
None of these explain the why (single ZeroKMS round-trip, unique key per value), the input-shape (array of { id, plaintext } for correlation), the failure model (encryptedResult.failure), or when to reach for bulkEncrypt vs encryptModel / bulkEncryptModels.
Suggested page
content/stack/cipherstash/encryption/bulk-operations.mdx covering:
- Why bulk: one ZeroKMS round-trip regardless of N, still unique key per value
bulkEncrypt — input shape, correlation IDs, failure handling
bulkDecrypt — symmetric usage, ordering guarantees
- When to use which:
bulkEncrypt (raw values) vs bulkEncryptModels (whole objects, defined by schema)
- Cross-links to storing-data, troubleshooting, drizzle/dynamodb model variants
Reference material
Old page in cipherstash-js-suite git history at apps/docs/src/app/(articles)/guides/protect-js/bulk-operations/page.md (commit 1c3d40ed^).
Summary
The old docs had a dedicated
guides/protect-js/bulk-operationspage coveringbulkEncryptandbulkDecryptend-to-end. In the new docs the API surface only appears as fragments inside other pages, so a user who knows they want bulk operations has nowhere obvious to land.Where it currently appears
cipherstash/encryption/storing-data.mdx:139–164bulkEncryptforINSERTs withUNNESTcipherstash/encryption/drizzle.mdxbulkEncryptModels/bulkDecryptModelsDrizzle examplescipherstash/encryption/dynamodb.mdx:135bulkEncryptModelsDynamoDB examplecipherstash/encryption/supabase.mdx:428,432deploy/testing.mdx:48,51deploy/troubleshooting.mdx:172,187None of these explain the why (single ZeroKMS round-trip, unique key per value), the input-shape (array of
{ id, plaintext }for correlation), the failure model (encryptedResult.failure), or when to reach forbulkEncryptvsencryptModel/bulkEncryptModels.Suggested page
content/stack/cipherstash/encryption/bulk-operations.mdxcovering:bulkEncrypt— input shape, correlation IDs, failure handlingbulkDecrypt— symmetric usage, ordering guaranteesbulkEncrypt(raw values) vsbulkEncryptModels(whole objects, defined by schema)Reference material
Old page in
cipherstash-js-suitegit history atapps/docs/src/app/(articles)/guides/protect-js/bulk-operations/page.md(commit1c3d40ed^).