# Current and future features ## Current features - Provide an endpoint to read any whitelisted file on diamond's shared filesystem, with static typing support. - Periodically check the main branch's to update the whitelist. - Provide a client module for users to easily communicate with the server, with caching. - Have this service hosted on diamond's central argus cluster - with url `https://daq-config-server.diamond.ac.uk` ## Future features Note that this is not actively ongoing work, but features that we are aware will be needed in the future. - Provide server-side formatting for commonly used configuration files - eg `beamline_parameters.txt` should be returned as a dictionary. - Remove absolute filepath as a user dependancy. For example, once we have a good picture of which files are being read, the client should be able to request the beamline parameters with something like `client.get_file_contents(SUPPORTED_CONFIG_FILES.BeamlineParameters, beamline=i03)` - Add authorisation + authentication. This is a pre-requisite for file-writing. - Add endpoints for configuration file-writing. At this point, we can begin to remove any configuration from the filesystem. The config-server will use a redis database to store these values, and we can have a simple web-interface to change the values.