Files
Evan JarrettandClaude Fable 5.1 c1234cb31c hold: require a login on getQuota and answer only for the caller's own DID
getQuota was public, so anyone could look up any user's storage usage and
plan tier by DID. It now sits behind requireAuth and returns 403 unless the
service token's issuer is the userDid being asked about.

Every appview caller sends the user's service token for the hold: the push
gate reuses the token the push already minted (and still fails open if it
can't get one), the quota webhook event carries the push's token, and the
storage settings panel fetches one for the signed-in user.

Deploy the appview before the hold. An old appview against the new hold
gets 401s: the push gate fails open and the storage panel shows an error.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-29 20:52:51 -05:00
..