Skip to content
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

Possible future steps #23

Open
nemesifier opened this issue Jul 11, 2020 · 2 comments
Open

Possible future steps #23

nemesifier opened this issue Jul 11, 2020 · 2 comments

Comments

@nemesifier
Copy link
Member

nemesifier commented Jul 11, 2020

With this I aim to create a feature list to reboot this project.

We need a configuration editor for openwisp which solves the following problems:

  • allows to navigate through all the configuration sections (which can possibly be very large) easily, the sections should be separated, possibly hidden and shown only when the user clicks on the section they're interested in (eg: interfaces, routes, openvpn, etc)
  • able to show friendly error messages for the user, no more "value does not match regexp pattern"
  • when there is a schema error right now we have a message like Invalid configuration triggered by "#/jsonpath/property", validator says: 'propertyX' is a required property. We should instead define a structured error format which we can use to display the error in the right place in the UI
  • able to fetch the templates via API call and show the resulting configuration (merging the device conf and the templates), with ability to show to the user which configuration options are part of the device config and which are part of the template, hence giving the ability of overriding the values in the template very easily
  • ability to reload the schema when the backend is changed, like the old editor
  • the editor should have an advanced raw JSON mode
  • the editor should take in consideration configuration variables when performing validation: the variables should be evaluated before the validation is performed, for example: if a field expects an integer and a variable is inserted as its value, allow the user to put the variable name, fail only if the value contained in the variable is invalid
  • the same type of validation described in the previous point must work in the advanced raw JSON editing mode
  • variables cannot be used when the type is not a string, can we find a solution for this? For example, we could allow integers and booleans to be also strings and hide this through the UI with a button like "add variable", which converts the UI from say integer field or checkbox field to a text field which allows putting the variable in
  • allow specifying fields which should be of a certain format but can also left blank, eg: an hostname field which may be blank, a number field which has to be in a specific range (ports) but may also be left blank, with the current openwisp config editor this is not possible: restricting the validation does not allow to leave specific fields blank
  • the schema validation library used to perform JSON schema validation must be only one; in the current editor we use in openwisp-controller, there two different libraries are used (one for normal mode and one for advanced mode) which yields different results
  • a possible solution for the NetJSON schema validation is to perform it only on the server side (eg: asynchronously) and do only basic JSON validation in the frontend
  • show some config sections only if a dependant boolean (checkbox) is true (checked), for example: show roaming options only if roaming is enabled, show STP options only if STP is enabled and so on.

Will take more notes over time as I find them.

These notes will then have to be expanded into issues and more details should be added to each.

@gastonche
Copy link
Contributor

@nemesisdesign Looking I'd like to take part in the next steps for this library. So I look forward to more notes.

@nemesifier
Copy link
Member Author

Great to know @gastonche, will do.

@nemesifier nemesifier mentioned this issue Jun 8, 2023
@nemesifier nemesifier moved this to To do general in Roadmap Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: To do general
Development

No branches or pull requests

2 participants