ADR-0007: Read-only project share links
- Status: Accepted (2026-08-02)
- Decision makers: Project maintainers
Context
Roadmap P3 "read-only share links" serves the "share & spread" journey; need login-free model viewing to lift trial and return visits.
Decision
- Table
project_share: uniquetoken;enabled/ optionalexpire_time - API:
POST /share/create(logged in + creator);GET /share/{token}(anonymous, returnsreadonly+ projectJSON);POST /share/revoke(logged in + creator) - Security: anonymous GET only on
/share/*(ErdSecurityConfiguration);create/revoke/forkrequire login (no longer blanket/share/**all methods) - Frontend anonymous page
/s/:token: table list + read-only ReactFlow relation diagram; designer top bar "Share" modal (create/copy/revoke) - Anonymous response sanitization: see ADR-0008 — share JSON clears
profile.dbs(no longer masked connection blocks)
Consequences
- Positive: shareable and openable; revocable; passwords not in anonymous response; canvas read-only — no connect/drag model edits
- Follow-up: share expiry policy UI
- Extension:
POST /share/{token}/forklogged-in copy to personal project (P3a)