peer management HTTP API (#81)

* feature: create account for a newly registered user

* feature: finalize user auth flow

* feature: create protected API with JWT

* chore: cleanup http server

* feature: add UI assets

* chore: update react UI

* refactor: move account not exists -> create to AccountManager

* chore: update UI

* chore: return only peers on peers endpoint

* chore: add UI path to the config

* chore: remove ui from management

* chore: remove unused Docker comamnds

* docs: update management config sample

* fix: store creation

* feature: introduce peer response to the HTTP api

* fix: lint errors

* feature: add setup-keys HTTP endpoint

* fix: return empty json arrays in HTTP API

* feature: add new peer response fields
This commit is contained in:
Mikhail Bragin
2021-08-12 12:49:10 +02:00
committed by GitHub
parent d5af5f1878
commit 3c47a3c408
22 changed files with 633 additions and 394 deletions

View File

@@ -34,21 +34,17 @@ type UpdateChannelMessage struct {
}
// NewServer creates a new Management server
func NewServer(config *server.Config) (*Server, error) {
func NewServer(config *server.Config, accountManager *server.AccountManager) (*Server, error) {
key, err := wgtypes.GeneratePrivateKey()
if err != nil {
return nil, err
}
store, err := server.NewStore(config.Datadir)
if err != nil {
return nil, err
}
return &Server{
wgKey: key,
// peerKey -> event channel
peerChannels: make(map[string]chan *UpdateChannelMessage),
channelsMux: &sync.Mutex{},
accountManager: server.NewManager(store),
accountManager: accountManager,
config: config,
}, nil
}