Varnish Controller also comes with a User Interface as an optional feature. The goal of the user interface is to make the workflow as simple as possible and provide a better user experience.
UI communicates with Varnish Controller via the REST API. This user interface can be installed in multiple servers as required for load balancing.
The UI comes with it’s own UI server that is handling all kinds of protection for various security threats. The UI sends the API requests to the UI server, the UI server validates the request with CSRF, authentication and CORS before proxying the request to the API of the Varnish Controller. The UI server is in charge of the authentication of users and refreshing authentication tokens.
There are various security threats that need to be addressed to keep the application secure. The following protection mechanism are in place to ensure a high level of security:
First time users will be assisted with a short and simple onboarding process to be familiar with the system.
Access to the different parts of the UI depends on the permissions individual users have.
The UI consist of following page types:
Dashboard: The realtime graphs and numbers showing the aggregate of counters of all the varnish servers connected to the Varnish Controller. There are counters for hits, misses and requests.
List/Table: List pages for lists of servers, tags, VCLGroups and domains
Create: Create pages to create tags, accounts, organizations, domains and VCLGroups. While creating VCLGroup it is possible to create deployment configurations, domains and files which are an integral part of of the VCLGroup.
Edit/View: Edit and view pages for details of servers, tags, accounts, organizations, domains and VCLGroups. In a server detail view, realtime graphs can be viewed on CPU and memory consumption and bandwidth including some realtime graph for hit, miss and requests counters.
Editor: Manage VCL files and other types of files that can be included in VCL files.