Docs run: the handbook still says a share is a link (#529 2/3, shipped v0.6.212) #585
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Cordy/Cairn#585
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The #529 2/3 slice shipped in v0.6.212 with no documentation.
docs/handbook/index.mdstates the rule it broke:Sharing changed shape rather than gaining an option, so this is not a matter of adding a paragraph: several pages now assert something that is no longer true. This issue is the docs run that closes that gap.
What changed in v0.6.212
The model, stated once so every page below can be written against it:
/shared, reached as its owner, so contents resolve exactly as they do for the owner.read, Can edit →write, Can upload →AllowUpload(folders only)./s/surface, unchanged: password, expiry, upload, mode selector.scope.Driver.Delegatedanswers "was this path reached through someone else's grant", and the API refuses before writing. Only the owner manages the grant list.ShareInternalDisabled), separate from the public-link switch. Stored negative, so an instance upgrading into the field keeps sharing on.TestPublicLinkPolicyDoesNotGovernGrantspins the separation.GET /api/v1/recipients?q=). Minimum 2 characters; a shorter query is a 400, not an empty list. Prefix-only on token boundaries (.,-,_, space,@). Capped at 20 after ranking. Caller excluded from their own results. Deliberately not the admin candidates endpoint, which enumerates everything and would have 403'd for non-admins anyway.Surfaces to work through
docs/handbook/sharing.md— the main one. It opens with "Two ways to get a file to someone else, depending on whether they run Cairn" and a two-row table, then says "This page is about links." All three statements are now wrong. Needs a third row (recipient on this instance → internal grant → their/shared), the grants section, the role labels, the internal/public link split, and the no-re-share rule. Its "What this protects — stated precisely" section currently reasons only about the public surface serving ciphertext; grants need the parallel paragraph (below).The encryption sentence — folded in here from #571 item 4. What the encryption does and does not protect against now that a share means the server opens the owner's file for the recipient. It was the last open item on #571 and it belongs in this run rather than on its own: a sentence about grants is unintelligible on a page that does not yet document grants. Same wording should serve #238, which is the standing question about whether cross-instance transfer should be client-side E2E — so write it once, precisely, and reference it from both. The existing "This is not zero-knowledge, and we won't call it that" paragraph is the right register and the right neighbour.
docs/handbook/index.md— the Pages table describessharing.mdas "Share links: modes, what they protect, policy". Needs rewording once the page covers grants.docs/handbook/groups.md— currently frames app-owned groups around "peering and admin-group use". Receiving a share is now a third use, and it is the one most users will meet first. Also: a group-derived grant follows membership, so leaving a group takes the file access with it — that belongs here as much as in sharing.md.docs/handbook/users-access.md— the picker draws on accounts and groups. Worth a short note on why it is search-only and why an operator cannot get a full recipient list out of it, since that will otherwise read as a missing feature.docs/handbook/file-browser.md— row-menu actions and the Shares view; both changed.docs/handbook/encryption.md— check whether the key-custody discussion needs the grant path spelled out (the server resolving the owner's identity to serve a recipient).docs/handbook/spaces.md— genuine open question rather than a known edit: how grants interact with space membership, and whether a space file can be granted onward. Check against theDelegatedrefusal before writing anything.README.mdandARCHITECTURE.md— check whether either describes sharing as links-only. This is the sharing analogue of the #124 tripwire, and like #124 it should be written from what shipped, not from intent.Not documentation, but found during this review
The admin Sharing page subtitle still reads "Who may create share links, and the limits the server enforces on them." The page now governs grants too, so the sentence is stale in the product, not just in the docs. Small copy fix, i18n ×4 — worth doing in the same round so the page and the handbook agree.
Notes for whoever picks this up
Unblocked, with one carve-out.
The panel has now been verified live on v0.6.213 in both directions with a real second account — picker, grant creation, both Shares tabs, and the
/sharedround trip as the recipient. See the #571 thread for what was confirmed.So most of this issue can proceed. Two sections should wait, because open fixes will change what is true:
Can uploaddoes not exist in the product — onlyCan viewandCan editship today (#589). Writing it from the issue's intent rather than from what shipped is precisely the #124 mistake.Everything else is settled and safe to write from: the addressee model, the internal/public link split, the no-re-share rule, the search-only picker and why it refuses a blank query, the two admin switches and their separation, and the two Shares tabs.
Also decided since this issue was written: the share dialog's policy notices stay neutral, not amber — the amber style remains reserved for administrator-actionable faults (v0.6.211). If the docs describe or screenshot those states, describe them as notices.
Done — #591, plus the held paragraph in #593. All shipped in v0.6.214, so the handbook and the release it describes landed in the same tag.
What each surface got:
Deliberate deviations from the issue text, recorded:
resolveOwnedpermits any space member to grant space content outward — whether that is intended is an open product question, now #595. The docs say nothing about space-file grants until it is decided; writing either answer now would be deciding it by documentation.The amber-vs-neutral notice decision from the #571 thread is baked in: the dialog's policy notices are described as notices.