* feat: add ability to authenticate single superadmin user
This short-circuits any configured authentication, allowing a user
with the correctly signed message to act against the api.
* Present an expiring message to be signed/verified
* Add chronoctl command to ouput token for use in auth header
* Add command to generate and store RSA keypair
* Test new superadmin token checks
adds a command to migrate a db from bolt to etcd and visa versa. there
is no promise that the options/functionality will not change, hence the
'beta' note. obviously there is also no guarantee that there will never
be any data loss.
after several manual tests, i do have a high level of confidence in the
functionality presented.
* Bolt to kv/bolt
* Remove unused code
* Remove unused roles code
* Remove unused duplicate Makefile
* Clean up bolt implementation and start layering in an interface for another store
* Layer in kv interface
* Continue layering in kv interface
* Remove circuitbreaker things
* Move cell stuff out
* Convert cell logic to kv interface
* Start adding config logic to kv interface, likely will remain bolt only
* Get to compile with bolt kv before moving too far forward
* Start removing dead dashboard code
* Add generic kv implementation for dashboards
* Convert layouts to kv interface
* Migrate mappings to kv layer
* Migrate org_config to kv layer
* Migrate organizations to kv layer
* Migrate servers to kv layer
* Migrate sources to kv layer
* Migrate users to kv layer
* Start removing unused migration logic
Since there is a migration path for users via updating to 1.7.x line then to 1.8, there isn't any real reason to continue supporting migrating from a version ~2 years old.
* Cleaning up bolt dead codes
* Re-add disabled code
* Migrate tests over to kv layer
* Migrate config to kv layer
* Create default organization
* Remove etcd for now
* Improve new client and new service implementations
* Uncomment bolt build tests
* Add layouts test
* Add more dashboard tests to kv
This PR introduces two new commands:
1. `list-users` which lists all users in boltdb
2. `add-superadmin` which can be user to promote existing users to
superadmins, or creates new users that are superadmins
Currently this work was done as a separate binary, but the intention is
to make it a part of the `chronograf` binary.
Connect https://github.com/influxdata/chronograf/issues/2744