Share links let you give anyone with the link — no account needed — read-only access to everything tagged with a chosen keyword: media items (photo/video keywords) and pages (user keywords). The link is an unguessable token; holding it is the permission.
Tagging is live: adding or removing the keyword on content immediately changes what the link shows. Nothing is snapshotted.
Only users with the admin or editor role can create shares.
/media/keyword/...): pick an expiry in the dropdown and press Share./shares: enter a keyword, pick an expiry, press Create.Either way you land on /shares with the new link highlighted — use the copy button and send it to your recipients.
| Choice | Meaning |
|---|---|
| 24 hours | Link stops working one day after creation |
| 7 days | Default — good for sharing with family after a trip |
| 30 days | Longer-running projects |
| Until cancelled | Never expires; works until you revoke it |
Expired and revoked links return the same not-found page as a link that never existed — visitors cannot tell the difference.
On /shares, press Revoke next to any active or expired share. Revocation is immediate — the link stops working on the next request. Editors can revoke their own shares; admins can revoke anyone's. Revoked shares stay in the list for the audit trail.
Some content is excluded from every share, no matter what keyword it carries:
owner-only — media and pages alikeA shared page is rendered read-only, but links inside its content point at the normal /view/... URLs. Anonymous visitors following those links may hit a login or not-found page — only content in the share's scope is reachable through the share link itself.
Access hits on share links are rate-limited and recorded as aggregated counts in the audit log (share_access), alongside share_create and share_revoke events. Configuration keys are documented in the admin reference (docs/admin/Share-Links.md in the source repository).