welcome everyone to our first I believe or at least first in the long time uh Apache suet 101 session uh this is something we've been wanting to do for a while since we know there are a lot of folks who are new to this particular project and product and might want to know kind of what it's all about see a little demo of some of the basic mechanics of how to build stuff here and hear a little bit of the backstory about uh how it came to be and kind of how it works as a community um so if there are things that I don't cover today that you'd like to see in a 101 session which is intended to be introductory uh then by all means let me know in uh Q&A or in the comments or in other places um so first a little introduction my name is Evan rousakis uh and I've got a couple of roles here one is that I'm a suet PMC member uh which is I'm a contributor I'm a committer and I've been voted in to help kind of steer the project a little bit along with many other fine folks from different organizations and um I've also uh I happen to work at preset uh which we'll get into a little bit later uh but I'm doing developer relations um developer advocacy work here so you've probably seen my face on slack on here and on slack and other places um somebody's asking if this is going to be recorded and yes absolutely it will be on YouTube so hello YouTuber people from the future um if you have questions during or after this here are a few means to interact I'm going to go ahead and stick the uh the slack Link in the chat so everyone has it if you're not already on supet slack that's probably the best way to get your questions answered as you start to discover the product but also just for now you can talk during chat I'm not going to pay that much attention to it but I will Circle back to QA periodically and try to get to whatever I'm able to um and afterward of course feel free to send me an email and give me feedback on how I can do better at this that's always important too so let's see why is there a blank slide there all right so what is superset um superset is an open source bi product and we're part of the Apache software Foundation we're a top level product and what that means is we've made it through their incubator program we're a real deal we've learned how to release software reliably and all of that and by now we're one of the biggest projects whether you measure that by commits uh number of people on slack by GitHub stars all those sorts of things none of these metrics are great on their own but uh we're kind of doing very well in all of them uh the the product itself was started by Maxim bamin he also started Apache airflow both of these things stemmed out of air Airbnb as open source projects before he handed them over to the Apache software foundation and Max is now the CEO and founder of preset where I happen to work um but what is the ASF that he handed it over to exactly they're a governing body for open source software Apache actually owns the repo no individual company does outside of Apache we all just kind of chip into it Apache owns the trademark uh they help keep us responsible and responsive and on top of security and all sorts of other things and we as a software uh you know group uh project have to follow what they call the the Apache way uh which is a whole system of practices but there are different roles involved here that you probably ought to be aware of that you'll he mentioned one is just the community role that's you anybody can be a contributor in all sorts of ways whether it's technical or non-technical uh and we can talk about that at any depth you'd like in the future but there's also committers those are people that have right access to the repo so they can merge PRS and close issues and tag things stuff like that on the repo and then there's PMC members MERS that are voted in that um you know have additional responsibilities in terms of security and governance of the project um so why open source bi why is this better um these are things you can't do with other bi products one is avoiding vendor lockin um you can run superpet on your own you can change superpet you can do kind of whatever you want with it that's the joy of Open Source so you are not beholden to a particular propriety piece of software you can deploy it wherever you want however you want you can customize it and of course you can change it and contribute it hopefully you do contribute and whatever changes you make will be useful for everybody and you can send them on back um so that everybody can benefit from them now superset is a bi tool that connects to all kinds of databases here's a lot of them this is by no means all of them uh but if you have a SQL Alchemy driver and you can create a DB API then uh you can connect to pretty much anything that speaks SQL so it's very wide open and superet is used by a bunch of organizations here's a handful of them uh and by all means the best thing you can do for open source software is tell the tell the world that you do so if you want to add your name to a list like this there's an in the wild page on the repo that you can open a PR to add your name to um or just you know put your org if you have one in your slack handle that's useful too but let's get into the main parts of it I'm going to demo all of these chunks of supet in a little bit but um just to show some screenshots real quick uh one key ingredient is that superset includes a very Advanced SQL ID so you can write your SQL queries you can save them you can share them come back and edit them you can create data sets from them or you can jump directly to creating a chart out of these um then we've got once you've got the data set you map that to create charts uh and by mapping that I mean you've got a control panel where you've got all sorts of declarative controls of how you would create or customize a chart and in the left column there you've got all of your metrics and dimensions and things like that and you simply drag and drop those uh to those chart controls to create a chart however you see fit we've got a whole bunch of charts um over 40 I think pushing 50 something like that and we're always adding more there's a whole plug-in framework if anybody ever uh wants to uh expand on the number of charts we support in superset there are a few more we'd love to see uh you can always add more controls to help these be a little more customizable too um this is a library agnostic visualization platform so uh we use Apache echarts um kind of a sibling project I guess you could say or a cousin and uh they're very Li compatible and very robust but you could use anything that uh leverages JavaScript to write these plugins if you want to get into it and then of course out of those charts you build dashboards um and this is the representation of your data that you're most likely to share with uh your stakeholders and this includes all of the things you'd want to see in a bi tool so there's dashboard filters there's drilling there's cross filtering um and there's additional dashboard components like tabs and markdown and all sorts of things like that so we'll get into that a little bit more in the demo um now the main advantage of suet compared to other bi tools is that there there's a couple of things but one of them is that you can build these dashboards really quick uh time to dashboard is a metric we always Target as we're developing and improving this product so we hope that we're uh among the top in terms of just you know going from a data set to a dashboard now other parts of superet exist I'll show you a couple of these when we get into demo time um but aside from databases and data sets and saved queries I already mentioned um there's a few other things like annotation layers that are a little more advanced we probably won't show them today but you can uh layer data on top of a chart you can get into CSS templates uh and also you know color palletes and themes that you can apply to your dashboard we've got blog posts on all of that so if anyone wants those resources let me know uh there's a semantic layer I'll show you a little bit of which allows you to kind of annotate your data with custom metrics and columns um there's Ginger filtering which is another Advanced topic we won't go into today but in a nutshell it allows you to add filters to things like your SQL queries so you can make them a little more Dynamic it's kind of an advanced customization option uh then we've got alerts and reports I'll show you a kind of a shallow tour of that and then of course there's all sorts of uh role-based Access Control Ro level security and all sorts of different ways to lock down access to your data and charts and other little bits and pieces of superset um you should also be aware that superset has a very robust API uh especially now that superset 3.0 just recently came out uh this has been tidied up quite a bit uh there's some new V1 endpoints and we've deprecated a few in 3.0 so it's really kind of coming together it's very consistent very well tested and um yeah try it out if you run superset locally or you just want to see it in the docs you can see the full API documentation of that URL then last but not least I mentioned vendor lock in for a second it's worth noting that uh superset has its own CLI so you can manage assets as code and you can also if you don't want to use the CLI you can import export dashboards so you can move them from one superet instance to another and uh preset uh which is a managed hosted version of superset also has a CLI that controls additional preset stuff but also allows you to manage these assets as code in a much more uh robust fashion and you can use that for uh open source superet instances or preset uh workspaces and then for some reason some of these little title slides are not showing that's odd okay uh so this is the what is preset section that's what that title slide was supposed to show just very quickly um we're here mostly to talk about open source superpet but preset does exist and it allows you to spin up multiple workspaces of superpet if you want to um and this also comes with a lot of other benefits you don't have to manage supet uh you don't have to install it configure it secure it upgrade it uh all that stuff set up off Etc preset ships with all of that it's you know it's it's got sock 2 compliance and a whole bunch of other features right out of the box and it's easily scalable so if you want to uh not roll your own and run superet on your own you can try preset um it's got some extra features as well on top of standard superet but we won't go too much into that um okay if you want to try out superet why are some of these images not working that's very odd uh okay uh you can do two things you can try preset there's a free account um it's you get I think five users and one workspace if you just want to kick the tires on it otherwise you can download it from GitHub which includes just pulling from the repo and running off master or you can uh download the official Apache releases from there as well and then of course the docs screenshots are not coming up today they worked last night uh but you can uh check out the suet docks for all the official installation instructions whether you're installing via python or via Docker compose or uh the preset docs are also available that provide a lot of augmented information for new superet users whether you're using open source or not and that includes like chart specific walkthroughs um so you can learn how to build all sorts of different charts things like that um and then of course if you want to know any more or you get stuck the best place again to reach out out is on slack um there's a lot of different topical channels you can explore uh whether you're deploying customizing installing Etc um so without further Ado I'm going to go ahead and launch into a little demo um so what I want to do is the first thing anybody would do uh is connect a data source so I was pardoning me I got too many windows open can't even see my browser browser okay so if you go to database connections this is the first thing most people will do is add a database uh you can like I mentioned connect to a whole bunch of different databases but in this case I'm going to go ahead and choose mother duck oh and incidentally I am running this demo on preset but the things I'm doing today you can do on open source superet or preset equally uh so this is just kind of a convenient way for me to do this but I'm going to take my SQL Alchemy URI connection string and actually I'm going to pause my screen share for a second so you don't see my handy dandy user token um and hopefully you can see that again and when I click test connection it should come back successful and we're good so I'm going to go ahead and connect to mother duck now what I did for today um I happened to be a beer nerd I don't know if people know that about me but um this last weekend was the Great American Beer Festival here in Denver and there were a bunch of Prize winners to go for the uh uh you know the best beers in the United States and I get very curious about that stuff so I scraped their website and got a little data set of that um so if I go to SQL lab we can dig into that I just I made a basically made a CSV from their website stucking in mother duck and uh we should be able to snag it now so this is SQL lab AKA R SQL IDE and if I select the schema it should load the few tables I've put in here and we're going to start with GBF 2023 these are this year's winners and it's going to load up all the columns and everything from that data set on interet there you go live demos are fun aren't they uh okay so now we can show you that this has auto complete GBF so there you go now you can of course run these queries and superet just sits on top of your data warehouse or database whatever that may be so it doesn't actually keep any of this data locally uh it doesn't like you know clone or import your data it just acts as a database client so pretty much everything you do in supet whether it's here in SQL lab or creating a chart or building a dashboard superset just kind of modifies and inserts uh Little Bits to your SQL queries ships them off to the database and then uh parses the results accordingly so here you can go as deep as you want with Cor but a simple select star uh works for our case at the moment um so I'm going to go ahead and create a chart from here and this will kind of invisibly create a database or a data set sorry and we'll save that data set if and when we save a chart um spoiler alert we will so this table is raw records this basically shows everything in that table which is very handy um you can also of course go to an aggregated table so maybe we will um search for breweries and then we can oops pardon my zoom controls are in the wrong place we'll do a count of metals as a metric if we run that then we can see who some of the top metal winners were and good for them uh but going back to Raw records we'll go ahead and and bring that back and we'll save this chart this is a very convenient way to start a chart now this is all winners and what I want to go ahead and do is create this database or sorry data set I'll call it GF 2023 Great American Beer Festival um and I'm going to make a new dashboard I'll just call it gabf oops there you go click that a new dashboard will be created all right so now if I save and go to dashboard then we have a dashboard hooray humble beginnings um so let's go ahead and create another chart to start getting slightly fancier and having a little more insight I want to select the data set I just created there it is and I'm going to take a pie chart although I don't want a pie chart pie charts are not that cool anymore we're going to make it a ring chart but let's start by figuring out which states are the biggest winers so again state would be the dimension that's how we slice our pie chart and then I'm going to get the total count of metals As the metric and it looks like California's the big winner now when you're creating any chart you've got two tabs here data tends to be the controls that affect your query directly when you add things to them customize tends to be U what uh affects the visual presentation of your chart that um most likely doesn't reshape your query but just how the results of that query are presented um so for example like I said I want this to be a dut chart and there that's a little more pleasant so then I will we'll save this as uh winners by state and I'll put it on the GBF dashboard cool cool all right um so now what we can do is do some fun stuff with this already we've got a couple of charts um but people might say okay neat that's not that interactive what do I do with this so this is where things like filters start to come into the picture uh so let's go ahead and add a filter to our dashboard and in our case I'm going to do a value filter and what I know I want to do is figure out the category and I'm just going to call it style or beer style and save that so as you can see for 2023 California is a big winner that's great now as an IPA Enthusiast I want to go ahead and pick that and I thought there were more IPA Styles why am I not seeing them yeah interesting okay well that didn't work why did that not work okay well there's oh it's probably under India not IPA they don't use the short syntax so you can look for more of these kind of sub styles that sort of match I'm curious about all of them so you can select multiple you can configure your filters to allow multiple selects or not that's up to you there's actually another webinar on filters if you want to go deep on that but check it out if you pick out the IPA winners that and California wins by a landslide uh my home state of Colorado is doing okay um all right let's build another chart just for fun and games we'll do a bar chart I see some chat happening if you guys can answer each other's questions that's awesome I see some Q&A things also coming in and I will get to those all right um so for this we are going to see what kind of styles are doing well we have a generic x-axis so while supet used to be more driven by time series charts in fact it started off as a druid client uh we now have this what we call generic access xaxis which allows you to use a categorical access like category um so now I'm going to go ahead and add a dimension of metal and for metrics we'll do a count of metal and what this Dimension should do if I'm not mistaken is split our bars vertically oh if they were stacked so let me go to Stacked okay so this is every metal from every category so unsurprisingly it's a very full chart but let me just save this and you'll see where I'm going with it okay there we are so now if I add another filter oops bur and epic State and then you can even add actually I should have just added another filter okay so now we've got some options we can really start digging into this stuff um so instead of digging in by state I actually want to or sorry instead of digging in by Style I want to see let's see how a particular state did what did California actually win and it looks like they got uh Metals in a lot of things including they swept strong pale ale and a couple of other categories so good for them or you can see for example if you want to what states won the most gold medals then that becomes interesting where Texas actually beat Colorado Colorado beat Texas in terms of overall medals but Texas won more gold so here by using the filters and a couple of different chart Styles you can actually start to get some deeper insights into uh all sorts of stuff um but this sort of filter is not the only thing you can do so if I go back and um go back to SQL lab here I added another data set that I I scraped from somewhere on GitHub Let Me Wait for the table to load now these are GBF historical winners and the data here does not include this year because that just happened it also doesn't include last year some maintainer didn't get to update it but it does have the entire history of the competition up until 2020 I think it is maybe 2021 um so if we go ahead and uh um load this up you can see all the results here and what I want to demonstrate now really quickly via the magic of copy paste is that SQL lab here does allow you to do joins um one limitation you should be aware of is it superpet does not allow you to do joins cross database so if you have two different databases and two different tables you can't join those unless you use some other um you know semantic layer or pipeline kind of tool maybe DB t or something along those lines but in this case since both of these tables sit in mother duck I can just Union them because I know uh the column names and can make those align so when I run that I'm going to go ahead and do this um so now I can uh save that I'm just going to go ahead and create a chart actually this time we want to get into a line chart and we're going to do a little bit of a Time series um as you can see here it doesn't know that the four-digit year which is stored as a text column happens to be the um the year it doesn't know it's a temporal column so in supet we have a very light semantic layer that we call the data set editor um and you can do that actually once you uh once you save the data set that hasn't been done yet so let me let me go ahead and make this a categorical x-axis for now again we'll go with metal winners because that's easy and then uh Dimension will go state so we can see how different states perform over time and that should work we see the gigantic rise of California over time and a lot fewer participants in the early years of the festival um cool all right so we're going to save this thing create that data set that we need and this is going to be GBF [Music] historical and something like that okay so when we save this chart without going to the dashboard that will save our data set and then I can do a little editing on that data set real quick um so if I edit data set here's where you can do all sorts of fun stuff to kind of annotate your data you can uh create additional metrics in here with little SQL Expressions um I'm just going to go ahead and create a calc calculated column uh since I want to create a Time based column so a temporal column and I already have a year column that's text so using duct DBS syntax I can just call it that and I'll just call it date time and that's going to say this may affect other charts S I accept my fate and now we should have actual dates instead of just string representations of years which means you can go over to the customize Tab and do things like add number formatters um that uses D3 form matters if anyone knows D3 there's a whole syntax to it uh has fantastic documentation but for now I'm just going to go with this format as an illustration okay now the whole point of this was to put it on that dashboard and then show you one more little trick that you can do in dashboards okay so here we are we've got this chart um actually I want to show you the edit layout one thing I haven't showed you is that you can stretch these charts around and use these layout elements to add rows and columns and all sorts of things you can add actually let's put a little markdown based column in here for fun uh so if you know your markdown syntax you can type whatever you want in here really pardon my fumbling oops cool so you can uh set the height of charts all kinds of things everything's pretty squishy and scalable at some point we're going to hopefully make this more uh responsive and design for smaller clients but that's a it's another project and once you've got it all laid out the way you want you can use cross filters uh this is something that allows you to click in one chart and it emits a chart a filter from here to all of the other charts so now we're looking at California and you see just that line if you want to look at say Ohio then you can click there and there's all your information all of the charts on this dashboard are filtered that way you can clear it right here so that's pretty neat and then of course people ask about drilling all the time uh and since this is uh Geographic this might be a good example if you rightclick on uh some of the newer charts most of the what we call tier one supportive charts you can do a couple of things you can drill to detail and see a tabular representation of what makes this chart and all of the uh data underlying it but more exciting than that for most people is you can drill by so in this case we're looking at States so you can drill by any of these columns really but I'm going to go ahead and drill into Colorado by City And then you can see my home city of Denver has uh 13 medal winners in this particular uh year of GBF so that's cool you can see all the other cities so this allows you to go as deep as you want really you can keep going into categories until you run out of columns so you can drill and drill and drill and drill all day long and we think that's better than the typical sort of hierarchical drilling um okay so you can drill you can cross filter you can filter you can build all sorts of wacky charts you can build all sorts of dashboards uh what else let's say you want to keep an eye on this data um regularly there's a few options um of course you can uh share the dashboard with others um this is actually a preset construct that invites people to your workspace but you can share the URL uh on open source superet there is a whole embedded SDK that's beyond the scope of what we're going to get into today but you can actually um on open source or on preset uh build react applications and include your dashboard uh within those as an embedded instance uh you can create permal links to share with co-workers and so forth but um one thing I want to show is up here uh alerts and reports this is a fun thing that a lot of people need in various business contexts uh the easier part to start is probably reports where I can take the dashboard that I just created GBF and I can set a screenshot withd if I want and I can set it to go by email uh to myself or anyone I want really I can also send it to slack all of this stuff is configurable on open source superet it's available out of the box on preset uh but you can create this sort of report and it can show up in your inbox every morning if you want to kind of keep an eye on your sales data or whatever the important things to you happens to be so you can do KRON syntax all sorts of fun stuff but on top of that you can also do alerts which are a little bit of a different animal uh the idea here is still that you select your chart and or dashboard um which would be live data more than my little cooked up example for today but um if you pick a particular database then you can write a query here that actually triggers this so you can write SQL that says you know if I have um a column that has more than zero null values in it uh When You're Expecting no null values in a null value shows up it's a bad thing so you want to see an alert show up in your inbox you can do that or if uh you know some number dips into the negative or you know you can dream up a million use cases for it but you can set these triggers that are non chronological uh well there's still a Chron chronological factor that actually runs this query every so often so maybe every morning you check the Integrity of some data and get an alert if things don't match um let's see what what else am I forgetting here um gosh I think that's the bulk of it let me uh those are the those are the broad highlights for a 101 anyway there's a lot of other interesting stuff we can go into like CSS templates uh where you can style your dashboard we've done other meetups on that there's blog posts on that so I won't go deep here um if you're managing your various assets like dashboards or uh charts or any or queries any of that stuff there are bulk actions that you can take to kind of bulk delete them um and yeah this is another dashboard I made with a lot of other filters and you can divide those filters some more chart types uh I think hopefully you get the general idea so let's bring up the Q&A tab I'll stop sharing for a second actually what I'll do is go over to this slide which has the slack link again for anyone that needs it it's also got my email address if you want to reach out directly but for now I am going to try to get through some of these questions um okay this will be shared on YouTube yes um are we working on generating SQL queries using NLP yes uh there are some folks folks on the open source side that are speculating about how to do this in kind of a community friendly tool and platform agnostic way that's going to require a lot of talking about but um preset the hosted version of superset that we sell commercially is um is also working on this and since we're you know a private version of supet we have a little more leeway on how we do this architecturally so we do have um a a text to SQL integration coming soon it's in a bit of a beta phase right now um so contact me if you want to know more about that then and that is using uh a large language model kind of thing it's not one of the more traditional MLP things but you know AI generative AI stuff okay uh can superset be configured to automatically create complex reports based on templates in document formats A4 example and be integrated with Genera AI for summarizing data tables and charts and executive summary of paragraphs not yet um so as far as the A4 formatting of dashboards yes you can create a dashboard that's specifically for reporting you can set a width for that dashboard that you want it exported as and that will come through as basically a highres screenshot that you can kind of put into any document you want however you want um it might be up to you to uh add some integration that pulls it from email or slack and sends it into whatever document format you need but uh you can also extend superset if there's some other formats you you want to export but um the executive summaries in paragraph in text paragraph format summing up dashboards that hasn't been done yet that's also kind of on presets uh potential road map for these AI features so things to come um how can one filter using the chart data EG in a pie chart containing gender when I click the female color portion I get female numbers in all other charts oh yeah so that was um let me go back so if I go to this dashboard this is I guess a fine place um right now I'm emitting a cross filter so that's what you're saying when I when I click something it filters all the other charts and the dashboards um if you don't want to do that you can um instead of emitting a cross filter like this you can actually create and emit a filter directly from the filter bar and when you apply that it filters all the charts accordingly so now these are all the ianz guitars in this example now if you don't want it to affect all charts you've got more options so if I go to edit filters and I go to this manufacturer filter I'm messing with you can set the scoping so if right now it's affecting all of the charts in all of the panels and tabs but if you want it to only affect um I don't know let's say everything but total sales then I can save that and this number should not change regardless of filters so here 128,000 fake dollars speaking of GPT this data set was created by GPT it's fun for making up bogus data you can have it generate CSV files all day long it's very amusing okay um yeah so hopefully that answers that question let's see so cross filters and filters are kind of different animals they work well together but they both have their merits uh oh and I didn't mention you can also like in in the the beard dashboard I made I didn't set a default but you can set defaults for for for filters too so maybe I want it to start as vender and always have a single filter value in there you can do that okay is the data in superset periodically updated as it gets new records in the original data warehouse yes uh so superset has a whole um caching system to it which is very configurable uh and we don't want every load of every dashboard and every chart to hit your database over and over and over and over again that would be very annoying so what do have as a caching layer is um typically redus but you can configure it differently using memcache or others uh is a chart data cache so um here this data is cached and you can set the timeout I forget what it defaults to in a standard configuration but you can force refresh it if you want right then or there or you can set a different um uh periodicity to it and um that is one of several things you can do in the dashboard metadata which actually I'll go into for just a hot second um because I didn't really talk about the dashboard properties so if I go to oh not embed dashboard edit dashboard then I go to edit properties one fun thing I should have showed you is you can pick different color pellets and if you do that then suddenly your dashboard is much prettier hooray but um let's say I've got this chart where I've got my uh bronze gold and silver another thing you can do is go into the advanced Json here and there's a whole bunch of stuff um but one of them is label colors so let me grab a little copy paste thing I made last night oops these are not the greatest colors in the world but you can pick a series in your dashboard and a color value as an example and when I apply that oops I need a comma then hey you've got gold silver bronze uh it works okay but that wasn't quite what I was going for I think what I was actually trying to show you before I went on a wild tangent was that you can set some of the timeouts um in here if I I remember correctly I haven't actually messed with the timeouts for a while but that's in the documentation so I know there's some in config.py you can mess with a lot of that if you're running your own instance of superset but I think you can overwrite it on a per chart basis uh I'd have to look that up okay moving right along um and you show us how to customize chart colors without applying the dashboard color scheme oh well there you go okay so you can do with the dashboard color scheme like I just did uh you can do in the dashboard properties you can do a per series color like I was just showing which I showed with heximal but it works with any kind of um HTML friendly color format but if you don't want to do that and you want to do it on a per chart basis you can also actually just delete this color scheme and let me save the dashboard here and if I go to edit this chart you can go to customize and why is that still inheriting that should not be did I not save it I probably didn't save let me edit the dashboard edit properties oh yeah it's still there I think I forgot to save I hit apply hit save okay now if I didn't screw that up should be able to go here and oh why is that still not working okay I don't know what's up with that at the moment but you should be able to change the color scheme for any individual chart there and the reason this is throwing that little error is that the dashboard uh color pallette will override individual chart color palletes but when you create a new chart you can pick any individual color pallette for that chart you should be able to do it for every chart in your dashboard and only when you apply a dashboard color pallette will it override those individual ones um I feel like I'm taking crazy pills at the moment this should work it's tested often so I don't know what I'm doing wrong but um I'm just going to move on uh let's see so there's some questions about permissions those get a little nuanced so I'm probably going to skip most of that for now we can do a separate uh entire webinar on arbac and permissions and all of that but I think somebody's asking about permissions by dashboard uh and one of the things you can do is oops if you go to dashboards here you can set owners um um so if I edit that dashboard you can restrict access or uh you know add access for any individual different person um it gets a lot deeper than that when you get into granular arat controls or on uh preset we have workspace roles that are shared across different workspaces um but it might also be worth mentioning that not only only can you uh create owners for charts and dashboards uh but you can add certification too so you can see you know Evan made this um and then it'll get a little icon here saying hey this is important please don't edit or delete it okay um if you want to hit me up on slack with any kind of permission and rback control stuff we can get deeper on that and I can start Gathering a list of questions for uh a webinar on that whole topic okay are there any plans to make local customizations specifically on Docker kose installations easier to achieve um uh so yeah currencies and locals and number formatters are supported um there's room for improvement here no doubt about it but um whether you're using preset or superset there are ways to do this so on both as of 3.0 uh which was just released the other day you can now set a default currency selection and a default um number local in your config.py file so you can set it up to be commas instead of periods or periods instead of commas for certain uh locals you can pick your currency format or you can also even um go by the column in your data set and set different D3 formatters for each column so you might have a column of Yen a column of dollars and a column of Euros or something like that and um all of that is Now supported by the bulk of uh you know the tier one charts the big big numbers tables line charts kind of the the the greatest hits of charts um and translations are also possible they're built into superet uh you can enable those in your configuration and uh maybe not all the translations are complete but now that you can set currency and number format is in a variety of different places including at the chart layer um in the chart customization controls uh it's it's getting better um if anyone wants to fles out some of the translations that's a it's a big project we're working on too so feel free to contribute um can you create embedded dashboards that are locked to specific users yes in fact uh the embedded well uh okay we we've got a whole other meetup on embedded um I can share the the URL for the YouTube video video to that and there's some documentations about that but when you're creating an embedded um dashboard you actually have to set up a guest token and that guest token has certain permissions so um it's kind of using a generated user account for that embedded instance and you can set up permissions for that um so oh okay you want them to only see specific data for a specific user this is probably where you start to get into the ginger templating which is um where it gets a little custom and intricate I think that can be done but it's definitely Bey on the scope of all 101 so hit me up on slack and I'll try to point you in the right direction um then let's see uh oh links to the CSS stuff um yeah let me find that there's a preset Blog the preset blog is full of all kinds of resources I highly recommend you check it out in fact this one about CSS is part of a three-part series um and one part is on color palettes one part is on CSS and the other is on kind of the state of theming so if you wanted to White Label supet we're not quite there but it's uh it's going in the right direction so there's the CSS one you can do all kinds of crazy stuff um so a little bit of it is kind of wild west unsupported things um but just to scroll through this real quick there's a million examples and um you can Target specific charts to give them individual Styles you can Target types of charts uh you can get all sorts of bits of the UI and add splashes of color or you can add icons um there's a whole world of customization in superet uh in fact all of the tables like the table chart and everything now support basic HTML so what I didn't do is add little icons for the gold silver and bronze medals in the table but you could totally do that now um yeah customization goes deep so hit up the customizing superet channel on slack if you want to get into that all right uh we got time for a few more uh is the cross filtering and drilling open source or just in preset it is on both so if you're running open source preset uh there's some feature Flags you would need to turn on Cross filter are enabled by default as of superset 3.0 as are I believe drill to detail and drill by but um all three of those flags are in your config.py file if they're not turned on already because you're running something older than 3.0 you can just flip them on um there's also a preset blog about feature Flags if you want to know all of the configuration options or at least like the the usual go-to ones um okay uh yes you will be able to download the demo uh we're running out of time and I won't be able to get to all of these questions but please feel free to ask more questions don't ask them on YouTube when you see the video but please go to slack and uh DM me there or just ask on the appropriate Channel and we'll we'll get you the info you need um uh somebody's asking about deploying the API without the UI you can absolutely do that you can you can run the back end and not build webpack uh not serve those front-end assets um yeah that's just kind of tweaking your config file if you want to get into all of that um how's the support for GIS uh it's not a full-fledged GIS solution like it's not you know esri level kind of stuff but we do have deck GL uh cap plugins there's a couple of new ones that are getting merged in one new one shipped with 3.0 but yeah you can do um you know a a webg based maps of various formats using those deck GL plugins we also have uh country maps not every country in the world is there yet but they're easy to contribute if one's missing um so you can use your uh what is it the iso 32 codes I forget to you uh to map a corop of regions within a country map and there's a world map as well so um yeah there's a lot of geographic stuff uh we can make Maybe make that another demo um that would be cool to go into let's see just looking for a last couple of opportunistic questions I can answer easily here um can you export a dashboard in CSV PDF Etc um not yet I think uh some of that's contributable if you want to get into that um the CSV export has a couple of things that are worth mentioning you can export each chart as CSV and um with tables there's even a feature flag you can turn on to export the entire uh non- paginated tables data set as CSV but that comes with the caveat that your table might have a bajillion rows and explode your database or explode your browser so use with caution but uh without that feature flag yes you can export um any chart as Json from a couple of places Json or CSV one is if you go to a dashboard you can uh download as CSV or Excel right here or if you go to edit the chart then you'll get a couple of more options uh up here you can download a CSV Json image or Excel so there's a pretty good number of export options right there um dashboard exports are a little different uh you kind of need to do that with the browser so those alerts and reports actually use a headless browser to generate those screenshots let's see um somebody's asking if suet 3.0 is considered stable that's a pretty interesting question uh I think it's pretty darn stable it's been very tested did it went through four release candidates it's got all of the bug fixes that are in superet 2.1.1 which we are considering stable so that said it's also got some new features and Bug fixes and things like that that were rolled into it that happened after the 2.1 uh cut so I would consider it stable but that's a very suggestive question if you if you really want you can wait for suet 3.0.1 which will address any bug reports we get uh in the next you know few few weeks as people try out 3.0.0 but um it's been pretty well tested and had a lot of eyes on it so I think it's um it's looking pretty good we don't technically call anything T stable until the patch release comes out for it though um so somebody's asking for a su installation links um you can just go to uh you can probably just Google superet versions and get right there superet releases so these are all the official versions and for each of them you can download uh you the tarball or the source zip and you can run that via Docker compose or however you want to do it um so here's 3.0.0 the official and if you scroll down further you'll get to 2.1.1 and all of the rest three minutes left uh can you run supet on Windows okay um officially it's not supported um varby dragons uh that said people have done it I don't know about Windows 2016 in particular but there are people out there running superet on Windows there are weird things you have to do with packages and builds and all sorts of stuff there are some it's it's not built for it and it's not something that we test as a community so officially not supported but in practice if you want to go for it you can and I think there's a a growing little Grassroots uh community of people that are doing this so I hope uh a slack Channel appears and maybe with enough effort we can make it official um let's see somebody said cross filters weren't working on their Docker instance uh you depending on the version you probably just have to turn on the flag uh and if you turned on the flag then you might just have to restart your server somehow okay uh let's see can you filter across embedded visuals yes if you embed a dashboard you can choose whether or not you want to show the filter bar and if the filter bar is shown and uh the guest user that is effectively the embedded user uh has permission to use filters then yep they will work um how do you use safed queries in charts and dashboards uh so when you write a query and you save a query that gives you kind of a point of reference to go back and make tweaks to it but at any point from SQL lab uh if you go to let's just make this a save query um all GBF winners Okay so we've got a saved query now and actually if I go over here to saved queries you should see it all right very cool now I can go in here and edit the query so that's great you can kind of come back and update that any old time um and from there you can create a data set directly and from that data set you can build charts or um you know if you go ahead and just run that saved query then you should get the button here that'll allow you to jump to creating a chart directly um which kind of temporarily skips the data set creation step just for convenience okay well we're at time there's a lot of unanswered questions I'm sorry I didn't get to all but um thank you all for joining us today and I think we'll be doing this again so if you have more questions that went unanswered uh by all means DM me email me just reach out and let me know how we can improve this um in the future and maybe we'll do it periodically for all the new users so spread the word about superset and um yeah looking forward to seeing you all on slack take care