private void mergeInDefaultConfig(final ObjectMapper objectMapper,
                                      final JsonNode rootNode) {
        final JsonNode proxyConfigNode = rootNode.at(PROXY_CONFIG_JSON_POINTER);
        final ProxyConfig defaultConfig = new ProxyConfig();
        final JsonNode defaultConfigNode = objectMapper.valueToTree(defaultConfig);

        if (proxyConfigNode == null || proxyConfigNode.isMissingNode()) {
            ((ObjectNode) rootNode).set(
                    ProxyConfig.ROOT_PROPERTY_PATH.toString(),
                    defaultConfigNode);
            throw new RuntimeException("No config node found at " + PROXY_CONFIG_JSON_POINTER);
        }

        YamlUtil.mergeYamlNodeTrees(
                objectMapper,
                objectMapper2 ->
                        proxyConfigNode,
                objectMapper2 ->
                        objectMapper.valueToTree(defaultConfig));
    }
Merge our compile time defaults with the de-serialised config so we have a full tree
stroom-proxy/stroom-proxy-app/src/main/java/stroom/proxy/app/ProxyConfigurationSourceProvider.java