Skip to content

EQL v3: make it the default, and stop the CLI recommending db push (a v2/Proxy-only step) #585

Description

@coderdan

Background

stash db push writes the encrypt config into public.eql_v2_configuration (pending → encrypting → active). That table is a v2 + CipherStash Proxy artifact:

  • The v2 EQL install SQL creates it (cipherstash-encrypt.sql:3674) and the config state-machine functions read it; v3 install SQL creates no configuration table at all (cipherstash-encrypt-v3.sql has zero CREATE TABLE/configuration).
  • Nothing in the v3 stack reads it — not the SDK (@cipherstash/stack/protect/drizzle have zero references), and not Proxy (v3 has no reload_config/config surface). v3 encodes config in each column's eql_v3.* domain type.
  • CipherStash's own v3 spec calls it out: "retiring the now-redundant eql_v2_configuration" (docs/superpowers/specs/2026-06-30-eql-v3-text-search-schema-design.md:304).

Bugs this causes today

On a v3-only database, stash eql status checks eql_v2_configuration unconditionally, hits "table not found", and tells the user to "run stash db push to create it" — but db push never creates that table (only the v2 install does), and on a v3-only DB db push itself errors with relation "public.eql_v2_configuration" does not exist. A dead end.

Scope

  1. Make EQL v3 the default. stash eql install / eql upgrade default to v3 so --eql-version 3 is no longer required. The v2-only paths (--drizzle, --migration, --migrations-dir, --latest) require an explicit --eql-version 2 (they error with clear guidance otherwise). stash init pins v2 for the Drizzle migration path.
  2. Stop the CLI recommending db push. Remove db push recommendations from CLI output — eql status, help/examples, and the encryption-lifecycle guidance (init/setup-prompt, cutover/activate notes). db push remains available for Proxy/v2 users but is no longer surfaced as a default step.
  3. Guard db push against a v3-only database with a clean explanatory message instead of a raw Postgres error.

Follow-up to the config-scaffold DX work (#578/#579/#580).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions