public Optional<ConfigProperty> fetch(final PropertyPath propertyPath) {
        return securityContext.secureResult(AppPermission.MANAGE_PROPERTIES_PERMISSION, () -> {
            // update the global config from the returned db record then return the corresponding
            // object from global properties which may have a yaml value in it and a different
            // effective value
            return dao.fetch(propertyPath.toString())
                    .map(configProp ->
                            configMapper.decorateDbConfigProperty(configProp))
                    .or(() -> {

                        return configMapper.getGlobalProperty(propertyPath);
                    });
        });
    }
@param propertyPath The name of the prop to fetch, e.g. stroom.path.temp
@return A {@link ConfigProperty} if it is a valid prop name. The prop may or may not exist in the
DB. If it doesn't exist in the db then the property will be obtained from the object model.
stroom-config/stroom-config-global-impl/src/main/java/stroom/config/global/impl/GlobalConfigService.java