docs: state the sharing boundary that is actually enforced

Two sentences promised that a manage grant reaches no settings at all. Both
were true when they were written and stopped being true when the anamnesis
destination opened, and both are in the worst places for a stale promise: one
is the access description generated into the public contract and read by the
native client, the other is the paragraph a delegate meets on a page sharing
does not cover.

Both now name the boundary the code draws — record content versus account
configuration — and say which part of the record a manage grant reaches. What
stays with the account owner is spelled out rather than implied: login, the
second factor, provider connections, tokens, notification routing, module and
threshold configuration, and who else has access.

A guard checks the copy against the classification rather than against itself,
so opening a second destination or closing this one moves the sentence with it.
The contract is regenerated.
This commit is contained in:
Marc-André Bombeck committed 2026-08-07 00:52:25 +02:00
1 parent c7e847a766
commit 5de488c35c
9 files changed
+134 -13

No files matched your search

+8 -6
View File
@@ -12538,12 +12538,14 @@ paths:
default: READ
description: "READ can read the record and change nothing. WRITE can additionally ADD entries (readings, results,
observations, a medication, a marked dose) and can still edit or delete nothing, including its own.
MANAGE can additionally change and remove entries, including ones the owner wrote, and read the
generated insights; it never reaches the identity surfaces (login, second factor, connections,
tokens, settings, or who else has access). Omitted means READ, so a client that predates the field
keeps working. The level is fixed when the invitation is written: no endpoint raises a live grant,
because that would widen what the delegate accepted without asking them again. The way up is a new
invitation the delegate accepts."
MANAGE can additionally change and remove entries, including ones the owner wrote, read the
generated insights, and record the record's own health background (allergies, family history). The
boundary is record content versus account configuration: MANAGE never reaches login, the second
factor, provider connections, API tokens, notification routing, module and threshold configuration,
or who else has access. Omitted means READ, so a client that predates the field keeps working. The
level is fixed when the invitation is written: no endpoint raises a live grant, because that would
widen what the delegate accepted without asking them again. The way up is a new invitation the
delegate accepts."
type: string
enum:
- READ