Is this Postgres only?
- Date
- By
- CipherStash Team
For searchable encryption, yes. EQL installs into any Postgres you can connect to, with no extension, no superuser and no config changes. DynamoDB gets encryption plus equality lookups. On MySQL, MongoDB and anything else the SDK still encrypts and decrypts, but nothing is queryable on the server.
If your queries have to run inside MySQL or MongoDB, we do not solve that today, and we are not going to give you a date. The SDK will encrypt the values and you can store them anywhere, but the database cannot filter, sort or join on them.
What "any Postgres" means
EQL is a set of SQL types and functions, not an extension. The installer runs over an ordinary database connection. It needs CREATE on the database and schema, not superuser, and it makes no changes to postgresql.conf. The docs list Supabase, Prisma Postgres, Neon, RDS, Aurora, Cloud SQL and self-hosted Postgres.
The one place managed Postgres differs from self-hosted is block ORE. Its operator class is hand-written for a composite type and needs superuser to create. On cloud Supabase and most managed Postgres the installer detects this and disables the ORE-backed domains. Ordering and range still work, because the default ordering term is CLLW OPE and its index works anywhere you can run CREATE INDEX.
Supabase
With EQL 3.0.4 the Supabase wrapper supports encrypted equality, range and ordering through supabase-js. Free-text and JSON queries need an adapter such as Drizzle or Prisma ORM 8, because PostgREST cannot express the typed operands those operations require. You also expose the eql_v3 schema in the Supabase dashboard.
DynamoDB
DynamoDB does not use EQL. Equality-enabled attributes store an HMAC search term next to the ciphertext, and that term can be a partition key, a sort key or a global secondary index. That gives you exact lookups. It does not give you begins_with, BETWEEN or contains on encrypted attributes, and ordering and free-text terms are not stored because DynamoDB has no query surface for them.
Everything else
MySQL, MongoDB, ClickHouse, Snowflake and S3 are all fine as places to put ciphertext. The SDK encrypts in your process and hands you a payload. What you lose is server-side querying.