The HTTP API is still an experimental feature, but it’s now complete enough to replace sending configuration commands via SSH in automated management tools. We expect that eventually ansible modules and other third-party libraries will switch to it for better performance and reliability.
Another good thing is that it’s now complete enough to support a GUI. Since it’s now able to export a selected config path (like “interfaces ethernet”) to JSON, the GUI can retrieve any part of the config in an easily machine-readable format and present it to the user.
With an API and libraries that abstract away the low-level config operations, we can finally implement a GUI in a way that will not lock us out of making improvements to the system and eventually replacing the config backend. That was the main reason we haven’t done anything in that direction despite numerous requests to add it.
Our plan is to include a really basic GUI (VyOS Manager Lite) in the system image, mainly to simplify initial setup for newcomers and for emergency operations by “remote hands” who may not be familiar with VyOS along with real-time monitoring. It will be disabled by default but one can easily enable it either during installation time or after.
Built-in GUI for a single router is inferior to a good CLI most of the time, so there is little point in trying to expose every feature in it. Another part of the plan is to make a solution for managing and monitoring multiple VyOS installations at once, that’s what goes by a tentative name of “VyOS Manager”.
Its exact scope and feature set is still to be determined, so any feedback is welcome. Let us know what you’d like to see there!