L2-Technology / sensei

A lightning node implementation for everyone
https://l2.technology/sensei
Other
199 stars 39 forks source link

remove root node as concept, restructure auth/admin #110

Closed johncantrell97 closed 2 years ago

johncantrell97 commented 2 years ago

I've been working towards this PR for a while now but it's finally ready to be made. When the project started the concept of parent and child nodes was a thing because there was a parent/root node that was in charge of p2p/networking/chain/etc and the other nodes relied on the parent/root.

Slowly over time I have been extracting these services out of the root/parent node and just into standalone services that the sensei instance runs and each node registers itself with.

It's now at the point that the root or parent node really is no different than any of the other nodes.

This PR eliminates the concept entirely including removing the 'default' node that is created when you setup sensei. Now, when you setup sensei you are creating a root user that can access the admin. That user has the ability to manage nodes and access tokens.

The web admin is now split into two separate sections: admin and node management.

I also decided now was a good time to revamp the urls, they always bothered me and I couldn't easily figure out how to bend axum to get them to work exactly as I wanted. Took the time today to understand axum routing and was able to restructure all the urls to make more sense (imo). Basically the "admin" section is still routed under /admin path but all of the node management urls come off of just / now. So for logging into the admin you'll go to /admin/login and to login to a node it's just /login. Similarly to manage nodes it would be under /admin/nodes and for all of the other node pages they're at /chain /channels /send-money /receive-money..etc.