I was wondering if there are any architecture diagrams or sequence diagrams that exist for when a user types in a SQL query into the redash UI. In this case lets say there’s the redis cache on its own host, as well as one datasource on its own host. Has anyone created something like this? I’m curious exactly whats sent over the wire and in which order between all the components: nginx, web servers, redis cache, works, datastore.
We don’t have anything formal, no. But if we did, it would probably help bring new developers up to speed. The architecture is pretty straightforward. Are you asking strictly out of curiosity? Or do you need a more rigorous write-up for internal security purposes?
One item to note: Redash doesn’t use Redis for caching. Just as a message queue. The query result cache is held in Postgres.
Thanks for the clarification about Redis! And your intuition is correct! I’m looking for something very-detailed for an internal security review from a use case perspective. For example, if someone runs an ad-hoc query through the Redash UI, for each network hop amongst the Redash stack, what gets sent to which component, in what order, and ensures its encrypted in transit/rest. I’ll soon stand up a local 7.x stack and follow the trace so if there’s anything informal you could share that you think would be helpful, please do! Thanks!