Looker Chrome Extension

(Simon Clark) #1

I’d be nice to have a Chrome extension that can add or tweak features to Looker. Examples of some things off the top of my head that might be feasible:

  • Overriding CSS to customise your Looker ‘theme’ - I’ve seen posts on here about people doing this
  • Adding an button to open query SQL in an external UI - e.g. the BigQuery web UI is nicer than SQL runner for some things
  • Browser notifications for query completion
  • Making hover descriptions remain on screen and render HTML a tags so they can link to external docs (probably tricky!)

For those of us who use Google Apps, it’s possible to publish an extension so it’s only accessible within your domain.

I am a BI developer who’s been working with looker since 2015 in quite a few different contexts. I also have a computer science degree and like hacking :slight_smile:

I don’t have a team yet…

Disclaimer: I’m not sure how feasible those suggestions are, or how happy Looker would be with this sort of a hack. Though it could let some of us prototype useful stuff which could then become part of the product. (maybe?!)

Anyone interested or have any suggestion for features?


(Dylan Baker) #2

Hey @simon_onfido. I really like this idea.

I think being able to push notifications to the Looker UI would be particularly useful. i.e. “The ETL for dataset X is currently down and the data is stale.”

I think lots of businesses push those types of notifications via Slack/email, but I think it would be really useful to have it in app.

Not sure what you think of that use case?


(Simon Clark) #3

Hey @dylan.baker, that sounds interesting - do you imagine it would query the Looker API to determine if any/what message is displayed?

I think if we could put together a prototype with a few simple features that can be enabled/disabled, and structure the code so it’s easy to extend, people can add and share any additions they make.


(Dylan Baker) #4

As an MVP, I was imagining setting the warning messages manually. For lots of my work, the process is de-coupled, to varying degrees. Initially, I would expect an analyst/engineer to get a error/warning from some ETL process and then go push the warning in Looker.


(Simon Clark) #5

I see. The message would need to be stored/updated somewhere though wouldn’t it?

I don’t know the API very well but I can’t see how we could e.g. write/edit a view file - is so we could stored the message(s) by hard coding them in a view. Interested to hear your ideas though!


(Dylan Baker) #6

Yeah, they would. I was imagining a small web application or something like that (very lightweight flask or rails app) to set the notification. The extension would pull it from there, in my head. But I’m sure there’s lots of ways to tackle this.

1 Like

(Izzy) #7

SO jealous I couldn’t be in London for the event— I spy with my little eye some votes for “Looker Awesome Chrome Project”. That wouldn’t be this project, would it?! I need details!


(Simon Clark) #8

Haha yeah I managed to get something almost working - notification of query completion. Code is here though it’s not really working properly yet: https://github.com/taa-simon/looker-hack-ldn-chrome-extension

My first idea was to use the query running spinner/completed query details HTML elements and watch them for changes to work out when a query has completed - really messy and doesn’t quite work right. I have since had a better idea though, to watch for the query result JSON and take the info from there.

A second issue I noticed is to do with how extensions are structured - the code that runs in the Looker tabs is called a content script, and the extension also has a background script that currently sends the notifications. For security these scripts are isolated from one another and have to pass messages, but sometimes this connection is broken so even if the code was working right it wouldn’t send a notification. I think I can solve that but having the content script send the notification though there’s not much point until it’s accurately catching completed queries!

Anyway that’s where it’s at - I’ll try to make it work properly at some point (it’s something I’d use myself) but I’d be super happy if anyone else wanted to contribute - maybe someone whose JS knowledge is a bit more up to date than mine.

Also, pro tip: notifications don’t work by default when you screen share with Airplay which can really spoil a demonstration about notifications… :man_facepalming:

1 Like