Skip to content

Possible future steps #23

@nemesifier

Description

@nemesifier

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.
  • readonly mode

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    To do general

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions