Skip to content

Commit db64c37

Browse files
committed
docs(changeset): qualify the ObjectQL "already refused" sentences of two pending analytics notes to the doors they hold for
The ObjectQL strategy already refused these queries on the query and the dataset doors, through the engine; on the SQL echo it printed the statement, because its generateSql renders without an engine call. Each sentence now names the two doors and says the echo printed. Claude-Session: https://claude.ai/code/session_01XY5uCwTjZj7884yYtyur4H Co-authored-by: Claude <noreply@anthropic.com>
1 parent 56fc0e7 commit db64c37

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

‎.changeset/20917-analytics-field-permission-gate.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ filters. A member of an authored cube is judged by the field it resolves to,
1919
not by its name in the cube. A field the caller may not read answers
2020
`403 PERMISSION_DENIED`, in the words the engine uses for the same field. The
2121
native-SQL strategy, the one a SQL driver serves first, answered such queries;
22-
the ObjectQL strategy and the data API already refused them.
22+
the ObjectQL strategy already refused them on `POST /api/v1/analytics/query`
23+
and `POST /api/v1/analytics/dataset/query`, as the data API did, but printed
24+
the statement on `POST /api/v1/analytics/sql`.
2325

2426
**What is not affected.** A query that reads only fields the caller may read
2527
answers as before. A system context, and a caller with no permission sets, are

‎.changeset/20933-analytics-relationship-path-admission.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ deployment with no security service applies no object-level check, as on the
4040
data API.
4141

4242
**Refusals that change form.** On the ObjectQL strategy a related object the
43-
caller may not read was already refused; it now answers the analytics door's
43+
caller may not read was already refused on `POST /api/v1/analytics/query` and
44+
`POST /api/v1/analytics/dataset/query`, though `POST /api/v1/analytics/sql`
45+
printed the statement; on those two doors it now answers the analytics door's
4446
refusal rather than the engine's, the same one a declared join gets. A filter,
4547
a time window or a two-hop path through such an object moves from
4648
`400 INVALID_FIELD` to that `403`. A relationship path whose relationship name

0 commit comments

Comments
 (0)