Skip to content

Feat/topo share#345

Merged
mayanayza merged 7 commits intodevfrom
feat/topo-share
Dec 20, 2025
Merged

Feat/topo share#345
mayanayza merged 7 commits intodevfrom
feat/topo-share

Conversation

@mayanayza
Copy link
Collaborator

No description provided.

  Replace the legacy Visualizer permission workaround with a proper sharing
  system that supports password-protected links and embeddable iframes.

  Share Features:
  - Create shareable links with optional password protection
  - Generate embeddable iframes with domain restrictions
  - Configure visibility of zoom controls and inspect panel per share
  - Set expiration dates and enable/disable shares
  - Password persistence via sessionStorage for seamless page refreshes
  - Showcase option linking to community gallery submission form

  Public Share Pages:
  - /share/[id] - Full-page view with header and export button
  - /share/[id]/embed - Minimal chrome for iframe embedding
  - PasswordGate modal using EditModal pattern for consistency
  - ReadOnlyTopologyViewer with inspector panel support via context

  Permission Model Changes:
  - Remove None permission level entirely
  - Rename Visualizer to Viewer (with serde alias for compatibility)
  - All users now count towards seat limits (remove counts_towards_seats)
  - Only Admin+ can invite users (Members can no longer invite)
  - Migration converts existing Visualizer/None permissions to Viewer

  Backend:
  - New shares module with CRUD handlers and public access endpoints
  - Password hashing with Argon2 (reuses auth service)
  - Share validation (expiration, enabled status, domain restrictions)
  - ShareWithTopology response includes topology data after auth

  Frontend:
  - ShareModal with type selector (Link/Embed/Showcase)
  - ShareTab for managing shares per topology
  - BaseTopologyViewer extracted for code reuse
  - Inspector components use context with store fallback

  Would you like me to run the actual commit with this message?
  Replace the legacy Visualizer permission workaround with a proper sharing
  system that supports password-protected links and embeddable iframes.

  Share Features:
  - Create shareable links with optional password protection
  - Generate embeddable iframes with domain restrictions
  - Configure visibility of zoom controls and inspect panel per share
  - Set expiration dates and enable/disable shares
  - Password persistence via sessionStorage for seamless page refreshes
  - Showcase option linking to community gallery submission form

  Public Share Pages:
  - /share/[id] - Full-page view with header and export button
  - /share/[id]/embed - Minimal chrome for iframe embedding
  - PasswordGate modal using EditModal pattern for consistency
  - ReadOnlyTopologyViewer with inspector panel support via context

  Permission Model Changes:
  - Remove None permission level entirely
  - Rename Visualizer to Viewer (with serde alias for compatibility)
  - All users now count towards seat limits (remove counts_towards_seats)
  - Only Admin+ can invite users (Members can no longer invite)
  - Migration converts existing Visualizer/None permissions to Viewer

  Backend:
  - New shares module with CRUD handlers and public access endpoints
  - Password hashing with Argon2 (reuses auth service)
  - Share validation (expiration, enabled status, domain restrictions)
  - ShareWithTopology response includes topology data after auth

  Frontend:
  - ShareModal with type selector (Link/Embed/Showcase)
  - ShareTab for managing shares per topology
  - BaseTopologyViewer extracted for code reuse
  - Inspector components use context with store fallback
  Replace the legacy Visualizer permission workaround with a proper sharing
  system that supports password-protected links and embeddable iframes.

  Share Features:
  - Create shareable links with optional password protection
  - Generate embeddable iframes with domain restrictions
  - Configure visibility of zoom controls and inspect panel per share
  - Set expiration dates and enable/disable shares
  - Password persistence via sessionStorage for seamless page refreshes
  - Showcase option linking to community gallery submission form

  Public Share Pages:
  - /share/[id] - Full-page view with header and export button
  - /share/[id]/embed - Minimal chrome for iframe embedding
  - PasswordGate modal using EditModal pattern for consistency
  - ReadOnlyTopologyViewer with inspector panel support via context

  Permission Model Changes:
  - Remove None permission level entirely
  - Rename Visualizer to Viewer (with serde alias for compatibility)
  - All users now count towards seat limits (remove counts_towards_seats)
  - Only Admin+ can invite users (Members can no longer invite)
  - Migration converts existing Visualizer/None permissions to Viewer

  Backend:
  - New shares module with CRUD handlers and public access endpoints
  - Password hashing with Argon2 (reuses auth service)
  - Share validation (expiration, enabled status, domain restrictions)
  - ShareWithTopology response includes topology data after auth

  Frontend:
  - ShareModal with type selector (Link/Embed/Showcase)
  - ShareTab for managing shares per topology
  - BaseTopologyViewer extracted for code reuse
  - Inspector components use context with store fallback
  Replace the legacy Visualizer permission workaround with a proper sharing
  system that supports password-protected links and embeddable iframes.

  Share Features:
  - Create shareable links with optional password protection
  - Generate embeddable iframes with domain restrictions
  - Configure visibility of zoom controls and inspect panel per share
  - Set expiration dates and enable/disable shares
  - Password persistence via sessionStorage for seamless page refreshes
  - Showcase option linking to community gallery submission form

  Public Share Pages:
  - /share/[id] - Full-page view with header and export button
  - /share/[id]/embed - Minimal chrome for iframe embedding
  - PasswordGate modal using EditModal pattern for consistency
  - ReadOnlyTopologyViewer with inspector panel support via context

  Permission Model Changes:
  - Remove None permission level entirely
  - Rename Visualizer to Viewer (with serde alias for compatibility)
  - All users now count towards seat limits (remove counts_towards_seats)
  - Only Admin+ can invite users (Members can no longer invite)
  - Migration converts existing Visualizer/None permissions to Viewer

  Backend:
  - New shares module with CRUD handlers and public access endpoints
  - Password hashing with Argon2 (reuses auth service)
  - Share validation (expiration, enabled status, domain restrictions)
  - ShareWithTopology response includes topology data after auth

  Frontend:
  - ShareModal with type selector (Link/Embed/Showcase)
  - ShareTab for managing shares per topology
  - BaseTopologyViewer extracted for code reuse
  - Inspector components use context with store fallback

  Would you like me to run the actual commit with this message?
  Replace the legacy Visualizer permission workaround with a proper sharing
  system that supports password-protected links and embeddable iframes.

  Share Features:
  - Create shareable links with optional password protection
  - Generate embeddable iframes with domain restrictions
  - Configure visibility of zoom controls and inspect panel per share
  - Set expiration dates and enable/disable shares
  - Password persistence via sessionStorage for seamless page refreshes
  - Showcase option linking to community gallery submission form

  Public Share Pages:
  - /share/[id] - Full-page view with header and export button
  - /share/[id]/embed - Minimal chrome for iframe embedding
  - PasswordGate modal using EditModal pattern for consistency
  - ReadOnlyTopologyViewer with inspector panel support via context

  Permission Model Changes:
  - Remove None permission level entirely
  - Rename Visualizer to Viewer (with serde alias for compatibility)
  - All users now count towards seat limits (remove counts_towards_seats)
  - Only Admin+ can invite users (Members can no longer invite)
  - Migration converts existing Visualizer/None permissions to Viewer

  Backend:
  - New shares module with CRUD handlers and public access endpoints
  - Password hashing with Argon2 (reuses auth service)
  - Share validation (expiration, enabled status, domain restrictions)
  - ShareWithTopology response includes topology data after auth

  Frontend:
  - ShareModal with type selector (Link/Embed/Showcase)
  - ShareTab for managing shares per topology
  - BaseTopologyViewer extracted for code reuse
  - Inspector components use context with store fallback
  Replace the legacy Visualizer permission workaround with a proper sharing
  system that supports password-protected links and embeddable iframes.

  Share Features:
  - Create shareable links with optional password protection
  - Generate embeddable iframes with domain restrictions
  - Configure visibility of zoom controls and inspect panel per share
  - Set expiration dates and enable/disable shares
  - Password persistence via sessionStorage for seamless page refreshes
  - Showcase option linking to community gallery submission form

  Public Share Pages:
  - /share/[id] - Full-page view with header and export button
  - /share/[id]/embed - Minimal chrome for iframe embedding
  - PasswordGate modal using EditModal pattern for consistency
  - ReadOnlyTopologyViewer with inspector panel support via context

  Permission Model Changes:
  - Remove None permission level entirely
  - Rename Visualizer to Viewer (with serde alias for compatibility)
  - All users now count towards seat limits (remove counts_towards_seats)
  - Only Admin+ can invite users (Members can no longer invite)
  - Migration converts existing Visualizer/None permissions to Viewer

  Backend:
  - New shares module with CRUD handlers and public access endpoints
  - Password hashing with Argon2 (reuses auth service)
  - Share validation (expiration, enabled status, domain restrictions)
  - ShareWithTopology response includes topology data after auth

  Frontend:
  - ShareModal with type selector (Link/Embed/Showcase)
  - ShareTab for managing shares per topology
  - BaseTopologyViewer extracted for code reuse
  - Inspector components use context with store fallback
@mayanayza mayanayza merged commit ff46e80 into dev Dec 20, 2025
3 checks passed
@mayanayza mayanayza deleted the feat/topo-share branch December 21, 2025 22:03
mayanayza added a commit that referenced this pull request Feb 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant