-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposed improvements #48
Comments
Wow, these are excellent ideas. Let me respond to each individually:
Credentials: This is why I do not store the credentials any longer than necessary in the app, and I store them server side. I know session variables are stored in an insecure client-side cookie, so I don't like that. I'm not sure how Flask-Login implements this, but I'm open to it if it works. In short, I'm open to any better way of authenticating to devices securely. I just haven't figured out a better one that works for what I'm trying to do yet. Current Rough Roadmap:
For CI testing, the app is growing pretty big and I'm having a much harder time testing everything before pushing a release. I still haven't figured out an easy way to automate tests on this, since it requires a live Cisco switch/router to log into. It's something I've been discussing, but I'm open to ideas on this. Overall, thanks for these great ideas. I was about to start working on converting to Python 3, but since you've already started that, I'll help in your branch, and start working on general code/function cleanup, and tackling the views.py file. |
Thanks for the response! 1c. Is actually easy to implement and I've already done this on a branch I do have. Re: credentials Re: roadmap
Thoughts on this? I'm going to go rebase the branches I do have for logins and credential storage and can provide a PR for that shortly. |
@v1tal3, I have a few ideas on some features I'd like to go implement, but I want to run them by you first so we can be on the same page and not accidentally end up implementing similar ideas.
Here's a list of features/items I'd like to work on:
a. Future work to include LDAP support
b. This really helps with implementing route authorization rather than the frontend templating trickery that's going on
c. Also, API integrations (point 3), role-based access control, etc.
a. I believe you may already have done something like this by dropping credentials into Redis, but I'd rather have those stored in the database and not a memory cache.
a. This would reduce the work on server template rendering and allow others to build automation/tooling around this
b. I'm thinking this would include drastically reducing the existing templates and having most frontend rendered by some Javascript framework
a. Right now when pulling up a new host, the page can take a while to generate as everything in sourced on the fly from SSH and then rendered on the templates.
b. I'm thinking something like the server SSHs into a host and indexes it in its database every 15 minutes. When an update is made, make that change in the database, and have the server run that command asynchronously.
b. Points 2 and 3 alleviate the transition to this.
a. My thought here is that we generalize common functions most appliances would have (uptime, show interfaces, VLANs, etc.) and use system specific commands based on the type of appliance. I believe you're already doing something like this, but having the ability for end user to craft their own JSON templates allows for faster implementation of new hardware.
a. It could be my lack of full understanding of what all is written, but I'm seeing a lot of this function call that, which calls that, which calls that, etc. I'd like to refactor and reduce making it easier to follow for other developers.
a. We've talked about this before, and it wouldn't be too terribly difficult to do. I've played around with it before, but I run into some issues and am having trouble following the full code path to resolve the issue.
These are some high-level items I'd like to implement. Let me know your thoughts!
Thanks,
Lucas
The text was updated successfully, but these errors were encountered: