Repository navigation
Serve the pinned copy to public viewers #7939
Description
Task Summary
Part of #7828. With a version pinned, a workflow has two copies. This routes every read that
serves a viewer without granted access through the frozen one.
- The seam —
WorkflowAccessResource.hasGrantedAccess(wid, uid): granted access, as
opposed to being able to read a workflow only because it is public. An owner or a shared user
keeps tracking the author's latest, because sharing is not publishing. - One copy, not a set of fields —
WorkflowPublishService.PublicCopycarries the name, the
description, the content and the default view together, andpublicCopyOfhands them out as a
group, so no surface can serve the published graph under a title the author never published,
or open a form view over a copy whose content carries no form. - Everything on public show freezes with the graph. The title and the description are as
public as the graph is: if only the graph froze, a report about a title could be answered by
editing the title while the pinned copy still advertised it. - Routed through it — opening a workflow, the hub's read of a public workflow, Clone,
Duplicate,/workflow_name,/workflow_description, and the size a listing shows. - The revision history is a door into the same room. Replaying a version folds deltas back
from the author's current content, so listing or checking out versions would hand a public
viewer the drafts the pin is holding back.canReadHistorykeeps the history open to anyone
with granted access, and to everyone while nothing is pinned — the public copy is then the
author's latest, and its history is the history of what everyone can already see.
A workflow that follows the author's latest — every workflow today — is served exactly what it
is served now.
Covered by WorkflowPublishSpec: the published version reaching a stranger while the author
keeps their own working copy; opening a pinned workflow serving the whole copy, its own title,
description and view; a collaborator tracking the author's latest as they keep editing; clone
and duplicate taking the published copy, metadata included, while a private workflow still
clones its working copy; the size of each case; the revision history refused to a public viewer
while a pin is in place and kept open otherwise; and a public copy of a workflow that is not
public being refused rather than falling through.
Task Type
- Refactor / Cleanup
- DevOps / Deployment / CI
- Testing / QA
- Documentation
- Performance
- Other
Activity
yangzhang75 commentedon Aug 24, 2026
/parent-issue: #7828
yangzhang75 commentedon Aug 24, 2026
/take