Skip to content

Commit c9e756b

Browse files
Release v0.15.0
1 parent 3f4d11b commit c9e756b

File tree

5 files changed

+23
-5
lines changed

5 files changed

+23
-5
lines changed

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.15.0] - 2026-04-11
11+
12+
### Added
13+
14+
- **[Proxy] Extensive policy enforcement tests for aggregates, HAVING, window functions, CTEs, and subqueries** — +1240 lines in `policy_enforcement.rs` covering how column masks, column denies, and column allows interact with `COUNT(DISTINCT)`, `GROUP BY` / `HAVING`, `ROW_NUMBER() OVER (ORDER BY ...)`, CTEs, and subqueries. Ensures masked values cannot leak through aggregates or window ordering.
15+
- **[Docs] Security vectors documentation overhaul** — major expansion of `docs/security-vectors.md` with new attack vectors, defenses, and test back-references; `docs/permission-system.md` updated in lockstep.
16+
- **[Demo] Ecommerce demo refresh** — new `compose.demo.yaml`, new `setup.sh` automation script, updated `schema.sql` and `seed.py`, refreshed `policies.yaml` and `requirements.txt`, and a rewritten README.
17+
1018
### Changed
1119

1220
- **[Proxy] BREAKING: `ctx.query.tables` is now an array of objects, not strings** — decision functions with `evaluate_context = "query"` previously received `ctx.query.tables` as `string[]` (e.g. `["public.orders"]`). It is now `Array<{datasource, schema, table}>`, so decision function JS must access the fields explicitly. Bare references like `SELECT * FROM orders` now also resolve to the session's default schema (e.g. `public`) rather than an empty schema segment, so qualified and unqualified references produce identical entries.
@@ -22,6 +30,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2230
ctx.query.tables.some(t => t.schema === "public" && t.table === "orders")
2331
ctx.query.tables.some(t => t.schema === "public")
2432
```
33+
- **[Admin UI] Form polish** — small tweaks to `CatalogDiscoveryWizard`, `DecisionFunctionModal`, `PolicyForm`, and `DataSourceEditPage`.
34+
35+
### Fixed
36+
37+
- **[Proxy] Security: bare table references could bypass schema-scoped policies** — unqualified references like `FROM orders` previously used an empty schema segment as the policy lookup key, so a policy targeting `schemas: ["public"]` would not match and could be bypassed by omitting the prefix. Bare references now fall back to the session's default schema, which DataFusion is already configured with at connect time (`SET search_path` is blocked upstream by `ReadOnlyHook`). Tracked as vector #71 in `docs/security-vectors.md`.
38+
39+
### Infrastructure
40+
41+
- **[CI] Pre-commit hook runs `docs-site` VitePress build when docs-site changes are staged** — guarded by a `docs-site/node_modules` check so fresh clones without docs deps installed are not blocked.
42+
- **[CI] `docs-site` GitHub Actions job added then disabled** — the job is commented out until `docs-site/` lands in the repo.
2543

2644
## [0.14.1] - 2026-04-09
2745

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

admin-ui/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "admin-ui",
33
"private": true,
4-
"version": "0.14.1",
4+
"version": "0.15.0",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

migration/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "migration"
3-
version = "0.14.1"
3+
version = "0.15.0"
44
edition = "2024"
55

66
[dependencies]

proxy/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "proxy"
3-
version = "0.14.1"
3+
version = "0.15.0"
44
edition = "2024"
55

66
[dependencies]

0 commit comments

Comments
 (0)