Skip to content

Parameters make URL extremely long #6

Description

@slominskir

Problems with long URLs include:

  • We may run into browser limits
  • Cosmetically the URLs look bad
  • Copying and pasting URLs more difficult

Possible solutions:

  • Shorten simply by using shorter keys/values (less verbose) - fairly easy to do, but won't shorten that much really and still looks bad
  • One extreme is to store a JSON object representing user configuration in a Protocol Buffer, and perhaps simply have a single parameter with a base64 encoded value of the protocol buffer - tons of overhead to set this up and protocol buffer support for JavaScript looks questionable at this point
  • Another extreme is to store configuration on a server (kinda like tinyURL generators) in which again, there is a single parameter or the path itself is the key, which can be very small, and this key is used to pass to the lookup server which stores configuration state. Tons of overhead to set this up, but probably nicest user experience (smallest URL).

Activity

  1. slominskir commented on Jun 9, 2020

    @slominskir
    MemberAuthor

    Server Side Storage seems like the best option, but challenges include:

    1. Probably need to hook up some sort of authentication and authorization as saving (and deleting) state on the server should be handled carefully.
    2. Browsing/Searching existing state is another whole module
    3. Forcing users to login before they can do anything isn't great. Only require login if users want to modify/create/delete a saved chart that can be bookmarked. Users simply exploring data should be able to work without login. Maybe add transient state storage in browser "local storage" for unauthenticated case such that browser window closed or page reload doesn't erase their work?
  2. slominskir commented on Apr 3, 2025

    @slominskir
    MemberAuthor

    Probably okay to trust users on local network to create small ID to huge parameter set record (tinyurl) by clicking button to share tinyurl. Could add IP address as minor audit. Offsite auth would absolutely be required though.

  3. nsjarvis commented on Aug 27, 2025

    @nsjarvis

    Hi Ryan, I was going to make a separate issue about this and then saw it here already. I noticed that when I delete a PV, its properties are not deleted from the url. I have a few favourites bookmarked, so I tend to load up one of those and then change the PVs. Eventually when I have made a number of these changes, the url becomes enormous (as it contains so many args for PVs that were deleted) and the server cannot support it. So if I will be using WAVE for a while, I expect this to happen, so I copy the url into a googledoc so that I can recreate it easily.

    Also, the urls could be shortened by leaving out the args that have the default values or for which the user did not set a value.

  4. slominskir commented on Aug 27, 2025

    @slominskir
    MemberAuthor

    Yeah, looks like we may need to tweak settings on Tomcat or make URLs smaller. Using the URL you provided in issue #30 from offsite results in:

    Image

    Might work onsite, since all the Keycloak authentication is skipped in that case and therefore the number of cookies in the header is dramatically smaller too.

  5. slominskir commented on Aug 27, 2025

    @slominskir
    MemberAuthor

    After tweaking the URL you provided and already having auth cookie, I was able to view your example. One of the backend requests in the larger URL failed though, explaining the erratic behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Fields

    Priority

    None yet

    Start date

    None yet

    Target date

    None yet

    Effort

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions