Create a vue component to load the job log
Problem
There are a few problems with our current implementation:
Our job log is HTML sent from the server, which:
- Makes it sometimes vulnerable for XSS
- Makes it a lot harder to add collapsible sections
- Makes it harder to render line numbers with links
- Makes it harder to render information badges
Solution
Frontend could use the Raw output and parse it in Vue.
We'd create a vue component that would parse the output, render it, and add the needed controls (line numbers, collapsible sections, scroll buttons, etc)
This would allow us to reuse it in:
- Web IDE job logs
- Kubernetes pod logs
- Remove xterm for environments logs
- Job log
Currently, we have 4 different implementations, and we could have just 1.
This is, however, a relatively big issue and it needs to be properly scheduled. We can use a parser for the raw output, but the line numbers, collapsible sections, and badges would require some extra work from backend and frontend
@ayufan @timzallmann I'd love to work on this. Do you think we can fit this into the schedule? I'll assign to myself since I've been working on a PoC.
I'd say it's a 5/6 in weight.