pi/v1/admin/jobs/docgen/updates", null);
          sourceForJobs.map(message => JSON.parse(message.data)).then((event) => onJobEvent(event)).catch(() => {});
          // get workers
          apiGetWorkers().then((workers) => {
            const table = document.getElementById("workers");
            for (const worker of workers) {
              table.appendChild(renderWorker(worker));
            }
          });
          // listen for worker updates
          const sourceForWorkers = new StreamEventSourc