{"id":45852448,"url":"https://github.com/cipherstash/stack","last_synced_at":"2026-04-17T20:01:52.196Z","repository":{"id":267532032,"uuid":"888687041","full_name":"cipherstash/stack","owner":"cipherstash","description":"End-to-end field level encryption for JavaScript/TypeScript apps with zero‑knowledge key management. Search encrypted data without decrypting it.","archived":false,"fork":false,"pushed_at":"2026-04-09T19:11:55.000Z","size":3804,"stargazers_count":137,"open_issues_count":10,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-09T20:24:57.739Z","etag":null,"topics":["data","data-security","encryption","javascript","postgres","postgresql","security","typescript"],"latest_commit_sha":null,"homepage":"https://cipherstash.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cipherstash.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-11-14T20:38:26.000Z","updated_at":"2026-04-09T19:10:32.000Z","dependencies_parsed_at":"2026-01-20T06:11:16.851Z","dependency_job_id":null,"html_url":"https://github.com/cipherstash/stack","commit_stats":null,"previous_names":["cipherstash/jseql","cipherstash/protectjs"],"tags_count":122,"template":false,"template_full_name":null,"purl":"pkg:github/cipherstash/stack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cipherstash%2Fstack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cipherstash%2Fstack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cipherstash%2Fstack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cipherstash%2Fstack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cipherstash","download_url":"https://codeload.github.com/cipherstash/stack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cipherstash%2Fstack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31943882,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data","data-security","encryption","javascript","postgres","postgresql","security","typescript"],"created_at":"2026-02-27T03:05:56.438Z","updated_at":"2026-04-17T20:01:52.183Z","avatar_url":"https://github.com/cipherstash.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://cipherstash.com\"\u003e\n    \u003cimg alt=\"CipherStash Logo\" loading=\"lazy\" width=\"128\" height=\"128\" decoding=\"async\" data-nimg=\"1\" style=\"color:transparent\" src=\"https://cipherstash.com/brand/cipherstash-logo-dark.svg\"\u003e\n  \u003c/a\u003e\n  \u003ch1\u003eCipherStash Stack for TypeScript\u003c/h1\u003e\n\n\u003ca href=\"https://cipherstash.com\"\u003e\u003cimg alt=\"Built by CipherStash\" src=\"https://raw.githubusercontent.com/cipherstash/meta/refs/heads/main/csbadge.svg?style=for-the-badge\u0026labelColor=000\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cipherstash/stack/blob/main/LICENSE.md\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/npm/l/@cipherstash/stack.svg?style=for-the-badge\u0026labelColor=000000\"\u003e\u003c/a\u003e\n\u003ca href=\"https://cipherstash.com/docs\"\u003e\u003cimg alt=\"Docs\" src=\"https://img.shields.io/badge/Docs-333333.svg?style=for-the-badge\u0026logo=readthedocs\u0026labelColor=333\"\u003e\u003c/a\u003e\n\u003ca href=\"https://discord.gg/5qwXUFb6PB\"\u003e\u003cimg alt=\"Join the community on Discord\" src=\"https://img.shields.io/badge/Join%20the%20community-blueviolet.svg?style=for-the-badge\u0026logo=Discord\u0026labelColor=000000\u0026logoWidth=20\"\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\n## What is the stack?\n\n- [Encryption](https://cipherstash.com/docs/stack/cipherstash/encryption): Field-level encryption for TypeScript apps with searchable encrypted queries, zero-knowledge key management, and first-class ORM support.\n\n## Quick look at the stack in action\n\n**Encryption**\n\n```typescript\nimport { Encryption, encryptedTable, encryptedColumn } from \"@cipherstash/stack\";\n\n// 1. Define your schema\nconst users = encryptedTable(\"users\", {\n  email: encryptedColumn(\"email\").equality().freeTextSearch(),\n});\n\n// 2. Initialize the client\nconst client = await Encryption({ schemas: [users] });\n\n// 3. Encrypt\nconst encryptResult = await client.encrypt(\"secret@example.com\", {\n  column: users.email,\n  table: users,\n});\nif (encryptResult.failure) {\n  // Handle errors your way\n}\n\n// 4. Decrypt\nconst decryptResult = await client.decrypt(encryptResult.data);\nif (decryptResult.failure) {\n  // Handle errors your way\n}\n// decryptResult.data =\u003e \"secret@example.com\"\n```\n\n## Install\n\n```bash\nnpm install @cipherstash/stack\n# or\nyarn add @cipherstash/stack\n# or\npnpm add @cipherstash/stack\n# or\nbun add @cipherstash/stack\n```\n\n\u003e [!IMPORTANT]\n\u003e **You need to opt out of bundling when using `@cipherstash/stack`.**\n\u003e It uses Node.js specific features and requires the native Node.js `require`.\n\u003e Read more about bundling in the [documentation](https://cipherstash.com/docs/stack/deploy/bundling).\n\n## Features\n\n- **[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).\n- **[Type-safe schema](https://cipherstash.com/docs/stack/cipherstash/encryption/schema)**: define encrypted tables and columns with `encryptedTable` / `encryptedColumn`\n- **[Model \u0026 bulk operations](https://cipherstash.com/docs/stack/cipherstash/encryption/encrypt-decrypt#model-operations)**: encrypt and decrypt entire objects or batches with `encryptModel` / `bulkEncryptModels`.\n- **[Identity-aware encryption](https://cipherstash.com/docs/stack/cipherstash/encryption/identity)**: bind encryption to user identity with lock contexts for policy-based access control.\n\n## Integrations\n\n- [Encryption + Drizzle](https://cipherstash.com/docs/stack/cipherstash/encryption/drizzle)\n- [Encryption + Supabase](https://cipherstash.com/docs/stack/cipherstash/encryption/supabase)\n- [Encryption + DynamoDB](https://cipherstash.com/docs/stack/cipherstash/encryption/dynamodb)\n\n## Use cases\n\n- **Trusted data access**: ensure only your end-users can access their sensitive data using identity-bound encryption\n- **Reduce breach impact**: limit the blast radius of exploited vulnerabilities to only the data the affected user can decrypt\n\n## Documentation\n\n- [Documentation](https://cipherstash.com/docs)\n- [Quickstart](https://cipherstash.com/docs/stack/quickstart)\n- [SDK and API reference](https://cipherstash.com/docs/stack/reference)\n\n## Contributing\n\nContributions are welcome and highly appreciated. However, before you jump right into it, we would like you to review our [Contribution Guidelines](CONTRIBUTE.md) to make sure you have a smooth experience contributing.\n\n## Security\n\nFor our full security policy, supported versions, and contributor guidelines, see [SECURITY.md](./SECURITY.md).\n\n## License\n\nThis project is [MIT licensed](./LICENSE.md).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcipherstash%2Fstack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcipherstash%2Fstack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcipherstash%2Fstack/lists"}