* Install bouncer
* Seeder and level migration
* Display and edit roles
* remove unused deluser page
* Update Radius and SSO to assign roles
* update AlertUtil direct level check to use roles instead
* rewrite ircbot auth handling
* Remove legacy auth getUserlist and getUserlevel methods, add getRoles
Set roles in LegacyUserProvider
* Small cleanups
* centralize role sync code
show roles on user preferences page
* VueSelect component WIP and a little docs
* WIP
* SelectControllers id and text fields.
* LibrenmsSelect component extracted from SettingSelectDynamic
* Handle multiple selections
* allow type coercion
* full width settings
* final style adjustments
* Final compiled assets update
* Style fixes
* Fix SSO tests
* Lint cleanups
* small style fix
* don't use json yet
* Update baseline for usptream package issues
* Change schema, not 100% sure it is correct
not sure why xor doesn't work
* Update configuration docs to use lnms config:set
don't show slashes input
still need to test them all
* fixup broken commands
os array type a little broken
* bash
* fix lnms config:set os append
* enable os append test
(and small correction)
* fix whitespace
* lnms config:set works for os settings
validate against os schema (gives us path and value validation)
fix unset in config:set
json formatted output in config:get to match input parsing
* inline errors
* Check that OS exists
* Fix lock file
* Set param type
* correct method name, it no longer returns a boolean
* rename --json to --dump
tests and fixes
* fix whitespace
* missed one whitespace
* typehints
* add connection typehint
* try again