@Override
    public SystemInfoResult getSystemInfo() {
        // sourcePath => accountId => Map
        final Map<String, Map<String, List<Map<String, String>>>> map = new HashMap<>();
        final String keyOwnerMetaKey = receiveDataConfigProvider.get().getDataFeedKeyOwnerMetaKey();
        keyOwnerToDataFeedKeyMap.values()
                .forEach(dataFeedKeys -> {
                    for (final CachedHashedDataFeedKey dataFeedKey : dataFeedKeys) {
                        final String path = dataFeedKey.getSourceFile().toAbsolutePath().normalize().toString();
                        final String keyOwner = Objects.requireNonNullElse(
                                dataFeedKey.getStreamMetaValue(keyOwnerMetaKey),
                                "null");
                        final List<Map<String, String>> keysForAccountId = map.computeIfAbsent(path,
                                        k -> new HashMap<>())
                                .computeIfAbsent(keyOwner, k -> new ArrayList<>());

                        final String remaining = Duration.between(
                                Instant.now(),
                                dataFeedKey.getExpiryDate()).toString();
                        final Map<String, String> leafMap = Map.of(
                                "expiry", dataFeedKey.getExpiryDate().toString(),
                                "remaining", remaining,
                                "algorithm", dataFeedKey.getHashAlgorithm().toString());
                        keysForAccountId.add(leafMap);
                    }
                });
        return SystemInfoResult.builder(this)
                .addDetail("sourceFiles", map)
                .build();
    }
@return An optional containing a non-blank attribute value, else empty.
stroom-receive/stroom-receive-common/src/main/java/stroom/receive/common/DataFeedKeyServiceImpl.java