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
We publish a Trusted Language Extension for PostgreSQL for use on [dbdev](https://database.dev/).
4
+
You can find the extension on [dbdev's extension catalog](https://database.dev/cipherstash/eql).
5
+
6
+
## Publishing
7
+
8
+
**DISCLAIMER:** At the moment, we are manually publishing the extension to dbdev and the versions might not be in sync with the releases on GitHub until we automate this process.
9
+
10
+
### Steps to publish
11
+
12
+
> [!NOTE]
13
+
> Make sure you have the [dbdev CLI](https://supabase.github.io/dbdev/cli/) installed and logged in using the `dbdev shared token` in 1Password.
14
+
15
+
1. Run `mise run build` to build the extension which will create the following file in the `dbdev` directory. (Note: this release artifact is built from the Supabase release artifact).
16
+
2. After the build is complete, you will have a file in the `dbdev` directory called `eql--0.0.0.sql`.
17
+
3. Update the file name from `eql--0.0.0.sql` replacing `0.0.0` with the version number of the release.
18
+
4. Also update the `eql.control` file with the new version number.
19
+
5. Run `dbdev publish` to publish the extension to dbdev.
Copy file name to clipboardExpand all lines: docs/concepts/WHY.md
+21-25Lines changed: 21 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,11 +9,11 @@ This page gives a high-level overview of CipherStash's encryption in use solutio
9
9
-[Why use encryption in use?](#why-use-encryption-in-use)
10
10
2.[CipherStash Proxy](#cipherstash-proxy)
11
11
-[How it works](#how-it-works)
12
-
3.[Encrypt Query Language (EQL)](#encrypt-query-language-eql)
13
-
4.[Best practices](#best-practices)
14
-
5.[Advanced topics](#advanced-topics)
15
-
-[Integrating without proxy](#integrating-without-proxy)
16
-
6.[Conclusion](#conclusion)
12
+
3.[Protect.js](#protectjs)
13
+
-[How it works](#how-it-works-1)
14
+
4.[Encrypt Query Language (EQL)](#encrypt-query-language-eql)
15
+
5.[Best practices](#best-practices)
16
+
6.[Getting started](#getting-started)
17
17
18
18
## Encryption in use
19
19
@@ -52,41 +52,37 @@ This enables encryption in use without significant changes to your application c
52
52
-**Encrypts data**: For write operations, it encrypts the plaintext data before sending it to the database.
53
53
-**Decrypts data**: For read operations, it decrypts the encrypted data retrieved from the database before returning it to the client.
54
54
-**Maintains searchability**: Ensures that the encrypted data is searchable and retrievable without sacrificing performance or application functionality.
55
-
-**Manages encryption keys**: Securely handles encryption keys required for encrypting and decrypting data.
55
+
56
+
## Protect.js
57
+
58
+
Protect.js is an NPM package that provides a set of functions to encrypt and decrypt data.
59
+
It is a client-side library that can be used to encrypt and decrypt data in your JS/TS application.
60
+
61
+
### How it works
62
+
63
+
-**Encrypts data**: Protect.js encrypts the plaintext data before sending it to the database.
64
+
-**Decrypts data**: Protect.js decrypts the encrypted data retrieved from the database before returning it to the client.
65
+
-**Maintains searchability**: Ensures that the encrypted data is searchable and retrievable without sacrificing performance or application functionality.
56
66
57
67
## Encrypt Query Language (EQL)
58
68
59
69
Encrypt Query Language (EQL) is a set of PostgreSQL functions and data types provided by CipherStash to work with encrypted data and indexes.
60
70
EQL allows you to perform queries on encrypted data without decrypting it, supporting operations like equality checks, range queries, and unique constraints.
61
71
62
-
To get started, read the [Getting started](https://github.com/cipherstash/encrypt-query-language/blob/main/GETTINGSTARTED.md) guide.
63
-
64
72
## Best practices
65
73
66
-
-**Use CipherStash Proxy** to handle encryption/decryption transparently.
67
74
-**Use EQL functions** when interacting with encrypted data.
68
75
-**Define database constraints**to maintain data integrity.
69
76
-**Secure key management** of encryption keys.
70
77
-**Monitor query performance** and optimize as needed.
71
78
72
-
## Advanced topics
73
-
74
-
### Integrating without CipherStash Proxy
75
-
76
-
> The SDK approach is currently in development, but if you're interested in contributing, please start a discussion [here](https://github.com/cipherstash/encrypt-query-language/discussions).
77
-
78
-
For advanced users who prefer to handle encryption within their application:
79
-
80
-
-**SDKs available**: Use CipherStash SDKs (at the moment, Rust and TypeScript) to manage encryption/decryption.
81
-
-**Manual encryption**: Implement encryption logic in your application code.
82
-
-**Data conformity**: Ensure encrypted data matches the expected `jsonb` schema.
83
-
-**Key management**: Handle encryption keys securely within your application.
84
-
85
-
**Note**: This approach increases complexity and is recommended only if CipherStash Proxy does not meet specific requirements.
86
-
87
79
## Getting started
88
80
89
-
To get started using CipherStash's encryption is use solution, see the [Getting Started](https://github.com/cipherstash/encrypt-query-language/blob/main/GETTINGSTARTED.md) guide.
81
+
Use one of the CipherStash integrations using EQL to get started.
0 commit comments