Skip to content

Commit b4ced7f

Browse files
committed
chore(adr-anchors): anchor the field-readers module to ADR-0106 D7
The metadata-plane half of the ADR-0106 D7 paragraph, the configured fallback set a caller with no set resolves, is the fallbackOnEmptySets branch of resolveProjectionFieldMask, whose body moved to security-plugin-field-readers.ts. The new entry carries ADR-0106 and that paragraph of the security-plugin.ts entry verbatim, as the cbp and wall module entries carry theirs. The security-plugin.ts entry is unchanged: getReadableFields and getMetadataReadableFields stay there. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017BoLT8Gaa8t9a7AWVH8qZa
1 parent 0feb79c commit b4ced7f

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"file": "packages/plugins/plugin-security/src/security-plugin-field-readers.ts",
3+
"adrs": [
4+
"ADR-0106"
5+
],
6+
"invariant": "ADR-0106 D7 — getMetadataReadableFields differs from getReadableFields in exactly one place, and the asymmetry is the decision. On the DATA plane a caller resolving to zero permission sets falls OPEN, mirroring the engine middleware, because reporting a narrowing the data path would not enforce is its own drift. On the METADATA plane the same caller resolves the configured fallback permission set (the two-step /auth/me/permissions performs), so a guest-facing deployment's schema exposure is a deliberate permission-set decision rather than an accidental everything-default. Converging the two methods in either direction reverses this."
7+
}

0 commit comments

Comments
 (0)