Then, I would get the headers I need from session_info.ws.request.headers._dict.
I understand there have been some dramatic rearrangements in scriptrunner and server modules which broke this in 1.12.
That’s fair! No one ever promised it would work like a public API and I have 1.10 pinned so no problem there… but I would like to get this working again.
I found the scriptrunner and server modules again, but #a823b55 also removed the get_current class method from Server and now I’m at a loss. Can someone help me access to this information?
Thanks for surfacing this! The Server.get_current() method disappearing was indeed a consequence of a major refactor to the Streamlit internals that had its first changes appear in 1.12.0. As far as I know, there’s no easy way to access websocket connection headers for a given browser tab with its removal (there may be some clever hack possible, but it’s non-obvious).
While this API was technically internal/undocumented, we also recognize that a lot of people rely on it for auth purposes. We’re currently considering ways to revive the functionality (potentially in a more user-friendly form) in a future release, and the status of this is being tracked in this GitHub issue: Accessing websocket headers in Streamlit 1.12.0 · Issue #5166 · streamlit/streamlit · GitHub.
Thanks for the reply Vincent, I will wait at 1.11.1 until this comes back in some form.
Of course I understand the risk that comes with using these undocumented solutions. Then again a lot of integrated Streamlit features like session state or multipage apps started out as hacks Let’s hope this follows the same route.