Skip to content

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.