Polished - Modern Authentication for Shiny

Andy Merlino and Peter Myers


We are excited to announce polished. Polished is a new R package that adds modern user authentication and user administration to your Shiny apps. Polished comes with many of the authentication features required by today’s web apps (e.g. user registration, password reset, email verification, role-based authorization, etc.). Polished is available under the permissive Tychobra Community License. This License gives you all the freedoms available with the MIT license with 1 explict exclusion; you can’t create a SAAS, PAAS, or IAAS offering of polished.

Shiny empowers data science teams to communicate their analyses as interactive web apps. Once these applications are made available on the web, administrators often need user management and authentication. Polished adds this layer of shine to your existing applications. In addition to authentication and user administration, Polished also provides analytics about the usage of your app.

Polished uses single-sign-on across multiple Shiny apps. This means you use the same email and password to sign into all your Shiny apps. Since password reset and email verification are handled by polished, as an administrator of Shiny apps, you will never touch or even know your users’ passwords.

Polished uses a serverless architecture for authentication and data storage. This means no server management for you, and no additional server infrastructure outside of your Shiny application. It also means you can deploy polished on any server that can host Shiny (e.g. on-premise, to a cloud provider, or using a Shiny hosting service like shinyapps.io).

You integrate polished with your Shiny app by setting up a polished configuration folder and making a few minor modifications directly to your Shiny app R code. Documentation on the setup process can be found here.

We can’t wait to see what people build with polished, and we’d love to help you and your team integrate it. Check out the webpage or browse, clone, or fork the code on Github.

comments powered by Disqus