Encode session data in JSON instead of the Storable format

XMLWordPrintable

    • Type: Task
    • Resolution: Unresolved
    • Priority: Normal
    • None
    • Affects Version/s: None
    • Component/s: Back-end
    • None

      Catalyst session data is currently encoded using Storable, a binary format that only Perl can easily read. For sessions, this encoding was chosen when the release editor was originally implemented as a multi-page form, as it allowed saving the raw release editor state (including blessed Perl objects, the same reason we use Storable for the entity cache). Nowadays, the only blessed objects we store in the session are MusicBrainz::Server::MergeQueue.

      Moving from Storable to JSON would make it possible to read the data outside of Perl.

      1. We could check sessions from OpenResty and determine if the user is logged in or not. Logged-out requests could be served from a cache or have different rate limiting rules.
      2. We could authenticate sessions from Node.js or Rust. That's required if we want to port website routing to one of these languages.

            Assignee:
            Michael Wiencek
            Reporter:
            Michael Wiencek
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:

                Version Package