Unreleased

0.1.8

  • Dashboard loads no longer run schema DDL or an unbounded audit DELETE on the request path. Those checkouts were inheriting the host Repo timeout (often 60s) and the pool disconnected the connection.
  • Column adds consult information_schema and alter only when the column is missing, so an upgrade does not take ACCESS EXCLUSIVE on tables that already have the columns.
  • Audit retention deletes at most 1000 rows per scheduler tick, with lock_timeout 2s and statement_timeout 4s.
  • Existing installs need a new migration that calls PhoenixLens.Migrations.up/0 again. See the upgrade snippet in docs/Phoenix.md.
  • Cache the query engine, audit retention, DuckDB sources, Ecto redact fields, and the Postgres catalog (information_schema, 60 seconds) so a dashboard does not repeat those reads for every card.

0.1.7

  • Keep email/phone literals in saved question SQL; mask protected columns in result cells only (audit log still redacts SQL literals).
  • Standalone Docker image (oivoodoo/phoenix_lens): Mix release, Postgres env vars, first-boot operator login, optional SMTP email 2FA, optional HTTP basic auth, and PORT.
  • Docker Compose example bind-mounts ./data to /data so CSV, Parquet, and other DuckDB sources on the host are visible in the container.

0.1.6

  • Serve phoenix.js and phoenix_live_view.js from the host app so Lens matches the LiveView version that compiled its templates. A vendored 1.2 client against a 1.0 host rendered catalog fields as undefined.
  • Encode Postgres uuid/bytea binaries before they hit LiveView assigns so SELECT * does not crash Jason.
  • Syntax-highlight native SQL in the editor (keywords, strings, comments, numbers, catalog tables).

0.1.5

  • Tighten view-only SQL: reject UPDATE, writable CTEs, and SELECT … FOR UPDATE as well as DELETE / INSERT.
  • README UI screenshots from the dummy app.

0.1.4

  • Dashboard Edit mode: drag cards to move them and resize on a 12-column board, then Save.
  • Date-range filter bar with space between title, filters, and cards.

0.1.3

  • MCP server at /lens/mcp (Streamable HTTP JSON-RPC) covering catalog, SQL, questions, dashboards, audit, engines, sources, and column protection.
  • Settings → MCP issues project token ids (plt_…) and one-time secrets (lns_…) for Bearer auth.
  • Alerts on saved questions (rows / no rows / above / below) delivered by email (SMTP) and webhooks. Integrations live in Settings.
  • Optional authenticator-app TOTP and passkey unlock in Settings → Security. MCP tokens skip the UI lock.

0.1.2

  • Guide covering features, query design, DuckDB vs PostgreSQL, with dummy-app screenshots.
  • Publish the guide and screenshots on HexDocs and GitHub Pages (https://oivoodoo.github.io/phoenix_lens).

0.1.1

  • Notebook query builder, native SQL editor, Ctrl+Enter / Run, and in-place dashboard titles.
  • Optional DuckDB engine: attach the host Repo as repo plus Postgres, MySQL, SQLite, DuckDB files, Parquet, CSV, and JSON; join them in one SELECT.
  • Settings for engine, extra sources, audit retention, and a Column protection page (global, per source, per table).
  • Audit log pagination and configurable retention (default 90 days).
  • Charts (bar, line, pie, combo) with numeric/count axes; CSV/JSON export.
  • Field policy tests for aliases, per-table rules, and Query.run.

0.1.0

  • Initial release: SQL notebook, saved questions, dashboards, field policy, audit log.