Files
base/core
zeekay a9d2f1ff46 An aggregate reads no private email, and history no removed field
Red's review. The aggregate route reads columns directly, so it gated
only hidden fields: grouping an auth collection by email, or counting
its unique emails, answered addresses the records keep private, which
the list masks and the filter resolver will not compare. core.EmailGated
is now the one rule both ask: an auth collection's email, which a caller
who is not a superuser reads only where emailVisibility is set. The
aggregate route refuses it as it refuses a hidden field.
TestAPrivateEmailIsNotAFigure is red's proof inverted: the group and the
count are refused, and fail without the change.

A record's history showed the changes of a field the collection had
since removed. An org admin who removes a field means its values to be
gone from view, so a caller who is not a superuser no longer reads
them; _history keeps the row for a superuser.

The composite uniqueness check is a read before the write, which
PostgreSQL can race; that is now said where it is done and in LLM.md,
with the fix (a unique expression index from the dialect).
2026-10-19 09:24:43 -07:00
..
2025-02-10 11:58:49 -06:00
2024-09-29 21:09:46 +03:00
2025-02-10 11:58:49 -06:00
2025-02-10 11:58:49 -06:00
2025-02-10 11:58:49 -06:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-04-18 16:50:39 +03:00
2026-03-04 22:31:27 +02:00
2025-02-10 11:58:49 -06:00
2025-02-10 11:58:49 -06:00
2025-02-10 11:58:49 -06:00
2025-02-10 11:58:49 -06:00
2024-09-29 21:09:46 +03:00
2025-02-10 11:58:49 -06:00