## Что это
«Share» в session header → выбор TTL `24h` → modal с redaction preview → confirm → shortlink `https://rox.one/v/<8-char-id>` копируется в буфер. Получатель открывает в браузере, viewer (apps/viewer) рендерит sanitized snapshot сессии. Через 24h ссылка автоматически revoked (HTTP 410), snapshot удаляется из R2 через retention worker.
Redaction pipeline (E06): PII-masking + workspace-defined regex + manual review (пользователь может toggle hide на каждый message в preview). Snapshot — JSON в R2, viewer — static SPA с no-JS-fallback (server-side render для critical path).
Компоненты: `apps/viewer`, `@rox-one/shared/sharing`, R2 Worker. Все share-events в audit-log с recipient-ip (хешированным).
## Зачем
Share-ссылки на сессии — primary collaboration primitive: пейст в Slack/email/issue tracker. 24h TTL покрывает 80% случаев (один рабочий день), снижает risk утечки при share-leak.
## Источники вдохновения
- [ZimengXiong/ExcaliDash](https://github.com/ZimengXiong/ExcaliDash) — self-hosted Excalidraw с TTL shortlink patterns
- [dagronf/QRCode](https://github.com/dagronf/QRCode) — QR-code для shortlinks и deep-link sharing
- [agisota/zrok](https://github.com/agisota/zrok) — защищённый тоннель для demo public sharing
## 🔗 Linear
- [PZD-432](https://linear.app/kuhjie/issue/PZD-432) — backing ticket