Introduction
This GSoC 2019 project has the goal to develop a Web front end to create, read, update and delete (CRUD) JSON settings for OGC services. In addition, a REST API will be developed on top of the Faroe API. The UI should be easily extensible and customizable, e.g. with customer logos.
Overview
Multiple OGC services, viz. SOS, WPS, have their properties/settings set with the help of the Faroe API. Faroe is a configuration API, which allows for storing settings in JSON format or in a SQLite DB. Currently this is done with the help of either creating spring beans and then making use of JsonEncoder to generate a settings.json. Another option is to create a settings file from scratch. This however increases the scope for mistakes.
Motivation
Since the configuration aspect is common across a multitude of OGC services, having a configurator will allow operators a common point to update the settings. In the case of any change to the Faroe API, rather than making code changes in all of the services, we can make the changes to the configurator. The endpoints abstract out the logic under the hood so it is easier to follow this REST API approach rather than directly relying on Faroe to view/update/modify the settings for a service.
Methodology
This project is intended to make the experience of using Faroe more easier and intuitive. This will be done in two parts:
- REST API: This API will sit on top of Faroe, allowing only CRUD operations to take place in settings file. The endpoints will be secure. By using JWT, the user will be only able to update/view/delete settings if they have a special authentication token. The endpoint will also let people know how many services are using a particular Faroe instance. At a service level, it will list the setting definitions being used by the service in question. Also, depending on the definition id, it will tell the value for that particular setting definition being used by that service.
- Javascript UI: The UI will look to provide a comprehensive single page application experience to the user. It will enable the user to configure settings for any OGC service(s) in a more user-friendly way by providing radio buttons, dropdown menus and other kinds of input to configure settings extending BooleanSettingDefinition, ChoiceSettingDefinition, UriSettingDefiniton, etc.
About Me
I have just graduated from college majoring in Electronics and Instrumentation Engineering. Despite my electronics background, what I am really interested is in writing code and solving interesting problems, through the means of software. Apart from these, I follow sports, spend my free time playing video games and following technology in general.
Leave a Reply