# Changelog

## v1.4.0

#### Added

* Updated to LiveView 0.18 + Petal Components 0.18
* Data table component
* Local time component
* Sobelow for security checking
* Coveralls for code test coverage
* test.yml Github action for code quality
* Easily modifiable content security policy to help prevent XSS
* Added a docker-compose.yaml that adds Postgres so you don't need to install it

#### Changed

* Router significantly more streamlined
* Some routes have been moved into their own files: AdminRoutes, AuthRoutes, DevRoutes, MailblusterRoutes
* Users are forced to be confirmed to access /app routes (easily configurable)
* Use Ecto enums for org roles

#### Fixes

* Fix reset password failing when signed in
* Clean up dashboard\_live.ex - some old code unused was left in there
* Improved SEO meta tags in \_head.html.eex
* Show a warning in the logs when no title/meta\_desciprion is set on a public page
* Added `open-graph.png` (to be replaced by dev)
* Fix require\_confirmed\_user plug
* Fix landing page GSAP not working

## v1.3.0

#### Added

* Two-factor authentication using time-based one time passwords (paired with something like Google Authenticator)

#### Changed

* Decoupled DashboardLive from Orgs so you can get started quicker if you don't want orgs
* Can pass a custom header class to the public layout
* Sidebar and stacked layouts now support grouped menu items (see dev\_layout\_component.ex for an example)
* Update Tailwind to 3.1
* Split CSS into different files thanks to Tailwind 3.1

#### Fixed

* Onboarding now remembers user\_return\_to
* Fixed nav dropdown bug after modal toggle
* Fixed gettext in live views

## v1.2.0

#### Added

* Login with Google & Github - easy to add more auth providers
* Passwordless auth - register/sign in via a code sent to your email
* Orgs - create an org, invite & manage members, and more
* User lifecycle actions - run code after actions like register, sign\_in, sign\_out, password\_reset, etc
* New generator: mix petal.gen.html (same args as phx.gen.html)
* New component: <.markdown content=""> & <.pretty\_markdown content=""> (uses Tailwind Typography plugin)
* Added License and Privacy pages (with some content from a template to get you started)
* New layout: <.layout type="public">, for public marketing related pages like landing, about us, privacy, etc

#### Changed

* Simpler config access (`PetalPro.config(:app_name)` instead of `Application.get_env(:petal_pro, :app_name)`)
* Refactor <.layout> to take less props
* Refactor dark/light mode system. Much simpler now and no longer needs cookies
* Put Petal Pro Components in their own folder for easier future upgrades (can duplicate if you want to modify them)
* Sidebar and stacked layout have a new slot for the top right corner (if you want to add something like a notifications bell)

#### Fixed

* Log metadata wasn't being cast
* More user actions are logged
* Fixed petal.live generator tests
* Added tests for user settings live views

We've included Google & Github to get you started and make it super easy for you to enable login with any other OAuth provider you might want add to your app.

We've also included our very first Petal Pro component **<.social\_button>** that produces beautiful social login buttons in two variants ("solid" and "outline").&#x20;

Social button currently supports:

* Google
* Github
* Facebook
* Twitter
* Apple
* Linkedin

Users of your app can now register/sign in via a pin code sent to their email. It's simple to enable or disable at any time.

Just head over to your `config.exs` file and change `paswordless_enabled` to `true`

![config.exs](https://3399528933-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPrds3tZMdNMoQM7suYlt%2Fuploads%2FpVWbYRWpSdFGEci27WwK%2FCleanShot%202022-05-16%20at%2009.01.38%402x.png?alt=media\&token=2cf34f0a-f65a-4907-a3ce-b66026e76dc9)

### **Organizations/Multi-tenancy**

You can now optionally create an organization, invite & manage members, and more.
