Skip to content

Commit 89a156a

Browse files
claude[bot]claude
andauthored
docs(security): add publicSharing.enabled standing-policy paragraph (#14746)
Item 2 of #14582 (follow-up to #14033 / PR #14580, split from #14033's docs surfaces that PR #14580 could not touch). The "Public Share Links" section documented the child predicate (eligibility, #13608) as a standing policy held at every redemption, but not the parent switch publicSharing.enabled — #14033 made that switch the same shape: held at every redemption, not only at mint. Adds the sibling paragraph plus its upgrade-note callout, placed after the eligibility paragraph so a reader who has already understood the child predicate recognises the parent's paragraph as the same shape one level up. Claude-Session: https://claude.ai/code/session_01WLJQhde67SeTccsmnBVarV Co-authored-by: Claude <noreply@anthropic.com>
1 parent 7c342f4 commit 89a156a

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

content/docs/protocol/objectql/security.mdx

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,31 @@ reclassification, widen the predicate rather than relying on the old
467467
behaviour.
468468
</Callout>
469469

470+
**When `publicSharing.enabled` is off** (#14033). The block's own switch is
471+
the same standing-policy shape as `eligibility` above, one level up: it too
472+
is held at every redemption, not only at mint. Turning it off stops every
473+
existing link on the object immediately, with no revocation step to
474+
remember; turning it back on restores them, with no link needing to be
475+
re-minted. Turning the block off silences everything inside it —
476+
`eligibility` is not evaluated, `redactFields` is not computed — so the
477+
bypass some callers have at mint (a late schema scan, or a system context)
478+
buys only the mint: it still succeeds while the block is off, but what it
479+
mints does not resolve until the block is enabled. What an anonymous holder
480+
sees is the same "invalid or expired" answer `eligibility` already gives;
481+
the readable reason is written to the server log, never to the response.
482+
483+
<Callout type="warn">
484+
**Upgrade note.** Before this, `publicSharing.enabled` gated only the mint —
485+
once a link was issued it kept resolving after the object's switch was
486+
turned off. Deployments upgrading across that change can feel it: links
487+
that used to keep serving after `enabled` was flipped off now stop
488+
immediately, and resume as soon as it is flipped back on. That is the
489+
intent — the alternative was a declared switch the platform did not hold —
490+
but there is no way to keep an already-minted link serving through the
491+
object being switched off; the object must stay opted in for its links to
492+
serve.
493+
</Callout>
494+
470495
---
471496

472497
## 6. Field-Level Encryption

0 commit comments

Comments
 (0)