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.